區塊鏈系統的一般工作流程
區塊鏈系統有很多種,第一個應用區塊鏈技術的軟件就是比特幣,事實上區塊鏈的概念就是比特幣帶出來的。到現在為止,已經出現了相當多的基於區塊鏈技術的衍生系統,比如閃電網絡、公證通、以太坊、超級賬本項目等。每一類系統都有自己的特點,例如汽車設計,有的設計成跑車,有的設計成運輸車,有的設計成商務車,但是有一點,無論是什麽類型的車,它的工作方式或者說工作流程都是類似的,在本質上它們都是同一類技術結構的產物。在這一小節,我們從一般性的角度闡述一下區塊鏈系統的工作流程,為了便於說明,我們會選取一些場景例子。
我們先來看一個轉賬交易的流程。轉賬交易本質上就是發送一筆數據,這個數據可以表示為資產,也可以表示為訂單或者其他各種形式的數據。
整個數據的發送過程其實還是很簡單的,數據發送出去後,會被打包進區塊,然後廣播出去給所有的節點確認,確認沒有問題後就寫入到各自的本地區塊鏈賬本中,當網絡中的大多數節點都確認寫入後,這個轉賬過程就算是完成了。有朋友可能會問,在這種分布式的網絡中,怎麽能知道是被大多數節點確認寫入了呢?這裏並沒有什麽服務器登記呀?這個問題我們先留著,在下面講到區塊鏈分類的時候會有詳細的解釋,大家可以先思考一下。
這個工作流程圖是有代表性的,其他各種系統都是在這個基礎上進行衍生和擴展。比如有些會增加身份認證功能,以確保只有符合身份驗證的用戶才能發送數據;有些則擴展交易數據的表達能力,不但能用來表示一般的交易轉賬,還能表示更復雜的商業邏輯。各種應用很多,但是萬變不離其宗。
實際上,說一千道一萬,整個區塊鏈網絡,就是大家共同來維護一份公共賬本。註意了,這個公共賬本是一個邏輯上的概念,每個節點各自都是獨立維護自己賬本數據的,而所謂的公共賬本,是說各自的賬本要保持一致,保持一致的部分就是公共賬本:
有些節點在廣播新的數據,有些節點在接收數據,大家共同維護一個賬本,確保達成一致。區塊鏈技術其實就是圍繞如何保持數據的一致、如何讓這個公共賬本的數據不被篡改來展開的。為了解決這些問題,區塊鏈技術擁有一套技術棧,我們通過以下章節來闡述。
區塊鏈系統的一般工作流程