盘点区块链达成“免信任性”的六种模型
作者: Vitalik
对于许多区块链应用来说,免信任性都是最重要的特征之一。所谓的免信任性,就是应用的正常工作不以特定参与者按特定方式行事为前提,即使他们将来会在利益的驱使下做出意料之外的举动(也不能使应用的工作状况脱离预期)。区块链应用永远不可能实现完全免信任,但是有一些应用在免信任程度上远远高于另一些项目。如果我们想要朝着信任最小化迈出坚实的步伐,就得先辨别出信任程度的高低。
首先,我个人对信任的定义很简单:信任就是对其他人行为的假设。在疫情爆发前,你不会因为害怕别人突然捅你一刀而与刻意跟他人保持两米的距离。这就是一种信任:一方面是信任他人不会暴走,另一方面是信任法律制度对违法犯罪行为的约束力。当你运行其他人写的一段代码时,你相信他们是诚实的(不管是从人品的角度,还是从经济利益的角度),至少有足够多的人对这段代码进行过审计,知道里面没有 bug 。不自己种菜也是一种信任:相信会有足够多的人为了赚钱而生产粮食。你可以信任不同群体,信任的类型也多种多样。
为了分析区块链协议,我会将信任拆解成四个维度:
- 你需要多少人如你预期的那样行事?
- 总参与人数有多少?
- 需要这些人出于什么动机如你预期的那样行事?需要他们是利他主义者,还是唯利是图者?是否需要避免他们之间产生协同?
- 如果这些假设被打破了,对系统的破坏有多大?
绿色越深表示越健康。让我们详细分析以下几种情况:
- 1 : 1:整个系统只有一个参与者。如果这名参与者确实如你预期的那样行事,系统就会正常运行。这就是传统的 “中心化” 模型,也是我们所要超越的模型。
- N : N:“反乌托邦” 世界。系统中的所有参与者都要如你预期的那样行事,系统才能正常运行,如果有任意参与者失败,那也没有备份方案。
- N/2 : N:这是区块链的运作方式 —— 如果大部分矿工(或 PoS 验证者)是诚实的,区块链就能正常运作。要注意的是,N 越大,N/2 就越有价值。相比只由少量矿工/验证者控制的区块链,矿工/验证者广泛分布的网络有趣得多。尽管如此,我们依然想要获得更高的安全性,因为还有 51% 攻击的问题存在。
- 1 : N:在众多参与者中,只要有一名参与者如你预期的那样行事,整个系统就能正常运行。任何基于欺诈证明的系统都属于这一类。可信设置也是如此,不过在可信设置中,N 通常较小。要注意的是,N 越大越好!
- 极少数 : N:在众多参与者中,只要有达到固定人数的小部分参与者如你预期的那样行事,整个系统就能正常运行。数据可用性检查(data availability check)就属于这一类。
- 0 : N:系统无需依赖外部参与者即可正常运行。自我验证区块有效性就属于这一类。
尤其要注意的是,即使是你正在运行的软件,其正确性通常也取决于 “极少数 : N” 信任模型,以此确保软件代码出现 bug 时,会有人及时发现。在了解这一事实后,你就会发现,努力从 “1 : N” 模型转向 “0 : N” 模型如同为敞开窗户的房子安装防盗门。
另一个重要的区别在于,如果你的信任假设被打破,对系统的破坏有多大?在区块链上,最常见的两种故障类型是活性故障(liveness failure) 和 安全性故障(safety failure)。活性故障就是你暂时无法进行操作(例如,提币、将交易打包进区块、读取链上数据)。安全性故障就是出现了系统想要预防的情况(例如,无效块被添加到区块链上)。
以下列举了一些区块链 Layer 2 协议所采用的信任模型。我使用 “small N” 来指代 layer 2 系统本身的参与者集合,“big N” 来指代底层区块链的参与者。我的假设是 Layer 2 的社区总是小于其底层区块链的社区。另外,我所谓的 “活性故障” 特指代币长时间卡住的情况。无法使用系统但能即时提款的情况不算作活性故障。
- Channel 类(包括状态通道、闪电网络等):使用 “1 : 1” 信任模型来确保活性(你的交易对手可以暂时冻结你的资金,不过你可以将资金分散到多个通道中,从而减轻负面影响),“N/2 : big N” 模型来确保安全性(攻击者可以通过 51% 攻击来偷走你的资金)。
- Plasma(采用中心化运营方):使用 “1 : 1” 模型来确保活性(运营者可以临时冻结你的资金),“N/2 : big N” 模型来确保安全性(攻击者可以通过 51% 攻击来偷走你的资金)。
- Plasma(采用半中心化运营方,如 DPOS):使用 “N/2 : small N” 模型来确保活性,“N/2 : big N” 模型来确保安全性。
- Optimistic rollup:使用 “1 : 1” 或 “N/2 : small N” 模型来确保活性(取决于运营者的类型),“N/2 : big N” 模型来确保安全性。
- ZK rollup:使用 “1 :small N” 模型来确保活性(如果运营者未能打包你的交易,你可以取回你的资金,如果运营者没有立即打包你的取款交易,就无法打包更多交易,你可以在 rollup 系统中任何一个全节点的帮助下自行提款。);不存在安全性故障风险。
- ZK rollup(轻取款增强型):不存在活性故障风险和安全性故障风险。
如果我们增加一种方式来支付服务费,那么帮助他人从 ZK rollup 上取款的行为就是理性的,因此没必要担心无法退出 rollup 的问题。与此同时,如果整个社区都同意 不接受通过 51% 攻击创建的区块链(将交易历史回滚到很久之前,或审查很久之前的区块),就可以减轻其它系统的风险。
结论:如果你听到有人说某个系统 “依赖于信任”,一定要问清楚!这个系统是 “1 : 1” 模型、“1 : N” 模型还是 “N/2 : N” 模型?这个系统需要参与者是利他主义还是理性主义?如果是利他主义,参与者需要付出多大代价?如果假设被打破,那么你需要等待多久才能取回自己的资金?几个小时?几天?还是永远无法取回?搞清楚了这些问题,你才能决定要不要使用这个系统。
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
Justin Sun suspected to have purchased $160m in Ethereum
Justin Sun suspected to have purchased $160m in Ethereum