【得得技術指南】技術洞察系列之區塊鏈拓撲結構區塊鏈
分布式賬本的“一致性”問題,是一個平衡的問題。達成這一目標需要付出相應的資源:或犧牲交易速度,或限制交易的靈活性,或延后確認時間,或提高對全網的傳輸要求,都是不同系統條件下進行的適應性選擇。
在傳統的賬本系統中,所有用戶的交易信息都寫在同一個賬本上,由此來保證用戶之間不出現沖突的交易信息。而這個唯一賬本的記錄、檢索一般交由可信任的第三方機構進行(如銀行)。在這一系統中,所有用戶向第三方機構支付信任,由機構保證賬本不被惡意篡改。這是一種中心化的體系,好處是機構可以集中處理大量交易信息,但同時所有交易行為都不得不經過機構的處理,用戶在一定程度上將受到機構的控制。
區塊鏈技術正是提出一種分布式賬本的架構,把第三方機構從系統中剔除,讓人與人之間可以直接進行交易。區塊鏈的解決思路是讓所有用戶都擁有一本賬本,所有用戶都參與到記賬的過程中。然而這樣也帶來一個問題:如何確保所有用戶擁有的是同一本賬本?亦即:如何保證賬本信息的一致性?
在區塊鏈中,交易信息是向全網絡廣播的,每位用戶都能接收到交易信息。由此,賬本信息的一致性問題,實際上變成一種“唯一性”問題:只要設計一種規則,確保只有唯一一種交易信息能通過篩選保留下來,即可保證各個用戶記錄下來的是同一種信息。
在區塊鏈,“區塊”和“鏈”就是實現這種唯一性的數據結構。
區塊存儲的是一段時間內的交易信息,實際上是對交易信息的一種封裝;在比特幣里,一個區塊可存儲約3000筆交易信息。一旦這個區塊被確認,3000筆交易就一同被確認了。如果不對交易信息進行封裝,每次確認一筆交易,則需要高頻的確認操作,效率降低。
同時,每個區塊又包含了上個區塊的地址信息,環環相扣,形成從最新區塊到創世區塊的一條“鏈”。新區塊的產生有多種方案(如PoW、PoS、DPoS等),分叉的情況時有出現;而大部分區塊鏈項目都共同遵循“選最長鏈作為主鏈”的規則。這一規則可保證即便出現分叉,在一定時間后,總能有一條鏈條是公認的“主鏈”。(如圖1)
圖1 “選最長鏈作為主鏈”規則
由于最長鏈是唯一的,所有用戶都將把同一鏈條記錄在本地數據庫上,這就保證了賬本的唯一性,也就解決了賬本一致性的問題。
此外,鏈式結構還帶來一個好處。所有的區塊都通過“鏈”聯結在一起,形成了一個緊密的整體。如果黑客想要篡改某個區塊的內容,則無法直接插入某個新的區塊,而需要從此往后的整個鏈條重新替換,代價高昂。由此可避免篡改交易等攻擊。
然而這種數據結構仍然存在問題:吞吐量低。在區塊鏈中,為了避免存在沖突的交易信息(不允許持續的分叉),也為了保證賬本的一致性(需選出唯一的鏈),區塊鏈采用的是最長單鏈結構。由于每次只能新增一個區塊,區塊信息的傳播、確認需要時間,而區塊的容量有限,這就使得一段時間內,能記錄的交易信息存在上限。可見,“吞吐量低”實際上是滿足一致性要求而付出的代價。目前比特幣區塊鏈平均一秒只能處理約7筆交易,與中心化的電子支付系統存在較大差距。
為解決吞吐量問題(可拓展性問題),一個重要的思路是讓多筆交易可以同時并行處理。側鏈技術通過對主鏈上的款項進行鎖定、解鎖的操作,可把不同區塊鏈進行聯結(如圖2),擴充了交易處理的空間。而分片的思路則是把用戶劃分為不同的片區,每個片區里的交易可以獨立驗證、并行進行,而跨片區之間的交易則需進行額外處理(如圖3)。在側鏈、分片技術中仍存在主鏈,兩者均是通過限制交易的靈活性(如款項被凍結、交易的對象受限等),在保障安全的前提下,滿足賬本的一致性。
圖2 側鏈示意圖
圖3 分片技術示意圖
而另一方面,DAG(有向無環圖)則是對另一種數據結構形式的探索。如果說區塊鏈是一個同步系統(一段時間內所有用戶共同確認一個新區塊),DAG則是一個異步系統。在DAG中,區塊可以隨時產生,而一個區塊與多個父區塊進行連接(如圖4)。這樣一來,所有人可以隨時記賬,交易信息的記錄速度大為提高。
圖4 DAG示意圖
然而由于多個區塊同時產生,且均有效,DAG無法以“唯一最長鏈”來保證一致性。在這方面,有的項目以“歷時性”來保證DAG上賬本的一致性。具體而言,在DAG中一個新區塊將隨機選擇兩個次新的區塊進行連接,同時對與之相連的所有區塊進行交易信息的驗證。經歷了多次驗證的區塊,其交易內容存在沖突的可能性很低,可被認為是已確認的交易信息。這一方案里,一致性的驗證依賴于區塊網絡的延伸和增長。
其他項目則以“全連接”來保證賬本一致,即每個新的區塊都與之前所有區塊相連,并驗證此前的所有交易信息。還有項目以“次序”來保證一致性,由區塊遞歸投票來確認新的區塊等。
DAG帶來吞吐量的提高,然而“一致性”始終是個有待解決的復雜問題,目前問題的解決都需要付出一些代價:可能是交易信息的確切驗證時間有所延誤;也可能是節點與節點之間需要進行大量的網絡通訊,使得實際交易速度仍有待觀察。
歸根到底,分布式賬本的“一致性”問題,是一個平衡的問題。不妨說“一致性”是一個系統目標,而達成這一目標需要付出相應的資源:因此或犧牲交易速度,或限制交易的靈活性,或延后確認時間,或提高對全網的傳輸要求,都是不同系統條件下進行的適應性選擇。相信上述提及的不同技術,將在不同的應用場景下,得到進一步的探索和驗證。
1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。