DAG(有向無環(huán)圖)是不同于主流區(qū)塊鏈的一種分布式賬本技術,把同步記賬提升為異步記賬,被不少人認為可以解決傳統(tǒng)區(qū)塊鏈的高并發(fā)問題,是區(qū)塊鏈從容量到速度的一次革新。
DAG:Directed Acyclic Graph,中文意為「有向無環(huán)圖」。DAG原本是計算機領域一種常用數據結構,因為*的拓撲結構所帶來的優(yōu)異特性,經常被用于處理動態(tài)規(guī)劃、導航中尋求短路徑、數據壓縮等多種算法場景。
DAG技術的起源
早在區(qū)塊鏈中引入DAG概念作為共識算法是在2013年,bitcointalik.org由ID為avivz78的以色列希伯來大學學者提出,也就是GHOST協(xié)議,作為比特幣的交易處理能力擴容解決方案;Vitalik在以太坊紫皮書描述的POS共識協(xié)議Casper,也是基于GHOST POW協(xié)議的POS變種。
后來NXT社區(qū)有人提出用DAG的拓撲結構來存儲區(qū)塊,解決區(qū)塊鏈的效率問題。區(qū)塊鏈只有一條單鏈,打包出塊無法并發(fā)執(zhí)行。如果改變區(qū)塊的鏈式存儲結構,變成DAG的網狀拓撲可以并發(fā)寫入。在區(qū)塊打包時間不變的情況下,網絡中可以并行打包N個區(qū)塊,網絡中的交易就可以容納N倍。
Nxt社區(qū)提出的DAG of blocks
2015年9月,Sergio Demian Lerner發(fā)表了 《DagCoin: a cryptocurrency without blocks》一文,提出了DAG-Chain的概念,把DAG網絡從區(qū)塊打包這樣粗粒度提升到了基于交易層面,但DagCoin本身是一篇論文,沒有代碼實現(xiàn)。
DagCoin的思路,讓每一筆交易都直接參與維護全網的交易順序。交易發(fā)起后,直接廣播全網,跳過打包區(qū)塊階段,達到所謂的Blockless。這樣省去了打包交易出塊的時間。如前文提到的,DAG初跟區(qū)塊鏈的結合就是為了解決效率問題,現(xiàn)在不用打包確認,交易發(fā)起后直接廣播網絡確認,理論上效率得到了質的飛躍。DAG進一步演變成了*拋棄區(qū)塊鏈的一種解決方案。
一句話來概括:DAG是面向未來的新一代區(qū)塊鏈,從圖論拓撲模型宏觀看,從單鏈進化到樹狀和網狀、從區(qū)塊粒度細化到交易粒度、從單點躍遷到并發(fā)寫入,這是區(qū)塊鏈從容量到速度的一次革新。
DAG技術的優(yōu)勢
傳統(tǒng)區(qū)塊鏈和DAG的區(qū)別,簡單的說:
1)單元:區(qū)塊鏈組成單元是Block,DAG組成單元是TX(交易);
2)拓撲:區(qū)塊鏈是由Block區(qū)塊組成的單鏈,只能按出塊時間同步依次寫入,好像單核單線程CPU;DAG是由交易單元組成的網絡,可以異步并發(fā)寫入交易,好像多核多線程CPU;
3)粒度:區(qū)塊鏈每個區(qū)塊單元記錄多個用戶的多筆交易,DAG每個單元記錄單個用戶交易。
那么相比于比特幣等傳統(tǒng)的區(qū)塊鏈,這種機制有什么好處?
數據結構:通過DAG,每一筆交易就可以看作是一個區(qū)塊,沒有容量限制的問題,每一個區(qū)塊有多個指向,拓展性強,因此能夠實現(xiàn)數字貨幣較高的交易吞吐量(通過平行驗證)。并且參與者越多,整個系統(tǒng)也會變得越來越安全和快速,確認時間會縮短,交易也完成的越來越快。
共識機制:區(qū)塊鏈中添加下一個區(qū)塊需要多方進行競爭,并獲取區(qū)塊獎勵或交易手續(xù)費。正因如此,共識和交易生成是分離開的,并且由網絡的一小部分人來完成,通常會設置較高門檻(就像比特幣一樣),這樣會導致進一步的中心化(算力壟斷)。
在DAG系統(tǒng)中,交易者本身就是礦工,網絡中的每位參與者都能進行交易并且積極參與共識。通過這種方式,驗證就能同步進行,網絡能夠保持*去中心化,不需要礦工傳遞信任,也不需要支付交易手續(xù)費。
DAG的速度快,吞吐量高,但作為一個很年輕的數據結構,DAG技術的優(yōu)勢和創(chuàng)新速度已經嶄露頭角,越來越多后繼基于DAG的創(chuàng)新項目和DAPP正*的迅速涌現(xiàn)。