白話 MPoW 如何證明有意義的工作量?

2021-10-06 00:28:05 字數 1539 閱讀 5773

crust 實現了去中心化儲存的激勵層協議,適配包括 ipfs 在內的多種儲存層協議,並對應用層提供支援。同時 crust 的架構也有能力對去中心化計算層提供支援,構建分布式雲生態。

crust 核心包含三層架構:量化儲存和服務的 mpow 機制、激勵節點的 gpos 共識以及儲存和檢索服務。

mpow,是 meaningful proof of wor 的縮寫,即有意義工作量證明機制。主要用來追蹤每個節點的儲存狀態,儲存狀態包含節點的可用儲存空間,以及已經儲存的檔案。

今天主要和大家大白話科普一下 crust 的黑科技——mpow 機制的工作量報告和入網流程。

我們舉個例子來模擬工作量報告機制:

有這麼乙個班級,每天都有英語課。英語老師讓所有孩子每天都背單詞,根據背單詞多少來發獎勵,於是所有孩子們都回家會積極背單詞。但孩子如何證明自己背了呢?畢竟老師不可能每個孩子都聽寫一遍,那樣的話就沒時間上課了。

於是英語老師就想了個辦法:每個孩子每天背了單詞後,回家請自己的家長聽寫一遍,聽寫內容為迄今為止背過的所有單詞。聽寫通過後,家長用一張紙寫上日期、聽寫內容和簽名。比如「2023年5月4日,學生小脆皮背誦課本第 8、9、10 頁無誤,家長簽字:大脆皮」。

孩子們帶著任務回家,背單詞,家長聽寫,簽名。第二天,老師只需要把家長的簽名紙收上來,就可以知道每個小孩背了哪些單詞了。

在這個例子裡,老師就是 crust 鏈,孩子就是儲存節點,背單詞就是儲存檔案,家長是tee,家長簽名的內容包括了(區塊高度、節點儲存狀態以及tee的簽名等)。家長對孩子單詞量的簽名就是我們所說的工作量報告。

tee在乙個檢查週期內的簡單流程圖:

上面這個例子,邏輯上還有一環遺漏了,老師怎麼驗證家長簽名呢?這就是crust的入網解決的問題。

繼續沿用前面的故事背景來說明 crust 的節點入網邏輯。在小脆皮入學之前,家長大脆皮(節點的tee,以 intel sgx為例)需要先去一趟公安局(模擬 ias,intel attestation service)開一張證明書(quote_return),證明自己是小脆皮的父親。

家長大脆皮先在證明書上簽字(tee 公鑰),然後公安局會核驗蓋章(ias 的簽名)。小脆皮帶著這張證明入學,老師們首先鑑別公安局的章(鏈上節點驗證 ias 簽名),然後再把大脆皮的簽字記錄下來用於未來的簽字比對(鏈上記錄新節點 tee 的公鑰,入網完畢)。

此時再看下面的入網流程圖是不是容易一些了?

有意義的開始

今天真的是很值得紀念的一天,來深圳第一次過得這麼充實。原因很簡單有希望 有盼頭 第一次主動約mm出去玩 好像不是約會,是兩位兄弟幫忙約的,呵呵,再次感謝兩位好兄弟的幫助 值得紀念。一直比較膽小,尤其是現在這種處境,完全沒有什麼信心,自己真是太膽小了,總是想著兩位兄弟幫忙打頭陣,為自己鋪路,好像不大好...

有意義的編碼

現象描述 使用有意義的編碼作為一條記錄的id,甚至作為資料庫的主鍵存在,例如,乙個員工的編碼設定為0203004,其中02代表員工所在分公司,03代表員工所在部門,004代表員工進入到該部門的序號。原因分析 id的設定方式大概有以下幾種,一種是純粹的流水號,從1開始,每次加1,或者對其將以改進,將數...

Clean Code 有意義的名字

最近在看clean code 整潔之道 裡面有些內容還是不錯的,所以給大家分享下。意思是說名稱和意思要一致,更精確的說應該是看到名字就能想到意思。對程式設計師來說取名通常是一件麻煩的事情,尤其是取乙個好的名字。這裡擷取一段書中的 public list getthem return list1 這段...