区块链学习笔记(14)[ ETH-反思 ]
经过一段时间的区块链学习,特别是上一讲的的TheDAO事件,会引起一些我们的反思。1、智能合约,名曰智能,实际上并不智能。它只是自动化执行一段程序而已,严格来说应该叫自动合约。2、代码的不可篡改性是把双刃剑。尽管某些方面不可篡改性可以带来公平和透明,但是一旦发现代码有漏洞,就非常难改,比如TheDAO事件中以太坊团队为了应对黑客所做的大量付出。3、不可迷信不可篡改性。归根结底,人是活的,真要想改,只要付出大量的成本,也还是可以改的。4、Solidity语言的设计不够好。图灵完备的预言存在漏洞的风险,图灵不完备又欠缺表达能力,将来的方向可能是采用功能模版的方式。把反复验证过没有漏洞的合约作为模版加入白名单,将来使用时直接调用白名单里的模版实现相应的功能,可以有效杜绝程序漏洞。很多人选择去中心化,就是对中心化的系统不信任,害怕中心化的系统会暗箱操作,损害普通人权利。去中心化具有增加合约公信力和安全的好处。但同时也要看到,也许会出现,人人都以为别人会认真看代码,实际上谁也没看,就这样让问题代码流行开来,将来损害使用者利益。好在去中心化的系统,在对规则的修改(也就是选择分叉)时体现了民主,例如在ETH分叉成ETH和ETC时,用户可以选择分叉,也可以选择不分叉。这是中心化的系统办不到的。