以太坊MEV黑暗森林发展史:从Gas战争到PBS
Domothy 和我合著了这篇文章。 PBS 仍然是一个活跃的研究领域,但这篇综合性文章旨在汇总迄今为止的研究进展以及研究方向。
在现有架构中,区块提议者(以前的矿工)选择存储池(mempool)中的交易来构建区块。 在以太坊上,这些由验证者组成,它们同时运行共识客户端和执行客户端。 从理论上讲,区块构建者会选择支付最高费用的交易——但这不是一个严格的要求。 因为一个区块构建者可以完全控制 tx 排序和包含,因此区块构建者可以运行复杂的 MEV 策略。 MEV 在任何有活动的地方都是非常普遍的,因此,以太坊是最赚钱的 MEV 战场,迄今为止已被提取超过 6.75 亿美元。
数据来源:Token Terminal
一、MEV 快速入门
从技术上讲,以太坊交易只是一系列字节。 因此,创建和发送它所涉及的成本可以忽略不计。 一个很好的例子是链上套利。 当同一资产在交易所之间定价不同时,就会为价值提取创造机会。 从这笔交易中赚到的任何钱,然后减去 gas 费,基本上就是从区块链上的经济活动中提取的利润。
但是,这里有一个问题:由于区块链的透明性,任何拥有节点的人都可以识别并提交相同的交易。 无论有多少人发送他们的交易,都只会有一个赢家:即提交的交易被确认的人。 正如你可能想象的那样,这极大地有利于决定哪些交易进入下一个区块,以及以什么顺序进行的人,他们可以简单地利用这些交易!
此示例说明了所谓的“MEV 机会”。 鉴于等待确认的待处理交易列表,以及以太坊当前的全局状态,存在特定的交易顺序,可以让区块构建者从生态系统中提取最大价值。 大多数时候,MEV 机会更复杂,需要以正确的顺序进行多次交易,但原理是一样的:区块构建者具有巨大的优势。
二、MEV 发展之路
几年前,当以太坊仍然受到工作量证明(PoW)的保护时,MEV 的概念主要是理论上的。 相反,交易很简单:“这就是我想做的事情,这是我愿意给矿工的钱,让他们把它纳入下一个区块。”
矿工将简单地查看待处理交易列表,按最高费用排序,并将尽可能多的交易放入一个区块中。 而交易本身的复杂性无关紧要。 这满足了一些公平的概念:每个矿工将运行相同的代码,遵循相同的规则,并赚取相同数量的钱(与算力成比例)。
但简而言之,这无法持久。 金融激励滋生竞争, 提供最多包容性的 MEV 交易获胜,因为矿工也受到经济激励来选择最有利可图的交易。 在这些情况下,矿工是获利最多的人,他们甚至不用玩什么游戏。如果有足够的竞争,利润总是趋向于矿工的(或验证者,在 PoS 以太坊的情况下)。
短期:gas 战争
第一个后果很快就显现出来了。 每笔 MEV 交易,无论成功与否,仍然包含在链上的尝试。 这浪费了大量以太坊本已有限的区块空间,导致费用高得令人难以置信。
数据来源:Etherscan
中期:共识的中心化
当矿工意识到他们作为区块构建者所具备的权力时,一股新的中心化力量出现了。 无论出价如何,区块构建者都可以保证包含他们的 MEV 交易。
注意:在 EIP-1559 之后,区块构建者仍然需要支付基础费用(base fee)。
新的策略是让区块构建者积极监控链,以寻找 MEV 机会直接利用自己的权力。 很容易看出为什么这是一个强大的中心化向量,独立于共识机制:更频繁地创建区块将导致更多的 MEV 提取。 但不幸的是,由于规模经济的原因,随着时间的推移,MEV 通过加强提取打破了公平的指导理念。
长期:错位的激励措施
这种中心化导致了二阶后果:除了在一个区块中对交易进行排序之外,区块构建者还可以选择按预期添加他们的区块或将区块链回滚几个区块,以有效地从最近的交易中“窃取”所有 MEV 机会。在某些极端情况下,窃取前一个区块的 MEV 可能是更有利可图的选择,这很容易导致不稳定的区块链不断分裂成更小的分叉,从而导致更长的结算时间。
值得庆幸的是,最后一个问题从未在基础层上实现。 然而,依靠少数杰出的行为者善意地反对强大的经济激励,并不是以太坊所追求的弹性水平。 在足够长的时间范围内,如果完全不加以控制,MEV 将对以太坊构成生存威胁。
三、潜在的解决方案
关于 MEV,目前已经有了许多减轻上述后果的提议,它仍然是一个开放的研究领域。一些潜在的解决方案包括:
1、强制按费用排序区块
结果:
(1) 回到 gas 战争;
(2) 由于缺乏存储池共识,验证者可以忽略不方便的交易;
2、强制包含交易的随机顺序
开放式问题:谁来决定什么是随机的?
结果:
(1)回到 gas 战争;
(2)增加了交易共识的延迟;
(3)除了他们的 MEV 交易之外,验证者可以人为地保持区块为空,这会导致糟糕的体验。
3、加密存储池
结果:
(1)减少有毒的 MEV;
(2)需要增加验证者的诚实假设;
(3)增加延迟;(4)增加复杂性;
(5)增加抗审查性;
(6)验证者自我包含的 MEV 不受影响
研究者们正在探索更多潜在的解决方案,包括密码学方法和加密经济学方法。 “解决 MEV”作为一个整体是不可能的。任何障碍都会导致更深奥的 MEV 提取,从而加剧中心化。令人惊讶的是,下一个最好的事情是接受 MEV 是不可避免的,并且无论我们喜欢与否,它都将永远是一个中心化的向量。
四、区块构建市场
解决方案是通过将提出区块的过程与构建它的过程分开,因此命名为 Proposer-Builder Separation(区块提议者-构建者分离方案)。 “区块提议者”的想法已经存在于以太坊的 PoS 设计中。每 12 秒,就会选出一个验证者作为区块提议者。区块的构建方式无关紧要。验证者的预期工作是将其提议给网络的其余部分,而其他每个验证者的工作是验证它以确保它不会违反任何规则。
PBS 的总体思路是,区块构建者(builder)将竞争并向负责提议区块的任何验证者提交竞标。这个验证者唯一需要做的就是提议出价最高的区块。
使用 PBS,高度对抗的 MEV 战场被小心地隔离到区块构建发生的地方。此外,拍卖系统允许所有验证者轻松地从区块构建者发现的 MEV 机会中受益,无论规模如何。
放弃并将整个事情变成一场大型拍卖,而不真正尝试修复 MEV 本身,这似乎不是我们想要看到的。然而,MEV 实在是太有利可图了,不能将其视为一些罕见的边缘案例。如果我们不直接在协议中规定这样的拍卖,它仍然会以某种形式存在,除了它将是带外的、不透明的并且受制于前面提到的中心化力量。如果不加以控制,很容易看出私人区块构建拍卖会是什么样子,以及它们可能对区块链的去中心化和可信中立性造成的所有损害。
有了 PBS,我们反而受益于这种不可避免的经济现实——我们可以围绕这样的市场应该是什么样子来设计规则,并消除我们不喜欢的部分。我们可以使其公平、透明且易于每个验证者访问。
理想的区块构建市场
理想的市场应该是什么样的 ?
1、中立
(1)区块提议者不应该有动机偏爱某些区块构建者;
(2)区块构建者应该没有动机偏爱某些区块提议者;
2、最小的区块提议者开销
(1)低硬件要求允许市场上有更多的区块提议者;
3、捆绑安全
(1)区块提议者不应该能够拦截已构建的区块,并用 MEV 交易代替他们自己的交易;
4、共识的简单性
(1)由区块构建市场构建的区块,不需要对共识层进行重大更改。
现有的区块构建市场
在协议中直接实现 PBS 会很复杂,这需要一些时间。 与此同时,为了实现相同的目标,出现了一些协议外的解决方案,但它们有一些细微的权衡。虽然没有正式写入协议,但协议外的实现允许更高程度的实验,并为最终实现提供了一个极好的测试平台。Flashbots 创建了一个区块构建市场,其中包含了全捆绑或无捆绑(all-or-nothing bundle)以及有条件付款。
他们的工具包括:
1、MEV-Geth
(1)不利于客户端多样性
(2)仅在合并前工作
2、MEV-Boost
(1)与客户端无关,解决了先前实现的问题
(2)验证者不能操作区块(他们只有在签署区块头后才会收到区块主体)
但协议外市场仍然有一些缺点:
(1)中继者仍然需要信任
(2)审查问题
图片来自:Jon Charbonneau 以及 Delphi Digital
五、剩下的问题
适当的 PBS 设计仍然是一个活跃的研究领域。我们有指导原则,但最终实施并非易事。
1、区块构建者中心化
区块构建者中心化比区块提议者中心化危害小,但仍然不理想。因此,我们正在进行研究以最终创建一个去中心化的区块构建者网络,希望它可以胜过集中的实体。
2、审查问题
实施 crLists 仍然允许审查,但在竞争激烈的市场中,长期交易审查变得过于昂贵,需要区块构建者填充区块。如果区块构建者没有填满区块,空间就会被区块提议者选择的交易填满。这种增加的防御,大大减少了极端区块构建者集中化带来的生存威胁。加密存储池还可以同时解决审查问题和有毒的 MEV,但需要底层协议方面的升级。
3、高 MEV 差异
即使收益通过 PBS 民主化,区块提议者的运气仍然是汇集质押 ETH 的激励因素。一个实体拥有的验证器越多,其就越有可能提出区块并获得 MEV 奖励。在核心协议中实施 MEV 平滑,使我们能够达到理想的公平场景,其中 Staking 质押奖励与质押的数量成正比,因为 MEV 奖励将被汇总并平均支付给验证者。此外,如果以最佳方式实施协议内 MEV 平滑,将减少规避协议内 PBS 设计的动机。
4、正式规范
PBS 领域有许多重要的研究计划,但明显缺乏关于激励或经济学的正式分析。此外,研究空间正在迅速变化,在我们到达分析和实施阶段之前,不可避免地会有更多的发展。
六、结论
在过去的几年中,MEV 和协议研究发生了很多事情,而且我们对它的了解越多,这个主题就越广泛。尽管我们仍有悬而未决的问题,但我们正在通往去中心化、高弹性、中立的全球网络的道路上。
以太坊MEV黑暗森林发展史:从Gas战争到PBS相关推荐
- 深入浅出以太坊MEV
什么是 Front-running 要介绍MEV,就绕不开Front-running(直译为抢跑),也称为Priority Gas Auctions (PGAs),实际上是一个意思. 我们都知道,常规 ...
- 烤仔的朋友们 | 以太坊 Gas 费为何阻碍了 DeFi 发展?怎么办?
本期好友:链闻 撰文:Remco Bloemen,0x 技术专家 编译:Leo Young 你最近要是用了 DeFi 产品,一定会因高额交易费望而却步.现在为以太坊交易支付几十到上百美元交易费再正常不 ...
- 观点 | 回顾以太坊近期及中期扩容路线图,展望 rollup 作为中心的以太坊路线图...
来源 | 以太坊爱好者 作者 | Vitalik 译者注:今年以来,rollup 作为一种非常有潜力的扩容方案得到了广泛的关注,多个使用 rollup 技术的二层项目在主网或测试网上线,Vitalik ...
- 动手编写一个以太坊智能合约
如何部署.调用智能合约 RPC 之前的章节中讲到了怎么写.部署合约以及与合约互动.现在该讲讲与以太坊网络和智能合约沟通的细节了. 一个以太坊节点提供一个RPC界面.这个界面给Ðapp(去中心化应用)访 ...
- 【论文笔记15】以太坊智能合约去中心化的链上数据访问
原文作者:Mohd Sameen Chishti , Farhan Sufyan , and Amit Banerjee , Member , IEEE* 原文标题:Decentralized On- ...
- 区块链及以太坊入门介绍
一.区块链入门介绍 阮一峰写的挺好的: http://www.ruanyifeng.com/blog/2017/12/blockchain-tutorial.html 区块链技术:是一个去中心化的 ...
- 以太坊黄皮书(1~6章)
以太坊黄皮书(一) 引言 简单来说,在以太坊模型中,交易和智能合约的执行会改变节点的状态:可以把以太坊想象成一台计算机.因此,如果你将这个逻辑复制到分布于点对点网络中的其他节点上,并找到一种方法来 ...
- 一起学:以太坊智能合约开发
课程介绍 无论在科技圈还是金融圈,"区块链"俨然成了最热的词汇.2016年,区块链写入了国家的十三五规划中:2017年,央行基于区块链技术的数字票据交易平台测试成功:同年,工信部发 ...
- 八大知识点快速读懂以太坊合并与分叉
到底什么是以太坊合并?为什么以太坊合并会有这么大的影响力? 从900美元左右的低点一路飙升至如今的约1900美元,ETH的上涨让不少等待500美元再抄底的投资者拍断大腿.ETH上涨与以太坊合并升级的到 ...
最新文章
- AttributeError: ‘NoneType‘ object has no attribute ‘span‘
- .NET Core如何为项目提供高性能解决方案?
- BZOJ1833:[ZJOI2010]数字计数——题解
- 网易创新企业大会圆满收官 看新技术和新商业如何撞出花火
- 保留关键字 (Transact-SQL) user 也是,哎
- facenet + Mtcnn 实现人脸识别(实现步骤)
- powershell命令大全
- 20190901:(leetcode习题)缺失数字
- 你必须了解的基础的 Linux 网络命令
- sql中的两个简单嵌套
- LibSass 的二进制文件(P:\HBuilderX\plugins\compile-node-sass\node_modules\node-sass-china\vendor\win32-ia32
- 在w ndoWS7中屏幕保护程序,怎么设置Windows 7屏幕保护时间
- 新手建站十大免费空间推荐-稳定,可用的免费空间及其使用体验
- Android APP隐藏图标、无启动界面、进程隐藏的方法
- 【React】React Fiber
- win系统装机及磁盘分区、清理
- weglogic 创建domian启动卡住
- [c#] DirectoryInfo.GetDirectories() 能扫描读取到文件夹,目录里却不存在。
- 最接地气的一套PHP面试题(总结不易,踩坑踩到挂了好多面试)
- java mousemotionadapter_MouseMotionAdapter 类
热门文章
- java list判断元素_Java的ListObject如何判断元素类别
- 收入为什么增加记入贷方而不是借方--完美解答
- 无干扰网络收音机:Radium for Mac
- 统计二叉树中不平衡节点树的个数
- 管理团队需要的能力和技术
- 电脑查找电子书资源,speedceo浏览器下载PDF文件阅读分享
- torch.nn.functional.cosine_similarity使用详解
- python查找元素在列表中位置
- RuntimeError: generator raised StopIteration
- 2020.7.18 T3Ocd(jz暑假训练day4)