智能合约(Smart Contract)是什么?运作原理、Gas 费用、应用与安全风险

它最常被拿来比喻成自动贩卖机:投入足够的钱、按下按钮,机器就吐出商品,中间没有店员判断你该不该买。智能合约做的是同一件事,只是判断条件与执行结果都写在链上,任何人都能事先读到程式码、事后查到执行纪录。
这个设计解决的是「谁来保证对方会照约定做」的问题。但它同时带来一组全新的风险:程式码一旦部署就照字面执行,写错了也照样执行。本文从运作流程、Gas 费用、代币标准、实际应用,一路谈到真实发生过的失败案例。
- 智能合约是部署在区块链上、条件满足即自动执行的程式码,执行结果由全网节点各自重算并确认
- 只要会改动链上状态的呼叫就要付 Gas,单纯读取公开资料不用;这是防止程式无限回圈拖垮网路的机制,交易失败一样扣 Gas
- 「上链就不能改」只对合约程式码本身成立,多数专案透过代理合约保留升级权,管理员金钥才是真正的风险所在
- 智能合约无法主动取得链外资料,任何外部资讯(币价、气温、比赛结果)都要由预言机写上链才读得到
- 历史上的重大损失多半来自程式逻辑漏洞、预言机被操纵、管理员金钥失守与跨链桥,稽核报告不等于安全保证
1. 智能合约是什么?
智能合约是一段部署在区块链上的程式码,附带一块只有它自己能改写的储存空间。当有人送出符合条件的呼叫,它就按照写好的逻辑执行,改动自己的资料状态,整个过程记录在链上。
这个词比程式本身早了二十年。1994 年,法律学者兼密码学家 Nick Szabo 提出 smart contract 的概念,用自动贩卖机说明「靠机制而非靠信任来履约」的想法。当时没有能承载它的基础设施。直到 2015 年以太坊主网上线,第一个图灵完备的智能合约平台出现,这个构想才真正落地。
有两个特性决定了它能做什么、不能做什么。
第一是确定性。同一份程式码、同样的输入,在每个节点上都必须算出一样的结果,否则各节点对帐本的认知就会分歧。
所以合约里没有真正的随机数,也不能主动连上网路抓资料。币价、汇率、气温这些链外资讯,都要由预言机写上链才读得到——预言机被操纵会成为 DeFi 常见的攻击路径,根源就在这里。
第二是公开。合约的位元码一定在链上,多数专案还会公开原始码供验证。使用者可以在互动前检查逻辑,攻击者也可以慢慢研究漏洞。
对区块链本身还不熟悉的话,加密货币入门可以补上背景。
2. 智能合约怎么运作?从部署到执行
一份智能合约从被写出来到被使用,会经过几个固定阶段。
从撰写到上链:五个阶段

-
① 撰写:以太坊生态最常用 Solidity,另有 Vyper 等选择。程式码定义了合约有哪些函式、谁能呼叫、会改动哪些资料。
-
② 编译:原始码被编译成 EVM(以太坊虚拟机)看得懂的位元码。同时产生一份 ABI,也就是外部程式呼叫这份合约的说明书。
-
③ 部署:把位元码包成一笔交易送上链。交易确认后,合约会得到一个固定的地址,从此常驻在链上。部署本身要付 Gas,程式码越长越贵。
-
④ 呼叫:任何人(或另一份合约)都能对这个地址送出交易来执行某个函式。只读取资料不改动状态的查询不需要付费;只要会改动状态,就是一笔交易。
-
⑤ 验算与上链:全网节点各自执行同一段程式码、比对结果,取得共识后把新的状态写进区块。所谓「自动执行」指的就是这一步——背后没有排程程式在跑,是每个节点都算了一遍。
要留意的是,合约不会自己醒来做事,它必须被一笔交易触发。「到期自动付款」这类功能,实际上是有人(或某个自动化服务)在到期时送出那笔呼叫交易。
Gas:执行程式码为什么要付费
程式码是图灵完备的,理论上可以写出永远跑不完的回圈。如果执行免费,任何人都能用一个死回圈拖垮整个网路。Gas 就是为了堵住这个漏洞而设计的计费单位。
每一种运算都有固定的 Gas 消耗量,写入储存空间最贵,单纯的加减法最便宜。送出交易时要设定两个东西:
-
Gas 上限:你愿意让这笔交易最多烧掉多少 Gas。设太低会中途执行失败。
-
单位 Gas 的价格:以太坊自 2021 年的 London 升级后改为「基础费 + 小费」的结构,基础费随网路壅塞程度自动调整并被销毁,小费则给验证者。
有一点新手常吃亏:交易失败一样要付 Gas。合约执行到一半发现条件不符而中止,状态会回复到执行前,但已经消耗掉的算力不会退还。链上壅塞时送出一笔会失败的交易,等于白白付一次手续费。
不同链的费用差距极大:同样一笔转帐,在以太坊主网可能要几美元,在 Polygon 这类扩容方案上往往不到一美分。
「上链之后不能改」是真的吗?
只对了一半。合约的位元码确实无法修改,但这不代表功能不会变。
主流做法是代理合约:使用者互动的地址只是一个转接口,真正的逻辑放在另一份可替换的合约里。专案方要升级时,把转接口指向新版本即可,使用者的地址与余额都不受影响。
这个设计解决了无法修 bug 的难题,也把权力交回开发团队手上。谁能执行升级、谁能暂停合约、谁能提走金库里的资产,这些权限通常掌握在一组管理员金钥或多重签名钱包上。
所以评估一份合约,读完程式码只做了一半功课。升级权握在单一私钥、多重签名,还是附带时间锁,这一层的差异往往比技术架构更关键。
3. 智能合约和传统合约差在哪?
两者名字接近,运作逻辑几乎相反。
| 比较项目 | 传统合约 | 智能合约 |
|---|---|---|
| 表达方式 | 自然语言,保留解释空间 | 程式码,只有一种执行结果 |
| 履约方式 | 靠双方自觉,违约后诉诸司法 | 条件满足即执行,没有违约的余地 |
| 执行成本 | 事后追讨耗时且昂贵 | 一次 Gas 费用,秒级完成 |
| 出错时 | 可协商、可补正、可诉请撤销 | 照字面执行,多数情况无法回头 |
| 适用范围 | 任何可用文字约定的事 | 条件必须能被链上资料判定 |
差异的核心在模糊地带。传统合约允许「合理期间内」「重大不利影响」这类留白,出事后由法院填补;智能合约没有这种空间,所有判断条件都得先量化成程式看得懂的形式。
这也划出了它的适用边界。托管付款、按规则分配收益、抵押品跌破门槛就清算,这些能用链上资料判定的场景,智能合约做得又快又便宜;一旦牵涉主观判断、意思表示的解释或当事人行为能力,程式码就无能为力。
还有一点常被误会:在多数司法辖区,智能合约本身不等于法律上的契约。合意是否成立、标的是否合法,仍然由当地法律认定。实务上常见的做法,是用一份纸本合约约定权利义务,再用智能合约自动化其中的付款环节。
4. 智能合约平台有哪些?EVM 与非 EVM 两大阵营
不是每条链都能跑智能合约,能跑的也分成两大阵营。
EVM 阵营:一次开发,多链部署
以太坊定义了 EVM 这套执行环境。之后 BNB Chain、Polygon、Avalanche 的 C-Chain,以及 Arbitrum、Optimism、Base 等 Layer 2,都选择与它相容。
相容的好处很实际:同一份 Solidity 程式码几乎不用改就能部署到另一条链,开发工具、钱包与浏览器全部通用。
代币标准的扩散也是同一个道理,BNB Chain 的 BEP-20 就是把以太坊的 ERC-20 搬过去。
非 EVM 阵营:各走各的路
Solana 用 Rust 撰写、把合约称为 program,以平行执行换取吞吐量;Cardano 采用 Plutus;Aptos 与 Sui 使用 Move 语言。
效能与安全模型各有取舍,代价是生态彼此不通,程式码无法直接搬移。
比特币为什么不在这份名单上
比特币的脚本语言刻意设计成非图灵完备,只支援多重签名、时间锁这类有限功能。2021 年的 Taproot 升级扩充了表达能力,但它仍然不是通用的智能合约平台。
这是安全取向的取舍,不是技术落后。底层的差异可以参考区块链完整解析。
5. 智能合约在做什么?四类主要应用
代币发行与代币标准
链上的代币本身就是一份智能合约,它记录了谁持有多少,并定义转帐、授权等函式。ERC-20 规定了同质化代币该有哪些函式与事件,ERC-20 标准说明里有完整的栏位对照;ERC-721 对应每一枚都独一无二的 NFT;ERC-1155 让同一份合约同时管理多种代币。
这些标准的价值在于介面统一:钱包不必为每个代币写一套支援程式,交易所上架新代币也不用重写后端。
去中心化金融(DeFi)
这是智能合约最成熟的应用领域。
-
自动做市商用一条数学公式取代挂单簿,Uniswap 是最具代表性的例子,流动性提供者把两种代币存入资金池,交易者直接与池子成交。
-
借贷协议如 Aave,让使用者存入抵押品后借出另一种资产,利率由资金池的使用率自动决定,抵押率跌破门槛就触发清算。
-
超额抵押稳定币如 DAI,由使用者锁入抵押品后铸造,整套发行与清算规则都写在合约里。
DeFi 的组合性常被称为「金钱乐高」:一份合约可以直接呼叫另一份合约,把借贷、兑换、质押串成一笔交易完成。效率极高,风险也会沿着同一条链路传导。
质押与验证者机制
权益证明链上的质押由合约管理锁仓、发放奖励与处罚违规节点。流动性质押进一步用合约发行凭证代币,让使用者在锁仓期间仍保有可交易的资产。
NFT 与链上治理
NFT 合约记录每一枚代币的所有权与元资料位置,并可在程式码里写入转售时自动分润的规则。DAO 则把组织章程写成合约:持有治理代币的人投票,通过的提案由合约直接执行,不需要董事会签字。
6. 智能合约的风险:五种真实发生过的失败
这一节值得花最多时间。以下每一类都造成过实际损失,而且至今仍在重演。
程式逻辑漏洞:The DAO 与重入攻击
最著名的案例是 2016 年 6 月的 The DAO 事件。攻击者在合约更新余额之前反复呼叫提领函式,取走约 360 万枚 ETH。这种手法后来被称为重入攻击(Reentrancy Attack),是智能合约安全开发中最经典的漏洞类型。以太坊社群最终以硬分叉回滚,也因此分裂出以太坊经典(ETC)。合约逻辑错误没有客服可以申诉,这是这个事件留下最深的教训。
预言机被操纵:闪电贷攻击
借贷与衍生品合约依赖外部价格,如果价格来源只有单一交易所的即时报价,攻击者可以用闪电贷在同一笔交易内拉擡或砸盘,让合约以错误的价格清算或放贷。2020 年起这类攻击反复出现。防御方式是采用时间加权均价与多来源聚合,Chainlink 这类去中心化预言机网路就是为此而生。
管理员金钥与跑路风险
前面提过的升级权限,是最容易被忽略的风险。如果合约保留了无上限铸币、暂停交易或直接提走金库的函式,而这些权限握在单一私钥手上,那么技术上再漂亮的设计也挡不住开发团队自己动手,或私钥被窃。看一份专案时,权限清单与时间锁设定应该和程式码一起看。
跨链桥:损失规模最大的一类
跨链桥要在 A 链锁定资产、在 B 链铸造凭证,通常同时涉及智能合约与一组链外验证者。2021 至 2022 年间,Poly Network、Wormhole、Ronin 等桥接事件的损失规模都在数亿美元级别。其中 Ronin 的问题出在验证者私钥遭盗用,而非合约程式码有错——这说明「智能合约风险」不能只看程式码,还要看它周边那些不在链上的环节。
使用者端的授权风险
这是散户最直接遇到的一类。要让 DEX 或借贷协议动用你的代币,你必须先送出一笔 approve 交易授权它。许多介面预设申请的是无上限额度,而且授权在你主动取消前一直有效。钓鱼网站的常见手法,就是诱导你对一份恶意合约签下授权,之后在你毫无察觉时把代币转走。

可行的做法是把授权额度改成单次所需的数量,定期用区块链浏览器或授权管理工具检查并撤销不再使用的授权,并且把大额资产与日常互动的钱包分开——长期不动的部位可以移到冷钱包。
7. FAQ:关于智能合约的常见问题
Q1:智能合约真的不能修改吗?
已部署的位元码无法改写,但多数专案采用代理合约架构,把逻辑放在可替换的合约里,功能因此仍可升级。判断一份合约是否真的不可变,要看它有没有代理层、升级权由谁掌握、有没有时间锁。
Q2:Gas 费用是付给谁的?为什么有时候特别贵?
以太坊 London 升级后,Gas 费分成基础费与小费:基础费随网路壅塞程度自动调整并被销毁,小费付给打包交易的验证者。费用高低取决于这笔交易要做多少运算,以及当下有多少人在抢区块空间。
Q3:交易失败了,Gas 会退还吗?
不会。合约中止时状态会回复到执行前,但已经消耗的运算不退费,只有 Gas 上限没用到的部分会退回。链上壅塞时,建议先用模拟工具确认交易能通过再送出。
Q4:智能合约在法律上有效吗?
在多数司法辖区,它不会自动构成一份具法律拘束力的契约。部分地区已承认电子纪录与区块链签章的证据效力,但那解决的是形式问题,不等于承认程式码即合约。
Q5:一般投资人需要看得懂程式码吗?
不需要读懂每一行,但有四件事值得养成习惯:确认合约地址来自官方管道;用区块链浏览器看原始码是否经过验证、部署多久、互动人数多少;定期撤销不再需要的代币授权;把大额资产与日常互动的钱包分开。这四件事不需要程式背景,却能挡掉大部分常见损失。
Q6:智能合约和 DApp 是同一件事吗?
不是同一层。智能合约是链上的后端逻辑,DApp 通常还包含一个网页前端。前端可以更新、可以被下架,甚至可能被入侵并换成恶意版本,而合约仍在链上照常运作——这也是为什么老练的使用者会先确认前端连到的是正确的合约地址。
Q7:智能合约安全吗?
要拆开来看。合约的执行本身是可验证的,程式码公开、每一笔呼叫都留下纪录。但执行可验证不等于结果安全:前面五类风险里,只有第一类出在合约程式码,其余四类分别来自外部资料、权限设计、周边基础设施,以及使用者自己的授权习惯。稽核能降低风险,但它是针对特定版本的抽查,不构成安全保证。
8. 总结:它保证执行,不保证正确
智能合约真正改变的事情只有一件:把「对方会不会照约定做」这个问题,换成「这段程式码写得对不对」。前者需要信任与司法,后者需要程式码审查与权限设计。
这是一次实实在在的进步,代价也很明确。合约照字面执行,写错了照样执行;资产转走了,没有客服能撤销。历史上规模最大的几次损失,来源分别是逻辑漏洞、预言机操纵、管理员金钥与跨链桥;密码学本身从来没有被攻破过。
务实的态度是把它当成一种可验证的自动执行机制:规则公开透明、执行快速廉价,但风险没有消失,只是换了位置。看得懂这个转移在哪里,就能问出对的问题。想追踪相关资产的行情,可以参考以太币即时报价页面。
延伸阅读
- TRC-20 是什么?从代币标准到 USDT 转帐的完整入门指南
- 稳定币完整指南:USDT 与 USDC 比较、挂钩机制、监管风险
- 什么是助记词?12 与 24 位单字差别在哪?如何保护你的种子短语
- CBDC 是什么?央行数位货币全攻略:机制、风险及与加密货币的差异
- 比特币减半是什么?时间表、历次纪录与对币价的影响
Titan FX 交易策略研究所。我们制作面向投资者的教育内容,涵盖外汇、商品(原油、贵金属、农产品)、股票指数、美股与数位资产等广泛金融商品。
主要来源(按类别)
- 协议文件:以太坊官方文件与改进提案(EIP)中关于 EVM、Gas 计费与代币标准的一般说明
- 安全研究:公开的智能合约安全研究与事故汇整,涵盖重入攻击、预言机操纵与跨链桥事件
- 链上资料:公开区块链浏览器提供的合约验证状态、部署时间与互动笔数等一般资料
- 投资者教育:各国金融主管机关关于加密资产授权风险、钓鱼手法与诈骗辨识的教育资料