“在 EIP-3074 之后,一个错误的签名将能够耗尽你在以太坊上的账户余额。”
是的,这是正确的。我是 3074 的共同作者!让我稍微解释一下这个问题,以免它变得更加恶化。
首先:我不知道今天有哪些钱包支持签署未加前缀的数据。这意味着目前没有钱包支持 3074。无论你穿过多少控制面板或打开多少高级功能,都不可能签署 3074 消息。今天不可能签署 3074 消息。
你签署用于“登录”到 dapp 的消息使用的是完全不同的基于 EIP-191 的标准。这会在你签名的消息前加上以下数据:
“””
0x19 <0x45 (E)> <thereum Signed Message:\n” + len(message)> <data to sign>
“””
这就是使得欺骗登录 dapp 的人签署有效的以太坊交易变得不可能的原因。
交易是用单字节值进行前缀的:
0x01 - 2930 tx
0x02 - 1559 tx
0x03 - 4844 tx
更多信息请参阅这里 : https://github.com/ethereum/execu化规范/树/主/列表/签名类型
3074 计划使用前缀 0x04。这将使其与以太坊中所有其他类型的可签名数据区分开来。
钱包将不得不积极选择允许用户签署这些消息。
根据钱包如何整合 3074,它们可能会造成用户更容易受到剥削的情况。要理解这一点,我们需要确保理解 3074 签名的工作原理。
签名构建在以下字段的 auth msg 上。重要的是,它包括一个调用者地址。这是签名只会在 AUTH 下被视为有效的唯一地址。
要使一个账户被耗尽,1)钱包将需要允许用户对任何调用者地址进行签名,2)用户必须不验证调用者是否值得信任。只要满足其中之一,就不会有问题。
对于第一点,我们希望钱包能够理解,3074 的调用者更类似于它们代码的扩展,而不是合约。钱包不会让用户自由运行具有访问其私钥的任意代码;同样地,它们也不应该允许用户任意委托其账户。
因此,如果钱包不安全地整合了 3074 并且 用户没有验证与之交互的调用者,那么可能会委托给一个恶意的调用者。
然而,通过从 EOA 发送单个交易,可以撤销所有“正在进行中”的 AUTH 签名。
最低限度,钱包应该让签署 3074 消息变得非常重要。这就像导出你的私钥一样重要。
假设一个钱包安全地整合了 3074,账户仍然有可能被清空。这是批量交易的基本属性。它不仅可以轻松地让您发送多个操作,也可以让攻击者欺骗您将一批资产发送到他们控制的地址。
钱包必须清楚地显示您正在签名的每个操作。这样,您就可以轻松地注意到:“我原本只打算进行一次交易,但这个签名请求让我做了十几次转账”。
如果批量处理是通过盲目签名实现的,那么就不可能检测到这一点。
是的,3074 把很多信任放在了钱包上。但是看,我们已经把我们的私钥安全地交给了它们!再也没有更高级别的信任了。
完全有可能安全地整合和使用 3074。如果任何钱包对如何做到这一点有疑问,请不要犹豫与我们联系。作为 3074 的作者,我们正在思考如何在其下一个阶段中最好地帮助这个标准。
在过去的几年里,我们花了大量时间开发了关于它可能如何被使用和滥用的假设场景。我们对这些想法开始投入生产感到兴奋。但我们也意识到,这是困难的一部分。
本文原标题为“EIP-3074 之后,一个错误的签名将能够耗尽您在以太坊上的账户”转载自[轻客户端]]。所有版权归原作者所有[ightclients]。如对转载有异议,请联系Gate Learn团队,团队会尽快处理。
免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
本文的其他语言翻译由 Gate Learn 团队完成。除非另有说明,否则禁止复制、分发或抄袭翻译文章。
Поділіться
Konten
“在 EIP-3074 之后,一个错误的签名将能够耗尽你在以太坊上的账户余额。”
是的,这是正确的。我是 3074 的共同作者!让我稍微解释一下这个问题,以免它变得更加恶化。
首先:我不知道今天有哪些钱包支持签署未加前缀的数据。这意味着目前没有钱包支持 3074。无论你穿过多少控制面板或打开多少高级功能,都不可能签署 3074 消息。今天不可能签署 3074 消息。
你签署用于“登录”到 dapp 的消息使用的是完全不同的基于 EIP-191 的标准。这会在你签名的消息前加上以下数据:
“””
0x19 <0x45 (E)> <thereum Signed Message:\n” + len(message)> <data to sign>
“””
这就是使得欺骗登录 dapp 的人签署有效的以太坊交易变得不可能的原因。
交易是用单字节值进行前缀的:
0x01 - 2930 tx
0x02 - 1559 tx
0x03 - 4844 tx
更多信息请参阅这里 : https://github.com/ethereum/execu化规范/树/主/列表/签名类型
3074 计划使用前缀 0x04。这将使其与以太坊中所有其他类型的可签名数据区分开来。
钱包将不得不积极选择允许用户签署这些消息。
根据钱包如何整合 3074,它们可能会造成用户更容易受到剥削的情况。要理解这一点,我们需要确保理解 3074 签名的工作原理。
签名构建在以下字段的 auth msg 上。重要的是,它包括一个调用者地址。这是签名只会在 AUTH 下被视为有效的唯一地址。
要使一个账户被耗尽,1)钱包将需要允许用户对任何调用者地址进行签名,2)用户必须不验证调用者是否值得信任。只要满足其中之一,就不会有问题。
对于第一点,我们希望钱包能够理解,3074 的调用者更类似于它们代码的扩展,而不是合约。钱包不会让用户自由运行具有访问其私钥的任意代码;同样地,它们也不应该允许用户任意委托其账户。
因此,如果钱包不安全地整合了 3074 并且 用户没有验证与之交互的调用者,那么可能会委托给一个恶意的调用者。
然而,通过从 EOA 发送单个交易,可以撤销所有“正在进行中”的 AUTH 签名。
最低限度,钱包应该让签署 3074 消息变得非常重要。这就像导出你的私钥一样重要。
假设一个钱包安全地整合了 3074,账户仍然有可能被清空。这是批量交易的基本属性。它不仅可以轻松地让您发送多个操作,也可以让攻击者欺骗您将一批资产发送到他们控制的地址。
钱包必须清楚地显示您正在签名的每个操作。这样,您就可以轻松地注意到:“我原本只打算进行一次交易,但这个签名请求让我做了十几次转账”。
如果批量处理是通过盲目签名实现的,那么就不可能检测到这一点。
是的,3074 把很多信任放在了钱包上。但是看,我们已经把我们的私钥安全地交给了它们!再也没有更高级别的信任了。
完全有可能安全地整合和使用 3074。如果任何钱包对如何做到这一点有疑问,请不要犹豫与我们联系。作为 3074 的作者,我们正在思考如何在其下一个阶段中最好地帮助这个标准。
在过去的几年里,我们花了大量时间开发了关于它可能如何被使用和滥用的假设场景。我们对这些想法开始投入生产感到兴奋。但我们也意识到,这是困难的一部分。
本文原标题为“EIP-3074 之后,一个错误的签名将能够耗尽您在以太坊上的账户”转载自[轻客户端]]。所有版权归原作者所有[ightclients]。如对转载有异议,请联系Gate Learn团队,团队会尽快处理。
免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
本文的其他语言翻译由 Gate Learn 团队完成。除非另有说明,否则禁止复制、分发或抄袭翻译文章。