區塊鏈的新視角:數據庫、共識、Rollup與橋

發表於 2023-07-20 09:46 作者: 區塊律動BlockBeats

作者:Patrick McCorry;編譯:0×26,區塊律動

本文來自 Arbitrum 基金會和 Lemniscap 的 Patrick McCorry。Patrick 是英國第一位加密貨幣博士畢業生,在 2013 到 2016 年攻讀博士期間,研究比特幣和以太坊相關方向,之後在倫敦國王學院擔任助理教授,UCL、NCL 和 UIUC 做研究員。2019 年,Patrick 離开大學進行 Layer2 方向創業,並被 Infura 收購,他在 Infura 期間還制作了一整套區塊鏈課程。之後 Patrick 加入了 Lemniscap 和 Arbitrum Foundation。

本文分兩部分,第一篇爲《區塊鏈作爲數據庫》(Blockchain as a Database),第二篇是《數據庫跨鏈》(Bridging Databases)。Patrick 用第一性原理,將區塊鏈抽象成共識協議+數據庫的形式,並以此爲基礎,解釋了 Layer1、Layer2 和跨鏈橋的工作原理,以及 Layer1 和 Layer2 的區別等。

以下爲經律動編譯的文章原文:

《區塊鏈即數據庫》

關於驗證橋是否定義了 rollup 存在了很大的爭議,或者換句話說:

rollup 等於橋?

我們先退後一步,用第一性原理看這個問題。

什么是區塊鏈?

如何把資產從一個數據庫通過橋轉移到另一個數據庫?

我們通過兩篇文章討論上述兩個話題,討論完畢後再回過頭審視這兩個話題,評估其正確與否。

什么是區塊鏈?

區塊鏈的主要目的:允許任何第三方算出相同的數據庫信息,並相信這份數據有效。

區塊鏈的核心是數據庫,其中記錄着:

账戶余額

智能合約代碼

程序狀態

在幾乎所有的系統中,區塊鏈都定義了所有歷史交易的順序。

至少這是很長一段時間內,我們學到的。

它不必是一串交易列表。很可能是一個狀態差異列表,邊上還有零知識證明。

那,什么是區塊鏈?

區塊鏈,是一組有順序的數據表,可以根據確定的規則計算出數據庫副本。

重新強調下區塊鏈的目的:

允許用戶計算出數據庫副本。

唯一的任務就是讓復制這個數據庫成爲可能。

很無聊對吧?

對區塊鏈達成了共識

關於區塊鏈,其中的一個難題是:

社區如何達成全球一致(共識),並且認識到什么是真正的區塊鏈。

如果我們能對同一個區塊鏈達成統一,那全球的用戶都能算出同樣的數據庫。

這引出了共識協議的想法,目標很簡單:

使一群可能是匿名的、互不信任的各方,就一個決定達成一致。

在區塊鏈的語境中,共識協議使一個方能夠提出一個數據『塊』,將其附加到數據序列的最上端,所有其他方都同意這確實是新的區塊頭。

這就是爲什么它被稱爲區塊鏈,就是因爲我們都在就同一串數據塊達成一致!

在設計和實施共識協議時,需要考慮許多技術挑战:

我們能否實現开放,讓任何人都可以參與?

各方達成一致需要多大的通信復雜性?

是否可能爲人們提供經濟激勵,讓他們主動參與?

盡管這是一個非常有趣且復雜的主題,我們暫時先不關注這些挑战。唯一需要記住的是,只需要存在一個共識協議,它可以使所有各方就新的數據塊達成一致。

共識協議的新實際案例

多年來,特別是在追尋區塊鏈 Layer 1 的過程中,社區已經經歷過各種各樣的共識協議配置的嘗試:

Bitcoin 上的 Nakamoto

Ethereum 上的 Gasper

Cosmos 上的 Tendermint

Avalanche 上的 Snowman

在幾乎所有情況下,(協議)進入市場的策略都是發布一個新的共識協議,協議會持續對數據庫進行更新。不僅僅是關於部署共識協議,還包括所有圍繞它的基礎設施。以及社會層面上,使誠實的大多數無准入的參與其中。

這是一個艱巨的任務。

同時也引發了一個有趣的問題:

如果我想推出一個鏈,最終成爲新的數據庫,我真的還需要推出一個新的共識協議么?

令人驚訝的是,答案是不!

重拾現有的共識協議

區塊鏈可以像一個公告欄一樣,讓所有人看到一樣的訊息。

在深入探討之前,我們先設想一個抽象概念:

公告欄,確保持續性的讓所有有需求的人看到數據。

這是一個與電子投票協議有關的概念。公告欄允許所有用戶可以獲得同樣的協議記錄。用戶可以獲得這份記錄,獨自執行,並驗證協議是否正確。在電子投票這個例子中,(公告欄)可以用來檢查投票活動是否正確運行,以及所有票數是否正確記錄。

這和區塊鏈有什么關系?好吧,只要:

任何人都能獲得公告欄中的數據。

那么,任何人都能得到帶有時間戳的數據並且計算出數據庫的副本。實際上,許多 Layer-1 鏈,特別是 Bitcoin 和 Ethereum,是特別好的公告欄。此外,它們還讓在公告欄上寫入數據變得很容易。

只需匯總(roll up)數據並將它發布到區塊鏈系統上

重用現存的區塊鏈系統被稱爲 rollup。

Rollup:所有的數據被匯總並發布到相應的鏈上。

決定數據的排序,並保證任何人都可以訪問數據的繁重工作,留給了現有的區塊鏈系統。這不是一個新的想法。事實上,它已經存在了大約 10 年。rollup 方法已經成爲引導新數據庫的一種流行方式。

有許多例子:Coloredcoins,MasterCoin / Omni,Ordinals,Arbitrum,Optimism,StarkEx,ZkSync,Polygon Hermez,Scroll。

上述所有項目,以及一些其他的項目,都在試圖在 Bitcoin 或 Ethereum 基礎上引導新的數據庫。

事實上,由於這種方式的流行,還有一個名爲 Celestia 的平台,它專注於構建專門用於啓動 rollup 的數據庫。

我們仍然可以把 rollup 看作是區塊鏈:

一系列定期發布的數據,

並會附加在有順序的相關數據庫中。

區塊可能會看起來不一樣,甚至可能是一串數據塊。但總的來說,它仍然是僅附加數據結構,最終總具有(或因果的)排序。

最終,不論是开發出一種新的共識協議還是重拾已有的,目標是一樣的:引導出一個數據庫。

解析區塊數據結構的原則

由社區來執行並強制執行全球公認的規則,特別是反擊系統內部節點。

假設各方都可以獲取相同的數據,最後的挑战是讓所有各方遵循同一套規則,即同一套解析數據塊和計算數據庫副本的規則(『狀態轉換函數』)。

解析數據的一個例子:

取一個數據塊,

將其解析爲一個交易,

檢查交易是否可執行,

在特定的虛擬機上執行它,

將更新傳遞到數據庫。

這導致了加密貨幣的一個獨特問題:

在面對解析數據時,需要一套擁有全球共識的解析規則。

在協調全球一致解析規則時,我們需要評估兩種情況:

操作執行。所有各方都同意的規則,99.9% 的時間都在執行。

規則的治理。所有各方都有一個設定過程,提出並同意新的規則。

首先,幾乎所有的討論都將區塊鏈網絡的安全性與日常的規則執行操作聯系起來。這十分重要,因爲它關注的是軟件,和參與的各方,如何持續執行同一套規則來保護數據庫。

然而,保護區塊鏈網絡的最終保障,特別是當操作執行出現問題時——意味着要更新規則。關於如何改變規則,何時執行新的規則,這必須有一個過程,讓所有參與者達成社會層面的共識。

讓我們更詳細地探討執行和治理的概念。

執行操作

我們所有人都有責任持續執行規則,驗證每一個提出的數據庫更新。

日常操作執行是使區塊鏈系統計算數據庫如此令人興奮的原因!

我們只需要對以下兩點達成一致:

在哪裏找到數據塊的總排序

解析數據塊的規則。

這就夠了。只要遵循規則的數據庫,所有參與者都有機會獲取數據塊,執行規則。

無論參與者是大還是小,是排序發起者還是家庭節點,每個人都應該對數據庫的內容有信心。

進一步說,只要所有的市場參與者都執行同樣的規則,他們都可以計算出同樣的數據庫副本,那么我們就可以讓市場決定什么應該被認爲是真正的區塊鏈。

治理規則

所有的區塊鏈系統都必須用一套解析數據和計算數據庫的規則來引導。

幾乎所有的區塊鏈系統都需要一個引導階段:

(Bitcoin)比特幣核心來自中本聰

(Ethereum)黃皮書來自 Gavin Wood。

通常情況下,一個項目是由一小群开發者引導的,他們決定規則,啓動區塊鏈,然後將軟件(以及規則)交給更廣大的社區。

下一步就是改變規則。

關於改變規則有很多原因,例如軟件升級或者修復漏洞。任何規則的修改都需要獲得更廣泛的同意,或者叫做,社會共識。

有兩種方式達成改變規則的共識:

粗略的共識。不透明且不明確的過程。

鏈上治理。明確的代幣治理者投票的過程。

前者,粗略的共識,是像比特幣和以太坊這樣的區塊鏈網絡的核心部分。它涉及到人爲的過程,與各種參與者達成一致,然後开發者實施升級,提出一個標記日,升級可以生效。

後者,鏈上治理,首先由 Tezos 开創,使參與者能夠明確地投票決定是否應該部署升級,然後提供一個時間表,成功投票後,軟件可以在這個時間表上更新。正如我們將很快看到的,鏈上治理的方法已經在 DAOs 中流行起來,作爲一種管理單一項目的方式。

在上述兩種情況下,仍然需要就提議的升級達成一致,(即使這樣)也不能保證它會順利進行:

沒有區塊鏈分裂:升級順利執行,全球一致(包括市場)只接受一個新規則的數據庫。

區塊鏈分裂:如果升級有爭議,且爭議雙方仍然運行,那么它可能導致永久的分叉,因爲兩個社區應用不同的規則,計算出不同的數據庫,各自有自己的市值。

換句話說,治理過程只提供了一個模糊的結果,社區可能會接受提議的升級。(真正的結果)我們只能在標記日和升級執行後才能確定。很有可能社區成員會反對,忽視新的規則,允許兩個競爭的數據庫出現。就像 BTC/BCH 和 ETH/ETC 一樣。

最後,有兩種方式執行新規則的改變:

硬分叉。未升級節點將拒絕的規則的可檢測變化。對規則進行可檢測的更改,未升級的節點將無法參與新規則。

軟分叉。非升級節點將忽視的規則的不可檢測變化。對規則進行不可檢測的更改,未升級的節點將這部分忽略。

硬分叉或軟分叉的概念關注的點在於,是否可以檢測到規則的變化,以及它如何對此做出反應。很容易就會圍繞應該使用哪種方法展开激烈的辯論,因爲它最終會影響網絡的抗審查性,抵御惡意攻擊,以及用戶是否可以明確選擇規則變更。

數據庫的世界

區塊鏈網絡的整個追求就是構建一個开放的數據庫,允許任何人讀取,寫入和保護它。

過去 14 年來,社區最大的實驗始終集中在如何構建一個「更好」的數據庫。

已經有了明顯的演變:

托管數據庫。復制 web2 的體驗,但信任操作員保護數據庫的完整性和活力。

公共數據庫。允許任何人讀取數據庫,但最終信任一個操作員來更新它。

开放數據庫。允許任何人讀取,寫入和保護數據庫。

舉一些例子:

中心化交易平台。幾乎所有的交易平台都實現了 web2 風格的數據庫,不可能有任何人計算出數據庫的副本。

權威證明(PoA)。一些區塊鏈系統依賴於一個指定的,或多個指定的權威,發布新的區塊來更新數據庫。任何人都可以下載區塊,解析數據塊,計算出數據庫的副本。他們只是沒有權威提出新的區塊。

中本聰共識。任何愿意使用財務資源的人,都可以參與更新數據庫的過程,通過發布(和投票)新的區塊。同樣,任何人都可以下載區塊,解析數據塊,計算出數據庫的副本。

現在——我們使用「更好」的這個詞,因爲答案——什么是好的數據庫,是非常主觀的,它取決於社區試圖優化的指標:

看重可以參與共識協議的參與者?

看重可以下載數據庫副本的參與者?

限制誰可以寫入數據庫,而不需要受信任的操作員的批准?

不在意在系統上進行交易的成本?也許在試圖保持數據對任何人开放的同時?

什么對奶奶來說最容易進行交易?

我們可以客觀地定義指標,並評估區塊鏈系統如何實現其聲明的目標。社區會永遠爭論哪些指標重要,以及他們如何比競爭對手更好地實現這些指標。然而,最終重要的是用戶選擇在哪裏進行交易,以及他們爲什么做出這個決定。

只有一個問題——我們如何將資產從一個數據庫移動到另一個數據庫?例如,一個典型的用戶流程可能包括:

上线。在 Coinbase 上購买代幣

轉移。將代幣從 Coinbase 轉移到以太坊

行動。嘗試 DeFi 應用,

轉移。將代幣從以太坊轉移到 Arbitrum

行動。嘗試 DeFi 應用,

轉移。將代幣從 Arbitrum 轉移到 Binance,

鏈下。變成法幣。

所有命名的系統都是各自具有不同安全性和可審計性的數據庫。但是,爲了實現資產的轉移,我們需要談談橋,這將是我們下一篇文章的重點!"

橋接世界——引言

簡短回顧:《區塊鏈作爲數據庫》

上文探討了 "什么是區塊鏈?",這是一個了解區塊鏈目的的絕佳機會。

那么,什么是區塊鏈?

區塊鏈只是一種數據結構,用於規定數據(交易)的整體排序。

只有一個目的:

任何人都可以獲取區塊鏈,按順序解析數據(交易),並計算出同一數據庫的副本。

現在輪到了——區塊鏈網絡中最難解決的問題之一:參與者如何驗證他們擁有相同、且唯一的區塊鏈副本?

簡單來說,區塊鏈工程的整個領域都集中在以下方面:

實現單一數據庫。

在全球範圍內,所有各方匯聚到同一個區塊鏈上的唯一方法就是加入共識協議。它讓所有各方共同商定出決定——添加最新的數據塊。

一個有趣的附帶說明是,數據塊不一定是交易列表,事實上有兩種選擇:

交易歷史。要執行的事務的明確列表。狀

態差異。可用於更新數據庫中存儲槽的「狀態差異」列表。

由參與者決定如何將數據解析爲可應用於數據庫更新的規則集("狀態轉換函數")。由於有效性證明的興起,狀態轉換方法是最近才出現的。

因此,歸根結底,所有區塊鏈協議的重點都是保證正確的數據排序,並向所有人公开。事實上,有一個非常微妙的假設:

最近廣播。共識協議只能保證數據在某個時間點的發布。

並不能保證歷史上達成一致的決策都是可用的,而且大多數提供數據的節點都是利他的(譯者注,大多數提供歷史交易數據的節點是出於利他主義行爲。這是因爲在區塊鏈網絡中,節點沒有義務一直保存所有的交易數據。)。

最後,在決定如何確保數據庫數據的公开性時,項目可以做出以下選擇:

部署一個新的共識協議("Layer1")

重新使用現有的共識協議("rollup")

前者是一項艱巨的工作。它需要引導整個生態系統愿意站出來,並且通常需要誠實的大多數參與者來保護系統。

rollup 承認引導這樣一個生態系統是很困難的,而且造輪子的價值不大。利用 Layer1 作爲公告板,並讓其保證所有相關數據的可用性(和排序)要容易得多。

無論一個項目決定部署新的 Layer1 還是 rollup,所有方法都會導致一個具有不同程度的信任假設和安全性的數據庫世界。

我們可以很容易地將它們歸類爲「封閉」、「公共」或「开放」數據庫,其重點在於數據庫是否可以公开讀取,以及用於實現向數據庫寫入的機制。

將資產從一個數據庫轉移到另一個數據庫的跨鏈橋。

上述內容聽起來很理論化,但有經驗證據表明,我們現在生活在一個有成百上千個數據庫希望與加密資產互動的世界。

這就引出了下一個問題:

用戶如何將其資產從一個數據庫轉移到另一個數據庫?

我們需要研究用戶如何將其資產從一個數據庫轉移到另一個數據庫。

更廣義地說,他們如何在不同的系統間傳遞信息。讓我們一探究竟!

橋接世界

這一切都是關於如何通過橋將消息從一個數據庫發送到另一個數據庫。

有一個組件可以助力實現想象中的那種區塊鏈世界:

橋:爲難以或不可能跨越的事物提供通道。

其實橋的工作很簡單。它應該讓消息從一個數據庫傳遞到另一個數據庫。它可以被視爲一種通信協議,其中實體(橋)位於發送者和接收者之間。

所有通信協議都盡力滿足以下屬性:

傳遞及時。消息盡可能快的被接收者使用。

完整。應該傳遞完整的內容。

可驗證。接收者可以驗證該消息確實是由發送者發起的。

有一點值得注意,橋作爲通信協議,並不致力於保護消息的隱私性。這在橋這個領域是可選項,且(現在)還沒有保護消息隱私的橋協議。

現在,橋需要解決的主要問題是能夠讓接收者相信消息的真實性,即證明過程。

人工運營橋

我們相信人爲運營的操作系統能夠傳遞信息並證明其真實性。

在幾乎所有橋的設計中,發送者(數據庫 A)和接收者(數據庫 B)之間都有一組權威機構。當然,發送者和接收者很可能是存在於各自數據庫中的智能合約。

這些權威機構將:

獲取。從數據庫 A 獲取新的消息。

籤名。對將發送到數據庫 B 的所有消息進行數字籤名。

證明。將數字籤名和消息發送到數據庫 B。

證明過程要求接收方的數據庫(數據庫 A)驗證消息確實是由受信任的權威機構籤名的。如果是這樣,它就可以對消息的內容和來源有信心。

關鍵問題:信任這些指定的權威機構。

更進一步,發送者和接收者都必須百分百的信任指定的機構來傳遞消息並證明其完整性。這是因爲如果沒有第三方的幫助,發送者和接收者就無法看到外界。

這種橋可以被稱作人工運營橋。

它依靠人類(服務器端應用程序)來促進通信並代表發送者或接收者強制執行所有規則。它是最容易部署的橋類型,可以應用於各種不同的區塊鏈,但它是最難大規模保護的。

不幸的是,加密貨幣和中本聰發起運動的全部意義在於消除系統運行所需的所有信任,並用加密證明取而代之。

我們需要做得更好。

不斷進化的證明信心

我們可以嘗試減少中間人爲操作角色的權限,直至僅攜帶消息的郵遞員。

我們應該將加密證明與發送者的消息一起發送,以證明消息的真實性。

如果成功,這份證明應該使接收方智能合約對消息的真實性毫無疑問地相信,而不必信任人工一方。

可以減少人工運營的角色:協助將消息(作爲中繼器)從數據庫 A 中傳遞到數據庫 B。

讓我們探討幾種不同程度的方法來證明其的實際意義。

強制提供正確的證明(Nomad)

對於這種方法,我們提出以下問題:

我們是否可以通過要求人工運營對其證明負責來減少對人工運營的信任?

在這種方法中,權威機構仍然需要證明消息的真實性,但如果權威機構試圖作弊,可能會立即受到懲罰。例如,通過不正確且衝突的消息。

Nomad 協議是實施這種負責方法的一個例子。

它假設有兩個權威方:

認證權。負責讀取數據庫 A,籤署其發出的消息,並將籤名提交給數據庫 A。

否決權。負責交叉驗證籤名消息是否源自數據庫 A,以此保護數據庫 B。

執行認證權一方應該鎖定相當大的資產,以阻止惡意行爲,並且任何人都可以扮演這個角色。另一方面,否決權必須在協議實際運行之前指定,如何使否決權角色無准入化仍然是一個开放的研究問題。

Nomad 協議有三個階段:

認證消息。認證者讀取數據庫 A 中的消息,籤署消息並將籤名提交給數據庫 A。

消息中繼。任何人都可以拿到籤名的消息並將其轉發到數據庫 B。

否決階段。有一個固定的時間窗口(例如,30 分鐘),供有否決權的一方檢查發送到數據庫 B 的消息是否與數據庫 A 上的消息完全相同。如果不是同一個,那么應該否決並取消消息。

雖然出於說明目的,我們的示例假設只有一個接收數據庫,但 Nomad 協議可以擴展,允許多個數據庫接收相同的籤名消息。

數據庫 A 承擔認證的責任,但依賴擁有否決權的另一方,來監視所有支持的數據庫上的惡意籤名消息。

我們需要考慮擁有權力的一方可能試圖欺騙橋協議的情況:

1. 認證方確認並籤署了一份沒有數據庫 A 確認的消息。

2. 否決方否決數據庫 A 認可的消息。

在第一種情況下,認證方獨斷的生成了一個數字籤名,如果他們試圖欺騙接收者,數據庫 A 將無法識別該數字籤名。任何一方都可以獲取籤名,將其發送到數據庫 A,並授權數據庫 A 懲罰認證方。

在第二種情況下,它仍然是一個完全受信任的角色,並且協議內沒有方法可以反擊。需要注意的是,協議記錄對所有參與者都是公开的,並且在事後可以通過投票取消否決權。然而,到那時可能已經造成了損失,因爲否決誠實的消息可能會對依賴基於時間的行動(即清算)類的智能合約產生重大影響。

檢查共識協議(SPV)的一致性

跟蹤被各自共識協議同意的區塊,以及有關特定交易和更一般的數據庫記錄證明。

對於第二種方法,我們提出以下問題:

我們可以跟蹤數據庫 A 的共識協議嗎?

正如上文中提到的,所有區塊鏈網絡都有一個共識協議,該協議同意定期在鏈最頂端生成新區塊。區塊可以被認爲是對數據庫的批量更新。

在這種方法裏,目標是允許數據庫 B 上接收(消息)的智能合約,能夠跟蹤且相信來自數據庫 A 的共識協議生成的數據。

爲了實現這一點,共識協議默認情況下必須是輕客戶端友好的:

輕客戶端:需要最少的計算和數據即可了解且相信數據庫的當前狀態。

簡而言之,輕客戶端允許用戶了解數據庫中記錄的值,並確信共識協議同意該數據應該存在於數據庫中。

輕客戶端的概念和比特幣一樣古老。

比特幣白皮書中將其稱爲簡化支付驗證(Simplified Payment Verification,SPV)模式。SPV 允許用戶驗證他們確實收到了比特幣,而無需驗證和保存整個比特幣數據庫的副本。

所有的區塊頭形成一個鏈式結構,並且每個區塊頭的哈希值都包含了工作量證明的結果

SPV 過程按以下方式運行:

加密承諾。每個塊頭都包含代表整個比特幣數據庫的加密承諾(默克爾根)。此外,區塊頭還包含前一個區塊的鏈接及其自身的工作證明。

檢查最長鏈。任何用戶應該都可以獲得區塊頭數據並且獨立的驗證(PoW)目前爲止的最長鏈。

包含證明。一旦用戶確信他們的區塊頭列表代表了主鏈,任何人都可以向用戶提供數據庫中特定數據的包含證明(默克爾根)。

確信。用戶可以將包含證明與相關塊頭進行交叉檢查,然後確信數據庫中的特定數據。

比特幣 SPV 模式可以作爲構建輕客戶端橋的基礎,允許另一個區塊鏈上的智能合約了解比特幣數據庫中的內容。

一個名爲 BTCRelay 的舊項目在比特幣(數據庫 A)和以太坊(數據庫 B)之間實現了輕客戶端橋。這是以太坊上的智能合約,可以解析比特幣區塊頭、包含證明,並通過工作量證明追蹤最長的鏈。最終,它的目的是驗證 UTXO 是否確實存儲在比特幣數據庫中,然後允許另一個智能合約對其進行操作。

不幸的是,BTCRelay 有點超前了。雖然它的功能很完整,但它沒有受到太多的關注。

我們可以從該項目中學到一些經驗教訓:

累積 gas 成本。跟蹤區塊頭需要許多鏈上交易,財務成本會隨着時間的推移而累積。

只適用於比特幣的分叉。BTCRelay 只兼容分叉比特幣代碼庫的區塊鏈。使用不同共識協議的區塊鏈需要專門實現其各自的輕客戶端。

仍然需要信任共識。BTCRelay 只能檢查工作證明是否正確,而不能檢查區塊頭是否有效。如果一個敵對的礦工用有效的工作證明制作了一個惡意的區塊頭,那么橋就可能被破壞。等待約 6 次確認並依賴比特幣的誠實多數假設(>51% 的礦工是誠實的)仍然是必要的。

有些研究主要集中在,通過將多個區塊頭聚合到一個更新中來降低累積 gas 成本的能力上。例如,NIPOPOWS 和 Glimpse 專注於與 PoW 相關的輕客戶端。

然而,隨着其他區塊鏈網絡上的許多橋遵循構建輕客戶端橋的理念,成功的曙光已經閃現:

Cosmos 的 IBC

Near 的 Rainbow bridge

Ava 的 P-Chain

IBC 和 P-Chain 都有一個專用層來跟蹤來自不同的共識協議。它們都遵循共識協議產生的誠實的大多數籤名,但更多的時候,如果共識協議決定欺騙基礎層,籤署一個衝突的消息,並不總是有後果。

仍然信任參與者 - 我們能做得更好嗎?

所有的工作都集中在將信任傳遞給最有可能被信任的各方,但最終仍然依賴於信任誠實的大多數各方!

總覽本文列舉的所有橋,我們始終依賴於一組中間人,他們必須保證通過橋發送的消息的真實性,即使只是保證一個共識協議達成了一個單一的決定。

我猜想有這樣一個基本要求,即橋總是需要一組中間人來幫助將消息從發送方數據庫傳送到接收數據庫。

如果我們接受這個前提,那么我們也可以認爲跟蹤共識協議中參與者所做的決定是有意義的,因爲他們是決定將應用於數據庫的更新總排序的真理之源。

這就引出了最後一個問題:

我們能否建立一座橋,獨立檢查共識協議所做決定的有效性?

這有一個微妙的區別。

橋不僅要檢查共識協議是否同意數據庫更新的總排序,還要檢查更新本身相對於數據庫的所有其他更新是否有效。

如果能夠做到這一點,那么接收方的智能合約(數據庫 B)就可以確信數據庫 A 中應用了更新,並確信數據庫中的數據實際上是有效的。

然後,它就可以讀取數據庫,提取相關信息,然後對其執行操作。

可以這樣做嗎?答案是肯定的。

驗證橋的崛起

我們可以重復使用數據庫 A 的共識協議對所有數據塊進行排序,然後驗證節點橋可以獨立檢查所有數據塊作爲數據庫 B 更新的有效性。

驗證橋核心是使智能合約不僅能夠檢查是否做出了決定,而且能夠獨立驗證決定的內容是否正確。

總體思路是比輕客戶端橋多走幾步:

欺詐與有效性證明。擴展輕客戶端的能力,簡潔地驗證大型計算的正確性。

數據可用性層。通過重新使用數據庫 A 對數據塊進行排序,從數據庫 B 中移除共識協議。

开放成員。允許各方自我任命,並爲執行所有數據庫更新的有效性做出貢獻。

爲了避免重復驗證橋的分析——僅有最後一個問題需要討論。

本文只關注:

在數據庫之間來回傳遞消息的能力。

使接收者對消息的真實性有信心。

我們還沒有討論橋如何在數據庫之間持有或轉移資產。

這是因爲,從根本上說,所有橋都負責及時傳遞消息,並使接收方確信消息的真實性。

資產與負債

金庫在數據庫 A 中持有代幣,並通過橋授權在數據庫 B 中發行相同數量的代幣。

現在,我們可以在每個數據庫上部署智能合約,智能合約可以通過在橋上發送消息進行交互。

最常見的應用是將資產從數據庫 A 轉移到數據庫 B(反之亦然)。

這兩種智能合約包括:

金庫。發送數據庫上的智能合約,用於保管資產。

發行。接收方數據庫中的智能合約,有權爲金庫中的資產出具欠條。

在更高維度上,這兩個智能合約可以實現大多數想要將資產轉移到另一個系統的用戶非常熟悉的存款/取款流程:

存款流程。用戶可以將錢幣存入數據庫 A 的金庫,金庫可以通過橋發送信息,在數據庫 B 的用戶地址發行相同數量的資產。

提款流程。用戶可以通過請求發行者在數據庫 B 上銷毀代幣並通過橋發送消息讓金庫將相同數量的代幣釋放到用戶的地址來提取代幣。

這種設計的好處之一是,任何人只要有數據庫 A 中金庫的讀取權限和數據庫 B 中發行人的讀取權限,就可以驗證資產是否覆蓋負債。換句話說,任何人都可以驗證發行的代幣是否有一個完全抵押的金庫作爲後盾。

下一步是什么?

當然,如果我們想在數據庫中移動資產,並使其大規模運行,這一切都取決於橋的安全性,以及我們如何信任發送的信息的完整性。

歷史上,我們一直未能建立起安全的橋,因爲它們都依賴於人類來保護發送的信息。包括 BitFinex、Binance、Bitstamp 在內的大多數大型交易所,以及最糟糕的 MtGox,都曾因橋事故而導致用戶資金損失。此外,還有 PolyNetwork、Ronin Bridge 和 Harmony 等跨區塊鏈轉移資金的橋。

作爲一個社區,我們多年來一直在嘗試各種橋的設計,有些只是依賴於可信的中介,而有些則試圖將信任從中介轉移到各自區塊鏈的共識協議上。

驗證橋只是更進一步——不僅信任共識協議做出的決定,而且檢查它是否是一個有效的決定。

標題:區塊鏈的新視角:數據庫、共識、Rollup與橋

地址:https://www.coinsdeep.com/article/24534.html

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

你可能還喜歡
熱門資訊