再议智能合约安全

智能合约具有惊人的潜在应用。它们可用于证明身份,安全地共享数据以及管理ICO /令牌销售中筹集的代币和资金。

以太坊网络上有超过1500个dApp,使用智能合约进行一系列应用。然而,智能合约是基于代码的,如果有的话,错误会带来灾难性的后果。在本文中,我们将介绍一些最大的智能合约失败及其原因。

什么是智能合约?

智能合约是包含一组规则的代码。如果符合规则,则自动执行合同。例如,可以制定出售汽车的智能合约。当汽车的钱存入正确的账户时,合同可以将汽车的所有权转给买方。这些合同不需要第三方验证条件已经满足,因为合同是自动完成的。

与通过第三方强制执行的纸质合同不同,智能合约是用代码编写的。如果代码是安全的,智能合约将按预期运行。但如果代码中存在错误或弱点,整个交易(或资金)可能会以某种方式被盗或被操纵。

当智能合约出错时

权力下放自治组织(DAO)是基于智能合约的组织的最大范例之一。它旨在为不受任何一个人或小组决定的加密项目提供资金。DAO令牌的每个所有者都被允许对项目是否应该获得资金进行投票。围绕这一想法的炒作导致DAO代币的总购买量在黑客攻击前一天达到价值2.5亿美元的以太网。

然而,两段代码导致了备受期待的DAO项目的崩溃,并导致以太坊区块链有争议的硬分叉进入以太坊和以太坊经典。“splitDAO”和“withdrawRewardFor”这两个功能本身并不容易受到影响,但是这些功能让黑客能够吸收400万个Ethers,这些Ethers在Ether的最高价格下价值55亿美元。随之而来的混乱导致以太坊社区进行了51%的“攻击”并重新编写了区块链,好像这些资金从未被盗过一样。

最近,Parity使用的智能合约中的一个错误被利用导致损失50万以太,价值1.69亿美元。代码中的错误导致70多个钱包被冻结,并且无法获得每个钱包中的钱。Parity承认在8月发生错误之前已经被警告过这个漏洞,但是没有解决这个问题。

“但是,我们坚信,不仅仅需要进行更多的审计,我们坚信需要围绕部署,监控和测试合同的更广泛和正式的程序和工具来实现安全性。我们认为整个生态系统迫切需要这样的程序和工具来防止类似问题再次发生,特别是在现场合同的数量和复杂性增加的情况下。

由于智能合约缺陷,这不是唯一的Parity hack。2017年6月,发现一个漏洞,导致15万以太网(3200万美元)被盗。在当时的博客文章中,Parity表示,这些功能应该仅在一个特定情况下可用,但“完全没有防范”,允许黑客改变钱包的所有权。钱包没有在以太坊和平价社区之外进行审计。

以太坊智能合约的问题

以太坊的一个主要问题是它建立在称为Solidity的高级编码语言之上。这要求程序员学习一种全新的编码语言,以在平台上创建智能合约。在这样做的过程中,由于不熟悉语言而暴露用户资金,这会带来更多编码错误的风险。这也需要更好的外部审计。

大多数在以太坊网络上发布称为ERC20令牌的令牌。突出的例子包括最近都迁移到主网上的EOS,TRON和VeChain。今年ICO的总资金几乎达到了200亿美元,但研究人员发现了3000个易受攻击的智能合约,这些合同可能会使大量资金处于危险之中。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180724B0RUFV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券