IBM的區塊鏈,不屬於真正的區塊鏈

任何一項創新技術的出現,都會伴隨真偽面,區塊鏈技術就是其中之一。初期階段,由於該技術邏輯的隱蔽與專業性,關於什麼叫區塊鏈技術,除了極少數參與其中的專業人士外,其他基本屬於吃瓜群眾。為了便於大家一起學習與進步,今天我們分享的這一篇故事,希望能夠幫助到您對區塊鏈技術有一個更高臺階的瞭解。

圖片來源:cointelegraph

斯圖亞特·波普霍伊 (Stuart Popejoy)在金融行業搭建交易系統和交易構架領域有15年的經驗。2016年,在與威爾·馬蒂諾(Will Martino)一起創立Kadena之前,斯圖亞特曾在摩根大通的新產品部門工作,負責領導和開發摩根大通的主要區塊鏈產品Juno。斯圖爾特還為摩根大通編寫了算法交易腳本,那時他還創建了Kadena簡單、專用的智能合約語言Pact。

IBM是企業級區塊鏈領域的主要參與者,提供基於Hyperledger Fabric的區塊鏈平臺服務,並與沃爾瑪和Aetna等大公司一起推出了區塊鏈應用試點。

作為開源項目Hyperledger基金會的眾多貢獻者(包括最近宣佈的微軟和Salesforce)之一,IBM在把Fabric包裝為私有或“許可”區塊鏈方面進行了大量投資,這意味著Fabric可以提供如比特幣或以太坊等知名區塊鏈提供的通用功能,同時也刪除了一些不適用於企業商用的功能。

然而,IBM實際銷售並稱之為“區塊鏈”的技術-即Hyperledger Fabric,犧牲了無論對許可鏈或是公有區塊鏈來說最為重要的特徵。Fabric的架構遠比任何區塊鏈平臺複雜,同時對抵禦防篡改和攻擊的能力也較低。大家可能會認為“私有”區塊鏈至少在可擴展性方面表現優越,但Fabric在這方便也失敗了。簡而言之,基於Fabric試點項目的部署環境非常複雜,且存在安全隱患,無法與其業務進行擴展。

市場上的其他區塊鏈項目

2016年,當我在在摩根大通工作時組建了一個新興技術小組,負責研究和審查銀行潛在或已經進行戰略投資的區塊鏈項目。我們對Hyperledger,Axoni,Symbiont,Ripple和以太坊早期的版本進行了深入分析,發現真正適合企業使用的區塊鏈項目非常稀缺。不幸的是,我們今天看到Hyperledger Fabric依然存在同樣的問題。

我們當時提出的問題包括:區塊鏈的智能合約語言如何安全、簡單地表達複雜的業務規則?如何保證公鑰簽名有效?系統是否具有擴展性?是否可以允許其他更多的參與者(節點)加入,其性能又不會顯著降低?而且,對於具有長遠戰略思維的企業,是否可以輕鬆地與其他公鏈和私有區塊鏈進行互操作?

如果以這些問題作為衡量的框架,我認為IBM的系統從根本上缺乏區塊鏈的必要元素,不僅表現性能具有誤導性,並且長期業務發展的可行性也有待商榷。雖然我和同事們沒有看到具體數字(TPS:每秒事務處理量,節點數),這在當時是區塊鏈是否被採用的唯一因素。但我們認為教育人們瞭解區塊鏈是什麼很重要,這有助於幫助每個人更好地瞭解區塊鏈新興技術的前景。

什麼是區塊鏈?

為了真正理解IBM區塊鏈的立場,我們需要了解區塊鏈本身的含義。區塊鏈的核心是一個分佈式的、不可篡改的賬本,受到共識機制的監督,它可以真實地記錄每一筆事務或交易。在比特幣和以太坊這樣的公有區塊鏈中,這種共識是通過工作證明或“挖礦”來實現的。在許可區塊鏈中,可以通過提供加密簽名的參與者對所寫內容進行投票來達成共識。無論是哪種方式,都沒有中央權威機構對真實情況進行仲裁。

IBM對區塊鏈的定義涵蓋了區塊鏈分佈式和不可篡改的特性,但卻忽略了分佈式共識 - 這是因為Hyperledger Fabric根本不需要真正的共識機制。相反,它建議使用名為Kafka的“訂購服務”。問題是,如果沒有參與者之間強制執行的、民主的、由加密保證的投票安全,你就無法證明是否有人篡改賬本。容錯共識是區塊鏈的標誌性特徵,沒有它,IBM的“區塊鏈”只不過是一個帶時間戳的列表。

V1.0 of hyperledger Fabric

Fabric的體系結構暴露了許多可被惡意利用的漏洞。例如,它引入了“網絡內部”的公鑰加密和驗證器簽名,來提供主要的安全保證,但是該安全保證是在外部簽名提交之後發揮作用。這從根本上使經過驗證的比特幣和其他實際區塊鏈的安全模型無效,其中任何交易的輸出僅由外部用戶的公鑰簽名確保,並且系統不能以任何方式參與進來。

與此形成鮮明對比的是,Fabric上唯一重要的簽名是驗證器的簽名,而用戶簽名則消失在通過網絡複製的任意數據集中。

Fabric 的研究人員在性能數據的表現上反覆無常,因為從根本上說,Fabric的架構無法在保持最佳性能的同時進行擴展。 Fabric使用多鏈環境(稱為“通道”)來保證參與者之間通信的機密性。保證參與方通信的機密性是私有“企業”區塊鏈的一個重要特徵,這必然涉及到權衡。但多鏈解決方案不是解決可擴展性問題的最佳選擇,它會使得部署非常複雜,還會出現節點不均勻,智能合約不可靠的問題,並且潛在失敗的可能性也會增加。

因此,標準Fabric部署的性能啟動並不令人滿意,隨著節點的增加還會迅速降級並且變為單通道:如果您想跨多個“通道”與整個網絡進行交易,這些數字甚至無關緊要。

即便如此,在查看各通道時,該系統仍難以達到每秒800次以上的交易量(TPS),即使是設置16個通道,TPS也幾乎無法超過1,500 ,還會有10-20秒的延遲,但這已經系統最高的吞吐量了。

最近Fabric聲稱TPS已經達到20,000,但研究人員對該架構所做的改變已經沒有了區塊鏈的影子,背書者不再充當驗證者而“Kafka”被認為是唯一可能的訂購服務(從理論上講,Fabric可以接受真正的區塊鏈共識,但他的處理速度很慢,沒有人會在生產中使用它)。最後,這些仍然是單通道的性能,這意味著區塊鏈作為共享真實數據來源的整個概念都是無效的。

為什麼智能合約和混合期權很重要

在選擇區塊鏈時,最後的考慮因素是他們打算如何擴展私有數據庫,以及他們的工具(如智能合約語言)如何幫助企業在更大範圍內取得成功。智能合約不僅僅是一段代碼,他是業務邏輯的體現,智能合約可以確保區塊鏈上的房屋安全,確保數字身份,甚至可以託管買方和賣方二手車的交易。重要的是,智能合約非常可靠,並始終按照預先的設定執行。

在區塊鏈上構建任何東西時,您需要通過智能合約實現您想要做的事情(購買,出售,打包數據等)。您使用的語言越簡單,您就能越快地構建程序或系統並呈現給利益相關者。更重要的是,您希望智能合約的功能能夠帶來收益或者可以推動業務的發展。

Fabric “Hello World”

Hyperledger Fabric的智能合約(chaincode)支持多種編程語言編寫,包括通用的Java或Go語言。但是在通用語言提供的便利性與特定編程語言提供的安全性之間要做出權衡。如果代碼有缺陷或不正確(代碼不是為區塊鏈而設計的),可能會導致數百萬美元的丟失。智能合約語言必須是專門設計的,並且是安全的。理想情況下,它也應該易於學習,並且易於在所需的區塊鏈環境中使用。Chaincode在這方面很大程度上失敗了,我們發現只需執行150行代碼就可以執行經典的程序員教程“hello world”。而把這些大量的代碼放在智能合約上可能會導致數百萬美元的損失。

沒有為未來做好準備

區塊鏈生態系統中最有經驗的觀察者越來越意識到私有鏈和公有區塊鏈並非存在於真空中,而是希望合作:私有區塊鏈希望令牌可以在公有區塊鏈上流通,供消費者使用,公有區塊鏈分佈式應用程序希望將敏感信息存儲在私有區塊鏈上。不幸的是,IBM Fabric(以及R3 Corda)的用戶可能會因為架構的完全不兼容性,無法與公有區塊鏈連接,而且它的智能合約語言也無法在公開和私人環境中無縫銜接。

IBM通過公佈其合作伙伴關係佔領了各大媒體的頭條,因此深入瞭解該技術到底可以做些什麼非常重要。IBM的“區塊鏈”技術在很多方面都存在缺陷 - 包括安全性,性能和可靠性, 因此它無法為希望使用區塊鏈技術改進業務的公司提供良好的解決方案。為了真正實現區塊鏈的價值,成熟的客戶將尋求真正的挑戰者,他們可以提供更好的工具、更好的區塊鏈解決方案和更好的願景,他們也知道如何利用區塊鏈這項技術。

參考原文:https://cointelegraph.com/news/why-ibms-blockchain-isnt-a-real-blockchain

聲明:文章僅代表斯圖亞特的觀點,不代表汽航島的立場

鳴謝:慷探網絡