马里兰大学和东北大学的研究人员最近分析了基于以太坊的智能合约,以确定“用户和合约如何交互”。协作研究工作包括修改以太坊的Geth客户端,以便从以太坊块链上发布的所有合约中检索字节码。字节码是“紧凑的数字代码、常量和引用”,它们可以“有效地执行”。
使用字节码分析智能合约
根据该块,从字节码中获得的信息“覆盖了近三年的块”,它来自于产生并登录到以太坊网络的“前500万个块”。
在仔细检查了字节码之后,研究人员发现,在以太坊所签署的所有智能合约中,有60%的合约“从未被交互过”。这表明在以太坊的主网上可能有大量休眠(或未使用)的代码和加密令牌。
此外,来自字节码的数据显示了“在以太坊上极高的代码重用和代码相似性”。事实上,研究人员已经将以太坊所创造的120万个智能合约缩减至5,877个合约“集群”,因为它们包含“高度相似的字节码”。
重用糟糕的、不安全的代码
虽然重用代码是一种非常常见的实践,因为有用于常规过程的模板,但是“代码重用的高级别的”(在本例中)表明,某些合约中发现的潜在错误或安全漏洞也可能影响“数千个已经重用其代码的类似合约”。
研究人员指出,在2017年,以太坊的交易量从每天约4万笔大幅增长至每24小时逾100万笔。重要的是,尽管其本地令牌ether价格下跌以太坊网络仍然在处理大量交易。
目前,以太坊上的交易失败率约为0.01%-0.1%,约三分之一的智能合约仅由其他合约执行,而不是由用户发起。
严重的弱点,常见的误解
正如区块网在6月份报道的那样,ICON(ICX)网络上的一个智能合约漏洞允许除合约所有者以外的任何人暂停加密货币平台区块链上的交易。
尽管软件故障后来得到了修复,但社交媒体上的用户批评ICON的开发人员不够小心。当时,该平台的本地令牌ICX的市值约为8亿美元。
值得注意的是,人们普遍存在一种误解,认为智能合约能够降低交易成本,并消除中介或第三方。正如比特币开发商Jimmy Song所解释的那样,“达成一致的后果的执行,是让智能合约变得强大的原因,而不是合约天生的智能。”
Song补充说,智能合约主要是由非律师或合格法律专家撰写的。这些“新手”通常不知道如何编写合适的合约——这可能会导致他们的构建中出现漏洞或缺陷。
领取专属 10元无门槛券
私享最新 技术干货