本报告由Tim Beiko 和 Pooja Ranjan合著,同时感谢William Schwab、Alita Moore和Edson Ayllon为本报告做的努力。
关键结果
➤ 各项目对EIP-1559的总体印象在积极和消极之间平分秋色(少数项目持中立态度)。如果我们将矿工排除在外,60%的项目总体上持支持态度,持中立态度的项目比持消极态度的多一倍。
➤ 对于项目来说,EIP-1559的主要好处是对gas费的可预测性(特别是对那些为用户设定gas费的项目),另一个好处就是在每一笔交易中都会销毁部分ETH。
➤ 而EIP-1559的一些主要问题包括:其对矿工存在负面影响,难以对该题案进行全面的分析,以及存在一些潜在的实现和工具问题。
➤ 适当的工具、良好的通信、完善的文档和公共测试网都会使得各种项目更愿意提供对EIP-1559的支持,但还有许多项目希望在投入大量时间实现该EIP之前,能对其进行网络升级。
➤ 钱包和交易所在在参与调查的项目中占比较少。随后的社区扩展应以这两类项目为重点。
➤ 在我们与各个项目的通话中,反复被提到几个问题。这些问题在本报告末尾的FAQ环节会给到解答。
背景
在过去的几个月里,EIP-1559[1] (一项改革以太坊gas费市场的提案) 取得了很大的进展。虽然该提案可以为以太坊带来显著的用户体验和经济利益,但它改变了协议的几个基本部分,包括块头、交易格式和交易池。在最后一次实现者会议中,强调了更好地理解这些变化对项目的影响以及衡量社区对EIP-1559的看法的必要性。这令我们决定:采用更加有组织的方法来为这项特定的EIP进行社区扩展。
不久之后,Ethereum Cat Herders组织了一份社区推广问卷,并与建立在以太坊上的项目举行了几次1:1会议。会议上我们回答了各个项目对EIP-1559D 一些疑问,收集了他们对提案的反馈,并讨论了该做些什么努力来让他们提供对该提案的支持。截至2020年10月8日 (周三),本报告收集并分享了大家在会议上的反馈,并列出了解答。
[1] 关于EIP-1559的概述,请参阅最近的阐释文章和Vitalik写的FAQ。
调查对象概述
共有25个项目分享了他们对EIP-1559的看法。其中15人通过问卷参与,另外10人通过视频电话与我们分享。大多数项目不希望在报告的末尾被直接提及,还有一个项目希望完全匿名参与,因此其数据不会出现在报告中。
而接受公开的参与项目有:Gitcoin、Argent、Infura、Kyber Network、ethers.js、POAP、TrueBlocks、Bitfly (etherchain.org/beaconcha.in)、Nanopool以及0xBitcoin。
我们要求项目按以下类别划分:链上应用程序、钱包、交易所、矿工以及其他工具或基础设施。
以下是参与调查的项目的分类:
值得强调的是,受访对象中,矿工的占比很高,而钱包和交易所的占比较低。唯一参与其中的交易所是一所去中心化交易所,Kyber Network。在适当的情况下,该报告将把矿工们提供的反馈与其他项目分离开来,以便更加清晰。随后的社区扩展将着重于交易所和钱包项目。
对于EIP-1559的普遍认识和看法
我们联系的所有项目都表示对EIP-1559有所了解,其中近一半项目一直关注着其最新进展。大家跟进EIP-1559最新进展的最常见方式是刷推特。其他比较常用的渠道有:Github、Discord、Ethereum Magicians和EIP-1559实现者会议。几乎每个项目都从不同的渠道来获取EIP-1559的进展更新信息。
当被问及对EIP-1559的总体印象时,有10个项目 (42%) 对EIP-1559整体印象良好,有4个项目 (17%) 持中立态度或因不够了解而无法表态,有10个项目 (42%) 对EIP-1559总体持消极态度。矿工这一群体持有的态度最为消极,8/9 (89%) 的回答是消极的。如果我们将矿工排除在外,那么9/15 (60%) 的受访者对EIP-1559持积极态度。
EIP-1559的好处
当被问及预计EIP-1559会带来哪些好处时,受访者最常提到的是以下两点:
➤ Gas费的可预测性 (提到7次): 普遍来说,这些项目十分期待EIP-1559将允许他们可靠地设定正确的gas费。那些专门为用户设定gas费的项目,尤其支持EIP-1559。
➤ 销毁ETH (提到5次): 销毁base fee作为EIP-1559其中一点好处,即便在受访者本身都不重视这一好处的情况下,该好处也经常被提及 (例如,“人们喜欢EIP-1559,因为它销毁了ETH”)。
除了这两个,他们所提到的其他的好处有:降低了gas费、在网络中更好地激励大家联合起来、不需要给矿工支付额外的交易费用、为用户更快地打包交易。鉴于EIP-1559并非旨在大幅降低以太坊的费用,因此有必要在以后有关EIP-1559的通信中明确说明这一点。
EIP-1559带来的风险
当被问及他们认为EIP-1559有哪些风险时,最常提到的三个风险是:
➤ 对矿工的负面影响 (提到10次): 几乎所有受访矿工都提到EIP-1559会对他们产生负面影响,如果该提案通过,他们会考虑在另一条链上挖矿。一些矿工建议1559最好仅作为Eth 2.0的一部分。挖矿方面的其他问题包括: 矿工之间可能互相勾结;矿工们不肯升级他们的客户端以支持EIP-1559;以及如果小矿工被逐出以太坊,挖矿风险将集中化。
➤ 难以分析EIP-1559 (提到7次): 第二个主要问题 (如果将矿工的回答排除,则是第一个问题) 是大家难以分析EIP-1559。这是由于下面几个背景: 首先,它缺乏正式的规范或对该机制的证明,人们难以独立评价和批判该提案;再者,EIP-1559涉及以太坊的许多方面且难以预测二级效应;最后,在EIP-1559真正应用到主网且ETH真正质押之前,都不可能恰当地测试EIP-1559激励设计。
➤ 实现问题 (提到6次): 客户端和工具级的实现问题是他们所提及的第三大风险。具体来说,受访者担心如果没有针对EIP-1559的标准的API,那么到时处理多个客户端可能要比目前更加困难。当EIP-1559投入使用时,还可能存在工具崩溃的问题,以及工具开发人员能否轻松地对EIP-1559进行一致性测试。
其他忧虑
这些问题不一定经常被提及,但值得注意,应列入本报告供实施者和研究人员注意。请注意,我们并没有试图反驳任何这些问题或验证他们的合理性。在整个访谈过程中提出的所有合理的问题都列在这里。
有效性方面的忧虑
➤ 由于base fee会每区块提高12.5%,因此30分钟后会提高100,000倍。而且在EIP-1559的调整期间和使用峰值之间,网络上会出现不匹配 (通常持续几个小时到几天)。EIP-1559如何帮助下一个UNI代币发行,解决做市商清算危机,等等?
➤ EIP-1559试图同时做太多的事情: 提高用户体验并制造通缩压力。为什么我们不按这两个目标分成两个EIP,以便于分析呢?
➤ EIP-1559是否减少区块的净可用空间呢?节点将需要硬件能够处理理论上最大的区块,但平均而言,只能处理一半那么大的块。
➤ 如果人们继续使用遗留交易 (legacy transactions),而不愿意使用EIP-1559,因为这对他们来说更加简单,那该怎么办呢?
挖矿方面的忧虑
➤ 有可能矿工会互相勾结来决定base fee的高低吗?或者激励用户付更高的gas fee吗?我们怎么证明呢?
➤ 如果矿工/质押者之间互相勾结,将base fee变为0,他们不会有任何损失。这对用户和生态系统不会造成像51%攻击那样的负面影响。
➤ 减少对矿工的激励可能导致网络上出现更多的ASIC (专用集成电路)。
➤ 贿赂代理合约 (BribeProxy contract) 可能会变得普遍,这种合约将更多协议外的费用转到币安上。
工具方面的忧虑
➤ tx.gasPrice操作码会被弃用吗?想要利用EIP-1559而使用此操作码的智能合约需要重写吗?人们经常注意到,虽然重写合约工作量不是很大,但项目需要重新审计合约,这可能造成巨大的成本和延误。
➤ 对于一些工具,需要大量的工作来实现。在某些情况下,如果他们在最新版本中删除了遗留交易,那么当用户不是很能接受新的交易方式,并且想要继续使用旧版本时,他们很难再回到旧版本。
实现方面的忧虑
➤ 保持这两种交易类型 (遗留交易和EIP-1559交易)为以太坊网络带来更多的复杂性。
➤ EIP-1559会增加以太坊上DoS攻击的风险吗?
➤ 这将如何影响交易排序?二阶效应是什么?
➤ EIP-1559对客户端堆栈的各个部分如devp2p、内存池、数据库等有什么影响?
➤ EIP-1559尝试在客户端层解决的问题,是否不再需要在共识层做出改变?
➤ EIP-1559的实现将过于复杂,根本无法投入使用。
经济方面的忧虑
➤ 对于销毁base fee的影响,没有做过经济学方面的研究。
➤ 为什么要增加12.5%的base fee,而不是其他数值?
➤ 在EIP-1559在主网上线之前,缺乏激励解决EIP-1559存在的问题。
社区意识形态方面的忧虑
➤ 如果矿工不想升级客户端以支持EIP-1559怎么办?
➤ 我们如何确定EIP-1559能够拥有足够多的支持来进行如此巨大的改变?
对于实现者和研究者来说,努力解决这些忧虑是很有价值的。
EIP-1559的备选方案
当被问及EIP-1559的替代方案时,一些受访者表示唯一的替代方案是EIP-2593,也就是MetaMask的Dan Finlay提出的“自动扶梯费 (Escalator fees)”。
实现意愿与障碍
受访者被问到,为了支持EIP-1559,他们需要对他们的项目做出哪些改变,他们期望花多少时间来做那些改变,以及EIP的拥护者是否可以提供任何帮助推进这个过程。
下面列出了受访项目为支持EIP-1559所需做出的改变:
➤ 重写区块奖励的计算;
➤ 修改处理交易的逻辑,包括更新序列化和解析库;
➤ 升级矿池软件
➤ 重写合约以使用新的操作码,删除弃用的操作码;
➤ 确保对第三方的依赖仍然有效 (例如,Chainlink的预言机)
➤ 思考适用于1559的交易,为用户修改“gas抽象化”功能;
➤ 升级客户端软件;
➤ 更改用于预测gas价格的API;
➤ 修改UI以适用于1559的交易;为客户端RPC(远程程序调用)接口的更改做调整
➤ 使用支持1559的测试网和其他可用资源来做大量的测试和质量评估
➤ 对用于分享区块和交易数据给用户的API做修改
上面提到的大多数更改都是针对具体项目的。为了保护项目隐私,列表综合了受访项目提及的类似修改,并旨在给出一个1559对现有项目影响的定性概述。
当被问到什么会帮助他们优先考虑对EIP-1559的支持时,最常见的答案如下:
➤ 测试网(提到5次):有一个适合应用使用(例如,有支持1559的 JSON RPC)的公共测试网是大多数项目开展它们实现的第一步。
➤ 网络升级集成(提到3次): 有多个项目提到它们想在EIP-1559通过网络升级、被广泛接受后才开始它们的实现工作。这些项目觉得实现一些在主网上没有得到保障的东西不值得。
➤ 激励(提到3次):有几个项目提到如果使用EIP-1559有激励(例如,更低的gas价格)的话,将会推动他们更早实现它。
➤ 这些项目还提到其他一些帮助,包括更新工具(例如,ether.js或者支持EIP-1559的web3.js)、客户端里相关的RPC终端、清晰的操作码定义和弃用时间表、一个用来预测下一个区块的base fee的公共API、完善的文档说明、良好的通信、支持通道、以及合理的EIP经济模型。
同样地,受访者被问到什么会导致他们推迟实现EIP-1559。最常见的回答是“没有”(提到7次),表现出支持EIP的强烈意愿。以下是提到的一些潜在忧虑,顺序为被提及的频率:
➤ EIP/规范问题(提到3次):如果客户端的早期工作发现了规范里的重大问题,项目方会以此作为危险信号,在问题解决前,延缓支持EIP-1559的实现。
➤ 主网部署的不确定性(提到2次):类似于有些项目希望EIP-1559被集成到网络升级时会优先使用他们的实现,其他项目也指出,围绕主网集成的不确定性会延迟他们的实现工作。
➤ 优先次序(2个提及):一些项目提到,与支持EIP-1559相比,他们在做的一些其他功能实现可能会为他们的用户带来更多价值,因此可能会优先那些实现的工作。
➤ 欠缺文档资料与支持(提到2次):如果对项目方来说,如何为EIP-1559提供支持、如何正确地测试它、以及有问题时应该在哪里报告,这些内容都不清晰的话,有些项目可能会推迟提供EIP-1559支持,直到这些条件都成熟了。
➤ 缺乏社区支持(提到2次):有些项目提到如果他们了解到社区内对EIP-1559有反对声音的话,他们便不愿为EIP-1559提供支持,因为一方面有可能努力会白费,另一方面他们不想参与到社区内部的争斗中。
除了这些以外,被提到的其他担忧还包括:糟糕的测试网支持、缺乏适当的工具、尽可能使用遗留交易的可能性、以及不可能在主网部署前对EIP-1559进行测试。
最后,值得注意的是,一些强烈反对EIP-1559的受访者提到,他们无论在什么情况下都不会实现它的。这样的受访者中有6/7(~86%)是矿工。
实现的时间线
我们问这些项目方:他们什么时候开始提供EIP-1559支持,他们准备投入多少时间来做这件事,以及EIP-1559在主网上线后他们希望看到多长的遗留交易能得到支持。
你的项目准备什么时候开始提供EIP-1559支持的工作?
大多数的受访者都希望在EIP上线当前的测试网后开始实现这些变化。很多项目提到尽管EIP对项目开发不会带来重大影响,他们仍然需要重新审计项目的部分代码,这会增加时间与成本的消耗。
这个观点还在另一个问题的回答中得到支持:“你准备为支持EIP-1559投入多少时间(对一个全职人员来说)?”
我们在这里可以看到,大多数的项目在提供EIP-1559支持这件事上都希望花相对少的时间。
最后,EIP-1559上线主网后,项目方强烈希望看到尽可能长的遗留交易能得到支持。超过一半的受访者提及EIP-1559上线主网后,他们希望看到超过12个月的遗留交易能得到支持。这证明了EIP-1559的一个近期更改——对遗留交易的长期支持很可能受到社区的广泛欢迎。
部署到主网后,你希望看到在1559之前多长的交易能得到支持?
结论
这次社区扩展的调查显示,尽管大量的项目方都对EIP-1559感到兴奋,有60%的受访者表示希望看到EIP-1559能在明年部署到主网,但也有一些项目方担心这份EIP还有很多漏洞,且会因为反对这份EIP的矿工而严重倒退。
这么多的忧虑与疑问都强调了EIP-1559需要更多人做解释工作和反驳某些忧虑。最后,受访者明确表示,跨平台的频繁交流、更新工具、支持通道,将大大有助于他们提供EIP-1559支持。
我们希望这份报告对社区是有建设性的!我们将公开我们的调查问卷,其他项目可以继续分享他们的想法,我们也试图接触更多的钱包和交易所项目,以增加这两个类别在此扩展研究的样本量。当接受访问的新增项目达到足够的数量时,我们会发布这份报告的更新版本。
常见问题
在与这些项目方进行访问时,有一些问题经常被提出,下面为社区提供这些问题与一些回答。
常见的评论与忧虑
这份提议书背后的目的是什么?
➤ EIP文件与Vitalik最近的FAQ列出了一些目的
有人反对这份提议书吗?
➤ 有,如这份调查所示。尽管没有一份详细的反对者列表,但矿工这个群体似乎最为反对。值得注意的是,也有非矿工反对当前版本的提议书。他们的忧虑包括缺乏一份正式的经济分析,或更倾向其他替代方案,例如EIP-2593。
就处理交易费问题,是否存在另一份更简单的提议书?
➤ 另一份提议书是EIP-2593,它有助于改善交易发送的UX,但没有引入销毁base fee的 机制。
计划中的变化
终端用户可以期待哪些明显的不同?
➤ 这份EIP应该使应用开发者可以更容易预测他们交易的gas价格,使用户在大多数时间可以看到他们的交易更快被打包进区块,因为区块几乎一直有额外的空间。
对智能合约开发者带来哪些变化?
➤ 这份EIP会修改区块头——增加base fee字段,更改交易格式——删除“gas价格”字段并引入“fee cap”和“tip”字段。
上线计划
它将如何铺开?
➤ 这份EIP将首先在短期的EIP-1559测试网上铺开。如果它被证实是可行的,它将通过网络升级程序,如果被接受了,将会被部署在现有的测试网和主网上。
它是向后兼容的吗?
➤ 不,这份EIP需要一次网络升级来激活,且节点也需要升级来支持它。
网络会如何处理遗留交易,会有过渡期吗
➤ EIP的原始版本是有过渡期的,遗留交易在期间被缓慢弃用。而当前版本的EIP将“gas price”改为“fee cap”,并将“fee cap”与“base fee”的差值设为给矿工的“tip”,由此将遗留交易打包进区块。这意味着,这些遗留交易将可能需要多付他们的tip,但会一直得到支持。
Gas Prices、Base Fee、Fee Caps和Tips
EIP-1559会提高/降低gas价格吗?
➤ EIP-1559不会使gas价格不断升高或降低。Gas价格是对以太坊区块空间需求的函数。该EIP会使gas价格更易于预测(以及帮助用户避免多付gas费),但它不会驱使gas的“均衡价格”下降。也就是说,EIP-1559不会使gas价格从300Gwei下降到30Gwei。
Base fee、fee cap和tip分别是什么?
➤ base fee是一笔交易被打包进区块必须支付的最低gas价格。它取决于区块的空满情况。如果区块空间占用了超过50%,base fee会上涨,如果低于50%,base fee则会下降。base fee是交易费用中被销毁的部分。
➤ Fee cap是一笔交易愿意支付的最高交易价格,包括base fee和给矿工的tip。它允许用户将fee cap设为高于当前的base fee,如果他们猜想下一个区块的base fee会上涨。fee cap中超出的部分(fee cap-base fee-tip)返还给用户。
➤ Tip是交易费中发送给矿工的部分。