什麼是白皮書?比特幣指南
Learn what whitepapers are in crypto, how hashing works, and why Bitcoin's whitepaper matters. Technical guide with real examples.
如果您一直在研究加密貨幣,並遇到一份稱為白皮書的文件,卻在其中發現諸如「雜湊」(hashing)和「工作證明」(proof of work)等術語散佈在技術章節中,那麼您來對地方了。大多數資源都會在不同的文章中解釋白皮書和雜湊,讓讀者自行聯繫這些概念。本文將它們視為本來的樣貌:兩個本應在一起的概念,並以比特幣的白皮書作為連結兩者的線索。
在你讀完這篇文章後,你將能夠定義雜湊、真正理解地閱讀加密貨幣白皮書的技術部分,並在評估任何專案的密碼學聲明時賣出正確的問題。
什麼是白皮書?
白皮書是一份正式文件,旨在以足夠的技術細節解釋一項技術、提案或系統,供讀者進行獨立評估。在加密貨幣領域,白皮書是專案的奠基技術文件:它描述了專案所解決的問題、提出的解決方案,以及該解決方案運作的具體機制,包括加密方法、共識設計和協定架構。
對於加密貨幣項目,白皮書是其技術實質所在,要麼存在,要麼不存在。投資者藉此評估項目的主張是否基於真實的工程技術。開發者藉此在基於其進行開發之前理解協議。
商業領域 vs. 加密貨幣領域的白皮書
「白皮書」一詞在政府和商業領域已使用了數十年,用於描述具有說服力或資訊性的政策文件。政府白皮書可能會概述擬議的立法,而科技公司的白皮書則可能主張某種特定的企業軟體處理方法。
加密貨幣白皮書是另一種類別。它們的功能更接近技術規格,而非行銷材料。一份加密貨幣白皮書不會試圖向您推銷產品;它以精確的術語描述系統是如何建構的,以及為何做出那些設計選擇。有些專案也會發布一份「簡介文件」(lite paper),作為為一般大眾準備的較短且技術性較低的摘要,但白皮書本身是主要的技術參考文件。
加密貨幣白皮書通常包含什麼內容
大多數加密貨幣白皮書無論其項目為何,都遵循可辨識的結構。一份架構完善的白皮書通常包含:
- 問題陳述: 該專案旨在解決的特定問題
- 擬議解決方案: 高層次的方法以及它為何能解決該問題
- 技術架構: 加密機制,包括雜湊演算法與共識設計;比特幣白皮書的技術章節涵蓋了雜湊(用於工作量證明和區塊連結)以及加密貨幣中的數位簽章(以證明交易所有權)
- 代幣經濟學: 該專案的原生代幣在生態系統中如何發行與分配(如適用)
- 路線圖: 開發時間表及計劃的里程碑
- 團隊背景: 誰正在構建該系統以及其相關背景為何
技術架構章節的品質與具體程度,通常是判斷一個專案的聲明是否具有實質內容最明確的訊號。
什麼是雜湊?
雜湊處理是一種將任意資料透過數學函數,產生固定長度字串(稱為雜湊值)的過程。無論輸入單個詞彙或整個資料庫,輸出的長度始終相同。將雜湊值視為資料的數位指紋:它能唯一識別原始輸入,但其中不包含任何可恢復的原始資料版本。
在區塊鏈系統中,雜湊並非一項次要的功能。它是使交易具備可驗證性、區塊具備防篡改性,以及挖礦在計算上保持公平的機制。比特幣白皮書將其整個安全模型建立在加密雜湊的特性之上。
雜湊實際上是什麼樣子
要理解雜湊 (hash) 是什麼,最簡單的方法就是直接看到它。以下是單詞 "hello" 的 SHA-256 雜湊值:
輸入: hello 輸出:2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
那串 64 個字元的字串就是每次您對 "hello" 這個詞執行 SHA-256 時產生的結果。現在觀察當一個字元改變,將 "H" 改為大寫時會發生什麼:
輸入:你好 輸出:185f8db32921bd46d35490c1c5a4e7f7cfe0f5f98d9f4b19e9e97cef68c45de0
這兩個輸出在視覺上沒有任何共同點,儘管輸入僅因一個字元的大小寫不同。這種行為被稱為雪崩效應,它是使密碼雜湊能夠作為安全機制運作的定義性特徵之一。
[建議圖示:雜湊輸入/輸出流程,顯示「hello」進入 SHA-256 函式並產生 64 個字元的十六進位字串輸出。]
hash 輸出本身,那個 64 個字元的字串,有時被稱為 hash 值或雜湊值。在精確的技術寫作中:hashing 是過程,hash 函數是演算法,而 hash(或 hash 值)是輸出。在日常對話中,這些術語經常被互換使用,一旦區別清楚,這種簡稱是可以的。
加密雜湊函數的五個特性
雜湊屬於密碼學,即透過數學技術保護資訊的科學。並非所有雜湊函數都屬於密碼學。例如,軟體資料結構中使用的雜湊表,便使用非密碼學的雜湊,以速度而非安全性為優化目標。區塊鏈系統中使用的雜湊函數必須滿足五種特定屬性。
| 屬性 | 意義 | 微型範例 |
|---|---|---|
| 確定性 (Deterministic) | 相同的輸入永遠會產生相同的輸出 | "hello" 永遠產生 2cf24dba...,沒有任何變化 |
| 單向性 (抗原像性) | 您無法反向破解雜湊值以還原原始輸入 | 得知 2cf24dba... 無法讓您找到回推至 "hello" 的路徑 |
| 固定長度輸出 | 無論輸入大小為何,都會產生相同長度的輸出 | 單個單字和 500 頁的檔案使用 SHA-256 都會產生 64 個字元的字串 |
| 雪崩效應 (Avalanche effect) | 輸入的微小變化會產生截然不同的雜湊值 | 將 "hello" 改為 "Hello" 會產生完全不同的 64 個字元輸出 |
| 抗碰撞性 (Collision resistant) | 在計算上幾乎不可能找到兩個不同的輸入來產生相同的雜湊值 | 目前不存在實際的方法可以找到另一個雜湊值同樣為 2cf24dba... 的字串 |
這五項特性協同作用,使得加密雜湊能夠作為安全工具。移除其中任一項,安全模型即告瓦解。
比特幣白皮書與雜湊
2008 年 10 月,一份長達九頁的文件出現在一個密碼學郵件清單上,標題為 Bitcoin: A Peer-to-Peer Electronic Cash System。其作者署名為中本聰 (Satoshi Nakamoto),而他的真實身份至今仍是一個謎。中本聰約在 2010 年至 2011 年間從公眾通訊中消失,留下了一個完整的運作系統以及描述該系統的白皮書。您可以在 bitcoin.org/bitcoin.pdf. 閱讀原始文件。
比特幣的白皮書是關於加密貨幣專案如何使用雜湊 (hashing) 作為核心技術機制的最佳範例,這也是為何「雜湊」一詞會在任何嚴謹的加密貨幣討論中頻繁出現的原因。
完整引用:Nakamoto, S. (2008)。《比特幣:一種點對點的電子現金系統》。
問題:雙重支出
比特幣白皮書在開篇即指出數位貨幣的一個特定問題。與實體幣種不同,數位檔案是可以被複製的。這產生了雙重支付的可能性:即同時將同一個單位的數位貨幣發送給兩個不同的收款人。傳統金融體系透過中心化機構(例如銀行或支付處理商)來解決這個問題,這些機構會驗證每筆交易,並確保同一筆資金不會被支付兩次。
白皮書提出了一種不同的解決方案:點對點網路,這是一個參與者直接相互連接而非透過中心化伺服器的系統,並由基於雜湊的工作量證明來保障安全。透過採用這種方法,比特幣白皮書提出了一種實現去中心化的方式,消除了任何銀行、政府或公司作為受信任中間機構的需求。
SHA-256:比特幣使用的雜湊函數
Bitcoin 的白皮書指定 SHA-256(代表安全雜湊演算法 256 位元)作為其加密雜湊函數。SHA-256 是由美國國家安全局 (NSA) 開發並由美國國家標準暨技術研究院 (NIST) 發布的 SHA-2 雜湊函數家族的一部分。「256 位元」是指其產生的每個雜湊值的長度:256 位元的數據,這轉換為上述範例中顯示的 64 個字元的十六進位字串。
比特幣在挖礦過程中連續兩次套用 SHA-256,這種設計稱為雙重 SHA-256,為抵禦某些理論性攻擊增添了一層額外的安全保障。
礦工會對一個名為區塊標頭(block header)的特定資料結構進行哈希運算。這是一個 80 位元組的結構,包含前一個區塊的哈希值、區塊中所有交易的梅克爾根(Merkle root)、時間戳記、難度目標值,以及一個名為隨機數(nonce)的變數。比特幣網路的哈希率,即全球所有礦工每秒執行的 SHA-256 計算總次數,是衡量網路整體安全性的一項指標。
工作量證明:哈希運算如何保障網路安全
工作量證明(Proof of work)是一種共識機制,此系統讓去中心化網路中的所有參與者對哪些交易有效達成一致,且它依賴雜湊(hashing)作為其核心的計算任務。比特幣礦工透過完成此流程來爭奪將下一個區塊加入鏈上:
- 組成區塊標頭,包含前一個區塊的雜湊值、梅克爾根、目前的時間戳記、網路的難度目標,以及一個從零開始的 Nonce 值。
- 對完整區塊標頭執行兩次 SHA-256 雜湊運算,產生一個 64 個字元的雜湊輸出。
- 檢查輸出是否符合難度目標。有效的雜湊值必須以特定數量的前導零開頭,例如:
0000000000000000000abc123...。所需的前導零越多,任務就越困難。 - **如果輸出不符合目標,**將 Nonce 值加一,並從步驟二重複。
- **如果輸出符合目標,**將該區塊廣播至網路。第一個找到有效雜湊值的礦工將獲得比特幣的區塊獎勵。
[建議圖示:工作量證明 nonce 迭代流程,包含區塊標頭輸入、SHA-256 雙重雜湊、前導零檢查、nonce 遞增迴圈,以及有效區塊廣播。]
Nonce(一次性使用的數字)是此過程中的變數。區塊標頭的大部分數據是固定的:前一區塊的雜湊值、梅克爾根、時間戳和難度目標都已預先確定。Nonce 是礦工唯一可以自由變更的欄位。可以將其想像成一個組合鎖的撥盤:礦工每秒嘗試數百萬種組合,直到輸出的結果符合要求的模式。
找到一個有效的雜湊值需要巨大的計算工作。驗證雜湊值是否有效只需要一次 SHA-256 計算。這種不對稱性是系統安全性的基礎:任何人都可以立即檢查答案,但沒有人可以偽造工作。
工作量證明並非目前唯一使用的共識機制。以太坊於 2022 年 9 月從工作量證明轉型為質押證明,這一過程被稱為「合併」。質押證明並不依賴重複雜湊作為其核心競爭機制。
默克爾樹:對每筆交易進行雜湊
工作量證明並非比特幣白皮書中雜湊演算法唯一出現的地方。區塊中的每筆交易也透過稱為梅克爾樹的結構進行組織,此結構使用雜湊演算法來建立所有交易的單一緊湊摘要。
將 Merkle 樹想像成一連串的收據,其中每一張收據都彙整了前兩張收據,直到最後由一張收據彙整了所有內容。以技術術語來說:
- 每筆個別交易都會經過哈希運算以產生葉節點 (leaf node)。
- 成對的葉節點哈希會被組合並再次進行哈希運算,以產生父節點 (parent node)。
- 此過程在樹中持續進行,直到頂部只剩下一個哈希值:即默克爾根 (Merkle root)。
梅克爾根(Merkle root)儲存在區塊頭中,這意味著一個單獨的 64 個字元的字串就代表並承諾了整個區塊中的每一筆交易。比特幣的區塊鏈是一個分佈式賬本,記錄了歷來進行的每一筆交易,並且該記錄被複製到全球數千台電腦上。而梅克爾根則允許每一個跟單能夠有效率地驗證交易是否包含在內,而無需處理整個區塊的數據。
[建議圖示:梅克爾樹結構,顯示葉節點為交易雜湊,父節點為合併雜湊,而梅克爾根在頂點。]
雜湊對比加密:有何不同?
雜湊與加密都是加密學工具,但它們的原理截然不同。加密的設計是為了可逆操作:你加密資料,以便授權方稍後能將其解密。雜湊的設計是為了不可逆操作:一旦資料被雜湊,就無法從輸出中恢復原始輸入。
| 屬性 | 雜湊 | 加密 |
|---|---|---|
| 可逆性 | 單向;無法還原 | 雙向;可使用正確的金鑰進行解密 |
| 輸出 | 固定長度雜湊值(例如 SHA-256 的 64 位十六進制字元) | 可變長度密文 |
| 主要用途 | 資料完整性、工作量證明、防竄改偵測 | 資料機密性、安全傳輸 |
| 是否需要金鑰 | 否 | 是 |
| 演算法範例 | SHA-256 | AES-256 |
當您需要保護數據並在稍後檢索它(例如保護傳輸中的訊息)時,加密是正確的工具。而當您需要在不儲存或傳輸原始數據本身的情況下,驗證數據是否未被更改時,雜湊(Hashing)則是正確的工具。在比特幣中,雜湊是用於區塊連結和挖礦,而非數據機密性。
為什麼雜湊對於區塊鏈安全至關重要
比特幣區塊鏈中的每個區塊都包含前一個區塊的雜湊值。這會在整條鏈上建立一個密碼學連結。如果有人修改第 500 個區塊中的一筆交易,該區塊的雜湊值就會改變。這個改變會使與第 501 個區塊的連結失效,並逐級影響後續的所有區塊。修復此問題需要重新挖掘該區塊之後的所有區塊,這意味著需要同時超越世界上所有其他礦工的總體計算能力。
這就是為什麼雜湊運算是加密貨幣安全的基石:它建立了一條加密證據鏈,且隨著每一個新區塊的加入,篡改難度也隨之增加。這種防篡改特性並非源於任何政策或機構,而是直接源自於加密雜湊運算的數學原理。
您可以透過 從區塊鏈瀏覽器檢索交易詳情, 驗證您自己已確認的交易,這些瀏覽器採用相同的雜湊原理來顯示區塊和交易數據。
比特幣之外:其他白皮書如何使用雜湊技術
比特幣的白皮書建立了一個模板,供其他加密貨幣專案遵循,其中包括將密碼雜湊函數指定為技術架構一部分的做法。不同專案在此部分做出的選擇,揭示了其設計優先事項的許多方面。
以太坊白皮書, 由 Vitalik Buterin 於 2013 年發布,提議建立一個能夠運行智能合約(自動執行的程式碼協議)的可程式化區塊鏈,超越了比特幣作為點對點支付的主要用途。以太坊的原始設計指定使用 Keccak-256(SHA-3 系列的成員),而非比特幣的 SHA-256。
| 比特幣 白皮書 | 以太坊 白皮書 | |
|---|---|---|
| 作者 | 中本聰 | Vitalik Buterin |
| 發布年份 | 2008 | 2013 |
| 雜湊函數 | SHA-256(挖礦使用雙 SHA-256) | Keccak-256 |
| 共識機制(原始) | 工作量證明 | 工作量證明 |
| 共識機制(現行) | 工作量證明 | 權益質押(合併後,2022 年 9 月) |
以太坊在 2022 年脫離工作量證明,意味著它不再依賴基於雜湊的挖礦競爭。以太坊的白皮書作為一份文件仍然具有參考價值,但實際的系統自原始發布以來已大幅更新。
專案指定的雜湊函數和共識機制是設計決策,而非預設值。理解這些選擇的含義,是作為一個具備技術知識的讀者閱讀白皮書的一部分。另一個關於主要區塊鏈專案如何描述其技術架構的範例,請參閱 Cardano 區塊鏈的結構.
如何評估白皮書的技術聲明
閱讀加密貨幣白皮書時,一旦知道技術部分該尋找什麼,就會變得更有效率。白皮書的雜湊和共識機制描述,通常是展現技術實質或暴露其不足之處的關鍵。這五個問題將幫助您在無需具備電腦科學背景的情況下,評估任何加密貨幣項目的技術架構。
該專案使用何種雜湊函數,而且該函數是否為一項廣泛採用的演算法?一份載明 SHA-256、Keccak-256 或其他有良好文件記錄的演算法的白皮書,即提出了可驗證的主張。而一份描述「專有加密機制」卻未引用先前研究的白皮書,則值得進一步審查。
白皮書是否詳細描述了共識機制,以便於獨立驗證? 一份可信的白皮書不僅應說明共識機制稱為什麼,更應闡述其運作方式:參與者要做什麼、他們因何獲得獎勵,以及如何防止他們作弊。諸如「使用先進的加密技術來保護網路」這樣的含糊說法,並非技術規格。
加密聲明在技術上是否具備連貫性? 所描述的系統是否確實解決了其聲稱要解決的問題?一個聲稱具備防竄改功能,卻未解釋過去的區塊如何進行加密連結的系統,其論點存在漏洞,細心的讀者會察覺到這一點。
白皮書是否引用了先前研究或既有標準? 比特幣的白皮書引用了雜湊函數、數位簽章以及分散式系統的先前工作。一份將所有機制都視為原創發明的白皮書,卻未引用相關技術文獻,就值得更仔細地檢視。
獨立開發者能否僅憑白皮書就複製出所述的機制? 一份發揮真正技術規範作用的白皮書,其精確度應足以讓從未看過該專案代碼的開發者,能夠根據文件實現其核心機制。如果技術章節對實現方式的描述完全模稜兩可,則該白皮書並未發揮其應有的作用。
這些問題都不需要密碼學專業知識。它們要求的是仔細閱讀技術章節,並留意作者提供的是具體、可驗證的描述,還是以自信的語氣取代了精確性。
常見問題
雜湊(Hash)看起來是什麼樣子?
雜湊(Hash)是一個固定長度的十六進位字串。使用 SHA-256,「hello」這個單字產生的雜湊值為 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824。無論輸入內容的長度如何,這個 64 字元的字串長度始終保持不變。每個 SHA-256 雜湊都會產生精確的 64 個十六進位字元。
雜湊可以被反推嗎?
不。加密雜湊函數被設計為單向的。知道雜湊輸出並不能為你提供回到原始輸入的數學路徑。這就是原像抗性(Pre-image resistance)特性。理論上你可以嘗試每一個可能的輸入,直到產生相匹配的雜湊值,但對於 SHA-256 而言,可能的輸入數量使得這在計算上是不可行的。
雜湊與加密有什麼區別?
雜湊處理是不可逆的:它將資料轉換為固定長度的字串,該字串無法解碼回原始資料。加密是可逆的:資料會使用金鑰進行轉換,而正確金鑰的授權持有者可以將其解密。雜湊處理用於驗證和防竄改偵測。加密用於機密性和安全的資料傳輸。
為什麼在區塊鏈中使用雜湊處理?
雜湊 (Hashing) 在區塊鏈中用於兩個相關的目的。首先,每個區塊都包含前一個區塊的雜湊值,建立了一條加密鏈,使得對歷史數據的任何竄改都能立即被偵測到。其次,比特幣的工作量證明系統將雜湊作為礦工必須完成的競爭性計算任務,以增加新區塊,使網路能夠抵禦任何單一勢力的操縱。
什麼是 SHA-256?
SHA-256 代表安全雜湊演算法 256 位元。這是指定在比特幣白皮書中的加密雜湊函數,由美國國家安全局 (NSA) 開發,並由美國國家標準與技術研究院 (NIST) 作為 SHA-2 系列的一部分發布。它接受任何輸入並產生一個 256 位元的輸出,該輸出表示為一個 64 個字元的十六進位字串。比特幣在挖礦過程中會連續應用兩次。
如果兩個輸入產生相同的雜湊值,會發生什麼情況?
當兩個不同的輸入產生相同的雜湊輸出時,這就稱為碰撞。密碼學雜湊函數的設計宗旨是讓碰撞在計算上不可行:找到兩個能用 SHA-256 雜湊出相同值的輸入的機率非常非常低。如果發現某個雜湊函數能可預測地產生碰撞,它就會被視為密碼學上已損壞,不適用於安全應用。
比特幣白皮書今日是否仍相關?
是的。中本聰於 2008 年發布的比特幣白皮書,至今仍是工作量證明共識設計的基礎參考,也是加密貨幣白皮書作為技術文件最常被研究的範例。比特幣網路持續使用白皮書中所述的機制運作。它共有九頁長,並可在 bitcoin.org/bitcoin.pdf. 免費取得。
誰撰寫了以太坊白皮書?
Vitalik Buterin 撰寫了以太坊的白皮書,該白皮書於 2013 年發表。該文件提出了一個可程式化的區塊鏈,能夠執行智慧合約,擴展了比特幣所引入的概念。以太坊最初使用 Keccak-256 作為其雜湊函數,並以工作量證明作為其共識機制,隨後於 2022 年 9 月轉向權益質押證明。以太坊白皮書可於 ethereum.org/en/whitepaper/.) 取得。