在前面的文章里,我们介绍了区块链的核心技术,也穿插介绍了一些项目。然而每个区块链都有自己的特色,接下来我们将针对每个项目进行详细讲解。今天我们就来讲讲智能合约和以太坊项目。
今天我们从智能合约这个概念入手,聊聊什么是以太坊项目以及它的发展历史。最后还会介绍几款钱包给你,希望通过今天文章的讲解,你也可以尝试在以太坊上编写简单的智能合约。
智能合约的概念
不同于法律意义上的合约概念,区块链领域的合约表达的是可以“自治自理”的 计算机协议,这套协议具有自我执行、自我验证的属性。
如果完全从技术角度来看,智能合约等价于一段事先就被规定好逻辑和条款的计算机代码被激活运行的状态,同时,智能合约也提供了通用的用户接口,用户可以通过接口与用户交互。
智能合约这一概念早在 20 世纪 90 年代就有人提出,这个人是从事智能合约和数字货币研究的尼克萨博(Nick Szabo)博士,尼克 1996 年在《Extopy》期刊上发表了对智能合约的描述,他认为智能合约是一个由数字表单指定的承诺,这个承诺包含关系到多方执行的一组协议。
从定义中我们可以得知,智能合约由多个协议组成,这些协议包含了用户接口,能表达用户的承诺,它可以安全有效地确定公共网络上的关系。
换句话说,智能合约是一个由计算机处理、可执行合约条款的交易协议,其总体目标是满足协议既定的条件,例如支付、抵押、保密协议。这可以降低合约欺诈造成的损失,降低仲裁和强制执行所产生的成本以及其他的交易成本。
我们举个实际的例子解释一下,今年 4 月 9 日,上海某建设银行支行开放了“无人银行”,银行中充斥了众多机器和显示屏,智慧柜员机、VTM 机、外汇兑换机、VR 设备和两台机器人代替了传统的柜台。
这里的智慧柜员机、外汇兑换机器人众多电子设备都可以认为是智能合约的一种表现形式,用户在办理银行业务时,如办理大额汇兑业务,业务流程和逻辑依据已经定在程序中,用户只需要按照操作一步一步进行,办理完成后即可获得单据。
这里“既定的业务流程、机器人模样的人机交互界面、双方同意承诺”组成了智能合约的概念,它甚至具有一定的法律效力。
萨博提出的是智能合约的概念,以及我们举的例子,都是广义的智能合约概念。智能合约具有多种实践形式,而在区块领域所说的智能合约概念,我们其实是指 Blockchain-based 这种形式。
在萨博的智能合约概念中提到了开放式网络,而我们知道开放式网络的基本要求就是拜占庭容错,通过前面文章的讲解我们知道,区块链天然具有拜占庭容错特性。所以如果在区块链上实践智能合约这个概念,两者会非常契合,天造地设。
首先实践了智能合约这一概念的是比特币,比特币脚本(bitcoin script)包含了 5 种标准交易脚本,这些脚本的功能不仅仅提供了普通单人支付的情况,它还提供了多方共同签名支付的脚本,叫做多重签名支付,多重签名支付可以看成是萨博语义下的智能合约。
除了比特币,发扬光大智能合约这个概念的区块链项目就是以太坊了,下面,我重点来介绍一下以太坊项目。