什么是智能合约?

这个术语是跨领域法律学者尼克·萨博(Nick Szabo)提出来的,他对智能合约的定义是“一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。”换成更加通俗的描述就是“智能合约是一个在计算机系统上,当一定条件被满足的情况下,可以被自动执行的合约。”

智能合约一定要在区块链技术之上实现吗?答案是否定的。举个大家都熟悉的例子,就是信用卡的自动还款服务,我们就可以把它理解成一种智能合约。在具体的时间(信用卡还款日),当还款条件被满足(储蓄卡余额比信用卡还款金额要多的情况下),计算机系统会自动完成这笔交易(用最初设定的储蓄卡为信用卡还款)。然而这些服务仍是运行在传统的计算机系统之上,而这些系统并没有利用区块链技术。

以太坊和智能合约

第一周的内容中我们为大家系统介绍了区块链的基础知识。我们可以知道,区块链吸引应用开发人员的主要的性质有:

1. 区块链由别人运营。如果你的应用把数据存在大家都用的区块链,它就不需要为数据提供存储机制。区块链中的节点提供存储有奖励:收交易费和发新币。

2. 区块链提供分布共识机制,你自己做很难。

3. 区块链为用户提供匿名机制。一个账号身份标识(ID)是个公钥,它不一定和人直接相关。

4. “价值”可以从一个账号转移到另一个,但是费用要小于传统的真实货币转账机制。

5. 如果某个区块链受信赖,那么存储在那个区块链的交易也受信赖。

以太坊采用区块链的原理,又增加了在区块链上创建智能合约。因为区块链的不可篡改的特性和信任性,为智能合约提供了良好的使用环境。智能合约是一种应用,它能保存价值,存储数据,封装代码,执行计算任务。

智能合约允许匿名的几方进入约束协议,每个参与方对交易完全知情。价值可以在账户间转移,或者放在智能合约中的第三方托管(escrow )。由于合约就是代码,开发者想做什么应用,就能做得出,你的想象力是唯一的限制。

区块链和智能合约能做什么?

以太坊只是智能合约平台的一种,用它可以构建基于区块链的应用。最合适的用例有:

从一方转移价值到另一方

一方或几方需要匿名

价值必须存储在合约本身,并且存储一段时间

希望避免转移真实货币产生的交易费用

需要建立共识

希望显示公开性,把状态存储在公共域

需要确保物理或虚拟材料的来源和真实性

基于此,我们可以马上想到的应用有:拍卖,借贷,遗嘱,注册,众筹,股权,和投票。

从金钱和计算角度看,写操作是很贵的,所以智能合约多用在写操作少,但是数据价值高的应用。

当然,也有很多人对智能合约的应用持消极的态度。比如,如果把智能合约视作参与各方的“合同”,智能合约能否表达出传统的“合同”中双方的真实意思?出现问题纠纷之后,由谁来担任仲裁机构?等等一系列的问题。

参考资料:区块链技术-智能合约-以太坊

相关文章