浅谈区块链下的智能合约
扫描二维码
随时随地手机看文章
我和你打一个赌,我赌明天是雨天,你赌是晴天,赌注100大洋。假设明天是晴天,然后你跑过来管我要100大洋的赌金,我装疯卖傻就是不承认我们之间的赌约,面对这种你看不惯却又干不掉我的情况你又能怎么做呢?
假设我们俩在打赌的时候,就制定一份合约,存放在某个平台,等第二天打赌结果一出来,赌金就自动打到你的账户上,这样是不是很完美?
这就是今天的主角——智能合约。
通俗的理解智能合约
所谓智能合约,就是数字化的纸质合约,不需要人去执行,而是能被计算机自动执行的合约条款。
智能合约被视作区块链2.0的产物,但是智能合约的诞生至少可以追溯到1995年,是由跨领域法律学者尼克·萨博(Nick Szabo)提出来的。他给智能合约的定义是:"一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。"定义中很值得关注的一个词是数字形式。现在智能合约与区块链几乎是如影随形,我们就来看看基于区块链的智能合约的构建及执行步骤:
1、智能合约的构建:由区块链内的多个用户共同参与制定一份智能合约;
2、智能合约的存储:智能合约通过P2P网络扩散到每个节点,并存入区块链;
3、智能合约的执行:智能合约定期进行自动机状态检查,将满足条件的事务进行验证,达成共识后自动执行并通知用户。
通俗地讲,就是合约制定者将合约制定以后,将合约内容转化为编程语言存在区块链平台上(需要用区块链返给制定者的私钥进行签名),合约通过P2P的方式在区块链全网中扩散,每个节点都会收到一份(相当于无数个人保存并监督这份合约的内容),当时间合适且满足合约内容时,就会自动执行这一份合约。
行走在区块链上的智能合约
单纯地看智能合约,明明可以惠及万民,为什么没有从一开始就吸引投资创业者的眼球,而是潜伏到现在才开始被大众所熟知呢?
这就跟我们看科幻作品一样,我们现在所生活的环境在大家看来是没有什么神秘性的,但若是放到二三十年前呢?同样的道理,那个时候的客观环境不支持智能合约的实现。
首先智能合约是数字化的合约,智能合约提出的时候,互联网才刚刚起步,互联网的发展都还具有不确定性,拿什么来谈实现智能合约呢?其次,智能合约的执行需要的是数字资产。
那可能就有人提问:互联网现在发展的这么好,我们也有数字资产了,实现智能合约就非得基于区块链吗?
答案是否定的。拿大家很熟悉的信用卡自动还款服务来说,信用卡自动还款可以看做是用户和银行在某个平台上签订的智能合约。当还款条件满足时,计算机系统会自动完成这笔交易,这些服务是基于计算机系统完成的,并不是基于区块链的。
可能有人会说,是不是可以从计算机的世界来实现智能合约,为什么非得研究区块链?
因为信任。在计算机的世界里,存在着提供服务的第三方,而智能合约虽然是数字化的,但还是存在于计算机系统中,别说担心被黑客攻击,就连第三方会不会篡改用户的合约内容也没有谁可以保证。在理想状态下,区块链的基本属性就决定了它是一个高可靠性的系统,不可篡改、去中心化、分布式,并且都是由一串串的指令实现的,数据是冰凉的但却最值得信任,因此用户不用担心合约被篡改或不被执行等问题的发生。
因此,不是说智能合约不是非基于区块链不可,但是目前区块链一定是最适合智能合约实现的平台。
智能合约和区块链,相辅相成
有人说智能合约是区块链进化产物,其实,二者仅算是相辅相成。区块链的出现让智能合约的实现有了可能性,而区块链在智能合约的应用,让区块链跨过了数字货币的局限,以新的姿态出现在大众的眼中。
智能合约加快了区块链的传播速度,在一定程度上也使得投资方向从数字货币,部分转移到其他项目的投资,智能合约使得区块链得到了简化和重构,它不是使已经复杂的事情更加复杂,而是把去中心化的好处提炼成更简单、更便利的形式,这能让区块链得到更广泛的接纳。
从智能合约的运行原理来看,对区块链节点的存储空间的需求会越来越大,而区块链不是一个软件,这个问题不会因为升级就能得到解决。除去存储空间这一问题,关于区块链也好,智能合约也好,疑惑太多,也许唯一的解惑方式就是——去做。静候各位大咖的佳音吧。