今天这篇文章我们主要讲解智能合约概念及以太坊智能合约。
智能合约概念的产生
1994年,密码学家尼克·萨博,第一次提出了智能合约的概念,他的定义如下:一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。
智能合约的定义有点拗口,我们就用一个日常生活常见的例子来说明下:在一个自动售货机面前,我们选择了一瓶3元的饮料,投入了一张5元的纸钞,该机器就自动放出这瓶3元的饮料,并蹦出两个1元的硬币找零。而这个过程,就是执行了一个智能合约,自动售货机已经被写入了合约程序,我们的一系列操作触发了该程序的自动执行。
所以,现在我们简单理解智能合约就是在区块链上以代码形式存在的、可执行的特殊交易合同,是代码和数据的集合体。智能合约具有自治、自足和去中心化的特点,其中自治是指能够自动执行,自足是指能过通过提供服务来获取资源或资金(通证),去中心化是指分布式存在,在网络节点运行。
尽管智能合约早于区块链诞生,几乎与互联网提出的时间差不多,但是由于当时计算机硬件与软件的落后,缺乏可信的执行环境,一直没有找到可以支撑其广泛运用的基础系统,在实际产业中应用场景不多。直到区块链的出现,可信的执行环境已经形成,智能合约得到重新定义,之后以太坊(ETH)将智能合约镶嵌在它的系统中,智能合约才得以磐涅重生。
以太坊的智能合约
在以太坊系统里,智能合约是这样的工作过程:
首先,进行智能合约的构建,相当于做一份明确甲乙双方权利和义务的协议,但这份协议需要技术开发人员进行电子化编程,把文字协议转换成以太坊能够读取的代码,代码中包含了触发合同自动执行的条件。
接下来把该合约上传到以太坊系统,会以P2P网络扩散到每个节点,让所有人都知道这个合约的内容和作用,但又无法修改。
最后就是智能合约的执行了,以太坊系统可实时监控智能合约的状态,并通过核查外部数据源、确认满足特定触发条件后激活并执行合约,不需要经过任何中心机构的干预,很大程度上保证了合约的公平性和公正性。
智能合约非常适合对信任、安全和持久性要求较高的应用场景,例如数字货币、数字资产、投票、保险、金融应用、预测市场、产权所有权管理、物联网、点对点交易等等。像火热的世界杯竞猜就是典型的例子,把赛事竞猜的各种预测结果和赔率做成智能合约放在区块链上,这样任何人参与了竞猜,只要赛事结果猜对了,智能合约就自动按照赔率把相关奖励发放到参与者手中,而且参与者还可以去查看合约的执行情况,整个环节公开透明让大家放心,不存在虚假竞猜和庄家跑路的问题。
区块链的发展会带来智能合约的广泛应用,随之会带来一些现实问题,比如合同的撰写是由程序员来完成了,合同的严谨程度就取决于程序员的水平,一旦程序带bug,就可能给用户带来严重损失。不过相信随着区块链技术的不断提升,智能合约也会越来越完善。