极少数 of N:在众多参与者中,只要有固定数量的小部分参与者按照预期行事,系统就能正常运行。数据可用性检查就当属其中。 0 of N:系统无需依赖外部参与者即可正常运行。亲自验证区块就归为这一类。 尽管除 “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 的社区总是小于底层区块链。另外,我使用的 “活性故障” 一词特指代币长时间无法提出的情况。无法使用系统但是能够几乎即时提款的情况不算作活性故障。
|