对于开发者来说,AUTH/AUTHCALL?机制非常具有吸引力。它可以让人们创建调用者来实现不同的批量处理策略、gas抽象模型和复杂的账户抽象方法等。
这种灵活性源于这一机制赋予了开发者极大的自由。AUTH/AUTHCALL?机制不要求开发者遵循特定的模式,而是要求用户签署一个?commit?哈希值,让开发者基于?commit?自行设置限制。
然而,这种灵活性是以牺牲安全性为代价的。在本文中,我想要介绍一种更简单的替代方案。这个方案具备?AUTH/AUTHCALL?机制的绝大多数优点,但是风险远低于后者。
为什么签署一个AUTH?commit?所带来的风险高于签署一个与存在漏洞/恶意合约相关的事务?
用户在签署与合约相关的事务时,所承担的风险是已知的,即,可能会损失在该合约控制范围内的资产。比方说,用户给一个ERC20合约签署了批准事务,授权恶意的DEX合约。这个恶意DEX合约就可以提走用户在ERC20合约中的全部余额。但是,它无法从该用户的其它ERC20合约中提走代币,除非得到该用户的批准。它也不能代表用户进行其它操作,因为这也需要专门获得用户的批准。
DigiDaigaku 母公司 Limit Break 完成对 NFT 平台 FreeNFT 的收购:金色财经报道,NFT 项目 DigiDaigaku 母公司 Limit Break 首席执行官 Gabriel Leydon 发推称,Limit Break 已完成对 NFT 平台 FreeNFT 的收购,拟具体收购金额暂未对外公布。FreeNFT 是一个 Free to Own 生态的 Launchpad,DigiDaigaku 曾在该平台上抽奖。
收购完成后,FreeNFT 仍将免费供开发人员使用,Limit Break 除了营销和内容创作协助之外,还将为该平台提供智能合约服务,包括合约编写、铸币托管、集成 ERC-721、以及可编程版税解决方案。[2023/3/15 13:05:27]
相较之下,EIP3074不仅要求用户签署“空白支票”,而且假设调用者是诚实且没有漏洞的。一个恶意/存在漏洞的调用者可以代表用户执行任何操作?——访问用户持有的资产,代表用户进行投票,控制用户所有的合约等。
Pomerantz 律师事务所宣布对 Gemini 和某些官员提起集体诉讼:金色财经报道,Pomerantz LLP 律师事务所宣布已对 Gemini Trust Company, LLC 和某些官员提起集体诉讼。原告根据 1933 年《证券法》和《纽约一般商业法》以及普通法对欺诈诱导、欺诈隐瞒、欺诈性失实陈述、疏忽失实陈述、违约、不当得利和民事串谋提出索赔。
根据 Gemini 网站,Earn 平台与各种第三方加密贷款机构合作,这些第三方加密贷款机构充当 Gemini 客户资产的“认可借款人”。然而,2022 年 11 月 16 日,Gemini 宣布 Genesis 意识到无法在 Gemini Earn 网站上宣传的五个工作日期限内退还客户资金,因此已停止客户提款。Gemini 随后暂停了 Earn 计划的提款。[2023/1/25 11:29:15]
更糟糕的是,调用者随时都可以作恶,因为nonce实现是由调用者控制的。存在漏洞/恶意的nonce逻辑实现可以重放用户过去的事务。如果?commit?验证的其它部分的逻辑也存在漏洞,调用者就可以利用这个nonce逻辑实现来代表用户执行任何操作。即使漏洞被发现,用户也无法撤回空白支票。这个外部账户已经被永久入侵了。
韩国检察机关将对 Terra/LUNA 崩盘事件开启第二轮全面调查:7月3日消息,韩国首尔南部检察厅金融和证券犯罪联合调查组将从新任负责人接任后从 7 月 4 日开始对 Terra/LUNA 崩盘事件开启全面调查。目前针对 Terraform Labs 和其 CEO Do Kwon 提出的指控或争议有违反欺诈和相关法律、逃税漏税以及资金流向争议。检方一名官员表示,除了已提出的指控外,我们将审查舆论提出的所有指控。[2022/7/3 1:47:05]
编写一个正确的调用者程序很难,而且我们几乎可以肯定,调用者会不定期出现错误,从?EIP3074最后列出的调用者应该警惕的检查/漏洞/情况非详尽清单中可见一斑。这份清单势必会变得越来越长,很可能伴随着痛苦的发现过程。
此外,恶意参与者可以编写一个看似无害的调用者程序,但是故意留下一个细微的漏洞,等到大量外部账户授权该调用者之后才会被攻击者利用。
Layer 2 交易协议 ZKSwap 完成对 Uniswap 流动性提供者的空投:3月3日消息,以太坊 Layer 2 交易协议 ZKSwap (ZKS)团队已于北京时间 3 月 3 日完成对 Uniswap 上 WBTC/ETH、ETH/USDC、ETH/ DAI、USDC/USDT 4 个交易币对流动性提供者的空投,空投共计覆盖约 10,000 个以太坊深度用户地址,每个地址发放 50 ZKS,合计发放约 56 万个 ZKS,价值 120 多万美金,目前已全部发放至用户以太坊地址的 Layer2 账户。符合发放条件的用户只需登陆 zks.app,连接并解锁钱包即可领取空投。另外,ZKSwap 也将于北京时间 3 月 6 日晚上 18:00 开启第一期流动性挖矿(PoL)和交易挖矿(PoT)活动。[2021/3/3 18:10:51]
如果攻击者没有直接或立即利用这个漏洞从用户那里窃取资金,这个漏洞可能很长时间都不会被发现。
动态 | BBKX平台ETF专区新增多个币对 其中ETH3L涨幅超12%:据BBKX.COM行情显示,BBKX交易平台ETF交易专区多个交易对大幅上涨,截至11:05(UTC+8),ETH3L/USDT当前净值1.015U,当前涨幅:13.53%涨幅明显,杠杆ETF 是一种锚定标的资产价格变化的指数基金。购买“3L”表示3倍做多,购买“3S”表示3倍做空,无需借还,不需要保证金,从而不会爆仓,用户可以在WEB端以及APP端ETF专区进行购买。目前已经上线BTC、ETH、EOS、XRP、BCH、LTC、BSV、ETC多个币种,后续还将上线更多币种,敬请期待
BBKX成立于2019年6月,已获得节点资本和链上产业基金联合战略投资。[2020/2/18]
治理劫持示例
恶意去中心化交易所EveSwap为其用户编写了一个调用者程序。这个调用者程序通过空投EVE代币来为用户提供gas资助,并批量处理用户的批准和转账事务。
EveSwap的调用者程序看似无害,而且永远不会窃取用户的代币,因为这样马上就会露馅。
用户很开心。交易都成功了,交易费也很便宜。几个月来平安无事。
然而,每当有人使用EveSwap交易AliceSwap的治理代币ALI时,会自动将用户的AliceSwap投票权委托给EveSwap。
一旦授权人数达到某个阈值,EveSwap就会通过治理提案劫持AliceSwap。
EveSwap用户不太可能注意到这个过程,因为交易总是成功的,但是最终会给AliceSwap带来毁灭性的打击。
跨链重放示例
EIP3074合理地建议?commit?应该包含?chainid。但是,这是由调用者,而非协议执行的。在另一条链上有着相同地址的调用者可能会跳过该检查。
EveSwap在兼容EVM的BobSpongeChain上运行,后者支持EIP3074。EveSwap在BobSpongeChain上部署了一个诚实的调用者。
用户使用该调用者在BobSpongeChain上交易,然后使用桥将资产转移到以太坊上。
EveSwap使用同一个部署密钥在以太坊上部署了另一个地址相同的调用者。这个在以太坊上的调用者不会检查?commit,只会检查?ownerOnly,并充当其所有者的通用AUTH/AUTHCALL代理。
这样一来,EveSwap就可以劫持用户在以太坊上的外部账户并卷走他们的资产了。
用户从未在以太坊上交易过,运行在BobSpongeChain上的调用者程序又经过了严格的安全审查。尽管如此,用户还是丢失了全部资产。
以太坊通过EIP155的重放保护来防范这种情况。AUTHCALL没有重放保护。由于所有?commit?检查都交给调用者完成,我们失去了以太坊提供的一切交易保护。攻击是在所难免的,因为保护措施很随意。如果要接受EIP3074,AUTH消息必须明确包含?chainid,而非将其作为?commit?的一部分。
我们还能采取什么别的手段?
我的提议是实现一个更明确的机制,在协议层面强制规定?commit?的含义。commit结构将是类型化的,钱包会以用户可读的形式将commit呈现出来。用户可以确切地知道事务是什么样子的,并确信这个事务不会在任何链上重放,无需依赖于调用者程序开发者的品行和能力。
一个可能的实现:
AUTH?将使用包含授权调用列表的类型化结构代替?commit?哈希值。每个调用都将指定{nonce,to,gas,calldata,value,chainid}。签名将被验证,整个授权调用列表将保存为?authorized_transactions?而非?authorized?地址变量。
AUTHCALL?将得到一个新的参数?index,该参数指向最后一个?AUTH?创建的列表中的地址。
用户地址的nonce将随?AUTHCALL?递增。nonce并非由调用者存储,而是实际的账户nonce。
利:
用户可以清楚地了解情况。
安全性由协议保障。
依然支持批处理和账户抽象。
弊:
nonce实现,不支持并行。
复杂调用者程序的事务处理起来很繁琐,因为用户必须查看并接受整个调用列表。
不同的实现可能支持不同的nonce方案。但是,无论我们使用什么机制,该机制必须由协议而非调用者执行。
无论如何都应该避免让复杂调用者执行大量用户调用。复杂操作应该作为普通的智能合约实现,而非尝试实现使用多个外部账户调用的算法。
替代方案:完全避免硬分叉
还有一个选择是完全避免AUTH机制,并通过?vbuterin?建议的另一种交易池来解决账户抽象和批量处理问题。
利:
无需硬分叉,可由智能合约和可以感知这些智能合约的节点支持。
可用于一切支持EIP3074的实现,而不会引入额外的风险。
弊:
不向后兼容已有的外部账户。用户需要部署一个合约钱包并将资产转移到该钱包内。
除非要求在不迁移的情况下支持已有的外部账户,否则这个选择看起来更安全。
今年下半年有几个确定性的热点:NFT、波卡生态以及Layer2。本篇笔记就来自国内头部加密领域投资机构分布式资本对Layer2赛道的观察.
1900/1/1 0:00:00原作者:VitalikButerin,《状态到期和无状态路线图》以太坊的状态规模正在迅速增长。目前仅状态大小大约有35GB,如果包括所有Merkle证明在内,则超过100GB,并且每年大约增加一.
1900/1/1 0:00:00CME比特币期货BTC主力合约报49375美元...:10月5日消息,周一(10月4日)纽约尾盘,CME比特币期货BTC主力合约报49375美元,较上周五纽约尾盘涨2.04%.
1900/1/1 0:00:00DeFi数据1.DeFi总市值:630.8亿美元 市值前十币种排名数据来源DeFiboxDeFi总市值数据来源:Coingecko2.过去24小时去中心化交易所的交易量:40.
1900/1/1 0:00:006月9日,萨尔瓦多议会通过决议,正式批准比特币作为该国的法定货币。萨尔瓦多这个中美洲国家成为全球首个承认比特币为法定货币的国家.
1900/1/1 0:00:00萨尔瓦多总统宣布了该国官方比特币钱包Chivo,该钱包将于9月上线,每位下载并注册比特币钱包Chivo的成年公民能够获得30美元BTC.
1900/1/1 0:00:00