[發明專利]區塊鏈的共識方法及裝置、電子設備、存儲介質在審
| 申請號: | 202210281603.8 | 申請日: | 2022-03-21 |
| 公開(公告)號: | CN114936253A | 公開(公告)日: | 2022-08-23 |
| 發明(設計)人: | 莊虔偉;曹崇瑞;賴奕宇 | 申請(專利權)人: | 網易(杭州)網絡有限公司 |
| 主分類號: | G06F16/27 | 分類號: | G06F16/27;H04L9/06;H04L9/08 |
| 代理公司: | 北京超凡宏宇專利代理事務所(特殊普通合伙) 11463 | 代理人: | 彭星 |
| 地址: | 310052 浙江省*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 區塊 共識 方法 裝置 電子設備 存儲 介質 | ||
本申請提供一種區塊鏈的共識方法及裝置、電子設備、存儲介質,該方法包括:當區塊鏈在第一區塊高度發生分叉時,根據每個分叉區塊的隨機數,選取一個分叉區塊作為父區塊,剩余的分叉區塊作為叔區塊;根據所述叔區塊的信息,生成第二區塊高度的新區塊;在區塊鏈網絡中廣播所述新區塊,使所述區塊鏈網絡中的共識節點收到所述新區塊后,驗證所述新區塊的正確性,若驗證通過,進入所述新區塊的共識投票流程。該方案無需人工干預分叉問題,當出現分叉區塊時,共識仍可繼續進行,增加聯盟鏈對作惡節點的容錯能力。
技術領域
本申請涉及區塊鏈技術領域,特別涉及一種區塊鏈的共識方法及裝置、電子設備、計算機可讀存儲介質。
背景技術
聯盟鏈中主要采用PBFT(實用拜占庭容錯算法)或在PBFT基礎上優化的BFT(拜占庭容錯算法)共識算法,實現方式也不相同。其中 FISCO-BCOS聯盟鏈直接采用PBFT算法。
在PBFT理論中,假設網絡中一共有3f+1個節點,拜占庭節點不超過f個。共識的可用性由viewChange(視圖切換)協議保障,此可用性的前提條件是拜占庭節點不超過f個。如果拜占庭節點超過f,將不在此算法的討論范圍。
如果作惡節點超過f個,惡意節點成為出塊節點時同時打包兩個合法區塊廣播,區塊鏈系統仍然會產生分叉,產生分叉后下一個共識高度的出塊節點無法判斷應該以哪個區塊為父區塊進行打包新區塊。這時只能通過人為干預解決分叉問題,系統才能繼續運行。
發明內容
本申請實施例提供了一種區塊鏈的共識方法,無需人工干預分叉問題,共識仍可繼續進行,增加聯盟鏈對作惡節點的容錯能力。
本申請實施例提供了一種區塊鏈的共識方法,包括:
當區塊鏈在第一區塊高度發生分叉時,根據每個分叉區塊的隨機數,選取一個分叉區塊作為父區塊,剩余的分叉區塊作為叔區塊;
根據所述叔區塊的信息,生成第二區塊高度的新區塊;
在區塊鏈網絡中廣播所述新區塊,使所述區塊鏈網絡中的共識節點收到所述新區塊后,驗證所述新區塊的正確性,若驗證通過,進入所述新區塊的共識投票流程。
在一實施例中,在所述當區塊鏈在第一區塊高度發生分叉時,根據每個分叉區塊的隨機數,選取一個分叉區塊作為父區塊,剩余的分叉區塊作為叔區塊之前,所述方法還包括:
若所述第一區塊高度存在至少兩個區塊的投票數量超過節點總數的三分之二,將所述至少兩個區塊同時上鏈存儲,得到至少兩個分叉區塊。
在一實施例中,所述根據每個分叉區塊的隨機數,選取一個分叉區塊作為父區塊,剩余的分叉區塊作為叔區塊,包括:
根據每個分叉區塊的隨機數,選取隨機數最小的分叉區塊作為所述父區塊,剩余的分叉區塊作為所述叔區塊。
在一實施例中,所述新區塊包括隨機數字段和叔塊引用字段。
在一實施例中,所述根據所述叔區塊的信息,生成第二區塊高度的新區塊,包括:
根據所述叔區塊的個數和每個叔區塊的哈希值,得到所述叔塊引用字段的參數值;
生成一個隨機數賦值所述隨機數字段,并將生成的隨機數與所述參數值加入打包的第二區塊高度的新區塊中。
在一實施例中,所述驗證所述新區塊的正確性,包括:
校驗所述新區塊中包含的叔區塊的信息與所述共識節點本地區塊鏈的叔區塊的信息是否相同。
在一實施例中,所述驗證所述新區塊的正確性,還包括:
校驗所述新區塊指向的父區塊的正確性和校驗所述新區塊包含的交易數據的正確性。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于網易(杭州)網絡有限公司,未經網易(杭州)網絡有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210281603.8/2.html,轉載請聲明來源鉆瓜專利網。





