智能合約

智能合約是在區塊鏈上自動執行的程式碼——當條件滿足時,它會自動執行,不需要中間人,也沒有人能阻止它。這是區塊鏈從「數位貨幣」進化到「可程式化金融」的關鍵。

想像一台自動販賣機。

你投入硬幣,按下按鈕,飲料就會掉出來。

不需要店員。

不需要談判。

不需要信任對方會遵守承諾。

規則寫在機器裡,機器自動執行。

智能合約就是區塊鏈上的自動販賣機——只不過它可以處理的不只是飲料,而是任何可以用程式碼表達的協議。

智能合約的特性

特性
說明
影響

自動執行

條件滿足就執行,無需人工介入

不需要信任對方

不可竄改

一旦部署就無法修改

安全但也有風險(Bug 也無法修)

透明公開

程式碼公開,任何人可驗證

可以審計,但攻擊者也看得到

去中心化

運行在區塊鏈上,沒有單點故障

審查抵抗

智能合約如何運作?

傳統合約流程:
1. 甲乙雙方談判
2. 簽署紙本合約
3. 一方違約
4. 另一方提告
5. 法院判決
6. 強制執行
→ 過程:數週到數年

智能合約流程:
1. 程式碼定義規則
2. 部署到區塊鏈
3. 觸發條件
4. 自動執行
→ 過程:幾秒到幾分鐘

關鍵差異:傳統合約靠法律執行,智能合約靠程式碼執行。

這就是為什麼有人說:「Code is Law」(程式碼即法律)

智能合約能做什麼?

應用
例子
傳統對應

代幣發行

ERC-20 代幣

股票、點數

NFT

數位藝術品、PFP

所有權證明

DeFi 借貸

Aave、Compound

銀行貸款

去中心化交易所

Uniswap、Curve

股票交易所

保險

Nexus Mutual

保險公司

治理

DAO 投票

股東會議

遊戲

鏈遊資產

遊戲道具

主流智能合約平台

平台
程式語言
特點

以太坊

Solidity、Vyper

最大生態系、最多開發者

Solana

Rust

高性能、低手續費

BNB Chain

Solidity

與以太坊相容、較中心化

Arbitrum/Optimism

Solidity

以太坊 Layer 2

Avalanche

Solidity

快速、EVM 相容

比特幣也有「腳本」功能,但它故意設計得很簡單,不是圖靈完備的。以太坊的突破在於創造了「圖靈完備」的智能合約——理論上可以執行任何運算。

Solidity:智能合約的主流語言

大多數智能合約用 Solidity 撰寫。

Solidity 的特點

  • 語法類似 JavaScript

  • 專為區塊鏈設計

  • 有完整的開發工具和文件

  • 也有學習曲線和安全陷阱

Gas:智能合約的「燃料」

在以太坊上,每個操作都需要「Gas」。

操作
Gas 消耗

簡單轉帳

21,000

代幣轉帳

約 65,000

DEX 交換

約 150,000-300,000

複雜 DeFi 操作

可能超過 500,000

Gas = 你願意為每單位計算付多少錢

智能合約的風險

智能合約最大的風險是:Bug 無法修復

傳統軟體有 Bug?更新版本就好。

智能合約有 Bug?幾百萬美元可能就沒了。

常見漏洞:

漏洞類型
說明
著名案例

重入攻擊

在狀態更新前重複調用

The DAO(6000 萬美元)

整數溢出

數字超出範圍導致異常

多起 ERC-20 漏洞

權限漏洞

敏感函數沒有限制調用者

Parity 錢包(1.5 億美元凍結)

價格操縱

利用閃電貸操縱預言機價格

多起 DeFi 攻擊

如何寫安全的智能合約?

  1. 使用經過驗證的程式庫

    • OpenZeppelin 提供標準化的安全模組

    • 不要重新發明輪子

  2. 審計

    • 找專業公司審計程式碼

    • 但審計通過不代表 100% 安全

  3. 漸進式部署

    • 先在測試網測試

    • 小額資金上線

    • 逐步增加

  4. 設計安全機制

    • 緊急暫停功能

    • 多重簽名管理

    • 時間鎖

可升級合約

既然智能合約不可修改,怎麼修 Bug?

解決方案:代理模式(Proxy Pattern)

但這有取捨

  • ✅ 可以修復 Bug

  • ✅ 可以增加功能

  • ❌ 犧牲了「不可竄改」的承諾

  • ❌ 管理員可能濫用權力

很多「去中心化」協議其實有可升級的合約,這意味著團隊仍有很大的控制權。在投資前,了解合約是否可升級、誰有升級權限,是重要的 DYOR 項目。

ERC 標準

以太坊社群制定了各種「標準」,讓合約可以互通:

標準
用途
例子

ERC-20

同質化代幣

USDT、LINK、UNI

ERC-721

NFT(非同質化代幣)

無聊猿、CryptoPunks

ERC-1155

多代幣標準

遊戲道具

ERC-4626

代幣化金庫

DeFi 收益聚合器

標準的好處

  • 錢包自動識別你的代幣

  • 可以在 DEX 交易

  • 可以在 DeFi 協議中使用

  • 減少重複開發

智能合約的未來

趨勢
說明

Layer 2

把計算搬到 L2,降低成本

帳戶抽象

讓智能合約錢包更好用

形式化驗證

用數學證明合約正確

AI 輔助審計

用 AI 找漏洞

跨鏈合約

一個合約,多條鏈執行

對一般用戶的建議

你不需要會寫智能合約,但你應該:

  1. 了解授權風險

    • 每次「Approve」都在授權合約動用你的代幣

    • 定期用 Revoke.cash 檢查和撤銷授權

  2. 檢查合約是否審計

    • 主流協議通常有多份審計報告

    • 沒有審計的協議風險更高

  3. 注意可升級性

    • 誰有權升級?

    • 有沒有時間鎖?

  4. 小額測試

    • 第一次使用新協議時,用小額資金測試


本章節目錄

相關條目

Last updated