日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

algorand共识协议_【Filecoin】理解预期共识 - 及它的优缺点

發布時間:2023/12/9 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 algorand共识协议_【Filecoin】理解预期共识 - 及它的优缺点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘 要

  • 預期共識就是上帝擲飛鏢
  • 預期共識的優點在于簡單,而且每一次選舉勝出者數量的平均數為1
  • 但預期共識不能保證每次選舉的勝出者數量,這是其最大的問題
  • 期待有更好的基于可驗證隨機函數的共識算法出現,設計者可獲得20萬美金獎賞

預期共識 就是 上帝擲飛鏢

為了不使此文顯得枯燥乏味,今天一上來先用最簡單的方式來解釋預期共識,保證高中生能夠看懂。

預期共識(EC:Expected Consensus)是一種 PoS (這里S可以理解為 Storage Service,及存儲服務的貢獻)的實現。目標是是的礦工出塊的權益與自己對存儲的貢獻成正比,也就是說,礦機被使用的存儲空間在整個網絡中的總使用空間中所占比例,就是此礦機能夠出塊的概率。這是大家都了解的,也認為這是非常公平,且對整個網絡起到良好促進作用的設計。

我在文章《讓上帝擲骰子 - 對共識機制的淺層分析》一文中對區塊鏈共識機制的要素和共同特點已經有過描述,這里不再重復,但是,要知道的是,無論什么共識機制,一定要具有公平性、不可預知性、可驗證性和可行性(不能太復雜)。預期共識,作為Filecoin目前采用的共識算法,是一種簡單的共識算法,基本符合上述要求。那么它是如何做到的呢?

這里我為了形象說明,不使用骰子這個比喻,而采用另一個方法:擲飛鏢。預期共識的每一輪出塊最重要的一個步驟就是選舉,這里的選舉實際上就是自己進行計算,其實不需要大家投票。按照擲飛鏢的來看,基本上分成以下幾個步驟:

  • 每一個礦工面前有一個大飛鏢盤,面積與整個網絡的總算力相當(這是已知的),每個人都一樣;
  • 每一個礦工的算力各有差異,僅占總算力的一小部分。每一個礦工的飛鏢盤上都有一塊材料是木頭的,面積與此礦工的算力相當;而其他部分都是金屬的;
  • 但是飛鏢盤上面蒙上了一層紙,哪一部分是木頭的不知道,也就是說,只有上帝知道(這有系統的可驗證隨機函數確定,主要通過散列和簽名實現)
  • 每一個礦工自由擲出飛鏢到飛鏢盤,命中木頭部分,上靶(勝出),否則,掉落(等待下一輪繼續)。
  • 下一輪重復,但注意,木頭部分每一輪都會換地方,只有上帝知道換到了哪里。
  • 每一輪上靶者稱為這一輪的 Leader,即選舉勝出者,有資格出塊。我們來看一下是否符合上面說到的幾個特點:

    • 公平性:沒問題,算力大的礦工命中的機會大, 機會與算力成正比
    • 不可預知性:只有上帝知道木頭材料分布在哪些地方,不能預知(實際上是利用hash算法的不可逆來實現的)
    • 可驗證性:這個就涉及到VRF(可驗證隨機函數)的問題了。簡單地著,前面所謂的木頭部分在哪里,其實不是隨意的,而是通過密碼學算法確定的,只是這些密碼學算法的不可逆性,保證了對網絡來說的隨機性
    • 可行性:預期共識僅僅需要每個礦工在本地計算就可以了,非常簡單,實現起來很容易,計算復雜度低。沒問題。

    為什么還有人說不夠好

    看了上文,是不是覺得這么棒的東西,太好了!但你要知道,協議實驗室對這個算法是不滿意的,只是在沒有新的更好的算法出來之前,考慮使用此算法。而且,協議實驗室懸賞20萬美金給更好的算法的提出者。那問題在哪里?

    問題就在于,上面的每一個飛鏢盤都是獨立的,每個人的運氣也是獨立的。也就是說每個人命中的可能性也是獨立的。那是不是在每一輪中,有可能所有人都不上靶,一個人也選不出來;當然也有可能有好幾個人都上靶,這樣就會有好幾個人出塊了。再想一想,是不是存在這樣的概率所有人都上靶,理論上有,但如果人比較多,概率極低。

    這就不是很理想了,因為有些輪沒有人出塊,交易(消息)的過程就會延長;如果有些輪有多個人出塊,這些塊中的消息信息基本上都是重復的,占用區塊空間,浪費。

    所以呀,更好的算法當然是最好每輪都能出塊,而且每一輪都只有一個礦工上靶(具有出塊資格)。可以想象,這樣的算法當然需要整個網絡進行協調,進行真正的選舉,那這樣是不是復雜度提高了,是不是可行呢?目前有好些算法被提出來,可以查詢CoA, Snow White, AlgoRand等。但是,有些過于復雜,有些不適合Filecoin。

    希望各位算法高手,看在獎金的份上,加油吧!

    為什么叫預期共識?

    回到一個傻傻的問題,為什么這個共識被稱為預期共識(Expected Consensus)。高中生一定還記得概率論中學過數學期望(Mathematical Expectation)。這里 Expectation 是 Expect 的名詞形式。也就是說一種期望,表明一種概率情況下的平均值。

    再回到我們前面的擲飛鏢游戲,想像每一個礦工的算力加起來是不是等于總算力?在這種情況下,每一輪擲飛鏢的勝出者數量的數學期望值就是 1,即平均下來就是一個人中靶。

    因為期望每一輪一個人中靶,而實際上預期共識算法僅實現平均下來一個人中靶,就叫它預期共識(Expected Consensus)吧。

    真正的算法(前方高能)

    具體可參見白皮書或相關文檔,這里簡單做一些解釋,歡迎探討。

    如果一個礦工在一輪計算中下式成立,中靶,具有出塊資格。

    不等式左邊:H 為不可逆hash函數(比如 SHA256); L為 H 函數值的所占二進制的位數,這里保證了左邊是一個0%到100%之間的一個值;

    H 函數內的 <t||rand(t)>是在第 t 輪的一個全網統一的隨機數,這個在第 t 輪才會公布。

    不等式右邊:分子為第 t 輪本礦機所擁有的算力;分母為第 t 輪全網的總算力;當然整個式子就是本礦機在全網中算力的占比。

    這個不等式就相當于,后邊是你飛鏢盤木質部分的占比,而左邊是你的運氣,如果人品不錯,就擊中了木質部分(中靶)

    那么,如何保證每個礦工的木質部分位置隨機呢?就靠下面這個定義:

    也就是對上面的隨機數進行簽名,而簽名函數本身是不可逆也是不可預知的,每個人都不同。這就只有上帝知道木質部分放到哪里了。


    歡迎關注 胡飛瞳

    總結

    以上是生活随笔為你收集整理的algorand共识协议_【Filecoin】理解预期共识 - 及它的优缺点的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。