危害三角

本文详细探讨了Casper协议中的的概念,描述了在不同攻击场景下,攻击者与受害者之间的损失比例。文章分析了Casper如何通过惩罚两种攻击双方来减少攻击行为,并引入了协议效用函数的概念,旨在为协议的健康度提供量化评估。整体上,内容透彻,对Casper协议的激励机制进行了深入的探讨,适合对区块链技术有一定了解的读者。

危害三角

危害三角 下面是我本周在康奈尔大学的一次演示中制作的一张幻灯片中的图示:

如果有一张图可以捕捉到Casper激励哲学的核心原则,那可能就是这张图。因此,它需要进一步的解释。

该图显示了三个利益相关方 - 少数派、 majority和协议(即用户),以及四个箭头表示可能的对抗性行为:少数派攻击协议、少数派攻击多数派、 majority攻击协议,以及 majority攻击少数派。每种行为的例子包括:

  • 少数派攻击协议 - Finney 攻击(一名矿工在一个工作量证明区块链上进行的攻击,其中矿工重复消费未确认或可能单确认的交易)
  • 少数派攻击多数派 - 轻量级分叉(在工作量证明链中的少数派试图撤回包含某些不希望的交易的任何区块,但如果该区块得到两个确认则放弃)
  • 多数派攻击协议 - 传统的51%攻击
  • 多数派攻击少数派 - 51%审查攻击,其中一个财团拒绝接受来自财团外的矿工(或验证者)的任何区块

Casper哲学的本质是这样的:对于所有四种攻击类别,我们希望对攻击受害者遭受的伤害与攻击者的成本之间的比例设定上限。在某种程度上,Casper中的每一个设计决策都基于这一原则。

这与通常的工作量证明激励思维方式有很大不同,因为在工作量证明的观点中,最后两种攻击是没有防守的。前两种攻击,即Finney攻击和轻量级分叉,是昂贵的,因为攻击者冒着其区块无法被纳入链中而失去收入的风险。然而,如果攻击者是多数派,这种攻击就是没有成本的,因为攻击者可以始终保证其链将是主链。从长远来看,难度调整确保所有矿工的总收入无论如何都是完全相同的,这进一步意味着如果攻击导致一些受害者失去金钱,则攻击者获得金钱。

工作量证明的这一特性源于传统的中本聪工作量证明从根本上惩罚异议 - 如果作为矿工的你生成一个与共识一致的区块,你就会获得奖励,而如果你生成一个与共识不一致的区块,你就会受到惩罚(这个惩罚并不在协议中,而是因为这样的矿工在生成该区块时消耗了电力和资本,却没有获得任何奖励)。

而Casper则主要通过惩罚矛盾来运作 - 如果你发送了两个互相冲突的消息,则你将受到非常重的惩罚,即使其中一条消息与共识一致(在关于“最小惩罚条件”的博客文章中了解更多)。因此,在最终性回溯攻击事件中,导致回溯事件的人将受到惩罚,而其他人则不受影响;多数派只能以沉重的代价攻击协议,并且多数派无法导致少数派失去金钱。


当我们谈论另外两种攻击类型时,事情会变得更加棘手 - 活跃性故障和审查。活跃性故障是指大部分Casper验证者离线,导致共识无法达成最终性;审查故障是指大多数Casper验证者拒绝接受某些交易,或者拒绝接受来自其他Casper验证者(受害者)的共识消息,从而剥夺他们的奖励。

这涉及到一个基本的二元对立:说话者/听众故障等价

假设B说他们没有收到A发来的消息。有两个可能的解释:(i)A没有发送该消息,(ii)B假装没有听到该消息。仅凭B的声明,没有办法判断这两个解释中哪个是正确的。与区块链协议激励的关系是这样的:如果你看到一个协议执行,其中70%的验证者消息被纳入链中而30%没有,并且没有其他信息(而这就是区块链所看到的),那么无法判断问题出在30%离线的验证者身上还是70%审查的验证者身上。如果我们希望让这两种攻击变得昂贵,我们只能做一件事:惩罚双方

惩罚双方使得一方可以“困扰”另一方,如果他们是少数派则选择离线,而如果他们是多数派则选择审查。然而,我们可以通过困扰因子分析技术来确定这种困扰的容易程度。某一策略的困扰因子本质上是受害者损失的金额与攻击者损失的金额之比,而某一协议的困扰因子是该协议允许的最高困扰因子。例如,如果一个协议允许我使你损失3美元,而我只损失1美元,那么困扰因子是3。如果没有方式使他人损失金钱,困扰因子为零,而如果你可以让他人无成本地损失金钱(或对自己有利),则困扰因子为无穷大。

一般来说,无论在哪种说话者/听众的二元对立存在的地方,困扰因子都无法由任何小于1的值全局界定上限。原因很简单:两方都可以困扰对方,因此如果A方可以以x的因子困扰B方,那么B方也可以以1x的因子困扰A方;x和1x不能同时小于1。我们可以在各个因子间进行操作;例如,可以认为对于多数攻击者允许困扰因子为2,而对于少数攻击者保持困扰因子为0.5,这是因为少数攻击者的可能性更大。我们也可以允许小规模攻击的困扰因子为1,但专门针对大规模攻击强制进行链分裂,其中一条链对一方进行惩罚,而另一条链对另一方进行惩罚,相信市场会选择偏向于攻击者不受青睐的链。因此,在这一框架下有很多妥协的空间,可以在不同关切之间进行权衡。

惩罚双方还有一个好处:确保如果协议受到伤害,攻击者将受到惩罚。这确保了无论攻击者是谁,他们在避免攻击方面都有与协议所受伤害相称的激励。然而,如果我们希望界定协议的伤害与攻击者的成本之间的比例,我们需要一种正式的方法来衡量协议所受到的损害。

这引入了协议效用函数的概念 - 一个公式,告诉我们协议的表现如何,理想情况下应该可以从区块链内部进行计算。在一个工作量证明链的情况下,这可以是产生的所有区块中纳入主链的比例。在Casper中,协议效用在每个纪元都被最终确认且没有安全故障发生时为零,对于每个未最终确认的纪元会有一定的惩罚,而每次安全故障会有非常大的惩罚。如果可以将协议效用函数形式化,则可以将由于这些故障导致的效用损失尽可能地接近设定故障的惩罚。

  • 原文链接: vitalik.eth.limo/general...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Vitalik Buterin
Vitalik Buterin
https://vitalik.ca/