1. 首页
  2. 区块链资讯

剖析区块链智能合约:是件严肃的事

智能合约

一提到智能合约,人人有可能首先想到的是以太坊,以太坊创新性的在区块链技术上加上智能合约,厚实了链上功效。然而,智能合约的观点却由来已久,并不是以太坊的“专利”。

剖析区块链智能合约:是件严肃的事

传统合约与智能合约的对照

早在1995年,跨领域学者 Nick Szabo 就提出了智能合约的观点,他对智能合约的界说为:“一个智能合约是一套以数字形式界说的答应,包罗合约介入方可以在上面执行这些答应的协议。”简朴来说,智能合约是一种在知足一定条件时,就自动执行的盘算机程序。

例如自动售货机,就可以视为一个智能合约系统。客户需要选择商品,并完成支付,这两个条件都知足后售货机就会自动吐出货物。合约在生活中到处可见:租赁条约、借条等。传统合约依赖执法举行背书,当发生违约及纠纷时,往往需要借助法院等政府机构的气力举行裁决。智能合约,不仅仅是将传统的合约电子化,它的真正意义在革命性地将传统合约的背书执行由执法替换成了代码。俗话说,“规则是死的,人是活的”,程序作为一种运行在盘算机上的规则,同样是“死的”。然则“死的”也不总是贬义词,由于它意味着会严酷执行。

剖析区块链智能合约:是件严肃的事

只管智能合约这个云云前卫的理念早在1995年就被提出,然则一直没有引起普遍的关注。虽然这个理念很美妙,然则缺少一个优越的运行智能合约的平台,确保智能合约一定会被执行,执行的逻辑没有被中途修改。

剖析区块链智能合约:是件严肃的事

区块链这种去中央化、防窜改的平台,完美地解决了这些问题。智能合约一旦在区块链上部署,所有介入节点都市严酷凭据既定逻辑执行。基于区块链上大部门节点都是老实的基本原则,若是某个节点修改了智能合约逻辑,那么执行效果就无法通过其他节点的校验而不会被认可,即修改无效。这样智能合约就可以凭据既定指令运营下去。区块链成为了智能合约可执行的”最佳拍档“。

那么智能合约的原理是怎样的呢?一个基于区块链的智能合约需要包罗事务处置机制、数据存储机制以及完整的状态机,用于吸收和处置种种条件。而且事务的触发、处置及数据保留都必须在链上举行。当知足触发条件后,智能合约即会凭据预设逻辑,读取响应数据并举行盘算,最后将盘算效果永远保留在链式结构中。

剖析区块链智能合约:是件严肃的事

智能合约在区块链中的运行逻辑

由于合约是严肃的事情,传统的合约往往需要专业的状师团队来撰写。古语有云:“术业有专攻。”当前智能合约的开发事情主要由软件从业者来完成,其所编写的智能合约在完整性上可能有所欠缺,因此相比传统合约,更容易发生逻辑上的破绽。

另外,由于现有的部门支持智能合约的区块链平台提供了行使如Go语言、Java语言等高级语言编写智能合约的功效,而这类高级语言不乏一些具有“不确定性”的指令,可能会造成执行智能合约节点的某些内部状态发生分歧,从而影响整体系统的一致性。

剖析区块链智能合约:是件严肃的事

朱嘉明:迎接科技产业化和产业科技化新时代

产业新浪潮具有产业硬科技化、产业数字化和产业区块链三大新特点

2016年著名的The DAO事宜,就是由于智能合约破绽导致约莫几千万美元的直接损失。The DAO 是那时以太坊平台最大的众筹项目,上线不到一个月就筹集了跨越1000万个以太币,那时价值一亿多美元。然则该智能合约的转账函数存在破绽,攻击者行使该破绽,盗取了360万个以太币。由于此事宜影响过大,以太坊最后选择举行回滚硬分叉挽回损失。

区块链科普之The DAO 事宜

2016年6月17日,心情焦躁的以太坊创始人V神在Reddit上发了一篇帖子“DAO遭到攻击,请买卖平台暂停ETH/DAO的买卖,充值以及提现,守候进一步的通知。新消息会尽快更新。”著名的The DAO事宜拉开序幕。

DAO (Decentralized Autonomous Organization)是分布式自治组织。The DAO是一个基于以太坊区块链平台的迄今为止世界上最大的众筹项目。其目的是让持有The DAO的介入者通过投票的方式配合决议被投资项目, 整个社区完全自制,而且通过代码编写的智能合约来实现。于2016年5月28日完成众筹,共召募1150万ETH,在那时的价值到达1.49亿美元。

剖析区块链智能合约:是件严肃的事

不久,The DAO就受到黑客攻击,原因是The DAO编写的智能合约中有一个 splitDAO 函数,攻击者行使此函数的破绽,不停从The DAO项⽬的资产池中星散出The DAO资产并转到黑客自己确立的子DAO。3个小时300多万枚ETH,六千万美元资产被黑客转移,血流成河。以太坊智能合约受到了最严重的质疑,事实该若何防止此类事宜再次发生?

让我们看看平安预防计谋。

充实测试

  • 测试用例设计:对营业举行全方位剖析,通过等价类划分法、界限值剖析法、正交实验法等方式设计出尽可能周全的测试用例,编写成测试代码,做自动化回归测试。

  • 多人交织测试:一个人的头脑是局限的,我们需要通过多人的跳跃性头脑,将尽可能多的情形笼罩在内。

  • 回归测试:每一次修改都必须做整套回归测试。

工具监控

  • 以太坊的所有买卖都是公然透明可查的。我们可以通过工具将某一个智能合约买卖数据实时爬取出来,并对可能的异常买卖做短信和邮件告警。这样我们能第一时间发现问题,并接纳措施。

第三方审计

  • 可以找一些专业的智能合约开发工程师做审计。审计可以从另一个角度去发现智能合约可能存在的潜在问题.可能做审计的人的专业能力没有开发者的专业能力壮大。

【本课堂内容所有选编自PlatON首席密码学家、武汉大学国家网络平安学院教授、博士生导师何德彪教授的《区块链与密码学》授课课本、课本及互联网,版权归属其原作者所有,若有侵权请立刻与我们联系,我们将及时处置。】

原创文章,作者:链大大,如若转载,请注明出处:http://www.chaindada.com/chain/8455.html