美文网首页
智能合约不能更改?错!

智能合约不能更改?错!

作者: 月光星辉 | 来源:发表于2018-12-27 14:06 被阅读0次

吴其震


1993年,加密货币大师、计算机科学家尼克•萨博首次提出“智能合约”概念,他对智能合约的描述是:

智能合约是一个由计算机处理的、可执行合约条款的交易协议。

尼克•萨博当时的理想很美好,想借助他擅长的密码学和数字化安全机制,将合约执行的操作,置于计算机的掌控之下。但是理想很美好,现实很骨感。智能合约工作一直没能落地。

笔者认为智能合约要落地,首先必须保证合约的规则和内容不会被篡改,其次必须有合约标的可被执行。而这在传统的技术下是无解的。

2009年,中本聪提出了“一种点对点的电子现金系统”,并逐渐地实现了Bitcoin的源代码,让智能合约的落地看到了曙光。

首先,Bitcoin本质上是一个分布式账本,采用了一种基于概率的投票机制使得多个网络节点的账本一致。更为重要地是,Bitcoin的账本就是由区块组成的链条,而其中的区块是从哪里来呢?中本聪设置了一套规则,让众多网络节点依靠自己的算力来竞争出块,因为每个区块都代表了一份算力,想篡改就必须把之前的区块都重新计算一遍,这就是区块链技术防篡改特性的来源。

Bitcoin的账本是由区块组成的链条,而区块时由交易组成的,所以Bitcoin本质上保证了交易记录难以篡改,就是说对账本的操作以及操作的结果都不被篡改。

其次,Bitcoin为了鼓励矿工参与竞争出块,允许矿工在出块的同时将一定额度的数字货币存到自己的钱包里面,这个规则是所有网络节点都认同的。而所谓的交易,就是数字货币在各个地址之间的转移。

我们可以看到Bitcoin的特性很好地解决了智能合约的落地难点。

第一个聪明人就是以太坊的创始人V神。V神将智能合约存储到交易里面,交易打包到区块里面,区块再组成链条,智能合约自然也就无法篡改了,其次是以太坊也存在挖矿发行代数字货币的机制,也就是说存在可被执行的合约标的。

那么智能合约是否就真的不可更改了呢?不是的。

智能合约本质上是一段计算机执行程序,当被触发时,会被虚拟机执行。既然是一段程序,特别是图灵完备语言编写的程序,应该是可以实现任何有确定规则的功能。

那么,怎么更改智能合约呢?

首先,智能合约是可以终止的。我们可以在编写智能合约的时候,定义一个全局的布尔变量x,该变量只允许合约创建者修改。合约内其他函数都先对变量x做一个判断,如果为真则往下执行,如果为假则直接返回。这样,就意味着合约创建者可以终止合约的执行。

其次,智能合约是可以升级的。我们可以给智能合约添加一个版本号,调用合约的时候必须指明版本号,这样就可以实现智能合约的升级。

相关文章

网友评论

      本文标题:智能合约不能更改?错!

      本文链接:https://www.haomeiwen.com/subject/buprlqtx.html