區塊鏈Layer 0的可擴充套件之道

買賣虛擬貨幣

關於公鏈的可擴充套件之前聊過很多次,不過多數時候探討的是Layer 1 和Layer 2 的可擴充套件,比如分片、Plasma、ZK-Rollup、Optimistic Rollups、狀態通道、側鏈等。而今天藍狐筆記關注的是Layer 0。透過Layer 0 的可擴充套件性會給以太坊等區塊鏈帶來什麼?

Layer 0 與可擴充套件性

節點是構成區塊鏈網路的基礎。節點記錄交易、參與驗證、提議區塊、獲得獎勵等等。而這些節點要達成共識,需要保持一致性、可用性,需要相互溝通。節點之間溝通時間的長短對區塊鏈的可擴充套件性具有實質性的影響。

Layer 0 是節點之間傳遞訊息的通訊層。訊息溝通的構建方法跟達成共識的效率直接相關。而共識的達成速度則與區塊鏈的可擴充套件性和安全性相關。從這個角度,為提升區塊鏈的可擴充套件性,Layer 0 也是可以做出貢獻的。

區塊鏈網路跟中心化網路不同的一點是,區塊鏈網路是無須許可的,它要考慮來自網路本身的限制。如果是中心化企業,可以採用私人線路,透過CDN和SD-WANs等提高網路效能。而對於去中心化的網路來說,這是不現實的。

此外,在如今的加密激勵體系中,挖礦節點之間存在競爭關係。一個礦工向其鄰近節點共享所開採區塊後,而鄰近節點有動機不進一步傳播該區塊,因為這樣可以獲得一些優勢。也就是說,這樣的激勵機制,不但沒有激勵某些節點加速傳播其已知訊息,還存在延緩訊息傳播的可能性。這也不利於可擴充套件性和安全性。

那麼,上述的這些問題有沒有機會解決?

Marlin 的Layer 0

Marlin是槍魚,據說是世界上游得最快的魚。Marlin是服務於區塊鏈的通訊層,它希望在其推動下,區塊鏈網路的速度越來越快,宛如槍魚一般。Marlin希望透過Layer 0為區塊鏈可擴充套件性的發展貢獻出自己的方案。

(槍魚據說是遊速最快的魚,Marlin.pro)

為提升區塊鏈的TPS,一般來說,從鏈上角度,有兩種方法,一個是增加區塊容量,一個是縮短出塊時間(這裡暫不考慮橫向的分片)。

如果採用大區塊的方法,節點需要花費更長時間來驗證收到的訊息,這會延緩區塊廣播的速度;如果縮短出塊時間,提高出塊的速率,會面臨分叉問題,其中一個原因也是受制於區塊傳播的速度。要想提高出塊的速度,需要加速區塊的傳播。而目前的區塊傳播速度不利於提高出塊速度。當人們將比特幣的區塊大小從1M 上限修改為32M 甚至2G 時,或者將出塊時間從10 鐘左右縮短到更短時間時,確實可以提高可擴充套件性,但是它帶來更大的問題,比如全節點掉線,無法同步資料的情況增多,甚至出現區塊需要重組等情況。一旦區塊過大,出塊時間過快,網路的一致性或可用性就出現問題,其中很重要的原因之一,就是全節點受到網路和硬體的物理條件限制,無法及時驗證和廣播。

而這就是Marlin 作為Layer 0 試圖要解決的問題。它試圖在目前的物理條件限制情況下找到最快的區塊傳播速度方案,從而提高可擴充套件性,緩解Layer 1 公鏈的通訊延遲煩惱。在Marlin 協議的解決方案中,有兩個核心,一個是中繼網路,一個是經濟激勵機制。

在Marlin 網路中,有專門用於中繼的節點,叫做Marlin Node,節點相互之間傳遞訊息,可以加速傳播速度。Marlin 借鑑了CDN 加速技術,對網路進行了劃分,因此也有很多中繼網路。

目前網路層也不利於去中心化協議,目前有些協議的機制設計中,因為存在競爭關係,礦工有動力中繼其區塊並接收最新的區塊,但他們很少有動力主動傳播其他礦工挖的區塊,礦工希望首先挖出區塊。節點期待其他節點進行廣播,而自己搭便車,可以節省頻寬費用。同時,這種機制也會導致中心化,因為最終來說,只有那些大的節點才有動機轉發這些交易。

為解決自私挖礦等問題,Marlin 融合了經濟激勵的機制。在其網路中的節點,只要成功中繼訊息,就可以獲得獎勵,由此鼓勵訊息傳遞的速率。透過引入帶有激勵機制的網路層,還可以防止垃圾訊息/DDoS 等攻擊。

除了為公鏈提供可擴充套件,Marlin 還可以為DeFi 應用提供加速的服務,Siddhartha 是Marlin 的創始人,也公鏈專案Zilliqa 前核心開發者之一。他曾經提到:

比如在DeFi 領域,Marlin 的中繼框架可以提供外圍介面,這些介面為DeFi 交易者提供低延遲的優勢。在DApp 早期起步階段,查詢Infura、Alchemy 以及Graph 等API 時,載入時間時常高達10 秒,非常緩慢。Marlin Cache 可以將這種延遲降低至大約250 毫秒,可以在DApp 中實現類似於web2.0 的效能。

所有P2P 應用都是用網路層進行節點溝通,這導致任何使用去中心化儲存或計算的應用也可以利用Marlin 的服務。比如當前使用IPFS 的應用不得不透過中心化的CDN 來幫助使用者提升效能。Marlin 的優勢在於它可以讓這些使用Filecoin/Arweave 的應用即便沒有CDN 也可獲得好的效能。從這個角度,Marlin 類似於Web 2 時代的Akamai。

Marlin 的Layer 0 可擴充套件之道

Marlin 在Layer 0 上解決公鏈的可擴充套件性問題,核心源於它在兩個方面的設計:中繼網路和代幣激勵機制。

1. 中繼網路

Marlin 協議是構建中繼網路的協議。遵循其協議要求的Marlin 節點組成了中繼網路。除了Marlin 節點之外,還有審計者節點,由它們確保中繼節點和中繼網路遵循其效能和SLA 保證。Marlin 網路的使用者可以有礦工和全節點,礦工使用Marlin 中繼網路廣播其資料包和區塊,而全節點(錢包或商家等)使用Marlin 網路接收最新交易和區塊。因此,Marlin 網路本質上也是中繼網路的市場。

(Marlin 網路的主要參與者,Marlin.pro)

在上面這張圖中,Marlin 將其參與者分為生產者、接收者、中繼者以及中繼叢集(中繼網路)。其中生產者是將區塊引入中繼網路的一組節點。生產者通常是礦工,他們會盡快將區塊廣播出去。生產者對區塊有效性負責,如果引入無效區塊的生產者會遭受懲罰。

接收者包括其他礦工、交易所、錢包、區塊瀏覽器或其他節點等,他們希望儘快接收到區塊。接受者需要向協議支付訂閱費來成為接收者。

中繼者是從生產者那裡將區塊中繼給接受者的節點組。中繼者會獲得獎勵以儘快傳播區塊,只有那些參與中繼傳播區塊的節點才有機會獲得收益。中繼者叢集是一組由中繼者組成的中繼網路。他們集體負責傳播區塊,並由此獲得獎勵。

更進一步說,Marlin 協議網路是怎麼架構起來的?

Marlin 網路可分為四個部分:建立、管理、資料包廣播和監視。

*建立

Marlin 網路是由很多Marlin 節點構成的,要想成為Marlin 節點,首先需要執行Marlin 中繼節點軟體,還需要質押一定量的代幣,這在下文會提到。這些節點需要達到一定的要求,例如網路連線良好、位置分佈更接近於終端使用者等。

成為Marlin節點之後,節點和中繼網路可以向其目標使用者(如礦工和全節點)展示自身的特性、功能以及價格,其中包括IP地址、中位數頻寬、經度、緯度、質押代幣所對應的公鑰等。而礦工和全節點等可以根據需求選擇中繼網路。這就形成了一個交易市場。

節點可以建立中繼叢集,設定允許最大加入的節點數、根據地理位置加入最大和最小的節點數、節點最小的質押額、節點的最小配置要求(頻寬、CPU 核心等)、最小的SLA 要求等。一旦建立中繼網路,它會自動出現在Marlin 市場上。

*管理

節點建立一箇中繼網路之後,需要進行管理,其中包括節點的加入、引數的調整、節點的退出等。

一個節點要加入某個中繼網路可以透過被邀請或申請加入的方式。在經過多數票同意後可以邀請一個節點參與其中繼網路,被邀請節點只要在邀請過期前釋出接收邀請交易即可加入。另外一個方式是申請加入,如果多數票同意,則可以加入該中繼網路。

一箇中繼網路建立之後,它並非是一成不變的。雖然一開始其中的節點都會遵循最初的引數。不過隨著後續節點的加入,這些節點也會有發言權。根據使用者需求和中繼網路競爭環境的變化,中繼網路的引數也可能會面臨調整。這些都需要透過治理進行更改。目前Marilin 網路採用投票的方式進行引數調整。如果少數節點不贊同,它們可以選擇離開並建立自己的中繼網路。

最後,節點退出某個中繼網路是需要打招呼的。如果節點不打招呼隨便退出某個中繼網路,對於該中繼網路和其使用者會很不利。在Marlin 的中繼網路中,如果節點悄無聲息地退出或提前退出,是要被消減質押代幣的。節點退出中繼網路可以發起退出宣告交易。如果中繼網路找到替代節點,它允許該節點在其宣告期結束前退出。此外,還有一種強制退出的模式,如果多數節點認為某個節點行為不端也可以將其踢出中繼網路。

*資料包廣播

礦工和商家等是Marlin 中繼網路的使用者,它們只需整合Marlin SDK 即可跟Marlin 節點互動。為了提供靈活服務,Marlin 採用模組化結構,協議開發者可以編寫外掛來自定義一些功能,且能在Marlin 節點、全節點上針對其協議相關的資料包執行自定義程式碼。例如選擇不同中繼網路的策略;滿足一定條件下隨機選擇中繼網路,或者透過硬編碼中繼網路的列表等。

當礦工生成區塊,它可以根據自己的策略傳送給中繼網路。這時可能會面臨支付費用的問題(覆蓋入口節點的區塊驗證成本),不過支付費用會增加額外延遲。還有一種變通的方式是要求礦工進行代幣質押,減少第一跳的區塊驗證,如果是垃圾訊息則可以實施懲罰。

Marlin 的中繼網路是網狀網路,其組播路徑根據來源進行最佳化。它會不斷監控不同路徑的丟包率、頻寬和等待時間,由此實現儘可能在短時間內完成區塊的組播傳送。

在接收區塊和交易方面,礦工訂閱鄰近的Marlin 中繼節點以接收新區塊和交易的通知。只要Marlin 節點收到新區塊,它會傳送其雜湊給所有的訂閱者。接收新區塊和交易的訂閱者需要支付小額費用。

同時,為避免額外延遲,節點可以直接推送給白名單礦工,後續再付款。

*監視

Marlin 協議需要全盤瞭解節點的效能,這為後續的獎懲提供依據。監視的操作主要由審計節點來實施。

這些審計節點首先是匿名的,它們看上去就跟普通的礦工或全節點一樣。審計者網路是獨立於中繼網路的。為了確認特定節點是否表現良好,審計者節點會透過謝林點機制來進行投票,由此確認這些節點是否滿足其SLA義務。如果節點達不到要求,則其質押代幣會被消減。

整體來說,Marlin 的中繼網路由一組可用的Marlin 節點建立,建立之後需要對網路進行平滑管理,以免影響中繼網路的競爭力。而礦工或全節點訂閱中繼網路,並根據需求隨機選擇中繼網路來廣播其區塊和交易,可以確保其區塊和交易在最短時間內廣播給其他訂閱者。

最後為了保證中繼網路的持續良好執行,需要透過監視機制來懲罰不符合要求的節點,由此構建運作良好的中繼網路。

2. 代幣激勵機制

Marlin 網路的原生代幣是POND,100 萬個POND 為MPOND。POND 代幣一共100 億個,這意味著MPOND 有10,000 個。Marlin 的原生代幣是實現Marlin 網路持續運轉的關鍵。其代幣具有價值媒介、治理、質押等諸多用途。

(Marlin 的代幣流向,Marlin.pro)

首先POND 可以用來支付費用,激勵中繼節點,也用來抑制節點作惡。

上文提到過,當前的區塊鏈網路的節點在某些情況下並不會主動轉發交易和區塊。Marlin 的代幣機制試圖解決這個問題,試圖激勵節點有動機轉發交易和區塊,激勵節點持續提升其效能並儘快轉發資料包;試圖減少節點在傳播路徑中建立sybil 身份的動機等。

中繼節點的費用分配機制需要滿足:抗孤立性;保持順序。為解決這個問題,交易和區塊需要包含附加到最初內容主體的見證。一個是簽名連結:傳播路徑中每個在轉發其內容的節點附加公鑰,並使用私鑰對其主體進行簽名。此外,還有金鑰列表,節點將新建立的金鑰對附加到見證中,並對見證簽名。

對於節點來說,總是轉發資料包符合其利益。整體來說,Marlin 設立的激勵機制,用於激勵節點轉發資料包,激勵節點有更高的效能表現。與此同時,系統是否能夠抵抗女巫攻擊和有較低的廣播開銷則取決於市場的競爭情況。

如果市場經濟不激烈,節點更傾向於設定高昂費率,並在路徑中建立sybil 身份以增加其收入份額。如果市場存在競爭,下游節點可以選擇。在這樣的機制下,節點會傾向於不斷提高效能,並跟其他節點進行競爭,而試圖建立sybil 身份的視窗機會不會太多。

在Marlin 網路中,它並沒有採用費用共享結構,而是讓市場參與者來決定。採用市場的方式來決定費用,可以讓參與者評估風險和回報的價值。此外,採用市場決定的方式,也考慮到了服務差異化的因素等因素。

中繼節點可以獲得兩部分費用:一部分是中繼訊息的費用收益,可以覆蓋頻寬和基礎硬體等成本支出。中繼者根據其完成的工作量獲得相應比例的費用,這部分費用來源於接收者的訂閱費用。第二部分費用是網路獎勵費用。這部分獎勵主要用於激勵早期的中繼參與者,隨著網路使用增加,獎勵價值會逐漸下降,因為他們可以從中繼訊息的服務費用中獲得大多數收益。審計節點是確保節點維持一定效能的重要角色。

審計節點之所以願意參與審計,最重要的原因是審計節點可以獲得收益。Marlin 協議中有一個審計獎勵池,Marlin 節點會定期貢獻審計費用,可以看作為成員費用或維護費用,還有節點存入或提取質押代幣時,也會有一部分代幣作為費用進入獎勵池,可以看作為進入或退出費用。

此外,如果發生代幣消減,這些懲罰費用也會進入獎勵池。這也讓審計節點有動力去發現那些不滿足要求的節點。而對於區塊鏈生產者,他們通常是礦工,他們有天然的需求儘可能快速地廣播其區塊,這部分參與者無須激勵。不過,如果有惡意生產者進行垃圾訊息攻擊,他們質押的代幣會被消減。因此,POND代幣也具有懲罰作用。

其次,POND 代幣可用於質押,獲得成為中繼節點的資格。

在早期Marlin 網路中,必須質押100萬個POND(1 個MPOND)才有資格成為節點,才有機會獲得節點的費用。如果中繼網路節點在特定時間內無法交付區塊和交易,其質押會被消減。去中心化網路的審計者會監視中繼網路是否達到要求。此外,POND代幣的持有人可以將其代幣委託給中繼節點。質押代幣可以獲得POND的代幣收益。如果早期參與的節點眾多,則會鎖定大量的POND代幣,因為每個節點需要質押1MPOND代幣。

按照代幣總量,從理論上,早期最多不會超過1萬個中繼節點。再次,POND 代幣也是治理代幣。在Marlin 網路中,只有MPOND代幣的持有人才能發起提案並參與投票。最後,POND可以用於推動生態的啟動。POND代幣在Marlin網路早期也可以起到啟動生態的作用。Marlin 有一個Flowmint計劃,它可以為layer 1平臺社羣的相關者提供一定的激勵。其中包括頻寬挖礦、layer 1代幣持有人、安裝了Marlin閘道器的驗證者和委託者等,透過這些激勵計劃可以讓生態系統中的更多人在早期參與進來。

通用化的Layer 0

綜上所述,Marlin之所以有機會幫助公鏈提升可擴充套件性,其核心之處在於構建一個最佳化過的中繼網路體系。在這個中繼網路體系中,中繼者願意以最短時間將生產者的區塊和交易廣播給接收者,與此同時可以獲得相應的費用收益。在這個中繼網路體系中,其代幣機制起到了重要的維繫作用,可以將整個中繼網路市場持續運轉起來。

Marlin的中繼網路並不服務於某個特定的區塊鏈,它是採用模組化設計,可通用於各種區塊鏈網路。在以太坊、波卡、Cosmos、Solana等公鏈尋求更好的可擴充套件性的路上,類似於Marlin這樣的Layer 0可以助一臂之力。即便不同的Layer 1和Layer 2存在割裂狀態,Marlin也有機會受益於整個區塊鏈行業的成長。

對於整個區塊鏈發展來說,它不僅需要在layer 1和Layer 2上尋求可擴充套件,也需要在Layer 0上尋求可擴充套件。隨著Layer 0、Layer 1以及Layer 2的持續最佳化,公鏈未來的可擴充套件性有機會達到新的高度。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;