0 : N:系统无需依赖外部参与者即可正常运行。自我验证区块有效性就属于这一类。 尽管除 “0 : N” 之外的模型都是建立在 “信任” 基础上的,但是这些模型之间存在巨大差异!相信某个特定的人(组织)会如你所预期的那样行事,和相信任何一个人都会如你所预期的那样行事,二者之间有着天壤之别。相比 “N/2 : N” 和 “1 : 1”,“1 : N” 与 “0 : N” 更为接近。或许有人会觉得 “1 : N” 模型与 “1 : 1” 模型很像,因为这两种系统都依赖一名参与者,但实际上它们之间迥然不同:在 “1 : N” 系统中,如果这名参与者消失或作恶,换一名参与者即可;如果是 “1 : 1” 系统,你就只能束手无策。 尤其要注意的是,即使是你正在运行的软件,其正确性通常也取决于 “极少数 : 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 系统中任何一个全节点的帮助下自行提款。);不存在安全性故障风险。 (责任编辑:admin) |