信任模型

2020-08-22 05:30:51

许多区块链应用程序最有价值的属性之一是不可信任性:应用程序能够继续以预期的方式运行,而不需要依赖特定的参与者以特定的方式行事,即使他们的兴趣可能会发生变化,并推动他们在未来以某种不同的意外方式行事。区块链应用程序从来都不是完全不可信任的,但有些应用程序比其他应用程序更接近于不可信任。如果我们想要朝着信任最小化的方向采取实际行动,我们希望能够比较不同程度的信任。

首先,我对信任的简单定义只有一句话:信任是对他人行为的任何假设的使用。如果在疫情爆发之前,你会走在街上,却没有确保与陌生人保持两米的距离,这样他们就不会突然拿出刀来刺伤你,这就是一种信任:双方都相信人们很少会完全精神错乱,也相信管理法律系统的人会继续提供强有力的激励措施,反对这种行为。当您运行其他人编写的一段代码时,您相信他们是诚实地编写代码的(无论是出于他们自己的正派意识,还是出于维护自己声誉的经济利益),或者至少有足够的人在检查代码,这样就会发现错误。不自己种植粮食是另一种信任:相信有足够多的人会意识到,种植粮食是符合他们的利益的,这样他们才能把粮食卖给你。你可以信任不同规模的人群,并且有不同类型的信任。

为了分析区块链协议,我倾向于将信任分解为四个维度:

这些人的行为需要什么样的动机呢?他们需要利他主义,还是仅仅追求利润?它们需要不协调吗?

1/1:恰好只有一个参与者,当(且仅当)一个参与者做了您期望他们做的事情时,系统才能正常工作。这是传统的集中式模式,也是我们试图做得更好的。

N中的N:反乌托邦的世界。你依赖于一大群演员,他们都需要按照预期行事才能让一切正常工作,如果他们中的任何一个失败了,都没有后备。

N/2 of N:这就是区块链的工作方式--如果大多数挖掘者(或PoS验证者)都是诚实的,它们就会工作。请注意,N的N/2变得越大,N的价值就越大;由几个挖掘器/验证器主导网络的区块链远没有其挖掘器/验证器广泛分布的区块链有趣。这就是说,我们甚至想要提高这种安全级别,因此人们担心51%的攻击会幸存下来。

1/N:有很多演员,只要他们中至少有一个人做了你期望他们做的事情,系统就会起作用。任何基于欺诈证明的系统都属于这一类,可信设置也属于这一类,尽管在这种情况下N通常较小。请注意,您确实希望N尽可能大!

N人中的少数人:有很多演员,只要他们中至少有一些固定数量的演员按照你期望的那样做,系统就能发挥作用。数据可用性检查属于此类别。

0/N:系统按预期工作,不依赖任何外部参与者。通过自己检查块来验证块属于这一类。

虽然除了N";的";0之外的所有存储桶都可以被认为是信任";,但它们彼此之间有很大的不同!相信某个特定的人(或组织)会按预期工作,这与相信任何地方的某个人都会做你期望他们做的事情截然不同。可以说,N&34;的";1更接近N&34;的";0,而不是N&34;的";N/2或1";的";1。N选1的模式可能会让人感觉像是1选1的模式,因为它让人感觉你正在经历一个单一的演员,但两者的现实截然不同:在N选1的系统中,如果你目前正在合作的演员消失或变得邪恶,你可以直接切换到另一个演员,而在1选1的系统中,你就完蛋了。在这个系统中,如果你现在正在与之合作的演员消失了或变得邪恶,你可以直接切换到另一个演员,而在1选1的系统中,你就完蛋了。

特别要注意的是,即使您正在运行的软件的正确性通常也取决于少数N;信任模型,以确保如果代码中存在错误,有人会将其捕获。考虑到这一事实,在应用程序的其他方面非常努力地从N的1到N的0通常就像是在窗户打开的情况下为您的房子制作一扇加固的钢门。

另一个重要的区别是:如果您的信任假设被违反,系统如何失败?在区块链中,两种最常见的故障类型是活跃性故障和安全性故障。活跃性失败是指你暂时不能做你想做的事情的事件。提取硬币,获得包含在区块中的交易,从区块链读取信息)。安全故障是指系统本应防止的主动发生的事件(例如,安全故障)。无效块被包括在区块链中)。

以下是几个区块链第2层协议的信任模型示例。我用小N指的是第二层系统本身的参与者集合,用大N指的是区块链的参与者;假设第二层协议的社区比区块链本身小。我还将“活性失败”这个词的使用限制在硬币被卡住了很长一段时间的情况下;不能再使用该系统,但能够几乎立即取款不能算作活性失败。

渠道(包括国家渠道、闪电网络):1次信任中的1次活跃性(您的交易对手可以暂时冻结您的资金,不过如果您在多个交易对手之间拆分硬币,这种情况的危害可以减轻),N/2的BIG-N信任(区块链51%的攻击可以窃取您的硬币)。

血浆(假设为集中式运营商):1次信任中的1次活跃度(运营商可以暂时冻结您的资金),N/2次大N次的安全信任(区块链51%攻击)

等离子体(假设半分散运算符,例如。DPO):N/2的Small-N信任用于活动性,N/2的BIG-N信任用于安全。

乐观汇总:1/1或N/2的小N信任用于活动性(取决于运营商类型),N/2的大N信任用于安全。

ZK ROLLUP:1个Small-N信任活跃度(如果运营商未能包含您的交易,您可以退出,如果运营商没有立即包含您的退出,他们不能生产更多的批次,您可以借助ROLLUP系统的任何完整节点自行退出);没有安全故障风险。

最后,还有激励的问题:你重新信任的行为者是否需要非常利他,才能按照预期行事,只是稍微利他,还是足够理性?默认情况下,搜索欺诈证据是略微利他的,尽管它的利他程度取决于计算的复杂性(参见验证者的困境),而且有方法可以修改游戏使其变得理性。

如果我们为该服务增加了一种小额支付的方式,那么帮助其他人退出ZK汇总是合理的,所以没有什么理由担心您不能退出具有任何重要用途的汇总。同时,如果我们作为一个社区同意不接受51%的攻击链,这些攻击链在历史上恢复得太远或审查块太长,其他系统的更大风险可以得到缓解。

结论:当有人说一个系统依赖于信任时,更详细地问他们这是什么意思!它们是指1中的1,还是N中的1,还是N中的N/2?他们是要求这些参与者是利他的,还是仅仅是理性的?如果是利他主义的,这是一笔很小的费用还是一笔巨大的费用?如果违反了这一假设-你只需要等待几个小时或几天,还是你的资产永远被困住了呢?根据答案的不同,您自己对是否要使用该系统的答案可能会非常不同。