以太坊钱包可能很快就要迎来重大升级。一旦升级完成,普通账户(EOA)即可发送批量事务、限期事务、无序事务等。
我与两位同事 @_SamWilsn_ 和 /img/202281250810/0.jpg">
“type byte” 是 EIP 2718 的常量字节,值为 0x03。这个字节的作用是避免与其它签名机制发生冲突,例如,EIP 2930 的访问列表事务、EIP 1559 的费用市场事务、EIP 191 的 0x19 签名消息等。
以太坊平均gas价格较昨日下降25%:8月6日,浏览器显示,当前以太坊平均gas价格均值为39gwei,较昨日下降25%,较前日下降11%。[2021/8/6 1:38:22]
调用者地址将用户的调用与特定合约绑定。用户的签名只对调用者合约有效。因此,用户可以选择自己信任的调用者,就像是选择用来存放资产的智能合约钱包那样。
我们预期只会有少量调用者存在,因为如果调用者合约的实现出错,用户就有可能蒙受损失(请注意,调用者是自主选择加入的)。开发一个安全的调用者合约成本会很高,需要经过多方审计和静态证明。
不过这与如今的惯例没什么太大的不同。在存放巨额资金之前,智能合约钱包也应该经过全面的审计和证明。很多大型 DeFi 项目也是如此。
最后一个签名参数是 commit_hash(或者 commit)。这为调用者设计者带来了更大的灵活性,可以让他们开发出很多不同的方案。
动态 | 以太坊核心开发人员讨论以太坊2.0的发布日期:以太坊基金会研究员Justin Drake最近在官方Etherum GitHub存储库发起了一场关于Etherum 2.0规范的讨论,Etherum 2.0是目前正在开发的以太坊网络新版本。Drake提议,2020年7月30日是以太坊区块链五周年,这一天将更适合发布Etherum 2.0。12月15日,他在另一个Ethereum 2.0存储库中解释了为何选择这个日期。他使用了唯一的指标:要求多客户端测试网稳定运行三个月,他希望稳定的多客户端测试网将在明年Q1部署。因此,根据其估计,Etherum 2.0最早可能在Q2推出。以太坊基金会核心研究员Danny Ryan表示,他个人认为ETH2主网可能会更早启动。参与讨论的其他人避免提及确切的发布日期,他们建议稍后随着更多的开发进展来估计它。[2019/12/16]
这个 commit 限制调用者只能执行特定操作并创建特定的验证要求(validity requirement)来处理调用。用户可以信任调用者会遵循这一流程,因为他们可以在链上验证代码。这就是区块链的优点。
动态 | Paxos向以太坊网络新增发1531万枚PAX:据DAppTotal.com稳定币专题页面数据显示:12月03日01时57分 ,PAX发行方Paxos向以太坊网络新增发1笔价值1,531万美元的PAX, 块高度为:9039366,交易哈希值为:0xf0a0276c0f30c9a0e8b4559fa6b689aaccbd90a4beb5012b6f686c6a4008b4d8 。截至目前,Paxos在以太坊网络上的ERC20 PAX总发行量已达236,827,341枚。[2019/12/3]
我们来看一个简单的案例。用户想要通过调用者发送一个调用。为了避免他们的调用被无限次中继,他们需要提供一个 nonce,另外还有其它不可更改的值。用户对这些值进行哈希计算得到 commit,并将该 commit 包含在签名消息内,以便合约使用操作码 AUTH 进行验证。
调用者会使用传入的值来重新生成 commit 哈希。这样一来,如果代付者(sponsor)改变了其中一个值,调用者计算得到的 commit 哈希会与外部账户签署的完全不同,导致 AUTH 恢复出一个垃圾地址,如下图所示:
希望你现在已经相信,调用者就像任何普通账户都可以使用的智能合约钱包。现在我们来看看如何使用 commit 来构建更有趣的方案。
通常情况下,“一个操作对应一个签名” 已经成了经验法则。这是一种比较简单的理解。签名是基于一个事务的哈希值创建的,为什么我们不将多个事务合并进行哈希计算呢?事实证明,EIP 3074 可以做到这点。
只要某个账户可以通过 AUTH 的验证,调用者就可以按该账户的要求做任意多次 AUTHCALL。这样做是没问题的,因为我们相信调用者会如实执行代码。我们可以设计将多个调用合并哈希成 commit 的方案。
在上图所示的方案中,调用者会将所有值(nonce1、nonce2 等)合并进行哈希,生成 commit。调用者将使用这个 commit 和用户签名来调用 AUTH。AUTH 会验证用户是否真的签署了这些参数。
然后,调用者会遍历每个调用并验证 nonce 和其它参数,然后将经过认证的调用数据(calldata)发送至被许可的地址。
在此基础上,我们还可以构建更多方案。例如,假设你增加一个新的参数 “保质期”。该参数会与其它参数一起经过哈希得到 commit。另外,在验证过程中,调用者会验证expiration < block.number。现在,外部账户已经可以使用限期交易了!
EIP 3074 将带来更多流畅的用户体验,同时不会引入额外的信任假设。如果你想要阅读 EIP 3074 的完整内容,请点击这个链接:https://eips.ethereum.org/EIPS/eip-3074
go-ethereum 的原型实现在此处维护:
https://github.com/quilt/go-ethereum/tree/eip-3074
我们正在与一些对该机制有兴趣的团队合作。如果你觉得这个机制有用的话,请告诉我们,让我们一起努力!欢迎大家提供对该提案的反馈,非常感谢!点击该链接,留下你的反馈:https://ethereum-magicians.org/t/eip-3074-auth-and-authcall-opcodes/4880/49。
最后,如果你对我们的工作感兴趣,我们的团队正在火热招聘中。我们致力于对以太坊核心协议进行中长期改进。如需了解更多信息,请直接私信我 @lightclients。
(完)
原文链接: https://twitter.com/lightclients/status/1371911245561917441作者: lightclients翻译&校对: 闵敏 & 阿剑
你可能还会喜欢:
账户抽象化(EIP-2938):为什么 & 如何做
以太坊元交易
以太坊中的账户、交易、Gas 和区块 Gas Limit
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。