Conflux 項目技術核心簡析:基於 POW 的 DAG

Conflux 是一個挺有創意的區塊鏈項目,其巧妙融合了 DAG 技術和 POW 共識機制。和比特幣或以太坊相比,擴展了交易併發度和系統吞吐量;而和典型的 DAG 技術(比如 Byteball 項目)相比,又在共識層面提高了系統安全性。

其論文下載地址爲:https://arxiv.org/pdf/1805.03870v3.pdf

理解 Conflux 的技術設計,首先得了解比特幣和以太坊的「鏈式系統做的不夠好的地方」

在比特幣系統中,若在某一時刻不同的礦工節點同時產生了多個合法區塊,那麼隨着時間的流逝,最終只能有一個區塊被納入區塊鏈賬本中,其他的合法區塊不得不被淘汰出局,被淘汰出局也就意味着礦工節點耗費了大量算力卻未能得到任何獎勵,即浪費了能源,又很難提高系統吞吐量。

以太坊團隊在設計以太坊的時候,爲了提高出塊速度,採用了 GHOST 算法,並設計了「叔區塊獎勵機制」,這樣就能夠做到在鏈式賬本中只保留一個合法區塊的同時,將其他的併發合法區塊作爲叔區塊包含到賬本中,並給予這些叔區塊一定的獎勵,讓系統變得快速,並相對公平、平滑一些。然而在以太坊系統中,叔區塊裏的交易被認爲是無效的,系統吞吐量還是不夠高。

所以 Conflux 針對這一點做了進一步的改進。在 Conflux 中,礦工節點是可以並行 / 併發出塊的,而不用擔心合法的區塊被淘汰或失效。目前來看,能夠提高交易併發度和系統吞吐量的設計,除了鏈式系統的分片技術,就是 DAG 技術了。

Conflux 就採用了 DAG 技術,和同樣採用了 DAG 技術的 Byteball 相比,Conflux 做了兩點重要的技術調整或改進:

01

Conflux 的 DAG 拓撲圖中的頂點 V 是區塊(Block-DAG),而 Byteball 的 DAG 賬本的頂點 V 是單獨的交易(Tx-DAG);

02

**
**

Conflux 採用 GHOST 算法進行主鏈(Conflux 稱其爲 pivot-chain,軸鏈)的生成,而 Byteball 採用了 Witnesses 見證人方式。

礦工節點在利用 GHOST 算法計算出主鏈 / 軸鏈之後,就能夠通過哈希指針將當前產生的區塊添加到賬本中,當前新產生的區塊會被將來產生的區塊通過哈希指針引用,通過這種方式,當前區塊要麼成爲軸鏈上的頂點,要麼成爲鏈接在軸鏈主幹上的子樹分支裏的頂點,而不管成爲什麼類型的區塊頂點,區塊中的交易都是有效的,這樣就提高了交易的併發度和系統的吞吐量。可以參考下圖(截自 Conflux 論文):

Genesis 是創世區塊頂點,A、C、E、H 被 GHOST 算法選擇爲軸鏈頂點,而 B、D、F、G、J、I、K 則屬於分支節點。

Conflux 項目技術核心簡析:基於 POW 的 DAG

基於 GHOST 軸鏈的 Block-DAG,圖片來自 Conflux 論文

在交易定序這一點上,Conflux 和 Byteball 是類似的,都是採用主鏈 / 軸鏈索引號(Byteball 稱其爲 MCI,Conflux 稱其爲 Epoch)的排序規則實現的,通過 MCI/Epoch,可以實現對整個賬本里包含的所有區塊和交易的全排序。基於交易的全排序,並採用賬戶餘額模型,Conflux 也就不難實現類似以太坊系統的智能合約功能。

作者:Karl 嘉楠區塊鏈研究院高級研究員

嘉楠區塊鏈研究院:嘉楠耘智(Canaan Inc.)旗下區塊鏈板塊。

熱文搶讀:

1、數字證書、CA 與 OpenSSL 制證簡介

2、Byteball 技術剖析之二:主幹鏈選擇與交易定序

3、從 DAG 視角看 Bitcoin 賬本

4、簡析跨鏈原子交易

Conflux 項目技術核心簡析:基於 POW 的 DAG