| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> MEXC Global 科普:DeFi中常见的三类攻击逻辑 -> 正文阅读 |
|
[区块链]MEXC Global 科普:DeFi中常见的三类攻击逻辑 |
与传统的网络犯罪相比,区块链上的信息对攻击者来说更有价值,因为对智能合约的成功攻击可以带来直接的经济回报。 传统上被黑的信息,比如被盗的个人信息,仍然需要出售才能赚钱,但智能合约直接存入资产。?? ?在以太坊的早期,大多数攻击都是基于寻找单个漏洞,这些漏洞使攻击者能够冻结或耗尽智能合约。? 2016 年臭名昭著的 DAO 黑客就是这种情况,当时 1.6 亿美元的 ETH 被盗,以太坊最终分叉。 同样,2017 年的 Parity 多重签名攻击让黑客窃取了 3000 万美元,Parity 钱包中的 1.5 亿美元被冻结,都是由于此类漏洞。?? ?此类智能合约的漏洞仍在不时被利用。 最近,攻击者成功从代币合约中窃取了所有 VETH,并通过耗尽 VETH-ETH Uniswap 池获得了 90 万美元的利润。 但这是 VETH 造成的一个简单错误,因为 VETH 修改 ERC20 代币标准的方式在逻辑上是错误的。?? ?总体来说,安全性有所提升,尤其是关注度高的项目。 用户对审计的期望和围绕测试的改进工具推动了它们安全性的提高。 最近 DeFi 最大的安全问题是 dForce 的 2500 万美元数字资产在借贷市场被盗。 然而,由于攻击者的 IP 地址被发现并与新加坡警方共享,资金被退回。?? dForce 的攻击也可以认为是开发团队特别严重疏忽的结果,因为利用的漏洞是可重入性。 重入攻击是导致DAO耗尽的原因,这一直是开发人员在与ERC777令牌交互时需要考虑的众所周知的问题。?? ?ERC777 代币的一个显着特点是它们可以通知将接收或发送资金的智能合约——并允许合约根据这些信息采取行动。 如果允许用户从合约中提取所有资金,这个例子说明了为什么合约容易受到重入攻击。?? 想象一个合约有以下四个提款步骤:?
?重入漏洞允许恶意用户在合约完全执行之前再次调用合约(“重入”)。 在上面的例子中,攻击者可以在第三步和第四步之间重新进入合约,并在用户余额更新之前再次退出。 通过重复这个过程,他们可以从合约中提取所有现有的资金。?? ?这个原理用于攻击dForce,当合约认为用户在不断增加imBTC抵押品(一个ERC777代币)的数量时——那么合约将允许用户从系统中借入更多的资金。 攻击者将他们伪造的 imBTC 抵押品增加到远远超过 2500 万美元,然后以贷款交易的形式提取了 dForce 中的所有流动资金。 通过可组合性(composability)进行黑客攻击 ? 区块链上的智能合约基于无需许可与用户和其他智能合约进行交互。 对于那些设计智能合约的人来说,很难考虑未来人们可能与他们的合约进行交互的所有方式。 其他人可以构建一个智能合约,以原作者不想看到的方式与合约进行交互。?? ?用户在 dForce 攻击中使用基于 ERC-777 标准的相同漏洞从 imBTC-ETH Uniswap 池中提取 220,000 美元。 在 Uniswap 的案例中,攻击者从 ETH-imBTC 代币池中移除了 ETH,但 imBTC 代币余额并没有增加。 此类操作通常会提高 ETH 的价格。?? ?与dForce案例不同,Uniswap开发团队在这里没有真正的责任,他们几乎不可能阻止人们掉入这种陷阱。 即使 Uniswap 团队确保他们的交互界面不允许用户向可能耗尽的池中添加流动性,他们也无法阻止其他交互界面建立在允许这样做的智能合约上。 事实上,这种特殊的攻击方法在很多年前就已经被广泛讨论过。?? ?最近 6 月 18 日对 Balancer 的攻击是在特定市场中使用非标准编程模式的类似示例。? STA 是一种 ERC20 代币,带有额外的通货紧缩模型,即每次转账收取 1% 的费用。 攻击者使用智能合约在单笔交易中自动执行多个操作,来回交换 WETH 和 STA 代币 24 次,耗尽其中一个 Balancer 流动性池中的 STA 代币,直到池中只剩下 0.000000000000000001 个 STA(1 威斯塔)。? Balancer 矿池不知道 STA 的通货紧缩模型,并根据 1 weiSTA 为其资产设定新价格。 攻击者随后在池中交易了 WETH、LINK、SNX 和 WBTC。 通过这次攻击,两个矿池的资本损失超过50万美元。?? ?一天后,Balancer 遇到了第二个漏洞问题,这也是由于与其他智能合约交互时的意外行为造成的。? Compound 的代币Distribution 要求用户通过与 Compound 的智能合约交互来接收他们自己的 COMP。 想要同时获得 COMP 和 BAL(通过提供流动性获得的平衡器代币)的用户需要使用 COMP 创建一个流动性池,以便他们有资格获得这两种代币。?? ?攻击者意识到Balancer流动性池中资产产生的新COMP不属于任何人,因此攻击者可以进入池中获取这些可用的COMP代币,然后随身携带更多的钱 剩下的比他们放入流动性池中的要多。 就像现在发现的漏洞一样,攻击者利用闪电贷来最大化他们的资本,然后获得最大的收益。?? ?利用区块链的独特属性进行攻击? ? 第三类攻击涉及利用区块链本身的属性。?? ?长期被此类问题困扰的协议是 Synthetix。? 2019年9月至2020年2月,本协议的套利机器人在oracle更新前持续运行。 在 Synthetix 中,交易不是买卖双方通过撮合进行的交易,而是基于预言机提供的价格反馈的交易,流动性由 SNX 代币持有者提供。?? ?当 Synthetix 的预言机在链上发布价格反馈时,机器人将支付高额交易费用并在预言机有机会更新价格之前被包含在以太坊区块中。 由于这种抢先套利行为,Synthetix单日交易量最高达到6900万美元,而今天没有套利机会的Synthetix平均交易量仅为150万美元。 ? 3 月 12 日(“黑色星期四”),金库的所有者在 MakerDAO 清算中意外损失了 830 万美元。 交易成本也是此次事故的原因之一。 当 MakerDAO 的基金库(用户存入抵押品并生成 Dai)中的抵押品不足时,他们的抵押品(如 ETH)将被拍卖以筹集 DAI 并偿还清算基金库的债务。 通常情况下,拍卖中的中标者(饲养员)会用 DAI 交换金库中的 ETH,然后这些 DAI 将被销毁。 一旦债务还清,国库的原始所有者将收到剩余的 ETH。?? ?3月12日,由于ETH价格暴跌50%以上,多家基金银行进入清算程序。 与此同时,以太坊网络变得非常拥挤,gas 飙升至 400gwei 或正常价格的 20 倍,导致大多数饲养员无法进行实时报价。 守门员继续触发清算,并以 0 美元的出价赢得了可用的 ETH。?? ?未来的治理攻击??? ?随着项目从开发团队的中心化控制转向代币持有者社区的去中心化治理,治理攻击的问题可能会变得更加普遍。 从理论上讲,区块链可能会成为通过在链上购买选票来进行贿赂的绝佳工具。?? ?购买选票可用于恶意收购,使敌对方购买另一个项目的多数投票权(代币)更便宜。 例如,一个借贷协议可以为另一个借贷协议的代币持有者提供折扣,允许他们出售另一个协议的代币以换取协议自己的代币。?? ?Steemit 上发生了敌意收购的例子。 当这个社交媒体平台背后的团队将 Steemit 出售给 Tron 时,社区试图使 Tron 拥有的代币的投票权无效,但这种努力最终被火币和币安等大型交易所的投票权淘汰。?? ?随着 DeFi 中工具的改进,攻击者的“工具箱”变得越来越先进。 快速贷款允许任何具有必要专业知识的人攻击其中一个系统并获得更多资金以实现利润最大化。?? ?如果说从 COMP 和 BAL 代币的发行中可以学到一件事,那就是无论什么激励方案,只要有利可图,总会有人钻空子。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 11:32:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |