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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

VRF抽签与投票的思考

發(fā)布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VRF抽签与投票的思考 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

VRF抽簽與投票的思考

?

在區(qū)塊鏈上,人類真正實現(xiàn)了“私有財產(chǎn)神圣不可侵犯”

VRF(可驗證隨機函數(shù))在Algorand提出后,被越來越多的公鏈項目應用。VRF的特點在于其能夠產(chǎn)生一個能夠被驗證的隨機結果,通過該隨機結果,在區(qū)塊鏈中可以實現(xiàn)隨機“選舉”或“抽簽”。與POS結合后能夠減輕POS的“富者恒富”的現(xiàn)象。

然而我們知道,魚和熊掌不可兼得,提高公平性(去中心化)的代價是犧牲性能或安全性。Algorand選擇了犧牲一定的共識效率來換取公平性(去中心化)。以下是在分析Algorand、Ont等使用VRF的共識算法中,對VRF抽簽與投票的一些思考。

Algorand概括

Algorand作為第一個使用了VRF的共識算法,其共識流程可以大致總結為三個步驟:

  • 隨機選舉多個提案者,提案新區(qū)塊。(提案者由VRF抽簽)
  • 收集多個提案區(qū)塊并選出權重最高者。
  • BA* 對多個區(qū)塊提案中的一個提案達成共識。(每一步的投票者均需要VRF抽簽)
  • POS + Random

    VRF本質是隨機函數(shù),而在區(qū)塊鏈系統(tǒng)的共識流程中不能用完全公平的隨機,因為出塊者需要有激勵,同時每個節(jié)點的貢獻值也并非一致。 所以通常都會在VRF抽簽之前加一層POS,將“更優(yōu)”的一批節(jié)點先選出來作為候選人。

    對于POS+Random 的共識算法,一般有如下三種情況:

    Case 1. 隨機抽簽出一個提案者,其他節(jié)點驗證并接受該節(jié)點提案。

    Case 2. 隨機抽簽出一個提案者與多個投票者,需要投票者對區(qū)塊達成共識。(代表:Tendermint)

    Case 3. 隨機抽簽出多個提案者與多個投票者,需要投票者從多個提案區(qū)塊中選出一個并達成共識。(代表:Algorand)

    下面我們來一一解析以上case:

    Case 1即為很純粹的POS,希望通過隨機抽簽抑制“富者恒富”的現(xiàn)象。但純粹的POS有Nothing at stake的問題,提案者可以基于多個分叉鏈提出不同的區(qū)塊,使得分叉進一步加劇。(以太坊Casper FFG依靠懲罰金來解決,但這無疑也增加了系統(tǒng)的復雜度)

    Case 2很類似于自帶viewchange的PBFT,一般容錯率也為1/3。投票者的目的在于給于deterministic confirmation,且部分解決了Nothing at stake問題。為何說是“部分解決”,因為為了最大化提高區(qū)塊通過的概率,提案者仍會給多個分叉鏈投票。但由于有投票者這一角色,可保證在網(wǎng)絡不分區(qū)的情況下理論上不會產(chǎn)生分叉。同時,由于隨機抽簽采用公開的信息,提案者也能夠被預測。

    Case 3其實是Algorand的高度簡化版,Case 2也可作為Case 3的一個特例。一方面,多個提案者之間相互競爭,促使提案者本身提出正確的區(qū)塊;另一方面,對于抽取多個提案者的場景,可采用VRF作為隨機函數(shù):節(jié)點使用公開的信息和自己的密鑰直接在本地運行選舉函數(shù)判斷自己是否被選中,其他節(jié)點能夠驗證但無法預測提案者。

    這里值得注意的是,在分布式網(wǎng)絡中,VRF無法完成固定數(shù)量的抽簽任務,原因是VRF的一個Input是節(jié)點私鑰,這使得每個節(jié)點產(chǎn)生的隨機值均不相同,全網(wǎng)只能驗證結果是否合法,但無法設計統(tǒng)一的標準使得某個隨機結果唯一性地符合某個條件。

    VRF抽簽的優(yōu)勢

    在VRF出現(xiàn)之前,為了滿足選舉信息的可驗證,通常采用公開的信息作為Input,通過公開的隨機函數(shù)得出隨機結果,以隨機結果作為依據(jù)進行抽簽。 由于所有信息均為公開,故所有節(jié)點都可以在本地計算出抽簽結果。

    但上述抽簽方案有一個很大的問題:攻擊者有一定的時間窗口能夠預測出抽簽結果,及時對被選舉人實施攻擊

    VRF很好地解決了這個問題:

  • 由于使用節(jié)點私鑰作為Input,VRF的結果無法被預測。其他節(jié)點只有通過網(wǎng)絡接收到隨機結果后才能對其合法性進行驗證,即攻擊者在得知選舉結果時,選舉人已經(jīng)做出行動了。
  • VRF的輸出值除了隨機值外,還包含一個proof,提供了隨機值驗證的零知識證明,即不必知道某人私鑰即可證明該隨機值是由某人產(chǎn)生的
  • VRF抽簽的弊端

    VRF為隨機抽簽提供了隱私性和可驗證,但也帶來了一個很棘手的問題:丟失全局的抽簽信息,降低投票共識的成功率

    由于VRF需要私鑰作為Input,其他節(jié)點只能通過網(wǎng)絡通信獲得相應proof后才能驗證隨機結果是否合法,所以任何節(jié)點都無法得知全網(wǎng)的真實選舉情況的。這對投票類共識算法帶來了巨大的挑戰(zhàn)。投票類共識算法必須設置一個通過閾值(如2/3以上),只有通過該閾值才視為投票通過。而基于VRF的共識算法丟失了全局的選舉信息后,只能以期望值的形式設置閾值,使得投票退化為概率型投票

    如何理解概率型投票?首先,我們需要明確確定型投票的定義——投票結果應遵循大部分提案者的意見(通過或不通過)。當投票結果不一定會遵循大部分提案者的意見,那么就屬于概率型投票。對于由VRF選出的投票者的投票階段,由于閾值的設置與實際選舉情況是割裂的,則即使大部分投票者同意提案,提案仍有可能達不到閾值,從而顯示“不同意”的結果,與大多數(shù)投票者的意志相背。我認為,之所以Algorand在BinaryBA*中要設計多輪投票,并且每一步均重新選舉投票者,其目的是通過不斷重選提高實際投票達到閾值的概率,通過多輪投票提高達成共識的概率

    BinaryBA*算法

    總結

    VRF算法最早由Silvio Micali(圖靈獎得主,Algorand的創(chuàng)始人)在1999年提出,也是由他首次將其引入到區(qū)塊鏈中,為區(qū)塊鏈的共識算法提供了嶄新的研究思路和解決方案。但我們在分析并使用VRF的時候,不僅需要分析VRF本身,也應該關注先驅者是如何思考和設計基于VRF的共識算法過程。一味地將VRF遷移至其他的共識算法,可能并不能達到預期的效果,甚至反而會帶來其他的不確定性風險。

    總結

    以上是生活随笔為你收集整理的VRF抽签与投票的思考的全部內容,希望文章能夠幫你解決所遇到的問題。

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