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

我的网站

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

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

时间:2021-07-13 10:30来源:未知 作者:admin 点击:
注意 :|| 用作字节串联操作符 它由三部分组成:一个魔术字节 (0x03)、填充到 32 字节的调用者地址 (将执行授权的智能合约的地址) 和 32 字节的提交。 授权

进击的以太坊:解析 EIP-3074 的工作流程与安全性注意 :|| 用作字节串联操作符

它由三部分组成:一个魔术字节 (0x03)、填充到 32 字节的调用者地址 (将执行授权的智能合约的地址) 和 32 字节的提交。

进击的以太坊:解析 EIP-3074 的工作流程与安全性授权消息格式,包括可用于提交的示例

提交描述了 EOA 提交的对象,并且可以根据调用的某些属性 (如地址、值) 进行计算。调用者合约可以根据提供的属性重新计算提交,如果这些字段正确,则执行授权。

例如,假设我们想要发送以下交易 (表示为 JSON):

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

我们可以哈希这些字段 (例如,以一种确定的方式将它们连接在一起,或者使用 EIP-712 之类的东西) 并将其用作提交。

我们可以在智能合约中提供要发送的交易和授权消息的签名,如此 JSON 数据所示。合约函数可以是这样的 :

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

智能合约重新计算提交交易,并将此提交 (连同签名) 提供给 AUTH 调用。这将尝试恢复签名者的地址,如果提交无效,将从签名中恢复错误的地址,这意味着交易将失败。

调用者完全负责确保此提交是安全的。我们可以简单地用 0x0 将消息签名为提交,并给予智能合约对 EOA 的完全访问权。EIP-3074 以前的版本包含了一个更严格的提交格式,包括像重放保护之类的东西,但后来为了更灵活而被删除了。因此,信任与我们交互的调用程序非常重要。

限制和安全问题

EIP-3074 能够基于签名更改 CALLER,从而显著地改变了 EVM 的工作方式。这可能会在新合约和现有合约中引入潜在的漏洞。因此,EIP-3074 被审计。

下面解释了一些可能的安全问题。由于这些不同的原因,EIP-3074 建议只与受信任的调用者进行交互。

弱提交和重放攻击

如上所述,EIP-3074 没有为提交定义标准化的格式。调用者可以自由地以他们想要的任何方式实现这一点。这意味着调用者完全负责提供足够的保护,以防止 (例如) 重放攻击。

如果提交不包含某种随机数,则可以简单地获取签名消息并将其再次发送给调用者。恶意调用者可以通过根本不验证提交来获得对 EOA 的控制。我们在签名消息时应该始终小心。

通过在授权消息中包含调用者的地址,EIP-3074 具有防止重放攻击的基本保护。这样就不可能在另一个调用者上重放一个调用程序的授权消息。 (责任编辑:admin)

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