---
author: Ostechnix
category: 区块链
comments_data: []
count:
  commentnum: 0
  favtimes: 0
  likes: 0
  sharetimes: 0
  viewnum: 16256
date: '2019-06-10 00:55:00'
editorchoice: false
excerpt: 智能合约是在区块链上验证和创建新“数据块”的基本协议，它被吹捧为该系统未来发展和应用的焦点。 然而，像所有“万灵药”一样，它不是一切的答案。
fromurl: https://www.ostechnix.com/blockchain-2-0-explaining-smart-contracts-and-its-types/
id: 10956
islctt: true
largepic: /images/p/201906/10/005551zhhrh8actjhjttyg.png
permalink: /article-10956-1.html
pic: /images/p/201906/10/005551zhhrh8actjhjttyg.png.thumb.jpg
related:
- displayorder: 0
  raid: 10914
- displayorder: 0
  raid: 10959
- displayorder: 0
  raid: 11013
reviewer: wxy
selector: lujun9972
summary: 智能合约是在区块链上验证和创建新“数据块”的基本协议，它被吹捧为该系统未来发展和应用的焦点。 然而，像所有“万灵药”一样，它不是一切的答案。
tags:
- 区块链
- 智能合约
thumb: false
title: 区块链 2.0：智能合约及其类型（五）
titlepic: true
translator: wxy
updated: '2019-06-10 00:55:00'
---

![](/images/p/201906/10/005551zhhrh8actjhjttyg.png)


这是 区块链 2.0 系列的第 5 篇文章。本系列的前一篇文章探讨了我们如何[在房地产行业实现区块链](/article-10914-1.html)。本文简要探讨了区块链及相关技术领域内的<ruby> 智能合约 <rt>  Smart Contract </rt></ruby>主题。智能合约是在区块链上验证和创建新“数据块”的基本协议，它被吹捧为该系统未来发展和应用的焦点。 然而，像所有“万灵药”一样，它不是一切的答案。我们将从基础知识中探索这个概念，以了解“智能合约”是什么以及它们不是什么。


### 不断发展的合同


这个世界建立在合同（合约）之上。在当前社会，没有合约的使用和再利用，地球上任何个人或公司都无法运作。订立、维护和执行合同的任务变得如此复杂，以至于整个司法和法律系统都必须以“合同法”的名义建立起来以支持它。事实上，大多数合同都是由一个“可信的”第三方监督，以确保最终的利益攸关者按照达成的条件得到妥善处理。有些合同甚至涉及到了第三方受益人。此类合同旨在对不是合同的活跃（或参与）方的第三方产生影响。解决和争论合同义务占据了民事诉讼所涉及的大部分法律纠纷。当然，更好的处理合同的方式来对于个人和企业来说都是天赐之物。更不用说它将以核查和证明的名义节省政府的巨大的[文书工作](http://www.legal-glossary.org/) <sup id="fnref1"> <a href="#fn1" rel="footnote">  1 </a></sup>。


本系列中的大多数文章都研究了如何利用现有的区块链技术。相比之下，这篇文章将更多地讲述对未来几年的预期。关于“智能合约”的讨论源于前一篇文章中提出的财产讨论。当前这篇文章旨在概述区块链自动执行“智能”可执行程序的能力。务实地处理这个问题意味着我们首先必须定义和探索这些“智能合约”是什么，以及它们如何适应现有的合同系统。我们将在下一篇题为“区块链 2.0：正在进行的项目”的文章中查看当前该领域正在进行的主要应用和项目。


### 定义智能合约


[本系列的第一篇文章](/article-10650-1.html)从基本的角度来看待区块链，将其看作由数据块组成的“分布式分类账本”，这些数据块是：


* 防篡改
* 不可否认（意味着每个数据块都是由某人显式创建的，并且该人不能否认相同的责任）
* 安全，且能抵御传统的网络攻击方法
* 几乎是永久性的（当然这取决于区块链协议层）
* 高度冗余，通过存在于多个网络节点或参与者系统上，其中一个节点的故障不会以任何方式影响系统的功能，并且，
* 根据应用的不同可以提供更快的处理速度。


由于每个数据实例都是安全存储和通过适当的凭证访问的，因此区块链网络可以为精确验证事实和信息提供简便的基础，而无需第三方监督。区块链 2.0 开发也允许“分布式应用程序（DApp）”（我们将在接下来的文章中详细介绍这个术语）。这些分布式应用程序要求存在网络上并在其上运行。当用户需要它们时就会调用它们，并通过使用已经过审核并存储在区块链上的信息来执行它们。


上面的最后一段为智能合约的定义提供了基础。<ruby> 数字商会 <rt>  The Chamber for Digital Commerce </rt></ruby>提供了一个许多专家都同意的智能合约定义。



> 
> “（智能合约是一种）计算机代码，在发生指定条件时，能够根据预先指定的功能自动运行。该代码可以在分布式分类帐本上存储和处理，并将产生的任何更改写入分布式分类帐本” <sup id="fnref2"> <a href="#fn2" rel="footnote">  2 </a></sup>。
> 
> 
> 


智能合约如上所述是一种简单的计算机程序，就像 “if-then” 或 “if-else if” 语句一样工作。关于其“智能”的方面来自这样一个事实，即该程序的预定义输入来自区块链分类账本，如上所述，它是一个记录信息的安全可靠的来源。如有必要，程序可以调用外部服务或来源以获取信息，以验证操作条款，并且仅在满足所有预定义条件后才执行。


必须记住，与其名称所暗示的不同，智能合约通常不是自治实体，严格来说，也不是合同。1996 年，Nick Szabo 很早就提到了智能合约，他将其与接受付款并交付用户选择的产品的自动售货机进行了比较。可以在[这里](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html)查看全文。此外，人们正在制定允许智能合约进入主流合同使用的法律框架，因此目前该技术的使用仅限于法律监督不那么明确和严格的领域 <sup id="fnref3"> <a href="#fn3" rel="footnote">  3 </a></sup>。


### 智能合约的主要类型


假设读者对合同和计算机编程有基本的了解，并且基于我们对智能合约的定义，我们可以将智能合约和协议粗略地分类为以下主要类别。


#### 1、智能法律合约


这大概是最明显的一种。大多数（如果不是全部）合同都具有法律效力。在不涉及太多技术问题的情况下，智能法律合约是涉及到严格的法律追索权的合同，以防参与合同的当事人不履行其交易的目的。如前所述，不同国家和地区的现行法律框架对区块链上的智能和自动化合约缺乏足够的支持，其法律地位也不明确。但是，一旦制定了法律，就可以订立智能合约，以简化目前涉及严格监管的流程，如金融和房地产市场交易、政府补贴、国际贸易等。


#### 2、DAO


<ruby> 去中心化自治组织 <rt>  Decentralized Autonomous Organization </rt></ruby>，即DAO，可以粗略地定义为区块链上存在的社区。该社区可以通过一组规则来定义，这些规则通过智能合约来体现并放入代码中。然后，每个参与者的每一个行动都将受到这些规则的约束，其任务是在程序中断的情况下执行并获得追索权。许多智能合约构成了这些规则，它们协同监管和监督参与者。


名为“创世纪 DAO” 的 DAO 是由以太坊参与者于 2016 年 5 月创建。该社区旨在成为众筹和风险投资平台。在极短的时间内，他们设法筹集了惊人的 1.5 亿美元。然而，由于黑客在系统中发现了漏洞，并设法从众筹投资者手中窃取价值约 5000 万美元的以太币。这次黑客破坏的后果导致以太坊区块链[分裂为两个](https://futurism.com/the-dao-heist-undone-97-of-eth-holders-vote-for-the-hard-fork/)，以太坊和以太坊经典。


#### 3、应用逻辑合约（ALC）


如果你已经听说过与区块链相结合的物联网，那么很可能它涉及到了<ruby> 应用逻辑合约 <rt>  Application logic contract </rt></ruby>，即 ALC。此类智能合约包含特定于应用的代码，这些代码可以与区块链上的其他智能合约和程序一起工作。它们有助于与设备进行通信并验证设备之间的通信（在物联网领域）。ALC 是每个多功能智能合约的关键部分，并且大多数都是在一个管理程序下工作。在这里引用的大多数例子中，它们到处都能找到[应用](https://www.everestgrp.com/2016-10-types-smart-contracts-based-applications-market-insights-36573.html/) <sup id="fnref4"> <a href="#fn4" rel="footnote">  4 </a></sup>。


*由于该领域还在开发中，因此目前所说的任何定义或标准最多只能说是变化而模糊的。*


### 智能合约是如何工作的？


为简化起见，让我们用个例子来说明。


约翰和彼得是两个争论足球比赛得分的人。他们对比赛结果持有相互矛盾的看法，他们都支持不同的球队（这是背景情况）。由于他们两个都需要去其他地方并且无法看完比赛，所以约翰认为如果 A 队在比赛中击败 B 队，他就*支付*给彼得 100 美元。彼得*考虑*之后*接受*了该赌注，同时明确表示他们必须接受这些条款。但是，他们没有兑现该赌注的相互信任，也没有时间和钱来指定第三方监督赌注。


假设约翰和彼得都使用像 [Etherparty](https://etherparty.com/) 这样的智能合约平台，它可以在合约谈判时自动结算赌注，他们都会将基于区块链的身份链接到该合约，并设置条款，明确表示一旦比赛结束，该程序将找出获胜方是谁，并自动将该金额从输家中归入获胜者银行账户。一旦比赛结束并且媒体报道同样的结果，该程序将在互联网上搜索规定的来源，确定哪支球队获胜，将其与合约条款联系起来，在这种情况下，如果 A 队赢了彼得将从约翰哪里得到钱，也就是说将约翰的 100 美元转移到彼得的账户。执行完毕后，除非另有说明，否则智能合约将终止并在未来所有的时间内处于非活动状态。


抛开例子的简单不说，这种情况涉及到一个经典的合同，而参与者选择使用智能合约实现了相同目的。所有的智能合约基本上都遵循类似的原则，对程序进行编码，以便在预定义的参数上执行，并且只抛出预期的输出。智能合同咨询的外部来源可以是有时被称为 IT 世界中的<ruby> 神谕 <rt>  Oracle </rt></ruby>。神谕是当今全球许多智能合约系统的常见部分。


在这种情况下使用智能合约使参与者可以获得以下好处：


* 它比在一起并手动结算更快。
* 从其中删除了信任问题。
* 消除了受信任的第三方代表有关各方处理和解的必要性。
* 执行时无需任何费用。
* 在如何处理参数和敏感数据方面是安全的。
* 相关数据将永久保留在他们运行的区块链平台中，未来可以通过调用相同的函数并为其提供更多输入来设置投注。
* 随着时间的推移，假设约翰和彼得变得赌博成瘾，该程序可以帮助他们开发可靠的统计数据来衡量他们的连胜纪录。 现在我们知道**什么是智能合约**和**它们如何工作**，我们还没有解决**为什么我们需要它们**。


### 智能合约的需要


正如之前的例子我们重点提到过的，出于各种原因，我们需要智能合约。


#### 透明度


交易对手非常清楚所涉及的条款和条件。此外，由于程序或智能合约的执行涉及某些明确的输入，因此用户可以非常直接地核实会影响他们和合约受益人的因素。


#### 时间效率


如上所述，智能合约一旦被控制变量或用户调用所触发，就立即开始工作。由于数据是通过区块链和网络中的其它来源即时提供给系统，因此执行不需要任何时间来验证和处理信息并解决交易。例如，转移土地所有权契约，这是一个涉及手工核实大量文书工作并且需要数周时间的过程，可以在几分钟甚至几秒钟内通过智能合约程序来处理文件和相关各方。


#### 精度


由于平台基本上只是计算机代码和预定义的内容，因此不存在主观错误，所有结果都是精确的，完全没有人为错误。


#### 安全


区块链的一个固有特征是每个数据块都是安全加密的。这意味着为了实现冗余，即使数据存储在网络上的多个节点上，**也只有数据所有者才能访问以查看和使用数据**。类似地，利用区块链在过程中存储重要变量和结果，所有过程都将是完全安全和防篡改的。同样也通过按时间顺序为审计人员提供原始的、未经更改的和不可否认的数据版本，简化了审计和法规事务。


#### 信任


这个文章系列开篇说到区块链为互联网及其上运行的服务增加了急需的信任层。智能合约在任何情况下都不会在执行协议时表现出偏见或主观性，这意味着所涉及的各方对结果完全有约束力，并且可以不附带任何条件地信任该系统。这也意味着，在具有重要价值的传统合同中所需的“可信第三方”，在此处不需要。当事人之间的犯规和监督将成为过去的问题。


#### 成本效益


如示例中所强调的，使用智能合约需要最低的成本。企业通常有专门从事使其交易合法并遵守法规的行政人员。如果交易涉及多方，则重复工作是不可避免的。智能合约基本上使前者无关紧要，并且消除了重复，因为双方可以同时完成尽职调查。


### 智能合约的应用


基本上，如果两个或多个参与方使用共同的区块链平台，并就一组原则或业务逻辑达成一致，他们可以一起在区块链上创建一个智能合约，并且在没有人为干预的情况下执行。没有人可以篡改所设置的条件，如果原始代码允许，任何更改都会加上时间戳并带有编辑者的指纹，从而增加了问责制。想象一下，在更大的企业级规模上出现类似的情况，你就会明白智能合约的能力是什么，实际上从 2016 年开始的 **Capgemini 研究** 发现智能合约实际上可能是**“未来几年的”** <sup id="fnref5"> <a href="#fn5" rel="footnote">  5 </a></sup> 商业主流。商业的应用涉及保险、金融市场、物联网、贷款、身份管理系统、托管账户、雇佣合同以及专利和版税合同等用途。像以太坊这样的区块链平台，是一个设计时就考虑了智能合约的系统，它允许个人私人用户免费使用智能合约。


通过对处理智能合约的公司的探讨，本系列的下一篇文章中将更全面地概述智能合约在当前技术问题上的应用。


### 那么，它有什么缺点呢？


这并不是说对智能合约的使用没有任何顾虑。这种担忧实际上也减缓了这方面的发展。所有区块链的防篡改性质实质上使得，如果所涉及的各方需要在没有重大改革或法律追索的情况下，几乎不可能修改或添加现有条款的新条款。


其次，即使公有链上的活动是开放的，所有人都可以看到和观察。交易中涉及的各方的个人身份并不总是已知的。这种匿名性造成在任何一方违约的情况下法律有罪不罚的问题，特别是因为现行法律和立法者并不完全适应现代技术。


第三，区块链和智能合约在很多方面仍然存在安全缺陷，因为对其所以涉及的技术仍处于发展的初期阶段。 对代码和平台的这种缺乏经验最终导致了 2016 年的 DAO 事件。


所有这些都可能导致企业或公司在需要调整区块链以供其使用时需要大量的初始投资。然而，这些是最初的一次性投资，并且随之而来的是潜在的节约，这才是人们感兴趣的。


### 结论


目前的法律框架并没有真正支持一个全面的智能合约的社会，并且由于显然的原因，在不久的将来也不会支持。一个解决方案是选择**“混合”合约**，它将传统的法律文本和文件与在为此目的设计的区块链上运行的智能合约代码相结合。然而，即使是混合合约仍然很大程度上尚未得到探索，因为需要创新的立法机构才能实现这些合约。这里简要提到的应用以及更多内容将在[本系列的下一篇文章](https://www.ostechnix.com/blockchain-2-0-ongoing-projects-the-state-of-smart-contracts-now/)中详细探讨。




---


1. S. C. A. Chamber of Digital Commerce, “Smart contracts – Is the law ready,” no. September, 2018. [↩](#fnref1)
2. S. C. A. Chamber of Digital Commerce, “Smart contracts – Is the law ready,” no. September, 2018. [↩](#fnref2)
3. Cardozo Blockchain Project, “‘Smart Contracts’ & Legal Enforceability,” vol. 2, p. 28, 2018. [↩](#fnref3)
4. F. Idelberger, G. Governatori, R. Riveret, and G. Sartor, “Evaluation of Logic-Based Smart Contracts for Blockchain Systems,” 2016, pp. 167–183. [↩](#fnref4)
5. B. Cant et al., “Smart Contracts in Financial Services : Getting from Hype to Reality,” Capgemini Consult., pp. 1–24, 2016. [↩](#fnref5)




---


via: <https://www.ostechnix.com/blockchain-2-0-explaining-smart-contracts-and-its-types/>


作者：[ostechnix](https://www.ostechnix.com/author/editor/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出