哪些適合用區塊鏈?哪些不適合?

買賣虛擬貨幣
前言:關於區塊鏈適合做什麼和不適合做什麼?一直都有爭議。那麼,透過什麼方式來辨別呢?本文用詳細的流程圖來應對這個問題。本文作者是Mohammed ElSeidy,由“藍狐筆記”社群的“鑫鑫”翻譯。圍繞區塊鏈的大肆炒作嚴重誇大了這項新技術的實際能力和應用。這種狂熱使得企業、開發者和投資人難以理解其實際的侷限性並找出適合區塊鏈或者分散式賬本技術的正確應用場景。來自ETH Zurich的Karl Wüst和Arthur Gervais最近釋出了一份同行評審論文,它提出了一種結構性的方法,該方法有助於確定特定應用問題應該如何解決的合理技術方案。本文中,我們將介紹這種方法並解釋論文中的用到的一些例子。

技術對比

區塊鏈是一種持久化(儲存)狀態的"僅可新增"的賬本。狀態可以是交易資訊,程式資料,或者雜湊過的文件等等。基本上,就是任何需要持久化儲存的資訊。資料庫擔當這項任務已有幾十個年頭。此外,區塊鏈代表了一種新的狀態持久化技術——並且包含數字簽名和防篡改在內的額外特性。讓我們來重新審查一下三種主流技術:

1.資料庫

首先,資料庫(單個,並行,或者分散式)被用於持久化狀態和查詢資料已經有幾十年歷史。大量有價值的研究已經被用於最佳化不同層級的查詢處理和狀態持久化上。

• 自然地,在交易吞吐量和查詢延遲方面它們擁有最高的效能。
• 然而,一直以來,它們被設計為單一機構的中心化管理。因此,不同參與方之間不需要共識機制。

2.公鏈(Permissionless Blockchains)

公鏈是不受中心化機構管理的公共賬本(狀態)。也就是說,賬本分佈在一個動態P2P網路中,網路中可能還會有惡意的節點。

• 中本聰的智慧在於設計了一種分散式狀態上維持共識的機制,且是在動態和不可信的網路中實現的。這意味著公鏈可以容忍網路中包含少量拜占庭或不可信行為。

• 凡事都有代價,需要在效能消耗(吞吐量和延遲)上有所取捨。在比特幣中,急劇的效能下降是由於POW協議本身的設計就非常慢。和普通資料庫相比,在任何公鏈中,效能的下降都是不可避免的。因為不管怎麼樣,要維護分散式狀態的一致性,(地理分佈)網路中的不同節點之間就必須進行通訊。

3.聯盟鏈(Permissioned Blockchains)

聯盟鏈代表了一種混合式的設計選擇。特別的,他們不是單一的中心化實體,而是授權給一小部分預先選定可以寫入狀態的可信節點。

• 由於資料庫網路不會擴充套件到大量的公共節點,和公鏈相比,它的吞吐量和延遲要好得多。
• 儘管如此,它的效能仍然無法跟一箇中心化資料庫相匹敵。

在看完這些不同系統之後,我們很容易認識到沒有一個適用於所有場景的方案。任何事情都需要有所取捨。不同的應用有不同的需求,因此需要不同的合適的解決方案。

"你需要區塊鏈嗎?"流程圖

選擇正確技術方案的流程圖。TTP(Trusted Third Party)代表可信第三方,writer是一個可以寫入狀態到資料庫或者區塊鏈的實體。

這一節描述了論文中一個通用的高層次流程圖,用於為你的應用尋找合適的技術。注意writer是一個可以將狀態寫入資料庫或區塊鏈的實體。

1.如果你的應用不需要持久化狀態,那麼很明顯不需要區塊鏈或者任何資料庫。

2.類似的,如果只有一個寫入狀態的writer,那麼和常規資料庫相比區塊鏈並不能提供額外的保障。相反,從效能角度來說資料庫可能更加高效。

3.否則,如果有超過一個寫入狀態的writer,我們選擇另外一條路徑。問題變成了是不是有一個線上TTP(可信第三方)就足夠了,或者換句話說,是否需要防篡改。如果應用不能依賴單一可信實體,我們可以進一步分析是否需要區塊鏈。否則,不需要用區塊鏈,從效能角度來說依賴一箇中心化實體更加高效。

4.下一個問題是"所有寫入狀態的writer的身份是否可知?"。如果由於身處不可信的動態網路因而身份不可知,比如網際網路,那麼公鏈是合適的選擇。

5.否則,如果身份是可知的,那麼下一個問題是"這些writer是否彼此信任?"。如果是,那麼也不需要區塊鏈,使用提供共享寫入許可權的資料庫就足夠了。否則,如果writer們不信任彼此,那麼最合適的技術是聯盟鏈。

6.最後,如果是聯盟鏈,取決於是否要求公開可驗證性,允許任何人讀取狀態(公開聯盟鏈)或者只有少部分受限的使用者(私有聯盟鏈)。

應用例項

讓我們透過一些例子來理解什麼應用確實需要區塊鏈,哪些不需要以及為什麼不需要。

不需要區塊鏈的應用

• 供應鏈管理(SCM):這的確是一類反覆出現的應用。讓我們按照流程圖來找出最為匹配的技術。

1.SCM確實需要儲存資料。
2.涉及多個writer,即擁有最終產品的某些部分的不同參與方。
3.繼續我們的方法,SCM在技術上很可能總是使用一個線上TTP。例如,Skuchain承認只需要單一的信任源,然而這就去除了區塊鏈的去中心化成分,因此它等價於一個可信的中心化伺服器。

4.如果那樣做不可行,至少所有的writer是可知的,這樣留給我們的只有聯盟鏈或者不使用區塊鏈這兩個選擇。

5.SCM在數字和物理世界之間的介面存在一致性問題。通常需要人或者某些受單一writer控制的機器來登記到達倉庫的某個商品,如果質量沒有問題的話。如果這些僱員的操作是不可信的,那麼整個供應鏈就是一種技術上的妥協,因為惡意writer可以提供任意資料。從另一方面來說,如果所有的writer們都是可信的,那麼就不需要區塊鏈,因為使用一個提供共享寫入許可權的常規資料庫即可。

注意如果透過一些技術手段,數字和物理世界之間的連線可以透過一種安全的方式實現,那麼前面的論證可能會發生變化。

• 物聯網:很多人提出了區塊鏈技術在物聯網(IoT)上的可能使用場景,透過智慧合約來為資源的消費和供給的支付提供一個自治系統。由於系統固有的去中心化特性,實體們彼此互不信任,使用區塊鏈似乎很自然。

然而,和供應鏈管理一樣,物理和數字世界之間的介面造成了潛在的問題。如果計算機把從感測器中讀到的數值提供給區塊鏈,區塊鏈無法保證這些數值的正確性。如果只是需要自動化,沒有必要使用區塊鏈,可以用一個可信方來代替。

適合使用區塊鏈的應用

跨行和跨境支付:對於金融應用,一般來說區塊鏈技術非常合適,因為參與方通常都希望規避風險並且不想依賴強信任假設。

1.在跨行支付中包含多方(銀行)擔任的writer及想要交換價值和交易的主體。因此狀態需要被持久化。
2.銀行都是writer,因此有不止一個writer。
3.在單幣種系統中,中央銀行可以作為TTP。
4.否則,還有一種配置,中央銀行不想擔任每筆交易的驗證者,只想作為一個認證授權機構給銀行們發放牌照,讓它們參與到系統中來。這意味著系統的所有writer都是可知的,我們可以使用聯盟鏈。

• 貿易和公平交易協議:類似的,數字商品的交易很可能不需要一個可信的爭端調停者,因此非常適合使用區塊鏈,而物理商品則仍然需要可信第三方來解決爭端。

• 電子投票:類似的,電子投票也具有區塊鏈可以派上用場的屬性。例如,一方面,隱私是一個主要需求,因為投票必須是匿名的從而避免被脅迫。另一方面,電子投票需要提供一定的公開可驗證性。由於有這些需求,使用區塊鏈來幫忙獲取這些渴望得到的屬性似乎是合理的。

結論

和傳統觀點相反,區塊鏈不是一種能解決所有技術問題的方案。實際上,它們更適用於滿足一組要求的某一類應用。特別是那些寧可犧牲效能來換取去中心化和防篡改的一致性狀態的應用。

儘管如此,目前很多"承諾的"應用仍然不適合使用區塊鏈,比如供應鏈管理。在遇到那些狂熱的開發者和那些跟風炒作並且不真正去思考他們方案的底層技術和必要性的企業家們時,我們需要保持警惕。

到現在為止,有信任需求的數字商品和服務似乎是最適合使用區塊鏈的應用場景。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;