DAG也許是真正的區塊鏈3.0

從15年開始,區塊鏈概念被單拎出來,這之前區塊鏈還只是比特幣技術里的一個數據結構,中本村白皮書里把block和chain連一起的時候也只是a chain of blocks 。隨著以太坊去中心化計算機的概念提出來,很多人開始把以太坊稱作區塊鏈2.0,而比特幣被歸到了區塊鏈1.0。至於區塊鏈3.0,市場上為了搶奪區塊鏈3.0的冠名權打的不可開交,沒準會是DAG。

DAG(Directed acyclic graph),有向無環圖,是計算機領域一個常用的數據結構,因為獨特的拓撲結構所帶來的一些特性,經常被用到處理動態規劃,導航中尋求最短路徑,數據壓縮等場景中。

第一次提出DAG跟區塊鏈結合是在Nxt社區,可以發現DAG最初出現就是為了解決區塊鏈的效率問題。比特幣的效率一直比較低,基於工作量證明共識下的出塊機制是一個原因,由於鏈式的存儲結構,整個網路中同時只能有一條鏈,導致出塊無法並發執行。社區有人提出DAG的拓撲結構來存儲區塊,這個時候更多還是類似側鏈的解決思路,不同的鏈條存儲不同類型的交易,這樣降低出現雙花的可能,在之後某個節點需要合併的時候,幾個分支再歸併到一個區塊。

簡單介紹下,目前比特幣區塊鏈存儲結構如下,每個區塊存儲著當前時間段所有的交易,礦工一直在拚命爭奪某個時段交易的打包權利,把當前時間段所有的交易打成一個區塊。目前比特幣網路平均出塊時間在10分鐘。

比特幣區塊鏈存儲結構

而Nxt社區提出,改變區塊的鏈式存儲結構,變成區塊DAG。在區塊打包時間不變的情況下,網路中可以並行的打包N個區塊,網路中的交易就可以容納N倍。

Ext社區提出的DAG of blocks

發現這個時候DAG跟區塊鏈的結合還是停留在側鏈的思路,不同類型的交易可以並行在不同的鏈條進行,達到提升性能的目的。這時候的DAG還是有區塊的概念。

我們發現不管是最近風頭正盛的iota,還是也備受矚目的byteball,都提出了blockless無區塊的概念。不管是比特幣還是以太坊,我們總會提到出塊速度這樣的概念,比特幣每十分鐘才出一個塊,6個出塊確認就要一個小時,以太坊好很多,但是出塊速度也要十幾秒。為什麼一定需要區塊呢?15年社區有提出DAGCoin的概念,DagCoin: a cryptocurrency without blocks。這裡把區塊和交易融合到了一起。我們回想下比特幣網路中區塊和交易的概念,很多筆交易先打包到區塊中,區塊和區塊之間通過prehash來維護全網的交易順序。而DAGCoin的思路,讓每一筆交易直接參与維護全網的交易順序。這樣交易被發起後直接跳過打包區塊的階段,直接融入全網,如此達到所謂的blockless效果。這樣確實連打包交易出塊的時間都省去了,如前文提到的,DAG最初跟區塊鏈的結合就是為了解決效率問題,現在不用打包確認,交易發起後直接進入確認網路,理論上效率自然提高很多。

自此,以blockless獨樹一幟的DAG區塊鏈雛形基本形成。又以IOTA和Byteball在市場上的表現最為耀眼。

DAG系的區塊鏈有些概念很有趣,了解這些概念更容易理解DAG技術。

1從概率的角度來看雙花問題。

在比特幣網路中,通過UTXO模型,一個用戶對自己可以解鎖的UTXO只能發起一次轉賬,如此解決雙花問題。比特幣白皮書中也有提到,有可能多個礦工會同時解決哈希難題,獲得同一時間段的交易打包權就是出塊權,會有臨時分叉的可能性。從這個角度來看,比特幣網路中所謂的"global ledger state"也是一個不確定的狀態。某一筆交易狀態的確認是由其後掛靠交易的數量決定的,其後掛靠的交易越多,交易狀態回滾的概率越低,這筆交易越安全。

2網路寬度

iota的tangle網路

DAG網路一個重要的問題就是解決網路寬度,DAG網路中,每筆交易被確認,需要鏈接到已經在網路中存在的並且比較新的交易,如果都選擇網路中比較早的交易,會導致網路寬度過寬,新的交易難以得到確認。理想的狀態是,新的交易發起時,選擇網路中已經存在的並且比較新的交易做鏈接確認,這樣網路的寬度保持在一定範圍,能讓新的交易有足夠快的確認時間。在IOTA中,tangle也提出了自己控制交易寬度的演算法,有興趣可以參考tangle白皮書。

那麼DAG究竟有哪些特點,居然讓iota市值一度排到了虛擬貨幣第四的位置。

1交易速度快

如上文提到,由於DAG摒棄了區塊概念,交易直接進入全網中(需要指出,iota網路中每發起一筆交易,會類似hashcash一樣的機製做簡單的pow證明),所以交易速度預期比基於pow和pos的需要出塊的區塊鏈會快不少。

2無需挖礦

DAG把交易確認的環境直接下放給交易本身,無需由礦工打包成區塊後同意交易順序。所以DAG網路中沒有礦工的角色。

3無手續費

iota的tangle網路中,交易發起只需要做簡單的POW工作量證明,整個網路中的POW都是發起交易者自己做的,而不是交給礦工。發起交易無需手續費。

4智能合約支持

目前iota還不支持智能合約,但是官方roadmap中有計劃在18年開始實現對智能合約的支持。而byteball也還不支持智能合約。

5需要見證節點

不管是iota還是byteball,目前的網路結構中,還是需要見證人機制的存在。這一部分不管是DPOS、POS、PBFT,大家最終都會在效率、安全性上尋求一種平衡。

市場上iota和byteball的市值已經引起了很多關注,相信對DAG的技術討論也會變多。從技術角度來看,DAG給我們提供了完全不一樣的區塊鏈實現,高性能和無手續費這些點確實引人注目。隨著社區對DAG技術的進一步完善和發展,也許,DAG會是真正的區塊鏈3.0呢。

最近在做區塊鏈方面的創業項目,在找各種技術棧的小夥伴一起搞事情。也歡迎大家加微信交流溝通 qqwww5

最近在做一個區塊鏈技術相關的公眾號,歡迎大家關注 JustBurning

知識星球是個沉澱內容的地方,星球有不少對dag理解深刻的朋友


推薦閱讀:

有沒有人來扒一扒瑞寶力源集團,海南跨亞歐,和劉琅?
她發行了一種虛擬貨幣,專門買自己的藝術作品
什麼是BNB(幣安幣)?如何買BNB(幣安幣)?

TAG:区块链Blockchain | 虚拟货币 | 比特币Bitcoin |