智能合约:是什么、如何运作以及带来什么价值?

智能合约是一种存储在区块链上的特殊指令,并且能够根据一系列预先编程的参数自动执行操作。这一切都以不可篡改、透明且完全安全的方式进行。

近年来,自 比特币 诞生并于2009年发布首个版本以来,涌现出许多有趣的项目,为我们如今使用的众多中心化流程或应用带来了新的思路和去中心化解决方案。既然如此,我们想问你: 你听说过智能合约吗?

那么,这一次我们将深入探讨这些机制。智能合约 的目标是消除中间人,简化流程,从而为消费者节省成本。 与智能合约相关的大部分信息只有英文版本。因此,Bit2Me 在指南第一章对智能合约作了入门介绍之后,不希望你心存疑惑,无法完全理解智能合约的概念及其潜力。

因此,我们将讲述智能合约的起源。随后分析其现状,第三部分介绍一些最重要的比特币替代项目。最后,我们将描述这项技术的未来。

什么是智能合约?

要理解智能合约,首先我们要回顾合约的含义。 合约无非是两方或多方之间的协议,一个界定可以做什么、如何做以及未做某事会发生什么的框架。也就是说,它是一套游戏规则,让所有接受它的各方都能理解即将进行的互动包含哪些内容。

迄今为止,合约一直是口头约定或昂贵的书面文件。这些文件受地域法律和司法管辖的约束,有时还需要公证人。也就是说,需要更多的成本、时间以及介入流程的第三方。因此,并非每个人都能获得。而这还不是最糟糕的:合约内容可能存在不同解释。请坐稳了!

相比之下,智能合约能够自主、自动地自我执行和强制履行,无需中介或调解人。由于它不是以口头或我们日常使用的语言书写,因而避免了解释上的负担。 智能合约是用编程语言编写的“脚本”(计算机代码)。这意味着合约条款就是构成它的代码中的纯粹语句和命令。

另一方面,智能合约可以由自然人和/或法人创建和调用,也可以由自主运行的机器或其他程序创建和调用。智能合约的效力不依赖于任何权威机构。这源于其本质: 它是所有人可见的代码,并且由于存在于区块链技术之上而无法更改。这赋予了它去中心化、不可篡改和透明的特性。

智能合约

智能合约及其巨大潜力

通过以上内容,你想必已经看到了智能合约所蕴含的巨大潜力。需要强调的是,由于它分布在成千上万台计算机上,避免了由一家大公司托管,从而消除了官僚主义、审查以及这一过程中隐含的巨大成本和时间——顺便一提,迄今为止这个角色就是托管方。

如果将智能合约的原理与全球众多开发者的创造力结合起来,结果将是前所未有的可能性,人人皆可使用,且成本几乎为零。这是没有权威人物迫使成员服从其意志的生态系统。我们谈论的是一个更公平的世界。

想象一辆集体购买的自动驾驶特斯拉汽车,能够自我管理并自行出租。而这一切背后没有一家像 Uber 那样抽取10%的公司。对此我们可以说:欢迎来到智能合约的世界。

最早的智能合约

有公开记载的智能合约最早出自 Nick Szabo,这位法学家兼密码学家 Nick Szabo 于1995年在一份文件中公开提及了这一术语。两年后的1997年,他撰写了一份更为详细的文件来阐释智能合约。

遗憾的是,尽管理论已经确立,但凭借当时的技术基础设施却无法将其变为现实。要执行智能合约,就必须存在可编程交易以及一个能够识别这些交易的原生数字金融系统。

恰恰是 Szabo 在1995年认为尚不存在的东西,在2009年(近15年后)随着比特币及其技术 区块链(blockchain)的出现而成为现实。

比特币与智能合约

比特币已经内置了一些 智能合约,它们默认执行且对用户透明。当我们谈论分布式合约时,指的是比特币通过 区块链 在人与人之间达成协议的用例之一。比特币的诸多优势之一,就是允许为货币添加逻辑,这是此类货币独有的特点:它是 可编程货币。这种应用于货币的逻辑使我们能够解决当今可能遇到的常见问题,同时在互动所处的整个自动化流程中提升信任水平。

比特币上的一些智能合约示例

举例来说,可以开发出以下新产品或应用:

  • 分布式市场,可实现 P2P 合约以及使用比特币进行市场 交易,成为当前金融体系的全面竞争者。
  • 通过区块链控制的汽车、手机、房屋或非实物资产等财产,构成了所谓的 智能财产。通过使用合约和智能财产,信任水平将大大提高,减少欺诈和第三方中介费用,并将交易提升到一个新的水平。
  • 遗产自动化,设定身故后资产的分配。一旦身故,合约即生效并执行,在此情况下将资金分配至合约中设定的地址。
  • 保险:事故报告、保险公司的维修付款、减少事故欺诈……

 智能合约 借助比特币技术而存在,这对比特币来说非常有利,因为它让比特币获得了更多关注,为其生态系统带来数十万新用户。事实上,不难看到这样的说法:“ 智能合约 是比特币的 杀手级应用”。

这种可应用于比特币交易的逻辑是通过使用一套 专有语言 实现的,让 区块链 本身根据编程指令决定如何操作。这意味着我们拥有一笔以分布式且不可篡改的方式附带指令的交易,提供完全的安全性且不存在歧义。

智能合约并非你想的那样

如今一切都由计算机系统控制,一切都与之交互。在应用开发中,程序员通常会为应用创建一系列“门”(称为 API)。这些门让其他程序员可以进入你的应用来创建或获取信息。几乎所有网站或程序都有自己的 API。也就是说,定义了一种协议、一份合约,一种以特定数据结构调用应用的已知方式。正是通过这扇门,我们将获得响应,且其数据结构是可预测的。这样可以避免通信失败,进而避免程序出错。

但这份合约并没有保障。应用服务器由某个人控制,他有能力让程序明天以不同方式运行。它是中心化的,可能随着第三方的决定而改变。它并不“智能”。

人们需要可预测、透明且不可腐蚀的环境。智能合约是类似的代码片段,即它们有调用方式并能获得响应,有一份合约,但此外它们是不可篡改的,因为它们分布在成千上万个无法更改其内容的节点上。这样,你就得到一个始终以相同方式运行的程序,无需依赖第三方的善意。这几乎是任何用例都需要的。智能合约是始终以相同方式运行的云端程序,可以存储无法被暗中修改的信息。 它们是人类有史以来最安全的程序,只有在编程错误时才会出错。

编程错误的智能合约

智能合约能够管理具有一定经济价值的数字资产,因此实际上智能合约可以管理资金。这就要求特别重视其编程的正确性,因为智能合约可能存在安全漏洞,或出现导致执行错误或意外行为的缺陷。

一旦发生这种情况,资金可能会全部损失。这种情况已经发生过不少次,如果缺乏足够的 专业知识,许多项目仍将遭遇同样的问题。

遗憾的是,这种情况经常发生,因此在开发和测试这些软件时格外用心确实非常重要。

如何在比特币上创建智能合约?

要实现这一切,必须有一个完全安全的流程,确保至少两方能够在无需相互信任、甚至互不相识的情况下执行合约。

这些合约利用比特币的去中心化系统来强制执行金融协议,无需依赖司法系统等外部机构,降低了在金融交易中与陌生实体打交道的风险。

智能合约的生成过程

创建安全的 智能合约 有几个步骤。我们以在任何接受比特币的网站上进行安全存款为例。没有人喜欢丢钱,对吧?

总的来说,所有这些特性不仅可以在比特币区块链上构建新颖有趣的金融工具,而且由于每个智能合约都由人或机器构成, 物联网、保险科技、物流、行政管理 等领域的创新空间如此广阔,这些领域的首批 杀手级应用 或革命性应用很可能很快就会问世。

生成智能合约的步骤

  • 用户和网站互相发送一个新生成的公钥。
  • 接着,用户创建第一笔交易但不广播,例如将5 BTC放入一个需要用户和网站共同签名的输出中。
  • 用户将第一笔交易的哈希发送给网站。
  • 网站创建与合约对应的第二笔交易。在这第二笔交易中,花费第一笔交易并通过用户在第一步提供的地址退还给用户。但由于第一笔交易需要两个签名(用户和网站),此操作尚未完成。此时一个新参数变得重要: nLockTime。 它可以添加到比特币交易中,设定一个未来的日期,例如6个月后。在此日期之前,这些资金无法被纳入任何交易。输入的 Sequence Number 也设为0。
  • 最后,这笔尚未完全签名的交易将被返回给用户。用户会核实一切无误,确认币将回到自己手中。当然,要在 nLockTime 规定的6个月之后。由于 Sequence Number 为0,如果双方认为合适,该合约将来可以修改。但是……如果网站管理员消失了,用户如何取回资金呢?
  • 需要注意的是,输入脚本(记录在每笔交易中的指令)尚未完成。在网站创建第二笔交易后,为用户签名预留的空间仍由一串零组成。现在只差用户在该合约上的签名。
  • 此后,在设定的6个月过后,第一笔和第二笔交易都将被广播,第一笔交易中的5 BTC将退还给该用户。

总的来说,所有这些特性不仅可以在比特币区块链上构建新颖有趣的金融工具,而且由于每个智能合约都由人或机器构成, 物联网、保险科技、物流、行政管理 等领域的创新空间如此广阔,这些领域的首批 杀手级应用 或革命性应用很可能很快就会问世。

比特币上 智能合约 的现状

别忘了,当我们谈论比特币时,我们谈论的是一个新兴、充满活力且不断发展的生态系统,同时正如前文所述,也在谈论 智能合约。比特币上的 智能合约 新实现正逐步出现,而目前它已应用于一些你可能熟悉的功能中,例如 多重签名钱包,即两方或多方必须批准一笔交易后资金才会释放。

除多重签名地址外, 双重押金 也是促进此类智能合约正常运作的功能之一。它由 BitHalo 推出,其创新之处在于无需第三方充当仲裁者。基本上,各方(比如买方和卖方)双方都进行一笔与智能合约绑定的押金交易。合约程序设有到期时间。如果协议相关方未能在该期限内解决问题,押金资金将被销毁,即发送到一个无人知晓私钥的地址,这迫使各方竭尽全力寻找解决方案。

尽管比特币拥有一种可添加逻辑的编程语言,但有人认为它有时力不从心。正因如此,出现了一些将 智能合约 推向新高度的解决方案,采用图灵完备语言。让我们来了解其中一些新选择。

什么是 Counterparty?

Counterparty 诞生于2014年。它是一个 开源 平台,可在其上开发 点对点 应用。 这些应用最初面向金融领域,构建于比特币 区块链 之上:目前该协议实现并支持资产创建、发行这些资产的债券、支付股息、通过去中心化市场进行资产交易、二元投注以及差价合约(CFD)。 其开源协议除了可以创建和交易数字资产外,还可以编写智能合约,从而将 许多现实世界的操作转化为无需中介、自动运行且具备容错能力的代码。

counter party

Counterparty 也有一种名为 XCP 的 代币(或加密货币)。它用于提供一些目前使用 BTC(比特币)在技术上尚无法实现的功能。

尽管该项目自启动之初就宣布了对更强大 智能合约 的兴趣,但直到最近 才确认最终将在 Counterparty 中引入以太坊的 EVM,这将使其能够在比特币网络上执行与以太坊完全相同的智能合约,从而支持种类极其丰富的 应用,如 去中心化自治组织(DAO)、 身份系统、基于共识的投票系统等。截至比特币指南本章撰写之时, 以太坊虚拟机(EVM) 仅在 Counterparty 测试网上运行。他们是如何重新利用开源 EVM 的呢?Counterparty 使用相同的智能合约编程语言,名为 Solidity。

据 Counterparty Foundation 负责人 Trevor Altpeter 表示,EVM 现在将能够做到以太坊能做的一切,只不过是在比特币 区块链 上。

执行合约需使用 Counterparty 的货币 XCP。

什么是 RootStock?

Rootstock,被称为比特币上的以太坊, 是另一个试图将图灵完备 智能合约 引入比特币的平台,以便利用比特币的网络效应和安全性,而无需从零开始构建(有消息称该平台也将兼容以太坊)。它是一个用于创建智能合约的 开源 平台,将奖励积极参与的矿工。其主要目标是通过在网络上启用安全的 智能合约,为比特币生态系统增添价值和功能,并增加即时支付选项和更高的可扩展性。为此,RootStock 利用与比特币链相连的 侧链(sidechain),以及其代币(Roots),该代币仅用于与比特币进行兑换。

尽管相对较新,Rootstock 已在最近一轮融资中从 Digital Currency Group(DGC)获得100万美元。

Nick Szabo 本人在其推特上表示: “比特币的精华(货币和系统流动性)+以太坊的精华(智能合约编程生态系统)”

RooStock 或 RSK

在 智能合约 领域创新的平台

并非所有项目都只围绕比特币网络展开,替代方案已有不少。起初最突出的是 以太坊,2016年则有 Lisk。让我们深入介绍一下它们。

以太坊上的 智能合约

以太坊是 智能合约 领域最知名的项目之一。 它是一个基于类似比特币的公共 区块链 的分布式计算平台,还允许在名为 以太坊虚拟机(EVM)的去中心化虚拟机上执行 P2P 智能合约(在节点之间,无需中央服务器)。

它在分布式、拥有 自己的加密货币、矿工乃至自己的 区块链 等方面都基于比特币的理论,但与比特币不同的是,以太坊创建了一个 功能更为丰富的编程语言解释器 (图灵完备),允许在 区块链 中添加 复杂得多的逻辑。也就是说,它可以类比为一台分布式计算机,使用其加密货币(以太币)作为合约所需的“燃料”,以便矿工执行合约。换言之,现在有了以太坊,合约成为功能和可能性多得多的程序。不过为此——这也是许多人批评他们的地方——他们不得不从零开始建立一个全新的网络,放弃了比特币网络(全球最强大的网络)。

你可以在 State of Dapps 上查看、研究或复制大量基于以太坊开发的去中心化应用。 想进一步了解以太坊吗? 下面我们为你提供一张你可能感兴趣的西班牙语信息图。

以太坊智能合约

Lisk 上的智能合约

Lisk 是一个以去中心化方式创建和执行 智能合约 的平台,于2016年推出,由于使用 Javascript(使用最广泛的编程语言) 作为创建 智能合约 的语言,被视为开发安全、快速智能合约的最佳选择之一, 从而成为以太坊的替代方案, 后者使用的编程语言是 Solidity。

在合约运行所需货币( LSK)的预售取得成功、募集超过14,000枚比特币之后,Lisk 仍处于非常早期的阶段,但已有多个正在开发的 DAPP 概念,例如“存在性证明”(proof of existance)或一个名为 Discovr 的艺术家社交网络。

由于智能合约和区块链技术具有极大的编程灵活性,可以通过不同接口让它们与物理世界或现实世界交互。目前最常用的接口之一是加密预言机。

预言机

我们不能忘记 预言机。让 智能合约 能够与现实世界交互的最重要特性之一,就是所谓的 预言机(英文为oracles)。预言机是一种工具,可通过 外部信息(通常通过 API 获取)更新 智能合约 的内部状态,例如获取股票或货币的报价,或者快递公司是否已寄出包裹。

为了更好地解释,我们设想一个关于足球投注的智能合约,皇马对巴萨,合约会使用一个官方来源作为 预言机,例如西班牙足球甲级联赛官网。根据比赛结果,合约将资金释放给获胜者。谁还需要一个从你的钱中抽成的博彩公司?这相当于一家无佣金、安全且 无中介(去中心化)的博彩公司。

预言机同样自主运行。然而需要注意的是,预言机所使用的来源是一个必须信任的第三方,可能被其所有者篡改、被破解,或者其服务器可能出故障,这会带来 负面影响:我们在将信任中心化,这与 区块链 理念背道而驰。幸运的是,已有项目正在为这一问题开发解决方案: Orisi 和 Oraclize。 本质上,它们汇总所指定的所有信息 提供者的结果,并根据 多数结果 作出决定。 也就是说,它将结果的获取去中心化,这非常棒。

由智能合约主导的世界

你能想象几十年后,那时的政治家花4年时间准备一份智能合约,在其中规定资金如何分配以及将采取哪些行动吗?

这样一来,社会只需投票(当然,同样通过区块链技术)选出在新任期内要使用的智能合约。

这将确保投票结果得到执行,实现完全透明并可追踪支出。以当下的形势而言,这是迫切需要的……

或许用不了多久,选举就会变成这样。

这仅仅是开始

目前,我们对这一激动人心的 区块链 技术分支的介绍就到此为止。正如你所见,一些平台在不断创新的环境中竞相提供类似的解决方案,但目标都一致:消除传统体系中的摩擦点,为人们节省时间和金钱。在比特币迈出第一步仅仅几年之后,只有少数人会费心阅读这篇文章(你应感到幸运),深入研究的人更少,而决定挺身而出付诸行动的人则少之又少。一切都有待去做,存在许多问题,许多事情运作不良,这难道不是有所作为的绝佳机会吗?

只要稍加想象,就能预见这样一个未来:不再有大型跨国公司垄断各行业,取而代之的是永久存在于区块链上的透明代码,能够协调提供各种服务且无需成本(或与当前相比成本低得可笑)。我们正走向一个全球化但分布式的世界,没有中介,也没有大公司在幕后随心所欲地安排一切。这是一个拥有全球化服务的全球化世界, 智能合约 极有可能成为一场空前变革的种子:据估计,2017年联网设备超过250亿台,它们每天都可能相互执行 智能合约。

 智能合约 意味着这一切乃至更多,现在只需要创建简洁的界面,在具体场景中发挥这一潜力。你准备好了吗?

该图片的 ALT 属性为空;其文件名为 bit2me-white_bg-blue.png