特别感谢 Justin Drake 以及 Flashbots 团队给予的反馈和讨论。
威胁共识网络持续去中心化的一个主要风险,是围绕矿工可提取价值(MEV)的经济学。简单来说,MEV 就是从选择下一个区块内容的能力中获取利润。举个例子,针对自上一个区块以来发生的价格变动,对所有链上去中心化交易所进行套利。
虽然一般的 PoS 奖励是相当平等的,因为单一验证器的回报率与强大的验证池相同,但在寻找复杂的 MEV 提取机会方面,存在着显著的规模经济性。
一个规模大 10 倍的池子,就拥有 10 倍的机会来提取 MEV,并且它可以花费更多的精力来进行优化,以从每个利润机会中提取更多。除此之外,MEV 还使得去中心化池复杂化,因为在去中心化池子中,仍然需要一个实体来负责打包并提出区块,他们可以轻松地秘密提取 MEV,而无需和池子本身分割收入。
最出名的解决方案就是提议者(proposer)/区块构建者(block-builder)分离。与区块提议者试图自己生产收益最大化的区块不同,他们依赖于一个市场。在这个市场中,我们称之为区块构建者的外部参与者,生产包含完整区块内容和提议者费用的 bundle 包,而提议者选择最高费用的 bundle 包。
提议者的选择被简化为选取费用最高的 bundle 包,这种算法非常简单,以至于在一个去中心化池子中,它甚至可以在 MPC 内完成以防止欺诈。
这篇文章提出了一些关于如何实现这一点的设计。
另请参阅 2018 年的想法,这些想法与此处的想法密切相关:优化提议承诺方案(Optimised proposal commitment scheme)。
在这一点上,分叉选择规则有能力做出三个判断中的一个(而不是通常的两个):
请注意,在第二种情况下,proposal 仍然成为了链的一部分,并且至关重要的是,区块构建者向提出者的付款仍在处理(但区块构建者自己不会获得任何费用或自己获取 MEV)。
五个属性中的三个很容易满足:
而共识层属性,以及不受信任的提议者友好性要更加棘手。这种设计确实改变了分叉选择的工作方式,将其从 2 个选项增加到 3 个选项,这也意味着提议者不再是游戏中的最后一个参与者。从理论上讲,人们可以推断,如果分叉选择能够做出决定,那么这应该是好的,但这仍然是一个潜在未知的重大变化。
提议者看不到 bundle 包内容,也不能通过 bundle 包窃取来欺骗区块构建者,但是他们可以对区块构建者使用更微妙的攻击。他们可以在一个 slot 时间段的末尾发布他们的提议,确保证明人(可能)按时看到 proposal 提议,但不能给区块构建者足够的时间发布 body,因此证明人很有可能没有按时看到 body。这给区块构建者带来了风险,并激励他们青睐值得信赖的提议者。此外,它还创造了一个机会,通过这个机会,恶意的大多数人可以对自己不喜欢的区块构建者进行重罚。
对于这一问题,我认为有两种缓解方法:
(1)诚实的行为将导致(构建者,提议者)回报为(0.05, 1);
(2)提议者或证明人发布太晚,导致一个只有 header 头的区块被接受,则回报为 (-0.5, 0.5) ;
有一个新的罚没条件,它可以驱逐和惩罚任何发布不属于(相同 slot 时间段内)列表提议的提议者。
还要注意的是,提议者在步骤(2)中提交的 bundle 包头列表也可以是包头的加密哈希列表,其中每个哈希都加密到该 bundle 包的构建者的公钥,以便只有构建者知道它们是否被接受。这降低了 DoS 攻击风险。
同样,五个属性中有三个很容易满足:
在这种情况下要确保的两个较难的属性是,弱提议者友好性和不受信任的区块构建者友好性。令人担忧的是,恶意的区块构建者可以通过提出大量的提议来攻击提议者,这些提议都提供了非常高的费用,但从不公布其中任何一个提议的 body。如果提议者对他们接受多少 bundle 包有上限,那么这种攻击可以将所有合法 bundle 包定价,并使提议者没有可合法包含在其区块中的 bundle 包。如果提议者可接受的 bundle 包数量没有上限,那么这可能导致向提议者发送无限数量的全 bundle 包体(相想每个 500 kb),这是一个巨大的带宽需求。
该难题的一个解决方案是以某种非硬性限制的方式对 bundle 包头提交进行速率限制。
费用本身也可能仅在你的 bundle 包未包含,但较低价格的 undle 包包含在内的情况下收取,因为这是你可能存在恶意行为的具体情况(或提议者是恶意的或网络当时是坏的)。
这是有先例的,比如 ENS 拍卖收取 0.5% 的失败者费用,以阻止人们在显然不会获胜的情况下进行出价(只是为了增加获胜者必须支付的金额)。
然而,这些技术存在对提议者引入信任要求的风险,因此需要谨慎完成,并且未能将 bundle 包包含在内的惩罚不能太高。
另一种解决方案是允许免费和无限制的 bundle 包主体发布,但限制网络层的主体传播。一种简单的算法是:
秒。添加一个规则,如果节点已广播了一个更高收入的 bundle 包主体,则该节点不会再广播一个 bundle 包主体。
这两种技术可以结合在一起:你可以收取少量费用来将预期的 bundle 包数量减少到(例如)每 slot 50 个,然后使用这样的网络层机制进一步降低带宽需求。
截至目前,我还无法确定上述两种方法是否是解决问题的唯一途径,可能还会有其他的方法。在这两种方法中,想法 (1) 在概念上更简单,但它给区块构建者带来了风险以及更复杂的分叉选择规则要求。
而从分叉选择和共识角度来看,想法 (2) 要更简单,但它在处理恶意区块构建者 DoS 攻击方面存在挑战,并且该问题的任何解决方案也有可能产生其他的问题(尽管可以想象这可以最小化)。到目前为止,我仍然不确定哪个方案会更好一些。
注:原文作者是以太坊联合创始人 Vitalik Buterin。
丁丁打折网©版权所有,未经许可严禁复制或镜像 ICP证: 湘ICP备2023003002号-11
Powered by 丁丁打折网本站为非营利性网站,本站内容均来自网络转载或网友提供,如有侵权或夸大不实请及时联系我们删除!本站不承担任何争议和法律责任!
技术支持:丁丁网 dddazhe@hotmail.com & 2010-2020 All
rights reserved