比特幣安全性初探(上篇)基礎架構與密碼學原理
徐令予 |撰文
一周前,我撰寫了《150 億美元比特幣被盜案的真相》,對比特幣係統的安全性進行了簡單介紹。文中指出,比特幣所依賴的密碼學算法與區塊鏈結構在整體上是安全穩固的,所謂“150 億美元比特幣被盜”事件,並非源自密碼學算法被攻破,而更可能是由低級技術錯誤或機構內部管理不善所引發。
該文發表後,一些讀者反映,由於缺乏對比特幣基本原理的了解,閱讀時難免產生內容跳躍之感,對文中觀點的理解與接受也造成困難。同時,亦有多位朋友建議,針對比特幣的基礎概念與安全設計,補充一篇更為係統且通俗易懂的科普文章,應該會受到更多讀者的歡迎。
這正是撰寫這篇文章的緣起。
事實上,盡管比特幣已廣為人知,卻對它到底是什麽、如何保存、如何交易、為何安全,仍然模糊不清。本篇將以盡量通俗的方式介紹比特幣的基本概念,隻要讀完本文的上篇,你就具備了理解比特幣的必備知識。
一、比特幣不是“賬戶和餘額”,它更像是“有序列號的紙幣”
比特幣資金不是存放在銀行係統的賬戶餘額,而是由一個個的數字化錢幣“UTXO”組成,這是理解比特幣的關鍵。
UTXO,即未花費交易輸出(Unspent Transaction Output),指的是已收到但尚未花費的數字化紙幣,它是區塊鏈上記錄的一條仍未被引用的交易輸出。UTXO 很像數字錢包中的單張紙幣,而您的比特幣總餘額則是您擁有的所有紙幣(UTXO)麵值的總和。
你可以把每個 UTXO 理解成一張紙幣:
每個 UTXO 都有一個固定麵額(例如 0.015 BTC);
每個 UTXO 都有一個地址,這個地址確定了 UTXO 的“歸屬權”。地址可以理解為紙幣上印的序列號,你知道多少個地址,如同手中握有了多少張有確定序列號的紙幣。
UTXO不可拆開使用,就像紙幣不能撕掉一半花出去。當您發送加密貨幣時,必須交付一個或多個 UTXO ,係統會為收款人創建一個新的 UTXO,並為您收到的任何“找零”創建另一個新的 UTXO。
請注意,這是UTXO和紙幣的最大區別:一張紙幣本身可以用於多次交易(你花給別人、別人再花給別人),某個序列號的紙幣在交易中可以反複使用,它可以歸屬於不同的主人。但一個 UTXO 在比特幣裏是“一次性用品”,花費後即徹底失效。每個UTXO 在交易結束後就被廢棄,它從一而終,一仆不事兩主。
二、比特幣和區塊鏈
區塊鏈是一個巨大的、不可篡改的曆史賬本,記錄所有過去發生過的所有交易,包括:
區塊鏈通過密碼學哈希函數和分布式共識機製,將交易按區塊鏈接起來,從而保證曆史不可篡改。
基於曆史賬本數據,在係統的每個節點維護的是“當前未花費紙幣清單”,也就是 UTXO 集合。
區塊鏈就像是檔案室,保存著全部流水記錄。
UTXO 集合是最新餘額表,存放著當前每一個有效的UTXO的麵值和相對應的地址。
這兩者一起構成比特幣係統的核心結構。
區塊鏈記錄曆史 → 節點掃描曆史生成 UTXO集合 → 交易時節點隻用 UTXO
三、錢包裏存的是什麽?不是比特幣,而是“鑰匙”
許多人以為自己的比特幣保存在電腦或手機裏。事實上,比特幣的UTXO永遠存在於區塊鏈上,錢包並不保存比特幣,而是保存能動用這些UTXO的鑰匙。
錢包存放的核心內容包括:
錢包的本質是:比特幣UTXO的地址記錄,以及對這些錢幣的所有權提供憑證。
四、A 給 B 支付比特幣的完整過程
步驟 1:B 給 A 一個地址
B 打開錢包,生成一個新的地址,通過電郵或其它網絡社交軟件發給 A。
步驟 2:A 在錢包中填寫金額並發起支付
A 輸入金額,例如 0.01 BTC。錢包自動選擇屬於A 的某個 UTXO,例如一個0.02 BTC 的 UTXO(就像在真實錢包中拿出一張紙幣)。
步驟 3:構造交易
錢包自動構造交易:
步驟 4:廣播交易
交易被發送到比特幣網絡。各節點檢查簽名是否有效、UTXO 是否存在。
步驟 5:礦工更新區塊鏈
礦工將這筆有效交易寫入新的區塊。當區塊被確認後:
錢包更新餘額,交易完成。
五、本篇總結
以上這些內容是理解比特幣係統運作的基礎。
下篇將對比特幣的安全問題作更深入的探討,內容包括:
徐令予 作於南加州 (2025年11月23日)