Login
欢迎来到未来世界

您现在的位置是: 首页 > 计算机 > 区块链

区块链

投资以太坊智能合约安全吗(智能合约是以太坊网络首次提出的吗)

区块链 加入收藏
2018年6月3日,由开发者社区CSDN和灵钛科技主办2018以太坊技术及应用大会在北京召开。本次大会共设立三大主题——以太坊技术探索 、以太坊行业应用、以太坊生态及治理。其中Vitalik在会上透露

2018年6月3日,由开发者社区CSDN和灵缇科技主办的2018以太坊技术与应用大会在京举行。本次大会设置了三大主题——以太坊技术探索、以太坊行业应用、以太坊生态与治理。维塔利克在会上透露了下一阶段的计划和实施步骤,并再次强调Casper的最终目标是让以太坊完全依靠PoS来维持整个网络的稳定。除此之外,Vitalik还向观众介绍了碎片化技术,并展示了一种新型的代码库,对此Babbitt也进行了详细报道:Vitalik Buterin最新演讲:给Casper verifier四个重要提示,否则面临巨额罚款!

此外,随着以太坊的日益普及,近期智能合约频繁出现的漏洞也引起了大家对以太坊生态安全的关注。原360首席科学家、现PeckShield创始人兼CEO蒋发表了主题为“代码即法律:以太坊智能合约面临的威胁与挑战”的演讲,分别介绍了之前对以太坊当前生态现状的简要介绍;智能合约的安全性及下一步。整理出以下一些观点:

颐泰坊的生态地位

目前,在以太坊生态系统中,2017年部署并上线了1000多个去中心化应用,同时可以在不同交易所交易700多个代币。

这个生态平均每天有10万的新用户加入以太坊生态圈,平均每天在以太坊上的日均交易超过100万次,这是个非常惊人的数据,也说明社区非常有活力,也解释了为什么现在数字加密货币的市场如此火爆。
这个生态系统平均每天有10万新用户加入以太坊生态系统,以太坊上日均交易超过100万次。这是一个非常惊人的数据,也说明了社区非常有活力,也解释了为什么现在数字加密货币市场这么火。

根据CoinMarketCap的数据,CoinMarketCap统计的1640种虚拟货币的市场规模已经超过3300亿美元。与国民生产总值相比,目前的市场规模已经排在世界第28位。这一市场规模扩大的部分原因是由于以太坊的部署,尤其是以太坊上独特的代币发行。


以太坊智能合约面临的威胁与挑战分析

每个发行的令牌都会在以太坊上部署一个智能契约,智能契约控制着令牌的发行和相互转换。

下面是2015年8月到最近一个月的数据。此数据显示每个月新部署的智能合约数据。江涛谈到了2017年下半年中国开发者加入以太坊最火的时候。5月份,智能合约的数据开始突飞猛进。2017年9月,由于国家政策监管,开始走下坡路。但是2017年10月份,数据突飞猛进,之后慢慢稳定下来。2018年4月,数据开始缓慢回落。

这种发展伴随着一系列我们不愿意看到的安全事件,出现在区块链的各个环节,包括:交易所、矿池、钱包、智能合约。关于交易所,今年年初3月份就有过对交易所的攻击;至于矿池,上个月被攻击了51%的计算能力,造成了“双花现象”;关于钱包,2018年4月全球最大的基于网络的数字钱包的域名被劫持;关于智能合约,2018年4月,美链智能合约漏洞公布,5月,智能合约漏洞陆续出现。

公开的漏洞直接影响到各大交易所停止充值或提取代币。目前还有很多未公开的漏洞。我们将与相关项目方和相关交易所联系,逐步核实相关数据。

因为这是一个开发者社区,接下来我们会选择两个例子和大家分享漏洞的原理,让大家在以后做项目开发的时候可以避免相关的问题:

第一个漏洞,关于TransferFlaw,是一个大家都懂的偷币漏洞。如果用户有一个令牌,而其背后对应的智能合约存在安全漏洞,攻击者就可以从你的钱包里转移所有这些令牌。以下是易受攻击的传输缺陷列表。TransferFlaw中有三个参数,它们是事务的值。代码行49-51进行初步检查,以确保该参数有效,但是在代码行53和54中,计算转让方本身的余额,并保存在fromBalance中。同时统计本次允许转出的金额。根据计算的变量,在代码的第56行和第57行,与当前交易值进行比较,然后计算两个条件,确定转让方是否有足够的账户余额允许交易,以及转让方是否有足够的授权做交易。

大家要注意代码行的第58行,简单验证一下如果把这个钱或者代币转给受让方,受让方的余额会不会溢出。当代码行满足条件时,这三个条件加起来就授权了这个事务。您可以注意到代码行中的判断条件,尤其是第56行。如果判断交易的转让方有足够的余额,下面的fromBalance应该大于等于value,第57行应该大于等于value,第58行应该小于等于value。

这里有两个数字钱包。左边的数字钱包是普通用户。他有1.2345 UET代币,是我们自己付的。右边的数字钱包是攻击者的,攻击者启动的代币余额为零。当攻击发生时,这些UET令牌是如何从用户的数字钱包转移到攻击者的钱包的?因为这个漏洞,即使这个用户使用了这些冰冷的钱包,钱也可以被转走。

第二个漏洞,multiOverflow。MultiOverflow是指如果每笔交易都做了,可能会造成更高的交易成本。该功能的作用是将多单交易批量化。它有两个参数,即转入值和转入值。里面有很多交易。它被制成一个数组。代码行227和228的长度相同,这是有效数据。该值的长度成为当前有多少单个事务。

第249-251行相当于将这些要转出的交易的值相加。获得总价值后,判断转让方有足够余额授权管理。但是因为这个漏洞,可以感觉到这个变量可能会溢出,变成零。

假设这个值有两个地址,一个是1,一个是2,值等于2的225次方,两个225次方相加得到256次方,导致转让方余额大于等于1的条件。接下来的循环会把单笔交易的值转移给受让方,转让方同时做减法,转让方把这个值加到2的255次方,产生无限令牌生成漏洞。


以太坊智能合约有哪些保护措施和防范机制?

资产上线,一定要注意三点:

首先要对智能合约做一个相对完整客观的审核。包括Peckshield在内的很多公司都可以做这项服务。

第二,你一定要注意上线后的应急响应,比如监控智能合约异常交易,把这个放在应急响应里。你会在第一时间知道智能合约是否被攻击了。同时,开发业务项目方有应急小组,可以按模式应对。

第三,项目方和交易方都有相应的漏洞奖励计划,形成健康的生态。

在设计智能合约的时候,项目要有一些安全的设计方案,这样当安全漏洞发生的时候,可以对攻击前的余额进行快照,可以立即保护相应的资产,并转移到新的智能合约中。此外,有些智能合约可以升级为智能合约,旨在确保升级逻辑不会引入新的安全漏洞。这是开发商和项目方为自己做的事情。同时,他们也可以参考其他保安公司的审计安全报告中的建议。相信会有帮助。

图集详情底部广告位