從區塊鏈到DAG:擺脫中介

在本文中,我將向您介紹 DAG(有向無環圖)及其在分散式帳本中的應用,並將其與區塊鏈進行比較。

從區塊鏈到DAG:擺脫中介

DAG 在加密貨幣世界裡並不新鮮。你可能聽過它,認為它是解決區塊鏈可擴展性問題的一種方案。但今天我們不討論可擴展性,而是要探討加密貨幣與其他所有事物的不同之處:去中心化、缺乏中介機構以及抗審查性。

從區塊鏈到DAG:擺脫中介

我還將向您展示 DAG 實際上具有更強的抗審查能力,並且無需中介機構即可存取分類帳。

從區塊鏈到DAG:擺脫中介

在我們熟悉的區塊鏈中,用戶無法直接存取帳本本身。當你想將交易加入帳本時,你必須「請求」區塊生產者(又稱「礦工」)來執行。礦工決定哪些交易添加到下一個區塊,哪些不添加。礦工擁有對區塊的獨佔存取權,並有權決定哪些交易將被納入帳本。

礦工是您和分散式帳本之間的中介。

從區塊鏈到DAG:擺脫中介

實際上,少數幾個礦池通常控制著超過一半的網路算力。對比特幣來說,這個數字是四個礦池,而對以太坊來說,這個數字是兩個。如果他們合謀,就可以阻止任何他們想要阻止的交易。

從區塊鏈到DAG:擺脫中介

過去幾年,區塊鏈的變種層出不窮,它們在選擇區塊生產者的原則上各有不同。但區塊生產者本身並沒有改變,它們仍然「站在門檻上」:每筆交易都必須經過區塊生產者,如果區塊生產者不接受,那麼這筆交易實際上就不存在了。

從區塊鏈到DAG:擺脫中介

這是區塊鏈不可避免的問題。如果我們想解決這個問題,就必須徹底改變設計,徹底擺脫區塊和區塊生產者。我們不再建立區塊鏈,而是將交易本身連接起來,並在每筆交易中包含先前多個交易的雜湊。最終形成了一種數學上稱為有向無環圖(DAG)的結構。

現在每個人都可以直接存取帳本,無需任何中介。當你想將交易添加到帳本時,只需添加即可。選擇一些父交易,添加數據,簽名,然後將交易發送給網路中的對等節點。完成。沒有人可以阻止你這樣做,所以你的交易已經記錄在帳本中了。

這是最去中心化、最抗審查的方式,無需中介機構即可將交易添加到帳本。因為任何人都可以簡單地將自己的交易添加到帳本,而無需徵求任何人的許可。

從區塊鏈到DAG:擺脫中介

DAG 可以被認為是註冊中心演進的第三階段。首先是中心化註冊中心,由一方控制訪問。然後是區塊鏈,區塊鏈上已經有多個控制者將交易寫入註冊中心。最後,DAG 中完全沒有控制者,用戶直接加入交易。

從區塊鏈到DAG:擺脫中介

既然我們擁有了這種自由,就絕對不能導致混亂。我們必須就帳本的狀態達成一致。這種一致,或者說共識,通常意味著在兩件事上達成一致:

  1. 發生了什麼?
  2. 這一切是按照什麼順序發生的?

第一個問題很容易回答:一旦正確建立的交易被加入到帳本中,它就發生了。就是這樣。關於這筆交易的資訊可能會在不同時間到達所有參與者,但最終所有節點都會收到這筆交易並知道它已經發生。

如果這是一條區塊鏈,那麼礦工將決定接下來會發生什麼。礦工決定寫入區塊的內容,就會發生。礦工不寫入區塊的內容,就不會發生。

在區塊鏈中,礦工也解決了第二個共識問題:排序。他們可以按照自己的意願對區塊內的交易進行排序。

我們如何確定 DAG 中的交易順序?

從區塊鏈到DAG:擺脫中介

正因為我們有有向圖,我們已經知道了一些順序。每筆交易都引用一個或多個先前的父交易。反過來,父交易又引用它們的父交易,以此類推。父交易顯然出現在子交易之前。如果任何交易可以透過父子連結到達,我們就能準確地知道這條交易鏈中各交易之間的順序。

從區塊鏈到DAG:擺脫中介

但交易之間的順序並不總是能僅憑圖的形狀就能確定。例如,當兩個交易位於圖的平行分支上。

從區塊鏈到DAG:擺脫中介

為了解決此類情況下的歧義,我們依賴所謂的「訂單提供者」。我們也稱他們為「見證人」。這些是普通用戶,他們的工作是以有序的方式持續向網路發送交易,也就是說,透過父子連結可以存取到每筆先前的交易。訂單提供者是 受信任的用戶整個網路都依賴他們不違反這條規則。為了 理性地 為了信任他們,我們要求每個訂單提供者都是已知的(非匿名的)個人或組織,如果他們違反規則,就會失去一些東西,例如聲譽或基於信任的業務。

從區塊鏈到DAG:擺脫中介

訂單提供者由使用者選擇,每個使用者在發送至網路的每筆交易中都會包含他們信任的提供者清單。此清單包含 12 個提供者。這個數量足夠少,以至於人們可以驗證每個提供者的身份和聲譽,並且足以在少數訂單提供者不可避免地出現問題時維持網路正常運作。

此提供者清單因使用者而異,但相鄰交易的清單最多可相差一個提供者。

從區塊鏈到DAG:擺脫中介

現在我們有了訂單提供者,我們可以將他們的交易提取到 DAG 中,並圍繞他們創建的訂單對所有其他交易進行排序。可以創建這樣的演算法(參見 Obyte白皮書 (有關技術細節)。

但整個網路的順序無法立即確定,我們需要時間讓訂單提供者發送足夠的交易來驗證過去交易的最終順序。

並且由於順序僅由提供者的交易在 DAG 中的位置決定,因此網路中的所有節點遲早都會收到所有交易,並對交易的順序得出相同的結論。

從區塊鏈到DAG:擺脫中介

因此,我們對我們認為發生的事情達成了一致:任何進入DAG的交易都已經發生。我們也對事件發生的順序達成了一致:這要么是根據交易關係推斷出來的,要么是根據訂單提供者發送的交易順序推斷出來的。因此,我們達成了共識。

從區塊鏈到DAG:擺脫中介

這是我們在 Obyte 中提供的共識選項。儘管 Obyte 帳本的存取完全去中心化,但交易順序的共識仍然是中心化的,因為 10 個訂單提供者中有 12 個由創建者(Anton Churyumov)控制,只有兩個是獨立的。我們正在尋找願意成為獨立訂單提供者之一的候選人,以幫助我們實現帳本訂單的去中心化。

最近,出現了第三個獨立候選人,願意建立和維護訂單提供者節點——尼科西亞大學。

從區塊鏈到DAG:擺脫中介

現在我們如何控制雙重支付?

根據規則,當發現兩筆交易花費的是同一枚硬幣時,所有交易最終排序中較早的交易將獲勝。較晚的交易將被共識演算法視為無效。

從區塊鏈到DAG:擺脫中介
如果有可能在兩筆使用同一枚硬幣的交易之間建立順序(透過父子連結),那麼所有節點都會立即拒絕這種雙重支付嘗試。

從區塊鏈到DAG:擺脫中介

如果訂單在兩筆此類交易之間的父連結中不可見,則它們都會被接受到註冊表中,我們需要等待它們在訂單提供者的幫助下達成共識並建立訂單。然後,較早的交易將獲勝,而較晚的交易將無效。

從區塊鏈到DAG:擺脫中介

即使第二筆交易失效,它仍然會保留在註冊表中,因為已經有後續交易引用了它,這些後續交易沒有違反任何規定,也不知道這筆交易將來會失效。否則,我們必須刪除後續交易的父級,這將違反網路的主要原則——任何正確的交易都會被接受到註冊表中。

從區塊鏈到DAG:擺脫中介

這是一條非常重要的規則,它使得整個系統能夠抵抗審查企圖。 

假設所有訂單提供者合謀「審查」一筆特定的交易。他們可以忽略這筆交易,並且永遠不會將其選為其交易的“父交易”,但這還不夠,這筆交易仍然可能被網絡上任何非合謀用戶發出的其他交易間接地納入其中,成為其父交易。隨著時間的推移,這筆交易會從普通用戶那裡獲得越來越多的子交易、孫交易和曾孫交易,就像滾雪球一樣,所有合謀的訂單提供者也不得不忽略這些交易。最終,他們將不得不審查整個網絡,這無異於蓄意破壞。

從區塊鏈到DAG:擺脫中介

因此,即使訂單提供者之間存在勾結,DAG 仍然能夠抵禦審查,從而超越區塊鏈的審查抵禦能力。在區塊鏈中,如果礦工決定不納入任何交易,我們將無能為力。這源自於 DAG 的主要特性:帳本參與完全獨立,無需中介,交易不可逆。

來源: www.habr.com

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster