大多区块链应用最有价值的属性之一就是“免信任” (trustlessness),即应用能够以预期的方式保持运行而无需依赖特定参与者以特定形式行事,即使他们将来的相关利益可能产生变化并使其做出意料之外的举动。区块链应用从来都不是完全的免信任化,但是某些应用确实比其他应用的免信任程度更高。如果我们想要朝着信任最小化的目标前进,就需要首先具备辨别信任程度的高低。首先,我个人对“信任”的简单定义是:信任就是对他人行为进行假设。在疫情爆发前,你走在街上不会因为防止有人突然捅你一刀而刻意跟他人保持两米的距离,这就是一种信任:一是信任人们很少会失心疯,二是法制系统的维护者有很强的动机约束这种行为。当你运行其他人写的一段代码时,你信任他们在编写代码时是诚实的 (无论是出于他们自己的良知或是维持声誉的经济利益),或者至少存在足够多的人对代码进行检查以找到漏洞。不亲自种粮食也是另一种信任,相信会有足够多的人为了获取收益耕种粮食并出售给你。你可以信任不同规模的群体,信任的类型也不尽相同。为了对区块链进行分析,我尝试将信任分解为以下几个维度:现在,我们先关注前两点,下面有一个图表:绿色越深,表示该模型越健康。让我们对这几个种类进行详细分析:尽管除 “0 of N” 之外的模型都有一定“信任”程度 ,但是这些模型之间存在巨大差异!相信特定的某个人 (或组织) 会按照预期行事,与相信随便一个人都会按照预期形式,是完全不同的情况。相比 “N/2 of N” 和 “1 of 1”,“1 of N” 与 “0 of N” 更相似。可能有人会觉得 “1 of N” 模型与 “1 of 1” 模型很像,因为这两种模型都依赖一名参与者,但实际上这两者十分迥异:在 “1 of N” 系统中,如果该名参与者突然消失或者黑化,大可以重新换一个参与者,但在 “1 of 1” 系统中我们别无他选。尤其要注意即使是你所运行的软件,其正确性通常取决于 “极少数 of N” 信任模型,以确保代码出现漏洞时有人会进行纠查。明白这一点后,努力使应用中其他部分从 “1 of N” 模型切换到 “0 of N” 模型就像是为你家装上防盗门,但窗户是打开的。另一个重要的区别在于,如果你的信任假设被打破,对系统的破坏有多大?在区块链上,最常见的两种故障类型是活性故障(liveness failure) 和 安全性故障(safety failure)。活性故障就是你暂时无法进行操作(例如,提币、将交易打包进区块、读取链上数据)。安全性故障就是出现了系统想要预防的情况(例如,无效块被添加到区块链上)。以下列举了一些区块链 layer 2 协议所采用的信任模型。我用 “small N” 来指代 layer 2 系统本身的参与者集合,“big N” 来指代区块链底层的参与者。我的假设是 layer 2 的社区总是小于底层区块链。另外,我使用的 “活性故障” 一词特指代币长时间无法提出的情况。无法使用系统但是能够几乎即时提款的情况不算作活性故障。最后就是“激励”的问题。要促使参与者遵循预期,你所信任的参与者需要非常利他主义、轻微利他主义,还是说足够理性?默认情况下,“欺诈证明” (fraud proofs) 需要参与者具有轻微利他主义倾向,但其程度取决于计算的复杂性 (详见 “验证者困境” ),并且存在很多方式改进过程,使其更加理性。如果我们增加一种为服务支付费用的机制,那么帮助他人从 ZK rollup 中提款的行为就是理性的,因此几乎没必要担心无法退出 rollup 的问题。与此同时,如果社区都同意不接受 51% 攻击下的区块链 (回滚很长的交易历史或是审查区块过久),那么其他系统所面临的风险可以被减轻。结论:如果有人说某个系统 “依赖于信任机制”,那我们可以刨根问底!他们的意思是 “1 of 1” 模型、“1 of N” 模型还是 “N/2 of N” 模型?该系统需要参与者是利他主义还是理性主义?如果是利他主义,参与者的代价有多大?如果违反了假设,需要等待多久才能取回自己的资金?几个小时?几天?还是永远被冻结?明白这些问题后,我们可能对于是否采用该系统会有截然不同的答案。
原创文章,作者:惊蛰财经,如若转载,请注明出处:http://www.xmlm.net/wang/5039.html