P2PKH 與 P2SH 腳本類型
從 Pay to Public Key Hash 到 Pay to Script Hash 的演進。
P2PKH 與 P2SH 腳本類型
比特幣的腳本類型經歷了從 P2PK 到 P2PKH 再到 P2SH 的演進過程。每種腳本類型都有其獨特的設計考量與安全特性。
P2PK:最早的腳本類型
Pay-to-Public-Key (P2PK) 是比特幣最早的支付方式,直接將比特幣發送到公鑰。
腳本結構
鎖定腳本:
<公鑰> OP_CHECKSIG
解鎖腳本:
<簽名>
運作原理
- 發送者需要知道接收者的公鑰
- 接收者花費時提供數位簽名
- 節點驗證簽名是否有效
優點與缺點
- 優點:腳本簡單,驗證速度快
- 缺點:
- 公鑰直接暴露在區塊鏈上
- 較長的交易資料
- 無法使用更複雜的腳本功能
P2PKH:現代錢包的標準
Pay-to-Public-Key-Hash (P2PKH) 是目前最廣泛使用的地址類型,透過哈希保護公鑰。
地址格式
傳統 P2PKH 地址以 1 開頭,例如:1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2
腳本結構
鎖定腳本 (P2PKH):
OP_DUP OP_HASH160 <公鑰哈希> OP_EQUALVERIFY OP_CHECKSIG
解鎖腳本:
<簽名> <公鑰>
運作流程
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ 發送方 │───▶│ 腳本執行 │───▶│ 驗證結果 │
└─────────────┘ └──────────────┘ └─────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
OP_DUP OP_HASH160 OP_EQUALVERIFY
(複製) (哈希公鑰) (比較哈希)
│ │ │
▼ ▼ ▼
公鑰 公鑰哈希 (RIPEMD160) 匹配?
安全特性
- 公鑰保護:公鑰在花費前不會完全暴露
- 哈希安全:依賴 RIPEMD160 和 SHA-256 的安全性
- 橢圓曲線:基於 ECDSA 加密
P2SH:靈活的腳本類型
Pay-to-Script-Hash (P2SH) 允許發送到任意腳本的哈希,實現更複雜的功能。
地址格式
P2SH 地址以 3 開頭,例如:3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy
腳本結構
鎖定腳本 (P2SH):
OP_HASH160 <腳本哈希> OP_EQUAL
解鎖腳本:
<簽名1> <簽名2> ... <贖回腳本>
常見應用場景
多簽名腳本
OP_2 <公鑰A> <公鑰B> <公鑰C> OP_3 OP_CHECKMULTISIG
這實現了 2-of-3 多簽名,需要任意 2 個私鑰簽名才能花費。
時間鎖腳本
<時間> OP_CHECKLOCKTIMEVERIFY OP_DROP <公鑰> OP_CHECKSIG
資金只能在指定時間後才能被花費。
其他應用
- 閃電網路通道
- 原子交換
- 智慧合約條件
腳本類型比較
| 特性 | P2PK | P2PKH | P2SH |
|---|---|---|---|
| 地址長度 | N/A | 25 bytes | 25 bytes |
| 地址開頭 | 無 | 1 | 3 |
| 公鑰暴露 | 是 | 花費時 | 花費時 |
| 腳本靈活性 | 低 | 低 | 高 |
| 交易大小 | 較大 | 中等 | 較大 |
| 支援多簽 | 否 | 否 | 是 |
選擇合適的腳本類型
推薦使用場景
P2PKH (傳統地址):
- 與舊錢包相容
- 簡單的個人使用
P2SH (腳本哈希):
- 多簽名需求
- 複雜的支付條件
- 與隔離見證配合
P2WPKH/P2WSH (隔離見證):
- 費用較低
- 更好的擴展性
- 區塊空間利用率高
總結
比特幣的腳本類型反映了其設計哲學:從簡單的 P2PK 到更安全、更靈活的 P2PKH 和 P2SH。每種类型都有其適用場景,了解這些基礎知識對於比特幣開發者和進階用戶至關重要。
隨著隔離見證 (SegWit) 的普及,更新的腳本類型如 P2WPKH 和 P2WSH 提供了更好的效率和安全特性,這將在後續章節中介紹。
相關文章
- 比特幣腳本語言入門 — 理解 Bitcoin Script 的基本指令與運作原理。
- Bitcoin Core 節點運作 — 運行完整節點,理解比特幣網路的運作機制。
- UTXO 模型詳解 — 比特幣的未花費交易輸出模型與帳戶模型比較。
- 比特幣合約 (Covenants) — 理解比特幣腳本限制與合約實現的可能性。
- 比特幣腳本語言深度教學 — 深入理解比特幣腳本語言的運作原理、常見腳本類型與進階應用場景。
延伸閱讀與來源
這篇文章對您有幫助嗎?
請告訴我們如何改進:
0 人覺得有帮助
評論
發表評論
注意:由於這是靜態網站,您的評論將儲存在本地瀏覽器中,不會公開顯示。
目前尚無評論,成為第一個發表評論的人吧!