超塊鏈(Hyperchain)擁有先進專利演算法的並行區塊鏈

買賣虛擬貨幣
超塊鏈是一種全新的區塊鏈技術,以高效能和高度資料相容為設計目標,主要解決塊效率低下、算力耗費嚴重和設計以交易導向為主而引發的應用侷限性。區塊鏈作為下一代網際網路基礎設施的候選技術,仍需要解決諸多不足,超塊鏈以此為目標,提出分散式系統下的CAP分時一致性方法,並以此理論基礎設計出全新的Buddy共識演算法,為區塊鏈技術提供了三種全新的特性:可並行出塊,可處理離散資料,鏈上可承載虛擬鏈。其他次要新特性包括如內建的跨鏈操作、自定義共識等可被應用層直接呼叫,這些都極大的拓寬了區塊鏈的適用範圍。超塊鏈同樣支援交易事務、智慧合約等現有區塊鏈的全部預設特性,而且更加高效。超塊鏈設計目標超塊鏈將成為一代高效能、對上層應用友好、開放、敏捷和可定製的區塊鏈技術,以期足以在更廣泛領域內承載各類網際網路應用。在基本架構的層面上解決現有區塊鏈效能差、侷限於交易導向、資料型別受限、去中心化不佳等致命問題。超塊鏈的具體技術目標是:· 資料結構及演算法充分並行化以提高效能· 節點對等,完全去中心化
· 對離散(非一致性、非結構化)資料有良好的支援· 不依賴特定的基礎幣,不依賴特定的賬本· 內建對智慧合約、跨鏈操作等特性的支援· 開放架構,支援應用層自定義共識和自定義鏈上資料· 支援鏈上虛擬化基本原理
超塊鏈以更高並行性為設計目標,而現有區塊鏈在資料結構上是完全序列的,這一硬約束是區塊鏈的關鍵瓶頸,超塊鏈首先在鏈結構上作了大幅的改進,提出全新的並行的結構(詳見資料結構一節),這一改變可以充分利用分散式網路天然的並行性優勢,大幅提高出塊效率。並行的資料結構並不能直接帶來效率,現有共識演算法普遍基於交易賬本,並不支援並行。超塊鏈設計了全新的具有並行特性的共識演算法,該演算法在Paxos演算法理論(一種分散式系統容錯演算法)的基礎上做了大幅改進(詳見共識演算法一節),採用對等互證的原理,將區域性共識有條件擴充套件為全域性共識。並行鏈結構存在著一定的回溯不確定問題(回溯指標不唯一),我們透過鏈結構中的週期性“超塊(Hyper Block)”來解決回溯不確定性問題,保證鏈結構和傳統序列鏈具有同樣嚴謹的一致性。超塊鏈對所支援的資料結構沒有硬性限制,是一種高度開放的區塊鏈技術。超塊鏈採用與現有區塊鏈相同的方式來支援智慧合約等應用特性。超塊鏈滿足區塊鏈技術的去中心化、對等共識、前向依賴三大特徵。
超塊鏈完全不同於現有交易導向的序列區塊鏈,而是一個適用於更多應用場景的並行鏈。1. 資料結構

超塊鏈的鏈塊分為區域性塊和超塊兩種,超塊鏈的資料塊結構與傳統區塊鏈的鏈結構相仿,無論是區域性塊或是超塊都是一種前向依賴的鏈式結構,拓撲結構上均為由塊頭和塊體構成。

整個區域性塊的整體組裝過程如下演算法所示:

超塊是超塊鏈為了解決並行性和回溯一致性的矛盾而設定的週期性資料結構,這個結構也是一個前向依賴的鏈式結構,同時記錄了區域性塊的相關資訊。

在週期性的超塊之間,區域性塊並行出塊,與超塊一起形成以下的結構。

整個超塊的整體組裝過程如下演算法所示:

構成超塊鏈並行結構的區域性塊和超塊,各自依據前序雜湊值進行錨定,並且不同子鏈各自可以採用Layer2共識進行進一步的加強難度累積,從而實現整個資料結構的資料一致性的高可靠。

2. 共識演算法

超塊鏈的共識演算法主要解決在並行條件下的資料共識問題,同時還要支援非一致性資料,因此除POW以外的現有區塊鏈共識演算法(基於特定一致性資料的共識)並不適用,因此我們提出了一種基於對等互證原理的全新演算法,這一演算法借鑑了Paxos演算法的實施思想,但作了大幅改變,避免了該演算法可能產生的隱式中心化,實現了超塊鏈完全去中心化的並行共識演算法——Buddy共識演算法。

在Paxos演算法中,存在Proposer、Acceptor、Client、Learner這幾種角色,該演算法是為了實現分散式一致性和容錯而設計,節點關係並不是對等場景。在超塊鏈網路的完全對等場景中,我們將角色合併處理為Proposer、Acceptor兩個,即每個Proposer同時也是Client,每個Acceptor兼具Learner。這一合併的基本立足點為:每一個節點既是Server也是Client,每個Client獲得服務的條件是為對等方提供Server服務。我們將這種對等關係稱為Buddy。

利用狀態機理論形式化描述如下圖所示,如上文所述,網路參與節點存在著“建議者”和“Buddy夥伴”兩個狀態,其中如前文所述的Acceptor也即為“Buddy夥伴”,有4種不同的響應。任何網路參與節點在“建議者”狀態下,上鍊不成功則依然是“建議者”,發出邀約獲得透過則轉變為“Buddy夥伴”狀態,在此狀態下透過其他邀約則繼續保持“Buddy夥伴”狀態,發生通訊異常則自動退回“建議者”狀態。

圖四  Buddy共識演算法節點狀態機圖

Buddy共識演算法將共識分為兩個階段:區域性共識和全域性共識。區域性共識由有資料上鍊需求的一對節點為起始,透過廣播各自的共識協議而發現對方並提出共識請求,此時節點角色為Proposer,當收到任意Acceptor的回覆後,Proposer會依據預定義的共識指令碼來決定選擇哪一個Acceptor作為Buddy,並按照該共識指令碼組裝共識資料。這一共識資料被視作初始區域性鏈由兩個節點共同擁有。接下來,這兩個節點作為新的Proposer,重複前一過程,使區域性鏈以2n的速度增長,直至共識指令碼所約定的長度。該過程在系統中是並行進行的,因此係統中將同時存在多條區域性鏈。

全域性共識的執行是週期性的,全域性共識過程將並行存在的多條區域性鏈的相關資訊固化到超塊中,形成超塊鏈特有的並行鏈結構。全域性共識由區域性鏈的代表節點來執行,該代表節點由區域性鏈的參與節點按照區域性鏈的共識指令碼來產生,因此會有多種產生方法,預設由區域性鏈的尾節點執行。代表節點採用與區域性鏈類似的方式,按照超塊定義的共識指令碼,計算超塊,並在節點間達成共識,全域性共識過程至此完成,鏈上資料達成一致性的狀態。新一輪的共識同時開始,新一輪的共識將以最新超塊的數字指紋作為共識依據。

需要強調的是,全域性共識和區域性共識也是並行進行的,全域性共識除了具有周期性和序列性的特點,其本身並不阻塞區域性共識的進行。

4. 技術特點和優勢比較

超塊鏈在基本架構設計上摒棄了序列化資料結構的硬性限制,使用並行方法處理區塊鏈的共識問題,以此解決了現有區塊鏈技術的幾大瓶頸問題,包括序列化導致的效能問題、共識演算法的擴充套件受限於鏈上資料問題、資料型別有限且難於擴充套件、算力消耗問題、偽去中心化問題等。

超塊鏈沒有采用交易導向的設計,而是面向更廣泛的網際網路行業資料處理設計了分層處理機制,鏈塊層的共識和應用層行為互不阻塞。超塊鏈不需要發行基礎幣,不依賴特定的賬本,不解釋鏈塊使用者區中的資料,鏈塊使用者區的資料交由應用層處理,從而對上層提供了更大的資料靈活性,並且允許應用層自行定義基於使用者資料的共識指令碼。這樣一來,鏈上資料不再侷限於特定的賬本結構和基礎幣交易記錄,鏈上資料的地位也更加平等,允許多幣與多賬本共存。當上層應用使用超塊鏈技術發幣或產生賬本的時候,仍然可以保持與其它區塊鏈數字幣或賬本相當的可靠性。當採用恰當的應用層共識指令碼時,甚至可以在超塊鏈上虛擬執行另外一種傳統的區塊鏈。

超塊鏈是完全去中心化的,其去中心化特性是由共識演算法決定的。相比而言,POW是一種完美的去中心化手段,但其所付出的算力成本是高昂的;POS類演算法解決了算力問題,但實際上賦予了部分節點過多的權力,對等性受到一定的影響;BFT類演算法簡潔高效,但嚴重破壞了區塊鏈的去中心化特性,淪為多中心化甚至傳統中心化系統。BFT類演算法還有另外一個問題就是其設計是用來解決“容錯”場景下“一致性”的問題,這和區塊鏈中的“共識”一詞的實際含義是有很大區別的。我們認為,預設立場的“強一致性”是中心化的容錯概念,而不是去中心化場景下的共識概念,與“去中心化”和“對等”的概念是背道而馳的。超塊鏈所設計的Buddy演算法思想與Paxos演算法類似,但我們作了大幅改進以避免出現Paxos中預設立場的“強一致性”,保證運算節點的完全對等性。

超塊鏈是遵循並行原則設計的區塊鏈,同時又利用不同分層處理共識來實現了共識演算法的可擴充套件性,因此可以在區域性鏈上同時執行多種不同的共識,支援多種數字貨幣和賬本,這一特性為跨鏈操作提供了天然的便利性,跨鏈操作本身也可以被序列化和固化下來,提供額外的信用證明。超塊鏈內建了跨鏈操作引擎供應用層直接呼叫,並且可以隨時擴充套件這些操作以適應更多的區塊鏈互操作。

技術方案

1. 整體架構

2 對等層

使用P2P技術構建的去中心化的對等網路,保障節點在網路層的對等操作。

3. 資料層

基於對等層之上建立的虛擬鏈空間,鏈空間由全體節點共同維護。節點不必維護全部鏈資料,只需保留對自身業務有意義的部分資料。透過全網所有節點來實現鏈資料的冗餘儲存。

4 封裝與處理層

該層主要提供節點間互操作支援、本地資料處理和封裝、認證資訊處理等功能。

5 共識層

超塊鏈出塊操作的驅動層,任意節點有資料上鍊請求時,透過該層參與區域性共識和全域性共識,保證節點在共識中獨立對等的處理資料,且能實現結果的一致性。

6 應用層

包括鏈上擴充套件、API介面、節點資訊及遠端管理等

執行與部署

1 初始化和節點建立

任意節點執行超塊鏈節點軟體後,透過廣播發現或連線Bootstrap Server嘗試連線其他超塊鏈節點,並在收到的響應包中查詢符合創始塊要素的節點,進一步向這些節點請求鏈空間資訊,透過對比不同節點返回的鏈空間資訊來確定合法的鏈資料和對等節點。當節點透過以上步驟初步完成本地鏈空間快取的初始化後,節點初始化即完成,節點可隨時開始參與超塊鏈的共識出塊。

2 共識與防作弊

超塊鏈參與共識是基於自身資料上鍊的需求,該行為可以是節點自身需求,也可以是某種代理行為,超塊鏈的鏈塊層共識過程並不解釋使用者資料,使用者資料作為Payload封裝於待共識的資料結構中,該資料結構作為本地資料塊,還包含共識指令碼和公鑰等認證資訊,這一本地資料塊需要獲得至少另外一個(群)對等節點的認可,方能加入區域性鏈的共識過程中,該認可過程會在對等檢點之間核查共識指令碼和認證資訊,共識指令碼執行成功後對等節點即成為Buddy,開始參與區域性鏈的共識過程。區域性鏈每次增長都執行已達成區域性共識的共識指令碼,該指令碼會按照定義的規則核查使用者資料,以保證資料滿足共識要求,這一核查是每節點獨立實施的,不受任何其他節點左右,只有超過N/2+1的節點(N為參與區域性鏈共識的節點總數)同意區域性共識結果,區域性共識方可被接受。區域性鏈按照這樣的規則以2n的節奏擴充套件共識規模,以較高的效率完成對惡意節點和無效資料的甄別,保證區域性鏈的可靠性。共識指令碼中包含超塊鏈預設指令碼和使用者自定義指令碼,因此使用者可以非常靈活的選擇在共識過程中如何對資料合法性進行驗證,包括POW/POS/BFT等附加驗證資訊,在計算難度或授權方面進一步加強資料合法性的保證。在完全不附加其他驗證資訊的預設條件下,超塊鏈仍可以達到“51%惡意攻擊”防禦效能。

3 提交與查詢

使用者資料透過參與超塊鏈共識過程而提交上鍊,該資料可以為賬本、交易記錄、權證指紋等任何資料,這些資料在共識過程中被共識指令碼所核查並固化,由參與節點分散式儲存,在全網內形成虛擬的鏈空間,承載全部鏈資料。該鏈資料可以由任意節點請求和查詢,也可以透過超塊鏈瀏覽器檢索和查詢。

總結

超塊鏈在技術架構上作了全新的設計,為區塊鏈提供了並行能力和靈活的資料型別支援,解決了區塊鏈技術的效能瓶頸和交易導向的設計侷限。超塊鏈在完全滿足去中心化、對等和資料結構前向依賴的三種基本特性之外,提供了更高的效能和更開放的架構,鏈上資料和共識演算法均支援使用者自定義和擴充套件,更有令人興奮的新特性如預設內建了跨鏈操作和鏈虛擬化等功能。這些特性使超塊鏈以更高的效能、更強的可配置性支援更廣泛的應用場景,而且完全相容現有區塊鏈(如數字貨幣和統一賬本)應用。

超塊鏈對區塊鏈技術做了較新的拓展性嘗試,尚存一些不足有待改進。超塊鏈共識演算法為了降低算力消耗和保持良好的去中心化特性,付出了較多的通訊成本,這在網路條件不佳的時候會降低系統效能。超塊鏈的資料開放性使垃圾資訊更容易繞過審查而佔據寶貴的鏈儲存空間。我們認為,隨著網路連線質量和儲存技術的進一步發展,這些問題不是致命的,並且我們也將在後續的開發中對這些問題進行持續的改進。


網址:https://www.hyperchain.net/

免責聲明:

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

推荐阅读

;