许多区块链应用程序最有价值的属性之一是无需信任:应用程序能够以预期方式继续运行,而无需依赖特定参与者以特定方式运行。
即使他们的兴趣可能会发生变化并促使他们在未来以某种不同的意想不到的方式行事。
首先,我对信任的简单一句话定义:信任是对他人行为的任何假设的使用。如果在大流行之前你走在街上,不确保与陌生人保持两米的距离,以免他们突然拿出刀刺你,那是一种信任:两者都相信人们很少会完全精神错乱,并相信管理法律制度的人会继续为这种行为提供强有力的激励措施。
当您运行由其他人编写的一段代码时,您相信他们诚实地编写了代码(无论是出于他们自己的体面意识还是出于维护其声誉的经济利益),或者至少有足够的人在检查会发现错误的代码。
不自己种植食物是另一种信任:相信足够多的人会意识到种植食物符合他们的利益,这样他们就可以卖给你。你可以信任不同规模的人群,信任也有不同的种类。
为了分析区块链协议,我倾向于将信任分解为四个维度:
你需要多少人按照你的期望行事?
出了多少?
这些人的行为需要什么样的动机?他们需要利他主义,还是仅仅追求利润?他们需要不协调吗?
如果违反假设,系统将失败多严重?
现在,让我们专注于前两个。我们可以画一个图:
越绿越好。让我们更详细地探索这些类别:
1 of 1 :只有一个演员,当(且仅当)该演员按照您的期望行事时,系统才能正常工作。这是传统的“中心化”模式,也是我们正在努力做得更好的模式。
N of N :“反乌托邦”世界。你依赖于一大堆演员,他们都需要按预期行事才能让一切正常工作,如果其中任何一个失败,就没有备份。
N/2 of N :这就是区块链的工作方式——如果大多数矿工(或 PoS 验证者)是诚实的,它们就会工作。请注意,N 中的 N/2 变得越有价值,N 越大;由少数矿工/验证者主导网络的区块链远不如其矿工/验证者广泛分布的区块链有趣。也就是说,我们甚至希望提高这种安全级别,因此担心能够幸存 51% 攻击。
1 of N :有很多参与者,只要其中至少有一个按照您的期望执行,系统就会正常工作。任何基于欺诈证明的系统都属于这一类,可信设置也是如此,尽管在这种情况下 N 通常更小。请注意,您确实希望 N 尽可能大!
N 中的少数:有很多参与者,只要至少有一小部分固定数量的参与者按照您的预期行事,系统就会正常工作。数据可用性检查属于这一类。
N 的 0 :系统按预期工作,不依赖任何外部参与者。通过自己检查来验证块属于这一类。
虽然除了“0 of N”之外的所有桶都可以被认为是“信任”,但它们彼此非常不同!
相信某个特定的人(或组织)会按预期工作,这与相信任何地方的某个人会按照您的期望行事是截然不同的。
“1 of N”可以说更接近“0 of N”,而不是“N/2 of N”或“1 of 1”。 1-of-N 模型可能感觉像是 1-of-1 模型,因为感觉就像您正在经历一个演员,但两者的现实非常不同:在 1-of-N 系统中,如果您现在正在使用的演员消失或变坏,您可以切换到另一个演员,而在 1-of-1 系统中,您会被搞砸。
特别要注意的是,即使您正在运行的软件的正确性通常也取决于“N 中的少数”信任模型,以确保如果代码中存在错误,有人会发现它们。
考虑到这一事实,在应用程序的其他方面努力从 N 的 1 到 N 的 0 通常就像在窗户打开时为您的房子制作钢筋钢门一样。
另一个重要的区别是:如果违反了您的信任假设,系统将如何失败?在区块链中,两种最常见的故障类型是活性故障和安全故障。
活性失败是指您暂时无法做您想做的事情(例如,提取硬币、获取包含在区块中的交易、从区块链读取信息)的事件。
安全故障是系统本应阻止的主动发生的事件(例如,无效块被包含在区块链中)。
以下是一些区块链第 2 层协议的信任模型示例。我用“小N ”指代二层系统本身的参与者集合,用“大N ”指代区块链的参与者;假设总是第 2 层协议的社区比区块链本身更小。
我还将“活性失败”这个词的使用限制在硬币被卡住很长时间的情况下;不再能够使用该系统但能够几乎立即退出并不算作活性失败。
通道(包括状态通道、闪电网络):1 of 1 的活性信任(您的交易对手可以暂时冻结您的资金,尽管如果您在多个交易对手之间拆分硬币可以减轻这种危害),N/2 的大 N 信任为了安全(区块链 51% 攻击可以窃取你的硬币)
Plasma (假设中心化运营商):1 of 1 的活性信任(运营商可以暂时冻结你的资金),N/2 的 big-N 信任安全(区块链 51% 攻击)。
Plasma (假设是半去中心化的运营商,例如 DPOS):N/2 的 small-N 信任用于活跃性,N/2 的 big-N 信任用于安全。
乐观汇总:1 of 1 或 N/2 的 small-N 信任(取决于运营商类型),N/2 的 big-N 信任以确保安全。
ZK rollup : small-N trust for liveness 1 (如果运营商不包含你的交易,你可以提现,如果运营商没有立即包含你的提现,他们就不能产生更多的批次,你可以在帮助下自行提现上卷系统的任何完整节点);无安全故障风险
ZK rollup (with light-withdrawal enhancement ) : 没有活性失效风险,没有安全失效风险
最后,还有激励的问题:你信任的演员是否需要非常利他才能按预期行事,只是稍微利他,还是足够理性?搜索欺诈证明“默认情况下”有点无私,尽管它的无私程度取决于计算的复杂性(请参阅验证者的困境),并且有一些方法可以修改游戏以使其合理。
如果我们为服务添加小额支付方式,那么帮助其他人退出 ZK rollup 是合理的,因此几乎没有理由担心您将无法从具有任何重大用途的 rollup 中退出。
同时,如果我们作为一个社区同意不接受 51% 的攻击链,这些攻击链在历史上恢复得太远或审查区块太久,则可以减轻其他系统的更大风险。
结论:当有人说系统“依赖于信任”时,请更详细地询问他们的意思!它们是指 1 中的 1,还是 N 中的 1,或 N 中的 N/2?他们是要求这些参与者是无私的还是理性的?如果是利他主义,是一笔小开支还是一笔巨额开支?
如果违反假设怎么办——你只需要等待几个小时或几天,还是你的资产永远被卡住了?根据答案,您自己对是否要使用该系统的答案可能会大不相同。
最初发布为“信任模型”