跳到内容

什么是智能合约?

智能合约是无需中介即可运行的执行代码,也是 DeFi、稳定币和 NFT 背后的基础构建模块。了解它们的工作原理。

7 分钟
什么是智能合约?

智能合约是存储在区块链网络上的自执行代码,当满足预设条件时,无需中介即可自动执行协议。智能合约以透明、可靠的方式执行规则,为应用程序、DeFi、NFT 和 DAO 提供支持。智能合约并不局限于某一特定网络;以太坊及其他 EVM 兼容区块链、Solana、Cardano、Polkadot 和 Sui 均支持智能合约,各自采用不同的编程语言和执行模型。由于智能合约存储在链上,它无需中介即可运行,其规则对任何人可见,且一经部署通常无法更改。智能合约是大多数区块链应用的基础构建模块,包括 DeFi 协议、稳定币、NFT 和 DAO。

免责声明:本指南仅供教育目的,不构成财务建议,亦非招揽行为,不面向英国受众。与智能合约交互存在风险,并不适合所有用户。

智能合约的工作原理

开发者编写合约并将其一次性部署到区块链上。此后,任何人都可以与之交互,一旦触发条件,合约便会执行其逻辑——例如,在收到付款时释放代币,或在达到特定区块高度后允许用户提取资金。智能合约在所有支持它的网络上具备两个核心特性:执行自动完成,无需中间人;代码默认不可篡改,因此一旦存在漏洞便是永久性的,除非合约在设计时专门支持可升级性。

运行智能合约也需要支付一定费用。每个网络都会收取网络费用,以处理合约所使用的计算和存储资源——在以太坊和大多数 EVM 链上称为"gas",在其他网络上则有不同的名称和收费模式(Solana 的按交易收费、Cardano 的按交易收费加脚本执行单元、Polkadot 的基于权重的费用)。具体机制各有不同,但原则一致:在区块链上执行代码会消耗网络资源,必须由某人为此付费。

智能合约简史

智能合约的概念早于任何区块链的出现。计算机科学家兼法律学者 Nick Szabo 于 1994 年提出了"智能合约"这一术语,并在 1996 年的一篇文章中进一步阐述,将其描述为一种执行协议条款的计算机化交易协议,并将其比作自动售货机——只要收到付款便可靠地交付商品,无需信任对方(Szabo 的原始著作,见概念历史参考资料)。当时,尚不存在能够以最小化信任、防篡改方式运行此类代码的平台,因此这一想法在此后二十年间基本停留在理论层面。

2009 年推出的比特币引入了区块链,但仅支持有限的脚本语言(Bitcoin Script),该语言有意设计为非图灵完备——它可以执行多重签名要求和时间锁等支出条件,但无法运行任意的通用程序。Bitcoin Script 约束的是现有资金的使用方式,无法表达关于后续操作的开放式逻辑,因此比特币不被视为通用智能合约平台。

以太坊于 2015 年 7 月 30 日上线,是第一个专为运行通用智能合约而构建的主要区块链,通过以太坊虚拟机(EVM)实现——这是一个每个以太坊节点以完全相同方式执行的共享运行时(ethereum.org,以太坊历史)。这使以太坊具备了早期区块链所不具备的可编程性,也是大多数智能合约术语——gas(即网络费用)、合约账户、Solidity——起源于此的原因。此后数年,其他网络采用不同语言和执行模型构建了各自的智能合约环境,包括 Solana(2020 年)、Cardano 的 Plutus 脚本(2021 年)、Polkadot 的 ink! 合约,以及 Sui 基于 Move 的对象模型(2023 年),将这一概念延伸至远超单一网络的范畴。

智能合约在哪里运行?

智能合约所使用的运行时和语言完全取决于其部署的网络。部分网络以账户余额的形式追踪状态,合约对其进行读写(以太坊的账户模型);其他网络则以离散的、可消费的输出形式追踪状态(Cardano 的 eUTXO 模型,是比特币 UTXO 模型的扩展),或以独立拥有的对象形式追踪状态(Sui 的以对象为中心的模型)。这些差异影响合约的编写方式及其可组合性,但不影响基本保证:代码自动执行,且一经部署便难以或无法更改。

网络

语言

执行模型

典型生态用途

以太坊及 EVM 网络

Solidity;Vyper;编译为 EVM 字节码

基于账户;每条链每次执行一个合约调用

DeFi;稳定币;ERC-20 和 ERC-721 代币

Solana

Rust,通常配合 Anchor 框架使用

Sealevel:对不涉及相同数据的交易并行处理

高吞吐量 DeFi;NFT 市场

Cardano

Plutus(基于 Haskell)

扩展 UTXO(eUTXO):交易结果可在提交前验证

DeFi;原生代币发行

Polkadot(通过平行链)

ink!(基于 Rust);Moonbeam 等 EVM 平行链也支持 Solidity

运行于基于 Substrate 的平行链之上;无需许可即可部署

平行链应用;原型开发

Sui

Move

以对象为中心:交易对所拥有的对象进行修改,支持并行处理

NFT;游戏;DeFi

比特币

Bitcoin Script

有限,非图灵完备;仅执行支出条件

多重签名钱包;时间锁;Layer-2 协议

来源: ethereum.org; Solana Sealevel; Cardano eUTXO; use.ink 文档; Sui Move 概念。

谁编写和使用智能合约?

开发者负责编写和部署智能合约;任何拥有合适工具并持有足够网络原生代币以支付部署费用的人都可以进行部署,且无需获得底层网络的许可。合约上线后,任何人都可以与之交互——通常通过应用程序界面,而非直接编写代码。用户在进行代币兑换、铸造 NFT 或参与 DAO 投票时,实际上都在触发智能合约的执行,通常无需了解底层语言或运行时。

代币标准

许多被称为"代币"的资产本质上是遵循共同标准的智能合约,这使钱包和应用程序能够以统一方式与任何符合标准的代币交互。在以太坊和其他 EVM 链上,ERC-20 是同质化代币的标准,涵盖大多数稳定币和功能性代币;ERC-721 是 NFT 的标准,每个代币均具有唯一性。其他网络也有各自的等效标准——例如 Solana 的 SPL 代币标准——均针对各自的执行模型而构建。

智能合约支持哪些应用?

在各个生态系统中,智能合约是应用程序的核心引擎:用于借贷和交易的 DeFi 协议、NFT 和数字资产市场,以及治理规则以代码形式存在而非依赖公司内部政策的 DAO。具体实现因网络而异,但底层模式始终一致——无需中间人即可执行协议的代码。

智能合约为何存在?

智能合约的存在是为了消除对可信中介来执行协议的依赖。无需依赖银行、托管代理或平台运营方来持有资金并遵守一套规则,规则直接以代码形式编写,并对所有与合约交互的人以相同方式执行。正是这一特性,使得可编程的自托管金融、数字所有权和区块链治理得以大规模实现——无论代码托管在哪个网络上。

代币授权与安全

使用应用程序通常意味着向智能合约授予代币授权——即允许其代表你转移特定代币。这是正常操作,但也是常见的攻击向量,因为恶意合约可能请求超出用户预期的授权额度。代币授权可以限定为特定金额,也可以设置为无限额度。MetaMask 扩展程序在签名前会显示完整的代币授权范围——包括合约地址以及授权是否有限额——让用户可以提前审查。我们关于代币授权的指南介绍了如何查看和撤销授权。

智能合约风险

  • 漏洞是永久性的:存在缺陷的不可篡改代码在部署后通常无法修补。

  • 审计可降低但无法消除风险:经过审计的合约仍曾遭受攻击。

  • 恶意合约存在于每个支持智能合约的网络中,并非仅限于某一特定网络。

关于智能合约的常见问题

AI 翻译。可能包含错误。请务必核实信息。

评价此翻译

本文作者:

  • MetaMask

    MetaMask(前身为 Consensys Software Inc)是全球最大的自托管金融平台,为用户提供一站式服务,涵盖加密资产与传统资产的持有、消费、储蓄与增值。公司正在打造实现上述功能的消费级平台,将支付、储蓄、投资与数字资产整合于一体,带来无缝一体化的使用体验。MetaMask 脱胎于全球使用最广泛的自托管钱包,让用户直接掌控自己的资金与资产,覆盖约 190 个国家和地区。自 2016 年起,MetaMask 在以太坊的发展历程中扮演了举足轻重的奠基角色。如今,MetaMask 处于区块链经济的核心位置,致力于构建「开放货币」的操作系统,让每个人都能全面掌控自己的财务生活。

    阅读所有文章