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
相關文章
相關標籤/搜索