BCSkill (Block chain skill )
区块链中文技术社区

只讨论区块链底层技术
遵守一切相关法律政策!

零知识证明:STARKs 与 SNARKs

新技术之间的冲突

纵观历史,总是有类似的技术大约在同一时间进入市场,寻求类似的结果,但以不同的方式解决问题。当这种市场现象发生时,采用者应该尝试客观地评估每一项技术。

由于 STARK 阵营和 SNARK 阵营都对各自的技术充满热情,我们认为对这两种技术进行客观比较会很有趣。

STARKs 与 SNARKs

快速复习一下,零知识证明技术使一方能够向另一方证明他们知道某些事情,而证明者不必自己传达信息来证明他们的知识。它们既是一种隐私增强技术,因为它们减少了用户之间需要提供的信息量,又是一种扩展技术,因为它们可以允许以更快的速度验证证明,因为它们不包含全部信息非私有系统的信息。

当今市场上最引人注目的两种零知识技术是 zk-STARKs 和 zk-SNARKs。两者都是双方证明知识的方法的首字母缩写词:zk-STARK代表零知识可扩展的透明知识论证,zk-SNARK代表零知识简洁非交互式知识论证。本文将深入探讨从文化和技术的角度分析这两种不同的零知识技术之间的核心差异。此外,这两种零知识技术本质上都是非交互式的,这意味着代码可以部署并自主运行。

下面,我们有几个表格描述了两种技术之间的一些高级差异。我们还将深入研究段落格式的差异。


资料来源:物质实验室

SNARK

2012 年 1 月,加州大学伯克利分校一位名叫 Alessandro Chiesa 的教授与人合着了一篇论文,为他们首次构建的零知识证明创造了术语 zk-SNARK。Zk-SNARK 在其基础上依赖于椭圆曲线来保证安全性。密码学中的椭圆曲线在基本假设下运行,即找到相对于公知基点的随机椭圆曲线元素的离散对数是不可行的。

虽然关于椭圆曲线随机数生成器是否存在后门一直存在很大争议,但整个算法通常仍然是安全的。尽管侧信道攻击中有几个流行的漏洞,但可以通过多种技术轻松缓解。量子攻击确实笼罩在基于椭圆曲线的密码学上,但打破其安全模型所需的量子计算尚未广泛应用。

除了基于椭圆曲线之外,zk-SNARK 还需要可信设置。可信设置是指密钥的初始创建事件,用于创建私人交易所需的证明以及这些证明的验证。最初,当这些密钥被创建时,在验证密钥和发送私人交易的密钥之间有一个隐藏的参数链接。如果用于在可信设置事件中创建这些密钥的秘密没有被破坏,则可以利用这些秘密通过虚假验证来伪造交易,从而使持有者能够执行诸如凭空创建新令牌并使用它们等操作用于交易。由于 zk-SNARKs 的隐私特性,将无法验证凭空创建的代币实际上是凭空创造。话虽如此,信任设置仅在最初需要

因此,基于 SNARK 的网络的用户必须依赖于正确执行可信设置的事实,这意味着与可信设置密钥相关的秘密已被销毁,并且不会由监督仪式的个人持有。对可信设置的依赖一直是 SNARK 批评者最关注的领域之一。话虽如此,开发人员只需要最初使用可信设置,而不是持续使用。

SNARK 的另一个重要批评领域是它们不具有量子抗性。一旦量子计算在很大程度上可用,SNARKs 背后的隐私技术将被打破。当然,SNARKs 的支持者正确地指出,当使用量子计算机时,我们将面临更多问题,例如破坏 RSA 和大多数钱包基础设施。

话虽如此,尽管存在与可信设置相关的问题,但实际上 SNARK 的采用速度比 STARK 快得多的原因有很多。SNARKs 比 STARKs 早几年被发现,这使该技术在采用方面取得了重要的领先优势。Zcash 是较早的数字资产项目之一,它在区块链开发社区中普及了 SNARK 的使用。由于 Zcash 和其他 SNARKs 的采用者,SNARKs 拥有最多的开发人员库、已发布的代码、项目和积极致力于该技术的开发人员。除了 Zcash,新兴的 DEX Loopring 也使用了 SNARK。如果开发人员想开始使用零知识技术,他们在使用 SNARK 方面将比 STARK 获得更多支持。

此外,据估计 SNARK仅需要 STARK 所需气体的 24%,这意味着与 SNARK 进行交易对最终用户来说要便宜得多。最后,SNARKs 的证明大小比 STARKs 小得多,这意味着它需要更少的链上存储。

STARKs

虽然 SNARKs 在文档和开发人员支持方面比 STARKs 有一些明显的优势,但 STARKs 确实提供了一些独特的好处。但首先,让我们从技术角度深入了解 STARK 是什么。

Eli Ben-Sasson、Iddo Bentov、Yinon Horeshy 和 Michael Riabzev 在2018 年撰写了第一篇描述 STARK 的论文。与 SNARK 不同,STARK 的基础技术依赖于哈希函数。马上,依靠散列函数提供了一些好处,例如抗量子。此外,开始在网络中使用 STARK 不需要可信设置。

话虽如此,STARKs 的证明尺寸远大于 SNARKs,这意味着验证 STARKs 比 SNARKs 花费更多的时间,并且也导致 STARKs 需要更多的 gas。

此外,由于缺乏开发人员文档和社区,开发人员将很难使用 STARK。虽然有一些项目创建了基于 STARK 的扩展解决方案,例如STARKWARE,但 SNARKs 社区仍然要大得多。

虽然两个开发者社区都支持 SNARKs 和 STARKs,但以太坊基金会特别表达了对利用 Starks 的 STARKware 的声音支持。事实上,以太坊基金会向 STARKware 提供了 1200 万美元的赠款,这清楚地表明了他们对新兴技术的投入。

此外,虽然与 SNARK 相比,STARK 的文档相形见绌,但技术社区最近为那些希望实施尖端技术的人开发了更多资源

感谢 Anish Mohammad 的洞察力和 专业知识。

原文:https://consensys.net/blog/blockchain-explained/zero-knowledge-proofs-starks-vs-snarks/

什么是 zk-SNARK?

Zcash 是 zk-SNARKs 的第一个广泛应用,zk-SNARKs 是一种新颖的零知识密码学形式。Zcash 强大的隐私保证源于这样一个事实,即 Zcash 中的屏蔽交易可以在区块链上完全加密,但仍然可以通过使用 zk-SNARK 证明在网络的共识规则下验证其有效性。

首字母缩略词 zk-SNARK 代表“零知识简洁的非交互式知识论证”,指的是一种证明结构,在这种结构中,人们可以证明拥有某些信息,例如一个秘密密钥,而无需透露该信息,并且之间没有任何交互证明者和验证者。

“零知识”证明允许一方(证明者)向另一方(验证者)证明一个陈述是真实的,而不会透露超出陈述本身有效性的任何信息。例如,给定一个随机数的散列,证明者可以说服验证者确实存在一个具有该散列值的数字,而无需透露它是什么。

在零知识“知识证明”中,证明者不仅可以说服验证者该数字存在,而且他们实际上知道这样一个数字——同样,无需透露有关该数字的任何信息。“Proof”和“Argument”之间的区别是非常技术性的,我们不在这里讨论。

“简洁”的零知识证明可以在几毫秒内得到验证,即使是关于非常大的程序的语句,证明长度也只有几百字节。在第一个零知识协议中,证明者和验证者必须来回通信多轮,但在“非交互式”结构中,证明由从证明者发送到验证者的单个消息组成。目前,生成非交互式且足够短以发布到区块链的零知识证明的最有效的已知方法是具有初始设置阶段,该阶段生成在证明者和验证者之间共享的公共参考字符串。我们将这个公共引用字符串称为系统的公共参数。

如果有人可以访问用于生成这些参数的秘密随机性,他们将能够创建对验证者来说看起来有效的虚假证明。对于 Zcash,这意味着恶意方可以制造假币。为了防止这种情况发生,Zcash 通过精心设计的多方仪式生成了公共参数。要了解有关我们的参数生成仪式的更多信息,并查看我们为防止暴露 Zcash 所必需的秘密随机性(例如,计算机被喷灯)而采取的预防措施,请访问我们的Paramgen 页面。要了解有关参数生成协议背后的数学原理的更多信息,请阅读我们关于该主题的博客文章或白皮书 ( 1 , 2 )。

如何在 Zcash 中构建 zk-SNARK

为了在 Zcash 中实现零知识隐私,根据网络的共识规则确定交易有效性的函数必须返回交易是否有效的答案,而不会泄露其执行计算的任何信息。这是通过在 zk-SNARKs 中编码一些网络的共识规则来完成的。在高层次上,zk-SNARK 的工作原理是首先将您想要证明的内容转换为关于了解某些代数方程的解的等效形式。在下一节中,我们简要概述了如何将确定有效交易的规则转换为方程,然后可以对候选解决方案进行评估,而无需向验证方程的各方透露任何敏感信息。

Computation → Arithmetic Circuit → R1CS → QAP → zk-SNARK

将我们的交易有效性函数转化为数学表示的第一步是将逻辑步骤分解为尽可能小的操作,从而创建一个“算术电路”。类似于布尔电路,其中程序被编译成离散的单步,如 AND、OR、NOT,当程序被转换为算术电路时,它被分解为由加法、减法等基本算术运算组成的单步,乘法和除法(尽管在我们的特殊情况下,我们将避免使用除法)。

以下是用于计算表达式 (a+b)(bc) 的算术电路的示例:

看看这样的电路,我们可以将输入值 a、b、c 视为在电线上从左到右“行进”到输出电线。我们的下一步是构建所谓的 1 级约束系统或 R1CS,以检查值是否“正确移动”。在这个例子中,R1CS 将确认,例如,从 b 和 c 进入的乘法门出来的值是 b*c。

在这个 R1CS 表示中,验证器必须检查许多约束——几乎电路的每条线路都有一个约束。(由于技术原因,事实证明我们只对来自乘法门的电线有约束。)在 2012 年关于该主题的论文中,Gennaro、Gentry、Parno 和 Raykova 提出了一种“将所有这些约束捆绑在一起”的好方法. 此方法使用称为二次算术程序 (QAP) 的电路表示。需要检查的单个约束现在在多项式之间而不是在数字之间。多项式可能非常大,但这没关系,因为当多项式之间不存在同一性时,它在大多数情况下都不会成立。因此,您只需检查两个多项式是否在随机选择的一个点上匹配 以便以高概率正确验证证明。

如果证明者事先知道验证者会选择检查哪一点,他们可能能够制作无效的多项式,但仍然满足该点的身份。与ZK-SNARKs,复杂的数学技术,如同态加密配对的椭圆曲线的用于评价多项式“盲目地” -即在不知道哪个点正被评估。上面描述的公共参数用于确定将检查哪个点,但采用加密形式,以便证明者和验证者都不知道它是什么。

到目前为止的描述主要解决了如何获得“SNARKs”中的 S 和 N——如何获得一个简短的、非交互式的、单消息证明——但没有解决“zk”(零知识)部分,它允许证明者维护其秘密输入的机密性。事实证明,在这个阶段,通过让证明者使用仍然满足所需身份的原始多项式的“随机移位”,可以轻松添加“zk”部分。

有关 Zcash 中 zk-SNARKs 背后关键概念的分步深入解释,请参阅我们的 SNARKs 解释器系列,其中包含以下帖子:

  1. 同态隐藏
  2. 多项式的盲评估
  3. 系数检验与假设的知识
  4. 如何使多项式的盲评估可验证
  5. 从计算到多项式
  6. 匹诺曹协议
  7. 椭圆曲线的配对

Zcash 使用bellman,这是一个用于 zk-SNARK 的 Rust 语言库。在 Sapling 升级之前,Zcash 使用了 C++ 库libsnark 的一个分支。要更深入地了解用于 Zcash 的 zk-SNARK 的协议,请参阅有关Pinocchio 协议的论文,该协议一直使用到 Sapling 升级,以及目前使用的Jens Groth 的 zk-SNARK。

如何应用 zk-SNARKs 来创建屏蔽交易

在比特币中,交易通过将发送者地址、接收者地址以及公共区块链上的输入和输出值链接起来来验证。Zcash 使用 zk-SNARKs 来证明有效交易的条件已得到满足,而无需透露有关所涉及的地址或价值的任何关键信息。屏蔽交易的发送者构建了一个证明来证明,很有可能:

  • 输入值总和为每个屏蔽传输的输出值。
  • 发件人证明他们拥有输入票据的私人消费密钥,从而赋予他们消费的权力。
  • 输入票据的私人支出密钥以加密方式链接到整个交易的签名,这样交易就不能被不知道这些私人密钥的一方修改。

此外,屏蔽交易必须满足下面描述的一些其他条件。
比特币跟踪未花费的交易输出 (UTXO) 以确定哪些交易是可以花费的。在 Zcash 中,UTXO 的屏蔽等价物称为“承诺”,花费承诺涉及揭示“无效者”。Zcash 节点保存所有已创建承诺的列表,以及已披露的所有无效者。承诺和无效符存储为哈希,以避免披露有关承诺的任何信息,或哪些无效符与哪些承诺相关。
对于由屏蔽支付创建的每个新票据,都会发布一个承诺,其中包含以下各项的散列:票据发送到的地址、发送的金额、该票据唯一的数字“rho”(后来用于派生无效符)和一个随机随机数。

Commitment = HASH(收件人地址,金额,rho,r)

当一个受保护的交易被花费时,发送者使用他们的花费密钥来发布一个无效符,它是来自尚未花费的现有承诺的秘密唯一编号(“rho”)的散列,并提供零知识证明证明他们被授权消费。该散列不能已经在跟踪区块链中每个节点保存的已用交易的无效符集合中。

Nullifier = HASH(支出密钥,rho)

屏蔽交易的零知识证明验证了,除了上面列出的条件外,以下断言也是正确的:

  • 对于每个输入注释,都存在显露的承诺。
  • 无效符和票据承诺计算正确。
  • 输出音符的无效符与任何其他音符的​​无效符发生冲突是不可行的。

除了用于控制地址的支出密钥之外,Zcash 还使用一组证明和验证密钥来创建和检查证明。这些密钥在上面讨论的公共参数仪式中生成,并在 Zcash 网络中的所有参与者之间共享。对于每个受保护的交易,发送方使用他们的证明密钥来生成他们输入有效的证明。矿工通过使用验证密钥检查证明者的计算来检查受保护的交易是否遵循共识规则。Zcash 的证明生成方式需要证明者预先做更多的工作,但它简化了验证,从而将主要的计算工作卸载给交易的创建者(这就是为什么创建屏蔽的 Zcash 交易可能需要几个秒,

Zcash 的屏蔽交易的隐私依赖于标准的、久经考验的密码学(散列函数和流密码),但它是 zk-SNARKs 的添加,与承诺和无效系统一起应用,允许屏蔽交易的发送者和接收者证明加密交易是有效的。为加密货币提供隐私的其他方法依赖于模糊交易之间的联系,但 Zcash 交易可以存储在完全加密的区块链上这一事实为加密货币应用开辟了新的可能性. 加密交易允许各方享受公共区块链的好处,同时仍然保护他们的隐私。计划中的未来升级将允许用户自行决定有选择地披露有关屏蔽交易的信息。有关Zcash 的未来计划,请参阅我们的 Zcash 近期博客文章。

有关如何在 Zcash 中构建屏蔽交易的更深入解释,请参阅我们关于屏蔽地址之间的交易如何工作的博客文章。有关当前 Zcash 协议的完整详细信息,请参阅我们的协议规范

zk-SNARKs 的未来应用

在 Zcash 中创建屏蔽交易只是 zk-SNARK 的许多可能应用中的一个例子。理论上,您可以使用 zk-SNARK 来验证任何关系,而不会泄露输入或泄漏信息。为复杂函数生成证明仍然是计算密集型的,对于许多应用程序来说不实用,但Zcash 团队正在推动优化 zk-SNARKs 的边界,并且已经通过更有效的实现开辟了新天地。

就目前而言,Zcash 的 zk-SNARK 实现可以添加到任何现有的分布式账本解决方案中,作为企业用例的零知识安全层Zcash 团队的科学家是世界上最博学的 zk-SNARKs 研究人员之一,并不断致力于提出新的应用程序并提高零知识协议的效率。如果你的业务需要,可以从零知识证明或具有强大的隐私blockchain应用的解决方案中受益,取得联系我们的业务发展团队。

原文:https://z.cash/technology/zksnarks/

了解如何在 MetaMask 中设置交易 gas 费用

常见问题

EIP-1559 是什么?

EIP-1559 将改变以太坊的市场机制来支付交易费用。从根本上讲,EIP-1559 摆脱了首价拍卖,取而代之的是固定价格拍卖。这一变化的意义在于,提交交易的人不必猜测需要多少 gas,因为下一个区块中将包含明确的“基本费用”。对于想要优先处理交易的用户或应用程序,他们可以添加“小费”以支付矿工费用。您可以在此处更详细地了解 EIP-1559 以及它将如何改变以太坊。

EIP-1559 会使 ETH 通货紧缩吗?

EIP-1559
烧伤花掉的交易费基本费用的ETH。该 ETH 从供应中移除。在 EIP-1559 下,ETH 变得更加稀缺,因为以太坊上的所有交易都会消耗一定数量的 ETH。

对 EIP-1559 的通货紧缩程度进行准确建模是很困难的,因为您必须预测诸如预期交易之类的变量,甚至更难预测的是预期网络拥堵。从理论上讲,发生的交易越多,基本费用的燃烧对整个以太坊供应的通货紧缩压力就越大。根据网络上发生的交易数量,ETH 供应可能会在不同时间减少或膨胀更多

在与 Proof of Stake 合并后,Justin Drake 的模型估计每天将发行 1,000 ETH,并将燃烧 6,000 ETH 作为“最佳猜测”。假设有更多验证者加入,Staking APR 为 6.7%,那么年供应变化将为 -160 万 ETH,年供应率降低 1.4%。

尽管人们越来越意识到 MEV 和潜在的 EIP 会带来更高的透明度,但我们可以预期,随着机构金融交易者使用 DeFi 协议,套利机会只会变得更加复杂。这可能意味着每个区块的小费最终可能会比基本费用多得多。朱苏和Hasu实际预测,不到一半的今天的费用可以通过EIP
1559年

已经烧掉了多少 ETH?

你可以在这里跟踪。

作为 EIP-1559 的用户,我有什么变化?

这个想法是使用户的gas费用或多或少透明。因此,钱包将能够有更好的估计并使交易费用更可预测。他们不必过多依赖外部预言机,因为基本费用由协议本身管理。将有额外的用户体验优势,例如自动化费用竞标机制,从而减少交易确认的延迟。

此更改何时推出?

EIP-1559 将于 8 月 5 日在以太坊主网上上线,届时我们将开始推出此更改。目前,它在 Ropsten、Rinkeby、Goerli 网络中可用。

费用

EIP-1559 会使汽油更便宜吗?

不,这不是 EIP 的意图。作为更可预测的基本费用的副作用,如果我们假设费用的可预测性意味着用户不会频繁地为 Gas 多付钱,那么 EIP-1559 可能会导致 Gas 价格有所下降。使用 EIP-1559,在区块填充超过 50% 后,基础费用将增加和减少 12.5%。例如,如果一个区块 100% 满,基础费用增加 12.5%;如果是 50%,基本费用将相同;如果是 0%,基本费用将减少 12.5%。

应用程序向汇总和第 2 层的持续移动将大大降低费用。

如何设置正确的gas费用?

MetaMask 在设置 gas 费用时会为您提供三个选项:

  • 高:这是掉期或其他时间敏感交易的最佳选择。如果掉期处理时间过长,它通常会失败,您可能会损失资金。
  • 中:这有利于发送资产、提取资产或其他非时间敏感但重要的交易。
  • 低:仅应为处理时间不太重要的交易选择较低的 gas 费用。由于费用较低,很难预测您的交易何时(或是否)会成功。

我应该编辑gas费用吗?

您可以在高、中或低汽油费之间进行选择。请参阅上面的问题以了解这些含义。此外,您可以在“高级选项”设置中编辑您的 gas 限额、优先费用和最高费用。这将覆盖 MetaMask 为您“推荐”的低、中或高设置。

我的交易在 EIP-1559 上的速度有多快?

这暂时还不得而知。预测是由于 gas 费的可预测性,交易将进行得更快。

汽油费是如何计算的?

Gas 费用由区块的满量决定。EIP-1559 建立了交易包含的市场费率,并允许以太坊拥有双倍的区块空间(通过将每个区块的最大 gas 限制从 12.5M 增加到 25M)。然后它将块定位为只有 50% 满。

当网络利用率 > 50% 时,基础费用增加
当网络利用率 < 50% 时,基础费用减少

随着时间的推移,以太坊的区块大小将平均为相同的大小,但这种额外的容量允许具有交易包容性的灵活性。从本质上讲,它将消除设置天然气价格以进行交易的额外步骤。

MetaMask 的汽油费是否比其他任何地方都高?

不,MetaMask 使用与其他钱包如何估算 gas 价格类似的 gas 估算预言机的汇编。我们相信我们可以提供有竞争力的气体估算。

估计的gas费用与我实际支付的费用有多少不同?

估计的gas费用是一个范围。此范围的上限是用户将为交易支付的最高金额。在 EIP-1559 推出后,我们应该能够从我们的 gas 估计范围分析我们的交易包含率。

我应该考虑采用不同的方法来为掉期交易和其他交易设置 gas 费用吗?

MetaMask 将提供三个选项来设置 gas 费用:高、中和低(更多详细信息在“我如何设置正确的 gas 费用?”上方的常见问题解答中),并且会预先选择我们认为与您的交易类型相关的费用。如果您愿意,可以更改此设置,但我们会提供最佳建议。对于掉期等时间敏感的交易,我们建议并会预先选择“高”的gas费用。

什么是基本费用/最高费用/优先费用/等。是什么意思?

有关(新)术语的详细定义,请参阅我们的词汇表

由于我设置了“最高优先费用”,我如何才能看到我实际为交易支付的金额?

您可以查看已支付的估计 gas 费用的交易活动,或在区块浏览器(如 Etherscan)上查看交易收据中的“有效GasPrice”。

我可以在没有优先费(“矿工小费”)的情况下进行交易吗?

是的,你可以,但有可能其他交易(确实包括优先费)将被优先考虑,因为矿工被激励包含优先费的交易。

典型用户会选择“小费”金额还是为用户预选的总费用的一部分?

“小费”将作为用户在提交交易时看到的总体“汽油费”中包含在内。您还可以“编辑汽油费”以增加或减少称为“优先费”的“小费”。

在哪里可以看到他们为小费支付的费用?像 Etherscan 这样的区块浏览器现在会显示这些信息吗?

大多数工具将相应更新以显示与 EIP 相关的新信息。交易收据中现在将有一个“effectiveGasPrice”,它返回交易执行后支付的价格(即基本费用+优先费用)。

集成

EIP-1559 如何与 MetaMask 上的 Trezor/Ledger 集成一起工作?

Trezor 和 Ledger 尚不支持 EIP-1559,因此 MetaMask 将回退到 EIP-1559 之前的气体控制。

是在钱包还是 dapp 级别上实现?换句话说,我所有的 dapp 连接都会显示钱包中的新界面,还是只显示采用 EIP-1559 的 dapp?

如果 dapp 尚未切换到新的 EIP-1559 字段,MetaMask 将检测到这一点并使用 gasPrice 作为 maxFeePerGas。这意味着用户可能会为他们的交易多付钱。

用户体验

EIP-1559 还能如何改变钱包用户体验?

这将因钱包而异。这个想法是让基于区块需求的费用对用户更加透明。像 MetaMask 这样的钱包将能够有更好的估计,并且不必过多依赖外部预言机,因为基本费用由协议本身管理。此外,在使用 MetaMask 时,您可以决定高、中或低 gas 费。虽然会预先选择推荐类型,但用户可以在确认交易之前进行更改。此外,用户可以在“高级”设置中更改最高费用、最高优先费用和 Gwei。这样做将覆盖初始的高、中或低设置。

在网络拥塞期间,用户体验是否会有所不同?

在网络严重拥堵期间,基本费用将根据每个区块超过理想气体限制的需求量调整 12.5%,直到需求减弱。与首价拍卖不同,用户将更好地了解网络的拥堵程度,因为基本费用有多高。如果它太拥挤,用户可以支付或不支付该价格,就像他们在商店购买商品一样。或者,他们提交较低的费用并等待未来价格下跌。

开发者常见问题

作为 EIP-1559 的开发人员,我有什么变化?

我们建议 dapp 开发者和网络在伦敦分叉发生后立即分别切换到 EIP-1559 字段和区块头。如果不是,传统的 gasPrice 将用作 maxFeePerGas,这意味着用户可能会为他们的交易支付过高的费用。

如何使用 MetaMask 为我的 dapp 实施 EIP-1559?

您可以通读EIP-1559 规范,也可以查看Ethereum 的 JSON-RPC 规范中的 EIP-1559 部分。

是在用户级别还是 dapp 级别上实现?换句话说,如果我实施 EIP-1559,我的所有 dapp 用户会看到新的 gas 费用设置,还是只有同意采用 EIP-1559 的用户?

两者都是。用户通过客户端(钱包)与以太坊网络交互。用户还可以通过 dapp 与网络交互。如果 dapp 没有切换到新的 EIP-1559 字段,MetaMask 将检测到这一点并显示 1559 之前的气体估计 UI。

谁估计 gas 估计值,dapp 还是 MetaMask?

MetaMask.

所有的客户团队都准备好迎接 EIP-1559 了吗?

是的,客户规格已被冻结。伦敦硬分叉发布时间表如下

是否有关于复仇dapps任何潜在的风险?

答:所有的改变都是有风险的,但以太坊社区在强大的软件开发和协调方面有着良好的记录。EIP-1559 给对时间敏感的网络参与者(例如预言机)带来了一些潜在风险。Oracle 通常提供支持 DeFi 生态系统中各种参与者所需的定价信息。例如,Compound 需要知道用户抵押品的估值(即价格 x 资产数量),以确定他们的头寸是否需要清算。这些资产的估值必须不断更新,Compound 依靠预言机来更新这些信息。可以在这篇文章中找到有关这方面的更多信息。

对于伦敦硬分叉,我的项目可能需要考虑哪些更改?

EIP-1559(和 EIP-3198)的技术变化可能会影响您的项目,包括新的区块格式、新的交易格式、用于选择 gas 价格的新值、新的 JSON RPC 调用和几个 JSON RPC 的行为改变调用。有关这些更改的详细信息,请参阅此Infura 博客文章

词汇表

EIP-1559(以太坊改进协议 1559)

该提案最初由 Vitalik Buterin 创建,目的是通过不向矿工支付以太坊用户通过竞标天然气费而支付的天然气费来降低每笔交易的成本。以太坊用户现在可以根据网络的内部平均值对交易的平均汽油价格进行更准确的估计。如果我们假设费用的可预测性意味着用户不会频繁地为 gas 支付过高的费用,那么更可预测的基本费用的副作用可能会导致 gas 价格有所下降。有关 EIP-1559 将如何改变以太坊的更多信息,请参见此处

Gas fee

Gas 是指以太坊区块链上的交易费用。这是用户为验证或完成交易而支付的费用。

Base fee(基本费用)

由协议产生。表示将交易包含在区块中(即完成交易)所需的最小 gasUsed 乘数。这是交易费用中被烧掉的部分。

Max Priority fee - 即优先费或矿工的小费

MetaMask 最初将根据前一个区块的历史记录设置此金额。但是,用户将被允许在高级设置中编辑此金额。它被添加到交易中并代表支付给矿工的交易费用的一部分。

Max fee

MetaMask 最初将根据前一个区块的历史记录设置此金额。但是,用户将被允许在高级设置中编辑此金额。它代表用户愿意为其交易支付的最大金额(包括基本费用和最高优先级费用)。每gas最高费用与基本费用+最高优先费用之间的差额将“退还”给用户。

Gas limit

交易可能消耗的最大gas单位数量。

Gwei

Gwei 是以太的单位,最小的面额,代表 gigawei(或 1,000,000,000)。¹ Gwei 用于支付 gas 费用,或者说是用户支付的费用,以补偿处理和验证交易所需的计算能量在复仇blockchain.²

Slippage (滑点)

滑点是报价和执行价格之间的预期百分比差异。

原文:https://metamask.io/1559

争议不断的EIP-1559即将到来,它会造成哪些影响?

伦敦升级来临

以太坊基金会于7月15日公布了伦敦升级最新进展,本次升级将在主网达到12965000区块高度时被激活,具体时间预计在8月3日至5日之间。

V神在7月24号的世界区块链大会上演讲时说到:“当现在的PoW链完成了它的使命,PoW链上的一切都转移到PoS链上之后,就算是进入了以太坊2.0。但在两条链合并前期,将会执行一些较小的升级,引入分片,搭配Rollup,理想状态下可实现每秒10万笔交易。”而即将在PoW链上进行的伦敦分叉就是合并前期的一次重要升级。

从2015年开始,以太坊经历了数次升级,它们帮助以太坊不断完善并走向2.0时代。

什么是EIP-1559

以太坊的网络升级通过链下治理实施,社区成员提出以太坊改进提案(Ethereum Improvement Proposal,EIP)并对升级所要采用的EIP内容达成一致,由开发团队更新客户端,最后矿工使用最新版的以太坊客户端并通过硬分叉升级。

伦敦硬分叉升级中包含了五个以太坊改进提案,包括EIP-1559、EIP-3198、EIP-3529、EIP-3541和EIP-3554。伦敦升级因EIP-1559备受瞩目,其将改进现有的手续费机制,并将持续销毁ETH。

目前以太坊的交易手续费(Gas费)计算机制中一部分由创建者设置,创建者设置的交易费用多少会影响到矿工打包的先后顺序。矿工提供了在以太坊上运行交易和智能合约的计算能力,他们通常会优先处理设定高Gas费的用户的交易,以最大限度地获得区块奖励。

同样,为了能够更快完成交易,交易创建者也会设置更高的手续费来激励矿工。因此,在这种机制的刺激下,导致竞争巨大、Gas费不断上升、效率极低,并导致验证节点总价超付,增加了成本。

为了改善用户体验,V神和以太坊核心开发人员提出EIP-1559改进提案,在EIP-1559提案中,交易手续费将被拆分为两部分:基础费+矿工小费。其中基础费是交易所需的最少花费,由系统直接销毁,小费归矿工所有。

基础费用是用户在以太坊上发送交易或完成操作所需的最低Gas价格。它根据以太坊上每个区块使用的空间大小而波动。理想情况下,以太坊上的每个区块最多可容纳1500万Gas。然而在网络拥堵时,EIP-1559将允许块大小增加到这个数量的两倍。如果区块包含的Gas超过1500万,基础费将提高12.5%,反之如果低于1500万,将降低12.5%,直至趋于零。这种调整旨在确保以太坊的Gas费趋向于平均每区块约1500万Gas。

矿工小费指的是用户可以选择在最低基本费用的基础上再支付额外费用,该费用将直接支付给矿工,以激励矿工优先处理某些交易。EIP-1559中的小费是可选的,仅用于需要最快网络确认时间的用户。

EIP-1559对我们会产生哪些影响?

那么,EIP-1559设定的相对固定的Gas基础费的作用有哪些呢?

其一,可以降低ETH的通胀率。目前,ETH的供应量是无限的,每产生一个新的区块,就会有两枚新的ETH诞生,因此,它是有通胀的属性在的。但EIP-1559对于Gas基础费的销毁机制可能会带来一种局面,在交易活跃度较高时,用户支付基础费用销毁的ETH总量可能会抵消并大于通过区块奖励新发行的ETH总额,这将意味着ETH供应量出现负增长。如果交易不活跃,销毁的基础费少于出块奖励,那也可以促进ETH数量不会过分减少,使其达到一种平衡状态。

其二,降低以太坊交易费用波动性。根据EIP-1559,Gas基础费只能增减12.5%,这为以太坊的交易费用带来了稳定性。但是,降低波动性不代表降低交易费用,高费用问题主要是由于处理交易的网络容量有限造成的。以太坊费用机制的变化不能改变网络一次能够处理多少交易。这属于以太坊的可拓展性问题,需要交给Layer 2扩容方案和未来的分片技术。

基于EIP-1559的手续费机制和作用,我们可以看到它将主要影响三种不同类型的利益相关者:ETH投资者、矿工和用户。

(一)ETH投资者

基础费的销毁降低了ETH的通胀率。如果以太坊交易非常活跃时,甚至可能出现其销毁量高于新增量的情况,在这种情况下,ETH会变成通缩资产。

现在每天ETH的产出是13000枚左右,年通胀率约为4%。Dune Analytics的数据显示,如果按照EIP-1559的方式,一年内预计销毁2937123枚以太坊,占增发量的61.9%,可以把通胀率降低到1.5%,这个数值要比比特币1.8%的通胀率更低。通过销毁基础费,在一定程度上会提升ETH的价值,有利于长期持有ETH的投资者们。

(二)矿工

表面来看,EIP-1559中基础费的销毁会极大地削减矿工收入。但这是绝对的吗?

我们首先来看一下矿工的收入来源是什么。目前,矿工收入来源于交易手续费和区块奖励。当EIP-1559落实之后,交易手续费拆分为基础费和矿工小费,其中基础费被销毁。但随着以太坊上DEX的崛起,还有一种矿工收入出现,即矿工可提取价值(MEV)。MEV是一种可变的收入来源,DEX交易者可能比普通用户更看重链上交易执行的速度和顺序,矿工可利用这一点从DEX交易者那里获得更多的回报。

由于DEX越来越受欢迎,MEV变得越来越有利可图。研究和开发组织Flashbots估计,MEV的日收入已从2021年初的50万美元增长到2021年6月的600多万美元。

因此,在EIP-1559之后,矿工的MEV部分的收益比例有可能会越来越多。EIP-1559对矿工的收益肯定会有影响,但可能不一定有想象中的大。矿工依然有机会获得不错的收益。此外,EIP-1559本身会对ETH带来增值效应,这对所有人都是有利的。

(三)用户

对于以太坊的用户来说,高昂的费用是目前最紧迫的问题之一。EIP-1559并不会解决这个问题,并没有改变以太坊本身一次只能处理有限数量交易的事实。EIP-1559的主要作用是可以优化和提高以太坊手续费的使用效率。

EIP-1559提高了以太坊费用方式的透明度和可见性。过去用户在支付手续费时,需要根据网络拥堵情况和近期Gas费估算手续费多少。如果过少等待时间会变长,过多则造成浪费。从区块层面看,EIP-1559的方案每次区块之间的基础费变化幅度最多为12.5%,根据规则用户能预测并支付相对准确的手续费,以提高用户体验。

EIP-1559面临的风险

EIP-1559关于手续费的改变可以为以太坊带来好的一面,但技术是双刃剑,有好处但也同样伴随着风险。

对于矿工来说,随着EIP-1559的激活,他们的收入将减少。矿工将失去大额的交易手续费,而只能从寻求交易优先权的用户那里获得小费。改变奖励机制本身不会影响以太坊处理区块或计算的能力。然而,却存在着不满的矿工离开网络、破坏网络或启动竞争链的可能性。如果有很大一部分以太坊矿工退出或造反,区块时间和网络安全将受到负面影响。

对于用户和DAPP开发者,EIP-1559的激活可能不会表现得像理论上那样有效。如果不能实现承诺的费用市场效率,可能会导致用户和开发者的幻想破灭。如果发生这种情况,以太坊的竞争对手,如Binance Smart Chain和Cardano(按市值计算仅次于以太坊的两个最大的智能合约区块链平台),无疑将抓住机会抢占市场份额。

最后,EIP-1559的激活还带来了不可预见的错误或恶意的用户行为的风险。这在私人测试网络上测试EIP-1559的过程中,已经发现了一些。

以太坊的新时代

EIP-1559通过让手续费更有效率来提升用户体验,但不能从根本上解决网络拥堵和高手续费的问题,这需要通过Layer 2扩容或者以太坊2.0来实现。

EIP-1559将极大地增强以太坊上处理交易的用户体验。当然,矿工们会担心EIP-1559的费用销毁方面,但EIP-1559的总体好处远远超过费用销毁,将对终端用户产生积极的影响。

随着EIP-1559、Layer 2以及PoS的推进,以太坊及ETH会有向好的变化,其中也会潜藏一些危机。不过,如果一切都能顺利落地,这会开启以太坊的新时代,对整个加密领域的格局产生非常重大的影响。

转载自:https://zhuanlan.zhihu.com/p/395153612

其他

https://notes.ethereum.org/@vbuterin/eip-1559-faq
https://zhuanlan.zhihu.com/p/393196358
https://zhuanlan.zhihu.com/p/396948190
https://zhuanlan.zhihu.com/p/361104358