织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

解析 EIP-3074 的工作流程与安全性(2)

时间:2021-07-13 10:30来源:未知 作者:admin 点击:
authorized 基于 ECDSA 签名的上下文变量。第二个发送呼叫作为 authorized 。这实质上将 EOA 的控制权委托给了 [a] 智能合约。 AUTH 和 AUTHCALL EVM 指令 (也称为操作
authorized 基于 ECDSA 签名的上下文变量。第二个发送呼叫作为 authorized。这实质上将 EOA 的控制权委托给了 [a] 智能合约。

进击的以太坊:解析 EIP-3074 的工作流程与安全性

AUTH 和 AUTHCALL EVM 指令 (也称为操作码),让智能合约基于已签名的消息授权 EOA,并从该 EOA 发送交易 (「调用」)。这带来了很多可能性,比如 :

  • 赞助交易 (也称为元交易):从另一个账户支付交易的 gas。这也将允许我们从一个没有任何以太的地址发送代币。
  • 批量交易:在一个调用中发送多个交易。这保证了在同一个区块中执行两个或多个交易,还可以降低交易费用。
  • 改进的用户体验 (UX):例如,我们可以在单个交易中调用 approve 和 transferFrom。

与这些问题的现有解决方案不同,EIP-3074 不需要智能合约钱包。我们可以简单地将交易发送给执行交易的所谓调用者。调用者是无状态的、无需信任的智能合约,它们不要求我们预先将余额发送给合约。EIP-3074 也没有引入新的交易类型。通过只引入两个新的 EVM 指令,它在技术上应该更容易实现。

AUTH 和 AUTHCALL 操作码

EIP-3074 定义了两个新的操作码,可以从智能合约中调用 :

  • AUTH (0xf6) -根据签名和提交授权外部拥有的帐户。它接受四个输入参数:commit 和签名的 yParity、r 和 s。
  • AUTHCALL (0xf7) -在授权的 EOA 上下文中发送调用 (交易)。它接受 8 个输入参数 :gas、addr、value、valueExt、argsOffset、argsLength、retOffset、retLength。这类似于现有的 CALL 操作码。

为了授权一个 EOA,我们需要一个来自该 EOA 的签名消息。调用 AUTH 的智能合约可以从消息签名中恢复签名者,然后将消息签名设置为 authorized EVM 上下文变量。现在,无论何时智能合约调用 AUTHCALL,调用者都被设置为授权地址。当被调用的智能合约调用 CALLER(例如,通过 Solidity 的 msg.sender) 时,这现在是授权 EOA 的地址,而不是执行调用的智能合约调用者的地址。

发送一个或多个交易的基本流程如下所示 :

进击的以太坊:解析 EIP-3074 的工作流程与安全性

一个基本的 EIP-3074 流程,其中调用者契约发送多个交易。

  • EOA 签署授权信息 ;
  • EOA 或其他 gas 支付人将交易数据和授权信息发送给调用者合约 ;
  • 调用者合约使用 AUTH 执行授权,并使用 AUTHCALL 发送交易。

谁将交易发送到合约中并不重要,只要 EOA 的签名是有效的。这使得其他人 (或另一个帐户) 可以发送交易。

授权消息和提交

为执行授权,EOA 必须以特定格式签署消息 : (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容