硬核分享|Crust 核心協(xié)議棧的設(shè)計(jì)與實(shí)現(xiàn)


“Crust 實(shí)現(xiàn)了去中心化存儲(chǔ)的激勵(lì)層協(xié)議,適配包括 IPFS 在內(nèi)的多種存儲(chǔ)層協(xié)議砰识,并對(duì)應(yīng)用層提供支持柱搜。同時(shí) Crust 的架構(gòu)也有能力對(duì)去中心化計(jì)算層提供支持,構(gòu)建分布式云生態(tài)癣蟋⊥赶酰”

6月 18 日,Crust Show 第 3 期活動(dòng)中疯搅,我們邀請(qǐng)了?Parity?工程師 kai chao老師濒生,與?Crust Network CTO 子琨一起,就 Crust 核心技術(shù)相關(guān)進(jìn)行了硬核的技術(shù)探討幔欧。?本期分享罪治,從 Crust 協(xié)議組的設(shè)計(jì)與技術(shù)實(shí)現(xiàn)、對(duì)于無(wú)縫升級(jí)的設(shè)計(jì)與思考以及 Crust 如何利用 Runtime Interface 擴(kuò)展鏈上密碼庫(kù)琐馆、對(duì)于鏈上定時(shí)器(Scheduler)的運(yùn)用规阀、Crust 鏈上身份綁定的設(shè)計(jì)與實(shí)現(xiàn)等 5 個(gè)方面,子琨和大家進(jìn)行了詳細(xì)的講解瘦麸。由于分享內(nèi)容過(guò)長(zhǎng)谁撼,分為上下兩篇。本篇主要從 Crust 協(xié)議組的設(shè)計(jì)與技術(shù)實(shí)現(xiàn)方面展開(kāi)詳細(xì)的介紹。?以下為 Crust Show 003(上篇)分享整理厉碟。

?

01.?

能具體介紹下 Crust 協(xié)議組 MPoW喊巍、GPoS、Market 以及 Storage 的設(shè)計(jì)和實(shí)現(xiàn)嗎箍鼓?


Crust 協(xié)議組的設(shè)計(jì)是旨在解決 DS(Decentralized Storage崭参,去中心化存儲(chǔ))激勵(lì)層兩個(gè)關(guān)鍵性的問(wèn)題:證明和激勵(lì)。

證明主要指的是款咖,如何將鏈下的存儲(chǔ)狀態(tài)正確的反映在鏈上何暮;而激勵(lì)就是對(duì)存儲(chǔ)節(jié)點(diǎn)的激勵(lì)方案,也就是節(jié)點(diǎn)獲取獎(jiǎng)勵(lì)的方式铐殃。


GPoS 協(xié)議組

?

對(duì)此海洼,Crust 定義了一個(gè)協(xié)議組,分別包括了量化鏈下存儲(chǔ)狀態(tài)的 MPoW 協(xié)議富腊、對(duì)節(jié)點(diǎn)進(jìn)行鏈上區(qū)塊激勵(lì)的 GPoS 協(xié)議坏逢、去中心化(存儲(chǔ)/檢索)市場(chǎng)的 Market 模塊以及適配多種存儲(chǔ)協(xié)議的 Storage 模塊。

TEE 是 MPoW 協(xié)議的核心模塊赘被,為MPoW提供可信有效的鏈下輸入是整。而 MPoW 又為 GPoS 協(xié)議以及 Market 模塊提供初始輸入,所以 MPoW 也是整個(gè)協(xié)議組的基礎(chǔ)民假。

?

具體來(lái)講浮入,MPoW 有三個(gè)核心的功能:

  1. TEE 通過(guò)身份綁定,可信認(rèn)證節(jié)點(diǎn)身份(后面會(huì)詳細(xì)講解)


  2. TEE 可信量化有意義用戶文件和 SRD(Sealed Random Data羊异,aka. 隨機(jī)數(shù)據(jù)舵盈,用于證明磁盤(pán)容量),并通過(guò)工作量報(bào)告(數(shù)據(jù)塊證明)提交到鏈上


  3. 為鏈上的狀態(tài)函數(shù)的轉(zhuǎn)移提供正確的初始輸入(存儲(chǔ)量和文件信息{Merkle Root, File Size})球化;

?

這里多提一句,MPoW 的證明過(guò)程(包括鏈下和鏈上)十分高效:

?

1. 由于 TEE 的提交發(fā)生在本地并且能夠自我驗(yàn)證(SGX 程序的不可篡改性)瓦糟,所以省去了互相驗(yàn)證數(shù)據(jù)塊的網(wǎng)絡(luò)開(kāi)銷以及本機(jī)進(jìn)行零知識(shí)證明的計(jì)算開(kāi)銷筒愚,我們?cè)诓粩嗟膬?yōu)化整個(gè)驗(yàn)證流程。


目前的數(shù)據(jù)表現(xiàn)讓我們十分滿意菩浙,1TB 的數(shù)據(jù)(這里不管是 SRD 還是有意義文件)進(jìn)行全驗(yàn)證的時(shí)間是 18s巢掺,抽查驗(yàn)證并且抽查率為 2%?的情況下,我們的驗(yàn)證過(guò)程只需要 0.36s劲蜻。

?

2. 另外陆淀,鏈上的驗(yàn)證得力于 Rust 高效的 Native 執(zhí)行與 Substrate Runtime Interface 的 Native+Wasm 交互機(jī)制,能夠讓鏈上驗(yàn)證基于 Rust Native 進(jìn)行高效的簽名驗(yàn)證先嬉。

目前測(cè)試的數(shù)據(jù)是轧苫,進(jìn)行 100 次 p256 橢圓曲線的簽名驗(yàn)證(背后是數(shù)據(jù)塊證明的驗(yàn)證)僅僅只需要花費(fèi) 0.016s。

?

GPoS(Guaranteed Proof of Stake疫蔓,擔(dān)保權(quán)益證明)含懊,對(duì)節(jié)點(diǎn)進(jìn)行區(qū)塊激勵(lì)的協(xié)議身冬,這個(gè)協(xié)議的設(shè)計(jì)是從波卡的 NPoS 得到的靈感并結(jié)合我們的系統(tǒng)進(jìn)行的創(chuàng)新。

詳細(xì)概念和介紹大家可以關(guān)注近期已經(jīng)發(fā)布的《Crust Network 經(jīng)濟(jì)白皮書(shū)草案公布》岔乔,這里時(shí)間有限就不展開(kāi)去介紹了酥筝,我們主要來(lái)談一下 GPoS 是如何實(shí)現(xiàn)的。

?

首先雏门,剛才談到 MPoW 作為整個(gè)協(xié)議組的基礎(chǔ)嘿歌,會(huì)設(shè)置一個(gè)鏈上狀態(tài)函數(shù)的初始輸入,這個(gè)初始輸入就是節(jié)點(diǎn)的工作量/存儲(chǔ)量茁影,其包含了該節(jié)點(diǎn)有多少存儲(chǔ)容量宙帝、存儲(chǔ)了多少有意義文件以及每個(gè)有意義文件的大小。

?

而這個(gè)數(shù)據(jù)矩陣會(huì)通過(guò)一個(gè)公式被轉(zhuǎn)化為 GPoS 里面的一個(gè)關(guān)鍵值 StakeLimit呼胚。

在 GPoS 里 Stake Limit 會(huì)被作為節(jié)點(diǎn)可抵押/可被擔(dān)保的額度茄唐,穿插在整個(gè) GPoS的協(xié)議的流轉(zhuǎn)中。

當(dāng)然蝇更,整個(gè) GPoS 的實(shí)現(xiàn)機(jī)制是較為復(fù)雜的沪编,包括了主動(dòng)檢測(cè)、被動(dòng)檢測(cè)年扩、有效票蚁廓、順延擔(dān)保、多次擔(dān)保等機(jī)制厨幻。

這次的技術(shù)分享大概無(wú)法 Cover 掉所有的實(shí)現(xiàn)細(xì)節(jié)相嵌,之后可以再安排一個(gè)技術(shù)分享去講一下 GPoS 所有的細(xì)節(jié)規(guī)則。


?Market?

?

目前 Crust 設(shè)計(jì)并實(shí)現(xiàn)了的版本是存儲(chǔ)市場(chǎng)况脆,檢索市場(chǎng)會(huì)在 Maxwell 2.0 版本上線饭宾,這次技術(shù)分享我們就先聊一下存儲(chǔ)市場(chǎng)的設(shè)計(jì)和實(shí)現(xiàn)。

?

同樣基于 MPoW 給定的初始輸入格了,Market 模塊只關(guān)注節(jié)點(diǎn)提交上來(lái)的有意義文件的 Merkle Root看铆,根據(jù)? Merkle Root 對(duì)應(yīng) Market 存儲(chǔ)訂單信息,從而反映節(jié)點(diǎn)是否有效存儲(chǔ)文件盛末。

?

Market 也會(huì)周期性的檢測(cè) Provider 名下所有有效訂單的文件是否被合理存儲(chǔ)弹惦,一旦檢測(cè)失效,會(huì)對(duì) Provider 的訂單失效率進(jìn)行鏈上記錄悄但,并根據(jù)不同程度的文件丟失進(jìn)行懲罰棠隐。

?

Market 模塊的實(shí)現(xiàn)挑戰(zhàn)在于訂單數(shù)量的巨大,這個(gè)部分我們將采用 Substrate 的 Offchain Worker 來(lái)進(jìn)行訂單記錄檐嚣,并通過(guò) Forkless Upgrade 在 Maxwell 后續(xù)版本進(jìn)行升級(jí)助泽。

?

Storage 這個(gè)部分主要是想聊 Crust 支持的存儲(chǔ)層協(xié)議 Karst,對(duì)于 Karst,我們將其定義為存儲(chǔ)適配器(Storage Adapter)报咳。

?

什么叫存儲(chǔ)適配器呢侠讯,也就是 Karst 協(xié)議會(huì)將不同存儲(chǔ)協(xié)議(包括 IPFS, FastDFS暑刃,HDFS 等)轉(zhuǎn)化為能被 TEE 識(shí)別的存儲(chǔ)結(jié)構(gòu)并且持久化在本地厢漩。

?

在 Karst 內(nèi)部定義了一系列的通用接口,比如存儲(chǔ)轉(zhuǎn)化器(Storage Transformer岩臣,實(shí)現(xiàn)這個(gè)接口并返回 Karst 規(guī)定的結(jié)構(gòu)溜嗜,就能被 TEE 所量化),Sealer(調(diào)用TEE Seal接口和 Unseal 接口進(jìn)行加密解密存儲(chǔ)架谎,防止女巫和生成攻擊)以及Checker(可被 TEE 抽查的接口)炸宵。

?

這個(gè)設(shè)計(jì)有趣之處在于,無(wú)論底層的存儲(chǔ)如何變動(dòng)谷扣,需求如何變動(dòng)土全,只要適配了 Karst 協(xié)議的 FS,就能夠被量化到 Crust 網(wǎng)絡(luò)中会涎。這也使得 Crust 網(wǎng)絡(luò)能夠多協(xié)議共存裹匙,讓存儲(chǔ)協(xié)議和量化層解耦是我們認(rèn)為正確的方向。


▼ ?▼??▼ ?▼??▼???▼??▼ ?▼??▼


在活動(dòng)進(jìn)行到自由問(wèn)答環(huán)節(jié)中末秃,由于社區(qū)成員提問(wèn)比較多概页,我們挑選了一些大家較為關(guān)心的問(wèn)題,整理出來(lái):


1. 問(wèn)一個(gè)問(wèn)題练慕,礦工質(zhì)押的時(shí)候惰匙,應(yīng)該既有存儲(chǔ)質(zhì)押也有作為驗(yàn)證人的質(zhì)押,那么在懲罰的時(shí)候铃将,這兩部分質(zhì)押是邏輯上分離的還是有關(guān)系的项鬼?


子琨:是分離的。


關(guān)于 GPoS 和 Market 是我們基于 CRU 通證設(shè)計(jì)的兩款游戲劲阎,游戲的規(guī)則是獨(dú)立的秃臣,獨(dú)立性包括了獎(jiǎng)勵(lì),抵押和罰沒(méi)哪工,GPoS 獲取區(qū)塊獎(jiǎng)勵(lì),Market 獲取訂單獎(jiǎng)勵(lì)弧哎。


對(duì)于Crust網(wǎng)絡(luò)而言雁比,兩個(gè)模塊的貢獻(xiàn)度也有所不同,GPoS 保證了 Crust 網(wǎng)絡(luò)的基本運(yùn)行(決定出塊)撤嫩,Market 則支撐了 Crust 網(wǎng)絡(luò)去中心化存儲(chǔ)的應(yīng)用特性偎捎。

2.所有的去中心化存儲(chǔ)都必須面對(duì)的一個(gè)問(wèn)題,即高波動(dòng)的幣價(jià)與鎖定的存儲(chǔ)費(fèi)用與存儲(chǔ)質(zhì)押怎么協(xié)調(diào),假設(shè)幣價(jià)暴跌茴她,導(dǎo)致礦工質(zhì)押金已經(jīng)不值什么錢了寻拂,或者幣價(jià)暴漲,導(dǎo)致礦工認(rèn)為以前的存儲(chǔ)訂單虧了丈牢。就是怎么用一個(gè)有波動(dòng)的 Token 支付系統(tǒng)祭钉,去讓存儲(chǔ)保持穩(wěn)定?


子琨:嗯己沛,我們會(huì)引入穩(wěn)定幣的機(jī)制慌核,目前這套機(jī)制設(shè)計(jì)出來(lái)了,但是實(shí)現(xiàn)上還有些細(xì)節(jié)沒(méi)有想通申尼,之后成熟后會(huì)做分享垮卓。生態(tài)內(nèi)的比如 Acala(通過(guò) Parachain),生態(tài)外的 USDT 等我們都有考慮师幕。


穩(wěn)定幣是存儲(chǔ)市場(chǎng)的核心粟按,這套機(jī)制我們也在反復(fù)打磨,但是目前還沒(méi)有特別成熟霹粥,But good question灭将,回答就是持續(xù)關(guān)注我們。


3. 按 Crust 的計(jì)劃蒙挑,底層只實(shí)現(xiàn)了簡(jiǎn)單存取之類的接口宗侦,而對(duì)于可靠性可用性保障會(huì)放在上層,這個(gè)上層也是由 Crust 開(kāi)發(fā)么忆蚀?以及它的保障是由鏈保證矾利,還是一定的中心化因素?比如一個(gè)用戶存了四份數(shù)據(jù)馋袜,他希望在丟了兩份以后男旗,能有人幫他重新下訂單給其他人存。


子琨:嗯欣鳖,兩個(gè)問(wèn)題察皇。


1.?可靠性可用性。具體來(lái)講就是節(jié)點(diǎn)加速和糾刪冗余泽台,這些一定是二層來(lái)完善的機(jī)制什荣,Crust 會(huì)開(kāi)發(fā)一個(gè)模版供給社區(qū)使用。


2.?鏈會(huì)通過(guò) Market 模塊的訂單狀態(tài)記錄 Provider 的服務(wù)質(zhì)量怀酷,包括訂單失敗率稻爬,連續(xù)失敗時(shí)間,累計(jì)失敗時(shí)間蜕依。這些 QoS 會(huì)在一層就對(duì) Provider 進(jìn)行 Slash桅锄,但二層能做的東西更多(比如歷史的 QoS)琉雳。


你剛才打比方的這套機(jī)制是二層。在 Crust 網(wǎng)絡(luò)一層只會(huì)定義一些元語(yǔ)友瘤,訂單狀態(tài)就是 QoS 的元語(yǔ)翠肘,二層可以疊加這個(gè)部分進(jìn)行復(fù)雜的組合,評(píng)估出更豐富的 QoS 機(jī)制辫秧。


4. 存儲(chǔ)節(jié)點(diǎn) Slash 怎么處理還沒(méi)確定吧束倍?比如把懲罰的錢給一個(gè)新節(jié)點(diǎn),讓他檢索了繼續(xù)存茶没〖∮模或者燒掉一部分,還有退給用戶之類的抓半,我看 Filecoin 目前的設(shè)計(jì)基本沒(méi)考慮可靠性喂急。


子琨:Maxwell 1.0 會(huì)有一個(gè)簡(jiǎn)單的 Slashing,文件丟失 5%笛求,會(huì) Slash 掉本訂單 50% 的保證金廊移,10% 會(huì)直接罰沒(méi)。


但這個(gè)參數(shù)的話探入,我們會(huì)一直打磨狡孔,包括你提到的機(jī)制,就是 Slash 的錢是 Burn 還是類似 Storj 的 Graceful Quit 一樣給接盤(pán)的節(jié)點(diǎn)蜂嗽,會(huì)通過(guò)鏈上升級(jí)更改苗膝。

往期精彩:

/Crust 技術(shù)白皮書(shū) v1.9.3 版

/Crust Network 經(jīng)濟(jì)白皮書(shū)草案公布

/Crust 經(jīng)濟(jì)白皮書(shū)第 1 期 · 概述

/Crust 經(jīng)濟(jì)白皮書(shū)第 2?期 ·?參與方

/一文快速了解?Crust Network?分布式云

/去中心化存儲(chǔ)或重構(gòu)邊緣存儲(chǔ)技術(shù)


更多內(nèi)容請(qǐng)點(diǎn)擊「閱讀原文」了解。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末植旧,一起剝皮案震驚了整個(gè)濱河市辱揭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌病附,老刑警劉巖问窃,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異完沪,居然都是意外死亡域庇,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)覆积,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)听皿,“玉大人,你說(shuō)我怎么就攤上這事宽档⌒囱ǎ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵雌贱,是天一觀的道長(zhǎng)啊送。 經(jīng)常有香客問(wèn)我,道長(zhǎng)欣孤,這世上最難降的妖魔是什么馋没? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮降传,結(jié)果婚禮上篷朵,老公的妹妹穿的比我還像新娘。我一直安慰自己婆排,他們只是感情好声旺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著段只,像睡著了一般腮猖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赞枕,一...
    開(kāi)封第一講書(shū)人閱讀 51,215評(píng)論 1 299
  • 那天澈缺,我揣著相機(jī)與錄音,去河邊找鬼炕婶。 笑死姐赡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的柠掂。 我是一名探鬼主播项滑,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼涯贞!你這毒婦竟也來(lái)了枪狂?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤肩狂,失蹤者是張志新(化名)和其女友劉穎摘完,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體傻谁,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡孝治,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了审磁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谈飒。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖态蒂,靈堂內(nèi)的尸體忽然破棺而出杭措,到底是詐尸還是另有隱情,我是刑警寧澤钾恢,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布手素,位于F島的核電站鸳址,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏泉懦。R本人自食惡果不足惜稿黍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望崩哩。 院中可真熱鬧巡球,春花似錦、人聲如沸邓嘹。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)汹押。三九已至矿筝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鲸阻,已是汗流浹背跋涣。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鸟悴,地道東北人陈辱。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像细诸,于是被迫代替她去往敵國(guó)和親沛贪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354