DAG會是區塊鏈的下一個突破點嗎?
DAG結構與區塊鏈相比,不存在區塊的概念,不同於把資料打包成區塊,在按照加密演算法將區塊依次連結。而是每個節點都可以提交一個數據,這些資料單元裡可以有很多東西,比如交易、訊息等等。資料單元間通過引用關係連結起來,從而形成有向無環圖。
什麼是DAG
DAG(Directed Acyclic Graph,有向無環圖),是計算機領域一個常用的資料結構。在常規的區塊鏈技術中,是一種鏈式資料庫結構,每個區塊依次連結。而DAG其實鏈式結構一樣,也是一種資料結構,DAG獨特的拓撲結構也會帶來一些新的優勢特徵。
-
有向圖概念
在理解DAG之前,我們現需要了解一個基礎概念:何為有向無環圖?
在圖論中,如果一個有向圖無法從某個頂點出發經過若干條邊回到該點,則這個圖是一個有向無環圖(DAG圖)。因為有向圖中一個點經過兩種路線到達另一個點未必形成環,因此有向無環圖未必能轉化成樹,但任何有向樹均為有向無環圖。
圖片來自網路
圖和樹一樣,都是一種資料結構,圖可以分為有向圖和無向圖,對有向圖進一步約束則形成有向無環圖,有向圖由有限個頂點和有向邊組成,每條有向邊都從一個頂點指向另一個頂點,無環則指的是從任意一個頂點出發都不能通過這些有向邊回到原來的頂點。
在此我們只需要對有向無環圖的概念定義有一個大致的瞭解。
-
D AG 原理
DAG結構與區塊鏈相比,不存在區塊的概念,不同於把資料打包成區塊,在按照加密演算法將區塊依次連結。而是每個節點都可以提交一個數據,這些資料單元裡可以有很多東西,比如交易、訊息等等。資料單元間通過引用關係連結起來,從而形成有向無環圖。
再通俗一點解釋,在整個網路中,我們可以理解為整個網路存在許多個動態的“區域網”的,交易使用者屬於不同的“區域網”。“區域網”建立的基礎是具有驗證交易能力的節點。當用戶發起交易時,自己所在“區域網”的節點會驗證數字簽名、資產餘額、資料格式、完整性等資訊,如果交易無效會進行標記。然後會將打包好的資料向全網傳送。
在交易的驗證機制方面,也與區塊鏈有一些不同,是由後面進行的交易來驗證前一筆交易,如果一筆交易沒有被後面的交易所驗證,那麼在這個去中心化的網路中,就失去了合法性。這樣的交易驗證機制,使DAG可以並行處理多筆交易,圍繞著主鏈,但是並不形成環路。形成一種並行的樹狀拓撲結構。
-
與區塊鏈的不同
-
網路單元:區塊鏈組成單元是Block(區塊),DAG組成單元是TX(交易);區塊鏈的每一個區塊單元記錄多個使用者的多筆交易,而DAG的每個單元記錄
-
網路結構:區塊鏈是由區塊組成的鏈式結構,只能按照順序依次寫入交易,需要等待時間,類似單核CPU;DAG是由交易單元組成的網路,可以非同步併發寫入交易,像多核CPU
Dag的技術優勢
DAG和區塊鏈相比,最大的區別在於結構上並行處理的能力。鏈的輸入與輸出只有一個,與節點的處理能力無關,核心是在於不能平行計算,每次處理一個交易,需要同步所有節點,存在一個等待時間。而DAG不存在這樣的問題,只需要進行區域性校驗,將交易分散來並行處理。因此DAG主要有以下幾個優勢:
-
更快的交易速度,高併發性
DAG技術最大的特點是沒有區塊,系統不需要定時出塊,這也就明顯的加快了交易速度,也實現了同時容納海量併發交易。這種非同步通訊機制,多個節點可以不必明確先後順序同時寫入,各個節點無需等待其他節點的資料,不需要礦工之間傳遞信任,因此在物聯網領域、小額支付領域有很明顯的優勢。
-
作惡難度更大
因為DAG有多個輸入與輸出,假如要修改某一個節點,那麼對應多對多的輸入與輸出都要進行修改。因此相比於鏈式結構,DAG的惡意修改難度會大很多。
-
無需挖礦,交易費用極低
準確說,DAG中沒有礦工這個角色,系統的一致性是由交易本身來維護,即每筆交易發出時都需要驗證之前未確認的交易,並立刻廣播至全網,從而形成互相聯絡的資料網路。DAG把交易確認的環境直接交給交易本身,無需由礦工打包後確認交易順序。代表性的專案以IOTA為例,在整個網路中,交易發起只需要做簡單的POW工作量證明,而工作量證明是由交易發起者自己完成的,而不會交給礦工,因此沒有手續費或者手續費極低。
DAG的技術缺點
DAG的交易速度快,有很高的併發吞吐量,但是在交易的一致性與安全風險還是存在;主要需要解決的問題有以下幾個:
-
雙花交易
雙花交易的意思是指一筆資產被重複支付,這個做個風險在比特幣網路中存在,DAG中同樣有很大的風險。DAG採用非同步處理資料,而交易順序的確認上不需要等待其他節點的資訊,因此在同一時刻網路的資料可能存在不一致,雖然最終會同步,但是這個特徵可能讓攻擊者利用節點間的資訊差進行雙花交易。
如果兩個頂點端沒有明確的驗證從屬關係,攻擊者可以在這兩個頂點端的不同節點處進行雙花。目前世面上的知名專案也都額外定製新的規則來防止雙花。例如XDAG採用了POW+64s固定出塊的方式;
-
影子鏈的問題
在多重交易並行處理的情況下,導致攻擊者可能暗中生成一條影子鏈,並且不時和主鏈對接進行欺詐隱瞞。極短情況下影子鏈甚至可以代替主鏈成為新的共識。Byteball改進方案 是對見證人(witness)和主鏈的設計,對這些交易建立一個全序關係,形成交易主鏈,由見證人通過不斷確認來形成主鏈。
-
智慧合約的開發難度大
節點所儲存的資料在某一時刻可能存在不一致的情況,這在智慧合約的開發上早晨很大的難度,現在也還沒有見到成熟的應用。
和其他共識機制對比:
如果對於資料庫有過一些瞭解的朋友可以進行一下類比,區塊鏈與傳統資料庫的核心比較相似,不同的共識機制,本事上是在進行一致性的過程中選擇檢查節點的不同。而DAG與鏈式結構的本質區別在於非同步與同步通訊。其核心存在的問題在於無法有效的預測交易被確認的時間和週期,並且交易順序有可能無法在多個節點間保持一致。
共識機制
優勢
不足
P OW
Ÿ 實現邏輯簡單
Ÿ 對網路資源要求低
Ÿ 安全程度高,去中心化
Ÿ 極度消耗算力資源
Ÿ 共識時間長
Ÿ 易分叉
P OS
Ÿ 消耗資源低
Ÿ 對網路要求高
Ÿ 中間過程實現複雜,存在安全風險
D POS
Ÿ 消耗資源低
Ÿ 對網路資源要求低
Ÿ TPS高,共識時間短
Ÿ 中間過程實現複雜,存在安全風險
D AG
Ÿ TPS理論上極高
Ÿ 去中心化程度高
Ÿ 實現過程很複雜
Ÿ 全域性一致性實現較難
Ÿ 全域性排序較難
總結:
DAG作為一個很有潛力的技術方向,目前已經有諸多采用DAG技術的專案逐步開始落地,當中比較有名包括XDAG、IOTA、位元組雪球等。每個專案也都通過加如額外的限制條件來彌補DAG技術目前存在的一些交易風險,我們也會在之後的介紹中逐一進行展開分析。
從長期來看,DAG是一個非常值得關注的領域,尤其是在投資方面,在合適的發展週期下選對賽道是非常重要的,DAG為物聯網提供了快速交易、低連線成本、多併發的解決方案,尤其在5G的趨勢下,這類場景會更加的多元化,存在爆發的機會。IOTA如果從私募階段開始算起,曾經有過幾千倍的漲幅,我們也應該在概念炒作之後,對接下來技術成熟應用落地的紅利保持期待。
主要參考:
-
SergueiPopov*:The Tangle(IOTA官網白皮書v1.3
-
輕度:DAG也許是真正的區塊鏈
-
鏈捕手:一文看懂DAG技術的現狀與趨勢 |李強
-
XDAG專案白皮書
-
鯨準研究院丨DAG技術解析(一)