注:原文作者是以太坊联合创始人VitalikButerin。
特别感谢JustinDrake以及Flashbots团队给予的反馈和讨论。
威胁共识网络持续去中心化的一个主要风险是围绕矿工可提取价值的经济学,这是从选择下一个区块内容的能力中获取利润的复杂技巧。列举一个简单的MEV示例:针对自上一个区块以来发生的价格变动对所有链上去中心化交易所进行套利。虽然一般的PoS奖励是相当平等的,因为单一验证器的回报率与强大的验证池相同,但在寻找复杂的MEV提取机会方面,存在着显著的规模经济性。简单说,一个规模大10倍的池子就拥有10倍的机会来提取MEV,并且它可以花费更多的精力来进行优化,以从每个利润机会中提取更多。除了这个问题之外,MEV还使得去中心化池复杂化,因为在去中心化池子中,仍然需要一个实体来负责打包并提出区块,并且他们可以轻松地秘密提取MEV,而无需和池子本身分割收入。
最出名的解决方案就是提议者/区块构建者分离。与区块提议者试图自己生产收益最大化的区块不同,他们依赖于一个市场,在这个市场中,我们称之为区块构建者的外部参与者生产包含完整区块内容和提议者费用的bundle包,而提议者选择最高费用的bundle包。提议者的选择被简化为选取费用最高的bundle包,这种算法非常简单,以至于在一个去中心化池子中,它甚至可以在MPC内完成以防止欺诈。
印度新冠疫情救助基金回应V神捐赠:在一段时期内兑现这些代币:5月13日,此前V神向Polygon创始人Sandeep Nailwal上月启动的印度加密货币疫情救助基金(India's Crypto Covid Relief Fund)捐赠50万亿枚SHIB代币(价值近12亿美元)。对此,印度加密货币疫情救助基金发推感谢V神慷慨解囊。并称会在考虑周全的情况下,针对疫情救助需求,在一段时期内慢慢兑现这些代币。[2021/5/13 21:57:16]
这篇文章提出了一些关于如何实现这一点的设计。
另请参阅2018年的想法,这些想法与此处的想法密切相关:优化提议承诺方案
提议者/构建者分离区块提议设计的所需属性
我们将重点关注五个主要的期望属性:
不受信任的提议者友好性:提议者区块构建者的风险很小或没有风险,因此区块构建者没有动机选择具有一定链下声誉或与构建者有个人关系的提议者。
不受信任的构建者友好性:区块构建者提议者的风险很小或没有风险,因此提议者没有动机选择具有一定链下声誉或与提议者有个人关系的构建者。如果需要存款来实现这一点,则应最大限度地降低门槛。
V神:单数据根需要高带宽P2P网络及更复杂的P2P基础设施:针对此前V神称希望可以摆脱委员会,推特网友Mustafa Al-Bassam持续与V神进行互动。该网友表示:“建议仍然有一个委员会,但只有1个委员会而不是64个委员会。这允许区块生产者在其自己的节点内分片生产区块。大矿池将分配给所有分片。至于完全消除委员会(即直接使用Nakamoto共识),我对依靠单个数据根的抽样感到非常满意。如果有多个数据根,那么我感到不舒服。轻客户端假设的数量是零散的。不过,在无委员会的多数据根模型中,一个重要的考虑是,客户端更可能意外地接受64个不可用数据根中的1个为可用,而不是1个不可用数据根中的1个为可用。”V神则表示:“单数据根的挑战在于,你需要一个非常高带宽的P2P网络,没有多少节点能够直接连接到它,所以你需要更复杂的P2P基础设施,以使常规客户能够查询。如果有多个数据根,那么我感到不舒服。轻客户端假设的数量是零散的。我不认为这是真的,因为不是每个客户都选择64个分片中的一个来检查,而是每个客户都需要检查每个分片。因此,问题不在于安全方向,而在于效率方向。”[2020/10/5]
弱提议者友好性:该机制不应该要求提议者具有(i)高带宽或其他计算资源或(ii)高技术复杂性。
声音 | V神:若市场有效,DAI的失效风险减去USDC的失效风险造成了一半的收益率差异:推特网友在V神发起的关于DAI高贷款年利率的投票下回复称:请研究下USDC的贷款利率,例如ETHLend,它与DAI的利率水平相当,因此我认为这说明人们对DAI失效的担忧较少,利率高是因为市场无效。 对此V神回复称,Compound 和ETHLend上的USDC利率约为6-7%。因此,如果这是一个有效市场,意味着DAI的失效风险减去USDC的失效风险造成了一半的(收益率)差异,而USDC的失效风险或Compound的失效风险造成了另一半的差异。 对冲基金Three Arrows Capital首席执行官Su Zhu评论道:DAI的流动性也相当差,交易价为1.01(美元)。目前正在借出USDC、并在为是否转向借出DAI以获得更高收益而争论不休的人,必须首先为DAI支付1%的溢价。 据此前消息,V 神今日在推特发起关于“DAI的贷款年利率与美国10年国债收益率差距”的投票,V神指出,将DAI贷款给Compound可以提供11.5%的年利率,而美国10年期国债收益率仅为1.5%。对于出现此差异的原因,超半数用户认为DAI随时可能崩盘的风险导致了它的高年利率。[2019/8/24]
Bundle包不可窃取:提议者应不可接受区块构建者提出的Bundle包并从中提取交易来制作自己的Bundle包,从而阻止区块构建者获利。
动态 | V神就ETH2.0通胀率设定提出提案 建议增加质押回报:以太坊创始人V神(Vitalik Buterin)就ETH 2.0通胀率设定发表提案,建议增加质押回报。按照Vitalik Buterin在 Github上发表的提案,年通胀率将低于2%。[2019/4/21]
共识层的简单性和安全性:从共识层的角度来看,该机制应该继续是安全的,并且最好与现有的区块提议机制进行相同的分析。
想法1
区块构建者生成bundle包并发布它们创建的bundle包的头,一个bundle包头包含对包主体的commitment承诺、对提议者的付款以及构建者的签名。
提议者选择提供最高付款的bundle包头。他们签署并发布包含该包头的提议。
看到签名的提议后,提供包含包头的区块构建者将发布完整的bundle包。
在这一点上,分叉选择规则有能力做出三个判断中的一个:
区块提议不存在
区块提议存在,但包主体不存在
区块提议存在,并且包主体存在
请注意,在第二种情况下,proposal仍然成为了链的一部分,并且至关重要的是,区块构建者向提出者的付款仍在处理。
V神拆台以太坊:扩容问题已经搞砸了以太坊应用:本周三,在韩国首尔举行的Deconomy会议上,以太坊创始人Vitalik Buterin告诉与会者说,如今任何寻求创建一种“去中心化Uber”或类似应用的人很可能会对以太坊感到很沮丧。“如果你想要在一个不可扩展的以太坊上创建一个去中心化Uber和Lyft,你肯定是疯了。 住手吧。”[2018/4/7]
分析
五个属性中的三个很容易满足:
提议者无条件地接受承诺的付款,因此bundle包不能提议者;
三个步骤都是非常自动化和低带宽的,因此这满足弱提议者友好性;
提议者无法看到他们正在签署的bundle包的内容,因此这满足bundle包的不可窃取性;
而共识层属性,以及不受信任的提议者友好性要更加棘手。这种设计确实改变了分叉选择的工作方式,将其从2个选项增加到3个选项,这也意味着提议者不再是游戏中的最后一个参与者。从理论上讲,人们可以推断,如果分叉选择能够做出决定,那么这应该是好的,但这仍然是一个潜在未知的重大变化。
提议者看不到bundle包内容,也不能通过bundle包窃取来区块构建者,但是他们可以对区块构建者使用更微妙的攻击。他们可以在一个slot时间段的末尾发布他们的提议,确保证明人按时看到proposal提议,但不能给区块构建者足够的时间发布body,因此证明人很有可能没有按时看到body。这给区块构建者带来了风险,并激励他们青睐值得信赖的提议者。此外,它还创造了一个机会,通过这个机会,恶意的大多数人可以对自己不喜欢的区块构建者进行重罚。
对于这一问题,我认为有两种缓解方法:
证明人在接受提议的最长时间和接受一个body的最长时间之间有2秒的延迟。如果你信任证明人,这基本上可以解决问题,尽管区块构建者有损失资金风险的基本问题仍然存在。此外,尚不清楚证明者以这种方式投票是否符合激励措施。
如果一个body没有被包含在内,提议者只会得到一半的付款。这使得提议者恶意破坏的代价很高,但它仍确保了区块构建者恶意破坏的代价仍然很高。例如,如果一个bundle包的提议者费用为1,区块构建者利润为1.05:
诚实的行为将导致回报为;
提议者或证明人发布太晚,导致一个只有header头的区块被接受,则回报为(-0.5,0.5);
想法2
区块构建者制作bundle包并发布他们创建的bundle包头。一个bundle包头包含对内容的承诺、对提议者的付款以及来自构建者的签名。
提议者选择并签署一份声明,该声明由他们所看到的bundle包头列表组成。
看到该声明后,选定的区块构建者会发布其相应的包主体。
提议者从他们预先提交的列表中选择一个bundle包头,并用它发布一个提议。
有一个新的罚没条件,它可以驱逐和惩罚任何发布不属于列表提议的提议者。
还要注意的是,提议者在步骤中提交的bundle包头列表也可以是包头的加密哈希列表,其中每个哈希都加密到该bundle包的构建者的公钥,以便只有构建者知道它们是否被接受。这降低了DoS攻击风险。
分析
同样,五个属性中有三个很容易满足:
提议者不能窃取bundle包,因为他们只有在已将自己限制在有限的现有bundle包头集时才能看到任何bundle包主体。
如果不包括完整的body,就不可能发生构建者对提议者的付款,因此提议者也不能在经济上构建者。
共识属性和以前一样,因为系统仍然是提议者为最后一个行动者的游戏,并且共识规则决定的内容没有变化。
在这种情况下要确保的两个较难的属性是,弱提议者友好性和不受信任的区块构建者友好性。令人担忧的是,恶意的区块构建者可以通过提出大量的提议来攻击提议者,这些提议都提供了非常高的费用,但从不公布其中任何一个提议的body。如果提议者对他们接受多少bundle包有上限,那么这种攻击可以将所有合法bundle包定价,并使提议者没有可合法包含在其区块中的bundle包。如果提议者可接受的bundle包数量没有上限,那么这可能导致向提议者发送无限数量的全bundle包体,这是一个巨大的带宽需求。
该难题的一个解决方案是以某种非硬性限制的方式对bundle包头提交进行速率限制。
提交bundle包的费用,通过一些类似EIP-1559的机制进行调整以达到一定的速率。
作为区块建设者的存款要求,以及一条规则,即当更低价格的bundle包被包含了,而你发布的bundle包没有被包含,那么你就不能为接下来的N个slot提交bundle包。
费用本身也可能仅在你的bundle包未包含,但较低价格的undle包包含在内的情况下收取,因为这是你可能存在恶意行为的具体情况。
这是有先例的,比如ENS拍卖收取0.5%的失败者费用,以阻止人们在显然不会获胜的情况下进行出价。
然而,这些技术存在对提议者引入信任要求的风险,因此需要谨慎完成,并且未能将bundle包包含在内的惩罚不能太高。
另一种解决方案是允许免费和无限制的bundle包主体发布,但限制网络层的主体传播。一种简单的算法是:
为可以传播bundle包主体的最小时间添加一个轻微的延迟:最高支付bundle包的延迟为0秒,第二高支付bundle包的延迟为0.2秒,第三高支付bundle包的延迟为0.38秒,第K高支付的bundle包,就延迟
秒。
添加一个规则,如果节点已广播了一个更高收入的bundle包主体,则该节点不会再广播一个bundle包主体。
这两种技术可以结合在一起:你可以收取少量费用来将预期的bundle包数量减少到每slot50个,然后使用这样的网络层机制进一步降低带宽需求。
结论
截至目前,我还无法确定上述两种方法是否是解决问题的唯一途径,可能还会有其他的方法。在这两种方法中,想法(1)在概念上更简单,但它给区块构建者带来了风险以及更复杂的分叉选择规则要求。
而从分叉选择和共识角度来看,想法(2)要更简单,但它在处理恶意区块构建者DoS攻击方面存在挑战,并且该问题的任何解决方案也有可能产生其他的问题。到目前为止,我仍然不确定哪个方案会更好一些。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。