Categories
程式開發

我們的夢想和恐慌:區塊鏈技術到底有什麼用? !


2008年,使用化名中本聰(Satoshi Nakamoto)的作者寫了一篇白皮書,描述了一種新的去中心化加密貨幣——比特幣(8)。過去人們開發加密貨幣的嘗試都會依賴預先建立的可信實體來維持系統的正常運行,而比特幣則設計為運行在開放的互聯網上,沒有負責人,同時還能保持高度安全性。儘管構成比特幣的要素並不是什麼新鮮事物,但將這些屬性組合到同一個系統中是很有意義的貢獻(9),並且比特幣成為了第一種受到廣泛關注的加密貨幣。

比特幣取得成功之後,很快人們就深入分析了這種技術,以了解其工作原理和新特性。它最具創新性的成分被命名為區塊鏈技術,這是一種去中心化機制,供參與者就數據和計算達成共識。

技術新聞往往會帶來振奮人心的印象,告訴人們區塊鏈技術減少甚至完全消除了對信任的需求。這種創新用例擴展了想像力的邊界。但有的時候也會有反對的聲音。 (12)

事實是,信任是一種複雜的事物。區塊鏈技術確實消除了對信任的一些特定和狹義的依賴,但它還需要一些新的假設才行;對於具體的用例而言,這些假設可能更好或更糟。因此,談到區塊鏈技術的效率、安全性和成本等指標時,很難用一句給出準確的總結。

顯然,這項技術需要更深入細緻的討論才行。業務主管、政府領導人、投資者和研究人員經常會問以下三個問題:1. 區塊鏈技術到底是什麼? 2. 它提供哪些功能? 3. 什麼樣的應用程序才是好的應用?

本文的目的是徹底回答這些問題,從現實出發,剝離炒作信息,提供區塊鏈技術的整體概述,並給出一組關鍵詞,用來討論未來的區塊鏈技術細節。

技術屬性

區塊鏈技術概念中的第一大類是技術屬性,其分為三大關鍵組別:共享的治理和運營,可驗證的狀態以及抵禦數據丟失的能力。圖1顯示了它們之間的關係。

我們的夢想和恐慌:區塊鏈技術到底有什麼用? ! 1

共享的治理和運營

區塊鏈技術解決了以下場景面臨的問題:一些實體的集合(例如一些個人或公司)希望參與一個公共系統,但彼此之間或對任何第三方都沒有信任關係,無法由單一實體運營整個系統。如果參與者就係統的細節(治理)取得共識,然後部署聯網設備(稱為”礦工”)來運行系統,每個實體就都能確認系統是正確運營的。如果少數礦工受到攻擊(即便只產生了細微的變化),則未受攻擊的礦工可以拒絕受攻擊的礦工所採取的惡意措施,並保持系統的正確運行。這樣一來,區塊鏈技術提供了分散的信任關係,系統信任的是礦工組成的集體。人們往往把這種關係稱為”無信任”,這是不對的——信任仍然存在,但已經分散了。

共享運營是基於”共識協議”的,礦工使用這種協議來約定係統將執行哪些運營操作(稱為”交易”)。交易這種操作有時就像它的字面意思那樣很像是一種金融交易,它將價值單位從一個帳戶轉移到另一個帳戶;但更廣義的層面上,它是要求針對交易給定的一組輸入來執行某個函數(其本身可能存儲在區塊鏈系統中)。共享治理的形式取決於有效交易的特性(例如,交易由發送方進行數字簽名)以及系統的運行方式(例如,交易中操作的大小和數量限制在一定範圍之內)。共享運營意味著每個礦工都將驗證交易,並使用礦工之間的共識來確保僅將有效交易的正確輸出寫入區塊鏈系統(人們可以提出無效或執行不正確的交易,但礦工會拒絕它們)。

我們可以基於”選擇誰來充當礦工”的規則對區塊鏈系統進行分類:

  • 開放治理(即無許可的區塊鏈系統)。只要願意,誰都可以參與共識協議,無論其身份如何。為了防止女巫攻擊(攻擊者創建多個身份以影響共識協議的結果),開放治理系統依賴的共識協議要求礦工證明自己擁有和/或花費了一些昂貴的有限資源。工作量證明(證明計算資源的所有權)和所有權證明(抵押區塊鏈系統上擁有的數字資產)是兩種常見的方法。 (2)(5)
  • 聯盟治理(即許可的區塊鏈系統)。參與共識協議的對象僅限於在系統初始化時定義的白名單上批准的礦工。如果此設置永遠不變,則係統稱為”靜態聯盟”。另一種形態叫做”敏捷聯盟”,其中礦工的組成會根據系統規則(例如隨機選擇)或通過現有礦工的共識而隨時間變化。由於聯盟中的每個礦工都映射到一個已知身份上,因此可以使用傳統的拜占庭容錯協議(來自分佈式系統)。這就避免了類似工作證明那樣對抗女巫攻擊的協議所浪費的資源支出。 (2)(5)

每種治理類型都需要獎勵正確的參與者行為。第一種激勵是”內在”的,也就是說礦工之所以會忠實地維護系統,是因為他們使用該系統獲得了價值。其次,區塊鏈系統可以為礦工提供直接利益獎勵他們的忠實執行工作(例如鑄造貨幣並將其交給礦工),這就是”鏈上激勵”措施。最後還存在”鏈下激勵”措施,這是不受區塊鏈系統管理的激勵措施,例如合同義務或個人聲譽等。重要的是,鏈下激勵措施僅適用於財團治理,因為它們必須要了解礦工的身份。

可驗證狀態

實體之所以會採用區塊鏈技術,是因為它們希望信任能根植於系統中(也就是說系統的當前狀態準確反映了共識協議過去允許執行的交易)。為了實現這種信任,礦工將所有交易寫入經過密碼驗證的僅附加賬本中(14),提供完整的系統溯源歷史,並允許礦工(或外部人士)審核系統的當前狀態和過去的操作。

在包括比特幣在內的許多系統中,這種分類賬俗稱“區塊鏈”(我們避免對分類賬使用該術語,以免和宏觀層面的區塊鏈技術術語混淆)。在分類帳中,所有交易都是嚴格排序的,並且在達成共識之後(只要共識繼續存在),這種排序就不會更改,也不會刪除交易。因此,從第一個條目(稱為”創世塊”)開始的所有礦工將以相同的順序處理所有交易,最終整個系統達到同一個當前狀態。

抵禦數據丟失

如果分類帳存儲在單個位置,則所有各方都可以檢測到數據的刪除或修改,但數據丟失時不能保證數據可恢復。借助區塊鏈技術,賬本的內容可在所有礦工之間複製,以解決這一單點故障問題。當確實需要恢復數據時(例如單個礦工的分類賬已損壞或新的礦工加入時),可以驗證複製的數據以確保其正確表示系統狀態。

一些區塊鏈系統試圖分割數據,並指派礦工只針對系統的一個子集處理治理和運營工作,從而限制任一給定礦工需要復制的數據量。這稱為”分片”,數據的一個分段稱為一個分片。分片可以大大減少礦工需要存儲的數據量,同時還可以提高共識協議的性能,這種協議通常根據礦工的數量進行擴展。分片也增加了審計整個系統時的複雜性。此外,分片減少了負責任何給定交易的礦工的數量,這樣也減少了對手要欺騙最終客戶(誤導他們關於一次交易是否存在的認知)所需的礦工數量。

能力

能力定義了可以在系統設計中使用區塊鏈技術實現的高級功能。上一節描述了區塊鏈技術的三大核心功能:(1)共享的治理和運營;(2)可驗證的狀態;(3)抵禦數據丟失的能力。在具體的編程工作中,我們確定了另外11種能力。 (在圖2中,這些能力用顏色編碼:紫色代表能力;藍色代表技術屬性;綠色代表技術原語。箭頭指向的對象依賴箭頭出發點所在的對象。)

我們的夢想和恐慌:區塊鏈技術到底有什麼用? ! 2

來源與可審核性

區塊鏈系統提供了共識流程批准的所有交易的完整歷史記錄(即完整系統的來源)。礦工可以使用這些信息來審核系統,並確保其始終遵循適當的規則。此外,非礦工可以使用這些信息來驗證系統是否得到了正確的治理和運營。

如果使用交易存儲關於數字或現實世界資源的信息,則必須將資源”裝訂”到鏈上標識符。區塊鏈系統的來源信息也可以用來提供這些資源的審核信息。這可用於跟踪鏈下物理資產(例如用於供應鏈管理)、鏈下數字資產(例如受版權保護的數字媒體)或鏈上數字資產(例如加密貨幣或數據文件)。

訪問控制和匿名

存儲在區塊鏈系統中的數據可能會存在一些限制,這樣用戶可以將它們用作交易的輸入,或將其作為交易的一部分進行修改。例如,僅當一項金融資產的所有者批准其使用時,這項金融資產才能成為一項交易的有效輸入。提供此功能的一種方法是將訪問控制列表(ACL)存儲在分類帳中,並讓適當的用戶向礦工證明自己的身份(例如使用Kerberos或OAuth 2.0),作為交易驗證過程的一部分。

更常見的是,區塊鏈系統中的訪問控制以密碼方式實現:數據在創建時與一個公鑰相關聯,並且只有能夠證明自己擁有對應私鑰知識的用戶(例如,通過生成一個使用附加到數據的公鑰進行驗證的簽名)能被授權使用或修改該數據,將其作為交易一部分。可以將數據與新的公鑰相關聯來擴展或轉讓數據的所有權。

基於密鑰的數據所有權(與基於ACL的相反)具有另一個優點:它允許匿名所有權和匿名數據使用。儘管如此,在系統設計中仍需要仔細注意以使用適當的加密技術(例如,零知識證明、混合網絡或安全的多方計算),以避免將現實世界中的個人鏈接到他們的密鑰和動作上。這個問題尚待解決。

自動執行(智能合約)

在一個通用區塊鏈系統中,可以使用存儲有一組函數代碼與合約初始狀態的一個交易來部署一個智能合約或去中心化應用程序(DApp)。然後就可以在後續交易中調用這些函數了。這些函數本身由礦工執行,並通過共識協議驗證輸出。任何實體都可以執行任何函數,但是如果調用函數的條件不是設計人員所期望的,則這一函數可能遇到程序失敗。可用於指定函數的腳本語言的計算能力因係統而異,並且存在許多精細的規則,可確保每個礦工確定而及時地執行函數。比特幣以其局限性很大的腳本語言而聞名,這種語言幾乎只能用來實現金融交易;而以太坊則追求相當冗長的代碼,用來實現通用計算。

數據可發現性

如果允許用戶讀取存儲在區塊鏈系統中的任何記錄,則用戶就可以搜索他們感興趣的記錄。這種能力無非就是提供了一個只讀數據湖,但還是有眾多文獻在討論這一事宜。

挑戰與局限

我們的分析揭示了在開發使用區塊鏈技術的系統時,需要考慮的幾大挑戰。

可擴展性和性能

去中心化的治理和運營會產生三種形式的開銷:(1)需要在狀態更新之前運行共識協議;(2)需要存儲完整的系統來源,以及(3)每個礦工都需要存儲整個分類帳。此外,當今大多數開放治理式區塊鏈系統都是基於工作證明的,這帶來了更多挑戰。用戶必須購買硬件並消耗電力才能參與共識機制,而這在現實世界中可能意味著高額的成本。例如據估計,截至2018年4月,僅比特幣礦工所消耗的能源就相當於近550萬美國家庭的用電量。 (4)

鏈上正確性

所有可執行代碼都存在錯誤,智能合約也不例外。區塊鏈分類賬的不可變性會阻止狀態更改的回滾(即使狀態更改顯然是惡意的),進而加劇了這一挑戰。對此不採取行動可能會造成高昂的代價(例如DAO攻擊(13)),但撤消交易也可能會造成巨大損失。如果礦工決定回滾總賬以清除一項錯誤的交易,則用戶可能會失去對整個區塊鏈系統的信心。回滾系統必須經過精心設計,否則會有被進一步利用的風險。 (1)或者,如果礦工無法就如何處理錯誤交易達成共識,則可能導致”分叉”:也就是創建兩個相互競爭的區塊鏈系統。

鏈下裝訂

許多區塊鏈系統使用數字標識符,也叫”代幣”(token)來將鏈下資產表示在鏈上,進而管理它們。這些應用程序的主要挑戰是確保鏈上狀態與其所代表的鏈下狀態之間的一致性。處理數字資產時,可以通過代碼維護一致性;例如,智能合約可以跟踪數字媒體許可證的所有權轉讓過程。對於實物資產來說,必須引入現實世界中的流程來確保一致性。這些流程顯然是明顯的故障點,因為它們依賴於”受信任方的正確執行”(這恰恰是很多區塊鏈系統想要消除的事物)。終端用戶也必須受到信任,因為他們可以剝離代幣,並在保留資產的同時出售代幣,從而使代幣附加到一項無效資產上(例如奢侈品市場中的假貨)。

當區塊鏈系統必須跟踪現實世界的事件和信息(例如體育比分和Web請求)時,也會遇到類似的挑戰。儘管此類信息可以由”鏈下權威”來源提供,但這些受信任實體是難以審核的。

安全性

由於其去中心化的性質,區塊鏈系統可能很容易受到多種安全威脅的攻擊。大多數(甚至經常只需少數)礦工的協同攻擊就可以重新排序、刪除和更改分類賬上的交易。此外,區塊鏈系統容易遭受傳統的網絡攻擊,例如拒絕服務或分區攻擊。此類攻擊旨在減少參與的礦工數量或破壞礦工的網絡,以阻止他們達成共識、降低攻擊門檻或創建不一致的狀態。

隱私和匿名

為了實現驗證,區塊鏈分類賬中的數據是公開的(至少對所有礦工而言),這意味著敏感數據天然就是非私有的。可以使用一個參考監視器來提供機密性,它基於分類賬中存儲的訪問控制列表來限制非礦工的訪問權限,但這會引入一個受信任的實體(參考監視器)。或者可以使用高級加密技術來加密數據,這種技術允許礦工驗證加密交易的正確性(例如零知識證明、安全的多方計算和功能加密)(7),但加密數據限制了可審核性和共享治理的能力。

嘗試構建匿名區塊鏈系統時必須格外小心。雖然許多現有的區塊鏈系統提供了一種”假名”的概念,其中用戶通過其密碼密鑰,而不是其真實世界的名稱來提供標識,但這不能提供真正的匿名性,因為攻擊會將同一假名的交易與外部的其他數據關聯起來,從而有效地打破區塊鏈系統的匿名性。 (6)

易用性

對用戶友好的開發工具的可用性根據區塊鏈平台的成熟度不同而存在很大差異。以太坊等一些項目擁有成熟的工具,而其他項目則幾乎沒有相應的支持。許多區塊鏈平台都是面向專家用戶的,缺乏專注使用體驗的工具,讓非專家用戶很難使用。相關的一項挑戰是,某些區塊鏈系統要求用戶來存儲、管理和保護加密密鑰。眾所周知,這種要求對大多數用戶而言是一個重大障礙。 (10)

合法性與法規

區塊鏈系統所聲稱的某些好處並不能歸功於其底層技術,而是通過規避監管和監督來實現的,這些監管規則會拖慢現有系統(相關的例子有國際支付,或向投資者出售虛擬資產來籌集資金)。隨著監管政策的完善,合規性成了優先考慮的要素。區塊鏈技術本身不受直接監管;公司會根據其使用這種技術的具體方式而受到監管。討論最多的法規領域是稅收、經審計的財務報表、交易報告(了解你的客戶/反洗錢/反恐融資)、證券法、銀行業和保管業。監管出手的極端情況是禁止加密貨幣或區塊鏈資產。在撰寫本文時,禁止比特幣的最大國家是巴基斯坦,禁止廣泛使用加密貨幣的最大國家是中國。

用例

行業和政府可以在需要共享治理、可驗證狀態和/或數據丟失恢復彈性的許多用例中應用區塊鏈技術。

財務用例

電子貨幣和付款

眾所周知,區塊鏈技術可用於構建加密貨幣。比特幣就是一個可行的例子。區塊鏈技術使電子交易具有彈性,即使在涉及大量資金時也是如此。比特幣具有明顯的缺點,包括低可擴展性、高能耗以及程度有限的隱私保護。使用財團治理的支付系統可以解決前兩個關鍵挑戰。

資產交易

金融市場允許資產交換。這種行為往往涉及許多中介機構,例如交易所、經紀人和交易商、託存人和保管人以及清算和結算實體。基於區塊鏈的資產要么具有內在價值,或者擁有對鏈下資產(物質或數字資產)的債權,所以可以在參與者之間直接交易,並由可以提供保管,且需要較少金融市場基礎設施的智能合約來管理。兩大主要挑戰分別是:(1)裝訂代錶鍊下事物的代幣(例如公司的股權或債務工具);(2)政府監管和合規性。

市場和拍賣

資產交易的核心組成部分是市場本身,也就是買賣雙方相互尋找、交換資產並向觀察員提供價格信息的集市。拍賣是設定公平價格的一種常見機制;這包括雙面拍賣,例如金融交易常用的訂單簿。去中心化市場的主要挑戰是,交易必須按照共識協議進行廣播,因此無法保密,從而會破壞隱私性,導致扒頭交易。

保險與期貨

區塊鏈系統可以安排視未來時間或事件而定的交易。例如,在將來的某個時間以固定價格購買資產、為火災支付保險金或針對貸款違約行為採取行動。關鍵的挑戰包括:(1)確定可信賴的權威來報告相關的鏈下事件,例如火災、匯率等(或將合約限制為鏈上事件);(2)鎖定足夠多的抵押品以解決所有可能發生的情況,或者由對手方承諾履行其義務,但存在對手方不願履行義務的”對手風險”——系統設計需要在這兩種情景中取得平衡。

處罰,補救和製裁

法律合同預計未來可能會發生違規行為,並規定了一系列處罰或補救措施。借助區塊鏈技術,可以對可能的結果進行編程(以後可以通過傳統訴訟推翻編程內容)。與保險和期貨部分一樣,權威和交易對手風險是這裡面臨的主要挑戰。

數據存儲和共享用例

資產追踪

區塊鏈技術可用於跟踪在全球範圍內分佈,且有價值的、具有出處的材料資產。其中包括藝術品和鑽石等獨立物品、食品和奢侈品等經認證的物品、車隊等分散物品、,以及長途運輸過程中需要多次易手的包裹。這種資產還包括複雜設備的各個組件,這些組件來自不同的公司。對於航空業等受嚴格管制的行業以及軍事/情報應用場景來說,重要的是要確定用過的每個零件的源頭以及維修歷史(即其來源)。區塊鏈技術提供了一個通用的環境,在該環境中,沒有任何一家公司擁有突出的能力和對跟踪這些信息的數據庫的控制權。這裡存在的關鍵挑戰是數據的可靠裝訂、機密性,以及將所有必要的公司加入同一區塊鏈系統的要求。

身份和密鑰管理

身份以及有關這些身份屬性的密碼證明(例如,超過18歲、具有駕駛執照、擁有特定的密碼密鑰)可以在區塊鏈系統上維護。這是資產跟踪的特例,其中“資產”是一個人。這裡存在的關鍵挑戰與上一部分是相同的。

防篡改記錄存儲

區塊鏈系統的僅附加分類帳可用於存儲文檔,包括這些文檔的更改歷史記錄。該用例最適合存儲有價值的記錄(例如證書和政府許可證),它們數據量較小且可公開獲得(因為所有礦工都將復制一份)。如果需要存儲大型和/或機密文檔,則區塊鏈系統可能會存儲文檔的安全指針(如綁定/隱藏承諾),而文檔本身存儲在其他系統中。

其他用例

表決

電子投票是一個具有挑戰性的問題,它通常被認為可以從區塊鏈技術的屬性中受益。共享治理可用來確保多個利益方(政府、非政府組織和國際監督機構等)可以共同努力,以確保選舉合法。可審核性可用來向選民提供選舉是公正的證據。最後,區塊鏈技術的彈性可以用來抵禦針對投票系統的網絡攻擊。但是,在區塊鏈系統上進行投票有許多挑戰需要解決:(1)區塊鏈系統不提供對匿名投票的原生支持;(2)可以通過提交電子投票的設備更改投票(如果是無記名投票,則這種更改無法被發現);(3)可以將加密密鑰出售給賄選者;(4)需要為丟失的密鑰建立密鑰恢復機制。

賭博與遊戲

賭博在比特幣和以太坊上已經非常流行。玩家可以審核合約代碼以確保執行的公正性,並且合約可以使用加密貨幣來處理財務(包括將資金託管到第三方,以防止輸家在付款前退出)。該這一用例最適合不需要隨機性、私有狀態或鏈下事件知識的賭博遊戲。

應用

不管怎樣,區塊鏈技術並不是萬能靈藥,但是當系統需求超過其應用開銷時,它會是一種有用的工具。一個不錯的應用起點是提出以下問題:

  1. 系統是否需要共享治理?
  2. 系統是否需要共享運營?

如果對這兩個問題的答案都是否定的,那麼就不需要負擔區塊鏈技術的開銷了。如果兩個答案都是肯定的,那這種技術就很合適。如果只有一個答案是肯定的(僅需要共享的治理或共享的運營,而不是兩者都需要),則應考慮另外兩個問題:

  1. 是否有必要審核系統的來源?
  2. 是否有必要防止惡意數據刪除?

如果可審核性和數據複製至關重要,則應考慮使用區塊鏈技術。這是因為有意義的共享治理和運營需要礦工來審核其他人的操作,並能夠恢復惡意礦工可能試圖刪除的數據。

儘管區塊鏈技術並不能像其支持者宣傳的那樣解決所有問題,但它仍然是一種有意義的技術,將繼續在行業中使用,值得進一步研究和試驗。

參考文獻

  1. https://arxiv.org/abs/1807.01793
  2. https://arxiv.org/pdf/1711.03936.pdf
  3. Corbin, J., Strauss, A. 1990. Grounded theory research: Procedures, canons and evaluative criteria. Zeitschrift f?r Soziologie 19(6), 418?427.
  4. https://digiconomist.net/bitcoin-energy-consumption
  5. https://eprint.iacr.org/2018/754
  6. https://www.petsymposium.org/2018/files/papers/issue4/popets-2018-0038.pdf
  7. https://ieeexplore.ieee.org/document/7546538
  8. https://bitcoin.org/bitcoin.pdf
  9. https://queue.acm.org/detail.cfm?id=3136559
  10. https://dl.acm.org/citation.cfm?id=3313761
  11. https://arxiv.org/abs/1909.12454
  12. https://www.wired.com/story/theres-no-good-reason-to-trust-blockchain-technology/
  13. https://www.coindesk.com/understanding-dao-hack-journalists
  14. https://link.springer.com/chapter/10.1007/978-3-540-39658-1_2
  15. (https://link.springer.com/article/10.1057/ejis.2011.51

原文鏈接
https://queue.acm.org/detail.cfm?id=3376896