对 EIP-3074 的批评以及一种简单的替代

对于开发者来说,AUTH/AUTHCALL机制非常具有吸引力。它可以让人们创建调用者来实现不同的批量处理策略、gas抽象模型和复杂的账户抽象方法等。这种灵活性源于这一机制赋予了开发者极大的自由。AUTH/AUTHCALL机制不要求开发者遵循特定的模式,而是要求用户签署一个commit哈希值,让开发者基于commit自行设置限制。然而,这种灵活性是以牺牲安全性为代价的。在本文中,我想要介绍一种更简单的替代方案。这个方案具备AUTH/AUTHCALL机制的绝大多数优点,但是风险远低于后者。为什么签署一个AUTHcommit所带来的风险高于签署一个与存在漏洞/恶意合约相关的事务?用户在签署与合约相关的事务时,所承担的风险是已知的,即,可能会损失在该合约控制范围内的资产。比方说,用户给一个ERC20合约签署了批准事务,授权恶意的DEX合约。这个恶意DEX合约就可以提走用户在ERC20合约中的全部余额。但是,它无法从该用户的其它ERC20合约中提走代币,除非得到该用户的批准。它也不能代表用户进行其它操作,因为这也需要专门获得用户的批准。相较之下,EIP3074不仅要求用户签署“空白支票”,而且假设调用者是诚实且没有漏洞的。一个恶意/存在漏洞的调用者可以代表用户执行任何操作——访问用户持有的资产,代表用户进行投票,控制用户所有的合约等。更糟糕的是,调用者随时都可以作恶,因为nonce实现是由调用者控制的。存在漏洞/恶意的nonce逻辑实现可以重放用户过去的事务。如果commit验证的其它部分的逻辑也存在漏洞,调用者就可以利用这个nonce逻辑实现来代表用户执行任何操作。即使漏洞被发现,用户也无法撤回空白支票。这个外部账户已经被永久入侵了。编写一个正确的调用者程序很难,而且我们几乎可以肯定,调用者会不定期出现错误,从EIP3074最后列出的调用者应该警惕的检查/漏洞/情况非详尽清单中可见一斑。这份清单势必会变得越来越长,很可能伴随着痛苦的发现过程。此外,恶意参与者可以编写一个看似无害的调用者程序,但是故意留下一个细微的漏洞,等到大量外部账户授权该调用者之后才会被攻击者利用。如果攻击者没有直接或立即利用这个漏洞从用户那里窃取资金,这个漏洞可能很长时间都不会被发现。治理劫持示例

BlockFi 债权人申请对 BlockFi 进行清算:6月28日消息,BlockFi 债权人申请对 BlockFi 进行清算,并表示包括 BlockFi 首席执行官 Zac Prince 在内的管理层始终在拖延破产程度推进,并在过程中存在欺诈等行为。债权人在提交的文件中表示,BlockFi 每月的管理费用为 1600 万美元,并仍然在向 100 多人支付工资,但其中许多人除了打高尔夫球之外几乎无所事事。[2023/6/28 22:05:51]

恶意去中心化交易所EveSwap为其用户编写了一个调用者程序。这个调用者程序通过空投EVE代币来为用户提供gas资助,并批量处理用户的批准和转账事务。EveSwap的调用者程序看似无害,而且永远不会窃取用户的代币,因为这样马上就会露馅。用户很开心。交易都成功了,交易费也很便宜。几个月来平安无事。然而,每当有人使用EveSwap交易AliceSwap的治理代币ALI时,会自动将用户的AliceSwap投票权委托给EveSwap。一旦授权人数达到某个阈值,EveSwap就会通过治理提案劫持AliceSwap。EveSwap用户不太可能注意到这个过程,因为交易总是成功的,但是最终会给AliceSwap带来毁灭性的打击。跨链重放示例

区块链网络 Horizen 将于下周对 Yuma 测试网进行压力测试:3月5日消息,支持零知识的区块链网络 Horizen 宣布将于 3 月 6 日开始的一周对 Yuma Testnet 进行预定的压力测试,在测试期间可能会发生潜在的网络停机。测试的目的是通过增加超出正常情况限制的链上活动来检查 EON 平台的稳健性和错误处理能力。Yuma 区块浏览器可能会在区块中显示大量交易,可能会因流量异常高而出现临时中断。

此前,Horizen 的公共 EVM 兼容侧链和智能合约平台 HorizenEON 于 2 月 25 日上线 Yuma Testnet。[2023/3/5 12:43:18]

EIP3074合理地建议commit应该包含chainid。但是,这是由调用者,而非协议执行的。在另一条链上有着相同地址的调用者可能会跳过该检查。EveSwap在兼容EVM的BobSpongeChain上运行,后者支持EIP3074。EveSwap在BobSpongeChain上部署了一个诚实的调用者。用户使用该调用者在BobSpongeChain上交易,然后使用桥将资产转移到以太坊上。EveSwap使用同一个部署密钥在以太坊上部署了另一个地址相同的调用者。这个在以太坊上的调用者不会检查commit,只会检查ownerOnly,并充当其所有者的通用AUTH/AUTHCALL代理。这样一来,EveSwap就可以劫持用户在以太坊上的外部账户并卷走他们的资产了。用户从未在以太坊上交易过,运行在BobSpongeChain上的调用者程序又经过了严格的安全审查。尽管如此,用户还是丢失了全部资产。以太坊通过EIP155的重放保护来防范这种情况。AUTHCALL没有重放保护。由于所有commit检查都交给调用者完成,我们失去了以太坊提供的一切交易保护。攻击是在所难免的,因为保护措施很随意。如果要接受EIP3074,AUTH消息必须明确包含chainid,而非将其作为commit的一部分。我们还能采取什么别的手段?

Justin Banon:对 NFT 领域的兴趣已成倍增长,并将在2022年继续发展壮大:金色财经报道,去中心化商业网络Boson Protocol 的联合创始人Justin Banon称,对 NFT 领域的兴趣已成倍增长,并将在 2022 年继续发展壮大。在今年上半年,最受欢迎的 NFT 的销售额约为每月 6400 万美元。我们现在每天看到价值 4100 万美元的 NFT 销售额,元宇宙将成为人们与网络和彼此互动的新界面,这种趋势还将扩展到我们拥有的东西,并且这些东西将开始在虚拟世界和物理世界之间流畅地移动。(cryptonews)[2021/12/24 8:00:31]

我的提议是实现一个更明确的机制,在协议层面强制规定commit的含义。commit结构将是类型化的,钱包会以用户可读的形式将commit呈现出来。用户可以确切地知道事务是什么样子的,并确信这个事务不会在任何链上重放,无需依赖于调用者程序开发者的品行和能力。一个可能的实现:AUTH将使用包含授权调用列表的类型化结构代替commit哈希值。每个调用都将指定{nonce,to,gas,calldata,value,chainid}。签名将被验证,整个授权调用列表将保存为authorized_transactions而非authorized地址变量。AUTHCALL将得到一个新的参数index,该参数指向最后一个AUTH创建的列表中的地址。用户地址的nonce将随AUTHCALL递增。nonce并非由调用者存储,而是实际的账户nonce。利:用户可以清楚地了解情况。安全性由协议保障。依然支持批处理和账户抽象。弊:nonce实现,不支持并行。复杂调用者程序的事务处理起来很繁琐,因为用户必须查看并接受整个调用列表。不同的实现可能支持不同的nonce方案。但是,无论我们使用什么机制,该机制必须由协议而非调用者执行。无论如何都应该避免让复杂调用者执行大量用户调用。复杂操作应该作为普通的智能合约实现,而非尝试实现使用多个外部账户调用的算法。替代方案:完全避免硬分叉

诺贝尔奖得主莱维特表示对 NFT 有强烈兴趣:10月23日消息,诺贝尔化学奖得主迈克尔·莱维特于近日出席参观了 NFT 平台CryptoArt.Ai在青岛黄盒子美术馆举办的 NFT 展览,表示对 NFT 有强烈的兴趣。据悉,该展览将持续到2022年7月12日。[2021/10/23 6:08:59]

还有一个选择是完全避免AUTH机制,并通过vbuterin建议的另一种交易池来解决账户抽象和批量处理问题。利:无需硬分叉,可由智能合约和可以感知这些智能合约的节点支持。可用于一切支持EIP3074的实现,而不会引入额外的风险。弊:不向后兼容已有的外部账户。用户需要部署一个合约钱包并将资产转移到该钱包内。除非要求在不迁移的情况下支持已有的外部账户,否则这个选择看起来更安全。原地址:https://blog.mycrypto.com/eip-3074/作者:MaartenZuidhoorn翻译&校对:闵敏&阿剑

数字资产监管机构Nexo 完成对 Yield Inc 1000 万美元的战略投资:数字资产监管机构Nexo已完成对Yield Inc公司 1000 万美元的战略投资。Yield Inc公司主要致力于构建一种名为Yield的协议,通过培育新生的 DeFi 债券市场来实现固定利率借贷。据悉,Nexo 的目标不仅是为其提供必要的资金,而且还帮助 Yield 努力构建传统金融产品的 DeFi 原生版本。(Crypto News)[2021/7/12 0:46:18]

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

SHIBDeribit期权市场播报0702: 远期Call

收录于话题 #每日期权播报 播报数据由Greeks.live格致数据实验室和Deribit官网提供。得益于近期行情的稳定,比特币偏短期的平值和浅虚值看涨贡献了主要交易量.

[0:46ms0-1:542ms