什麼是 DAG(有向無環圖)?
有向無環圖(DAG)是一種非線性的分散式帳本架構,把交易或區塊串連成由頂點構成的網路,而非單一條循序鏈。DAG 系統允許並行處理同時發生的活動,目標是提升擴展性與吞吐量,同時減少網路瓶頸。與仰賴單一全域區塊頂端的傳統線性區塊鏈不同,DAG 協定的效能、安全性與共識模型,很大程度取決於其排序、衝突解決與終局性規則。
有向無環圖(DAG)是一種資料結構,由頂點以單向邊相連而成,這些邊永遠不會形成迴圈。在分散式帳本中,頂點可以代表交易、事件或區塊,其連結則記錄相依關係或對更早歷史的引用。多條分支可以同時成長,而不必把每一次更新都塞進單一條線性區塊鏈。
DAG 描述的是資訊的組織方式,本身並不是一套完整的共識機制。網路仍需要規則來接納事件、偵測衝突、為相關交易排序、抵抗女巫攻擊並達成終局性。Hedera 的 hashgraph、區塊-DAG 協定、交易-DAG 系統與帳戶鏈設計,使用圖結構的方式各不相同,因此「DAG 區塊鏈」一詞不應暗示它們共享同一套安全或效能模型。
什麼是 DAG 架構?
有向無環圖(DAG)是一種帳本架構,把交易或區塊組織成由相互連結的項目構成的網路,而不是單一條線性鏈。 有向是指連結依循既定方向,而 無環則指這些連結無法迴繞到更早的節點。這讓多筆交易或多個區塊可以並行處理與被引用。
並非每個以 DAG 為基礎的網路在技術上都算是區塊鏈。有些 DAG 系統把個別交易記錄為圖上的項目,有些則先在 DAG 中組織區塊,再決定其最終順序。因此,DAG 網路如何運作,取決於其共識規則、交易排序、防雙花機制與終局性機制。
DAG 分散式帳本如何運作?
DAG 帳本把新的交易或區塊以 頂點的形式加入,這些頂點會引用較早的項目,而不是只延伸單一條線性鏈。由於不同頂點可以同時產生,彼此獨立的活動便能並行處理並在網路上分享。
1. 新項目引用較早的項目:每筆交易或區塊連結到一個或多個先前的頂點。
2. 節點共享這張圖:參與者交換新項目,並依據這些引用重建網路的交易歷史。
3. 共識解讀 DAG:由協定決定相互競爭的分支或交易應如何排序或加權。
4. 衝突獲得解決:若兩筆交易試圖花用同一筆資金,預先定義的共識規則會決定接受哪一筆。
5. 交易達成終局性:依網路而定,終局性可能來自投票、累積權重、排序規則或其他共識機制。
DAG 帳本的主要優勢與應用場景有哪些?
當協定想在推導出最終認可順序之前,先記錄同時發生的活動時,DAG 結構便能派上用場。其優勢取決於網路本身,無法只從圖的形狀推斷。
1. 並行更新可以進入歷史紀錄。多個節點可以產生引用近期歷史的事件或交易,不必等待單一全域區塊頂端,從而減少一個結構性的序列化瓶頸。
2. 閒聊(gossip)關係可以承載共識資訊。在 hashgraph 中,事件連結記錄誰與誰通訊,讓節點能從共享歷史計算出虛擬投票,而不必為每項決定另行廣播投票。
3. 高頻紀錄可以被有效組織。當協定能夠解決相依關係與衝突時,支付、時間戳、訊息、供應鏈事件與機器活動都可能受益於以圖為基礎的資料輸入方式。
4. 圖能呈現因果歷史。引用顯示在某個事件產生之前,哪些事件已為人所知,提供共識演算法可用於排序或確認的資訊。
以 DAG 為基礎的分散式帳本有哪些例子?
以 DAG 為基礎的網路差異極大。要比較它們,必須檢視共識、許可機制、交易模型、終局性與智慧合約支援,而不是只按圖相關術語把它們歸為同一類。
• Hedera Hashgraph. Hedera 的節點以閒聊方式交換已簽署的事件,這些事件包含交易與父事件的雜湊,進而建立支援虛擬投票與共識時間戳的 hashgraph。
• IOTA Tangle 設計。IOTA 過去採用名為 Tangle 的交易 DAG,不過其架構與共識已有所演進,因此任何實作相關說法都應以現行協定文件為準。
• Avalanche 共識家族。Avalanche 提出以 DAG 為導向的共識設計,用於反覆進行的子取樣投票;而其已部署的鏈與虛擬機,則可針對特定工作負載呈現線性的區塊鏈歷史。
• Nano 區塊格(block-lattice)。Nano 在更廣泛的圖中,把每個帳戶的更新組織成各自的帳戶鏈,讓帳戶擁有者能獨立更新,並由代表投票解決衝突。
DAG 帳本的限制與風險有哪些?
DAG 可以容納並行的歷史紀錄,但並行也讓排序、衝突解決、儲存、修剪與網路同步變得困難。安全性來自完整的協定與參與者模型,而不是來自沒有線性鏈。
1. 共識仍然不可或缺。單靠圖無法在雙花、惡意分支或互不相容的事件之間做出決定,因此網路仍需要投票、加權、領袖、委員會或其他達成一致的流程。
2. 圖的成長會增加資源壓力。節點可能需要保存、遍歷、建立索引並同步大量頂點與關係,使得修剪與高效率的狀態表示對長期運作至關重要。
3. 終局性可能不易解釋。使用者必須區分事件接收、納入圖中、信心程度、共識排序與不可逆終局性,因為這些階段在不同 DAG 協定中各有差異。
4. 抗女巫攻擊機制因網路而異。協定可能依賴質押、許可制成員、代表投票、聲譽、 工作量證明或速率控制,各自形成不同的攻擊成本與治理假設。
5. 互通性可能較窄。為帳戶制 區塊鏈打造的錢包、瀏覽器、託管系統與智慧合約工具,可能需要專為某個網路的圖與交易模型進行專門整合。
DAG 與區塊鏈是同一回事嗎?
DAG 未必等同於區塊鏈。傳統區塊鏈本身就是一種受限的有向結構,因為區塊會引用先前的區塊,但其公認歷史通常以單一條有序鏈的形式呈現。一般化的 DAG 可以保留多條並行分支或帳戶歷史,之後再推導出被認可的順序。有些協定是區塊-DAG,有些是交易 DAG,還有一些在內部使用 DAG,對外卻呈現線性帳本視圖。決定正確名稱的是協定的資料與共識規則。
相關概念
1. 什麼是區塊鏈?
2. 什麼是共識?
3. 什麼是雜湊?
4. 什麼是拜占庭容錯?
延伸閱讀
1. 什麼是 Hedera(HBAR)?aBFT 共識如何驅動 Hashgraph 生態系?
常見問題
DAG 帳本可以並行處理交易嗎?
它可以同時記錄或評估彼此獨立的活動,但實際吞吐量取決於共識、衝突率、網路通訊、執行、儲存與節點硬體。單是 DAG 的形狀並不保證效能。
DAG 帳本需要礦工嗎?
DAG 如何防止雙重支付?
Hedera 是傳統的區塊鏈嗎?
還沒有帳戶?
立即註冊,開啟您的加密貨幣之旅