區(qū)塊鏈技術是近年來人們越來越感興趣和關注的課題。有很多關于這個主題的討論、活動和出版物;然而,大多數(shù)關于區(qū)塊鏈的內(nèi)容都具有誤導性。關于區(qū)塊鏈技術的真相、它的功能以及它對企業(yè)未來的影響,人們?nèi)匀挥泻芏嗬Щ?。甚至有人提出,區(qū)塊鏈將取代醫(yī)生。
不,區(qū)塊鏈不是來統(tǒng)治我們的未來的。作為一名致力于開發(fā)該技術并將其應用于實際場景的技術人員,我認為現(xiàn)在應該對區(qū)塊鏈進行清楚的說明,并就其好處和最合適的用例達成共識。
我認為,人們在解釋這項技術時最常犯的錯誤是,在解釋技術細節(jié)時,甚至沒有提到我們最初為什么需要它。要清楚地理解一個解決方案,最好的方法是首先理解問題本身。那么,區(qū)塊鏈存在的目的是什么?它解決了什么問題?
“共識”是我們在這里尋找的關鍵詞,具體來說,它是計算機系統(tǒng)的共識。由于我們已經(jīng)開始構建多進程、多機器、可伸縮和冗余的系統(tǒng),所以我們在系統(tǒng)的歷史和當前狀態(tài)方面存在共識問題。
我們在這里討論的計算機系統(tǒng)可以被認為由兩個基本部分組成。我們有當前狀態(tài)的數(shù)據(jù),我們有規(guī)則來處理數(shù)據(jù),改變它,創(chuàng)建它。這些系統(tǒng)有多個部分,即通過部分可靠的網(wǎng)絡分布和連接的機器來實現(xiàn)。系統(tǒng)的各個部分對收集到的數(shù)據(jù)進行處理,并根據(jù)系統(tǒng)預先確定的規(guī)則運行,以此,對數(shù)據(jù)進行操作。在此過程中,它們需要彼此同步,而同步的目的是保持數(shù)據(jù)的完整性和系統(tǒng)的共識性。事實上,無論它們是如何分布的,它們都試圖像一個原子實體那樣工作。
當我們有一個分布式系統(tǒng)時,我們經(jīng)常不得不面對共識的問題。為了保持數(shù)據(jù)的完整性和正常工作,分布式系統(tǒng)的各個部分相互通信。不幸的是,他們的通信渠道是不完善的計算機網(wǎng)絡,數(shù)據(jù)可能丟失或延遲。
此外,還存在競爭條件問題,可能會與其他競爭部分的工作發(fā)生沖突。在這些情況下,共識算法可以幫助我們,有幾種成熟的算法,如PAXOSand RAFT。我不會詳細介紹這些算法,但是我們需要知道的是它們是在一個可信任的環(huán)境中工作的。我的意思是,系統(tǒng)中的每一方都依賴于這樣一個事實,即系統(tǒng)的其他組成部分是根據(jù)規(guī)則工作的,而不會試圖破壞系統(tǒng)。
另一方面,分散式系統(tǒng)與分布式系統(tǒng)的不同之處在于,它缺乏中央權威,并且對業(yè)務網(wǎng)絡的其他各方缺乏信任。舊的共識算法在分散的環(huán)境中變得不夠。這就是區(qū)塊鏈解決方案和拜占庭共識算法幫助我們的地方。在分散式的系統(tǒng)中,沒有任何一方說了算。即使我們可以依靠其他各方的意愿,建立一個健全的制度,我們也需要執(zhí)行規(guī)則,并能夠相應地運行這個制度。那么,當沒有人來統(tǒng)治這個體系時,我們?nèi)绾巫屗\轉(zhuǎn)起來呢?當我們進入一個分散的環(huán)境時,我們的共識問題會發(fā)生一些變化,變成拜占庭式的共識問題。拜占庭共識不同于分布式系統(tǒng)的共識。在分布式系統(tǒng)中,所有各方都可以信任對方正確地工作。然而,拜占庭式的共識必須考慮到不可靠的政黨,甚至那些反對體制的政黨。區(qū)塊鏈系統(tǒng)固有的拜占庭容錯算法是分散業(yè)務案例的止痛藥。
區(qū)塊鏈技術的價值在于它所嵌入的拜占庭共識性算法。事實上,塊、鏈只是一個巧妙設計的工具,幫助我們達成共識,并保持它。在區(qū)塊鏈實現(xiàn)中使用了許多共識的算法。舉幾個例子,我們可以提到PoW (work proof)、PoS (proof of stake)、PoA (proof of authority)、PBFT等等……
基于區(qū)塊鏈的系統(tǒng)按其性質(zhì)可分為三類:公共的、許可的和私有的。在公共區(qū)塊鏈中,任何人都可以訪問和參與網(wǎng)絡。比特幣是公共區(qū)塊鏈的一個很好的例子。在一個被許可的區(qū)塊鏈中,只有那些被授權的人才可以參與網(wǎng)絡。私有區(qū)塊鏈是用于替換機構中基于數(shù)據(jù)庫的解決方案的內(nèi)部區(qū)塊鏈。
雖然區(qū)塊鏈因比特幣的流行而出名,但加密貨幣只是合適的用例之一。在企業(yè)界,尤其是在金融業(yè),有很多研究和工作正在進行,以利用這項技術。
企業(yè)應用程序通常更喜歡經(jīng)過許可的區(qū)塊鏈。企業(yè)區(qū)塊鏈系統(tǒng)通常選擇PoA、PBFT算法或其變體作為共識算法。
對于在這個領域工作的人來說,為區(qū)塊鏈找到一個合適的用例是一個常見的痛點。要找到合適的用例,我們應該看到區(qū)塊鏈解決的問題是分散的、不可信的系統(tǒng)。在這樣的系統(tǒng)中,多個參與方共同工作,但并不一定信任彼此。區(qū)塊鏈技術使得網(wǎng)絡中沒有必要信任其他系統(tǒng)。
在過去許多多方協(xié)作的業(yè)務案例中,通常會找到一個新的可信第三方來運行系統(tǒng)。中央銀行、清算與結算銀行等機構都扮演著值得信賴的第三方角色。所有各方都會信任第三方來運行這個系統(tǒng)。企業(yè)區(qū)塊鏈技術將第三方的信任分配給網(wǎng)絡本身。與只與一方信任和共享所有業(yè)務不同,參與其中的每個人都信任整個網(wǎng)絡來正常運行。區(qū)塊鏈和共識算法使得對數(shù)據(jù)達成一致成為可能,甚至可以存儲在數(shù)據(jù)上運行的系統(tǒng)規(guī)則(智能合約)。
那么,我們?nèi)绾螢閰^(qū)塊鏈選擇正確的業(yè)務模型和用例呢?與普遍的看法相反,如果使用傳統(tǒng)的數(shù)據(jù)庫和web服務技術可以合理地實現(xiàn)某些業(yè)務模型,那么區(qū)塊鏈技術很可能不是一個合適的替代方案。另一方面,任何需要建立可信第三方的企業(yè)都非常適合區(qū)塊鏈技術。在這兩種情況之間的任何地方都有區(qū)塊鏈技術候選項,需要單獨考慮。
另一個可能出現(xiàn)的問題是,區(qū)塊鏈如何影響已經(jīng)建立的可信第三方,甚至未來的第三方?同樣,與普遍看法相反,區(qū)塊鏈不能取代這些機構。它只是一個技術基礎設施,仍然需要建立網(wǎng)絡,定義系統(tǒng)的規(guī)則,并負責它。所以區(qū)塊鏈將為第三方做的是通過自動化大部分底層工作來減輕他們肩上的負擔。
在接下來的文章中,我將嘗試深入探討共識主題,并計劃分析實際的區(qū)塊鏈業(yè)務案例。我還想談談我們在應用區(qū)塊鏈技術時所面臨的問題,尤其是大多數(shù)未知的隱私問題和ZKP解決方案。與GDPR相關的問題在多方業(yè)務案例中的含義,以及如何使用區(qū)塊鏈和高級加密協(xié)議解決這些問題,也是我想提到的主題之一。