区块链开发之DeFi协议安全问题 译文 精选
?译者 | 朱先忠
审校 |?孙淑娟
引言
2021年,由于DeFi产品的欺诈和盗窃,导致价值超过100亿美元的用户资金被盗。这比去年增长了7倍。2022年,英国税务局展开了20起涉及数字资产的刑事调查。这一行动是由洗钱和欺诈行为激增引发的。根据另一份报告,基于加密货币的犯罪在2021年创下历史新高,经非法地址收到的货币价值高居140亿美元之多。
去中心化金融的平静存在似乎只是一种幻觉。尽管这些数字与加密世界的乌托邦背道而驰;但是,它们仍然没有反映出整个DeFi应用领域的安全性和合法性的全貌。
话虽如此,接下来,让我们深入探讨一下去中心化金融的安全问题和目前已知的常见网络骗局。
DeFi历史回顾
如果这是你第一次阅读有关去中心化金融的内容,我将根据我们以前发布的一篇??博客文章??,带你了解一下DeFi世界。
去中心化金融或DeFi是一组基于区块链技术的专业应用程序和金融服务。此外,它还经常被宣传为一场旨在使金融去中心化并向所有人开放的运动。
也就是说,DeFi交易不需要银行等中介机构或任何其他类型的集中处理。在这方面,DeFi依靠智能合约、加密和区块链的使用实现流程和协议的自动化处理,使其比传统银行结构更高效、更安全。从形式上讲,您甚至可以成为自己的银行,因为您可以在贷款、借入资金、保险和其他方面提供金融服务,而且无需文档类操作带来的麻烦。
归纳来看,截止目前DeFi产品包括但不限于以下方面:
- 去中心化交易所(DEX)
- 对等(peer-to-peer)借贷平台
- 稳定币(Stablecoins)
- 预测市场,等等
大多数DeFi产品都构建在以太坊上,因为该区块链平台支持有助于创建高级智能合约的Solidity编程语言。
在撰写本文时,去中心化金融持有的加密货币数量已攀升至8000多万美元,这无疑使其成为一种具有坚实用户基础的可行金融现象。然而,DeFi基础设施及其监管技术仍在发展中,这使其极容易受到攻击、庞氏骗局(指骗人向虚设的企业投资,以后来投资者的钱作为快速盈利付给最初投资者以诱使更多人上当)和其他安全威胁。
因此,在最佳情况下,智能合约可以提供无与伦比的非定制金融服务。然而,它们和它们的代码一样安全。因此,智能合约经常会受到漏洞的困扰,这些漏洞允许黑客耗尽钱包。让我们不要忘记开源和可组合性的力量,这可能是好事,也可能是坏事。
顶级DeFi黑客风格
在过去两年中,加密货币社区受到了网络钓鱼计划的袭击,许多人对其基础提出了质疑。因此,由于加密货币犯罪的增长,DeFi应用程序正越来越多地与加密货币的“拓荒时代”联系在一起。
接下来让我们了解一下当前广泛存在的一些攻击类型。
闪电贷款攻击
闪电贷款是许多流行的DeFi协议中的一项功能,允许您在没有抵押品的情况下借入加密货币资产,前提是贷款将在相同的交易块中偿还。
在这种情况下,一个网络窃贼能够通过从DeFi协议中获得一笔快速贷款来操纵市场,然后通过过度滑移(excess slippage)将所借代币的价值推到水下进行套利。之后,黑客迅速归还贷款,并通过在其他市场上以真实价格出售代币,将利润留给自己。
不妨让我们重温一下区块链项目Cream Finance及其对黑客的致命吸引力。2021年该公司利用闪电贷款获得了价值1.3亿美元的流动性提供商代币。当年早些时候,黑客先后在2月份和8月份的其他闪电贷款漏洞中分别获得了3750万美元和1880万美元。
地毯式骗局和庞氏骗局
地毯式骗局(Rug Pull,一种加密货币骗局的通俗术语)是一种DeFi骗局。区块链开发商首先抽取项目的代币,然后放弃项目,带走投资者资金,留下一个毫无价值的代币。这类骗局的主要类型包括流动性窃取、限制销售订单和倾销。
根据区块链分析公司ChainAnalysis的数据,2021年这种特殊类型的恶意操作导致受害者损失近30亿美元。OneCoin是加密市场有史以来最大的地毯式骗局之一。因此,开发商从毫无戒心的投资者那里获得了40多亿美元。鱿鱼游戏代币是另一个庞氏骗局。《token》是一部受Netflix电视连续剧启发的赚取代币的电视剧,吸引了43000多名投资者做空。
重入攻击
上述这类网络攻击是Solidity智能合约中最具破坏性的攻击之一,因为它会完全耗尽您的智能合约资金。在这种情况下,攻击合约调用受害者合约的方式可以更好地控制代码执行,从而破坏受害者合约并获得未经授权的访问。当受害者的合约无法更新其状态时,攻击者调用提款功能来轻松赚钱。
然而,困难在于,由于智能合约的实施方式不同,可能的场景也不同,因此很难发现重入漏洞。此外,由于智能合约中没有特定的模式,因此无法准确识别此漏洞。使用简单而直接的模式进行分析可能会产生误报,而严格的模式可能无法检测到是否存在重入漏洞。
重入攻击最著名的例子是DAO Hack,价值7000万美元的以太币被黑客吸掉。
51%攻击
如果恶意参与者控制了加密货币网络一半以上的处理能力,则可能会发生51%的攻击可能性。通过拥有对网络的大多数控制权限,此参与者可以进行以双倍方式消费代币、审查交易,甚至完全接管网络。
51%的攻击风险是真实存在的,并且在过去针对较小的加密货币网络时代已经发生过。此外,这种攻击还允许攻击某些特定网络节点以阻止新交易被确认,就像它是合法网络一样。
这意味着,合法区块链的增长速度慢于恶意区块链的增长速度,从而允许攻击者重写分布式账本的内容。目前,51%的攻击还没有被广泛使用,因为它们代价高昂。
2020年,DeFi平台PegNet遭受了51%的攻击,顶级矿工曾经以欺诈手段在稳定币(Stablecoins)中创造了670万美元。
然而,这些只是困扰DeFi平台和应用程序的一小部分安全问题。
DeFi有那么脆弱吗?
对此问题的简短回答是:非也。
现在,让我们更深入地了解一下有关细节。密码学可谓安全货币交易领域的老生常谈。DeFi真正颠覆性的概念是完全和彻底的去中心化;其中,受损节点再次出现。
而DeFi的大部分脆弱性也源于其分散和开放的基础。伴随着无限的可能性,作为用户我们能够得到完全透明的智能合约;但另一方面,漏洞也成为公众熟知的知识。此外,考虑到极其复杂的DeFi结构,相关应用程序可能涉及跨多个协议连接的多个智能合约;因此,一个漏洞可能会拖累无数协议。
但这并不全是厄运和悲观。就像其他新降世的孩子一样,DeFi需要长大,展翅飞翔。任何新技术都有可能存在缺陷,这取决于你的全面权衡——是否值得利用有关技术。在去中心化财经领域,安全性依赖于您所使用的开发技术。
2P2金融服务是一条安全选择之路。
虽然专家和政府正在就DeFi监管进行辩论,但我们都应该遵循买方谨慎的做法——在进入该领域之前进行尽职调查。话虽如此,还是让我们来了解一下一些目前公认的安全实践,以便降低DeFi应用程序的漏洞率。
如何保护您的DeFi资产?
虽然目前市场上已经存在不少针对每种黑客风格的特定保护措施,但我特意策划了当下最流行的安全实践,以确保您的DeFi资产安全可靠。
利用完整的单元测试覆盖率
单元测试是任何高质量项目所必需的重要测试技术,包括去中心化的财务应用等方面。这种类型的测试功能在智能合约的各个部分都存在问题。为什么要为“无聊”的测试而烦恼呢?一旦部署,智能合约即成为不可变的;这意味着,您的代码在进入DeFi平台之前必须没有错误。最重要的是,合约要求全面测试覆盖;这意味着,不应该存在任何“灰色”区域。
智能合约安全审核
完整的单元测试覆盖率很高,但它无法预测意外的漏洞或所有可能的交互路径。相反,安全审计允许开发人员分析可能被威胁因素操纵的区域。除了明显的安全好处外,审计还可以帮助团队提高整个DeFi应用程序的效率。然而,审计可能会占用大量的财务和时间资源,这可能会“威吓”到一些公司。然而,必须阻止重入攻击和其他类型的攻击。
禁止抄袭
部署智能合约不应是手动复制/粘贴。由于网络上每个合约的字节码都是公共的,因此很容易将其用于另一个合约。除非您完成整个项目(这往往也不是最好的方案);否则,最终将得到可能与其余部分不兼容的单独代码段。此外,很难在代码中更改或添加任何内容,即使是稍微有意义的内容。因此,简单的复制和粘贴对安全性极为有害,并会导致您的DeFi应用程序受到潜在的攻击。
结论
目前,DeFi协议还是相对年轻但复杂的系统,区块链也是如此。不成熟和进步的双重身份使两者都容易受到攻击。因此,在实施DeFi项目的安全保护之前,您需要对可能的威胁和安全策略有一个全面而准确的了解。反过来,要获得这种准确的计划需要进行全面的安全审计。如果操作得当,DeFi项目有望从脆弱的系统转变为独特、透明和直接的交易应用程序,且不必依赖第三方机构的监督。
译者介绍
朱先忠,51CTO社区编辑,51CTO专家博客、讲师,潍坊一所高校计算机教师,自由编程界老兵一枚。早期专注各种微软技术(编著成ASP.NET AJX、Cocos 2d-X相关三本技术图书),近十多年投身于开源世界(熟悉流行全栈Web开发技术),了解基于OneNet/AliOS+Arduino/ESP32/树莓派等物联网开发技术与Scala+Hadoop+Spark+Flink等大数据开发技术。
原文标题:??The Dark Side of DeFi: The Wild West of Decentralization???,作者:Pavel Tantsiura?