核心概念
共識機制
PoW 確保所有節點對區塊鏈狀態達成一致,防止雙重支付。
P2P 網路
節點之間直接通訊,沒有中心伺服器。
UTXO 模型
追蹤比特幣的所有權和交易歷史。
區塊驗證
每個節點獨立驗證區塊,包括交易、PoW 和結構。
Mempool
待確認的交易池,礦工從中選擇交易打包。
Script
定義交易花費條件的腳本語言。
架構概覽
網路層 (Net)
處理 P2P 連接、訊息傳遞和節點發現
驗證層 (Validation)
驗證交易和區塊的有效性
共識層 (Consensus)
實現共識規則和區塊鏈狀態管理
錢包 (Wallet)
密鑰管理、交易建立和簽名
RPC 介面
提供 JSON-RPC API 供外部程式調用
技術文檔
深入了解 Bitcoin Core 的核心概念、RPC 接口和網路協議。
1 核心協議
共識機制
PoW、難度調整、分叉處理
區塊結構
區塊頭、Merkle 樹、Coinbase
交易結構
輸入輸出、腳本、SegWit
UTXO 模型
UTXO 集合、Coin Selection
Script
操作碼、腳本類型、智能合約
Mempool
交易池、RBF、手續費估算
Mining
難度調整、區塊模板、Stratum
Address Types
Base58、Bech32、地址格式
Coin Selection
UTXO 選擇、手續費優化
AssumeUTXO
快速同步、UTXO 快照
SegWit
隔離見證、BIP-141/143/144
Taproot
Schnorr、MAST、BIP-340/341
libsecp256k1
橢圓曲線密碼學庫
Timelock
時間鎖、CLTV、CSV
Sighash Types
簽名雜湊類型
Transaction Fees
手續費、RBF、CPFP
HD Wallets
階層確定性錢包、BIP-32/39/44
Silent Payments
靜默支付、BIP-352
Schnorr Signatures
BIP-340、金鑰聚合
Multisig
多重簽名、m-of-n
Coinjoin
交易混合、隱私增強
OP_RETURN
數據嵌入、時間戳證明
Difficulty Adjustment
難度調整、nBits 編碼
Merkle Tree
Merkle 證明、SPV 驗證
Headers-First Sync
IBD、並行區塊下載
Orphan Blocks
孤立區塊、鏈重組
Bech32 & Bech32m
BIP-173/350 編碼
Base58Check
傳統地址編碼
Soft Fork Activation
軟分叉啟用機制
AssumeValid
快速同步優化
Pruning
區塊鏈修剪
Dust Limits
灰塵限制機制
Block Weight
區塊重量系統
RBF
Replace-by-Fee 機制
CPFP
Child Pays For Parent
SigOps
簽名操作限制
Wallet Encryption
錢包加密機制
Reindex
重建區塊鏈索引
DbCache
UTXO 資料庫快取
Checkpoints
硬編碼檢查點
LevelDB
鍵值資料庫
Orphan Transactions
孤立交易處理
Mempool Policy
交易接受策略
Undo Data
區塊回滾資料
Fee Estimation
手續費估算
Wallet Backup
錢包備份機制
Chain State
鏈狀態管理
Version Bits
軟分叉信號機制
Block Files
區塊文件管理
Anchor Outputs
閃電網路錨點輸出
Watch-Only Wallets
只讀錢包監控
Coin Control
手動 UTXO 選擇
Data Directory
數據目錄結構
Wallet Types
錢包類型比較
nSequence
序列號和相對鎖
SPV
簡化支付驗證
MuSig2
多方簽名聚合
Transaction Broadcast
交易廣播機制
Script Validation
腳本驗證過程
Hardware Wallet
硬體錢包整合
Backup & Recovery
備份和恢復策略
Genesis Block
創世區塊結構
Coinbase Transaction
區塊獎勵交易
IBD
初始區塊下載
Full RBF
完全 Replace-by-Fee
V3 Transactions
TRUC 交易策略
Block Subsidy
區塊獎勵與減半
WTXID
見證交易識別碼
TX Malleability
交易可延展性
Compact Serialization
緊湊序列化格式
Witness Program
見證程式結構
Transaction Pinning
交易釘住攻擊
Cluster Mempool
新 Mempool 架構
Ancestor Limits
祖先後代限制
OP_CTV
CheckTemplateVerify
Stratum V2
下一代挖礦協議
Block Header
區塊頭結構
Virtual Bytes
虛擬位元組與權重
TestMempoolAccept
交易驗證測試
Address Reuse
地址重用風險
ScriptPubKey Types
輸出腳本類型
Double Spend
雙重支付攻擊
Eclipse Attack
日蝕攻擊防護
Selfish Mining
自私挖礦攻擊
Sybil Attack
女巫攻擊防護
Fee Sniping
手續費狙擊防護
OP_CSV
相對時間鎖操作碼
OP_CLTV
絕對時間鎖操作碼
Witness Commitment
見證數據承諾
Chain Params
鏈參數配置
51% Attack
多數算力攻擊
Mempool Eviction
交易驅逐策略
Standardness
交易標準性規則
UTXO Set
UTXO 集合管理
Block Validation
區塊驗證流程
Median Time Past
中位時間過去
TX Weight
交易權重計算
Key Path
Taproot 密鑰路徑
Script Path
Taproot 腳本路徑
Pay-to-Anchor
P2A 輸出類型
SIGHASH_ANYPREVOUT
APO 簽名雜湊
Tagged Hashes
標籤雜湊函數
X-Only Pubkeys
32 字節公鑰格式
Leaf Versions
Taproot 葉子版本
Taproot Annex
見證附加欄位
2 開發者 API
RPC 接口指南
配置、認證、調用方法
錢包 RPC
地址、交易、簽名
區塊鏈 RPC
區塊、交易、UTXO 查詢
網路 RPC
節點、Mempool、手續費
PSBT
部分簽名、多簽協作
Wallet Descriptors
輸出描述符、錢包備份
Miniscript
結構化腳本、可組合合約
TxIndex
交易索引
CoinStatsIndex
UTXO 集統計索引
REST API
HTTP REST 接口
ZeroMQ
實時事件通知
GetBlockTemplate
礦池區塊模板
ScanTxOutSet
UTXO 集掃描
Bitcoin CLI
命令行工具
Mining RPC
挖礦相關接口
Sign Message
消息簽名驗證
Bumpfee
提高交易手續費
Rescan Blockchain
重新掃描區塊鏈
3 網路協議
P2P 協議概覽
握手、連線類型、BIP-324
訊息類型
控制訊息、數據傳播
節點發現
DNS Seeds、地址管理
Compact Blocks
BIP-152、區塊中繼優化
BIP-324
v2 加密 P2P 傳輸協議
Bloom Filters
BIP-37、SPV 過濾(已棄用)
Compact Block Filters
BIP-157/158、Neutrino
Erlay
BIP-330 頻寬優化
Package Relay
交易包中繼
Tor Integration
匿名網路整合
Banlist
節點封禁機制
Blocks Only
僅區塊模式
AddrMan
地址管理器
Block-Relay-Only
僅區塊中繼連接
Peer Management
節點連接管理
I2P Integration
I2P 匿名網路
CJDNS
加密網狀網路
Block Download
區塊下載策略
Network Traffic
網路流量管理
Node Security
節點安全配置
Network Magic
網路魔數識別
ASMap
自治系統映射
Block Locator
區塊定位器
Feefilter
費率過濾消息
Sendcmpct
緊湊區塊協商
WTxIdRelay
見證交易 ID 中繼
Getaddr & Addr
地址發現消息
Inv Message
庫存通告消息
Getdata Message
數據請求消息
Ping & Pong
連接保活與延遲
Version Handshake
版本握手協商
Getheaders
區塊頭請求消息
Sendheaders
區塊頭推送模式
Headers Message
區塊頭回應消息
Notfound
數據不存在通知
Mempool Message
Mempool 請求消息