Vitalik对“信任模型”的思考
许多区块链应用程序最有价值的属性之一就是去信任:应用程序能够以预期的方式继续操作,而不需要依赖特定的参与者以特定的方式进行操作。
即使他们的利益可能会改变,并推动他们在未来以一些不同的意想不到的方式行事。
区块链应用程序从来不是完全去信任的,但是有些应用程序比其他应用程序更接近去信任。如果我们想使信任最小化变成现实,我们需要有能力去比较不同程度的信任。
首先,我对信任的简单一句话的定义:信任是对他人行为的任何假设的使用。
当我们运行一段别人写的代码,是我们相信他们诚实的写了代码,或者至少存在足够多的人检查了这段代码。
为了分析区块链协议,我倾向于将信任分为四个维度:
我们需要多少人按照我们的期望行事?其中的多少个?这些人的行为需要什么样的动机?他们需要利他主义,还是仅仅追求利益?如果违背这些假设,系统会有多糟糕?
现在,让我们关注前两个。我们可以画一个图:
越绿越好。让我们更详细地探讨这些类别:
1-of-1:只有一个参与者,当(且仅当)一个参与者执行我们所期望的操作时,系统才会工作。这是传统的“中心化”模式,也是我们努力做得更好的地方。
N-of-N:“反乌托邦”世界。我们依赖于一大堆参与者,所有参与者都需要按照预期的方式工作,以便使一切正常运行,如果其中有任何一个失败,则没有兜底。
N/2-of-N:这就是区块链的工作方式——如果大多数矿工(或PoS验证者)是诚实的,它们就会工作。注意N/2-of-N的值会随着N的增大而变大;一个由少数矿工/验证者控制其网络的区块链比一个由广泛分布的矿工/验证者控制的区块链有趣得多。也就是说,我们想要提高这一级别的安全,就需要担心如何在51%攻击中幸存下来。
1-of-N :存在许多参与者,只要其中至少有一个人按照我们的期望行事,系统就会正常运行。任何基于欺诈证明的系统都属于这一类,可信设置也是如此,尽管在这种情况下,N通常更小。请注意,我们确实希望N尽可能大!
N中的少数:有很多参与者,只要他们中至少有一小部分人按照我们的期望去做,系统就会正常工作。数据可用性检查属于这一类。
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中的少数”这个信任模型,也要去确保代码中是否有会被别人找出的bug。
另一个重要的区别是:如果我们的信任假设被违背了,系统将如何失败?在区块链中,两种最常见的故障类型是活性故障和安全故障。
活性故障是指我们暂时无法做我们想做的事情。例如,提币,获得包含在区块中的交易,从区块链读取信息。
安全故障是指系统本想要阻止但却主动发生了的事件。例如,无效区块被包含在区块链中。
下面是几个区块链L2协议的信任模型示例。我用“小N”表示第二层系统本身的参与者集合,用“大N”表示区块链的参与者;通常假设第2层协议的社区比区块链本身更小。
我还将“活性故障”一词的使用限制在币被长时间卡住的情况;不再能够使用系统,但能够近乎即时地提币并不算活性故障。
Channels (包括state channels,闪电网络):活性方面是1-of-1的信任模式(我们的对手可以暂时冻结我们的资金,但如果我们在多个对手之间分币,这种伤害可以减轻),安全方面是N/2-of-大N的信任模式(区块链的51%攻击可以窃取我们币)。Plasma(假设是中心化运营商):活性方面是1-of-1的信任模式(运营商可以暂时冻结我们的资金),安全方面是N/2-of-大N的信任模式(区块链51%攻击)。Plasma(假设是半去中心化运营商,例如DPOS):活性方面是 N/2-of-小N的信任模式,N/2-of-大N的信任模式。Optimistic rollup:活性方面是1-of-1或 N/2-of-小N 的信任模式(取决于运营商类型),N/2-of-大N的信任模式。ZK rollup:活性方面是1-of-小N的信任模式(如果运营商没有包含我们的交易,我们也可以提现,如果运营商没有立即包含我们的提现,他们不能生产更多批次,我们可以借助rollup系统的任何全节点自行提现);无安全故障风险。ZK rollup(具有light- withdrawal enhancement功能):无活性故障风险,无安全故障风险。
最后,还有激励的问题:我们所信任的参与者需要非常利他才能像预期那样行事,但是是稍微利他一点,还是需要足够理性?
如果我们添加一种小额支付的方式,那么帮助他人从ZK rollup中提款是合理的,因此,真的没有理由担心我们无法在任何重要的使用中退出rollup。
与此同时,如果我们作为一个社区同意不接受51%的攻击链(这些攻击链在历史上恢复的时间很长,或审查区块的时间很长),那么可以减轻其他系统的风险。
总结
当有人说一个系统“依赖于信任”时,需要更详细地问他们是什么意思! 是指1-of-1,还是1-of-N,还是N/2-of-N? 他们要求这些参与者是无私的还是理性的? 如果是利他主义,到底是小花费还是一个巨大花费?
如果这个假设被违背了——我们是只需要等几个小时或几天,还是我们的资产会永远被卡住了?根据不同的答案,我们自己是否想要使用该系统的答案可能会非常不同。
Source:https://hackernoon.com/do-trust-models-deserve-their-title