為了適應boe技術的要求,同時盡可能的提公升安全tps, hpb共識演算法採用了高效的雙層選舉機制,即外層選舉和內層選舉。
外層選舉:由具有boe板卡的所有使用者中選取出。選取週期為3個月。選取方式為通過hpb錢包進行投票選舉。
內層選舉:採用節點貢獻值評價指標,從眾多候選節點中選出高貢獻值節點成員。基於hash佇列記名投票機制,在每次區塊生成時,計算高貢獻值節點生成區塊的優先順序,優先順序高的高貢獻值節點享有優先生成區塊的權利。
在整個共識演算法設計中, hpb共識演算法的輕量級訊息交換機制使其在共識效率上遠高於其他共識演算法, 同時在安全性,私隱性等方面也做了較大幅度的提公升。
由於在申請boe板卡時已經考慮了除使用者持幣量的其他因素,所以外層選舉在錢包投票節點主要考慮持幣量的因素,以及使用者的認可度,使用者認可度高,則使用者會對他進行投票,反之則投票數量少。
注1:如果具有boe的使用者較多,會存在一定數量的使用者在外層選舉中落選。落選的使用者仍然可以入網,但是不會作為候選節點或者高效能節點,並且也不會收到獎勵。
本文重點關注內層選舉。將會詳細描述內層選舉的實現方式和關鍵因素。
選舉包括2部分,首先是投票節點,然後是唱票階段。
內層選舉階段發生在網路執行中的特定階段,每間隔一定數量的區塊進行一次選舉,並且根據關鍵因素進行排名,選擇優秀的節點進行投票。
節點頻寬:在節點執行期間,節點會定期測試與其他節點間的頻寬資料,並儲存在節點中,提供給共識使用,節點的頻寬資料會記錄在區塊中。
使用者持幣量:使用者在投票時的持幣數量。
投票數量:外層選舉過程中使用者節點獲得的投票數量。
節點根據外層選舉得出的節點資料為集合,根據關鍵因素的排名加權選擇最優節點,進行投票。為了保證選舉結果數量,在投票過程中進行了隨機化操作,並不是在所有的外層選舉集合內進行最有選擇,而是隨機選擇出特定數量的集合,然後選擇最優節點投票。這個目的是保證選舉結果的數量達到穩定值,保證網路的穩定性,並且排除節點排名較靠後的節點。
已經有了投票的基礎資料後,在特定階段環節進行唱票工作,所有節點在唱票階段通過讀取區塊進行唱票,將區塊中所有的投票資料提取出來進行統計。在投票階段會將投票的資料寫入voteindex。
將獲得投票的所有節點作為乙個集合,從中選出特定數量的節點,作為下一輪的高效能節點。因此需要對該結合中的節點進行排名操作,排名的依據是voteindex的均值。
在注2中可以看到幾個與本文關係較密切的字段,分別是candaddress,miner以及voteindex。
miner:產生區塊的節點。
candaddress:是由miner根據內層選舉的3個關鍵因素確定的。
voteindex:是candaddress所對應的因素加權結果值。
從投票到唱票的所有環節,所有節點均存在校驗機制,確保節點無法進行虛假投票和唱票,如果投票偽造,則該區塊會被其他節點拒收;如果唱票偽造,則會被其他節點踢出網路。
注2:區塊部分內容。
具體投票機制可能根據最新的需求會調整,請及時參考最新的**。
更多技術諮詢
hpb是什麼
hpb wiki of github
hpb website
HPB共識演算法選舉機制描述
為了適應boe技術的要求,同時盡可能的提公升安全tps,hpb共識演算法採用了高效的雙層選舉機制,即外層選舉和內層選舉。外層選舉 由具有boe板卡的所有使用者中選取出。選取週期為3個月。選取方式為通過hpb錢包進行投票選舉。內層選舉 採用節點貢獻值評價指標,從眾多候選節點中選出高貢獻值節點成員。基於...
區塊鏈 共識演算法POS,DPOS
pos proof of stake 大多數地方叫權益證明,其實可以看作是股權證明,也是一種共識演算法,在基於權益證明的數字貨幣中,下乙個區塊的選擇是根據不同節點的股份和時間進行隨機選擇的。打個比方說,假如你買了1萬個數字貨幣,然後就放在pos機制中,這樣你就擁有了機會去獲得新的區塊從而得到獎勵,機...
區塊鏈共識演算法 POW
pow proof of work 工作量證明 工作量證明即挖礦,通俗來說就是幹的越多,收穫越多。即通過與或運算,來計算出乙個滿足規則的隨機數,即獲得了本次的記賬權。在發出本輪需要記錄的資料之後,全網其他節點驗證之後一起儲存。乙個符合要求的區塊雜湊值block hash由n個前導的零組成 零的個數取...