Marlin:Layer 0的可擴展之道
蓝狐笔记
2020-12-11 07:26
本文约6504字,阅读全文需要约26分钟
Layer 0與公鏈的可擴展。

編者按:本文來自藍狐筆記(ID:lanhubiji),Odaily經授權轉載。

編者按:本文來自

藍狐筆記(ID:lanhubiji)

,Odaily經授權轉載。

編者按:本文來自

藍狐筆記(ID:lanhubiji)

二級標題

,Odaily經授權轉載。

藍狐筆記(ID:lanhubiji)

二級標題

二級標題

二級標題

Marlin的Layer 0

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

圖片描述

二級標題

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

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

二級標題

Marlin的Layer 0

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

圖片描述

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

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

在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協議網絡是怎麼架構起來的?

Marlin網絡可分為四個部分:創建、管理、數據包廣播和監視。

*創建

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

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

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

*管理

節點創建一個中繼網絡之後,需要進行管理,其中包括節點的加入、參數的調整、節點的退出等。

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

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

*監視

圖片描述

正文

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

正文

正文

正文

正文

正文

正文

正文

正文

正文

正文

正文

正文

正文

二級標題

正文

正文

蓝狐笔记
作者文库