在這篇原題 There's No Good Reason to Trust Blockchain Technology 的文章中,Bruce Schneier 指出區塊鏈號稱可以用技術取代人類社會的信任,但實際上驗證(verification)並不等於信任(trust)。
他呼籲大家勿盲目相信區塊鏈,批評需要准入機制的私有區塊鏈毫無意思,也說如比特幣、乙太坊這類開放的公有區塊鏈亦毫無用處。若問「你需要一個公有區塊鏈嗎?」,「答案幾乎是不。」因為區塊鏈可能無法解決任何你認為可用它來解決的安全問題。而它所解決的安全問題則可能並非你所需解決的。
Bruce Schneier的全文如下:
我們沒有任何好的理由去信任區塊鏈技術
在他首次提出比特幣的2008年的白皮書中,匿名的中本聰總結道:「我們已經提出了一個無需依靠信任的電子交易系統。」他所指的便是區塊鏈——支撐比特幣的系統。規避信任是一個偉大的承諾,然而事與願違。誠然,比特幣去除了特定的仲介——就像內嵌於其它交易系統,如信用卡中的那樣的。但是你仍然必須去信任比特幣,以及關乎它的一切事物。
很多人已經撰寫過關于區塊鏈本身及其對信任的替代,重塑或者去除。但當你分析區塊鏈與信任的關係時,你很快就會意識到那些文章所言,炒作意味遠高於其價值。區塊鏈作為去信任的解決方案,往往比它所要取代的物件要糟糕得多。
首先要給出一個警告(caveat),當本文提及區塊鏈時,是指一些非常具體的東西:構成公有區塊鏈的資料結構和協定。它們有三個基本要素。第一個是分散式(有多個備份)但又中心化(只有一個總的)帳本,這是一種記錄發生了什麼事情和事情以怎樣次序發生的方式。這份帳本是公共的,意味著任何人都可以讀取它,以及不可篡改的,意味著沒有人可以改變其上所記錄的過往事宜。
第二個要素是共識演算法,即確保所有的帳本都是相同的機制。其通常被稱作挖礦;該系統的一個重要部分是任何人都可以參與其中。共識演算法同樣是分散式的,意味著在共識網路中,你無需信任任一特定節點。在維護這套系統正常運行所需的能源及資料容量方面,共識演算法的成本是比較高的。比特幣有截至目前全球成本最高的共識演算法。
最後,第三個要素是貨幣。這是某種具有價值並可被公開交易的數位權杖。貨幣是區塊鏈的必要元素,它可以激勵所有人參與其中。包含這些權杖的交易則被記錄在帳本上。
私有區塊鏈則毫無意思。(此處私有區塊鏈是指運用區塊鏈資料結構但並無以上三要素的系統。)通常來說,私有區塊鏈對使用者有外部的准入限制。這些並非什麼新奇的東西;私有區塊鏈是分散式的附加資料結構,其中包含一個有權加入其中的個人的列表。在分散式系統領域,共識機制已經被研究了超過60年的時間。附加資料結構的研究時間也大致如此。它們只是名義上的區塊鏈,並且據我所知去做區塊鏈的唯一原因是借著區塊鏈炒作。
公有區塊鏈的所有三個元素作為一個單獨的網路組合在一起,提供新的安全屬性。問題是:它真的有什麼用嗎?這完全是一個信任的問題。
人類社會的信任含義複雜,勿把驗證等同信任
信任之於社會至關重要。作為一個物種,人類相互信任。脫離信任,社會無法運轉,事實上我們大多數時候甚至不會去想,這是衡量信任如何運作的一個指標。
信任一詞具有很多的含義。有私人與親密的信任。當我們說我們信任一位朋友的時候,我們是指我們信任他們的行事動機,並知曉他們的動機將怎樣影響他們的行動。還有較不親密,不太私人的信任——我們可能不認識某人,也不知道他們的動機,但可以信任他們未來的行動。區塊鏈使這樣的信任變得可能:比如我們不認識任何一位元礦工,但我們信任他們將遵循挖礦協定並使整個系統運轉。
關於信任,絕大多數區塊鏈的擁躉有一個不自然地狹隘的定義。他們喜歡這樣的口頭禪「我們信任代碼」,「我們信任數學」,「我們信任加密貨幣」。這是驗證意義上的信任,但驗證本身同信任並不相同。
在2012年,我寫了一本關於信任和安全的書,《騙子與局外人》(Liars and Outliers)。在這本書中,我羅列了四類我們人類用於激勵值得信賴行為的系統。前兩類是道德與聲譽。問題是它們只能適用於一定數量的人口。對於小的社區來說原始系統即信任與聲譽是足夠的,但更大的社區則需要委託代理,以及更多的形式主義。
第三類是機構。機構有規則與法律來促使人們依據組織標準行事,並制裁那些違規者。某種意義上,法律使聲譽正式化。最後,第四類是安全系統。這些是我們採用的各種安全技術:門鎖和高柵欄,報警系統和警衛,取證和審計系統等。
這四樣要素協同工作進而促成信任。以銀行業為例。金融機構,商人,以及個人均會在意其聲譽,這防止了偷竊與欺騙。圍繞銀行業各方面的法律與規則,包括在欺詐情況下限制風險的應急方案,使每個人都在界限內行事。 此外還有很多安全系統在運行,從防偽技術到網路安全技術。
Kevin Werbach 在2018年的新書,《區塊鏈與新的信任結構》(Blockchain and the New Architecture of Trust)中,總結了四種不同的「信任結構」。第一種是點對點的信任。這基本對應著我所說的道德和聲譽系統:成對的互信的人們。他的第二種是利維坦式(leviathan)信任,同機構信任相對應。你可以在合約系統中看到它的作用,這使互不信任的幾方可以達成協議,因為他們相信政府會幫忙處理糾紛。Kevin 的第三種是仲介信任。一個好的例子是信用卡系統,後者允許不互信的買賣雙方達成交易。他的第四種信任結構是分散式信任。這是對特定安全系統即區塊鏈的新興的信任結構。
區塊鏈的作用是使人們對他人或機構的信任轉移到技術上來。你需要相信加密學,一眾協定、軟體、電腦與網路。並且你需要絕對信任它們,因為它們通常是單節點故障。
當這種信任被證明是錯位的時,人們是無法追索其損失的。如果你的比特幣交易所被駭客攻擊,你會損失掉你所有的資產。如果你的比特幣錢包被駭客攻擊,你會損失掉你所有的資產。如果你忘記了登錄資訊,你會丟失你所有的資產。如果你智慧合約的代碼中有漏洞,你會損失掉你所有的資產。如果某人成功破解了區塊鏈的安全性,你會損失你所有的資產。在許多層面,信任技術比信任人更加困難。你願意去信任人類的法律系統,還是一些你沒有專業能力審計的電腦代碼?
區塊鏈擁躉指出更加傳統形式的信任很昂貴,例如銀行手續費。但區塊鏈信任同樣成本高昂;只是該成本是隱性的。對於比特幣來說,成本包含挖礦費用、交易手續費,以及巨大的資源浪費。
區塊鏈必須與其它傳統系統共存
區塊鏈沒有移除信任人類機構的需求。在信任方面總會存在一個鴻溝,是單靠技術難以消弭的。人們仍然需要掌控局面,並且總有在系統之外進行治理的需求。這在關於改變比特幣區塊大小,或是修復針對乙太坊的DAO攻擊的持續辯論中是顯而易見的。總是會存在覆蓋規則的需求,並且始終有永久性的規則更改能力的需求。只要硬分叉有發生的可能性(即掌控區塊鏈的人置身系統之外去改變它 ),人們就需要掌控它。
任何區塊鏈系統都必須同其它更加傳統的系統共存。舉例來說,現代銀行業的設計是可逆的。比特幣並不是。這使得兩者難以相容,結果通常是不安全的。Steve Wozniak被騙走了7萬美元的比特幣,因為他忘記了這一點。
區塊鏈技術往往是中心化的。比特幣理論上是一個基於分散式的信任機制,但實踐中這並非事實。幾乎所有使用比特幣的人都必須相信少數可用錢包中的一個,並使用少數幾個可用的交易所之一。人們必須相信軟體和作業系統以及運行的所有電腦。我們看到了對錢包和交易所的攻擊。我們已經看到了特洛伊木馬(Trojans),網路釣魚(phishing)和密碼猜測(password guessing)。犯罪分子甚至在系統中使用了用於修復手機的漏洞來竊取比特幣。
此外,在任何分散式信任系統中,都有一些後門方法可以讓集中化悄悄回歸。對於比特幣來說,只有少數幾個礦工是舉足輕重的。有一家公司提供大部分的採礦硬體。只有少數幾個占主導地位的交易所。從某種程度上說,大多數人都是通過這些集中的系統進行比特幣交易的。這也允許駭客攻擊基於區塊鏈的系統。
這些問題並非是現有區塊鏈應用的漏洞,它們根植于區塊鏈的原理中。任何對區塊鏈系統安全性的評估都必須將整個社會技術系統考慮在內。太多的區塊鏈擁躉只關注技術而忽略了其他因素。
某種意義上,人們不使用比特幣是因為人們不信任比特幣。這同加密網路或者共識協定都毫無關係。事實上,一個如果你丟失私密金鑰或下載惡意軟體就會導致你丟失生平積蓄的系統,並不值得信任。再多地去解釋SHA-256如何防止雙花也無濟於事。
類似的,某種意義上,那些使用區塊鏈的人是因為其信任區塊鏈。人們是否持有比特幣是基於聲譽;甚至對於那些謀圖快錢的投機者也是如此。人們基於聲譽,為自己的加密貨幣挑選錢包,為其交易挑選交易所。我們甚至基於演算法的聲譽來評估與信任支持區塊鏈的加密網路。
要瞭解這是如何失敗的,請看看使用區塊鏈的各種供應鏈安全系統。區塊鏈並非它們的必要功能。他們成功的原因是每個人都有一個單獨的軟體來錄入資料。儘管區塊鏈系統搭建在分散式的信任之上,人們並非必須接受它。例如,有些公司並不信任 IBM/Maersk 的系統,因為那並不是他們的區塊鏈。
你會覺得這不理智?或許是吧,但這就是信任如何運轉的樣子。它無法被演算法與協定所取代。信任遠比後兩者更具社會屬性。
儘管如此,認為區塊鏈可以某種程度上去除對信任的需求這一想法仍存。最近,我收到了一封郵件,其來自一家用區塊鏈技術實現消息安全的公司。郵件中寫道:「憑藉區塊鏈技術,正如我們已做的——去除了對信任的需求。」這種觀點表明作者誤解了區塊鏈的作用以及信任的原理。
你需要一個公有區塊鏈嗎?答案幾乎是不。區塊鏈可能無法解決任何你認為它可解決的安全問題。而它所解決的安全問題可能並非你所需解決的。(操縱審計資料可能並非你的主要安全風險。)對區塊鏈的錯誤信任本身就是一個安全風險。區塊鏈的低效,尤其是在擴展性方面,使得它可能不是一個有價值的方案。我看過很多區塊鏈應用,它們都能達到同等的安全屬性而不借助區塊鏈——當然,它們也無法有區塊鏈這個酷名頭。
坦誠地說,加密貨幣毫無用處。它們只被那些謀求快錢的投機者、不喜歡政府支持的貨幣的人以及想要通過黑市換錢的犯罪分子。
為了回答區塊鏈是否被需要的問題,問問你自己:區塊鏈有以任何有意義的方式改變了信任系統嗎,還是只是圍繞信任系統打轉?它是否只是試圖通過驗證來取代信任?它是強化現存的信任關係,還是悖離之?在新的系統中,信任是如何被濫用的,相比舊系統中潛在的濫用,前者是更好還是更糟糕?最後,如果你一點都不使用區塊鏈技術,你的系統又是怎樣的?
如果你問問你自己這些問題,可能你不會選擇公有區塊鏈的解決方案。並且這會是一件好事——尤其是當炒作消退之時。
本文係由DeepTech深科技授權刊登。原文連結:哈佛名教授:我们可能几乎不需要区块链,别错把验证当信任