- DAG區(qū)塊鏈技術:原理與實踐
- 曹源
- 1770字
- 2019-01-03 16:18:09
1.3 DAG區(qū)塊鏈
1.3.1 起源
DAG最初出現(xiàn)是為了解決區(qū)塊鏈的效率問題。比特幣的效率一直比較低,基于工作量證明共識下的出塊機制是一個原因,由于鏈式的存儲結構,整個網(wǎng)絡中同時只能有一條鏈,導致出塊無法并發(fā)執(zhí)行。針對此問題,Nxt社區(qū)提出改變區(qū)塊的鏈式存儲結構,變成區(qū)塊DAG。在區(qū)塊打包時間不變的情況下,網(wǎng)絡中可以并行打包N個區(qū)塊,網(wǎng)絡中的交易就可以容納N倍。但此種方式仍停留在類似側鏈的解決思路,不同的鏈存儲不同類型的交易,這樣降低出現(xiàn)雙花的可能,在之后某個節(jié)點需要合并的時候,幾個分支再歸并到一個區(qū)塊。
換一種思路,上述方案都屬于有區(qū)塊的情況,無論是在比特幣還是以太坊中,我們都會提到出塊速度這樣的概念,比特幣每十分鐘出一個塊,6個出塊確認需要一個小時,以太坊好很多,但是出塊速度也要十幾秒。能否舍棄區(qū)塊的概念呢?2015年社區(qū)提出DAGCoin的概念,把區(qū)塊和交易融合到了一起。回想下比特幣網(wǎng)絡中區(qū)塊和交易的概念,很多筆交易先打包到區(qū)塊中,區(qū)塊和區(qū)塊之間通過PreHash來維護全網(wǎng)的交易順序。而DAGCoin的思路是讓每一筆交易直接參與維護全網(wǎng)的交易順序。這樣交易被發(fā)起后直接跳過打包區(qū)塊的階段,直接融入全網(wǎng),如此達到無區(qū)塊效果,且連打包交易出塊的時間都省去了。如前所述,DAG最初跟區(qū)塊鏈的結合就是為了解決效率問題,現(xiàn)在不用打包確認,交易發(fā)起后直接進入確認網(wǎng)絡,理論上效率自然會提高很多。
1.3.2 DAG區(qū)塊鏈與單鏈技術的對比
1.單鏈技術的幾個問題
效率問題:傳統(tǒng)區(qū)塊鏈技術基于區(qū)塊,比特幣的效率一直比較低,由于BlockChain鏈式的存儲結構,整個網(wǎng)絡同時只能有一條單鏈,基于PoW共識機制出塊無法并發(fā)執(zhí)行。
確定性問題:比特幣和以太坊存在51%算力攻擊問題,基于PoW共識的最大問題隱患,就是沒有一個確定的不可更改的最終狀態(tài);如果某群體控制51%算力,并發(fā)起攻擊,比特幣體系一定會崩潰;考慮到現(xiàn)實世界中的礦工集團,以及正在快速發(fā)展量子計算機的逆天算力,這種危險現(xiàn)實中會存在。
中心化問題:基于區(qū)塊的PoW共識中,礦工一方面可以形成集中化的礦場集團,另一方面,獲得打包交易權的礦工擁有巨大權力,可以選擇哪些交易進入?yún)^(qū)塊,哪些交易不被處理,甚至可以只打包符合自己利益的交易,這樣的風險目前已經(jīng)是事實存在。
能耗問題:由于傳統(tǒng)區(qū)塊鏈基于PoW算力工作量證明,達成共識機制,比特幣的挖礦能耗已經(jīng)與阿根廷整個國家的耗電量持平,IMF和多國政府對虛擬貨幣挖礦能源消耗持批評態(tài)度。Digiconomist數(shù)據(jù)表明:全球挖礦業(yè)務總計,每年產(chǎn)生約2.9億噸碳排放。
2.DAG區(qū)塊鏈的與單鏈的區(qū)別
單元:區(qū)塊鏈組成單元是Block(區(qū)塊), DAG組成單元是TX(交易)。
拓撲:區(qū)塊鏈是由Block區(qū)塊組成的單鏈,只能按出塊時間同步依次寫入,類似于單核單線程CPU; DAG是由交易單元組成的網(wǎng)絡,可以異步并發(fā)寫入交易,類似于多核多線程CPU。
粒度:區(qū)塊鏈每個區(qū)塊單元記錄多個用戶的多筆交易,DAG每個單元記錄單個用戶交易。
1.3.3 DAG區(qū)塊鏈的優(yōu)勢與價值
DAG區(qū)塊鏈與傳統(tǒng)區(qū)塊鏈工作機制的不同之處在于,后者需要礦工完成工作量證明(PoW)來執(zhí)行每一筆交易,而DAG區(qū)塊鏈能擺脫區(qū)塊鏈的限制來完成這樣的操作。不同的是,在DAG區(qū)塊鏈中一筆交易接著另外一筆,這意味著一筆交易能夠?qū)ο乱还P交易提供證明,由此一直排序下去。這些交易之間的連接就是DAG,就像區(qū)塊通過哈希值來向整條區(qū)塊鏈提供它們的名字一樣。
在傳統(tǒng)塊鏈式區(qū)塊鏈中,每筆交易都要花費不少時間,而對于DAG區(qū)塊鏈來說,交易時間將變得微不足道。由于每筆交易都與下一筆交易相連,且礦工被排除在外,交易時長會隨著越來越多用戶加入系統(tǒng)而縮短。
在DAG系統(tǒng)中,剔除礦工的設置能夠避免像區(qū)塊鏈系統(tǒng)中某一個礦池集合全網(wǎng)50%算力的威脅,與雙重攻擊的隱憂。沒有了區(qū)塊鏈中的工作量證明共識機制,DAG的交易指令能夠極快地擴散通知至全網(wǎng),大部分雙重支付的攻擊嘗試將會被系統(tǒng)捕捉到并立即拒絕執(zhí)行。
和以太坊相比,DAG網(wǎng)絡雖然不具備智能合約強制執(zhí)行的特性,但它能為用戶提供一個相對簡單、清晰易辨的架構,以太坊的系統(tǒng)則要復雜許多。這不僅使得用戶能更容易去理解DAG區(qū)塊鏈上的虛擬貨幣什么時候以及怎樣進行支付,而非依靠著一個滿是程序員和合約的世界。從這個角度來看,可以把DAG網(wǎng)絡看成是一個智能合約缺席執(zhí)行者和旁觀者的版本。
如果DAG區(qū)塊鏈能得到更為廣泛的應用,它在幾乎每個級別都能顯露出比傳統(tǒng)區(qū)塊鏈更優(yōu)的特性。在目前區(qū)塊鏈系統(tǒng)中,隨著交易時長這樣的問題顯現(xiàn)出來,DAG區(qū)塊鏈勢必將受到越來越廣泛的關注。
- Rust實戰(zhàn)
- 構建移動網(wǎng)站與APP:HTML 5移動開發(fā)入門與實戰(zhàn)(跨平臺移動開發(fā)叢書)
- JavaScript+jQuery開發(fā)實戰(zhàn)
- 編譯系統(tǒng)透視:圖解編譯原理
- Python機器學習算法與應用
- Java 9 Programming By Example
- 零基礎輕松學C++:青少年趣味編程(全彩版)
- Magento 2 Beginners Guide
- 石墨烯改性塑料
- Flink技術內(nèi)幕:架構設計與實現(xiàn)原理
- 深度實踐KVM:核心技術、管理運維、性能優(yōu)化與項目實施
- Python機器學習與量化投資
- SFML Game Development
- Android從入門到精通
- Python 3.6從入門到精通(視頻教學版)