智能合约part1:简单理解合约

Posted by 孔剑敏 on September 10, 2019

大家好!今天为大家带来的是智能合约的学习part1,这边的合约是基于以太坊的智能合约,也是目前最普遍使用的智能合约之一,语言是solidity。

首先,我们需要知道为什么要学习智能合约,它有什么用? 我们先从一个简单的例子开始。比如两个人A和B打赌皇马和巴萨谁会赢,为了防止双方有人耍赖,这时候需要一个“裁判”或者“中间人”,他负责接受来自A和B的赌金,并由他根据比赛结果把钱都赢的一方。而智能合约(smartcontract)的作用其实和“裁判”是一样的,只不过智能合约更加公正,它会严格执行事先写好的程序代码。

智能合约是 1990s 年代由尼克萨博提出的,几乎与互联网同龄。但是由于当时缺少可信的执行环境,智能合约并没有被应用起来,自比特币诞生后,人们认识到比特币的底层技术区块链天生可以为智能合约提供可信的执行环境,以太坊首先看到了区块链和智能合约的契合,一直致力于将以太坊打造成最佳智能合约平台。也就是说,智能合约概念并不是随着区块链技术诞生的。区块链技术天然给智能合约带来得天独厚的应用前提(由于区块链的共识机制)。

回到智能合约,如果将刚才打赌的例子用合约来实现,那么合约如果知道皇马赢还是巴萨赢呢,也就是说合约执行时的判断条件确实是正确的(而不是皇马赢,但合约得到的信息确实巴萨赢),这就要求这些信息都需要来自经过公证的可信来源,目前有很多区块链的初创公司正在从事这样的工作。又由于智能合约是部署在区块链上的,任何人都不能篡改(这件事需要的算力目前来看是不现实的,无利可图的),也就是说A想要把已经部署在区块链上的合约判断条件改成皇马或巴萨赢都将钱转给自己是不可能的。

这样,智能合约很好的解决了信任问题,但目前的智能合约仍不是完全智能的,毕竟智能合约的部署执行仍然需要人来完成。