跳轉到

10.3 加密貨幣與密碼學貨幣數學#

本章導言#

貨幣歷史上的每一次躍遷都解決一個信任問題:金屬鑄幣解決「成色驗證」,中央銀行解決「兌付保證」,本書 1.1 節的複利簿記(Fibonacci 1202 年書中的商人習題)則預設了「帳目可信」。問題是:若交易雙方互不信任、也沒有共同的中介,交易如何成立?密碼學家為此鋪路四十年:Chaum(1983)提出盲簽名的電子現金;Haber 與 Stornetta(1991)提出以密碼學鏈接的文件時間戳,解證「文件順序不可竄改」;1997 年 Adam Back 的 Hashcash 提出「算力證明」。2008 年 10 月 31 日,化名 Satoshi Nakamoto 的白書《Bitcoin: A Peer-to-Peer Electronic Cash System》把這些零件組合成第一個不依賴任何中介的價值轉移系統。比特幣的核心不是加密,而是共識機制的數學:以工作量證明使偽造帳本的期望成本高於收益,從而讓「算力」代替「機構」成為信任的來源。本節拆解其中的四組數學。

第一組數學:雜湊函數與工作量證明#

密碼學雜湊函數(比特幣用 SHA-256)把任意輸入壓成固定長度的指紋,具有三個性質:確定性、抗原像(無法反推輸入)、抗碰撞(極難找到同指紋的兩個輸入);且輸出在統計上近似均勻——這使「找特定指紋」變成純粹的機率抽獎。比特幣的挖礦正是抽獎:礦工將區塊候選內容與隨機數 \(n\) 拼接後雜湊,成功條件是指紋小於目標值

\[ H(\text{header} \parallel n) < \frac{2^{256}}{D}, \]

\(D\) 為難度。若指紋視為均勻分布於 \([0, 2^{256})\) ,單次嘗試成功機率為 \(1/D\) ,找到一個區塊的期望嘗試次數為 \(D \times 2^{32}\) (相對於基準難度 1 的尺度)。協議每 2016 個區塊(設計上約兩週)調整 \(D\) ,使區塊間隔維持在約 10 分鐘:難度追隨全網算力,使供給速率與需求脫鉤——這是金本位之外人類第一次實現「發行速率由數學而非主權決定」。

例題 10.3.1:某礦工算力占全網 5%。全網每 10 分鐘出一個區塊。(1) 該礦工找到一個區塊的期望等待時間為何?(2) 該礦工一天期望獲得幾個區塊?(3) 設區塊獎勵 6.25 BTC,他一天期望挖得多少?

解:(1) 全網出塊率 \(\lambda = 6\) 區塊/小時;個別礦工的出塊率為 \(0.05 \times 6 = 0.3\) 區塊/小時,期望等待 \(1/0.3 \approx 3.33\) 小時。出塊次數是泊松過程(每次嘗試獨立、微機率),相鄰兩塊的等待時間呈指數分配。

(2) 一天 24 小時:期望 \(0.3 \times 24 = 7.2\) 個區塊(實際次數呈泊松分配,標準差 \(\sqrt{7.2} \approx 2.68\) ——小礦工的收入波動極大,這正是礦池存在的原因:把泊松流池化,以 8.3 節的池化代數降低變異係數)。

(3) \(7.2 \times 6.25 = 45\) BTC/天(期望值)。

第二組數學:區塊鏈與攻擊的成本#

區塊鏈把帳本變成一條單向鏈:每個區塊標頭包含前一塊的雜湊值,因此任何歷史修改都會使後續所有指紋失效。

誠實鏈是最長鏈的規則(Nakamoto consensus)之下,攻擊者要竄改歷史,必須用私算力重挖被竄改點之後的所有區塊並追上誠實鏈。設攻擊者算力占比 \(q < 1/2\) (誠實方 \(p = 1-q\) ),從落後 \(z\) 個區塊追上 \(z\) 個區塊的機率,正是《機率統計》賭徒破產問題(本書 5.1 節隨機漫步的反射版):

\[ P(\text{攻擊成功}) = \left( \frac{q}{p} \right)^{z}. \]

例題 10.3.2:攻擊者掌握 10% 算力( \(q = 0.1,\ p = 0.9\) )。交易確認 6 個區塊後,其竄改追上誠實鏈的機率為何?若只等 1 個確認呢?

解: \(P = (1/9)^6\) 。計算: \((1/9)^2 = 0.012346\) , \((1/9)^3 = 0.0013717\) ,故 \((1/9)^6 = 0.0013717^2 \approx 1.88 \times 10^{-6}\) ,約一百八十萬分之一。僅 1 個確認時 \(P = 1/9 \approx 0.111\) ——確認數是把「攻擊機率」壓成指數小量的槓桿:每多等一個區塊,風險乘上 \(q/p\) 。交易所普遍要求 6 個確認正是這條指數曲線的工程體現。當 \(q > 1/2\) (51% 攻擊),上式發散,攻擊者終將追上——共識的安全性是算力分布的函數,不是協議文字的函數。2018 年起多個小型 PoW 幣(如 BTG、ETC)遭 51% 攻擊,驗證了這條數學的實務性。

第三組數學:金鑰與簽名#

比特幣地址的基礎是橢圓曲線 secp256k1 上的橢圓曲線數位簽名(ECDSA)。私鑰 \(k\) 是 256 位元整數,公鑰 \(K = kG\) ( \(G\) 為曲線的基準點)。安全性依賴橢圓曲線離散對數問題:由 \(K = kG\) 反推 \(k\) ,已知最佳古典演算法(Pollard rho)需約 \(2^{128}\) 次群運算——宇宙年齡的計算時間也不夠;但 Shor 演算法(1994)在足夠大的量子電腦上可多項式時間解離散對數,這是整個體系唯一的理論軟肋,也是後量子密碼學(NIST 2022 年起標準化)進入加密貨幣議程的原因。

第四組數學:發行曲線#

比特幣總量由幾何級數封頂:每 210,000 個區塊(約四年)獎勵減半,初始 50 BTC:

\[ \sum_{k=0}^{\infty} 210{,}000 \times 50 \times \left(\frac{1}{2}\right)^k = 210{,}000 \times 50 \times 2 = 21{,}000{,}000 \ \text{BTC}. \]

供給曲線是嚴格的遞減階梯,永不加速——與中央銀行的逆週期發行(本書 6.2 節均數回復的政策邏輯)形成極端對照:一個是演算法鐵律,一個是政策反應函數。

前因後果與驅動關係#

驅動力:加密貨幣是四個歷史壓力的交點。一、1990 年代電子商務需要不經中介的小額支付,而銀行基礎設施成本高;二、密碼學社群(cypherpunk)長期主張隱私與去中心化,Chaum 的 ecash 因依賴發行公司而失敗——教訓是信任的最後一環仍落在機構;三、2008 年金融危機(9.3 節)以「部分準備金與納稅人紓困」的姿態重創公眾對金融中介的信任,白書的創世區塊中刻著當日《泰晤士報》頭條「財政大臣站在第二次銀行紓困邊緣」——發行時刻本身就是對危機的註解;四、雙花問題(同一筆錢花兩次)在去中心環境下無解了三十年,工作量證明以「重寫歷史的算力成本」給出第一個可行答案。

理論成熟後的反向改變:區塊鏈技術反過來改變了金融基礎設施與監管。其一,資產代幣化:債券、基金、甚至 10.2 節拍賣出的頻譜使用權,開始以鏈上代幣結算,清算時間從 T+2 壓到分鐘級;其二,穩定幣與 CBDC:各國央行研究數位貨幣,本質是「把共識機制裝回主權框架」;其三,監管數學化:洗錢追蹤依賴圖論分析(鏈上帳本是公開圖結構)、市場監控依賴異常偵測——監管者第一次可以直接讀取全量交易資料,這反過來使隱私技術(零知識證明)成為研究前沿。與本書其他章節:工作量證明是 9.1 節「攻擊成本」邏輯的鏡像——龐氏方案靠負債複利發散而必亡,工作量證明靠攻擊成本指數增長而可續;挖礦的池化直接套用 8.3 節方差代數;出塊泊松過程與確認的指數衰減是 5.1 節隨機過程的直接應用;總量 2,100 萬的幾何級數是 1.1 節複利與 1.2 節永續年金( \(\ddot{a}_\infty = 1/i\) 型)的離散版。與兄弟書:《管理的數學》第 4 章排隊論描述礦池作業與交易費市場的擁塞定價;《會計的數學》第 1 章的複式簿記在此對應「UTXO 模型」(每筆支出引用未花費的輸入,帳目自證平衡);《經濟的數學》第 8 章的貨幣與成長理論,是評估「固定供給貨幣」總體後果(通縮壓力、囤積動機)的分析框架;而《經濟的數學》第 6 章賽局論,正是共識機制的正式語言——挖礦是一場全網連續賽局,納許均衡就是「誠實挖礦」。

練習#

  1. 用例題 10.3.1 的參數:某礦池占全網 30%。求其出塊間隔的期望與標準差(指數分配),並計算一天出塊數的期望與標準差(泊松),驗證池化前後變異係數的差異。
  2. \(q = 0.3\) 的攻擊者:計算 1、3、6 個確認下的成功追趕機率 \((q/p)^z\) ,並求「要使攻擊機率低於 0.1% 至少需要幾個確認」。
  3. 比特幣第 4 次減半後(2024 年)區塊獎勵為 3.125 BTC。計算此後尚可挖出的總量,並驗證全歷史累積發行逼近 2,100 萬。
  4. 某鏈將區塊間隔從 10 分鐘縮短到 15 秒。用 \(P = (q/p)^z\) 討論:同樣等 10 分鐘,安全性如何變化?為何短區塊間隔通常需要更大的確認數?
  5. 思考題:工作量證明的安全性來自「攻擊成本高於收益」,但若攻擊的收益不來自協議內(例如做空該幣、或攻擊者的目標是摧毀而非獲利),成本收益分析如何失效?請比較:這與 9.2 節中「投資組合保險假設被自身規模打破」有何同構之處?

名詞速查表#

  • 雜湊函數:確定、抗原像、抗碰撞的壓縮函數;SHA-256。
  • 工作量證明(PoW):以雜湊抽獎分配出塊權,重寫歷史需重付算力成本。
  • 雙花:同一筆數位資產被支付兩次;去中心化記帳的核心難題。
  • Nakamoto 共識:最長(最重)鏈規則;確認數 \(z\) 下攻擊機率 \((q/p)^z\) 。
  • ECDSA / secp256k1:橢圓曲線數位簽名體系;安全基於離散對數困難性。
  • 減半:每 210,000 區塊獎勵減半,總量收斂於 2,100 萬 BTC。
  • 51% 攻擊:過半算力可持續重寫鏈,共識安全性瓦解。

進階研讀:共識數學的三個深化場景#

場景一:難度調整是反饋控制系統。協議每 2016 個區塊按「實際耗時 / 目標耗時(兩週)」的比例重設 \(D\) 。這是一個離散比例控制器:算力暴增時出塊加速,兩週後 \(D\) 上調回到 10 分鐘節奏。控制的代價是兩週的滯後:2013 與 2017 年礦機換代期間都出現過出塊速率短暫失控。設計取捨在於頻率:調整太頻繁則單次調整誤差放大波動,太稀疏則滯後期失真——與《管理的數學》第 7 章品質管制的抽樣頻率問題同構。

場景二:礦池與「去中心化」的再中心化。礦池把泊松收入池化(8.3 節代數: \(n\) 個獨立泊松流合併,CV 以 \(1/\sqrt{n}\) 縮小),使小礦工的收入波動可控。但池化在算力空間製造了新的集中:單一礦池的算力占比曾接近 50%,共識的安全假設( \(q < 1/2\) 且分布分散)瀕臨失效。協議層無法解決(雜湊算力是私人物品),實務解是社會性的:礦池份額公開可查,過度集中會觸發用戶遷移——安全是數學與治理的合資企業。權益證明(PoS)則把 \(q\) 換成持幣比例,攻擊成本從電費變成資本機會成本,安全分析的骨架 \((q/p)^z\) 思想仍可平移。

場景三:交易費市場的擁塞定價。區塊容量有限(約 1 MB,後經 SegWit 與 Taproot 調整),當交易需求超過容量,用戶以費用競標區塊空間——這是一個拍賣(10.2 節):每次出塊是一次密封出價的「第二價式」清空(付費取入塊門檻附近),需求隨機(泊松),供給隨機(指數間隔),形成一個隨機的排隊與定價系統。2017 年與 2021 年的費用尖峰是擁塞定價的實證:容量上限 + 隨機需求 = 波動的手續費,這條數學把加密貨幣的「自由使用」夢想拉回《管理的數學》第 4 章排隊論的地心引力。

深化問答三則#

問:為什麼說比特幣的核心創新不是密碼學而是機制設計? 答:白書使用的每一件密碼工具(雜湊、簽名、Merkle 樹、時間戳鏈)在 1990 年代都已在文獻中。真正的難題是協調問題:在無中介環境下,節點如何對「哪條是合法鏈」達成一致、且沒有人有動機偏離?Nakamoto 的答案是組合創新——把 PoW 的「算力成本」與最長鏈規則的「激勵對齊」綁在一起,使誠實挖礦成為納許均衡(與《經濟的數學》第 6 章賽局論的語言一致)。這與 10.2 節拍賣設計同屬機制設計:用規則製造合作。

問:確認數 6 有什麼特別之處? 答:沒有數學上的特殊性——它只是 2008 年硬體水準下(攻擊者需約 10% 算力才現實可行)把攻擊機率壓到 \(10^{-6}\) 量級的慣例選擇。一般規則:需要 \(z \ge \ln(\text{可容忍機率})/\ln(q/p)\) 。攻擊者占比越低,所需的確認越少; \(q = 0.05\) 時 3 個確認已把風險壓到 \(10^{-4}\) 。安全參數永遠應該根據當下的攻擊者模型重新計算,而非抄襲慣例——這是所有安全工程的通則。

問:比特幣的「固定發行」與本書 6.2 節的均數回復利率,哪個更接近貨幣的本質? 答:兩者回答不同的問題。均數回復描述的是政策反應函數:央行以利率逆週期調節(經濟過熱升息、衰退降息),貨幣供給是穩定工具;固定發行則是規則承諾:以演算法消除政策裁量,代價是放棄逆週期調節。貨幣經濟學的長期辯論(規則 vs 裁量)在這裡被寫進了代碼——比特幣是規則派的極端實現,其通縮傾向(《經濟的數學》第 8 章的分析)正是放棄裁量的大宗成本。兩者不是對錯,是不同的制度選擇。

(本節完)