木星链 木星链
Ctrl+D收藏木星链
首页 > 莱特币 > 正文

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

作者:

时间:1900/1/1 0:00:00

对于开发者来说,AUTH/AUTHCALL 机制非常具有吸引力。它可以让人们创建调用者来实现不同的批量处理策略(例如,支持多个 nonce 来实现更好的并行性)、gas 抽象模型和复杂的账户抽象方法等。

这种灵活性源于这一机制赋予了开发者极大的自由。AUTH/AUTHCALL 机制不要求开发者遵循特定的模式,而是要求用户签署一个 commit 哈希值(commit 内容将由调用者来解析),让开发者基于 commit 自行设置限制。

然而,这种灵活性是以牺牲安全性为代价的。在本文中,我想要介绍一种更简单的替代方案。这个方案具备 AUTH/AUTHCALL 机制的绝大多数优点,但是风险远低于后者。

为什么签署一个 AUTH commit 所带来的风险高于签署一个与存在漏洞/恶意合约相关的事务?

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

用户在签署与合约相关的事务时,所承担的风险是已知的,即,可能会损失在该合约控制范围内的资产。比方说,用户给一个 ERC 20 合约签署了批准事务,授权恶意的 DEX 合约。这个恶意 DEX 合约就可以提走用户在 ERC 20 合约中的全部余额。但是,它无法从该用户的其它 ERC 20 合约中提走代币,除非得到该用户的批准。它也不能代表用户进行其它操作,因为这也需要专门获得用户的批准。

动态 | EOS NewYork 发文回应 AnChain.ai 报告及其对 EOS 菠菜 dApp 的报道:据MEET.ONE 报道报道,六月初,AnChain.ai 宣布其平台对 EOS 上排名前 10 的菠菜 dApp 的分析,并构陷 51% 的账户和 75% 的交易与这些 dApp 上的智能合约相关,且为机器人运作的结果。由于这篇文章,一些媒体的报道将 dApp 定性为无作为的应用,把多数的 EOS 用户当成是机器人。为此, EOS New York 发文回应该报道,并称其对 EOS 认知不足,且通过 dApp 生态系统、报告、商业决策、以及区块链内在属性等方面分析,反驳 Anchain.ai 观点。[2019/6/12]

相较之下,EIP 3074 不仅要求用户签署 “空白支票”,而且假设调用者是诚实且没有漏洞的。一个恶意/存在漏洞的调用者可以代表用户执行任何操作 —— 访问用户持有的资产,代表用户进行投票,控制用户所有的合约等。

动态 | EOS 主网更新补丁应对 EOS DDOS 攻击:据 IMEOS 报道,区块链斜杠青年发文称主网已应用了新补丁来应对 EOS DDOS 攻击。

DDOS 攻击的核心是发起死循环交易,由于 EOS 限制一个 transaction 最长执行时间为 10 ms, 超时后就会报错,由于该交易报错失败,从而不消耗任何 CPU 资源,从而该攻击无成本。无成本才是恐怖的,因为无成本,攻击者可以一直占用主网的 CPU,进而会导致全网长时间瘫痪,这才叫 DDOS 攻击。

解决建议:

1.增加交易执行顺序的随机性; 2.增加执行超时交易成本。[2019/1/14]

更糟糕的是,调用者随时都可以作恶,因为 nonce 实现是由调用者控制的。存在漏洞/恶意的 nonce 逻辑实现可以重放用户过去的事务。如果 commit 验证的其它部分的逻辑也存在漏洞,调用者就可以利用这个 nonce 逻辑实现来代表用户执行任何操作。即使漏洞被发现,用户也无法撤回空白支票。这个外部账户(EOA)已经被永久入侵了。

动态 | 伦敦国王学院开始对 EOS 的 DPoS 和投票进行研究:据 IMEOS 报道,EOS Authority 在推特透露顶尖研究型大学伦敦国王学院(King’s College London)开始对 EOS 的 DPoS 和投票系统进行独立分析。DLT 和投票系统的全球顶尖的专家团队将使用 EOS Authority 提供的投票数据和专业知识展开研究。[2018/12/6]

编写一个正确的调用者程序很难,而且我们几乎可以肯定,调用者会不定期出现错误,从 EIP 3074 最后列出的调用者应该警惕的检查/漏洞/情况非详尽清单中可见一斑。这份清单势必会变得越来越长,很可能伴随着痛苦的发现过程。

此外,恶意参与者可以编写一个看似无害的调用者程序,但是故意留下一个细微的漏洞,等到大量外部账户授权该调用者之后才会被攻击者利用。

如果攻击者没有直接或立即利用这个漏洞从用户那里窃取资金,这个漏洞可能很长时间都不会被发现。

动态 | Bitfinex有个不存在的USDT/USD交易对 交易量达4500万美元:据cryptoglobe报道,Bitfinex的CoinMarketCap页面显示,Bitfinex有个USDT/USD交易对,交易量达4500万美元以上,但是该交易对并未出现在Bitfinex网站上,考虑到Bitfinex和Tether最近在银行业务方面的问题,交易者怀疑Bitfinex参与了冲销交易(Wash Trading)。Bitfinex回应到,这来自Tether钱包的存取款记录,“CoinMarketCap会跟踪我们的API,他们显示这一交易对不是我们可以控制的,也不是我们推动的。”[2018/10/24]

恶意去中心化交易所 EveSwap 为其用户编写了一个调用者程序。这个调用者程序通过空投 EVE 代币来为用户提供 gas 资助,并批量处理用户的批准和转账事务。

EveSwap 的调用者程序看似无害,而且永远不会窃取用户的代币,因为这样马上就会露馅。

用户很开心。交易都成功了,交易费也很便宜。几个月来平安无事。

然而,每当有人使用 EveSwap 交易 AliceSwap 的治理代币 ALI 时,会自动将用户的 AliceSwap 投票权委托给 EveSwap。

一旦授权人数达到某个阈值,EveSwap 就会通过治理提案劫持 AliceSwap。

EveSwap 用户不太可能注意到这个过程,因为交易总是成功的,但是最终会给 AliceSwap 带来毁灭性的打击。

EIP 3074 合理地建议 commit 应该包含 chainid。但是,这是由调用者,而非协议执行的。在另一条链上有着相同地址的调用者可能会跳过该检查(或与此相关的检查)。

EveSwap 在兼容 EVM 的 BobSpongeChain 上运行,后者支持 EIP 3074。EveSwap 在 BobSpongeChain 上部署了一个诚实的调用者。

用户使用该调用者在 BobSpongeChain 上交易,然后使用桥将资产转移到以太坊上。

EveSwap 使用同一个部署密钥在以太坊上部署了另一个地址相同的调用者。这个在以太坊上的调用者不会检查 commit,只会检查 ownerOnly,并充当其所有者的通用 AUTH/AUTHCALL 代理。

这样一来,EveSwap 就可以劫持用户在以太坊上的外部账户并卷走他们的资产了。

用户从未在以太坊上交易过,运行在 BobSpongeChain 上的调用者程序又经过了严格的安全审查。尽管如此,用户还是丢失了全部资产。

以太坊通过 EIP 155 的重放保护来防范这种情况。AUTHCALL 没有重放保护。由于所有 commit 检查都交给调用者完成,我们失去了以太坊提供的一切交易保护。攻击是在所难免的,因为保护措施很随意。如果要接受EIP 3074,AUTH 消息必须明确包含 chainid,而非将其作为 commit 的一部分。

我的提议是实现一个更明确的机制,在协议层面强制规定 commit 的含义。commit 结构将是类型化的(如 EIP 712 所述),钱包会以用户可读的形式将 commit 呈现出来。用户可以确切地知道事务是什么样子的,并确信这个事务不会在任何链上重放,无需依赖于调用者程序开发者的品行和能力。

一个可能的实现:

AUTH 将使用包含授权调用列表的类型化结构代替 commit 哈希值。每个调用都将指定 {nonce,to,gas,calldata,value,chainid}。签名将被验证,整个授权调用列表将保存为 authorized_transactions 而非 authorized 地址变量。

AUTHCALL 将得到一个新的参数 index,该参数指向最后一个 AUTH 创建的列表中的地址。

用户地址的 nonce 将随 AUTHCALL 递增。nonce 并非由调用者存储,而是实际的账户 nonce。

利:

用户可以清楚地了解情况。

安全性由协议保障。

依然支持批处理和账户抽象。

弊:

nonce 实现,不支持并行。

复杂调用者程序的事务处理起来很繁琐,因为用户必须查看并接受整个调用列表。

不同的实现可能支持不同的 nonce 方案。但是,无论我们使用什么机制,该机制必须由协议而非调用者执行。

无论如何都应该避免让复杂调用者执行大量用户调用。复杂操作应该作为普通的智能合约实现,而非尝试实现使用多个外部账户调用的算法。

还有一个选择是完全避免 AUTH 机制,并通过 vbuterin 建议的另一种交易池来解决账户抽象和批量处理问题。

无需硬分叉,可由智能合约和可以感知这些智能合约的节点支持。

可用于一切支持 EIP 3074 的实现,而不会引入额外的风险。

不向后兼容已有的外部账户。用户需要部署一个合约钱包并将资产转移到该钱包内。

除非要求在不迁移的情况下支持已有的外部账户,否则这个选择看起来更安全。

标签:BSPNBSAUTHEOSBSPT币nbs币发行量AuthorshipEOST币

莱特币热门资讯
DEFI:DeFi放在传统金融市场前的 “特洛伊木马”:代币化股票

一个DeFi "特洛伊木马" 近期成功找到了渗透进股市的捷径多年来,华尔街的机构玩家一直在试图将股票市场转移到区块链上,但并没有取得实质性发展.

1900/1/1 0:00:00
ETH:鲸鱼出动支持Eth 2.0 单日向存款合约地址存入10万枚ETH

加密鲸鱼可能是“害羞”但聪明的生物,但是当你设法在行动中捕捉到鲸鱼踪迹时,这会是一个壮观的景象——例如.

1900/1/1 0:00:00
比特币:多角度带你了解比特币的价值从何而来

原标题:比特币的价值本位尝试就比特币何以具备重要价值和财务潜力进行分析。自从2017年初接触比特币以来,我看了很多介绍比特币价值的文章.

1900/1/1 0:00:00
ETH:从2014年的老照片 看以太坊网络资本效率的发展

当以太坊被推出时,与 ETH 没有任何关系。但后来 DeFi 诞生了。MakerDAO 在 2018 年推出,允许 ETH 持有人用他们的 ETH 作为抵押品进行贷款.

1900/1/1 0:00:00
比特币:金色观察丨比特币价格越高网络攻击越多?数据显示的确如此

金色财经 区块链6月29日讯 根据区块链安全公司Barracuda Networks最新研究表明,自2020年10月数字货币市场“转牛”以来,与比特币相关的网络攻击数量已增加了近四倍,也就是说.

1900/1/1 0:00:00
NFT:HashKey 专访黑鳯李:解读 NFT 的金融创新及未来图景

虽然 NFT 最先在加密艺术领域爆发,但其在金融领域也有很大的发展空间。采访与撰文:Scarlett, HashKey Capital 研究员 受访者:黑鳯李,DEGO China 创始人本次专.

1900/1/1 0:00:00