区块链中的智能合约是什么?

【一篇看懂】区块链中的智能合约是什么?
参考URL: https://www.jianshu.com/p/2d23c58624d4
什么是智能合约?
参考URL: https://www.zhihu.com/question/268003620?sort=created

说白了就是发布在区块链上供其他账户调用执行的一段代码,对应这段code有合约账户的概念,存储相应的数据信息,以太坊的智能合约开发语言是Solidity,运行在EVM上,解决了跨平台问题,在以太坊上,给各种各样的智能合约套套外衣,化化妆,就成了各种各样的Dapp

智能合约的安全性问题

区块链的数据不可篡改是一把双刃剑。不可篡改性的优势在于任何人都不能篡改已发生的智能合约,规则制度实现了去中心化(前提是大多数节点是诚实的),但是也存在较大的弊端。

一方面,安全漏洞修复代价较高。如果调用数据的智能合约一旦出现安全漏洞或错误,因合约本身的不可篡改性会导致漏洞无法被修复,除非社区更新软件版本并且以硬分叉的方式(如 ETC 和 ETH 的分叉)。

而且,很多项目因出现类似问题没有及时修复而导致代币价值归零。

程序代码开源导致更容易被黑客攻击

从理论上来说,程序代码开源有利于让更多人对代码 Bug 起到修复的作用,进而对智能合约本身进行完善。

但实际上,智能合约开源代码导致黑客或恶意节点更容易发起攻击。

一方面,因为绝大多数人没有足够的时间或精力去检查代码智能合约代码本身的问题,而且存在较大的技术壁垒,所以群众对智能合约代码的监督作用有限。
另一方面,由于合约代码的不可篡改性,虽然使任何都不能任意更改交易规则,但是一旦代码出现漏洞再进行纠错的阻力较大,目前处理大规模漏洞的最好的方法是硬分叉(如 ETH 社区处理 The DAO),轻则让去中心化本身失去意义,重则导致项目破产。
而大多数项目方不具备足够的人力物力和财力(如 ETH 社区),使项目的收益远远小于风险。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐