详解以太坊智能合约安全性漏洞,如何有效减少 DeFi 攻击?(6)
时间:2021-03-08 14:54来源:未知 作者:admin 点击:
次
交易顺序依赖(又名前端运行):这是指并发性问题,即区块链的即将到来的状态取决于交易的执行顺序,但是由矿工决定。 时间依赖关系:当合约在执
交易顺序依赖(又名前端运行):这是指并发性问题,即区块链的即将到来的状态取决于交易的执行顺序,但是由矿工决定。 时间依赖关系:当合约在执行关键操作(例如汇款)时将 block.timestamp 用作触发条件的一部分或作为可由恶意矿工操纵的随机性来源时,会发生此漏洞。该漏洞是由以太坊引起的,它只要求时间戳大于其母块的时间戳并且在当前时钟的 900 秒以内。 产生随机性:例如,许多赌博和彩票合约都是随机选择中奖者,通常的做法是根据一些初始私有种子(例如 block.number,block.timestamp,block。难易度或 blockhash)生成伪随机数。但是,这些种子由矿工完全控制,这意味着恶意矿工可以操纵这些变量使自己成为赢家。此漏洞是由可操纵的 entropy 源引起的。 数据层漏洞 难以分辨的链:当以太坊分为 ETH 和 ETC 两条链 [13] 时,首先从跨链重放攻击中观察到此漏洞。回想一下,以太坊使用 ECDSA 签署交易。在进行 EIP-155 [7] 硬分叉之前,每笔交易都包含六个字段(即,随机数,收件人,值,输入,gasPrice 和 gasLimit)。但是,数字签名不是特定于链的,因为那时甚至还不知道特定于链的信息。结果,为一个链创建的事务可被另一链重用。通过将 chainID 合并到字段中,已消除了此漏洞。 State Trie 中的「空帐户」:此漏洞首先从参考文献 [12] [13] 中报告的 DoS 攻击中发现的。
共识层的漏洞 可外包的难题:回想以太坊采用了名为 Ethash 的 PoW 难题,该难题旨在抵御 ASIC,并能够限制并行计算的使用(由于事实上,矿工的大部分工作将是读取数据集。 通过有限的内存带宽)。 但是,狡猾的矿工仍然可以将搜索难题解决方案的任务划分为多个较小的任务,然后将其外包。 该漏洞是由 Ethash 造成的,它仅使拼图解决方案在原图像搜索中部分顺序,而不是依赖顺序 PoW。 概率最终性:此漏洞是由以太坊区块链偏爱可用性而非一致性的设计引起的,这是根据 CAP 定理 [14] 选择的。 带有块填充的 DoS:首次从 Fomo3D 合约中观察到此漏洞 [15]。该漏洞仅导致攻击者的交易包含在新开采的区块中,而其他交易则被矿工放弃一段时间。当攻击者提供更高的 gasPrice 以激励矿工选择攻击者的交易时,可能会发生这种情况。此漏洞是由贪婪的采矿激励机制引起的。在撰写本文时,尚无解决方案来防止此漏洞。 诚实的采矿设想:此漏洞是由共识协议引起的,因为它与激励不兼容,请参见 [16]。在撰写本文时,此漏洞仍然是一个未解决的问题。 出块奖励:它是指出块奖励机制,用于应对由于快速生成块而导致的陈旧区块增加。但是,这种机制有一个副作用,即允许自私的矿工将陈旧的区块变成出块并获得奖励,从而有效地激励了自私的采矿和双重支出。
(责任编辑:admin)
|
织梦二维码生成器
------分隔线----------------------------