加密貨幣中的有向無環圖(DAG)是什麼?
目錄
前言
什麼是 DAG?
DAG 是如何運作的?
有向無環圖的優點和缺點
總結
加密貨幣中的有向無環圖(DAG)是什麼?
首頁文章
加密貨幣中的有向無環圖(DAG)是什麼?

加密貨幣中的有向無環圖(DAG)是什麼?

中等
發佈時間 Jul 19, 2020更新時間 Feb 3, 2022
7m

目錄


前言

當您想到加密貨幣時,很可能會想到「區塊鏈」或「分散式帳本技術」這些術語。自從比特幣推出以來,已經有數百種其他加密貨幣誕生。其中大多數仰賴類似的網路架構。它們的資料結構允許使用者轉移價值,或與去中心化的應用程式互動。
在區塊鏈上,新的區塊會被週期性地添加到一個不斷增長的區塊鏈上。每個區塊都會透過一種加密連結(具體來說,就是雜湊)與前一個區塊相連。在這些區塊中,每個區塊都有使用者推播的近期交易。
但是,在交易被推播和被納入區塊之間,往往有一個等待期。這就像在車站等待火車一樣。根據車廂的大小(區塊大小),以及其他等待的乘客數量(待處理的交易),您甚至有可能無法乘坐下一班火車。甚至是再下一班火車。您等待交易被確認的時間可能為幾秒鐘到幾個小時不等。
對許多人來說,這還是不錯的取捨。畢竟,不依賴中心化協調機構的情況下,這種方式提供了非常高的安全性。對其他人來說,區塊鏈技術終將遭到淘汰。批評者認為,從長遠來看,區塊鏈技術所面臨的可擴展性問題將阻礙大規模採用。

一些人認為,加密貨幣支付網路的未來會建構在一種完全不同的架構──有向無環圖(或DAG)。


什麼是 DAG?

DAG 是一種不同類型的資料結構──可以把它想像成一個將不同的資訊片段連接在一起的資料庫。有向無環圖的概念非常複雜,以下讓我們來逐項分析。


有向無環圖。


從概念上講,DAG 就如上圖所示。它們由頂點(球體)和邊緣(連接頂點的線)組成。它們是有向的,因為它們朝同一個方向前進(您可以看到用箭頭來說明這一點)。他們是無環的(即沒有循環),因為頂點不會形成迴圈──如果您從一個點開始,然後沿著圖走,您不可能回到同一個點。這一點您很快就會更清楚。

這樣的資料結構通常被用於資料建模。在科學或醫學領域,您可能會依靠 DAG 來觀察變數之間的關係,並找出它們是如何相互影響的。例如,您可以營養、睡眠週期和身體症狀等之間的關係,將它們聯繫起來,從而確定它們是如何影響病人的。

就我們的目的而言,我們更感興趣的是它們要怎麼樣幫分散式加密貨幣網路達成共識


DAG 是如何運作的?

以 DAG 為基礎的加密貨幣,結構中的每個頂點都代表著一個交易。這裡沒有區塊的概念,也不需要挖礦來擴展資料庫。因此,每個交易都建立在另一個交易之上,而不是將交易聚集到區塊中。儘管如此,當一個節點提交交易時,仍是會有少量的工作量證明操作。以確保網路不會受到垃圾資訊的干擾,同時也驗證了以前的交易。

要添加一個新交易,必須建立在舊的交易之上。假設愛麗絲建立了一個新交易。若欲確認該筆交易,則必須引用以前的交易。有點像比特幣中的一個區塊引用它之前的一個,但此機制需一次引用多個交易。 

在某些系統中,演算法會選擇新交易必須建立在哪些交易(或「末端」)之上。累積較多權重的末端獲選的可能性更高──這是一種衡量通向末端路徑中確認次數的方法。

愛麗絲將建立在其上的交易是未經確認的。但是一旦愛麗絲引用它們,它們就會被確認。愛麗絲的交易現在是未確認的,該筆交易僅能於其他人將交易建立於其上後被接受。

使用者更可能確認權重「較高」的交易,從而使系統不斷的增長。否則,就沒有什麼能阻止使用者在舊的交易上不斷地構建。

區塊鏈能輕易防止雙重支付。同樣的資金不能在一個區塊中被花費兩次──節點可以很輕易地發現任何上述嘗試,並會拒絕任何包含衝突交易的區塊。由於礦工生產區塊的成本很高,因此他們受鼓勵要公平競爭。

DAG 也有防止雙重支付的機制。有點類似,但沒有礦工。當節點確認舊的交易時,它們會評估整個路徑,追溯到 DAG 的第一筆交易,以確保發送方有足夠的餘額。可能會有多條路徑,但只需驗證其中一條。



如果使用者構建在無效路徑上,他們就會冒自己的交易被忽略的風險。他們的交易可能是合法的,但由於前一筆交易不合法,所以沒有人會想要擴展這條特定的路徑。

乍看之下,這似乎不太直觀──難道不會出現多個分支都不知道彼此存在的情況嗎?那麼,大家不能在這些不同的分支上花費同一筆資金嗎?



這確實是一種可能性,但它是透過一種選擇演算法來解決的,而該演算法傾向於具有較高累積權重的末端。這代表,隨著時間的推移,您最終會有一個比其他分支強得多的分支。較弱的分支將被捨棄,而網路將繼續建立在權重最重的分支上。 

就像區塊鏈一樣,沒有絕對的確認──您永遠無法 100% 肯定一筆交易不會被逆轉。雖然極不可能,但理論上您可以「撤銷」一個比特幣以太坊區塊,逆轉裡面的所有交易。在您的交易之後增加的區塊越多,您對這筆交易的信心就越大。這就是為什麼我們建議您先等待六次確認後,再使用資金。
在 DAG 中,如 IOTA 的 Tangle,有一個確認信心的概念。選擇演算法會運行 100 次,您可以在選中的末端上,計算您的交易被直接或間接核准的次數。百分比越高,您對交易會不會保持「終局」就可以越有信心。

這似乎會導致糟糕的使用者體驗。但事實並非如此。如果愛麗絲向鮑勃發送 10 個 MagicDAGToken,她不需要去煩惱選擇正確的圖形末端。在後台,她的錢包會執行以下操作:

  • 選擇權重較高的末端(記住,這些是累積確認次數最多的末端)。
  • 按照以前的交易路徑進行回溯,以確保末端有足夠的餘額可以消費。
  • 若達到以上條件,交易將被新增到 DAG 中,並確認之前的交易。
對愛麗絲來說,這看起來就像是正常的加密貨幣工作流程。她輸入鮑勃的位址和她想要花費的金額,然後按下發送。上面的清單是每個參與者在建立交易時運行的工作量證明。



有向無環圖的優點和缺點

DAG 的優點

速度

不受出塊時間限制,任何人都可以在任何時候推播和處理他們的交易。只要他們確認舊的交易,對使用者提交的交易數量沒有限制。


不需挖礦

DAG 不像我們習慣的那樣來使用 PoW 共識演算法。因此,它們的碳足跡相較於仰賴挖礦以保護區塊鏈網路的加密貨幣,僅占一小部分。


無交易手續費

因為沒有任何礦工,使用者不需要支付費用推播他們的交易。儘管如此,還是有些需要向特殊種類的節點支付少量費用。低費用(或者免費更好)對小額支付很有吸引力,因為高額的網路費用違反小額支付的目的。


無可擴展性問題

由於不受出塊時間的限制,DAG 每秒處理的交易比傳統的區塊鏈網路多很多。許多支持者認為,這將使 DAG 在各種機器都會產生互動的物聯網(IoT)使用案例中變得很有價值。


DAG 的缺點

不完全去中心化

依賴於 DAG 的協定具有各種中心化的因素。對於一些人來說,這應該是一個引導網路的短期解決方案,但 DAG 是否能在沒有第三方干預的情況下蓬勃發展,還有待觀察。若失敗,它們將會暴露於攻擊載體面前,最終可能使它們的網路癱瘓。


未經過大規模的測試 

雖然基於 DAG 的加密貨幣已經推出了好幾年,但就廣泛使用來說,他們還有很長的路要走。因此,很難去預測使用者在未來會有什麼樣的動機利用該系統。


總結

對於構建加密貨幣網路來說,有向無環圖無疑是一項有趣的技術。到目前為止,使用該資料結構的項目相對較少,而且尚未發展成熟。 
雖然如此,如果它們能夠發揮自己的潛力,它們可以為大規模的可擴展生態系提供動力。DAG 技術在需要高輸送量和不收費的領域中有無數的用例,例如物聯網(IoT)和小額支付領域。