如果我們用計算機直接代替人類發揮功能,社會擴展性依然有很大的改進空間。
原文標題:《Echo | Nick Szabo:貨幣,區塊鏈與社會可擴展性(下)》
撰文:Nick Szabo
翻譯 & 校對:Jan, Joey & 阿劍 , 閔敏
網絡安全技術的社會可擴展性
很久以前,我們使用黏土,後來使用紙,如今通過計算機和數據網絡上運行的程序和協議來實現大部分商業交易。雖然這種進步極大地改進了交易撮合和信息流動,卻導致人類對作惡行爲的防禦力下降。
隨着網絡的發展,更多對彼此行爲習慣和約束並不瞭解的人加入進來。基於根信任的訪問控制來實現的安全系統只適用於小型辦公室,例如,貝爾實驗室,裏面的工作者互相熟識,收入和支出都通過紙質流程而非辦公室計算機上的電子程序控制。然而,隨着組織機構變得更加龐大,組織邊界更錯綜複雜,以及更有價值更集中的資源(如貨幣)被委託給計算機管理時,這種安全系統變得不再高效,也不再安全。
接收越多來自陌生人的電子郵件,就越有可能受到網絡釣魚攻擊或收到惡意軟件。傳統的計算機安全系統並不具備很好的社會擴展性。正如我在《可信任計算的黎明》[7] 中描述的一樣:
當我們在蜂窩網絡或互聯網上使用智能手機或筆記本電腦時,與我們交互的另一端通常運行在其他獨立計算機上,例如網絡服務器。實際上,從架構上來說,所有這些機器都是爲了方便一個人或一羣相互瞭解信任的人控制而設計的。從遠程網絡或應用程序用戶的角度來看,這些架構建立在對某個未知的 「root」管理員完全信任的基礎上。這個管理員可以控制服務器上發生的所有事情:
他們可以任意讀取、更改、刪除或屏蔽該計算機上的任何數據。即使通過網絡加密發送的數據,最終也會被一臺受控制的計算機解密和完全掌握。使用網絡服務(實際上在這樣的網絡裏我們很容易被攻擊)意味着,我們相信計算機(或者某個控制該計算機的人,可能是內部員工或是黑客)會如實執行我們的任何命令並保護我們的付款。如果有人在另一端企圖濾掉或者篡改你的網絡指令,沒有很好的安全措施可以阻止他們,只能依靠一些不靠譜又昂貴的人爲制度,而這些制度往往走不出國家的邊界。
很多服務器對於內部人員或外部人員來說沒有足夠的攻擊價值。但是也有越來越多的服務器因爲包含有利用價值的資源而招致頻繁攻擊。基於根信任的中心化安全系統難以擴展。隨着計算機控制的資源變得越來越有價值且越來越集中,基於根信任的傳統安全機制越來越像現實世界中的「有事找警察」。幸運的是,有了區塊鏈技術,我們可以在大部分重要的計算場景中做得更好。
區塊鏈與密碼學貨幣
可擴展的市場和價格需要可擴展的貨幣。可擴展的貨幣需要可擴展的安全性,這樣更多不同的人可以使用該貨幣,同時貨幣不會失效 —— 不能僞造、 不會通脹、也不會被盜。
2009 年,以中本聰爲名的某個人或是一羣人創造了比特幣。中本聰在貨幣上的突破是通過信任最小化給人們提供了社會可擴展性:減少交易對手風險和第三方風險。中本聰使用計算成本高昂但自動化的安全系統代替計算成本低但制度成本高的傳統安全系統,很好地增加了社會擴展性。一組只需部分信任的中間機構取代了原本單一的需要完全信任的中間機構。
打了「計算興奮劑」的金融控制:區塊鏈就像由機器人組成的軍隊,互相檢查彼此的工作。
當我們可以通過計算機科學而不是傳統的會計師、監管人員、調查人員、警察和律師來保障金融網絡的最重要功能時,我們會趨向於一個自動化、全球化且更安全的系統,而不是人爲控制的、侷限於本地的且不一致的安全系統。如果我們通過正確的方式在公鏈上實現密碼學貨幣,就可以使用一大批計算機來替代傳統銀行業的大量官僚。
「通過使用計算機來維護區塊鏈,我們就能將互聯協議中最關鍵的部分放在一個更加可靠和安全的基礎上,讓我們以前不敢在全球網絡上嘗試的信託交互成爲可能。」[8]
對於區塊鏈技術,尤其是比特幣來說,最有價值的特點包括:
-
可獨立於現有機構運行
-
可無障礙地跨越國界運行
區塊鏈之所以具備這些特點,是因爲它可以在沒有人爲干預的情況下保持高水準的安全性和可靠性。如果沒有高安全性,區塊鏈將只是一種資源利用率極低的分佈式數據庫技術,依然需要依賴於當地官僚制度來保證其正常運行。
自 20 世紀中期以來,計算機的效率提高了好幾個數量級,但人類的大腦並沒有多少變化 。新的計算能力爲突破人類的極限創造了許多可能性,而隨着人類思維發揮到了極致,基於人類心智設計的制度也已經發揮到了極致。結果就是,人類沒有剩餘的心智來提升我們現有的制度了。
但如果我們用計算機直接代替人類發揮功能,社會擴展性依然有很大的改進空間。(重要提示:這個結論取決於上圖中斜線的斜率,而不是人類能力線的絕對位置。上面顯示的能力線位置是任意的,僅僅取決於我們對人類能力的估算)。
一個新的中心化金融實體,一個需要信任的第三方,如果不像傳統金融機構那樣擁有等效於「人工區塊鏈」的制度,極有可能成爲下一個 Mt. Gox。如果沒有官僚制度,它就無法成爲一個可信的金融中介。
計算機和網絡的成本很低。擴展計算能力需要的額外資源成本也很低。若想以安全可靠的方式擴大人類傳統制度的管理範圍,我們需要更多會計師、律師、監管人員和警察,同時也要面臨隨之而來的官僚作風、風險和壓力。律師費用高昂,監管成本更高。而計算機科學在保障貨幣安全方面遠遠優於會計師、警察和律師。
在計算機科學中,安全性與性能之間存在根本的權衡。比特幣的自動化可靠性源自其運行和資源使用產生的高昂成本。直到現在,還沒有出現既能大幅提高比特幣區塊鏈的計算可擴展性(例如交易吞吐量),又能保證這種改進不會影響比特幣安全性的辦法。
對於比特幣來說,很可能不存在兩全其美(保持可靠性,同時大幅提高性能)的方法,這也許是無法避免的權衡關係之一。與現有的金融信息技術比較,中本聰做出了一些重要權衡,以犧牲性能爲代價提高安全性。在這些權衡中,看似浪費資源的挖礦過程是最明顯的一個,但不是唯一一個。
另外一個權衡是消息傳遞的高度冗餘。爲實現數學上可證明的可靠性,消息需要在所有節點之間全面廣播。比特幣無法實現這一點,但即使要達到近似的目的也需要極高的冗餘性。因此,1 MB 的區塊消耗的資源遠比 1 MB 網頁消耗的多,因爲前者在傳輸、處理和存儲方面需要更高的冗餘度,以實現比特幣的自動可靠性。
這些必要的權衡都以犧牲性能來實現足以支撐獨立運作、全球化和自動化可靠性所必需的安全性。這意味着比特幣區塊鏈無法在達到 Visa 的每秒交易處理量水平的同時,保持自動化可靠性,而自動化可靠性纔是其相對傳統金融系統的獨特優勢。
相應地,我們只需要一個對信任最小化要求較低的外圍支付網絡(如 Lightning [9])來承擔大量小額比特幣交易,而比特幣區塊鏈只需要定期對成批的外圍網絡交易進行結算。
雖然比特幣支持的交易吞吐量比 Visa 或 PayPal 都低,但它具有更強的自動化安全性,適用於重要交易。任何滿足互聯網接入條件並擁有智能手機的人都可以支付 0.20-2 美元的交易費(這遠低於當前的匯率手續費),然後在全球任何地方使用比特幣服務。而低費用的小額交易可以在比特幣的外圍網絡上處理。
你可以像使用法幣一樣使用比特幣進行日常消費。例如,以比特幣計價的信用卡和借記卡具備與法幣信用卡或借記卡一樣的秒級交易和請求退款 [10] 功能。我們還可以通過其它巧妙的方法來實現外圍比特幣小額付款,即,將小額付款放到鏈下處理,只定期在比特幣區塊鏈上進行批量結算。隨着比特幣使用量增加,比特幣區塊量將發展成爲大額結算層,而小額比特幣付款將由外圍網絡處理。
在設計 Bitgold 時,我已經認識到共識無法在保證安全的情況下擴展到高吞吐量的場景中去,所以我把它設計成了兩層架構:(1) Bitgold 本身,作爲結算層;(2) Chaumian 數字現金,作爲擁有高吞吐量和隱私性(通過 Chaumian 盲簽名實現)的零售級外圍支付網絡,但這個外圍網絡像 VISA 一樣是需要信任的第三方,因此需要由會計師等角色組成的「人工區塊鏈」來保證可靠性。
這個外圍支付網絡只涉及小額交易,因此只需要很少的人力就能避免重蹈 Mt. Gox 的覆轍。
拉爾夫·默克爾(Ralph Merkle):公鑰密碼學的先驅,和層級式哈希樹結構(默克爾樹)的發明者
從設計上來說,貨幣必須在安全性的基礎上具有社會可擴展性。例如,貨幣必須難以被任何使用者或者中間人僞造(以免稀釋供給曲線,進而導致過度的或意想不到的通貨膨脹)。黃金在世界上任何地方都具有價值,而且不會受惡性通貨膨脹的影響,因爲它的價值並不取決於任何一箇中央權威機構。比特幣在這些方面同樣表現突出並且可以運行在網絡上,它能讓阿爾巴尼亞境內的人無需信任第三方 和 / 或 支付天價手續費的情況下,安心地向津巴布韋境內的人支付比特幣。
現在「區塊鏈」有着各種各樣的定義,但幾乎所有的定義都是出於營銷炒作的目的。我建議給「區塊鏈」一個可以將其內涵傳遞給外行人的清晰定義。區塊鏈應該既有區塊,也有鏈。鏈指的是默克爾樹或其它具有不可僞造的完整性功能的密碼學結構。此外,爲了在客觀上儘可能容忍最糟糕的情況和惡意參與者,受區塊鏈保護的交易和其他數據應該用合理的方式複製下來(通常情況下,即使有 1/3 到 1/2 的服務器作惡,這個系統依然能正常運行)。
比特幣的社會可擴展型安全性基於計算機科學,而不是警察和律師,所以它支持跨國界支付,例如,非洲的客戶可以向中國的供應商無縫付款。私有鏈要做到這點很難,因爲它需要可以在不同行政管轄區之間共享的身份驗證、數字證書以及公鑰基礎設施服務(PKI)。
因爲這個特點,以及(但願很少)可能出現的會導致歷史區塊無效的軟件更新需求(一種叫做硬分叉的危險情況),區塊鏈還需要一個人工治理層(雖然這一層也會面臨政治鬥爭的風險)。最成功的區塊鏈(比特幣)之所以能維持其不可變性,一方面是因爲技術專家們之間的去中心化決策,另一方面是因爲秉持着不可篡改性原則。這種原則下,只有少數沒有任何其它可行方案的重要漏洞修復和設計改進可以使用硬分叉。
在這種治理理念下,會計或法律層面上的決定(例如,更改賬戶餘額或撤銷交易)不能成爲執行硬分叉的理由,它們應由系統外(或系統上層)的傳統治理機制來實現(例如,通過法院禁令強制比特幣用戶發送一個新的交易,從而起到撤銷舊交易的效果,或沒收特定用戶的密鑰,從而沒收該密鑰所控制的代幣)。
所謂的事後不可僞造性和不可變性,指的是一旦數據被提交到區塊鏈上,就無法在不知不覺中被篡改。與一些炒作所說的概念相反,我們沒有任何辦法保證數據上鍊之前的來源是否真實,或數據本身是真是假。這需要採取額外的辦法,通常涉及高成本的傳統制度。
區塊鏈不能保證數據的真實性;它只是把真相和謊言都以無法篡改的方式保留下來,讓後來的人客觀地分析這些信息,從而更有信心揭露謊言。日常的計算機是一塊算力畫板;而區塊鏈則是算力琥珀。重要數據應該儘早地封裝進區塊鏈琥珀,最好是由生成數據的設備在簽名加密後直接提供,最大限度地發揮區塊鏈在保證數據可靠性上的優勢。
一個包含四筆交易的默克爾樹(從 tx 0 到 tx 3)。讓交易所組成的區塊經由工作量證明機制形成鏈表結構,再加以適當的傳播和複製,默克爾樹結構就能依託共識機制,打造出交易數據的事後不可僞造性。在比特幣中,這些數據會通過安全的方式計算得出默克爾樹的根哈希,用於驗證區塊中的所有交易是否被篡改。
我在 1998 年提出的「安全財產證明」架構就使用了默克爾樹和數據複製機制來容忍客觀上存在的軟件錯誤或惡意行爲,但還沒有區塊的概念。這個架構證明了我的理論,即我們可以保護全球共享數據和交易的完整性,並在此基礎上設計一個密碼貨幣(Bitgold)。但 Bitgold 也沒有像比特幣那樣更加高效且具有計算擴展性的區塊和記賬系統。而且它和今天的私有鏈一樣,以可安全區分和計數的節點爲設計前提。
因爲一些公有鏈(如比特幣、以太坊)的安全性目標受到了 51% 算力攻擊的限制,我們都很關心,怎麼分辨大礦工的身份,來推斷「有沒有可能聯合其他人發動 51% 算力攻擊」。
區塊鏈的安全性有其客觀上限,區塊鏈治理會嚴重受到 51% 攻擊可能性的影響。當然了,攻擊者當然不會稱之爲「攻擊」,可能會說成是「開明治理」或者「民主行動」之類的。一些用於修復漏洞或是改善協議的軟件更新需要軟分叉。另外一些軟件更新則需要硬分叉,這會給比特幣帶來比軟分叉更大的安全和連續性風險。
比起其它網絡協議,區塊鏈雖然已經極大降低了信任要求,但實際上離免信任性仍然遙遠。礦工算是部分可信方。那些不是工程專家或計算機科學家但是投入大量時間學習區塊鏈設計原理和代碼的人必須充分信任開發者社區,就像那些想要理解一門專業學科的研究成果的非專業人士對該領域的科學家的態度一樣。在硬分叉期間,交易所的影響力也很大,因爲它們可以決定自己的市場和交易代號支持哪個分叉。
因此,公有鏈可以相對(但並不能絕對)地避開身份難題,設法在更高的現實或社會層面確認最有權力的礦工的身份,這可能比試着將身份這樣(基於大腦)的天然模糊的概念映射到協議層更合適,公鑰基礎設施在這方面的艱難嘗試正是前車之鑑。
所以我認爲有一些「私有鏈」有資格成爲真正的區塊鏈 ; 其他的則應該歸類到更寬泛的「分佈式賬本」或「共享數據庫」等類別下。它們的社會擴展性與免許可型公有鏈(比特幣和以太坊)完全不同。
以下方案都有安全識別(可區分和可計算)服務器身份的要求,而非像公有鏈一樣允許匿名身份。換句話說,他們需要其它一些在社會擴展性上差得多的方案來解決女巫攻擊問題:
-
私有鏈;
-
側鏈的「聯合」模式(唉,現在沒有人知道如何在降低信任要求的情況下開發側鏈,儘管之前有過那麼多憧憬和承諾)。側鏈可以是私有鏈,二者非常匹配,因爲它們在架構上和(對公鑰基礎設施的)外部依賴性上都非常相似;
-
基於多重簽名的方案,即使是通過基於區塊鏈的智能合約完成的;
-
基於閾值的將鏈下數據搬到鏈上的「信息輸入機制」。
要識別服務器的身份,主流但社會可擴展性通常較低的方式是基於可信認證機構(CA)的 PKI 體系。爲了避免受信任的第三方變成安全漏洞,可靠的 CA 自身就必須是高成本的勞動密集型官僚機構,這些機構通常會自行或是由其它機構來進行廣泛的背景調查(例如商業調查公司 Dun&Bradstreet;)。(我曾經帶領團隊設計、打造過這樣的 CA)。CA 也充當守門員的角色,保護這些需要許可的系統。CA 可以成爲引起全局控制和故障的單點。「公有鏈是自動化的、安全的、全球化的,但身份認證是勞動密集的、不安全的、局域的。」
基於 PKI 的私有鏈對於銀行和大型企業來說是一個不錯的選擇,因爲它們已經有成熟的內部 PKI 系統,用來認證批准重要交易所涉及的員工、合作伙伴和私有服務器。銀行 PKI 相對可靠。我們也爲 Web 服務器提供了半可靠的 CA,但這一般來說不包括 Web 客戶端,即使人們在 Web 發明後一直在嘗試解決客戶端證書問題:例如,廣告商們會希望有更安全的方式,可以替代電話號碼和 Cookie 來追蹤客戶身份。但這還沒有實現。
PKI 可以爲少數重要的事情和人員很好地工作,但對於不那麼重要的實體來說,它並不那麼好或容易使用。它的社會可擴展性受其所依賴的傳統身份認證官僚體系的限制。
上圖是比特幣生態系統中出現的一些重大盜竊事件。鑑於比特幣區塊鏈可能是現有的最安全的金融網絡(事實上比特幣在安全性上遠遠超過傳統支付網絡,才能保持其低廉的治理成本和點對點跨境轉賬的能力),基於舊的中心化網絡服務器所打造的周邊服務並不安全。(來源:作者)
我們需要通過更具社會可擴展性的方法來統計節點數量,換句話說,需要更健壯的方法來儘可能抵抗腐敗,評估節點對區塊鏈完整性的貢獻大小。這正是工作量證明和廣播複製的關鍵:大幅度犧牲計算擴展性來提高社會擴展性。
這就是中本聰的天才權衡。它的天才之處在於認識到人比計算機昂貴得多,且這種差距每年都在擴大。它的天才之處在於可以讓人們跨越人類的信任邊界(例如國界)安全地進行無縫協作,不再像 VISA 或 Paypal 那樣依賴於「有事找警察」架構,後者昂貴、容易出錯,甚至會有腐敗問題,僅僅在正常工作時,這些官僚機構才能提供一定程度的可靠性。
結論
隨着互聯網的興起,各種網絡組織如雨後春筍般崛起,包括社會網絡、長尾零售商(例如亞馬遜)以及爲小型買家賣家提供交易平臺的各種服務商(eBay、Uber、AirBnB 等)。這些只是對我們新能力的最初級嘗試。由於近幾十年來信息技術的巨大進步,限制網絡組織參與者人數和類型的已經不再是計算機和網絡,而是還沒有充分跟上技術進步的人類思維和制度設計。
初期的互聯網嘗試都是非常中心化的。區塊鏈技術通過計算機科學而不是「有事找警察」來實現數據完整性,使得信任最小化貨幣(密碼貨幣)成爲可能,它也必然爲其它金融領域以及主要基於在線數據進行交易的場景帶來進步。
這並不意味着,讓我們的制度適應我們的新能力是一件容易的事,或在某些特定情況下困難會少一些。烏托邦的想法在區塊鏈社區非常普遍,但它們不是可行的選擇。對我們高度發展的傳統制度進行逆向工程,甚至以新形式重塑一些舊制度,通常比從零開始、或者高談宏大計劃和博弈理論要好得多。
中本聰向我們展示了這樣一種關鍵策略——犧牲計算效率和可擴展性(消耗相對便宜的計算資源)以減少爲了實現陌生人協作所需要的社會制度(例如市場、大公司和政府)中的人力浪費,更好地利用人這種寶貴資源。
參考文獻:
[1]:http://whatsupnah.com/2009/02/twitter-vs-the-dunbar-number-and-the-rise-of-weak-ties/
[2]:https://en.wikipedia.org/wiki/Alfred_North_Whitehead
[3]:http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/tradition.html
[4]:http://www.lifewithalacrity.com/previous/2005/10/dunbar_group_co.html
[5]:https://nakamotoinstitute.org/the-playdough-protocols/
[6]:https://www.econlib.org/library/Essays/hykKnw.html?chapter_num=1
[7]:https://unenumerated.blogspot.com/2014/12/the-dawn-of-trustworthy-computing.html
[8]:https://unenumerated.blogspot.com/2014/12/the-dawn-of-trustworthy-computing.html
[9]:https://lightning.network/lightning-network-paper.pdf
[10]:https://en.wikipedia.org/wiki/Chargeback