理解分散式帳本中的有向無環圖 (DAG)
有向無環圖 (Directed Acyclic Graph, DAG) 是一種數學與計算機科學領域的資料結構,由一組頂點(或節點)和邊組成。其特點在於每條邊都有方向,且不可能從任何節點出發,沿著有向邊的順序最終回到同一個節點。簡單來說,它不存在循環路徑。你可以把它想像成一個流程圖,箭頭只能向前移動,永遠不會形成回到前一步驟的迴圈。在 DAG 中,每個節點通常代表一個事件或一項數據,而有向邊則代表這些事件之間的關係或依賴性,通常表示某個事件發生在另一個事件之前,或者一筆交易引用了另一筆交易。
當應用於分散式帳本技術 (DLT) 時,DAG 提供了一種構建和驗證交易的創新方法,顯著背離了傳統區塊鏈那種線性的、基於區塊的架構。在基於 DAG 的帳本中,交易不再被分組打包成區塊並按順序添加到單一鏈條上,而是由單個交易或小組交易構成圖形的「節點」,且這些交易會直接引用並驗證之前的交易。這種互連的非線性結構,是將 DAG 視為區塊鏈技術替代方案的主要區別。其無環特性對於維持連貫且不可逆的事件順序至關重要,確保交易不會透過形成迴圈而被重新編寫或發生雙重支付(雙花)。
為什麼 DAG 與分散式帳本技術相關
區塊鏈技術的核心創新在於其能夠在不依賴中央機構的情況下,創建一個安全、不可竄改且去中心化的帳本。然而,隨著加密貨幣的普及和使用量增加,原始區塊鏈設計的某些局限性開始顯現。這些局限性通常圍繞著擴展性、交易速度和成本。DAG 作為一種極具前景的替代方案出現,旨在透過重新構思分散式帳本的基礎資料結構來解決這些挑戰。
DAG 的內在結構允許不同的交易處理範式。區塊鏈是成批處理交易(區塊)並逐一添加,而 DAG 理論上可以並行處理交易,從而實現更高的吞吐量。這種架構轉變可以使分散式帳本每秒處理的交易量 (TPS) 遠高於許多現有的區塊鏈網絡,為需要高交易頻率的應用場景(如微型交易或物聯網 IoT 應用)鋪平道路。
DAG 的核心特徵
- 有向性 (Directed): 節點之間的每個連接(邊)都有特定的方向,表示流動或依賴關係,通常是從舊交易指向新交易,或從驗證交易指向被驗證交易。
- 無環性 (Acyclic): 圖中沒有迴圈或循環。這對於確保交易的完整性和順序至關重要,防止一筆交易引用自身或後續交易的情況發生,否則會破壞最終性並引入漏洞。
- 圖 (Graph): 其結構是節點(代表單筆交易或事件)的集合,這些節點透過邊(代表關係或驗證)互連,形成一個複雜交織的網絡,而非簡單的線性鏈條。
區塊鏈瓶頸:為何會出現替代方案
要了解 DAG 的價值主張,必須先理解傳統區塊鏈架構在需求高峰情況下可能面臨的局限性。
區塊鏈結構簡述
區塊鏈是由一組不斷增長的記錄(稱為區塊)組成的分散式不可竄改帳本,這些區塊使用密碼學連接在一起。每個區塊通常包含時間戳、交易數據和前一個區塊的密碼學雜湊值 (Hash)。這創造了一個線性的、防篡改的鏈條,過去區塊的完整性確保了整個帳本的完整性。網絡採用工作量證明 (PoW) 或權益證明 (PoS) 等共識機制來驗證新區塊,並維護網絡的安全與去中心化。
傳統區塊鏈的局限性
儘管區塊鏈具有革命性,但許多早期區塊鏈(尤其是使用 PoW 的區塊鏈)的設計原則引入了某些內在局限:
- 擴展性(每秒交易量 - TPS): 區塊鏈按順序成批處理交易。新區塊挖掘並添加到鏈上的速度,加上每個區塊的大小限制,限制了網絡每秒能處理的交易總數。例如,比特幣通常每秒處理約 7 筆交易,以太坊約 15-30 筆(在以太坊 2.0 升級前),這遠低於 Visa 等全球支付系統(平均每秒數千筆)的需求。
- 交易費用: 為了激勵礦工或驗證者處理交易,用戶通常需要支付交易費用。在網絡擁塞期間,這些費用可能會大幅飆升,導致小額交易在經濟上不可行,進而影響用戶體驗。
- 延遲(確認時間): 在區塊鏈上,一筆交易要被視為「最終確定」,通常需要在包含該交易的區塊之後再添加多個後續區塊。這可能需要幾分鐘到幾小時不等,具體取決於區塊鏈類型和所需的安全性水平,因此不適合即時支付。
- 能源消耗 (PoW): 基於 PoW 的區塊鏈(如比特幣)需要巨大的計算能力來維護網絡安全。這種能源密集型過程引發了顯著的環境擔憂,並促使人們研究更節能的替代方案。
- 超前交易 (Front-Running) 與礦工可提取價值 (MEV): 在某些區塊鏈設計中,礦工或驗證者可以策略性地排列區塊內的交易順序以獲取利益,這導致了去中心化金融 (DeFi) 中的搶跑交易等問題。
這些局限性促使人們尋找能夠克服「區塊鏈瓶頸」的替代分散式帳本架構,希望在不犧牲去中心化和安全性的情況下提供更高的效率。DAG 成為了這一追求中最具前景的候選方案之一。
DAG 與區塊鏈的區別:根本性的架構轉變
DAG 與區塊鏈之間的區別不僅僅是表面上的;它代表了分散式帳本在結構、維護以及共識達成方式上的根本分歧。
結構
- 區塊鏈: 想像一列火車,車廂(區塊)連成一條直線。每節車廂的乘客(交易)容量固定,且必須按順序連接。如果一節車廂滿了,你就必須等下一節。
- DAG: 想像一個由各個點(交易)組成的龐大互連網絡。每個新點可以連接到多個之前的點,就像在高速公路上行駛的汽車,每輛車都在確認它之前經過的幾輛車。這裡沒有單一的「主幹道」,而是許多條路徑交織成的網。
共識機制
分散式帳本對交易的有效性和順序達成一致的方式即為其共識機制。
- 區塊鏈:
- 礦工/驗證者: 在 PoW 中,礦工競爭解決密碼學難題以創建新區塊。在 PoS 中,驗證者根據其質押的加密貨幣被選中。
- 順序確認: 交易被捆綁到區塊中。區塊創建並廣播後,其他節點會對其進行驗證並將其添加到各自的鏈副本中。這個過程本質上是順序執行的。
- 全域狀態: 所有節點都維護整個帳本近乎一致的副本,並逐個區塊進行更新。
- DAG:
- 自我驗證/局部共識: 許多基於 DAG 的系統沒有傳統區塊鏈意義上的礦工或驗證者。相反,當提交一筆新交易時,通常需要「批准」或「驗證」一筆或多筆先前未確認的交易。透過這樣做,新交易為網絡的安全和確認做出了貢獻。
- 並行處理: 由於交易可以獨立引用之前的交易,無需等待區塊填滿或被挖掘,因此可以同時處理多筆交易並將其添加到圖中。
- 分散式「權重」: 一筆交易的「權重」或「安全性」通常會隨著更多後續交易批准它而增加。當一筆交易獲得更多基於它構建的新交易引用時,它會變得更加不可竄改且更具確認性。例子包括:
- IOTA 的 Tangle: 每筆新交易驗證兩筆之前的未確認交易,構建出一個網狀結構。
- Nano 的區塊網格 (Block-Lattice): 每個帳戶都有自己的交易鏈(區塊網格),發送交易涉及發送到另一個帳戶的鏈,這確認了之前的交易。
- Constellation 的超圖 (Hypergraph): 旨在成為「網絡的網絡」,使用多層 DAG 來處理各種數據類型和交易負載。
擴展性
- 區塊鏈: 擴展性通常因固定的區塊時間和區塊大小而成為瓶頸。過度增加這些參數可能會導致去中心化程度下降,因為能處理龐大數據的節點會變少。
- DAG: 許多 DAG 設計天生具備更高的擴展性。隨著更多交易提交到網絡,執行的「工作」(驗證)也會隨之增加,這在理論上可以縮短確認時間並提高交易吞吐量。這通常被稱為「透過並行實現擴展」或「活動越多,速度越快」。
交易費用
- 區塊鏈: 大多數傳統區塊鏈依賴交易費用來激勵網絡參與者(礦工/驗證者)並防止垃圾郵件。
- DAG: 許多 DAG 項目宣揚的一個顯著優點是免除交易費用。由於驗證交易通常是提交新交易的內置要求(例如透過驗證之前的交易),因此不需要支付額外的激勵費用。這使得 DAG 對微型交易和機器對機器 (M2M) 支付極具吸引力。
確認時間
- 區塊鏈: 為了達到可靠的最終性,確認時間可能從幾分鐘到一小時不等,具體取決於所需的確認次數。
- DAG: 潛在速度更快。交易可以在幾秒鐘甚至不到一秒的時間內達到足夠的確認水平(有足夠的後續交易引用它們),這取決於網絡活動和特定的 DAG 實現。
基於 DAG 系統的核心概念與機制
DAG 獨特的架構需要不同的方法來應對分散式帳本技術的基礎挑戰,特別是在交易驗證、不可竄改性和安全性方面。
交易驗證
在許多基於 DAG 的系統中,驗證交易的責任從專門的礦工/驗證者群體轉移到了用戶本身。當用戶想要發起一筆新交易時,通常需要執行以下操作:
- 選擇末端交易 (Tips): 從圖的邊緣識別一筆或多筆未確認的交易(通常稱為「Tips」),新交易將對其進行批准。此選擇過程可能涉及旨在選擇能最大化網絡整體進度和安全性的算法。
- 執行工作量證明(或類似機制): 為了防止垃圾郵件並確保最低限度的計算投入,用戶可能需要針對其交易執行一個小型的、局部的工作量證明或其他資源密集型任務。這通常比全網範圍的區塊鏈 PoW 輕量得多。
- 附加並廣播: 引用了所批准 Tips 的新交易隨後被附加到圖中並廣播到網絡。接收到該交易的節點將驗證 PoW 以及所引用 Tips 的有效性。
隨著更多交易被添加並引用舊交易,該交易的「深度」和「權重」會增加,象徵著其確認度和安全性的成長。
實現不可竄改性
DAG 的不可竄改性並非透過成為單一密碼學連結區塊鏈的一部分來實現,而是透過被大量引用它的後續交易深深地嵌入到圖中來達成。
- 累積權重: 每一筆批准前一筆交易的交易都會為該前置交易增加「權重」。間接或直接批准某筆舊交易的交易越多,該交易累積的「權重」就越多。一筆具有足夠累積權重的交易被視為已確認且實際上不可竄改,因為要撤銷所有基於其構建的交易將需要巨大的計算成本。
- 無分叉: 與區塊鏈可能發生分叉(鏈的臨時分裂)不同,大多數 DAG 旨在收斂於單一、一致的帳本狀態。共識算法通常確保衝突的交易無法同時獲得顯著的確認。
安全考量
雖然 DAG 提供了擴展性,但也引入了需要細緻設計的新安全挑戰:
- 防止雙重支付: 任何分散式帳本的首要任務都是防止用戶將同一筆資金花費兩次。在 DAG 中,這通常透過以下方式解決:
- 末端選擇算法 (Tip Selection Algorithms): 旨在確保新交易始終構建在圖中有效且無衝突的部分。
- 衝突交易解決: 如果發布了兩筆衝突交易,網絡必須有機制來識別並最終捨棄其中一筆,通常會偏向於累積更多權重或批准的那一筆。
- 節點觀察: 網絡中的每個節點負責觀察並僅傳播有效交易,捨棄偵測到的任何衝突交易。
- 女巫攻擊 (Sybil Attacks): 女巫攻擊是指單一實體創建多個虛假身份以獲得對網絡的過度影響力。在交易驗證由用戶執行的系統中,攻擊者可能會生成大量交易來影響確認或精心策劃雙重支付。DAG 設計通常包含局部 PoW 或聲譽系統等措施來減輕這種風險。
- 攻擊向量(例如等同於 51% 攻擊): 雖然不是對單一鏈的傳統「51% 攻擊」,但 DAG 中的強大攻擊者仍可能控制網絡很大一部分的交易發布量,從而使其能夠:
- 策劃雙重支付: 透過發布衝突交易,並迅速在其上構建比合法交易更多的「權重」。
- 審查交易: 透過拒絕批准特定的合法交易。 這些攻擊通常透過設計強健的末端選擇算法,並確保生成惡意交易的成本超過潛在收益來防範。
去中心化疑慮
一些早期的 DAG 實現在去中心化方面面臨批評,這往往是為了在早期階段引導網絡或增強安全性而引入的。例如,某些系統可能會使用「協調員」(Coordinator) 或一組特定的受信任節點來提供額外安全保障或確保正確的末端選擇,尤其是在網絡活動較低時。這些項目的長期目標通常是隨著網絡的成長和成熟而逐步實現完全去中心化。
DAG 架構的優缺點
基於 DAG 的分散式帳本為傳統區塊鏈提供了一個引人注目的替代方案,並帶來了一組獨特的優缺點。
優點
- 高擴展性: 這可能是最顯著的優點。透過允許交易並行處理,DAG 在理論上每秒可以處理更高容量的交易。隨著更多參與者加入並發布交易,網絡的容量和速度實際上可以增加,這與需求增加常導致擁塞的區塊鏈形成對比。
- 低手續費或零手續費: 許多 DAG 實現被設計為無費用的。由於用戶在提交自己的交易時通常會驗證之前的交易,因此無需向外部礦工或驗證者支付費用。這使得 DAG 非常適合 IoT 生態系統中至關重要的微型交易和機器對機器支付。
- 快速的交易最終性: 由於無需等待區塊挖掘或多次區塊確認,DAG 上的交易可以在幾秒鐘內獲得高度確認(足夠的累積權重),對於較小額交易甚至可以實現即時確認。
- 能源效率: 大多數基於 DAG 的系統不依賴能源密集型的工作量證明挖掘來保護整個網絡。每筆交易所需的「工作」通常只是小型的、局部的 PoW,這使得 DAG 比 PoW 區塊鏈環保得多。
- 微型交易與物聯網應用的潛力: 高擴展性、零費用和快速最終性的結合,使 DAG 特別適合實現物聯網中眾多設備之間的支付和數據交換,以及非常小額且頻繁的交易。
缺點
- 成熟度與實戰測試: 與區塊鏈相比,分散式帳本領域的 DAG 技術相對較新。儘管在理論上很有前景,但許多 DAG 項目仍處於早期階段,其安全性和擴展性主張在長期極端條件下的「實戰測試」較少。
- 安全性複雜度: 為 DAG 設計強健且真正去中心化的共識機制是一項複雜的挑戰。要在不依賴傳統區塊鏈方法的情況下確保防範雙重支付、女巫攻擊和其他漏洞,需要創新且往往極其複雜的密碼學與算法解決方案。
- 去中心化光譜: 一些早期 DAG 實現在其去中心化程度上面臨批評,特別是如果它們在初期依賴協調員等組件來維護安全或引導末端選擇。雖然許多項目目標是實現完全去中心化,但達成這一目標可能是一個漸進的過程。
- 網絡引導 (Bootstrapping): 對於依賴用戶驗證交易的 DAG 來說,引導一個新網絡是一項關鍵挑戰。如果活動交易量不足,確認過程可能會變慢,導致網絡安全性降低。優化性能通常需要一定程度的網絡活躍度。
- 理解與採用: 對於普通用戶來說,DAG 的概念模型通常比線性區塊鏈模型更難理解。這可能會影響更廣泛的認知與採用。
加密領域中 DAG 的實際應用與著名案例
數個項目已嘗試實施 DAG 架構,每個項目都有略微不同的方法和目標應用場景。
Constellation (DAG)
Constellation 是一個明確將「DAG」作為其代幣代號一部分的加密貨幣項目,突顯了其基礎架構。它旨在解決傳統區塊鏈面臨的擴展性問題,特別是在處理大數據以及促進不同數據源之間的互操作性方面。
Constellation 使用了一種稱為 超圖 (Hypergraph) 的獨特多層 DAG 架構。超圖被設計為一個互連 DAG 的網絡,允許創建各種「狀態通道」(State Channels) 或子 DAG,並行處理不同類型的數據和交易。這使得 Constellation 能夠以高吞吐量和低延遲處理複雜的數據計算和麵向微服務的架構。其目標是企業解決方案、安全數據交換以及海量數據集的有效驗證,這對於航太、醫療保健和供應鏈管理等行業至關重要。
IOTA
IOTA 是推廣分散式帳本 DAG 技術的先驅之一,特別是其 Tangle (纏結) 架構。在 Tangle 中,每筆新交易直接批准兩筆先前未確認的交易。透過這種方式,提交交易的用戶為網絡的安全和確認過程做出了貢獻,而不需要礦工或交易費用。IOTA 的主要焦點是物聯網 (IoT)、機器對機器通訊以及「機器經濟」,讓設備之間能安全地交換數據和價值。其免手續費、可擴展的設計對於未來物聯網預期的數十億筆微型交易極具吸引力。
Nano
Nano 是另一個著名的基於 DAG 的加密貨幣項目,專注於提供快速、免費用且可擴展的支付。其架構稱為 區塊網格 (Block-Lattice),為每個帳戶分配一個獨立的區塊鏈。當用戶發送資金時,他們在自己的鏈上創建一個「發送」區塊,而接收者在其鏈上創建一個對應的「接收」區塊。這種獨特的方法讓交易幾乎能即時處理,因為不需要等待全域區塊確認過程。Nano 強調簡單與高效,旨在成為日常數位貨幣支付的可行替代方案。
其他新興項目
除了 IOTA、Nano 和 Constellation 之外,還有許多其他項目和研究倡議正在探索 DAG 結構或混合型 DAG-區塊鏈模型,以解決特定的行業挑戰。這些項目包括專注於供應鏈溯源、去中心化身份以及高性能計算的領域,皆利用了 DAG 獨特的擴展性和效率潛力。
DAG 在 DLT 景觀中的未來
有向無環圖的出現代表了分散式帳本技術領域的一次重大演進。它們不僅僅是對現有區塊鏈範式的微調,而是對去中心化網絡如何構建數據並達成共識的根本性重新構思。
是替代還是補充技術?
關於 DAG 是否會取代區塊鏈的問題非常複雜。更有可能的結果是它們將作為一種互補技術存在,各自在不同的應用場景中發揮優勢:
- 區塊鏈 可能仍是需要極高安全性、結構簡單且交易最終性可預測之應用的首選,特別是在交易量並非首要考量的場景(例如儲存高價值資產、核心 DeFi 協議)。
- DAG 則有望主導需要巨大擴展性、瞬時交易、零費用以及高效處理微型交易或高頻數據流的場景,特別是在物聯網、大數據分析,甚至是微支付等領域。
此外,混合解決方案 可能會變得越來越普遍,結合兩種架構的優點。例如,區塊鏈可以作為整個網絡協調或爭議解決的安全基礎層,而 DAG 則處理特定應用的巨量交易吞吐量。
持續的研究與開發
基於 DAG 的分散式帳本領域仍相對年輕,是當前研究與開發的熱點。工程師和密碼學家正持續努力於:
- 改進共識算法: 為 DAG 開發更強健、去中心化且可證明的安全共識機制。
- 增強抗攻擊性: 隨著網絡活動和存儲價值增加,強化 DAG 抵禦各種惡意攻擊的能力。
- 擴展性優化: 進一步突破交易吞吐量和延遲的極限。
- 互操作性: 探索 DAG 如何與其他 DAG 及傳統區塊鏈實現無縫互動。
對於更具擴展性、高效且環保的分散式帳本的追求,確保了 DAG 將繼續成為一個重要的創新領域。隨著這些技術的成熟並獲得更多現實世界的採用,它們有望解鎖新一代的去中心化應用與服務,這些在傳統區塊鏈的限制下曾是無法實現的。邁向日益高效且多功能的分散式帳本之路是一場激動人心的旅程,而 DAG 無疑是其未來不可或缺的一部分。

熱點專題



