智能合约是一种存储在区块链上的自执行计算机程序,当满足预定条件时会自动运行。协议各方之间的条款直接写入代码行中,由于这些代码存在于分布式、去中心化的区块链网络中,该过程实现了协议执行的自动化,并允许所有参与者在无需中间人参与的情况下确定结果。一旦完成,交易即具有可追溯性和不可逆性。[2][5][1]
智能合约旨在减少对受信任中间人的依赖,降低仲裁成本和欺诈损失,并最大限度地减少恶意和意外异常。智能合约与加密货币紧密相连,是 Web3 应用程序的基础构建块,包括去中心化金融 (DeFi) 和非同质化代币 (NFT) 应用。[1][2]
“智能合约”这一概念和术语最早由美国计算机科学家 尼克·萨博 (Nick Szabo) 于 1994 年提出,他将其定义为“一种执行合约条款的计算机化交易协议”。[1][2] 1998 年,萨博还设计了一种名为“比特黄金 (Bit Gold)”的虚拟货币,这比 比特币 (Bitcoin) 的出现早了十年。萨博经常被传言是匿名的 比特币 发明者 中本聪 (Satoshi Nakamoto),但他对此予以否认。[1][6]
2009 年 比特币 区块链的推出支持了第一个“协议智能合约”,它建立了一套转移 BTC 必须满足的条件,例如发送者必须使用正确的私钥进行签名。到 2012 年,比特币 网络演进到支持多重签名 (multisig) 交易,这是一种更高级的智能合约形式,需要多个私钥才能批准交易。[1]
智能合约的现代纪元始于 2013 年 维塔利克·布特林 (Vitalik Buterin) 发表的 以太坊 (Ethereum) 白皮书,该白皮书提出了一种新型区块链,用于实现更通用、可编程的智能合约。以太坊 于 2015 年上线,作为一个“世界计算机”运行,能够同时运行许多独立且复杂的智能合约,显著扩展了它们的功能。[1][3]
智能合约运行在嵌入区块链的专用虚拟机上,遵循“如果/当 x 事件发生时,则执行 y 操作”的逻辑。[1] 通过在去中心化网络而非中央服务器上运行,它们使多方能够达成共享且不可篡改的结果,而无需相互信任。单个智能合约可以包含各种条件,一个应用程序可能会采用多个智能合约来促进一系列互连的流程。[5]
由于智能合约运行在区块链之上,它们会严格按照编程设定自动且确定性地执行。这保证了合约的结果无法被任何单方更改。开发中使用了多种编程语言,其中 Solidity(用于 以太坊 及其兼容链)、Vyper 和 Rust 是最突出的几种。[1][3]
这种风险的一个著名案例是 2016 年 6 月对 The DAO 的攻击,该事件导致价值 5000 万美元的以太币被盗。最终,该事件通过一次极具争议的 以太坊 区块链硬分叉得以解决,从而追回了攻击者的资金。 [4]
区块链本质上是孤立的系统,无法原生访问外部的链下数据,例如现实世界的资产价格、天气数据或体育赛事结果。这被称为“预言机问题”(oracle problem),在没有补充解决方案的情况下限制了智能合约的应用范围。[1]
为了克服这一限制,智能合约使用“预言机”(oracles),这是一种将区块链连接到外部系统的安全中间件服务。预言机提供链下数据和计算资源,从而实现“混合智能合约”(hybrid smart contracts),将链上代码与链下基础设施相结合。这种连接使智能合约能够对现实世界的事件做出反应,极大地扩展了其潜在的应用场景。[1][5]
并非所有区块链都具备运行复杂、可编程智能合约的原生能力。关键的区别在于底层网络执行和存储任意应用逻辑的能力,这通常是通过内置的虚拟机实现的。
支持高级智能合约的知名平台包括:
总的来说,这些平台为各种去中心化应用提供了高度定制化逻辑的创建便利。[1]
去中心化金融 (DeFi) 涵盖了利用智能合约来复制传统金融产品的应用,例如货币市场、期权、稳定币、交易所和资产管理。这些应用采用无许可的可组合性来结合各项服务,从而创造出新的金融原语。DeFi 中的智能合约可以安全地管理用户资金,将其进行托管,并根据预设条件在用户之间进行分配。例如,BarnBridge 为寻求固定资产风险敞口的用户提供自动化交易,而 Aave 则通过智能合约促进无许可且去中心化的借贷业务。[1][3]
代币智能合约用于在区块链网络上创建、追踪并分配特定数字代币的所有权。代币合约将其发行的代币程序化,为持有者提供各种功能,例如 dApp 中的实用性/保险(实用代币)、协议中的投票权重(治理代币)、公司股权(证券代币)、对唯一的现实世界或数字资产的所有权声明(非同质化代币)等。例如,FIL 代币用于支付 Filecoin 的去中心化存储服务,而 COMP 代币则允许用户参与 Compound 协议 的治理。[1]
基于区块链的游戏使用智能合约来确保游戏内操作的不可篡改执行。其中一个例子是 PoolTogether,这是一款无损储蓄游戏,用户将其资金质押到一个共享池中,随后资金被转入货币市场赚取利息。在预定周期结束后,游戏结束,一名赢家将随机获得所有累计利息,而其他所有人都可以提取其原始存款。[1]
同样,限量版 NFT 可以拥有公平的分配模型,角色扮演游戏(RPG)可以利用随机性支持不可预测的战利品掉落,从而确保所有用户都有公平的机会获得稀有数字资产。许多项目通过 Chainlink 可验证随机函数(VRF)获取随机性——这是一种使用密码学证明其不可篡改性的随机数生成器(RNG),这意味着 RNG 过程是可公开审计的。[1]
参数化保险将赔付直接与预定义的事件挂钩,利用智能合约基于数据输入实现防篡改的创建和执行。例如,农业保险可以通过智能合约实施,保单与季节性降雨等特定天气条件相关联。保单完成后,如果受信任的预言机数据确认满足预定义条件,智能合约将自动发放赔付款。Arbol 等平台使用智能合约和预言机开展基于天气的参数化保险。这种模式确保了赔付的及时性,减少了管理开销,并通过智能合约向公众开放了保险的供应端,用户可以将资金存入流动性池以赚取保费。[1][2]
智能合约可以通过将决策的规则和程序直接编码到合约代码中,应用于 DAO(去中心化自治组织)的投票和治理。DAO 的参与者随后可以与智能合约交互,进行投票、提议更改或参与治理决策。这确保了投票过程的透明性、不可篡改性和防篡改执行,增强了 DAO 治理的民主和去中心化特性。智能合约可以自动统计选票、执行投票规则,并根据预定义条件执行决策,为管理 DAO 事务提供了一种高效且无需信任的机制。 [5]
智能合约可应用于区块链众筹,通过自动化筹款流程并确保捐款处理的透明与安全。通过在智能合约中编码的一套预定义规则,参与者可以向众筹活动发送捐款。随后,智能合约会根据特定条件(例如达到筹款目标或预定的时间表)自动管理资金的释放。由于合约的执行在区块链上是可验证的,这消除了对中间机构的需求,并增强了参与者之间的信任。此外,智能合约还可以根据合约内设定的条款,促进向贡献者分发代币或奖励。[5]
智能合约的潜在应用延伸至众多其他领域,包括用于在交货时自动支付的供应链管理、房地产交易、股票和商品交易,以及在征得患者同意的情况下管理敏感数据的医疗保健。 [2]