Vitalik对“信任模型”的思考
Posted chinadefi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vitalik对“信任模型”的思考相关的知识,希望对你有一定的参考价值。
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
关于
ChinaDeFi - ChinaDeFi.com 是一个研究驱动的DeFi创新组织,同时我们也是区块链开发团队。每天从全球超过500个优质信息源的近900篇内容中,寻找思考更具深度、梳理更为系统的内容,以最快的速度同步到中国市场提供决策辅助材料。
Layer 2道友 - 欢迎对Layer 2感兴趣的区块链技术爱好者、研究分析人与Gavin(微信: chinadefi)联系,共同探讨Layer 2带来的落地机遇。敬请关注我们的微信公众号 “去中心化金融社区”。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4B9SI7bf-1651129841935)(https://tva1.sinaimg.cn/large/e6c9d24ely1gzmatj3m4aj20p00dw3zq.jpg)]
Vitalik Buterin眼中的区块链信任模型
大多区块链应用最有价值的属性之一就是“免信任” (trustlessness),即应用能够以预期的方式保持运行而无需依赖特定参与者以特定形式行事,即使他们将来的相关利益可能产生变化并使其做出意料之外的举动。区块链应用从来都不是完全的免信任化,但是某些应用确实比其他应用的免信任程度更高。如果我们想要朝着信任最小化的目标前进,就需要首先具备辨别信任程度的高低。
首先,我个人对“信任”的简单定义是:信任就是对他人行为进行假设。在疫情爆发前,你走在街上不会因为防止有人突然捅你一刀而刻意跟他人保持两米的距离,这就是一种信任:一是信任人们很少会失心疯,二是法制系统的维护者有很强的动机约束这种行为。当你运行其他人写的一段代码时,你信任他们在编写代码时是诚实的 (无论是出于他们自己的良知或是维持声誉的经济利益),或者至少存在足够多的人对代码进行检查以找到漏洞。不亲自种粮食也是另一种信任,相信会有足够多的人为了获取收益耕种粮食并出售给你。你可以信任不同规模的群体,信任的类型也不尽相同。
为了对区块链进行分析,我尝试将信任分解为以下几个维度:
你需要多少人按照你的预期行事?
人数总量多大?
人们需要什么动机?他们需要是利他主义者,还是唯利是图者?他们需要避免协作吗?
如果违反了这些假设,系统会受到多严重的影响?
现在,我们先关注前两点,下面有一个图表:
绿色越深,表示该模型越健康。让我们对这几个种类进行详细分析:
1 of 1:整个系统只有一个参与者。如果这名参与者按照你预期的那样行事,系统就会 (才会) 正常运行。这就是传统的 “中心化” 模型,也是我们要超越的模型。
N of N:“反乌托邦” 世界。系统中的所有参与者都要按照预期行事,系统才能正常运行,如果其中任何人失败,我们没有补救措施。
N/2 of N:这是区块链的运作方式,如果大部分矿工 (或 PoS 验证者) 是诚实的,区块链就能正常运作。要注意的是,N 值越大,N/2 就越有价值。相比只由少量矿工/验证者控制的区块链,矿工/验证者广泛分布的网络更有意义。尽管如此,由于 51% 攻击的可能性,我们还是想在这种程度的安全性上更进一步。
1 of N:有很多参与者,只要其中至少有一个按照预期行事,系统就能正常运作。任何基于欺诈证明的系统都属于这一类,信任设置也是如此,尽管在这种情况下 N 值通常较小。请注意,我们确实希望 N 值尽可能大!
极少数 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 的社区总是小于底层区块链。另外,我使用的 “活性故障” 一词特指代币长时间无法提出的情况。无法使用系统但是能够几乎即时提款的情况不算作活性故障。
“通道”方案(Channels,包括状态通道、闪电网络等):使用 “1 of 1” 信任模型来确保活性 (你的对手方可以暂时冻结你的资金,不过你可以通过将资金分散在多个通道中减少风险),使用 “N/2 of big N” 模型来确保安全性 (有可能在 51% 攻击中失去资金)。
Plasma(中心化运营者):使用 “1 of 1” 信任模型来确保活性 (运营者可以暂时冻结你的资金),“N/2 of big N” 模型来确保安全性 (有可能在 51% 攻击中失去资金)。
Plasma(半去中心化运营方,如 DPOS):使用 “N/2 of small N” 信任模型来确保活性,“N/2 of big N” 模型来确保安全性。
Optimistic rollup:使用 “1 of 1” 或 “N/2 of small N” 信任模型来确保活性 (取决于运营者的类型),“N/2 of big N” 模型来确保安全性。
ZK rollup:使用 “1 of small N” 信任模型来确保活性 (如果运营者未能打包你的交易,你可以提款,如果运营者没有立即打包你的取款交易,就无法打包更多交易包,你可以在 rollup 系统中任何一个全节点的帮助下自行提款);不存在安全故障风险。
ZK rollup(轻取款增强型):不存在活性故障风险和安全故障风险。
最后就是“激励”的问题。要促使参与者遵循预期,你所信任的参与者需要非常利他主义、轻微利他主义,还是说足够理性?默认情况下,“欺诈证明” (fraud proofs) 需要参与者具有轻微利他主义倾向,但其程度取决于计算的复杂性 (详见 “验证者困境” ),并且存在很多方式改进过程,使其更加理性。
如果我们增加一种为服务支付费用的机制,那么帮助他人从 ZK rollup 中提款的行为就是理性的,因此几乎没必要担心无法退出 rollup 的问题。与此同时,如果社区都同意不接受 51% 攻击下的区块链 (回滚很长的交易历史或是审查区块过久),那么其他系统所面临的风险可以被减轻。
结论:如果有人说某个系统 “依赖于信任机制”,那我们可以刨根问底!他们的意思是 “1 of 1” 模型、“1 of N” 模型还是 “N/2 of N” 模型?该系统需要参与者是利他主义还是理性主义?如果是利他主义,参与者的代价有多大?如果违反了假设,需要等待多久才能取回自己的资金?几个小时?几天?还是永远被冻结?明白这些问题后,我们可能对于是否采用该系统会有截然不同的答案。
以上是关于Vitalik对“信任模型”的思考的主要内容,如果未能解决你的问题,请参考以下文章
Vitalik回应马斯克:区块链可拓展性的提升并不简单 |链捕手