智能合約(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 計費與代幣標準的一般說明
- 安全研究:公開的智能合約安全研究與事故彙整,涵蓋重入攻擊、預言機操縱與跨鏈橋事件
- 鏈上資料:公開區塊鏈瀏覽器提供的合約驗證狀態、部署時間與互動筆數等一般資料
- 投資者教育:各國金融主管機關關於加密資產授權風險、釣魚手法與詐騙辨識的教育資料