|
一、起源
DAG(Directed Acyclic Graph,有向無環(huán)圖)是一種數(shù)據(jù)結(jié)構(gòu),最早提出在區(qū)塊鏈中加入DAG概念作為算法,是在2013年的bitcointalk論壇,被稱作為“Ghost協(xié)議”,這一提議也是為了解決當(dāng)時比特幣的擴(kuò)容問題。后來,在NXT社區(qū),又有人提出了DAG of block,將DAG的拓?fù)浣Y(jié)構(gòu)用來存儲區(qū)塊,解決效率問題。那時對于DAG的應(yīng)用,還停留在類似于側(cè)鏈的一個認(rèn)識。
眾所周知,擴(kuò)展性是當(dāng)前區(qū)塊鏈技術(shù)急需解決的難點之一。談到擴(kuò)展性,首當(dāng)其沖的便是區(qū)塊鏈的擴(kuò)容問題,當(dāng)區(qū)塊鏈上的交易頻繁時,區(qū)塊鏈的性能也呈會線性下滑。參考以太坊的容量,僅僅一個加密貓游戲就讓區(qū)塊鏈不堪重負(fù),造成了巨大擁堵。所以,如何有效地擴(kuò)容,成為了當(dāng)下區(qū)塊鏈技術(shù)的一大重點。
在PoW算法的區(qū)塊鏈中尤其如此,由于PoW機制是將交易數(shù)據(jù)打包成區(qū)塊,在由算力高的節(jié)點進(jìn)行記賬,這種算法相對于PoS速度較慢,交易量上升更加會影響到整體的確認(rèn)速度,以比特幣為例,一開始比特幣區(qū)塊鏈大小為1M,后來交易量的上升使得社區(qū)不得不考慮擴(kuò)容方案,還因此引發(fā)了擴(kuò)容之爭與分叉事件。
PoS在確認(rèn)速度上大為改善,但仍然難以跟上需求。
同時,PoW和PoS算法都有趨向于中心化的理論風(fēng)險,當(dāng)擁有的算力或者代幣達(dá)到了一定數(shù)量時,區(qū)塊鏈就會變得中心化。
DAG也是一種分布式賬本技術(shù),與區(qū)塊鏈不同。因為區(qū)塊鏈?zhǔn)怯蓞^(qū)塊組成的一條單鏈,而DAG則是由交易組成的網(wǎng)絡(luò)。但本質(zhì)上,兩者卻有著很大的相似之處。DAG中的交易,就可以看做是一個個“區(qū)塊”,只不過這些區(qū)塊也可以作為節(jié)點,形成一個復(fù)雜交織的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
DAG與PoW、PoS相比,DAG有著更加高的性能,甚至可以說交易越多、節(jié)點越多,處理速度越快。
二、工作原理
DAG技術(shù)如何在作為一個分布式賬本進(jìn)行應(yīng)用呢?IOTA是應(yīng)用DAG技術(shù)較為知名的一個項目,它將DAG進(jìn)行了改進(jìn),并提出Tangle(纏結(jié))方案。這里以IOTA作為例子來說明DAG的運行原理。
在DAG的網(wǎng)絡(luò)中,每一個節(jié)點都可以是交易者和驗證者,因為DAG中的交易處理,正是由交易節(jié)點本身來共同完成。
而且,IOTA的Tangle賬本在保證高速處理交易的同時,并不需要支付交易費用。不過,這并不代表上面的交易時免費的,這是因為在這個賬本中,每一筆交易的發(fā)起都需要線驗證另外兩筆隨機交易,并將自己發(fā)起的交易指向這兩筆交易,這樣在區(qū)塊鏈上礦工所承擔(dān)的責(zé)任就分配給了所有的交易者。
DAG這種處理交易的方式,可稱作為異步處理模式。
Tangle賬本是建立在DAG網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)上的去中心化賬本,利用這一結(jié)構(gòu),所有點都能成為“礦工”,而且每個節(jié)點所承擔(dān)的交易數(shù)量并不會超負(fù)荷,這樣就使得交易量越大效率越高。
如果像IOTA一樣,將其運用于微小交易,那么可參與的節(jié)點將會更多。區(qū)塊鏈承擔(dān)的交易量每秒可以萬計算,而理論上DAG卻能夠達(dá)到每秒以億計算。
三、優(yōu)缺點
DAG的優(yōu)點非常明顯,它沒有區(qū)塊鏈需要擔(dān)憂的擴(kuò)容問題,因為隨著交易量和用戶的增長,它的處理速度只會更加快速;同時無交易費這一點可以迅速提升交易量,增強去中心化。
更強的性能和更高程度的去中心化,是DAG領(lǐng)先于區(qū)塊鏈,以及重大創(chuàng)新的部分。然而,DAG也有著很大的隱患。
在安全性上,DAG要比PoW脆弱得多。在PoW共識機制中,算力達(dá)到51%,才能夠發(fā)起攻擊;而攻擊DAG,以Tangle為例,發(fā)起一筆交易驗證兩筆交易,理論上來說,只要達(dá)到34%的算力,就能夠攻擊整個DAG網(wǎng)絡(luò)了。
而且,因為每個人都能處理交易,如果一個擁有高算力的節(jié)點通過發(fā)起巨量的交易,從而獲得更多驗證權(quán),就很容易降低DAG網(wǎng)絡(luò)的效率,甚至發(fā)起攻擊;而無交易費使得發(fā)起和驗證的成本為零,同時海量的節(jié)點更增加了這種攻擊風(fēng)險。
此外,在掌握高算力的情況下,也很容易出現(xiàn)“雙花”現(xiàn)象,“雙花”即雙重花費,指一筆錢花了兩次。攻擊者可以同時發(fā)起兩筆交易,利用異步處理數(shù)據(jù)和節(jié)點間的信息差來達(dá)到這個目的。
DAG作為區(qū)塊鏈的一個有力競爭者,有著極大的創(chuàng)新之處,但同時也具有明顯的缺陷。不過,作為一個年輕的數(shù)據(jù)結(jié)構(gòu),DAG可以結(jié)合更多的新技術(shù)來揚長避短。目前使用這一技術(shù)的項目,有知名的“DAG三駕馬車”IOTA、字節(jié)雪球、NANO。
目前,有越來越多的DAG項目正在發(fā)展,有樂觀者認(rèn)為DAG才是真正的區(qū)塊鏈3.0,也有人認(rèn)為區(qū)塊鏈才是更加完善的去中心化賬本。不可否認(rèn)的是,DAG的確是區(qū)塊鏈在去中心化和拓展問題上的強勁對手。
文章來源:區(qū)塊鏈平臺(www.bbcaijing.cn),如有侵權(quán)請聯(lián)系刪除!