跳转到主要内容

代码即法律?智能合约详解

通过以太坊上的智能合约和去中心化金融 (DeFi) 的视角探索“代码即法律”的概念。本视频涵盖了什么是智能合约、它们如何工作,以及代码是否应成为最终仲裁者的哲学问题。

Date published: 2020年11月18日

芬尼马蒂克斯的这篇讲解通过以太坊上的智能合约视角探索了“代码即法律”的概念,涵盖了什么是智能合约、它们如何工作、它们相对于传统合约的优势,以及为什么它们是去中心化金融的构建模块。

本文字稿是芬尼马蒂克斯发布的原视频文字稿 (opens in a new tab)的无障碍副本。为了提高可读性,已进行了轻微编辑。

简介 (0:00)

你有没有听过“代码即法律”这种说法,即利用技术来执行规则?如果是这样,我们还需要律师吗?或者,也许我们可以生活在一个完全自动化的世界里,由代码决定我们能做什么和不能做什么。随着智能合约的当前发展,这种未来场景可能比我们想象的更近。

智能合约是一段可以自动且以确定性方式执行的代码。智能合约代码通常存储在区块链上并执行,以使其无须信任且安全。智能合约还具有接收、存储和发送资金的能力——甚至可以调用其他智能合约。它们遵循“如果-那么 (if-then)”语义,这使得它们相当容易编程。

智能合约旨在消除决策中的人为因素。人为因素通常被证明是标准传统合约中最容易出错和最不可靠的元素。

自动售货机经常被用作智能合约的绝佳类比,因为它有一些相似之处。典型的自动售货机的编程方式允许基于输入执行某些操作和状态转换。它也以完全确定性的方式工作。例如,如果你想买一罐两美元的可乐,而你只有一美元,无论你尝试多少次,你都无法得到饮料。另一方面,如果你投入三美元,机器会给你一罐可乐并找零。甚至找零也是根据可用的硬币以及机器想优先消耗哪些硬币,以预定义和编程的方式选择的。

智能合约可以完全依赖区块链上可用的信息——例如,“如果你给我十个代币 A,我就给你十个代币 B”。或者它可以依赖外部数据源,例如 ETH 或标准普尔 500 指数的价格。后一个例子使智能合约变得更加困难,因为它们必须信任现实世界的数据。通过使用预言机服务可以最大限度地减少所需的信任,但即使是预言机服务也必须被信任。已经有一些项目通过使用某些激励措施,使预言机更有可能提供正确的数据。切恩林克就是这一类别中脱颖而出的一个项目。

以太坊智能合约 (3:09)

以太坊是一个支持智能合约的区块链,它使程序员能够实现自己的智能合约。智能合约可以使用一种名为 Solidity 的编程语言编写,该语言是专门为此目的创建的。在以太坊中,所有部署的智能合约都是不可变的——这意味着一旦部署,它们就无法修改,这会带来我们稍后将讨论的某些风险。

以太坊上的智能合约也是去中心化的,这意味着没有单一的机器控制该合约。事实上,以太坊网络上的所有节点都存储着具有完全相同状态的同一个合约。尽管以太坊目前是最受欢迎的通用智能合约平台,但它并不是唯一的,它有一些竞争对手,包括 Cardano、Tezos、EOS 和 Tron——但并非所有竞争对手都具有相同的特征。

智能合约定义 (4:23)

“智能合约”一词是由著名密码学家尼克·萨博在 20 世纪 90 年代初创造的。这个名字虽然不是最不言自明的,但却流传了下来并被广泛使用,尤其是在区块链行业。为了了解智能合约的好处,让我们将一个假设的智能合约与传统领域的等效合约进行比较。

智能合约示例 (4:46)

假设我们要编写以下合约:如果爱丽丝发送 X 个代币 A,而鲍勃发送相同数量的代币 B,这些代币将被兑换——爱丽丝将收到鲍勃的代币,鲍勃将收到爱丽丝的代币。

在一个没有智能合约的世界里,在爱丽丝无须信任鲍勃且鲍勃无须信任爱丽丝的情况下实现这一目标的一种方法是与第三方创建托管合约。第三方将从爱丽丝那里收集代币 A,等待鲍勃提供相同数量的代币 B,然后将各自兑换的代币发送给爱丽丝和鲍勃。

智能合约问题 (5:45)

这种方法已经显示出爱丽丝和鲍勃可能面临的几个问题:

  • 信任中介——无法保证第三方在收到爱丽丝和鲍勃的资金后不会卷款跑路。我们必须依赖中介的声誉和潜在的保险。
  • 非确定性结果——如果出现问题,根据多种因素(包括潜在案件解决的司法管辖区),可能会有不同的结果。

另一方面,智能合约将以完全自动化和确定性的方式工作,确保双方在满足存入代币的初始标准时收到资金。智能合约还可以在其内部持有资金,这在传统世界中是无法实现的。

速度 (6:47)

根据中介的不同,爱丽丝和鲍勃可能需要等待几天甚至几周才能结算代币的转移。如果他们想在周日兑换代币而中介没有营业怎么办?有了智能合约,这些问题就迎刃而解了,合约可以在满足初始标准几秒钟后履行。

成本 (7:16)

传统合约不仅因为中介必须赚取利润而昂贵——如果合约出现任何问题,仲裁和执行等方面还存在巨大的隐藏成本风险。

可重用性是另一个优势:负责兑换爱丽丝和鲍勃代币的同一个智能合约可以被任何其他想要兑换代币的人使用。在传统世界中,他们都必须签署单独的合约并向中介支付各自的费用。

欺诈 (7:58)

欺诈是另一个隐藏成本,这次是针对中介本身的。中介必须在初始化兑换之前确保爱丽丝和鲍勃的代币都是合法的。欺诈在传统金融中非常普遍,大多数公司都有庞大的团队专门致力于防止欺诈。有了智能合约,代币可以在区块链上进行验证,并且通过数字签名,可以立即清楚爱丽丝和鲍勃是否有资格花费他们的代币。

用例 (8:42)

智能合约的用例越来越多,从支付和去中心化金融 (DeFi) 到供应链和众筹。智能合约也是去中心化应用 (dapp) 的基本构建模块。

DeFi (9:07)

去中心化金融 (DeFi) 是严重依赖智能合约的新兴行业之一。该领域已经构建的一些内容包括:

  • 去中心化稳定币——通过巧妙地使用智能合约和某些激励措施,我们可以创建与美元挂钩的稳定币,而无需在现实世界中存储美元。MakerDAO 就是实现这一目标的项目之一。
  • 自动流动性提供——一组智能合约可以允许用户以完全无需许可和去中心化的方式提供流动性并兑换代币。尤尼斯瓦普和 Kyber Network 就是此类协议的很好的例子。

众筹与供应链 (10:05)

另一个用例是为供应链提供更高的透明度,像 OriginTrail 这样的协议在其中发挥了作用。在众筹方面,你可以想象一个合约,一旦达到某些目标并得到社区的验证,就会解锁资金。

未来的智能合约 (10:29)

如果智能合约能够促进拼车、公寓租赁等更多事务呢?慈善事业又如何?你可以想象一个完全自动化的基金,它将资金直接发送给最需要的人,而没有任何中介。例如,该基金可以确定某个地区遭受了飓风袭击,并将资金重新定向到世界上的那个地区。目前,这听起来似乎是不可能的,但实现这一目标的所有必要元素正在构建中。

智能合约的用例几乎是无限的,但在我们实现所有这些之前,我们必须解决几个问题:

  • 漏洞——涉及智能合约的主要风险之一是困扰所有其他软件的问题。最好的例子是 The DAO 黑客攻击事件,由于攻击者能够从智能合约中抽干资金,导致价值数百万美元的以太币丢失。这导致以太坊发生硬分叉,并在以太坊社区中产生了许多分歧。自 The DAO 黑客攻击事件以来,以太坊社区提出了许多额外的安全措施。如今,几乎所有流行的智能合约都经过了安全审计,通常由多个团队进行。使用形式化验证方法来证明某些合约将始终以预期方式运行也是一种趋势。
  • 协议变更——即使智能合约没有任何漏洞并且已经过审计,我们仍然无法保证平台级别的变更不会引起问题。协议本身的升级可能会导致某些智能合约开始表现出与预期不同的行为。
  • 现实世界数据——预言机服务可以提供一种将现实世界信息引入区块链的可靠方式。但是想象一下,你租了一套公寓或一辆车,并造成了一些意外损坏。在没有任何人为干预的情况下,智能合约怎么可能知道这件事?有许多例子让人很难想象现实世界中发生的意外事件如何能被智能合约看到。

除此之外,还存在涉及监管和税务的风险,但这些最终都可以得到解决。

我们能取代律师吗? (13:58)

那么我们真的能用代码取代律师吗?不完全是——至少现在还不行。在未来,越来越多的合约可能会被自动化,尤其是在金融领域。但即使在一个完全自动化的世界里,律师也能提供可以转化为代码的宝贵知识。围绕加密货币行业也存在许多监管挑战,这将使律师在一段时间内非常忙碌。尽管如此,如果我是一名律师,我会开始学习智能合约和编程,因为它们将在未来发挥巨大作用。

总结 (14:53)

智能合约的优点:

  • 完全自动化
  • 确定性结果
  • 无须信任
  • 快速、精确且安全
  • 具有成本效益且透明

智能合约的缺点:

  • 软件漏洞
  • 协议变更
  • 监管和税务的不确定性

尽管智能合约带有一定的风险,但我们仍处于非常早期的阶段,目前的大多数问题都是可以解决的。

这个页面对您有帮助吗?