区块链031 智能合约:要灵活,还是要安全?

区块链科普系列第31天:智能合约:要灵活,还是要安全?

文/杜豆豆


以太坊最大的创新之举,就是智能合约了。有了这个技术,人们可以在以太坊上创建自己的数字货币,比如豆豆币;可以实现众筹合约,比如建个公开透明的基金账户;还可以创建自治管理组织,比如建个合作翻译的组织等等。智能合约的这些本事,让人们大大扩展了应用能力,实在是太给力了。

可是,从来事物都是祸福相依,方便灵活的特性好人用了,便是好事;倘若被坏人算计了,那就成了一件危险的事情了。

今天我们就来聊聊智能合约中的代码漏洞风险问题。

提起智能合约的风险,我们先来说一个著名的安全事件,这个事件,甚至到最后,还演变出了一件大事情:以太坊因此愣是硬分叉成两个版本,也就是我们今天熟知的ETC和ETH。

这个事件就是The DAO事件。

1、说说TheDAO事件

DAO是Decentralized Autonomous Organization (去中心自制组织)的简称,是以太坊智能合约支持的一个功能。而TheDAO,是通过这种技术创建并运行在以太坊上的一个智能合约。该应用是有德国初创公司 Slock.it 开发建立的,曾一度融资众筹达到1.5亿美元,也是风光一时。

但是,没想到的是,TheDAO合约的源码存在一个函数调用漏洞,有黑客就利用这个漏洞,将TheDAO资产池中的以太币非法转移给了自己。问题被发现后,TheDAO监护人立刻采用垃圾交易阻塞的方式,减缓TheDAO资产被转移的速度。后来,以太坊官方修改了以太坊源码,并强行将TheDAO上的资金转移到了另一个合约地址,以夺回被黑客控制的币。正是这样的强行修改措施,最终导致了以太坊的硬分叉。

由此,也让大家意识到,智能合约还在初期发展阶段,复杂性提高以后,必然会伴随各种风险,与此相关的法律法规和监管制度,也是要亟待解决的问题啊。

2、Parity 多重签名漏洞

Parity 是以太坊颇受人赞的一类钱包客户端。它速度快、资源占用少、数据同步快,而且编写部署只能合约也很方便。

但是,在2017年7月19日,Parity却发生了一起严重的BUG事故,问题就出在Parity 钱包的多重签名合约库代码中的漏洞。这个漏洞,使攻击者可以越权调用合约函数,并将合约中的资产转入自己的地址。

虽然,这个漏洞后来被及时发现并修补,但由此带来的损失和影响却很大。

这又一次暴露出了智能合约代码的安全问题。

这个事件也提醒我们,在编写智能合约时,一定要进行专业的代码审核,任何一个小小的漏洞,都可能导致存入合约中的资产全部丢失。

蝼蚁之穴,可以溃长堤。

做事如此,做人亦如此。马虎不得。

(本文出自杜豆豆《白话区块链》读书笔记的部分摘录。)

明天分享:《速度慢、容量涨,说说区块链的两个心头之痛》

(未完待续)

原创不易,非授权不得转载,转载请注明出处。如果您觉的文章有用,别忘了在文末点赞哦。

读更多好书,请访问我的文集:《一生必读的万卷好书》

欢迎加入“万卷好书读书会”:在这个群里,大家可以分享电子书,交流读书心得,以文会友,自由点赞支持。目前该群已超过100人,需要群主发邀请才能进,有兴趣的简友请加微信dudoudou189联系我。读书会座右铭:在浮躁的时代,安心读书写作,养育心灵。

我已晋升五十万钻高级合伙人,欢迎使用我的专属会员推广链接:https://www.jianshu.com/mobile/club?ref=3debb0de。订阅会员,享受最优惠福利。

你可能感兴趣的:(区块链031 智能合约:要灵活,还是要安全?)