書接上文,我們繼續分享區塊鏈的單項技術發展。

數據層發展
區塊鏈的數據隨著時間增加而不斷增加,這將導致兩個問題。一是新節點的準入門檻增加,因為其海量的歷史數據將會占用很大的存儲空間,而對存儲空間的高需求將許多沒有高性能設備的個人用戶拒之門外。二是可擴展性與安全性的沖突,如果存在大量的非驗證節點,那么在進行驗證時需指定全節點,這將導致安全性下降,但又不可能要求所有的賬戶都是存儲全部交易記錄,一方面是不現實,另一方面是會導致數據同步時間過長。因此,目前的數據層的發展方向為開發能完成驗證操作但無須存儲完整狀態數據的新型節點,但僅有驗證功能的新型節點仍無法避免因出塊節點高門檻而帶來的中心化趨勢,未來可能需要在出塊節點的輕量化上進行進一步研究。
目前含有驗證功能的輕量節點有:
· 輕節點
輕節點的專業技術名稱為無狀態客戶端,其與全節點是一組相對應的概念。全節點就是傳統意義上的區塊鏈節點,鏈中的每個區塊都包含區塊頭、交易數量、交易列表三部分,而輕節點為了保證數據輕量化,只存儲區塊頭,不存儲全量的交易列表等信息。在新塊出現時,輕節點會被額外提供新塊中全部所需訪問狀態,在收到數據后輕節點通過默克爾證明來判斷一筆交易是否在現在的區塊鏈交易列表中,實現交易的驗證,大幅降低了節點對存儲空間的要求,因此輕節點能夠運行在小容量的個人PC等終端設備上。當前的驗證工作有了一些新進展,以太坊表示可以利用多項式承諾來代替默克爾樹,好處是可以降低驗證成本。
· 簡潔區塊鏈
新的加密貨幣協議Coda提出了一種比輕節點更加輕量的具有驗證功能的節點,支持在移動端運行。這種簡潔區塊鏈節點只需要擁有當前的哈希默克爾根就可以通過一種密碼學證明對交易進行快速驗證。
共識層發展
近年來共識機制的不斷進步促進了區塊鏈的發展,是區塊鏈能夠被迅速和廣泛應用的重要支撐。最開始流行的工作量證明機制(PoW)到權益證明機制(PoS)都是為保證電子貨幣的安全發行而設計的,在性能與拓展性方面的考慮較少。之后出現的驗證池pool和拜占庭容錯PBFT共識機制在性能上有了很大的改進,但相應的,在去中心化上做了讓步。共識機制演化的愈發復雜,若要逐一解釋清楚并非易事,不在密碼學技術上做過多描述,僅介紹各類共識算法的大致特點。
合約層發展
合約層的智能合約是區塊鏈在實際應用中實現自動交易功能非常重要的一環,智能合約的發展方向主要在于運行環境的突破,因為運行環境與區塊鏈整體性能的約束,目前智能合約在實際應用僅能發揮”合約”的作用,而離實現”智能”還有一定距離。
區塊鏈中的智能合約概念最早被以太坊提出,智能合約以代碼形式寫入區塊鏈,在之后的交易中依靠條件語句觸發合約規則的執行。但智能合約的執行會為整個區塊鏈網絡帶來一定的安全隱患,因此智能合約一般會在沙箱環境中運行,目前以太坊的EVM與超級賬本的Docker容器即是區塊鏈中的沙箱環境。另外智能合約的編程語言種類也逐步增加,以太坊目前僅支持特定的Solidity語言,而后的超級賬本還支持golang、JAVA、Python等語言。
目前智能合約還無法在高隱私保護或是跨鏈等復雜場景中應用,主要因為其受制于區塊鏈整體性能的約束,而繞開區塊鏈性能約束的辦法主要為通過實現合約層與共識層的解綁,使智能合約運行在可信的硬件環境總,共識層僅記錄智能合約執行結果,不過這類解決方案的安全性等問題還在持續的討論中。
應用層發展
作為區塊鏈的展示層,應用層中的應用場景一般就是與用戶直接接觸的業務場景。應用層有點像是平常的APP、web網頁等前端應用概念,應用層將請求數據發送給區塊鏈網絡,在進行完數據處理之后,區塊鏈網絡又會將數據結果返回給應用層,使其與用戶進行交互。
應用層的發展就是前臺業務與技術的發展,幾乎不屬于區塊鏈技術的范疇,因此不做過多討論。