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分鍾。
DAG也許是真正的區塊鏈3.0
比特幣區塊鏈存儲結構
而Nxt社區提出,改變區塊的鏈式存儲結構,變成區塊DAG。在區塊打包時間不變的情況下,網絡中可以並行的打包N個區塊,網絡中的交易就可以容納N倍。
DAG也許是真正的區塊鏈3.0
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網絡寬度
DAG也許是真正的區塊鏈3.0
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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM