雖然區塊鏈技術在創建新的金融、供應鏈和數字身份系統等方面具 有巨大的潛力,但它常常錯誤地被視作解決業務問題的萬能靈丹妙藥。
通過多家大公司和政府機構的 大量試點和概念驗證 都顯示出了區塊鏈技術的現實性的希望,但這些項目并不總是能成為明顯能投入實際應用的商業案例,這就證明有必要采取不同的做法。有時,像關系數據庫這樣久經考驗的可靠技術,比起基于 p2p 技術的分布式分類賬更能有效地執行任務,因為 p2p 技術往往需要復雜的治理和設定一系列規則。
例如,在一個業務的整個價值鏈上提供具有全面可見性的區塊鏈,這件事看上去可能非常有意義,但是當你權衡為之建立的整個上下游生態系統以及構建區塊鏈的成本時,這一解決方案在財務上可能就并不合理了。
“誰來為它買單呢?這些直覺上的優勢將如何給參與者帶來實際的效益?如果技術建設成本是由各方分擔的,那么效益是否在收入或者投資回報中也會進行相應分配?這些棘手的問題往往會隨著從試點項目轉入實際生產后變得更加麻煩,” IDC 咨詢公司全球區塊鏈戰略研究主管 James Wester 說,”換句話說,即使試點項目驗證了這個概念是可行的,但從實際應用的規模上看,成本和其他各方面考慮因素,會成為主要問題。”
還有一部分問題與區塊鏈項目的融資方式有關。試點項目和概念驗證(PoC)往往來自于創新或研發預算,但一旦投入正式生產,其成本就不可避免地會落到負責業務的部門或公司。而當區塊鏈牽涉到需要合作伙伴公司在一個開放分類賬上協同工作時,合作各方必須就復雜的規則以及這個項目的資金來源達成一致。
Wester 還說,“如果沒有令人信服的商業案例,這些建設成本可能就欠缺吸引力了。考慮到區塊鏈的天然的分布性,如果合作中有一方決定不參與,整個方案就會分崩離析。”
以下是企業在使用區塊鏈時可能遇到的主要問題:
1. 區塊鏈還相對年輕,依然存在許多軟件缺陷
雖然第一個分布式區塊鏈是在 2008 年由“中本聰”(化名)提出的概念,但該技術在現實世界中的應用只有短短幾年的歷史。
兩種最流行的區塊鏈平臺,超級分類賬(Hyperledger)和以太坊(Ethereum),都還不夠成熟,這可能導致區塊鏈部署中出現無法預見的問題。Forrester Research 公司的首席分析師 Martha Bennett 說,各公司的首席信息官們(CIO)以及他們的團隊應該考慮到這一點,軟件中有可能會發現嚴重漏洞。他們甚至可能會讓一個區塊鏈項目半途而廢,在遇到嚴重的軟件故障后不得不重頭開始。
例如,Ethereum 用于執行智能合約的腳本,Solidity ,目前居然還不支持使用小數點,這需要開發人員另外找一個變通方案,或者從頭開始自己編寫一個軟件。
“這種情況我已屢見不鮮,” Bennett 說,“當我和那些正在進行區塊鏈項目的人交談時,盡管他們都正在從事大型的正規項目,他們也會說,使用區塊鏈這項技術的時間越長,就越發地意識到它是多么地不成熟。”
改變的是,許多創業公司,和像 IBM 和 Oracle 這樣的領先企業技術供應商,一直穩定地在為之工作,從特定編程環境復雜的底層中抽象出更多可用工具,和“可以提供適當防護的智能合約腳本語言”,Bennett 說。
Bennett 還說:“總體而言,值得指出的是,不僅工具在改進,而且現在有相當多的服務可以讓企業以更容易的方式建立和運行區塊鏈網絡。”
2. 很少有商業領袖完全了解區塊鏈和相關技術
區塊鏈經常被濫用,當成許多伴生技術、架構、用例甚至是哲學的簡寫。
歸根結底,它是一個點對點的分布式分類賬或數據庫,由一組協議和一個區塊鏈組合而成,這意味著區塊鏈是一系列加密的數據集合,記錄著隨著時間的推移而發生的不可篡改的變化。雖然這樣解釋可能相對簡單直觀,但根據該技術是如何實現的,其定義可能會變得復雜費解。
作為戰略研究主管,Wester 經常被要求定義區塊鏈和屬于“區塊鏈”這個大標題下的“一系列技術”,包括 標記資產、加密數字貨幣、加密錢包、分布式分類賬、智能合約和自主身份識別,而后面所列的這些技術其實都是可以在區塊鏈網絡上運行的應用程序或架構,但它們并不是該技術與生俱來的固有部分。
Wester 說:“如今我們還處在向別人解釋這項技術工作原理的階段。此外,在不是很了解各種技術之間差異的情況下,人們也有可能對這項技術侃侃而談,所以很多一知半解的人甚至懶得去認真學習相關術語和技術。”
3. 區塊鏈并不總是適合存儲數據
區塊鏈最大的價值之一是“一次寫入多次讀取”的分布式特性,它可以很容易地跨越 web 上的不同節點進行部署,但是每條記錄都包含自己的 Hash 值,因此記錄是不可篡改的。
在其他技術中,用戶只擁有選擇性的視角,要么只能查看內部系統,有些或許可以查看一些黑名單,而通過基于區塊鏈的網絡實現了分布式分類賬,可以提供更豐富、更全面的交易歷史記錄。
然而,這并不意味著與交易相關的數據必須成為該鏈的一部分。
例如,如果區塊鏈用戶將圖像作為其交易記錄的一部分,那么數據量將會快速增長,考慮到僅用作讀取的存儲數據量會隨著時間推移變得越來越大,網絡開銷也會快速增長。由于區塊鏈的分布式特性,所有數據必須復制到鏈中的所有節點,Bennett 解釋說。
所以對于某些交易任務,使用具有單獨網絡化存儲的關系數據庫,會比使用區塊鏈而讓開銷增長到無法控制的程度要好。“我要說的經驗法則是:當關系數據庫可以順利完成一項工作時,就永遠不要為這項工作使用基于區塊鏈的架構,” Bennett 說。
Bennett 還說,雖然不是所有區塊鏈技術框架都需要跨節點對數據進行完全復制,但是所有的區塊鏈系統都需要小心翼翼地搭建技術架構,才能把法規要求、保密性需求和潛在的延遲問題等等都納入考慮范圍。“這就決定了哪些數據會放在區塊鏈上,而哪些不會,” 她說。
4. 規模擴展性仍然是個問題(但該問題比以前減輕了)
區塊鏈面臨的主要問題之一是其規模的可擴展性,或者說,如何在不消耗越來越多 CPU 容量的情況下實現增長的能力,以及如何在近乎實時的情況下完成交易的能力,比如通過信用卡進行支付。Visa 表示,它的網絡 VisaNet 每秒可處理多達 6.5 萬筆交易。
由于區塊鏈的特性,插入到區塊鏈中的每條新記錄都必須進行序列化,這意味著,較之可以并行更新數據的傳統數據庫,區塊鏈的更新速度更慢。
盡管許多區塊鏈聯盟和相關的創業公司都在進行各種試驗,比如,有一種每秒可以 處理上萬筆交易 的區塊鏈網絡,還有一種甚至號稱比 VisaNet 的網絡容量還要大,但大多數區塊鏈仍然受到可擴展性問題的阻礙。比特幣等流行的區塊鏈協議每秒只支持 3 到 5 筆交易,而以太坊技術每秒可以支持約 20 筆交易。
在技術框架和治理模型之間,可擴展性的程度仍然是一個問題。例如,以太坊基金會正在使用 權益證明共識模型 以及 分片機制 等技術來提高其協議的性能。
“如何構建網絡架構也很重要,網絡延遲可能比計算能力更具挑戰性,” Bennett 說。“例如,我看過令人印象非常深刻的測試結果,但是如果它們是通過租用一個巨大的 AWS 集群來完成你的測試,那么這些測試結果對實際應用毫無意義。”
Gartner 公司負責研究的副總裁 Avivah Litan 說,如今,可擴展性更多時候是一個治理問題,而不是技術問題。
Litan 表示:“隨著區塊鏈得到許可,零信任模型的整個概念就瓦解了。” 他說:“只有數量有限的見證人操作節點并參與達成共識的過程,所以你真的需要信任那些當事人,如果他們做錯了什么,你需要的是法律框架的支持。因此對我來說,這在實際中是無法擴展的。”
Bennett 認為,在區塊鏈的環境下,經常使用的指標“每秒交易數”相對來說也是毫無意義的。她說:“首先,你如何定義‘交易’?其次,如果你無法最終敲定交易,是否能處理大量交易也就變得無關緊要了。”
5. 區塊鏈需要治理
區塊鏈并沒有從本質上消除中央集權式管理,根據明尼阿波利斯聯邦儲備銀行(Federal Reserve Bank of Minneapolis)最近的一份報告,區塊鏈實質上只是用一種授權或信任模式來替代了另一種。
報告指出:“參與者必須信任區塊鏈系統的設計、技術和網絡規則,而不是將信任托付給經紀代理或銀行等中央集權式機構來促成交易。但區塊鏈并沒有消除對治理權威的需要,仍然需要以某種形式對規則進行建立、實施和執行,以及對意外的系統挑戰和異常做出響應。雖然這樣一個治理機構的成員可以是分布式的或分散化管理的,但是仍然需要一個治理的端點來處理所有的操作問題。”
Bennett 說,如何解決爭端,或者在出現問題時如何達成協議,這些仍然是治理中的關鍵問題。
例如,如何遵守智能合約的運作方式,以及遇到有爭議的合約怎么處理,區塊鏈參與者需要為這些問題達成一致。
Bennett:“如果區塊鏈中有軟件沒有編寫的事情發生,就需要有一種“非鏈式”的方式將它編寫進去,或者是一個‘終止開關’,來阻止區塊鏈以一種你意想不到的方式運行。”
7. 默認情況下,區塊鏈會共享你可能不希望共享的信息
公共區塊鏈,也是區塊鏈最普遍的一種形式,它是完全開放和透明的,這意味著鏈上的任何人都可以看到每一筆交易。例如,特幣就是這樣的形式。
公共區塊鏈還具有一個原始能力,即更強的防篡改能力,因為公共鏈可以增長至數千個節點,甚至是數百萬個節點,整個鏈就像一臺巨大的分布式計算機。節點越多,一次***就越難以控制鏈上的大多數的計算能力,于是要么阻止新交易得到確認,要么自己創建并確認自己的條目。如果能夠實現自創建自確認這一點,就會出現一些不法行為,比如 雙重支付 比特幣或其他加密數字貨幣。
另一方面,當你在商業環境中工作時,完全的透明通常并不是一件好事。例如,如果使用區塊鏈技術作為股票交易平臺的一部分來實現即時結算機制,那么鏈中的每個參與者都可以看到其他用戶在做什么,這將允許一個用戶與另一個用戶進行實時交易。
而另一個例子是,如果一個制造商使用區塊鏈作為其供應商的公開分類賬,它將允許一個承包商查看鏈中的所有其他分包商的信息。
“我或許并不希望我的客戶看到我所有的分包商是誰,即使你可能想要在鏈上實現一個特定的交易流程,” Bennett 說,“所以,你馬上就會決定該如何做……你會選擇對交易數據保密。”
有一些方法可以在區塊鏈上創建信息獨享權,這樣的話,僅有一些用戶能看到機密或敏感數據。例如,Linux 基金會旗下的 區塊鏈開源項目 超級分類賬(Hyperledger)就使用“通道”或子鏈來確保只有部分授權用戶才能看到敏感信息。
8. 區塊鏈的安全性取決于最薄弱的環節
如上所述,區塊鏈有兩種類型,公共的和私有的。公共區塊鏈允許任何人加入,比特幣是公開區塊鏈的一個很好的例子,任何想購買這種加密數字貨幣的人都可以加入這個鏈。它是公開透明的,這意味著鏈中的每個人都可以看到所有的交易。如果一個或多個參與者試圖在系統中弄虛作假,不法行為就會被挫敗,因為參與驗證新交易的大多數用戶會提供的正確數據。
“底線是,在一個大型的公共區塊鏈網絡中,你不必信任對等的參與者。這就是 拜占庭將軍問題,公眾的區塊鏈解決了這個問題,” Litan 說。
相反的,私有或帶許可的區塊鏈是集中管理的,需要人們獲得加入許可,它們適合在單個組織或合作伙伴組織之間使用。只有授權用戶才能加入這樣的鏈。
公共區塊鏈和私有區塊鏈天然地都是安全的,因為它們是不可篡改的,例如,每條記錄或塊是不可更改的,并與其他所有記錄或塊綁定在一起。添加新塊需要用戶之間達成共識,這種達成共識的規模需要多大,取決于使用的具體區塊鏈技術。對一些技術來說,需要達到 50% 共識,而對其他技術來說,這個百分比可能更高。區塊鏈的不可篡改性和共識要求使得它們在本質上比大多數其他網絡技術更安全,但這取決于技術架構和運行這些鏈節點的人和場所,區塊鏈其實很容易受到攻擊,這一點已經在實踐一次又一次地驗證了。
上述明尼阿波利斯聯邦儲備銀行的這份報告中提及,雖然區塊鏈提供了針對鏈上記錄的數據完整性的安全,但該安全性僅限于區塊鏈本身,如果沒有額外的技術或系統,無法防止未經授權的訪問,比如數據泄露。
例如,最近針對 以太坊經典令牌交換 的“51% 攻擊”就表明,即使是區塊鏈技術,也不能阻止弄虛作假。51% 的攻擊指的是,如果獲得加密數字貨幣礦池中大多數 CPU 的控制權,一個人就可以胡作非為。這種攻擊通常局限于節點較少的小型區塊鏈,因為它們更容易受到基于工作量證明(PoW)共識機制的個人篡權控制。
數據透明性,即鏈上的所有參與方查看交易的能力,是區塊鏈技術頗具吸引力的一部分,因為如果意圖不軌的參與者試圖添加未經驗證的數據,可以很快被識別出來。然而,數據的透明度也可能成為一個威脅。例如,美聯儲的報告指出,在金融機構的結算或清算系統中,保密性可能是安全的一個關鍵因素,所以系統數據的透明度會是一個安全風險。
報告指出:“如果實行數據透明化,但又需要保證保密性,則需要對鏈上的數據進行加密,或對數據訪問進行強認證。區塊鏈中可以加入保密性和訪問控制,但這些并不是區塊鏈技術的固有屬性。區塊鏈自身也不提供認證功能。”
換句話說,不要因為一個具體的區塊鏈設計和實施中包含一個特定的特性,比如隱私、數據透明性或強認證的相關特性,就假定其他所有區塊鏈也包含這個特性。
Bennett 指出,向區塊鏈提供信息的那些系統,如智能合約,也可能成為網絡攻擊的載體,因為它們不是分散管理的,可能成為單點故障。
智能合約既不智能也并非合約
智能合約,或自動執行合約,是構建在區塊鏈技術之上的業務自動化工具。它們是區塊鏈技術中頗具吸引力的特性之一,因為它們能夠消除管理開銷。基本上,一旦合約的某些條件得到滿足,關于收據信息、金錢、財產或貨物的動作就會自動開始執行。
例如,保險公司可以利用智能合約,根據大規模的洪澇、颶風或干旱等災害來發放賠款。或者,一旦貨物抵達進入港口,集裝箱內的物聯網傳感器如果確認了各種條件,比如貨物的封裝完好無損,一直儲存在適當的溫度下,等等,就可以自動簽發海運提貨單。
然而,Bennett 認為,所謂的智能合約既不智能,也不是法律意義上的合同。再加上區塊鏈腳本語言還缺乏成熟度,程序員的學習曲線本來就比較陡峭,這種情形下可能會導致 bug 或漏洞。
Bennett 表示,如今智能合約實際上只是等同于用于創建自動化流程的一套規則和軟件,而自動化流程在當前已不再是個問題,有很多種實現方法。
“我們甚至開始看到一些工具,可以讓商人們使用時集合了智能合約其中包含的基本要素,” 她說,“然而,這僅僅是個開始,正如一些公司已經發現的,確保每個網絡參與者都運行相同版本的智能合約,這件事本身就可能會成為一個挑戰。”
Bennett 補充說,還有一些其他挑戰,包括如何確保智能合約本身不會產生安全問題,以及確保智能合約的任何外部輸入都是有效正確的。
“就像我一直說的那樣,一個事物并不能僅僅因為它在區塊鏈上就意味著它一定是真實的,” Bennett 指的是確保輸入數據的準確性和來源的真實性,她說,“智能合約只能說和團隊為流程自動化而制定的那些規則效果差不多,而且還取決于編程的質量。”
如何遵守合約的運作方式,怎么處理有爭議的合約,針對這些問題還需要區塊鏈的參與者達成一致。創建新的業務流程還也需要在不同用戶之間就這些條件達成一致,而且在實踐中,已經有一些真實的例子,因為人們不能為這些運行條件達成一致而導致區塊鏈項目被擱置。所以,區塊鏈不僅僅只與 IT 相關,它也與合同協議息息相關。
“就像最近有人對我說的,區塊鏈中 80% 是商業,20% 是技術,” Benett 這么說。
此外,雖然區塊鏈可能分散在數十個或數千個節點上,但智能合約卻不是以分布式管理的。這意味著這些區塊鏈節點無法看到智能合約是如何工作的,換句話說,作為區塊鏈網絡的一部分,這些公司組成的區塊鏈聯盟必須依賴于一個另一個實體來獲取輸入智能合約的信息,這個實體稱為一個 oracle(數據庫)。
區塊鏈網絡使用一些名為 oracle 的集中式管理軟件作為代理,來查找和驗證真實世界中發生的事件,然后根據預定義的條件觸發一個智能合約。例如,從加利福尼亞運往丹麥的藥品的溫度可以通過集裝箱中的物聯網傳感器進行監控。而傳感器信息由 oracle 軟件收集,然后發送給智能合約,如果在整個運輸過程中溫度范圍滿足條件,智能合約則可以通過區塊鏈觸發事件,例如簽發海運提貨單或對所發貨物進行付款。
如果你的公司是某個區塊鏈聯盟的一部分,例如,一個供應鏈,它并沒有任何辦法知道在智能合約中具體運行的是什么。所以數據就沒有可驗證性。本質上而言,運行 oracle 和智能合約所在服務器的公司無論將什么樣的信息提供給區塊鏈,你都只能原單接受。
“你必須找到一個數據來源,一張表,一個 oracle 來獲取這些數據。目前還沒有標準的流程來驗證數據的真實性。這會是錯誤集中產生的地方,” Gartner 公司的 Litan 這樣說。
“智能合約還不成熟,” Litan 繼續說,“我和參與一個區塊鏈聯盟的公司聊過,我問他們,‘你們如何知道智能合約在做什么呢?他們說他們無法知曉。如果你在現實生活中有一份合約,你難道不想知道它在做什么嗎?”
評論