智能合约是一种自我执行的程序,可以自动执行协议或合同中需要的操作。一旦完成,交易可追踪且不可逆转。 [1][2][3]
智能合约旨在减少对可信中介的依赖,降低仲裁成本和欺诈损失,并最大限度地减少恶意和意外的异常情况。智能合约与加密货币紧密相连,是去中心化金融 (DeFi) 和非同质化代币 (NFT) 应用的基础。 [1][2]
智能合约最早由美国计算机科学家尼克·萨博在 20 世纪 90 年代初提出,他于 1998 年,即 比特币 问世前 10 年,发明了一种名为“比特黄金”的虚拟货币。萨博经常被传言为真正的 中本聪,即比特币的匿名发明者,但他否认了这一点。[1][7]
萨博的第一份出版物《智能合约:数字自由市场的基石》发表在 Extropy #16 上,后来经过修改,成为《在公共网络上形式化和保护关系》。这些文件描述了如何通过电子商业协议的设计,在互联网上的陌生人之间建立合同法和相关的商业实践。[3][7]
1996 年,萨博将智能合约描述如下:
“新的机构,以及形式化构成这些机构的关系的新方法,现在因数字革命而成为可能。我将这些新合同称为“智能”合同,因为它们比基于纸张的无生命祖先更具功能性。不暗示使用人工智能。智能合约是一组以数字形式指定的承诺,包括各方履行这些承诺的协议。”[7]
萨博受到大卫·乔姆等研究人员的启发,也更广泛地期望通过清晰的逻辑进行规范,并通过密码协议和其他数字安全机制进行验证或执行,这可能比传统的合同法有很大的改进,即使对于某些传统的合同条款(例如提供收回的汽车担保权益)也可以置于计算机协议的管辖之下。[7]
“智能合约”一词指的是发生在 区块链 或分布式账本上的一种通用计算。以太坊基金会或 IBM 等组织使用这种含义。在这种情况下,智能合约不一定对应于合同的传统概念,而可以是任何计算机程序。[1][3]
智能合约作为区块链上的不可变程序运行,遵循以下逻辑:“如果/当 x 事件发生,则执行 y 动作。” 单个智能合约可以包含各种条件,一个应用程序可以使用多个智能合约来促进一系列相互关联的过程。有几种编程语言可用于创建智能合约,其中 Solidity 是 以太坊 最流行的语言。 [1][3]
开发人员可以创建和部署智能合约供个人使用,例如自定义的收益聚合器。但是,许多智能合约涉及多个独立的当事方,他们具有不同程度的信任。这些合约精确地规定了用户交互,指定了谁可以参与、何时参与以及导致特定输出的输入。这导致多方数字协议从概率状态(执行的可能性很大)转变为确定性状态,从而确保按照指定的代码执行。 [1][3]
因为它们在区块链之上运行,所以智能合约会自动且确定性地完全按照编程方式执行。在执行方面,这在理论上意味着参与智能合约交易的任何一方都不能改变其结果或违反智能合约中概述的条款。 [3][8]
通过拜占庭容错算法实现的去中心化技术,实现了数字安全和智能合约的形成。一些区块链拥有不同程度图灵完备性的编程语言,这有助于创建高度定制化的逻辑。[7]
智能合约的著名例子包括:
智能合约是“执行合同条款的计算机化交易协议”。基于区块链的智能合约对所述区块链的所有用户可见。然而,这导致了一种情况,即包括安全漏洞在内的错误对所有人可见,但可能无法快速修复。 [3]
2016年6月,The DAO 遭受了一次成功的攻击,损失了 5000 万美元的以太币,而开发人员试图达成共识以找到解决方案。The DAO 程序在黑客可以移除资金之前设置了时间延迟;对以太坊软件进行了硬分叉,以便在时间限制到期之前从攻击者那里收回资金。 [4]
特别是,以太坊智能合约中的问题包括其合约语言 Solidity 中的歧义和容易但不安全的结构、编译器错误、以太坊虚拟机错误、对区块链网络的攻击、错误的不可变性,以及没有记录已知漏洞、攻击和有问题结构的中心来源。 [3][4]
Szabo 的概念设想了通过复制资产注册表和使用密码哈希链及拜占庭容错复制执行合约的智能合约基础设施。Askemos 在 2002 年使用 Scheme 实现了这种方法,后来添加了 SQLite 作为合约脚本语言。[5]
另一种提议是“彩色币”,建议使用 比特币 进行复制资产注册和合约执行。各种项目已经为各种形式的财产实施了复制所有权,以及复制合约执行。[6]
智能合约的理论优势包括最小化交易对手风险、缩短结算时间和提高透明度,与传统金融工具相比。2015 年,瑞银试验了使用比特币区块链的“智能债券”,设想了完全自动化的支付流,用于自我支付工具。[5][6]
去中心化金融 (DeFi) 包含利用智能合约来复制传统金融产品的应用程序,例如货币市场、期权、稳定币、交易所和资产管理。这些应用程序采用无需许可的组合性来结合服务,从而创建新的金融基元。DeFi 中的智能合约可以安全地管理用户资金,将其托管并根据预定条件在用户之间分配。例如,BarnBridge 为寻求固定资产敞口的用户自动执行交易,而 Aave 通过智能合约促进无需许可和去中心化的借贷。 [1][3]
代币智能合约用于创建、跟踪和分配区块链网络上特定数字代币的所有权。代币合约将其发行的代币编程为具有功能,为持有者提供诸如在dApp中的实用性/保险(实用代币)、协议中的投票权重(治理代币)、公司中的股权(证券代币)、对独特现实世界或数字资产的所有权声明(非同质化代币)等功能。例如,FIL代币用于支付Filecoin的去中心化存储服务,而COMP代币允许用户参与Compound协议的治理。 [1]
基于 区块链 的游戏使用智能合约来执行游戏内的防篡改操作。一个例子是 PoolTogether,这是一种无损储蓄游戏,用户将他们的资金 质押 在一个共享池中,然后将其路由到一个货币市场,在那里它赚取利息。在预定义的时间段后,游戏结束,一名获胜者被随机授予所有应计利息,而其他所有人都可以提取他们的原始存款。 [1]
类似地,限量版 NFT 可以拥有公平的分配模型,RPG 可以支持使用随机性的不可预测的战利品掉落,从而帮助确保所有用户都有公平的机会获得稀有数字资产。许多项目使用 Chainlink 可验证随机函数 (VRF) 访问随机性——一种随机数生成器 (RNG),它使用密码学来证明它是防篡改的,这意味着 RNG 过程是可公开审计的。 [1]
参数化保险将赔付款直接与预定义事件挂钩,利用智能合约实现防篡改的创建和执行,并基于数据输入。例如,可以通过智能合约实施作物保险,其中保单与特定天气条件(如季节性降雨量)相关联。保单完成后,如果实际降雨量超过预定义量,智能合约会自动发放赔付款。该模型确保最终用户及时获得赔付,并降低管理费用,并通过智能合约向公众开放保险的供应方。用户可以将资金存入池,智能合约会根据参与者的贡献比例向其分配保费。 [1][2]
智能合约可以通过将决策规则和程序直接编码到合约代码中,用于DAO(去中心化自治组织)中的投票和治理。DAO的参与者可以与智能合约交互,进行投票、提出变更或参与治理决策。这确保了投票过程的透明性、不可篡改性和防篡改执行,从而增强了DAO治理的民主和去中心化特性。智能合约可以自动统计选票、执行投票规则,并根据预定义的条件执行决策,为管理DAO事务提供高效且无需信任的机制。[8]
智能合约可以通过自动化筹款流程并确保贡献的透明和安全处理,应用于区块链众筹。通过智能合约中编码的预定义规则集,参与者可以向众筹活动发送捐款。然后,智能合约根据特定条件(例如达到资金目标或预定时间表)自动管理资金的释放。这消除了对中间人的需求,并增强了参与者之间的信任,因为合约的执行可以在区块链上验证。此外,智能合约可以根据合约中设定的条款,促进代币或奖励向贡献者的分配。 [8]