作者:Kalle Rosenbaum & Linnéa Rosenbaum

本章討論了 “對抗性思考(adversarial thinking )” ,這種思維方式關注的是哪個環節可能出錯、敵手可能會如何行動。我們要從討論比特幣的安全假設和安全模式開始,然後,我們要解釋普通用戶如何可以提升自己的自治能力和比特幣的全節點去中心化 —— 這次是通過對抗性思考的視角。然後,我們要觀察對比特幣的實際威脅,以及敵手的想法。最後,我們要討論 “抵抗公理(axion of resistance )”,它可以幫助你理解開發比特幣的人的起點。
在討論各種系統的安全性時,重要的是理解它們的安全假設是什麼。在比特幣中,一個典型的安全假設是 “離散算法問題是難解的”,簡單來說,它的意思是,已知一個公鑰,找出其背後的私鑰,在實用意義上是不可能的。另一個非常強的安全假設是,網絡的哈希算力中的大部分都是誠實的,意思是他們會遵守規則。如果這些假設被證明是錯的,那比特幣就遇到麻煩了。
在 2015 年,Andrew Poelstra 在香港的 Scaling Bitcoin 大會上作了演講,分析了比特幣的安全假設。他首先指出,許多系統或多或少都忽視了敵意;比如說,要保護一棟建築抵禦所有類型的敵意事件,是非常困難的。相反,一般來說我們都會接受有一定概率有人會想燒掉房子,然後通過法律強制措施以及其他措施,在一定程度上防範這樣的事件,以及其他敵意行為。
但互聯網上的事物有些不同:
然而,在互聯網上,我們沒有這樣的措施可用。在假名和匿名系統中,任何人都可能連接到任何人、可能傷害系統。如果可以故意傷害整個系統,那就會有人這麼做。我們無法假設這樣的人都在明處、都可以抓起來。
—— Andrew Poelstra,《安全假設》,Scaling Bitcoin Hong Kong (2015)
結果是,比特幣的所有已知的弱點,都必須在一定程度上妥善處理,不然,它們就會被利用。畢竟,比特幣已經成了世界上最大的 “蜜罐”(譯者注:“蜜罐” 在安全學上指公開且對敵手有吸引力的目標)。
然後,Poelstra 解釋了比特幣何以是一種新的系統;它比(舉個例子)具有明確安全假設的簽名協議更加難以捉摸。
Jemeson Lopp 在自己的個人博客裡深入討論了這一點:
事實上,比特幣協議曾經是、現在也依然是,在沒有正式定義的規範(或者說安全模式)下打造的。我們最多能做的事情就是研究系統內的行動者的激勵因素和行動,以更好地理解和嘗試描述它們。
—— Jameson Lopp,《比特幣的安全模式:深入研究》(2016)
所以,我們用的這個系統,似乎是能在實際環境中工作的,但我無法正式地證明它是安全的。也許,因為這個系統自身的複雜性,這樣的證據是找不到的。
6.1 不僅對比特幣專家有用
對抗性思考,不僅對硬核的比特幣開發者和專家有用,對普通的比特幣用戶來說,也是有一些用處的。Ragnar Lifthasir 在一條長推特中提到,圍繞比特幣的過於簡單的解讀 —— 比如說,“你只要囤幣就行” —— 可能會貶低比特幣自身;他的結論是:
為了讓比特幣和我們自身都更加強大,我們需要像給比特幣貢獻代碼的軟件工程師那樣思考。他們互相審核工作、鉅細靡遺地尋找錯誤。在他們的技術活動中,他們會討論一項提議可能出現故障的各種情況。他們會對抗性思考,他們是保守主義的。
—— Ragnar Lifthasir,推特(2020)
他把這些過度簡化的解讀稱為偏執。他想說的是,這其中藏著一種危險 —— 你只盯著一個東西,比如說,“只要囤幣”,可能就會忽視其它可以說更加重要的東西,比如安全地保管你的比特幣,以及盡你所能以免信任方式實用比特幣。
6.2 威脅
比特幣有許多已知的弱點,而且其中不少還正在被主動理由。要獲得一個基本印象,我們可以看看 Bitcoin Wiki 上的 “弱點” 頁面。該頁面列舉了許多的問題,比如錢包盜竊和拒絕服務式攻擊。
如果一個攻擊者讓他所控制的客戶端遍佈整個網絡,那麼你的全節點可能連接到的全是該攻擊者所控制的節點。雖然比特幣從不用節點的統計數據來決定任何事情,但是,將一個節點完全隔絕於誠實節點的網絡,可以大大方便執行其它攻擊。
—— 多位作者,Bitcoin Wiki
這種類型的攻擊叫做 “ Sybil attack ”,它的基本形態是一個主體控制了網絡中的多個節點,並假裝成多個實體。
(譯者注:“Sybil attack” 的常見翻譯為 “女巫攻擊”,實則翻譯為 “分身攻擊” 更貼切,下文取此譯。)
如前面的引文所說,分身攻擊在比特幣網絡中不算有效,因為網絡中沒有根據節點數量或者其它可計數的實體的投票,而只有算力投票(即挖礦,詳見章節 1.1)(中文譯本)。但是,這種扁平的結構,讓系統容易受到其它攻擊。“弱點” 頁面就列舉了其它可能的攻擊,比如信息隱藏(通常被稱為 “日蝕攻擊(eclipse attack )”;還列舉了 Bitcoin Core 軟件實現的對抗此類攻擊的啟發式措施。
以上是需要注意的真實威脅的一個例子。
為了更好地理解敵手的思維,瞭解一下他們是怎麼操作的,應該也有幫助。有個美國政府的部門叫做 “戰略情報局(Office of Strategic Services)”,在第二次世界大戰期間運作,它的目的之一是間諜活動,要執行破壞和宣傳;該部門為工作人員製作了一份小冊子,教他們如何搞破壞。這本小冊子的標題是 “簡單破壞領域手冊”,包含了潛入敵人、使他們行動艱難的具體建議。這些建議從燒燬倉庫到磨光鑽頭,無所不包,就是為了降低敵軍的效率。

- 圖 6. 節選自《簡單破壞領域手冊》 -
比如說,這個章節(圖 6)講的是潛入者可以如何瓦解敵軍的組織。不難想象,這樣的策略也能用來針對比特幣的開發流程(詳見第七章),這個流程是開放給所有人參與的。一個蓄意的攻擊者可以通過無休無止地表達不相關的顧慮、在措辭上吹毛求疵、重提已經得到全面解決的討論,來拖延開發的進度。攻擊者也可以僱傭網軍來提高效率;我們可以管這叫 “社會分身攻擊”。使用社會分身攻擊,攻擊者可以讓被提議的變更所面臨的反對看起來很多,遠超真實的反對情形。
你看,一個意志堅決的國家可以、也確實會動用一切力量來摧毀敵人,也包括從內部瓦解。因為比特幣是一種貨幣,跟已有的法定貨幣競爭,有些國家可能會將比特幣當成敵人。
Eric Voskuil 在他的 “密碼經濟學 Wiki(Cryptoeconomics Wiki)” 頁面講到了他所謂的 “抵抗公理”:
換句話說,這裡面有一個假設,是能夠抵抗國家的控制的系統是有可能存在的。因為對相似系統中的行為的實證研究,這並不被視為一個事實,而只被當成一個合理的假設。
如果你不接受抵抗公理,你在思考的就是一個完全不同於比特幣的系統。如果你假設沒有任何系統能夠抵禦國家的控制,那麼你的思考所得出的結論在比特幣的語境下就沒有意義 —— 就像球面幾何與歐幾里得幾何的結論相互矛盾一樣。如果沒有這個公理,比特幣怎麼能是免信任的、抵抗審查的呢?這種矛盾,會讓人在嘗試合理化衝突時犯下明顯的錯誤。
—— Eric Voskuil,Cryptoeconomics Wiki(2017)
他真正想說的是,只有當人們假設有可能創建國家無法控制的系統時,嘗試才會有意義。
這意味著,要在比特幣上開發,你應該接受這個公理,否則,你最好把時間花在別的項目上。知道這個公理,可以幫助你將精力集中在手上的真實問題上:圍繞國家級的敵手編寫你的代碼。換句話說,對抗性思考。
6.3 結論
一個去中心化的低通無法在系統自身以外擁有可審計性,因此,比特幣必須比傳統的系統更加嚴厲地防範惡意行為。在這樣的系統中,對抗性思考是必不可少的。
為了確保比特幣的安全,你需要知道它的敵手,以及敵手的激勵因素。絕大部分威脅,似乎都可以歸結為擁有強大經濟實力的民族國家,他們有稅收,還能印錢。他們可能不會輕易放棄自己印發貨幣的特權。


