智能合约是什么?

通过谷歌的关键词搜索趋势图可以看出,智能合约正在受到越来越多的关注,从而我们需要一个更加清晰的定义。目前,与人们对智能合约的兴奋相伴的还有对这一术语含义的困惑。Peter Todd–比特币核心(Bitcoin Core)的开发者之一–非常准确地总结了智能合约的现状:

无标题1

“从智能合约讨论中得到的结论:没有人理解智能合约究竟是什么,如果我们要实施智能合约,应该需要预言机(oracles)。”

在本文中,我尽力进一步阐明智能合约的本质。我的首要目标是,使得隐藏在智能合约背后的假设明确化,并澄清人们对与法律系统相关的神秘现象的误解。然而,这只是我我第一次尝试找到一种方式,将智能合约的理念系统化。我希望得到社区的反馈,从而我们能够得到比现在更加清晰的理解。

声明

说到法律术语,我要指出,虽然我是一名律师,但是我并不熟悉英语世界的法律术语,也不熟悉英美普通法(common law)系统。我是一名德国法律系统的学者,我学习德国法律和在法律领域工作将近十年了(译者注:英语世界法律大部分属于英美普通法,德国属于大陆法系,故作者特别强调)。虽然,我借助谷歌搜索的能力,选择我所知的最好词汇,但是不精确是在所难免的。如果你有能力,请指出我对术语的误用。从积极的角度看,德语对法律术语的严苛,在这里也许有些帮助。

另外,我不是一名计算机科学家,虽然我个人写代码的时间长达12年了。如果你发现计算机领域的错误,请指出来。谢谢!

溯源

“智能合约”(smart contract)这个术语至少可以追溯到1995年,是由多产的跨领域法律学者尼克·萨博(Nick Szabo)提出来的。他在发表在自己的网站的几篇文章中提到了智能合约的理念。他的定义如下:

“一个智能合约是一套以数字形式定义的承诺(promises) ,包括合约参与方可以在上面执行这些承诺的协议。”

让我们更加详细地探讨他的定义的意思。

承诺

一套承诺指的是合约参与方同意的(经常是相互的)权利和义务。这些承诺定义了合约的本质和目的。以一个销售合约为典型例子。卖家承诺发送货物,买家承诺支付合理的货款。

数字形式

数字形式意味着合约不得不写入计算机可读的代码中。这是必须的,因为只要参与方达成协定,智能合约建立的权利和义务,是由一台计算机或者计算机网络执行的。

更进一步地说明:

(1)达成协定

智能合约的参与方什么时候达成协定呢?答案取决于特定的智能合约实施。一般而言,当参与方通过在合约宿主平台上安装合约,致力于合约的执行时,合约就被发现了。

(2)合约执行

“执行”的真正意思也依赖于实施。一般而言,执行意味着通过技术手段积极实施。

(3)计算机可读的代码

另外,合约需要的特定“数字形式”非常依赖于参与方同意使用的协议。

协议

协议是技术实现(technical implementation),在这个基础上,合约承诺被实现,或者合约承诺实现被记录下来。选择哪个协议取决于许多因素,最重要的因素是在合约履行期间,被交易资产的本质。

再次以销售合约为例。假设,参与方同意货款以比特币支付。选择的协议很明显将会是比特币协议,在此协议上,智能合约被实施。因此,合约必须要用到的“数字形式”就是比特币脚本语言。比特币脚本语言是一种非图灵完备的、命令式的、基于栈的编程语言,类似于Forth。

从理论到实践

剧透:如果你了解比特币协议、比特币货币和智能财产的概念,你可以跳过这一章节。

当萨博在近二十年以前,在网络提出了智能合约理论时,实践一直严重地落后于理论。一直没有如何将这个理念转变现实的清晰路径。

现在,技术已经赶上萨博富有远见的头脑,智能合约开始变得可行。在这二十年中发生了什么事情呢?

简而言之,萨博在他的智能合约定义中建立的协议,已经被进一步开发。它们已经以比特币协议的形式出现,或者更加一般地说,这些协议能够实现中本聪共识(Nakamoto consensus)。

在这些协议被开发的同时,我们获得了另一个必需的构件:第一种真正的、原生的数字资产,即作为货币的比特币。没有这种资产,智能合约也将不可行,因为金融部门在过去的几十年中,一直对任何创新抱有极端的敌意。

最后,另一个还没有结出果实的概念是智能财产。我们正在进入一个计算和连接无所不在的时代,通俗地讲,就是物联网。物理实体能够从互联网中检索信息和向互联网发送信息,它们也能够通过软件控制它们自身的使用(想想数字版权管理吧),这使得我们能够建立萨博所指的嵌入式合约(embedded contracts)。

“智能合约的基本理念是,许多合约条款能够嵌入到硬件和软件中。”

萨博认为嵌入式合约最初的应用实例是自动贩卖机、销售点终端、大公司间的电子数据交换和银行间用于转移和清算的支付网络SWIFT、ACH、FedWire。另一个嵌入式合约的例子是数字内容消费–例如音乐、电影和电子书–领域的数字版权管理机制。

从这个意义上理解,智能合约是赛博空间(虚拟空间)和物理空间(实体空间)之间的桥梁。

智能VS法律

人们对智能合约概念的最多的困惑,源于它的名字和用于描述它的语言。人们似乎从“合约”这一术语中,推断出智能合约一定与法律概念中的合约有某种联系。那么,根据这个逻辑,智能合约是有法律约束力的协定加上其它因素(X),X使得协定变得“智能”。

从法律的角度,这一推测是错误的。根据参与方选择的智能合约实施,参与双方或者多方完全可能进入一个不满足合法的合约所必需条件的“智能合约”。

然而,不可否认的是,智能合约必须被归类为与法律相关的行为。我们生活在一个被法律管理和控制的世界,所有可能的经济交易也被法律管理和控制。合约法只是组织经济交易的一种可能的工具。原理图如下:

 1-WWtCLYSV4T5ml_L-gn-aIA

Legally relevant behaviour :与法律相关的行为;  contract law:合约法;  smart contracts:智能合约


让我们看一下合约法和智能合约的交集部分。我们能否发现一个能够描述这两个系统的合约行为的概括呢?引用萨博的论文:

“合约–一套达成共识的协定–是形成关系的传统方式。”

萨博告诉我们的是,“合约”的抽象概念是在个人、机构和他们拥有的东西(财产)之间形成关系的一种公认的工具。然而,上面的引用并不清晰,参与方如何达成协定,如何形成协定,没有讲到。

我建议下面这个普遍的合约模型:

1-wdlFcTIAuYElZkRGupEb0g 

Agreement:协定; Formalization:形式化 ;Execution/Enforcement:执行

如果这个模型应用到智能合约和法律意义上的合约中,让我们看看它怎么起作用。

协定

协定是一个完全的理想情况,从它在正式系统中的实施中抽象而来。当然,事实上这是一个脆弱的抽象。在法律系统中,在许多情况下,具有法律约束力,不要求形成一个协议。与此相反,对智能合约来说,在许多情况下,在形式化以前,没有事前协定。

形式化

形式化在这里的意思是,在一个正式系统实施理想的协定的行为。有两个相关的正式系统。一个是合约法,另一个是你选择的智能合约系统。这两个系统都服务于相同的目的:当违约行为发生时,使得协定能够执行。

从一般角度理解,对于合约是怎么形式化的这一问题,有人认为它只是实施细节。然而,事实证明,合约的实施的确事关重大。

现在有两种本质上不同的、形成一种合约关系的方式。这两种方式是截然不同的,因为它们需要不同的执行方式。


执行

因为一图顶千言,所以来看下面这张我从Lawrence Lessig那里“剽窃”来的信息图,出于本文的需要,我对图片做了轻微的修改。

1-Qr6DFyNGAH0Cf3t-1PC8lg

Market:市场 ; contract:合约  ;Norms:惯例、常规 ; Architecture :架构 ; law:法律; ex ante:事前;  ex post:事后

在Lessig的最初版本中,是一个人位于信息图的中间,不是一个合约。这位了不起的思考者用他的信息图,努力教给我们这些凡人的是,有四种最基本的约束影响着一个人的一生。这四个约束本质上截然不同的,但是以复杂的方式交织在一起。

我对原版的信息图做出了修改,用合约取代了人,这里的合约是指双方或者多方之间达成的协定。有趣的是,做出修改以后,这个信息图仍然有效。这四个约束就像管理着人一样,管理着合约关系。

另外,我着重强调这四个约束中的两个约束,即架构和法律。这两个约束是合约能够被执行的两个最基本的动力。根据参与方选择的协定实施的系统,合约将通过法律系统执行,或者通过架构执行。这两种合约执行模式显著不同。

Lessig认识到合约执行的两个特征,可以帮助我们谈论两种合约执行模式的不同。一个是代理(agency),另一个是时间性(temporality)。在法律意义上,合约的执行,只有当一些人选择这样做时,才会发生。此外,执行只发生在违约以后,例如事后。

智能合约的执行在这两个方面,本质上不同于传统合约。为了理解是如何不同的,我们需要首先理解Lessig所指的架构是什么意思。

Lessig在他的《代码:网络空间的法律》一书中,为了解释代码在赛博空间中的作用,引入了架构的概念。物理空间的形状,就是你的身体穿梭其中的空间,是由它的架构决定的,例如建筑环境(建筑物、街道等)。如此类似,赛博空间的形状是由代码决定的,人们使用的应用和协议就是建立在这些代码上面的。因此,代码是赛博空间的架构。

法律和架构都有方法管理参与方的行为。法律依赖于个人将规则内化,个人据此调整自己的行为,或者该系统允许法律追索权(例如法庭)。然而,架构通过塑造空间本身管理行为。架构不是关于允许什么,而是什么是可能的。架构既不依靠个人将规则内化,也不依靠起诉系统。

根据我们衡量合约执行的质量的标准,例如代理和时间性,因此架构明显地不同于法律。架构执行合约时,不需要任何个人或者组织(代理,agency)决定如何执行合约,你可以称架构执行为自我执行(self-enforcing),虽然我不喜欢这种叫法。另外,架构事前执行,违约甚至不可能发生。

未来展望

有一件事确定无疑:智能合约已经扎下根了。它们是真正的全球经济的基本构件,任何人都可以接入到这一全球经济,不需要事前审查和高昂的预付成本。它们从许多经济交易中,移除了对第三方的信任必要,在其它情况下,将信任转移到可以信任的人和机构。

我在这篇博客中尽力想说明的理念是,智能合约怎样与合约法共存。本质上,它们是解决相同问题–以一种方式形成一种关系,使得承诺可以执行–的两种不同方法。就这一点而言,智能合约似乎是更好的解决方案:智能合约事前执行,不像法律系统一样,事后执行。然而,这是一种谬误。最后一次引用全能的萨博:

“合约法的成功和取代合约法所需的高额成本,使得保存和利用合适的原则,仍然很有价值。但是,数字革命正在剧烈地改变我们能够拥有的各种关系。在这个赛博时代,我们来之不易的法律传统中的哪一部分,将仍然具有价值?将这些法律原则应用到我们的线上关系设计,最好的方式是什么?”

在合约法中,有许多已建立的原则,仍值得保存。其中包括法律默认规则,我将在另一篇博客中写这个问题。

因此,为了实现最优的结果,同时利用合约法和智能合约,好像是有利的行为。我将在另一篇博客中,告诉你怎么实现这一点。

如果你觉得这篇文章给你带来启迪,欢迎给作者(1HT7q3HtDYLSeMTkMcsjsRcExBAjsnKHws )和译者(1JtgQcqAoU65VY2NZy25FT9dAcuXrUKhfG)打赏。

----

----

如果你希望高效的学习以太坊DApp开发,可以访问汇智网提供的最热门在线互动教程:

1. 适合区块链新手的以太坊DApp智能合约实战入门教程
2. 区块链+IPFS+Node.js+MongoDB+Express去中心化以太坊电商应用开发实战

3. 其他更多内容也可以访问这个以太坊博客

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值