最近我一直在思考世界末日后的荒原,特别是电影《疯狂的麦克斯:狂暴之路》中的这一幕,主角们刚刚逃脱了第一波追捕,领先于潜在的追捕者。他们需要继续前进,但仍然需要维护电影的核心部分:一辆将他们送往安全地带的巨大“战车”卡车。所以女主角 Charlize Theron 需要在卡车行驶过程中爬到驾驶室下面进行一些维修: 在一辆还在行驶中的复杂大卡车上进行维修,这个想法非常适合这部电影的高强度剧情。当我看到这种情况时,我意识到对于 EIP (以太坊改进提案) 的过程和核心开发者的工作来说,这是一个很恰当的比喻。 对以太坊协议的更改是实时发生的,许多谨慎的、复杂的工程设计会进入到精心打造的升级中,以便所有事情、所有人 (如果可能的话) 都能在升级过程中继续前行。在区块链荒地的道路上仍有颠簸,但总的来说,以太坊仍然遥遥领先于其他劫掠车辆 (技术债务)——只要卡车保持前进步伐,不停止向地平线移动。新的提案在短期内可能会对现状造成一些破坏,但总体而言,它们通常是对协议有价值的改进。 我今天要讨论的升级属于“Eth1.x”的范畴,但不是无状态以太坊工作的一部分,而是一个全新的 Gas 费用市场/区块大小机制。相关的提案已经成为社区和开发人员反馈改进以太坊的一个非常有趣的案例研究。通过观察 EIP 如何随着时间的推移吸引更多的开发者讨论并产生变化,我认为我们可以从中学到很多对于以太坊发展有着建设性意义的讨论,并有希望获得一些明确的见解 (或者至少是一些不太明确的格言警句) 来帮助指导对无状态以太坊 (stateless Ethereum) 计划之外的重大变更的讨论。 通常在本系文章列中,我试图非常有条理地“深入讨论”,但在本文中,我想把更多的重点放在围绕这些提案的讨论的内容和特点上,而不是其中包含的技术细节。在我们对相关讨论的进展以及我们当前的情况进行论述之前,让我们非常简单地看看 EIP-1559 和 “Escalator”这两个提案。 EIP-1559 我们先来看一下最初的 EIP-1559 [1]提案的动机,这是个很好的起点。此提案最初的动机相当简单: “当前以太坊的“最高价拍卖”费用模式效率低下,对用户来说成本高昂。此 EIP 提出了一个取代这种机制的方法,即根据网络需求来对一个基本网络费用进行调整,从而创建更好的费用价格效率,并降低用于避免支付不必要的高额费用所需的客户端软件的复杂性。” 在当前的以太坊系统中,新提交的交易必须等待被某个矿工打包进入下一个区块,但这些交易可以通过增加 gasPrice 参数使其高于网络平均水平,以此来激励矿工打包自己的交易。如果矿工是理性的,那么他们将总是会希望将那些包含最大交易费的交易打包进入新区块中,因此预计被打包进入下一个区块中的交易总是那些有着最高 Gas 价格的交易。 这种最高价拍卖模式的问题在于,在交易需求旺盛的时期,情况可能会很快失控。当区块接近达到满块时,使交易被打包进入下个区块的成本 (交易费) 可能会急剧上升,因为用户会试图以比其他人更高的价格来让自己的交易被打包。 尽管当前矿工们有一定的能力 (备注:比如增加区块 gas 上限) 来增加在单个区块中打包的交易笔数,但这一上限无法很快得到改变,且实际上矿工们更乐于使用较小的满块,而不是将区块 gas 上限越推越高 (对于矿工来说,由于存在叔块率,更大的区块带来更高的风险)。尤其是如果你的钱包使用了 gas 定价算法,从而使你的交易在一个特定的时间框架内被打包,那么你可能最终会支付一笔相当高昂的交易费[2]来让你的交易被打包进入下一个 (几乎) 满了的区块。 EIP-1559 引入了 gas 费用的 “base fee” (基本费) 概念,这笔费用被设定为会动态地调整,从而使单个区块的 gas 总使用量接近当前的 1,000 万 gas 的上限。这笔“基本费”不会流向矿工的口袋,而是会被销毁。为了激励矿工打包交易,用户还将设定一个“Tip” (小费) 参数,并设定一个他们为了让自己的交易被打包进入区块而愿意支付的最大金额,矿工将获得这笔“Tip” (小费)。 由于“基本费”不会根据网络需求的瞬息变化而剧烈波动,因此用户在一定程度上远离了“最高价拍卖”模式带来的低效率问题 (“Tip”费用仍然是最高价模式 ),因为“基本费”会被销毁,而不是给矿工,这样矿工就不会有动机去尝试操控交易费了。重要的是,此机制也试图解决钱包开发者在自动预估网络交易费方面遇到的一个重大问题,使交易费预估变得更加可预测。 更多有关 EIP-1559 的信息,我推荐你阅读 Vitalik 发布的 EIP-1559 FAQ [3],如果你想要更深入地了解,可以阅读 Barnabe Monnot 发布的这个 Jupyter notebook[4]。 一个新的挑战性提案出现了:Escalator 当前以太坊交易费的“最高价拍卖”体系的低效性问题是没有争议的事实,且明确指出这一点是很重要的:当前这个交易费机制可以变得更好,没有人会对此提出异议,而且找到另一种替代最高价拍卖模式的机制无疑将有利于整个以太坊网络 —— 最终这将有利于开发者和最终用户。我们都能够而且应该在这一点上达成一致。 然而,EIP-1559 中提议的新机制与当前的机制运行方式不同,对其进行更改将导致一些问题,尤其是对于任何为用户搭建和提交以太坊交易的软件来说更是如此。钱包尤其需要做出重大改变,以适应这一新机制。即便从长远来看,事情最终变得对所有人都更好,但短期来看,EIP-1559 提案给那些需要适应此变更并防止软件崩溃的开发者们带来了巨大的负担。 EIP-1559 在其最初的汤池中漂浮一段时间之后,以太坊社区开始权衡,包括受此提案影响最大的钱包开发者。钱包开发者们没有抵制此提案,而是选择了一条有趣的讨论路线:他们重新考虑了此提案的核心动机 (即改善以太坊交易的用户体验),并将此提案置于该情境中,本质在他们表示“如果无论如何我们都将要做所有这些工作,那我们从一开始就应该了解这对于用户来说将是什么样子,且我们应该将之用于帮助指导此提案中提议的内容。” 这简要地解释了 Dan Finlay 反对 EIP-1559 而提出的提案:The Escalator Algorithm[5]。此提案与 EIP-1559 的机制存在许多类似之处,且动机和目标也几乎相同。但 Escalator 机制是作为另一种改进提案而提出的,推动社区对单独提出的这两种机制进行更细致的讨论。 “为了推动社区对 gas 费用市场进行更加富有成效和更具体地讨论,我认为提出一个明显优于现状的替代性方案是很重要的,这样 EIP-1559 提案中声称的任何特性都可以与一个可行的替代性改进相比较。” 这个 Escalator 机制与当前的单一价格拍卖模式类似,但有着一些重要的改变: 用户不提交有着固定竞价的交易,而是提交“逐步上升的”出价,并明确他们愿意使交易被打包而支付的最大金额。所有的出价都会被放入一个“escalators” 队列中,这个队列将以同样的速率逐步地、可预测性地增加队列中的所有出价。矿工在查看所有 escalators 的队列时,会选择那些有着最高出价的交易,不管这些交易在哪个 escalator 之上。当某笔交易被打包进入某个区块中时,该用户将会支付该列队中仅次于最高出价的“第二高价格”,而不是支付用户当前的出价。 Escalator 机制的主要优点是它能够实现高效的价格发现。,同时通过在排队时收取第二高价格来防止用户支付过高费用。它也有一些与 EIP-1559 相同的优势,使用户更容易选择正确的费用,即使在网络拥堵的时候。值得注意的是,Escalator 机制本身不会改变决定区块大小的机制。 Escalator Algorithm 提案本身就很有意思,我强烈推荐阅读此提案的“user strategy(用户策略)” [6]部分,以便对叁种不同的交易处理模型有一个高层次的比较。如果你对此感兴趣,这篇介绍 Escalator Algorithm 的论文[7]也很值得深入研究,但我有些跑题了... 在一次 EIP-1559 实施者的电话会议上,Dan Finlay 给出了一些模型,展示了钱包中各种参数向用户呈现的方式,强调了这些如何可以根据所需的用户干预级别来隐藏或者显示这些参数。见下图: 该设计旨在作为社区讨论的参考,并帮助我们从用户的角度来考量 EIP-1559 和 Escalator Algorithm 这两个提案。 通过引入一个合理的替代方案并重新定义开发者的批评来优先考虑用户的挑战,EIP-1559 / Escalator 的讨论已经非常巧妙地为改善以太坊费用市场这一最终目标创造了新的探索空间。这方面还远未为下一场硬分叉升级做好准备,但它像《疯狂的麦克斯》中的大卡车,仍在前进。 以太坊的未来 我认为 EIP-1559 / Escalator 是一个值得以太坊社区关注和学习的重要问题,特别是因为这与无状态以太坊的另一个更遥远 (且更引人注目) 的改进,即 Oil/Karma EVM semantic changes[8],具有许多相同的特征。就像在费用市场一样,其中一些提议的修改将对开发者和用户产生重大的二阶影响。同样在 EIP-1559 的例子中,需要在用户体验方面有着明确的支持,进而有机会与理解用户体验的开发者协调,以帮助以太坊改进提案保持势头,最终成功升级。 改进以太坊 (Eth1.x) 和其他公链是一个艰巨的旅程。正确的讨论路线应该是一条保持那些有意义的改进提案仍然在地平线上的道路,而且确保最受影响的开发人员和用户的声音被听取,并整合他们的关注点。因为最终我们都要开着同一辆大卡车前往瓦尔哈拉殿堂的大门...呃,也就是 Serenity (以太坊2.0)。走在以太坊状态膨胀问题[9]的前面,意味着我们要不断有建设性地提出建议、批评和修正变化,同时不丧失动力,我们的生存依赖于此! 参考链接: [1]https://eips.ethereum.org/EIPS/eip-1559 [2]https://etherscan.io/txs/label/high-transaction-fee [3]https://notes.ethereum.org/Wjr1SnW-QaST7phX9C5wkg?view [4]https://github.com/ethereum/rig/blob/9de2ecbba130fba13011eca2b229979b0adcba52/eip1559/eip1559.ipynb [5]https://github.com/danfinlay/EIPs/blob/Escalator/EIPS/eip-x.md [6]https://github.com/danfinlay/EIPs/blob/Escalator/EIPS/eip-x.md#user-strategies-under-various-conditions-and-algorithms [7]https://agoric.com/papers/incentive-engineering-for-computational-resource-management/full-text/ [8]https://ethresear.ch/t/meta-transactions-oil-and-karma-megathread/7472 [9]https://blog.ethereum.org/2019/12/10/eth1x-files-fast-sync/ |
注册有任何问题请添加 微信:MVIP619 拉你进入群
打开微信扫一扫
添加客服
进入交流群
发表评论