關於公鏈的可擴展之前聊過很多次,不過多數時候探討的是 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: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:Layer 0的可擴展之道

(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:Layer 0的可擴展之道

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

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

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

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

對於節點來說,總是轉發數據包符合其利益。整體來說,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 的持續優化,公鏈未來的可擴展性有機會達到新的高度。


以上內容獲合作夥伴  藍狐筆記(微信公眾號 :lanhubiji)授權節錄及轉載

聲明:文章僅代表作者個人觀點意見,不代表區塊客觀點和立場,所有內容及觀點僅供參考,不構成投資建議。投資者應自行決策與交易,對投資者交易形成的直接間接損失作者及區塊客將不承擔任何責任。


熱門市場動態與新聞傳送門:

區塊客致力於發掘和整理各種與區塊鏈技術有關的內容,只要與區塊鏈或區塊客網站有關的合作和/或建議,我們都非常歡迎。請您發電郵至 [email protected] 與我們聯繫。

Avatar

區塊客