智能合约

智能合约是一种计算机程序或交易协议，旨在根据合同或协议的条款自动执行、控制或记录事件与行动。 智能合约的目标是减少对可信中介的需求、降低仲裁成本和欺诈损失，并减少恶意与意外例外情况。 智能合约通常与加密货币相关联，而以太坊引入的智能合约被普遍认为是去中心化金融（DeFi）和非同质化代币（NFT）应用的基础构建模块。

维塔利克·布特林在2014年发布的原始以太坊白皮书 中将比特币协议描述为尼克·萨博最初定义的智能合约概念的弱化版本，并提出基于Solidity语言的强化版本，该语言是图灵完备的。此后，多种加密货币支持允许在非信任方之间进行更高级智能合约的编程语言。

智能合约不应与智能法律合同混淆，后者指传统的、自然语言的、具有法律约束力的协议，其部分条款以机器可读代码形式表达与实现。

词源
截至1996年，尼克·萨博使用“智能合约”一词指代通过物理财产（如硬件或软件）而非法律强制执行的合同。萨博以自动售货机作为此概念的实例。 1998年，该术语被用于描述斯坦福信息总线系统（斯坦福数字图书馆项目组成部分）的权利管理服务层中的对象。

智能合约的法律地位

智能合约通常不构成法律上有效的约束性协议。已有关于监管智能合约的提案。

智能合约并非法律协议，而是由计算机程序或事务协议自动执行的交易Mik, Eliza, Smart Contracts: A Requiem (December 7, 2019). Journal of Contract Law (2019) Volume 36 Part 1 at p 72，例如自动化支付义务的技术手段J Cieplak, S Leefatt, ‘智能合约：自动化履约的智能方式’ (2017) 1 Georgia L & Tech Rev 417（如转移加密货币或其他代币）。有学者认为编程语言的命令式或声明式特性会影响智能合约的法律有效性。

在某些司法管辖区，法律学者研究了智能合约的刚性与传统原则（如合同不可预见性）的互动。例如，哥伦比亚法律学界提出将情势变更理论（teoría de la imprevisión）应用于智能合约，以解决通过司法干预逆转智能合约效果的高经济与系统性成本，强调需内化这些成本并为数字环境开发新的程序机制。

自2015年以太坊区块链推出以来，“智能合约”一词已应用于区块链上的通用计算。美国国家标准与技术研究院将“智能合约”描述为“在区块链网络上使用加密签名交易部署的代码和数据集合（有时称为函数和状态）”。D J Yaga et al., 区块链技术概述, 美国国家标准与技术研究院内部/机构间报告8202, 2018, p 54, 引用于Mik, Eliza, Smart Contracts: A Requiem (December 7, 2019). Journal of Contract Law (2019) Volume 36 Part 1 at p 71 在此解释下，智能合约是使用区块链的任何类型的计算机程序。智能合约也可视为安全的存储过程，因为其执行和编码效果（如双方间的代币转移）无法在不修改区块链本身的情况下被操纵。在此解释中，合约执行由平台控制与审计，而非通过连接平台的任意服务器端程序。

2018年，美国参议院报告指出：“智能合约听起来新颖，但其概念植根于基础合同法。通常，司法系统裁决合同纠纷并执行条款，但采用其他仲裁方式也很常见，尤其在国际交易中。对于智能合约，程序执行编码中内置的合同。”第9章：构建安全未来，一次一个区块链 , 美国参议院联合经济委员会, 2018年3月。 美国已通过智能合约使用立法的州包括亚利桑那州、爱荷华州、内华达州Hyman Gayle M, Digesti, Matthew P 内华达州新立法承认区块链和智能合约术语  2017年8月, 内华达州律师、田纳西州和怀俄明州。

2021年4月，英国司法管辖区工作组（UKJT）发布了《数字争议解决规则》（Digital DR Rules），旨在快速解决英国的区块链和加密法律纠纷。

工作原理
与区块链上的价值转移类似，智能合约在区块链上的部署通过从区块链钱包发送交易完成。 该交易包含智能合约的编译代码以及特殊接收地址。 交易随后必须被包含在添加到区块链的区块中，此时智能合约代码将执行以建立初始状态。 拜占庭容错算法以去中心化方式保护智能合约免受篡改尝试。智能合约一旦部署即不可更新。 区块链上的智能合约可存储任意状态并执行任意计算。终端客户端通过交易与智能合约交互。此类交易可调用其他智能合约，可能导致状态变更以及将代币从一个智能合约转移到另一个合约或从一个账户转移到另一个账户。

运行智能合约最流行的区块链是以太坊。 在以太坊上，智能合约通常用名为Solidity的图灵完备编程语言编写，并编译为低级字节码由以太坊虚拟机执行。 由于停机问题及其他安全问题，图灵完备性被视为风险，Vyper等语言刻意避免此特性。 其他缺失图灵完备性的智能合约编程语言包括Simplicity、Scilla、Ivy和Bitcoin Script。 然而，2020年使用正则表达式的测量显示，当时53,757个以太坊智能合约中仅有35.3%包含递归和循环——这些结构与停机问题相关。

部分语言设计用于支持形式化验证：Bamboo、IELE、Simplicity、Michelson（可通过Coq验证）、Liquidity（编译为Michelson）、Scilla、DAML和Pact。

+ 支持智能合约的知名区块链平台示例： 名称  描述 以太坊  在其区块链上实现图灵完备语言，是著名的智能合约框架 比特币   提供图灵不完备的脚本语言，支持在比特币上创建自定义智能合约，如多签账户、支付通道、托管、时间锁、原子跨链交易、预言机或无运营方的多方彩票。 卡尔达诺 支持智能合约的区块链平台 Solana  支持智能合约的区块链平台 波场  支持智能合约的区块链平台 Tezos 支持智能合约的区块链平台

区块链上的进程通常是确定性的，以确保拜占庭容错。 尽管如此，智能合约的现实应用（如博彩和赌场）需要安全随机性。 事实上，区块链技术降低了彩票运营成本，因此对参与者有益。区块链随机性可通过使用区块哈希或时间戳、预言机、承诺方案、RANDAO和Quanta等特殊智能合约，以及混合策略纳什均衡序列实现。

应用
1998年，萨博提出智能合约基础设施可通过复制资产登记处和使用加密哈希链及拜占庭容错复制的合约执行来实现。 Askemos于200年实现了此方法，最初使用Scheme（后添加SQLite）作为合约脚本语言。

一项利用比特币进行复制资产登记和合约执行的提案称为“染色币”。 不同项目中实现了潜在任意形式财产的复制产权以及复制合约执行。

，UBS正在试验使用比特币区块链的“智能债券”，其中支付流可完全自动化，创建自支付工具。

继承意愿可在死亡证明登记后通过智能合约自动执行。 出生证明也可与智能合约协同工作。数字政府的区块链技术

Inc.com的Chris Snook提出，智能合约也可用于处理房地产交易，并应用于产权记录和公共登记领域。

Seth Oranburg和Liya Palagashvili认为智能合约也可用于雇佣合同，特别是临时雇佣合同，他们认为这将使雇主受益。

安全问题
基于区块链的智能合约交易数据对区块链所有用户可见。数据提供交易的加密视图，但这导致漏洞（包括安全漏洞）对所有用户可见却可能无法快速修复。 此类攻击难以快速修复，2016年6月成功针对The DAO执行，当时耗资约万以太币，而开发人员试图达成共识解决方案。  DAO程序设置了黑客可提取资金前的时延；在时限到期前，通过以太坊软件的硬分叉从攻击者处追回资金。 其他高调攻击包括Parity多签钱包攻击和整数下溢/溢出攻击（2018年），总额超过亿。

以太坊智能合约的问题尤其包括其合约语言Solidity中的歧义性及易用但不安全的构造、编译器错误、以太坊虚拟机错误、对区块链网络的攻击、漏洞的不可变性以及缺乏记录已知漏洞、攻击和有问题的构造的中央来源。

与智能法律合同的区别
智能法律合同不同于智能合约。如上所述，智能合约不一定具有法律可执行性。而智能法律合同在其可执行的司法管辖区具备法律可强制执行合同的所有要素，可由法院或法庭强制执行。因此，虽然每个智能法律合同都包含智能合约的某些元素，但并非每个智能合约都是智能法律合同。白皮书：智能合约与分布式账本——法律视角 , 5.

法律行业对智能法律合同尚无正式定义。白皮书：智能合约与分布式账本——法律视角 , 3.

李嘉图合约是智能法律合同的一种类型。 

参见

 代码及其他网络空间法律
 去中心化应用
 以太坊
 算法监管
 算法监管
 李嘉图合约（一种捕获协议各方意图的设计模式） 
 贷款
 安全多方计算
 透明度

参考文献

Category:区块链
Category:计算机法律
Category:合同法
Category:密碼貨幣