Satoshi Nakamoto:bitcoin——a Peer To Peer Electronic Cash System@2008
Bitcoin:點對點電子現金系統 – 主要論點闡述
本文件《Bitcoin:點對點電子現金系統》由中本聰(Satoshi Nakamoto)撰寫,提出了一種革新的電子支付系統架構。其核心目標是創建一個「純粹點對點」的電子現金系統,允許使用者之間直接進行線上支付,而無需依賴任何金融機構等受信任的第三方。論文詳細闡述了為何需要這樣一個系統,以及如何透過一系列巧妙結合的密碼學技術和分散式網路機制來實現它。
以下是這份白皮書的主要論點及其詳盡解釋:
1. 點對點交易,擺脫對受信任第三方的依賴:
- 傳統問題: 論文開篇指出,現有的網際網路商業模式幾乎完全依賴金融機構作為處理電子支付的受信任第三方。儘管這種模式在大多數情況下運作良好,但它存在固有的弱點,源於對信任的依賴。
- 弱點分析: 信任模型導致交易無法真正做到「不可逆」,因為金融機構總是可以介入協調爭議。這種協調增加了交易成本,限制了小額支付的可行性,並廣泛影響了為不可逆服務進行不可逆支付的能力。交易可逆性的存在也增加了商家的風險,迫使他們對客戶保持警惕。欺詐損失被視為不可避免的一部分成本。這些在線支付的成本和不確定性,在使用實體貨幣進行面對面交易時是不存在的。
- Bitcoin的解決方案: 論文認為,需要一種基於密碼學證明而非信任的電子支付系統。這樣的系統能讓任何兩個有意願的當事人直接進行交易,無需受信任的第三方介入。透過計算上不可行的逆轉方式來保護賣家免受欺詐,同時也可透過例行的託管機制保護買家。
2. 解決雙重支付問題是實現點對點電子現金的關鍵:
- 雙重支付定義: 在電子貨幣系統中,雙重支付(Double-spending)是指同一筆數位貨幣被花費兩次或多次的問題。由於數位資訊易於複製,沒有適當的機制,數位貨幣的擁有者可以輕易地創建一個副本並同時發送給不同的接收者。
- 傳統解決方案的不足: 傳統上,解決雙重支付的方法是引入一個中心化的權威機構(如銀行或鑄幣廠),由它來驗證每一筆交易,確保同一筆錢沒有被重複花費。然而,這種方案恰恰回到了依賴受信任第三方的模式,與創建點對點系統的初衷相悖。整個貨幣系統的命運將取決於營運這個中心機構的公司。
- Bitcoin的挑戰: 在沒有中心化機構的情況下,收款方如何確認支付方沒有將同一筆錢同時支付給了其他人?要做到這一點,收款方必須知曉所有已發生的交易,並能夠確定支付給自己的那筆交易是針對該特定「電子硬幣」的第一筆花費。這需要在參與者之間對交易的順序達成共識。
3. 透過分散式時間戳記伺服器建立交易的歷史紀錄:
- 時間戳記概念: 論文提出了使用分散式時間戳記伺服器來解決雙重支付問題的方案。一個時間戳記伺服器的工作原理是對一塊(block)項目(在這裡是交易)的雜湊值進行時間戳記並廣泛發布。這個時間戳記證明了在該時間點,這些資料(交易)必然已經存在。
- 區塊鏈結構: Bitcoin的系統中,每個新的時間戳記都會在其雜湊中包含上一個時間戳記的雜湊,形成一個時間戳記鏈條。這個鏈條的建立使得後面的時間戳記會強化前面的時間戳記,使得改變過去的記錄變得極其困難。這構成了「區塊鏈」的基本概念。
4. 工作量證明 (Proof-of-Work) 是分散式時間戳記和共識的基石:
- PoW 機制: 為了在點對點基礎上實現分散式時間戳記伺服器,論文採用了類似 Adam Back 的 Hashcash 的工作量證明系統。工作量證明要求在一個區塊的雜湊值中找到一個滿足特定條件的值(例如,雜湊值開頭包含一定數量的零位)。找到這樣的雜湊需要消耗大量的計算力,但驗證其正確性卻非常容易(只需執行一次雜湊計算)。
- 不可篡改性: 一旦某個區塊經過計算找到了符合工作量證明條件的雜湊,就意味著為這個區塊投入了大量的計算資源。如果想要修改這個區塊中的任何資料(例如,更改一筆交易以實現雙重支付),就必須重新進行工作量證明計算,以產生一個新的雜湊。由於後續的區塊是連結在前一個區塊之上的(透過包含前一個區塊的雜湊),改變一個舊區塊將需要重做該區塊及其之後所有區塊的工作量證明。隨著鏈條的增長,這將變得計算上不可行。
- 一CPU一票與最長鏈原則: 工作量證明還解決了在分散式系統中如何確定多數決策權的問題。如果採用「一IP一票」,攻擊者可以輕易地獲取大量IP位址來操控投票。工作量證明實際上是「一CPU一票」。多數決策由擁有最大工作量證明總量的鏈條來代表,即「最長鏈」。只要誠實節點掌握了多數的CPU算力,他們就能以更快的速度擴展誠實鏈,並超越任何攻擊者試圖創建的競爭鏈。
- 難度調整: 為了適應硬體速度的提升和網路參與度的變化,工作量證明的難度會定期調整,目標是維持平均每小時產生固定數量的區塊(約為10分鐘一個區塊)。如果區塊生成速度過快,難度會增加,反之則下降。
5. 簡單而健壯的網路協定:
- 核心流程: 論文概括了網路運行的步驟:新交易被廣播到所有節點;每個節點將新交易收集到一個區塊中;每個節點為其區塊尋找困難的工作量證明;找到證明的節點將其區塊廣播出去;節點只接受包含有效且未被花費過的交易的區塊;節點透過在其接受的區塊之上建立下一個區塊來表示對該區塊的接受,使用其雜湊作為前一個雜湊。
- 共識和分叉處理: 節點始終認為「最長鏈」是正確的歷史紀錄,並會努力在其基礎上延伸。如果兩個不同的有效區塊被同時廣播導致鏈條暫時分叉,節點會先在接收到的第一個區塊上工作,但也保留另一條分支。當其中一條分支透過找到下一個工作量證明而變得更長時,所有節點都會轉移到更長的鏈上工作,從而解決分叉,達成共識。
- 容錯性: 網路協定設計得非常簡單和容錯。交易廣播不需到達所有節點,只需到達足夠多的節點即可被打包進區塊。區塊廣播也能容忍訊息丟失,節點在接收到後續區塊時會發現遺漏並請求未接收到的區塊。節點可以隨時加入或離開網路,並在重新加入時透過下載最長的工作量證明鏈來同步期間發生的歷史記錄。
6. 激勵機制確保網路安全和去中心化發行:
- 發行新幣 (挖礦獎勵): 為了激勵節點支持網路並提供計算力,協定規定每個區塊的第一筆交易是一筆特殊交易,用於生成新的電子硬幣並歸屬於創建該區塊的節點。這提供了一種將新幣引入流通的方式,類似於黃金礦工耗費資源開採黃金。這種發行方式是去中心化的,不需要一個中央機構來發行貨幣。
- 交易費用: 除了新幣發行,交易還可以包含交易費用(交易輸出總額小於輸入總額的差額),這筆費用也會加到創建該區塊的節點的收入中。隨著新幣發行量逐漸減少(或停止),交易費用將成為節點維護網路的主要激勵。
- 激勵誠實行為: 激勵機制也有助於鼓勵節點保持誠實。論文認為,即使一個貪婪的攻擊者擁有了超過所有誠實節點總和的CPU算力,他也必須權衡是利用這些算力進行欺詐(例如雙重支付奪回自己的錢)還是按規則工作以獲得新幣和交易費用。通常情況下,按規則工作、創造新區塊並獲得系統獎勵會更為有利可圖,因為破壞系統的有效性也會損害其自身持有的貨幣價值。只要攻擊者不控制壓倒性的算力優勢,按規則挖礦的回報會大於通過欺詐可能獲得的短期利益。
7. 其他重要論點(支援核心機制的細節):
- 磁碟空間回收(Merkle Trees): 為了應對區塊鏈資料量的增長,論文提出使用默克爾樹(Merkle Tree)來組織區塊內的交易。區塊頭只需要包含默克爾樹的根雜湊。這樣,舊區塊中已被花費且被足夠多後續區塊確認的交易,其數據分支可以被修剪掉,只保留區塊頭和默克爾根,大大減少所需的儲存空間。
- 簡化支付驗證 (SPV): 使用者無需運行一個完整的節點來驗證支付。他們只需要保存最長工作量證明鏈的區塊頭副本,並透過查詢網路節點獲取與其交易相關的默克爾分支。雖然這種方法無法獨立驗證所有交易的有效性,但透過將交易鏈接到最長鏈的區塊中,可以證明該交易已被大多數網路算力(通過接受包含該交易的區塊並在其之上延伸)所接受。這種方法依賴於誠實節點控制多數算力的假設,在攻擊者掌握多數算力時存在被欺騙的風險,但仍為資源有限的客戶端提供了實用性。
- 交易結構(輸入與輸出): 為了靈活處理價值,交易被設計為可以包含多個輸入和輸出,允許將多個小額資金合併,或將一筆大額資金分割為支付給接收方和找零給發送方的部分。
- 隱私模型: 不同於傳統銀行透過限制資訊存取來保護隱私,Bitcoin的隱私保護是透過保持公鑰(地址)的匿名性來實現的。交易本身是公開的,任何人都可以看到金額和發送/接收地址,但這些地址與現實世界身份的連結是斷開的。建議每次交易使用新的公鑰/地址,以避免交易被連結到同一所有者,進一步增強隱私。
總結:
總而言之,中本聰的白皮書核心論點在於,透過結合數位簽章、分散式時間戳記、工作量證明和點對點網路,可以創建一個無需依賴受信任第三方即可運行的電子現金系統。這個系統利用計算力來強制執行交易的順序和歷史的不可篡改性,並透過經濟激勵來協調網路參與者的行為。只要誠實節點 collective 掌握多數的 CPU 算力,系統就能維持其安全性和去中心化特性,有效解決雙重支付問題,為實現點對點的電子商業開啟了新的可能性。
comments
comments for this post are closed