(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-18
(45)【発行日】2024-11-26
(54)【発明の名称】ブロックチェーンに基づくデータ処理方法、データ処理装置、コンピュータ機器、及びコンピュータプログラム
(51)【国際特許分類】
H04L 9/32 20060101AFI20241119BHJP
G06F 21/62 20130101ALI20241119BHJP
G06F 21/64 20130101ALI20241119BHJP
【FI】
H04L9/32 200Z
G06F21/62 318
G06F21/64
(21)【出願番号】P 2023566965
(86)(22)【出願日】2022-05-11
(86)【国際出願番号】 CN2022092177
(87)【国際公開番号】W WO2022252941
(87)【国際公開日】2022-12-08
【審査請求日】2023-11-14
(31)【優先権主張番号】202110616371.2
(32)【優先日】2021-06-02
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リウ,パン
【審査官】青木 重徳
(56)【参考文献】
【文献】特表2020-512708(JP,A)
【文献】特表2020-519959(JP,A)
【文献】米国特許出願公開第2017/0344987(US,A1)
【文献】中国特許出願公開第112398956(CN,A)
【文献】中国特許出願公開第112200680(CN,A)
【文献】中国特許出願公開第110912990(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/62
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
コンピュータ機器が実行する、ブロックチェーンに基づくデータ処理方法であって、
第1コンセンサス周期で生成されたブロック高さがコンセンサスノード集合切り替え条件を満たす場合、第2コンセンサス周期に対応する第2コンセンサスノード集合の選択を開始し、前記第2コンセンサスノード集合が選択されたときに生成されたブロックの高さを第1ブロック高さとして決定するステップであって、前記第1コンセンサス周期における最大ブロック高さに対応するブロックは、前記第2コンセンサス周期における最小ブロック高さに対応するブロックの直前のブロックである、ステップと、
前記第2コンセンサスノード集合に対応する集合情報を前記第1ブロック高さに対応するブロックに追加して第1ブロックを生成し、ブロックチェーンネットワーク内で前記第1ブロックをブロードキャストすることにより、前記第2コンセンサスノード集合内のコンセンサスノードに、過渡コンセンサス期間内で前記第1ブロックにおける前記集合情報に基づいて前記第2コンセンサス周期に関連付けられた秘密鍵断片を生成させるステップであって、前記過渡コンセンサス期間とは、前記第1コンセンサス周期に対応する第1コンセンサスノード集合が、過渡ブロック高さ区間に属するブロックに対してコンセンサス処理を行うために消費される時間を指し、前記過渡ブロック高さ区間に含まれるブロック高さは、いずれも、前記第1ブロック高さより大きい、ステップと、
前記第2コンセンサスノード集合内のコンセンサスノードから送信された秘密鍵断片生成通知を取得するステップであって、前記秘密鍵断片生成通知には、通知署名が付されており、前記通知署名は、前記第2コンセンサスノード集合内のコンセンサスノードが前記第2コンセンサス周期に関連付けられた秘密鍵断片に基づいて通知を生成して署名することにより生成されたものである、ステップと、
前記通知署名に基づいて、前記第2コンセンサスノード集合内のコンセンサスノードの、前記第2コンセンサス周期に対するコンセンサス権限を決定するステップと、
を含むデータ処理方法。
【請求項2】
前記第2コンセンサスノード集合には、コンセンサスノードG
aが含まれ(aは、正の整数であり、かつ、前記第2コンセンサスノード集合内のコンセンサスノードのノード総数以下である)、前記通知署名には、前記コンセンサスノードG
aに対する通知署名T
aが含まれ、
前記通知署名に基づいて、前記第2コンセンサスノード集合内のコンセンサスノードの、前記第2コンセンサス周期に対するコンセンサス権限を決定するステップは、
前記第2コンセンサスノード集合に関連付けられたグローバル公開鍵で前記通知署名T
aの署名検証を行うことにより、第1署名検証結果J
aを取得するステップであって、前記第1署名検証結果J
aには、署名検証失敗結果又は署名検証合格結果が含まれる、ステップと、
前記第1署名検証結果J
aが前記署名検証失敗結果である場合、前記通知署名T
aを削除するステップと、
前記第1署名検証結果J
aが前記署名検証合格結果である場合、前記通知署名T
aを正当署名集合に追加するステップと、
前記正当署名集合に基づいて、前記第2コンセンサスノード集合内のコンセンサスノードの、前記第2コンセンサス周期に対するコンセンサス権限を決定するステップと、を含む、
請求項1に記載のデータ処理方法。
【請求項3】
前記正当署名集合に基づいて、前記第2コンセンサスノード集合内のコンセンサスノードの、前記第2コンセンサス周期に対するコンセンサス権限を決定するステップは、
前記正当署名集合内の通知署名の署名総数を集計するステップと、
前記ノード総数と前記署名総数との第1数量比率を決定し、前記第1数量比率と第1数量比率閾値とを比較するステップと、
前記第1数量比率が前記第1数量比率閾値より小さい場合、前記第2コンセンサスノード集合内のコンセンサスノードが前記第2コンセンサス周期に対するコンセンサス権限を持たないと決定するステップと、
前記第1数量比率が前記第1数量比率閾値以上である場合、前記第2コンセンサスノード集合内のコンセンサスノードが前記第2コンセンサス周期に対するコンセンサス権限を持つと決定するステップと、を含む、
請求項2に記載のデータ処理方法。
【請求項4】
前記秘密鍵断片生成通知には、前記コンセンサスノードG
aから送信された秘密鍵断片生成通知Z
aが含まれ、
前記第2コンセンサスノード集合に関連付けられたグローバル公開鍵で前記通知署名T
aの署名検証を行うことにより、第1署名検証結果J
aを取得するステップは、
前記第2コンセンサスノード集合に関連付けられた前記グローバル公開鍵で前記通知署名T
aを復号することにより、第1デジタルダイジェストを取得するステップと、
前記秘密鍵断片生成通知Z
aの第2デジタルダイジェストを取得し、前記第1デジタルダイジェストと前記第2デジタルダイジェストとを比較するステップと、
前記第1デジタルダイジェストと前記第2デジタルダイジェストが同じである場合、前記第1署名検証結果J
aが前記署名検証合格結果であると決定するステップと、
前記第1デジタルダイジェストと前記第2デジタルダイジェストが異なる場合、前記第1署名検証結果J
aが前記署名検証失敗結果であると決定するステップと、を含む、
請求項2に記載のデータ処理方法。
【請求項5】
前記第2コンセンサスノード集合内のコンセンサスノードが前記第2コンセンサス周期に対するコンセンサス権限を持つ場合、前記通知署名の集約処理を行うことにより、第1集約署名を取得するステップと、
前記第1集約署名が含まれる署名検証ブロックを生成し、前記署名検証ブロックのコンセンサス処理を行うことにより、コンセンサス結果を取得するステップであって、前記署名検証ブロックに対応する第2ブロック高さは、前記過渡ブロック高さ区間に属する、ステップと、
前記コンセンサス結果、及び、ブロックチェーンノードと前記第2コンセンサスノード集合との関連関係に基づいて、コンセンサスノード集合切り替えイベントに関連付けられた業務処理を行うステップであって、前記ブロックチェーンノードは、前記第1コンセンサスノード集合内のコンセンサスノードであり、前記第1コンセンサスノード集合内のコンセンサスノードは、ブロック生成権限を持つ、ステップと、
をさらに含む請求項1に記載のデータ処理方法。
【請求項6】
前記コンセンサス結果、及び、ブロックチェーンノードと前記第2コンセンサスノード集合との関連関係に基づいて、コンセンサスノード集合切り替えイベントに関連付けられた業務処理を行うステップは、
前記コンセンサス結果がコンセンサス採択結果である場合、前記第2ブロック高さと、前記過渡ブロック高さ区間内の最大ブロック高さとを比較するステップと、
前記第2ブロック高さが前記最大ブロック高さに等しい場合、前記ブロックチェーンノードと前記第2コンセンサスノード集合との前記関連関係に基づいて、前記コンセンサスノード集合切り替えイベントに関連付けられた業務処理を行うステップと、
前記第2ブロック高さが前記最大ブロック高さより小さい場合、前記第1コンセンサス周期に対応する第1コンセンサスメッセージプールを取得するステップと、
前記第1コンセンサスメッセージプール内のデータに基づいて、第1コンセンサス対象ブロックを生成し、第1ターゲット秘密鍵断片で前記第1コンセンサス対象ブロックを署名することにより、第1署名シェアを取得するステップであって、前記第1ターゲット秘密鍵断片は、前記第1コンセンサス周期に関連付けられた秘密鍵断片である、ステップと、
前記第1署名シェアが付されている前記第1コンセンサス対象ブロックに対してブロックチェーンへの追加処理を行うステップであって、前記第1署名シェアは、前記第1コンセンサスノード集合内のコンセンサスノードが前記第1コンセンサス対象ブロックに対してソース正当性署名検証を行うことを示すためのものである、ステップと、を含む、
請求項5に記載のデータ処理方法。
【請求項7】
前記コンセンサス結果、及び、ブロックチェーンノードと前記第2コンセンサスノード集合との関連関係に基づいて、コンセンサスノード集合切り替えイベントに関連付けられた業務処理を行うステップは、
前記コンセンサス結果がコンセンサス採択結果である場合、ブロックチェーンコンセンサスノード集合を前記第1コンセンサスノード集合から前記第2コンセンサスノード集合に切り替えると決定するステップと、
前記ブロックチェーンノードと前記第2コンセンサスノード集合との前記関連関係を決定し、前記関連関係によって、前記ブロックチェーンノードが前記第2コンセンサスノード集合に属しないことが示される場合、前記ブロックチェーンコンセンサスノード集合から離脱し、前記第2コンセンサス周期におけるブロックのコンセンサス処理を中断するステップと、
前記第2コンセンサスノード集合によるコンセンサスが採択されたブロックをデータ台帳に同期するステップと、を含む、
請求項5に記載のデータ処理方法。
【請求項8】
前記第2コンセンサス周期に関連付けられた秘密鍵断片には、第2ターゲット秘密鍵断片が含まれ、
前記コンセンサス結果、及び、ブロックチェーンノードと前記第2コンセンサスノード集合との関連関係に基づいて、コンセンサスノード集合切り替えイベントに関連付けられた業務処理を行うステップは、
前記コンセンサス結果がコンセンサス採択結果である場合、ブロックチェーンコンセンサスノード集合を前記第1コンセンサスノード集合から前記第2コンセンサスノード集合に切り替えると決定するステップと、
前記ブロックチェーンノードと前記第2コンセンサスノード集合との前記関連関係を決定し、前記関連関係によって、前記ブロックチェーンノードが前記第2コンセンサスノード集合に属することが示される場合、前記第2コンセンサス周期に対応する第2コンセンサスメッセージプールを取得するステップと、
前記第2コンセンサスメッセージプール内のデータに基づいて、第2コンセンサス対象ブロックを生成し、前記第2ターゲット秘密鍵断片で前記第2コンセンサス対象ブロックを署名することにより、第2署名シェアを取得するステップと、
前記第2署名シェアが付されている前記第2コンセンサス対象ブロックに対してブロックチェーンへの追加処理を行うステップであって、前記第2署名シェアは、前記第2コンセンサスノード集合内のコンセンサスノードが前記第2コンセンサス対象ブロックに対してソース正当性署名検証を行うことを示すためのものである、ステップと、を含む、
請求項5に記載のデータ処理方法。
【請求項9】
前記第2コンセンサスノード集合には、コンセンサスノードG
bが含まれ(bは、正の整数であり、かつ、前記第2コンセンサスノード集合内のコンセンサスノードのノード総数以下である)、前記第2コンセンサス周期に関連付けられた秘密鍵断片には、前記コンセンサスノードG
bに対応する秘密鍵断片P
bが含まれ、
前記第2署名シェアが付されている前記第2コンセンサス対象ブロックに対してブロックチェーンへの追加処理を行うステップは、
前記第2署名シェアが付されている前記第2コンセンサス対象ブロックをコンセンサスネットワーク内でブロードキャストするステップと、
前記コンセンサスノードG
bから送信された第2署名シェアF
bを取得するステップであって、前記第2署名シェアF
bは、前記コンセンサスノードG
bが前記秘密鍵断片P
bでコンセンサス結果S
bを署名することにより生成されたものであり、前記コンセンサス結果S
bは、前記コンセンサスノードG
bによる前記第2コンセンサス対象ブロックへのコンセンサス結果を表すためのものである、ステップと、
前記第2コンセンサスノード集合に関連付けられたグローバル公開鍵で前記第2署名シェアF
bの署名検証を行うことにより、第2署名検証結果D
bを取得するステップと、
前記第2署名検証結果D
bに基づいて、前記第2コンセンサス対象ブロックを第2ブロックとして決定するステップと、を含む、
請求項8に記載のデータ処理方法。
【請求項10】
前記第2署名検証結果D
bには、署名検証失敗結果又は署名検証合格結果が含まれ、
前記第2署名検証結果D
bに基づいて、前記第2コンセンサス対象ブロックを第2ブロックとして決定するステップは、
前記第2署名検証結果D
bが前記署名検証失敗結果である場合、前記第2署名シェアF
bを削除するステップと、
前記第2署名検証結果D
bが前記署名検証合格結果である場合、前記第2署名シェアF
bを正当シェア集合に格納するステップと、
前記正当シェア集合内の第2署名シェアのシェア総数を決定し、前記ノード総数と前記シェア総数との第2数量比率を決定し、前記第2数量比率と第2数量比率閾値とを比較するステップと、
前記第2数量比率が前記第2数量比率閾値以上である場合、前記第2コンセンサス対象ブロックを前記第2ブロックとして決定するステップと、を含む、
請求項9に記載のデータ処理方法。
【請求項11】
前記正当シェア集合内の第2署名シェアの集約処理を行うことにより、第2集約署名を取得し、前記第2集約署名を前記第2ブロックに追加し、前記第2集約署名が付されている前記第2ブロックをデータ台帳に格納するステップと、
ブロックチェーンノードから送信された、前記第2ブロックに対するブロック同期要求を取得するステップであって、前記ブロックチェーンネットワークには、前記ブロックチェーンノードが含まれる、ステップと、
前記ブロック同期要求に基づいて、前記第2集約署名が付されている前記第2ブロックを前記ブロックチェーンノードに返信することにより、前記ブロックチェーンノードが前記グローバル公開鍵で前記第2集約署名の署名検証を行って第3署名検証結果を取得し、前記第3署名検証結果に基づいて前記第2ブロックを同期するようにするステップと、
をさらに含む請求項10に記載のデータ処理方法。
【請求項12】
コンセンサスノードが前記第2コンセンサスノード集合に属する場合、前記第1ブロックにおける前記集合情報を取得し、分散型鍵コンポーネントによって、前記集合情報に関連付けられた秘密整数を生成するステップと、
前記秘密整数に基づいて、ターゲットローカル公開鍵を生成するステップと、
前記秘密整数に基づいて、少なくとも2つの秘密シェアを生成するステップであって、前記少なくとも2つの秘密シェアの総数は、前記第2コンセンサスノード集合内のコンセンサスノードのノード総数に等しく、前記第2コンセンサスノード集合内のコンセンサスノードには、コンセンサスノードG
cが含まれ(cは、正の整数であり、かつ、前記ノード総数以下である)、前記少なくとも2つの秘密シェアには、秘密シェアM
cが含まれる、ステップと、
前記ターゲットローカル公開鍵及び前記秘密シェアM
cを前記コンセンサスノードG
cに送信し、前記コンセンサスノードG
cから送信されたローカル公開鍵U
c及び秘密シェアE
cを取得するステップであって、前記ローカル公開鍵U
c及び秘密シェアE
cは、いずれも、前記コンセンサスノードG
cに対応する秘密整数に関連付けられたものである、ステップと、
前記秘密シェアE
cの正当性検証を行い、正当性検証結果を前記第2コンセンサスノード集合内のコンセンサスノードにブロードキャストするステップと、
前記秘密シェアE
c及び秘密シェアM
cに基づいて、第2ターゲット秘密鍵断片を生成するステップと、
前記ターゲットローカル公開鍵及び前記ローカル公開鍵U
cに基づいて、前記第2コンセンサスノード集合に関連付けられたグローバル公開鍵を生成するステップと、
をさらに含む請求項1乃至11のいずれか1項に記載のデータ処理方法。
【請求項13】
ブロックチェーンに基づくデータ処理装置であって、
第1コンセンサス周期で生成されたブロック高さがコンセンサスノード集合切り替え条件を満たす場合、第2コンセンサス周期に対応する第2コンセンサスノード集合の選択を開始し、前記第2コンセンサスノード集合が選択されたときに生成されたブロックの高さを第1ブロック高さとして決定する第1決定モジュールであって、前記第1コンセンサス周期における最大ブロック高さに対応するブロックは、前記第2コンセンサス周期における最小ブロック高さに対応するブロックの直前のブロックである、第1決定モジュールと、
前記第2コンセンサスノード集合に対応する集合情報を前記第1ブロック高さに対応するブロックに追加して第1ブロックを生成し、ブロックチェーンネットワーク内で前記第1ブロックをブロードキャストすることにより、前記第2コンセンサスノード集合内のコンセンサスノードに、過渡コンセンサス期間内で前記第1ブロックにおける前記集合情報に基づいて前記第2コンセンサス周期に関連付けられた秘密鍵断片を生成させる第1生成モジュールであって、前記過渡コンセンサス期間とは、前記第1コンセンサス周期に対応する第1コンセンサスノード集合が、過渡ブロック高さ区間に属するブロックに対してコンセンサス処理を行うために消費される時間を指し、前記過渡ブロック高さ区間に含まれるブロック高さは、いずれも、前記第1ブロック高さより大きい、第1生成モジュールと、
前記第2コンセンサスノード集合内のコンセンサスノードから送信された秘密鍵断片生成通知を取得する第1取得モジュールであって、前記秘密鍵断片生成通知には、通知署名が付されており、前記通知署名は、前記第2コンセンサスノード集合内のコンセンサスノードが前記第2コンセンサス周期に関連付けられた秘密鍵断片に基づいて通知を生成して署名することにより生成されたものである、第1取得モジュールと、
前記通知署名に基づいて、前記第2コンセンサスノード集合内のコンセンサスノードの、第2コンセンサス周期に対するコンセンサス権限を決定する第2決定モジュールと、
を含むデータ処理装置。
【請求項14】
コンピュータ機器であって、
プロセッサと、メモリと、ネットワークインタフェースと、を備え、
前記プロセッサは、前記メモリ及び前記ネットワークインタフェースに接続されており、前記ネットワークインタフェースはデータ通信機能を提供し、前記メモリはコンピュータプログラムを記憶しており、前記プロセッサは前記コンピュータプログラムを呼び出すことにより、前記コンピュータ機器に、請求項1乃至11のいずれか1項のデータ処理方法を実行させる、
ことを特徴とするコンピュータ機器。
【請求項15】
コンピュータに、請求項1乃至11のいずれか1項に記載のデータ処理方法を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2021年6月2日に中国特許庁に提出された、出願番号が第202110616371.2号であり、発明の名称が「ブロックチェーンに基づくデータ処理方法、装置、機器、及び可読記憶媒体」である中国特許出願に基づく優先権を主張する。
【0002】
本願は、インターネットの技術分野に関し、特に、ブロックチェーンに基づくデータ処理方法、データ処理装置、コンピュータ機器、及びコンピュータプログラムに関する。
【背景技術】
【0003】
ネットワーク技術の急速な発展、及び、政府や企業によるデータセキュリティの重視に伴い、ブロックチェーンが盛んに応用されている。ブロックチェーンネットワーク内のノードは、コンセンサスノード及び同期ノードを含んでもよい。そのうち、コンセンサスノードは記帳コンセンサスに参加し、同期ノードは主に業務の実行を行い、記帳コンセンサスに参加せず、身分認証によってコンセンサスノードからブロックデータを同期する。
【0004】
現在のブロックチェーンのコンセンサスノードは、データ署名に従来の公開鍵基盤(PKI:Public Key Infrastructure)システムを採用している。つまり、各々のコンセンサスノードは、公開鍵と秘密鍵のペアを自分で生成し、秘密鍵を自分で保護し、公開鍵を外部に公開する。あるブロックに対してコンセンサスを達成すると、コンセンサスノードは、自分の秘密鍵で署名されたデータを付する。しかしながら、各コンセンサスノードに対応する公開鍵と秘密鍵のペアは、該コンセンサスノード自体にのみ関連付けられ、いつでも同じであるため、不正者が該コンセンサスノードのノード情報を利用して、それに対応する秘密鍵を入手することが容易になり、この場合、ブロックチェーン業務サービスのセキュリティが保証されない。
【0005】
また、コンセンサスノード及び同期ノードは固定されたものではなく、コンセンサスノードは任期を周期とする。任期が終わるたびに、ブロックチェーンコンセンサスノード集合(ブロックチェーンコンセンサス委員会とも呼ばれる)は、ブロックチェーンノードの中から新たなコンセンサスノードを改めて選択(又は選挙)し、第1代のブロックチェーンコンセンサスノード集合から第2代のブロックチェーンコンセンサスノード集合に切り替える必要がある。第2代のブロックチェーンコンセンサスノード集合が第2コンセンサス周期のコンセンサス配置情報を取得してブロックを同期するプロセスにおいて、第2代のブロックチェーンコンセンサスノード集合が新たなブロックのコンセンサス処理を開始することができないため、ブロックチェーンネットワークが新たなブロックのコンセンサス処理を中断することになり、さらにブロックチェーン業務サービスの連続性や適時性が低下する。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本願の実施例は、ブロックチェーン業務サービスの連続性や適時性を向上させることができるだけでなく、ブロックチェーン業務サービスのセキュリティを向上させることができるブロックチェーンに基づくデータ処理方法、データ処理装置、コンピュータ機器、及びコンピュータプログラムを提供する。
【課題を解決するための手段】
【0007】
本願の実施例の一態様では、コンピュータ機器が実行する、ブロックチェーンに基づくデータ処理方法が提供されている。前記方法は、
第1コンセンサス周期で生成されたブロック高さがコンセンサスノード集合切り替え条件を満たす場合、第2コンセンサス周期に対応する第2コンセンサスノード集合の選択を開始し、前記第2コンセンサスノード集合が選択されたときに生成されたブロックの高さを第1ブロック高さとして決定するステップであって、前記第1コンセンサス周期における最大ブロック高さに対応するブロックは、前記第2コンセンサス周期における最小ブロック高さに対応するブロックの直前のブロックである、ステップと、
前記第2コンセンサスノード集合に対応する集合情報を前記第1ブロック高さに対応するブロックに追加して第1ブロックを生成し、ブロックチェーンネットワーク内で前記第1ブロックをブロードキャストすることにより、前記第2コンセンサスノード集合内のコンセンサスノードに、過渡コンセンサス期間内で前記第1ブロックにおける前記集合情報に基づいて前記第2コンセンサス周期に関連付けられた秘密鍵断片を生成させるステップであって、前記過渡コンセンサス期間とは、前記第1コンセンサス周期に対応する第1コンセンサスノード集合が、過渡ブロック高さ区間に属するブロックに対してコンセンサス処理を行うために消費される時間を指し、前記過渡ブロック高さ区間に含まれるブロック高さは、いずれも、前記第1ブロック高さより大きい、ステップと、
前記第2コンセンサスノード集合内のコンセンサスノードから送信された秘密鍵断片生成通知を取得するステップであって、前記秘密鍵断片生成通知には、通知署名が付されており、前記通知署名は、前記第2コンセンサスノード集合内のコンセンサスノードが前記第2コンセンサス周期に関連付けられた秘密鍵断片に基づいて通知を生成して署名することにより生成されたものである、ステップと、
前記通知署名に基づいて、前記第2コンセンサスノード集合内のコンセンサスノードの、前記第2コンセンサス周期に対するコンセンサス権限を決定するステップと、を含む。
【0008】
本願の実施例の一態様では、ブロックチェーンに基づくデータ処理装置が提供されている。前記装置は、
第1コンセンサス周期で生成されたブロック高さがコンセンサスノード集合切り替え条件を満たす場合、第2コンセンサス周期に対応する第2コンセンサスノード集合の選択を開始し、前記第2コンセンサスノード集合が選択されたときに生成されたブロックの高さを第1ブロック高さとして決定する第1決定モジュールであって、前記第1コンセンサス周期における最大ブロック高さに対応するブロックは、前記第2コンセンサス周期における最小ブロック高さに対応するブロックの直前のブロックである、第1決定モジュールと、
前記第2コンセンサスノード集合に対応する集合情報を前記第1ブロック高さに対応するブロックに追加して第1ブロックを生成し、ブロックチェーンネットワーク内で前記第1ブロックをブロードキャストすることにより、前記第2コンセンサスノード集合内のコンセンサスノードに、過渡コンセンサス期間内で前記第1ブロックにおける前記集合情報に基づいて前記第2コンセンサス周期に関連付けられた秘密鍵断片を生成させる第1生成モジュールであって、前記過渡コンセンサス期間とは、前記第1コンセンサス周期に対応する第1コンセンサスノード集合が、過渡ブロック高さ区間に属するブロックに対してコンセンサス処理を行うために消費される時間を指し、前記過渡ブロック高さ区間に含まれるブロック高さは、いずれも、前記第1ブロック高さより大きい、第1生成モジュールと、
前記第2コンセンサスノード集合内のコンセンサスノードから送信された秘密鍵断片生成通知を取得する第1取得モジュールであって、前記秘密鍵断片生成通知には、通知署名が付されており、前記通知署名は、前記第2コンセンサスノード集合内のコンセンサスノードが前記第2コンセンサス周期に関連付けられた秘密鍵断片に基づいて通知を生成して署名することにより生成されたものである、第1取得モジュールと、
前記通知署名に基づいて、前記第2コンセンサスノード集合内のコンセンサスノードの、前記第2コンセンサス周期に対するコンセンサス権限を決定する第2決定モジュールと、を含む。
【0009】
本願の一態様では、プロセッサと、メモリと、ネットワークインタフェースと、を備えるコンピュータ機器が提供されている。
【0010】
上記プロセッサは、上記メモリ、上記ネットワークインタフェースに接続されており、上記ネットワークインタフェースはデータ通信機能を提供し、上記メモリはコンピュータプログラムを記憶し、上記プロセッサは上記コンピュータプログラムを呼び出すことにより、コンピュータ機器に本願の実施例における方法を実行させる。
【0011】
本願の実施例の一態様では、コンピュータプログラムを記憶したコンピュータ可読記憶媒体が提供されており、上記コンピュータプログラムは、プロセッサによりロードされると、本願の実施例における方法を実行させるように構成される。
【0012】
本願の実施例の一態様では、コンピュータ命令を含むコンピュータプログラム製品又はコンピュータプログラムが提供されており、該コンピュータ命令がコンピュータ可読記憶媒体に記憶されており、コンピュータ機器のプロセッサがコンピュータ可読記憶媒体から該コンピュータ命令を読み取り、プロセッサが該コンピュータ命令を実行すると、該コンピュータ機器に本願の実施例における方法を実行させる。
【図面の簡単な説明】
【0013】
本願の実施例又は従来技術の構成をより明確に説明するために、以下に、実施例又は従来技術の説明に必要な図面を簡単に紹介する。明らかに、以下の説明における図面は本願のいくつかの実施例を示しているに過ぎず、当業者であれば、創造的な労働をすることなく、これらの図面から他の図面を得ることもできる。
【
図1】本願の実施例で提供されるシステムアーキテクチャの模式図である。
【
図2】本願の実施例で提供されるブロックチェーンに基づくデータ処理のシナリオの模式図である。
【
図3】本願の実施例で提供されるブロックチェーンに基づくデータ処理方法の流れの模式図である。
【
図4】本願の実施例で提供されるブロックチェーンに基づくデータ処理のシナリオの模式図である。
【
図5】本願の実施例で提供されるブロックチェーンに基づくデータ処理のシナリオの模式図である。
【
図6】本願の実施例で提供されるブロックチェーンに基づくデータ処理方法の流れの模式図である。
【
図7】本願の実施例で提供されるブロックチェーンに基づくデータ処理のシナリオの模式図である。
【
図8】本願の実施例で提供されるブロックチェーンに基づくデータ処理のシナリオの模式図である。
【
図9】本願の実施例で提供されるブロックチェーンに基づくデータ処理方法の流れの模式図である。
【
図10】本願の実施例で提供されるブロックチェーンに基づくデータ処理のシナリオの模式図である。
【
図11】本願の実施例で提供されるブロックチェーンに基づくデータ処理のシナリオの模式図である。
【
図12】本願の実施例で提供されるブロックチェーンに基づくデータ処理のシナリオの模式図である。
【
図13】本願の実施例で提供されるブロックチェーンに基づくデータ処理方法の流れの模式図である。
【
図14】本願の実施例で提供されるブロックチェーンに基づくデータ処理装置の構成の模式図である。
【
図15】本願の実施例で提供されるコンピュータ機器の構成の模式図である。
【発明を実施するための形態】
【0014】
以下、本願の実施例の図面を参照しながら、本願の実施例の構成を明確かつ完全に説明する。明らかなように、説明する実施例は、本願の一部の実施例に過ぎず、全部の実施例ではない。当業者が創造的な労働をせずに本願の実施例から得る全ての他の実施例は、本願の保護範囲に属する。
【0015】
理解しやすいために、まず、一部の用語について以下のように簡単に解釈する。
【0016】
1、ブロックチェーンは、狭義には、ブロックを基本単位としたチェーン式のデータ構造であり、ブロック内で、過去に取得された取引履歴がデジタルダイジェストによってチェックされ、分散記帳のシナリオで改ざん防止や拡張性のニーズに適し、広義には、ブロックチェーン構造で実現される分散記帳技術も指し、分散コンセンサス、プライバシー・セキュリティ保護、ポイント・ツー・ポイント通信技術、ネットワークプロトコル、スマートコントラクトなどを含む。ブロックチェーンは、追加のみが許可され、削除が許可されない分散データ記録台帳の実現を目指す。台帳の基礎となる基本的な構造は、線形連結リストである。連結リストは、一つ一つの「ブロック」を直列に連結したものであり、ブロックのハッシュ(Hash)値が次のブロックに記録される。各ブロック(及びブロックにおける取引)が正当であるか否かは、ハッシュ値を計算することにより迅速に検証することができる。ネットワーク内のノードが新たなブロックの追加を提案した場合、コンセンサスメカニズムによってブロックのコンセンサス確認を達成しなければならない。
【0017】
2、ブロック(block)は、ブロックチェーンネットワーク上で取引データを搭載するデータパケットであり、タイムスタンプと、直前のブロックに対応するハッシュ値とが付けられたデータ構造である。ネットワークのコンセンサスメカニズムによって、ブロックにおける取引を検証して確認する。ブロックには、ブロックヘッダ(Block Header)とブロックボディ(Block Body)とが含まれる。ブロックヘッダは、現在のバージョン番号、直前のブロックに対応するハッシュ値、タイムスタンプ、乱数、マークルルート(Merkle Root)のハッシュ値などのデータが含まれる、現在のブロックのメタ情報を記録することができる。ブロックボディは、現在のブロックの検証された、ブロック作成中に生成された全ての取引記録やその他の情報が含まれる、ある期間内で生成された詳細なデータを記録することができ、台帳の表現形式の1つと理解されてもよい。
【0018】
3、ハッシュ値は、情報特徴値又は特徴値とも呼ばれ、ハッシュアルゴリズムによって任意の長さの入力データを暗号に変換して、固定長で出力することで生成され、一方向の暗号化関数であり、ハッシュ値の復号によって元の入力データを検索することはできない。ブロックチェーンでは、各ブロック(初期ブロックを除く)に直前のブロックのハッシュ値が含まれ、直前のブロックが現在のブロックの親ブロックと呼ばれる。ブロックチェーン技術では、ハッシュ値には、データの記録や閲覧の真実性と、ブロックチェーンの全体としての完全性とが保持される。
【0019】
4、ブロックチェーンノードは、ブロックチェーンネットワークにおいて、コンセンサスノード(コアノードとも呼ばれる)及び同期ノード(データノードとライトノードとを含んでもよい)に区別される。そのうち、コンセンサスノードは、ブロックチェーンネットワーク全体のコンセンサス業務を担い、同期ノードは、コンセンサスノードの台帳情報を同期し、即ち、最新のブロックデータを同期することを担う。コンセンサスノードであっても、同期ノードであっても、その内部の構成には、ネットワーク通信コンポーネントが含まれる。これは、ブロックチェーンネットワークが本質的にピアツーピア(P2P:Peer to Peer )ネットワークであり、P2Pコンポーネントを介してブロックチェーンネットワーク内の他のノードと通信を行う必要があるからである。ブロックチェーンネットワークでは、リソース及びサービスが各ノードに分散しており、情報の伝送及びサービスの実現がノード間で直接行われるため、中間リンク又は中心化されたサーバ(第三者)が介在する必要はない。
【0020】
5、コンセンサスメカニズム(consensus mechanism)は、ブロックチェーンシステムにおいて、異なるノード機器間での信頼の確立及び権益の取得を実現する数学的アルゴリズムである。ブロックチェーンシステムでは、ノード機器間の投票メカニズム(即ち、コンセンサスメカニズム)を通じて、取引の検証及び確認を短時間で完了することができる。1つの取引について、利益に関係のない若干のノード機器がコンセンサスを達成できる場合、システム内の全てのノード機器もこれについてコンセンサスを達成できると見なすことができる。
【0021】
6、公開鍵(public key)と秘密鍵(private key)は、あるアルゴリズムによって得られた鍵のペア(即ち、1つの公開鍵と1つの秘密鍵)であり、公開鍵は鍵のペアの公開部分であり、秘密鍵は非公開部分である。公開鍵は、通常、データの暗号化やデジタル署名の検証に使われる。このアルゴリズムによって、得られた鍵のペアが一意であることを保証することができる。このような鍵のペアを使う場合、あるデータを一方の鍵で暗号化すると、復号に他方の鍵を使わなければならない。例えば、データを公開鍵で暗号化すると、復号に秘密鍵を使わなければならず、秘密鍵で暗号化すると、復号に公開鍵を使わなければならず、さもないと、復号が成功できない。
【0022】
7、分散鍵生成(DKG:Distributed Key Generation)プロトコルは、分散型暗号化システムの重要な構成部分である。DKGプロトコルでは、複数の参加者(コンセンサスに参加しているノード機器)が、予め設定された暗号化システムに基づき、共同で協力してグローバル公開鍵及び各自の秘密鍵断片を生成し、いかなる信頼可能な第3者も必要としない。DKGプロトコルで生成されたグローバル公開鍵は、公開された形で出力されるが、各秘密鍵断片は、参加者によってある秘密共有スキームで共有される。この共有された秘密鍵断片は、集団署名や集団復号などのように、集団向け暗号システムに使用することができる。
【0023】
図1を参照する。
図1は、本願の実施例で提供されるシステムアーキテクチャの模式図である。
図1に示すように、該システムアーキテクチャは、ブロックチェーンネットワークであってもよい。ここで、ブロックチェーンネットワークは、コンセンサスネットワーク101と、同期ネットワーク102と、を含んでもよい。同期ネットワーク102内のノードは、同期ノードと呼ばれる。同期ノードは、主に業務の実行を行い、記帳コンセンサスに参加せず、身分認証によってコンセンサスネットワーク101からブロックデータを取得する。コンセンサスネットワーク101は、コアネットワークとも呼ばれる。コンセンサスネットワーク101内のノードは、コンセンサスノードと呼ばれる。コンセンサスノードは、全量のデータを持っている。ここで、コンセンサスネットワーク101と同期ネットワーク102は、異なるネットワーク環境に位置してもよく、通常、コンセンサスネットワーク101はプライベートネットワークに位置するが、同期ネットワーク102は共有ネットワークに位置し、両者はルーティング境界を介してやり取りする。
【0024】
また、
図1を参照すると、コンセンサスネットワーク101は、コンセンサスノード1011、コンセンサスノード1012、…、コンセンサスノード1013を含んでもよい。理解できるように、上記コンセンサスネットワーク101は、1つ又は複数のコンセンサスノードを含んでもよい。ここでは、コンセンサスノードの数を制限しない。同期ネットワーク102は、同期ノード1021、同期ノード1022、同期ノード1023、…、同期ノード1024、及び同期ノード1025を含んでもよい。理解できるように、上記同期ネットワーク102は、1つ又は複数の同期ノードを含んでもよい。ここでは、同期ノードの数を制限しない。
【0025】
各ノード(コンセンサスネットワーク101内のコンセンサスノード、及び同期ネットワーク102内の同期ノードを含めて)は、通常動作時に、クライアントから送信された取引データを受信することができ、受信された取引データに基づいてブロックを生成してから、ブロックをブロックチェーンに追加する処理を行う。各ノード間のデータのやり取りを保証するために、例えば、コンセンサスノード1011とコンセンサスノード1012との間にデータ接続が存在し、コンセンサスノード1011とコンセンサスノード1013との間にデータ接続が存在し、同期ノード1021と同期ノード1023との間にデータ接続が存在するといったように、各ノード間にデータ接続が存在してもよい。
【0026】
さらに、例えば、コンセンサスノード1011と同期ノード1022との間にデータ接続が存在し、コンセンサスノード1012と同期ノード1023との間にデータ接続が存在するといったように、コンセンサスネットワーク101と同期ネットワーク102との間にデータ接続が存在する。
【0027】
理解できるように、ノード間では、上記のデータ接続を介してデータ又はブロックの伝送を行うことができる。上記のノード間のデータ接続は、ノード識別子に基づいてもよい。ブロックチェーンネットワーク内の各ノードは、いずれも、それに対応するノード識別子を持っている。また、上記の各ノードは、いずれも、後続に他のノードのノード識別子に基づいて、取得されたデータ、又は、生成されたブロックを他のノードにブロードキャストできるように、自身と接続関係がある他のノードのノード識別子を記憶することができる。例えば、コンセンサスノード1011は、ノード識別子リストをメンテナンスしてもよい。表1に示すように、このノード識別子リストには、他のノードのノード名称及びノード識別子が保存される。
【0028】
【表1】
ここで、ノード識別子は、ネットワーク間で相互接続するためのプロトコル(IP:Internet Protocol)アドレスや他の任意1つの、ブロックチェーンネットワーク内のノードを識別できる情報であってもよい。表1では、IPアドレスのみを例に説明する。
【0029】
コンセンサスノード1011のノード識別子が117.116.156.425であると仮定すると、コンセンサスノード1011は、ノード識別子117.114.151.183によって、同期ノード1021にデータ同期要求を送信することができ、同期ノード1021は、ノード識別子117.116.156.425によって、該データ同期要求がコンセンサスノード1011から送信されたものであることを知ることができる。同様に、同期ノード1023は、ノード識別子117.116.156.425によって、コンセンサスノード1011に取引データAを送信することができ、コンセンサスノード1011は、ノード識別子119.250.485.362によって、該取引データAが同期ノード1023から送信されたものであることを知ることができる。他のノード間のデータ伝送も同様なので、いちいち説明しない。
【0030】
理解できるように、上記のデータ接続では、接続方式が限定されず、有線の通信方式によって直接又は間接的に接続してもよく、無線の通信方式によって直接又は間接的に接続してもよく、他の方式によって接続してもよい。本願はここで制限しない。
【0031】
ここで、
図1におけるコンセンサスノード1011、コンセンサスノード1012、…、コンセンサスノード1013、同期ノード1021、同期ノード1022、同期ノード1023、…、同期ノード1024、及び同期ノード1025は、携帯電話、タブレットコンピュータ、ノートパソコン、パームトップ型パソコン、スマートスピーカー、モバイルインターネットデバイス(MID:mobile internet device)、販売時点情報管理(POS:Point Of Sales)機器、ウェアラブルデバイス(例えば、スマートウォッチ、スマートブレスレットなど)などを含んでもよい。
【0032】
理解できるように、本願の実施例で提供されるブロックチェーンに基づくデータ処理方法は、コンピュータ機器によって実行されてもよく、コンピュータ機器は、端末又はサーバを含むが、これらに限定されない。上記サーバは、独立した物理サーバであってもよく、複数の物理サーバからなるサーバクラスタ又は分散型システムであってもよく、クラウドサービス、クラウドデータベース、クラウドコンピューティング、クラウド関数、クラウドストレージ、ネットワークサービス、クラウド通信、ミドルウェアサービス、ドメイン名サービス、セキュリティサービス、CDN、及びビッグデータや人工知能プラットフォームなどのベースクラウドコンピューティングサービスを提供するクラウドサーバであってもよい。上記端末は、スマートフォン、タブレットコンピュータ、ノートパソコン、デスクトップコンピュータ、スマートスピーカー、スマートウォッチなどであってもよいが、これらに限らない。端末とサーバは、有線又は無線の通信方式によって、直接又は間接的に接続されてもよい。本願はここで制限しない。
【0033】
説明の便宜上、本願は、ブロックの高さがXであるブロックをブロックXと名づけ、ブロックの高さがXであることをブロック高さXと記述し、Xは正の整数である。例えば、ブロックの高さが1であるブロックをブロック1と名づけ、ブロックの高さが1であることをブロック高さ1と記述し、ブロックの高さが98であるブロックをブロック98と名づけ、ブロックの高さが98であることをブロック高さ98と記述し、他のブロックの高さに対応するブロックの名づけも同様であり、ここではいちいち説明しない。
【0034】
上記の
図1から分かるように、ブロックチェーンネットワークは、コンセンサスネットワーク及び同期ネットワークを含むが、コンセンサスネットワーク内のコンセンサスノードは、固定されたものではなく、動的に増減されることがある。コンセンサスネットワークのコンセンサスプロセスは、コンセンサス周期に分割されてもよい。ここで、各々のコンセンサス周期では、固定されたコンセンサスノード集合がコンセンサスに参加し、他のブロックチェーンノードがデータ同期ノードとされる。
【0035】
従来技術では、1つの周期(即ち、任期)が終わるたびに、ブロックチェーンコンセンサスノード集合がブロックチェーンノードの中から新たなコンセンサスノードを改めて選択する。例えば、第1代のブロックチェーンコンセンサスノード集合内のコンセンサスノードは、第1コンセンサス周期におけるブロック高さ1、ブロック高さ2、…、ブロック高さnのそれぞれに対応するブロックに対してコンセンサス処理を行う。ブロック高さnに対応するブロックのブロックチェーンへの追加が成功すると、第2代のブロックチェーンコンセンサスノード集合が改めて選択され、第1代のブロックチェーンコンセンサスノード集合から第2代のブロックチェーンコンセンサスノード集合に切り替えられる。この場合、第2代のブロックチェーンコンセンサス委員会は、配置操作を完了するために、まず、第2コンセンサス周期に対するコンセンサス配置情報、例えば、コンセンサスブロック範囲及びコンセンサスノード集合を取得する必要があり、そして、ブロック同期を完了する必要もある。さらに、第2代のブロックチェーンコンセンサスノード集合内のコンセンサスノードは、第2コンセンサス周期におけるブロック高さn+1、ブロック高さn+2、…、ブロック高さ2nのそれぞれに対応するブロック対して、正常にコンセンサス処理を行うことが可能になる。
【0036】
本願の実施例によれば、現在のコンセンサス周期で生成されたブロック高さがコンセンサスノード集合切り替え条件を満たす場合、次のコンセンサス周期のコンセンサス業務に参加する、次のコンセンサス周期のコンセンサスノード集合を改めて選択する。
【0037】
また、本願では、次のコンセンサス周期のコンセンサスノード集合が選択された後、新たなコンセンサスノード集合に前のコンセンサス周期のコンセンサスノード集合のコンセンサス権限をすぐに引き継がせるのではなく、過渡期が与えられる。過渡期において、必要な準備作業を完了し、例えば、新たなコンセンサスノード集合は、分散鍵コンポーネントによって、新たなコンセンサス周期に対する鍵断片を生成する必要がある。
【0038】
図2を参照する。
図2は、本願の実施例で提供されるブロックチェーンに基づくデータ処理のシナリオの模式図である。
図2に示すように、ブロックチェーンノード集合201には、ブロックチェーンノード201a、ブロックチェーンノード202a、ブロックチェーンノード203a、…、ブロックチェーンノード206aが含まれ、第1コンセンサス周期(現在のコンセンサス周期と理解できる)において、ブロックチェーンノード206aは、第1コンセンサスノード集合20cに属する。ここで、第1コンセンサスノード集合20c内のコンセンサスノード(ブロックチェーンノード206aも含めて)は、第1コンセンサス周期において、ブロック1からブロック100に対してブロックチェーンへの追加処理を行うために使用することができる。上記第1コンセンサスノード集合は、第1コンセンサス周期に対応するブロックチェーンコンセンサスノード集合と理解でき、該ブロックチェーンコンセンサスノード集合は、ブロックチェーンにおけるブロックコンセンサスを担うノードであり、記帳者とも呼ばれる。
【0039】
また、
図2を参照すると、ブロックチェーンノード20aは、ブロックチェーンノード集合201内のいずれか1つのブロックチェーンノードであってもよい。ブロックチェーンノード20aには、周期管理コンポーネント20bが含まれてもよい。該周期管理コンポーネント20bは、第1コンセンサス周期のコンセンサスブロック範囲、例えば、
図2に示されたブロック1からブロック100を含んでもよく、第1コンセンサス周期に対するコンセンサスノード集合切り替え条件、例えば、
図2に示されたブロック98を含んでもよい。理解できるように、上記コンセンサスノード集合切り替え条件における「ブロック98」は、第1コンセンサスノード集合20cがブロック高さ98のブロックを生成することを指すことができ、ブロック高さ98のブロックがブロックチェーンへの追加に成功することを指すこともできる。ここでは、ブロック98のブロック状態を限定せず、実際の応用シナリオに応じて設定してもよい。
【0040】
本願の実施例では、第1コンセンサスノード集合20c内のあるコンセンサスノードがブロック98(即ち、
図2におけるブロック20f)を生成する場合を例に説明する。
図2に示すように、この場合、第1コンセンサス周期で生成されたブロックの高さ(即ち、ブロック高さ98)がコンセンサスノード集合切り替え条件を満たすため、ブロックチェーンノード20aは、第2コンセンサス周期に対応するコンセンサスノードの選択を開始する。ここで、第2コンセンサス周期のコンセンサスブロック範囲は、ブロック101からブロック200を含んでもよい。ブロックチェーンノード20aは、選択された、第2コンセンサス周期に対するコンセンサスノードを第2コンセンサスノード集合20dに追加する。第2コンセンサスノード集合20d内のコンセンサスノードが完全に決定されると、第1コンセンサスノード集合20cの生成中のブロック(例えば、
図2におけるブロック20g)を第1ブロックとして決定し、該第1ブロックに対応するブロック高さを第1ブロック高さとして決定する(第1ブロックがブロック99であると仮定すると、第1ブロック高さはブロック高さ99に等しい)。理解できるように、第1ブロックは、第1コンセンサスノード集合20cのコンセンサス中のブロック、又はブロックチェーンへの追加中のブロックであってもよい。ここでは、第1ブロックのブロック状態を限定せず、実際の応用シナリオに応じて設定してもよい。
【0041】
第1コンセンサスノード集合20c内のブロック生成ノードは、第2コンセンサスノード集合20dに対応する集合情報20eを第1ブロック(即ち、
図2におけるブロック20g)のブロックヘッダに追加し、第1ブロックのコンセンサスが採択されると、第1ブロックを同期ネットワークにブロードキャストしてもよい。。
【0042】
従来の方法とは異なり、本発明の実施例では、第1コンセンサス周期と第2コンセンサス周期の入れ替えにおいて、過渡ブロック高さ区間を作成する。該過渡ブロック高さ区間は、固定された区間であってもよい。例えば、ブロックチェーンノード20aは、まず、過渡ブロックの数を取得する。本願の実施例では、過渡ブロックの数が10である場合を例に説明する。第1ブロック高さ(例えば、ブロック高さ99)及び過渡ブロックの数(10個)を参照して、ブロックチェーンノード20aは、過渡ブロックがブロック100、ブロック101、ブロック102、…、ブロック109であると決定することができる。そのうち、ブロック100は、第1コンセンサス周期におけるブロックであり、ブロック101、ブロック102、…、ブロック109は、第2コンセンサス周期におけるブロックである。
【0043】
第1コンセンサスノード集合20c内のコンセンサスノード(ブロックチェーンノード206aを含めて)は、ブロック100のコンセンサスを行い、コンセンサスが採択されると、ブロック100をブロックチェーンに追加する。この場合、ブロックチェーンコンセンサスノード集合を第1コンセンサスノード集合20cから第2コンセンサスノード集合20dへ切り替えない。即ち、第2コンセンサス周期におけるブロック101、ブロック102、…、ブロック109に対して、依然として第1コンセンサスノード集合20c内のコンセンサスノードがコンセンサスを行う。第1コンセンサスノード集合20cが過渡ブロック(例えば、ブロック100、ブロック101、ブロック102、…、ブロック109)に対してコンセンサス処理を行うとともに、即ち、過渡期間内で、第2コンセンサスノード集合20d内のコンセンサスノード(ブロックチェーンノード201a及びブロックチェーンノード206aを含めて)は、第1ブロック(即ち、
図2におけるブロック20g)における集合情報20eに基づいて、第2コンセンサス周期に関連付けられた秘密鍵断片、例えば、
図2に例示された秘密鍵断片201h、秘密鍵断片202h、…を生成する。第1コンセンサスノード集合20cによるブロック109へのコンセンサスが採択されると、ブロックチェーンコンセンサスノード集合を第1コンセンサスノード集合20cから第2コンセンサスノード集合20dに切り替える。
【0044】
理解できるように、第2コンセンサス周期に関連付けられた秘密鍵断片の総数は、第2コンセンサスノード集合20d内のコンセンサスノードのノード総数に等しい。
【0045】
任意選択的に、該過渡ブロック高さ区間は、固定された区間ではなく、第1ブロック高さに基づいて決定されてもよい。例えば、ブロックチェーンノード20aは、第1ブロック(即ち、
図2におけるブロック20g)に基づいて、過渡開始ブロックを決定する。例えば、ブロック20gがブロック99であるため、過渡開始ブロックは、ブロック100である。第2コンセンサスノード集合20d内のコンセンサスノードは、いずれも、自分の秘密鍵断片を生成した場合、例えば、第2コンセンサスノード集合20d内のブロックチェーンノード201aが自分の秘密鍵断片201hを生成し、第2コンセンサスノード集合20d内のブロックチェーンノード206aが自分の秘密鍵断片202hを生成した場合(明らかに、第1コンセンサス周期に対する第1コンセンサスノード集合20c内のブロックチェーンノード206aの秘密鍵断片は、秘密鍵断片203hであり、第2コンセンサス周期に対するブロックチェーンノード206aの秘密鍵断片202hと同等ではない)、第2コンセンサスノード集合20d内の各コンセンサスノードは、通知の形で(例えば、
図2に例示された秘密鍵断片生成通知20i)、第2コンセンサス周期に関連付けられた秘密鍵断片で該秘密鍵断片に対して通知20iの署名を生成することにより、通知署名を取得してもよい。例えば、ブロックチェーンノード206aは、秘密鍵断片202hで自身の秘密鍵断片に対して通知を生成して署名することにより、ブロックチェーンノード206aに対する通知署名を取得する。第2コンセンサスノード集合20d内の各コンセンサスノードは、いずれも、通知署名が付されている秘密鍵断片生成通知20iを第1コンセンサスノード集合20c、例えば、
図2に例示された第1コンセンサスノード集合20c内のブロックチェーンノード206aにブロードキャストして、第2コンセンサスノード集合20d内のコンセンサスノードの秘密鍵断片が生成されたことを第1コンセンサスノード集合20cに知らせる。
【0046】
その後、第1コンセンサスノード集合20c内のコンセンサスノード(ブロックチェーンノード206aを含めて)が上記通知署名の署名検証を行い、署名検証が合格すると、第1コンセンサスノード集合20cの処理中のブロックは、過渡終了ブロックであってもよい。過渡期間は、即ち、過渡開始ブロック(例えば、上記の例におけるブロック100)に対するコンセンサスから過渡終了ブロックのコンセンサスの採択までの期間である。例えば、ブロックチェーンシステムは、過渡ブロックの数が10に等しいように設定してもよい。このように、ブロックチェーンシステムは、ブロック100、ブロック101、ブロック102、…、ブロック109をデフォルトの過渡ブロックとするが、第1コンセンサスノード集合20cのコンセンサス対象ブロック(例えば、ブロック103)には、第2コンセンサスノード集合20d内のコンセンサスノードから送信された通知署名が含まれ、かつ、ブロック103のコンセンサスが採択されるので、ブロックチェーンコンセンサスノード集合を第1コンセンサスノード集合20cから第2コンセンサスノード集合20dに切り替えることができる。即ち、第1コンセンサスノード集合20cがブロックチェーンコンセンサスノード集合から離脱し、第2コンセンサスノード集合20d内のコンセンサスノードがブロックチェーンコンセンサスノード集合に参加し、さらに第2コンセンサス周期におけるブロックのコンセンサス権限を持つようにすることができる。その後、第2コンセンサスノード集合20d内のコンセンサスノードは、ブロック104から、第2コンセンサス周期におけるブロックに対してコンセンサス業務を実行する。
【0047】
上記のように、過渡期間内で、第2コンセンサスノード集合20d内のコンセンサスノードには、第2コンセンサス周期に関連付けられた秘密鍵断片が生成されているので、ブロックチェーンコンセンサスノード集合を第1コンセンサスノード集合20cから第2コンセンサスノード集合20dへ切り替える際に、第2コンセンサスノード集合20dが第2コンセンサス周期に関連付けられた秘密鍵断片を生成することを待つ必要がなく、第2コンセンサスノード集合20d内のコンセンサスノードがリアルタイムにコンセンサス権限を持つことが可能になる。
【0048】
上記から分かるように、本願の実施例では、ブロックチェーンコンセンサスノード集合を交替して切り替える方法が提供されている。この方法は、新たに選択されたコンセンサスノード集合(即ち、上記の第2コンセンサスノード集合20d)がブロックチェーンネットワークの記帳権限をスムーズに引き継げることを保証し、古いコンセンサスノード集合(即ち、上記の第1コンセンサスノード集合20c)をブロックチェーンネットワークの記帳権限から順調に離脱させ、さらにブロックチェーン業務サービスの連続性や適時性を向上させることができる。
【0049】
また、コンセンサスノード集合に対応する集合情報に基づいて、各コンセンサスノードの秘密鍵断片を生成する。そして、コンセンサスノード集合が周期性という特徴を持つため(例えば、
図2におけるブロックチェーンノード206aは、第1コンセンサス周期に対する秘密鍵断片203hが、第2コンセンサス周期に対する秘密鍵断片202hと同等ではない)、集合情報に基づいて生成された秘密鍵断片も周期性を持ち、固定されたものではなくなる。これにより、秘密鍵の漏洩によるセキュリティ上の隠れた危険が回避されるため、ブロックチェーン業務サービスのセキュリティを向上させることができる。
【0050】
さらに、
図3を参照する。
図3は、本願の実施例で提供されるブロックチェーンに基づくデータ処理方法の流れの模式図である。該ブロックチェーンに基づくデータ処理方法は、コンピュータ機器によって実行されてもよい。該コンピュータ機器は、第1コンセンサスノード集合内のいずれか1つのコンセンサスノードを含んでもよく、第2コンセンサスノード集合内のいずれか1つのコンセンサスノードを含んでもよく、上記の第1コンセンサスノード集合に属するいずれか1つのコンセンサスノードと、第2コンセンサスノード集合に属するいずれか1つのコンセンサスノードとを含んでもよい。
図3に示すように、該ブロックチェーンに基づくデータ処理方法は、以下のステップを含んでもよい。
【0051】
ステップS101では、第1コンセンサス周期で生成されたブロック高さがコンセンサスノード集合切り替え条件を満たす場合、第2コンセンサス周期に対応する第2コンセンサスノード集合の選択を開始し、第2コンセンサスノード集合が選択されたときに生成されたブロックの高さを第1ブロック高さとして決定し、第1コンセンサス周期における最大ブロック高さに対応するブロックは、第2コンセンサス周期における最小ブロック高さに対応するブロックの直前のブロックである。
【0052】
具体的には、第1コンセンサス周期で生成された最大ブロック高さを取得し、第1コンセンサス周期に対するコンセンサスノード集合切り替え条件を取得し、最大ブロック高さとコンセンサスノード集合切り替え条件とをマッチングし、最大ブロック高さとコンセンサスノード集合切り替え条件とのマッチングが成功した場合、ブロックチェーンノード集合内の各ブロックチェーンノードに、第2コンセンサス周期に対する、コンセンサスインデックスが含まれるインデックスを割り当て、コンセンサスインデックスを持つブロックチェーンノードを、第2コンセンサス周期に対応する第2コンセンサスノード集合に追加する。
【0053】
図4を併せて参照する。
図4は、本願の実施例で提供されるブロックチェーンに基づくデータ処理のシナリオの模式図である。
図4に示すように、現在、第1コンセンサス周期の生成済みブロック40dには、ブロック1(即ち、
図4におけるブロック401d)、ブロック2(即ち、
図4におけるブロック402d)、…、ブロック98(即ち、
図4におけるブロック498d)が含まれてもよい。即ち、現在、最大となるブロック高さは、ブロック98に対応するブロック高さ98である。このため、ブロック高さ98が上記の最大ブロック高さである。ブロックチェーンノード集合40cには、ブロックチェーンノード401c、ブロックチェーンノード402c、ブロックチェーンノード403c、…、ブロックチェーンノード406c(第1コンセンサスノード集合4c内のコンセンサスノードである)、及び、第1コンセンサスノード集合4c内の他のコンセンサスノードが含まれてもよい。
【0054】
ブロックチェーンノード40aは、ブロックチェーンノード集合40c内のいずれか1つのブロックチェーンノードであってもよい。ブロックチェーンノード40aには、周期管理コンポーネント40bが含まれてもよい。
図4に示すように、該周期管理コンポーネント40bは、第1コンセンサス周期のコンセンサスブロック範囲、例えば、
図4に示されたブロック1からブロック100を含んでもよく、第1コンセンサス周期に対するコンセンサスノード集合切り替え条件(
図4における第1切り替え条件とも呼ばれる)を含んでもよい。上記の
図2に対応する実施例におけるコンセンサスノード集合切り替え条件についての詳細な説明を参照すればよい。ここでは、これ以上の説明を省略する。
【0055】
該周期管理コンポーネント40bには、第1コンセンサス周期に対する第1コンセンサスインデックスが含まれてもよい。ここで、本願におけるインデックスは、ノードインデックス識別子であり、ブロックチェーンノード自身のノード識別子(例えば、上記の表1に示されたノード識別子)と異なる。第1コンセンサスインデックスは、第1コンセンサスノード集合4c内のコンセンサスノード(ブロックチェーンノード406cを含めて)のインデックスを表すためのものである。
図4に示すように、第1コンセンサスインデックスには、インデックス001、…、インデックス010が含まれてもよい。そのうち、ブロックチェーンノード406cのインデックスは、インデックス001である。理解できるように、異なるコンセンサス周期において、同一のブロックチェーンノードのインデックスは、変化する可能性があるので、異なるコンセンサス周期において、同一のインデックスに対応するコンセンサスノードは、異なる可能性がある。
【0056】
該周期管理コンポーネント40bは、自ノード(即ち、ブロックチェーンノード40a)が次のブロックチェーンコンセンサスノード集合内のノードとして選択されたか否かを検証することができる。自ノードは、次のブロックチェーンコンセンサスノード集合内のノードとして選択された場合、第2コンセンサスノード集合40eに追加される。周期管理コンポーネント40bは、指定ノードが、ブロックプロポーザ、即ち、ブロック生成ノードであるか否か、コンセンサスメッセージ署名などの機能を持つか否かを検証することもできる。本願の実施例において、周期管理コンポーネント40bは、ブロックチェーンコンセンサスノード集合過渡期をメンテナンスすることができる。該過渡期は、連続するブロックで表される。例えば、新たなブロックチェーンコンセンサスノード集合(例えば、第2コンセンサスノード集合40e)が選択されると、先代のブロックチェーンコンセンサスノード集合(例えば、第1コンセンサスノード集合4c)は、10個のブロックのコンセンサス処理を継続する。その後、新たなブロックチェーンコンセンサスノード集合は、記帳を引き継ぐ。このとき、先代のブロックチェーンコンセンサスノード集合は、記帳から離脱する。該10個のブロックが過渡期内の過渡ブロックである。
【0057】
また、
図4を参照すると、ブロックチェーンノード40aは、周期管理コンポーネント40bから、第1コンセンサス周期に対するコンセンサスノード集合切り替え条件(即ち、第1切り替え条件)を取得し、そして、最大ブロック高さ(即ち、
図2におけるブロック498dのブロック高さであり、ブロック高さ98と仮定される)とコンセンサスノード集合切り替え条件とをマッチングする。第1切り替え条件がブロック高さ99である場合、最大ブロック高さと第1切り替え条件とのマッチングが失敗し、ブロックチェーンノード40aは、次のブロックの生成を待つ。第1切り替え条件がブロック高さ98である場合、最大ブロック高さと第1切り替え条件とのマッチングが成功する。
図4に示すように、ブロックチェーンノード40aは、ブロックチェーンノード集合40c内の各ブロックチェーンノードに、第2コンセンサス周期に対するインデックスを割り当てる。第2コンセンサス周期に対して、ブロックチェーンノード405cのインデックスがインデックス001であり、ブロックチェーンノード406cのインデックスがインデックス020であると仮定する。第2コンセンサスインデックス(即ち、第2コンセンサス周期に対するコンセンサスインデックス)には、インデックス001が含まれ、インデックス020が含まれないと仮定すると、
図4に示すように、ブロックチェーンノード405cは、第2コンセンサスノード集合40eに追加されるが、ブロックチェーンノード406cは、第2コンセンサスノード集合40eに追加されない。
【0058】
また、
図4を参照すると、ブロックチェーンノード40aは、第1コンセンサス周期の生成済みブロック40fにおいてブロック99(
図4におけるブロック499dと同等)を生成する際に第2コンセンサスノード集合40eを決定したので、ブロック高さ99を第1ブロック高さとして決定する。該ブロック499dは、即ち、第1ブロックであり、
図2におけるブロック20gと同等である。
【0059】
ステップS102では、第2コンセンサスノード集合に対応する集合情報を、第1ブロック高さに対応するブロックに追加して、第1ブロックを生成し、ブロックチェーンネットワーク内で第1ブロックをブロードキャストすることにより、第2コンセンサスノード集合内のコンセンサスノードに、過渡コンセンサス期間内で第1ブロックにおける集合情報に基づいて第2コンセンサス周期に関連付けられた秘密鍵断片を生成させ、過渡コンセンサス期間とは、第1コンセンサス周期に対応する第1コンセンサスノード集合が、過渡ブロック高さ区間に属するブロックに対してコンセンサス処理を行うために消費される時間を指し、過渡ブロック高さ区間に含まれるブロック高さは、いずれも、第1ブロック高さより大きい。
【0060】
具体的には、コンセンサスノードが第2コンセンサスノード集合に属する場合、第1ブロックにおける集合情報を取得し、分散型鍵コンポーネントによって、集合情報に関連付けられた秘密整数を生成し、秘密整数に基づいて、ターゲットローカル公開鍵を生成し、秘密整数に基づいて、少なくとも2つの秘密シェアを生成し、少なくとも2つの秘密シェアの総数は、第2コンセンサスノード集合内のコンセンサスノードのノード総数に等しい。第2コンセンサスノード集合内のコンセンサスノードにコンセンサスノードGcが含まれ(cは、正の整数であり、かつ、ノード総数以下である)、少なくとも2つの秘密シェアに秘密シェアMcが含まれる場合、ターゲットローカル公開鍵及び秘密シェアMcをコンセンサスノードGcに送信し、コンセンサスノードGcから送信されたローカル公開鍵Uc及び秘密シェアEcを取得し(ローカル公開鍵Uc及び秘密シェアEcは、いずれも、コンセンサスノードGcに対応する秘密整数に関連付けられたものである)、秘密シェアEcの正当性検証を行い、正当性検証結果を第2コンセンサスノード集合内のコンセンサスノードにブロードキャストし、秘密シェアEc及び秘密シェアMcに基づいて、第2ターゲット秘密鍵断片を生成し、ターゲットローカル公開鍵及びローカル公開鍵Ucに基づいて、第2コンセンサスノード集合に関連付けられたグローバル公開鍵を生成する。
【0061】
図5を併せて参照する。
図5は、本願の実施例で提供されるブロックチェーンに基づくデータ処理のシナリオの模式図である。
図5に示すように、ブロックチェーンノード集合40cには、ブロックチェーンノード401c、ブロックチェーンノード402c、ブロックチェーンノード403c、…、ブロックチェーンノード406c(第1コンセンサスノード集合4c内のコンセンサスノードである)、第1コンセンサスノード集合4c内の他のコンセンサスノード、ブロックチェーンノード50b(第2コンセンサスノード集合40e内のコンセンサスノードである)、及び第2コンセンサスノード集合40e内の他のコンセンサスノード(ブロックチェーンノード405cを含めて)が含まれてもよい。ここで、
図5におけるブロックチェーンノード50aは、第1コンセンサスノード集合4c内のいずれか1つのコンセンサスノードであってもよい。また、ブロックチェーンノード50aは、ブロック生成ノードとして、ブロック499dを生成する。ブロック499dは、
図4におけるブロック499dと同等であり、即ち、第2コンセンサスノード集合40eが選択されたときに対応するブロック(即ち、第1ブロック)である。ここで、ブロック499dは、ブロックヘッダとブロックボディとを含み、ブロックヘッダには、現在のブロックの入力情報の特徴値、親ブロックのブロックヘッダの特徴値(
図5における親ブロックのハッシュ値と同等)、バージョン番号、タイムスタンプ、及び難しさ値などが格納されてもよく、ブロックボディには、入力情報が格納されている。本願の実施例によれば、第2コンセンサスノード集合40eに対応する集合情報も、ブロック499dにおけるブロックヘッダに格納する。そして、ブロックチェーンノード50aは、ブロック499d(即ち、上記の第1ブロック)をブロックチェーンネットワーク内でブロードキャストする。
【0062】
本願の実施例では、ブロックチェーンノード50bが第2コンセンサスノード集合40e内のいずれか1つのコンセンサスノードである場合を例にして、ブロックチェーンノード50bが、過渡期間内でブロック499dを取得すると、まず、第1コンセンサスノード集合4cに関連付けられたグローバル公開鍵で、ブロック499dに付されている集約署名の署名検証を行い、署名検証結果が署名検証合格結果である場合、ブロック499dにおける集合情報に基づいて、第2コンセンサス周期に関連付けられた秘密鍵断片を生成する。ここで、ブロック499dに付されている集約署名は、第1コンセンサスノード集合4c内のコンセンサスノードのそれぞれに対応する署名シェアに基づいて生成されたものである。即ち、第1コンセンサスノード集合4c内のコンセンサスノードは、それぞれ、第1コンセンサス周期に関連付けられた秘密鍵断片でブロック499dを署名することにより、自分の署名シェアを取得する。そして、第1コンセンサスノード集合4c内のコンセンサスノードのそれぞれに対応する署名シェアの集約処理を行うことにより、上記のブロック499dに付されている集約署名を取得する。
【0063】
理解できるように、ブロックチェーンノード50aとブロックチェーンノード50bは、同一のブロックチェーンノードでなくてもよい。即ち、ブロックチェーンノード50aは、第1コンセンサスノード集合4c内のコンセンサスノードであるが、第2コンセンサスノード集合4e内のコンセンサスノードではない。任意選択的に、ブロックチェーンノード50aとブロックチェーンノード50bは、同一のブロックチェーンノードであってもよい。この場合、ブロックチェーンノード50aは、第1コンセンサスノード集合4c内のコンセンサスノードであるだけでなく、第2コンセンサスノード集合4e内のコンセンサスノードでもある。
【0064】
上記から分かるように、コンセンサスネットワークにコンセンサスノードが動的に参加したり離脱したりすると、コンセンサスネットワークのコンセンサスノード集合は、それに応じて変化する。即ち、第1コンセンサスノード集合は、第2コンセンサスノード集合と同等ではない。このため、第1コンセンサスノード集合及び第2コンセンサスノード集合の両方にあるいずれかのブロックチェーンノードは、第1コンセンサスノード集合に関連付けられた秘密鍵断片と、第2コンセンサスノード集合に関連付けられた秘密鍵断片とが異なる。例えば、
図2に例示されたブロックチェーンノード206aは、第1コンセンサスノード集合20cに関連付けられた秘密鍵断片203hと、第2コンセンサスノード集合20dに関連付けられた秘密鍵断片202hとが異なる。このため、分散型鍵コンポーネントは、新たな集合情報に基づいて、秘密鍵断片を改めて計算する必要がある。
【0065】
ブロックチェーンコンセンサスノード集合過渡期において、古いコンセンサスノード集合(例えば、
図5における第1コンセンサスノード集合4c)は、コンセンサス及びブロック生成の権限を持ち続け、新たに選択されたコンセンサスノード集合(例えば、
図5における第2コンセンサスノード集合40e)に対応する集合情報を処理中のブロックのデータに追加する。新たなコンセンサスノード集合(即ち、第2コンセンサスノード集合40e)が該ブロック(即ち、
図5におけるブロック499dと同等である第1ブロック)に同期されると、新たなコンセンサスノード集合に対応する集合情報を分散型鍵コンポーネントに通知する。分散型鍵コンポーネントは、集合情報を受信すると、DKGプロトコルの実行を開始して、各自の鍵断片を計算する。
【0066】
本願の実施例では、まず、信頼媒体を承認する必要がない分散型鍵コンポーネントを設計する。分散型鍵コンポーネントは、コンセンサスネットワーク内の参加者の秘密鍵断片のセキュリティ、及び、集約署名を検証するためのグローバル公開鍵の有効性を保証することができる。コンセンサスネットワーク内のコンセンサスノードが既知である場合(例えば、第1コンセンサスノード集合4c及び第2コンセンサスノード集合40e)、分散型鍵コンポーネントが参加者として秘密鍵断片を生成する流れは、以下の通りである。
【0067】
1、コンセンサスネットワーク内の各コンセンサスノードは、いずれも、コンセンサスモジュールコンポーネント及び分散型鍵コンポーネントを有し、各コンセンサスノードのコンセンサスモジュールコンポーネントは、自ノードの分散型鍵コンポーネントにイベントを登録し、該イベントは、自ノードの秘密鍵断片の生成状態を監視するためのものである。コンセンサスノードが秘密鍵断片を生成することの説明及び理解を容易にするために、本願の実施例では、第2コンセンサスノード集合40e内のコンセンサスノード(例えば、
図5におけるブロックチェーンノード50b及びブロックチェーンノード405c)を例に説明する。他のコンセンサスノードが自身の秘密鍵断片を生成するプロセスは、以下のプロセスを参照すればよい。
【0068】
2、ブロックチェーンノード50b(注意すべきものとして、ここでのブロックチェーンノード50bは、特に第2コンセンサスノード集合40e内のいずれか1つのコンセンサスノードを指し、コンセンサス権限及びブロック生成権限を持つ)の分散型鍵コンポーネントは、自分に属する1つの秘密整数をランダムに生成してから、DKGプロトコルに従って、コンセンサスネットワークに該秘密整数を共有する。該プロセスは、
図6を併せて参照すればよい。
図6は、本願の実施例で提供されるブロックチェーンに基づくデータ処理方法の流れの模式図である。ここで、
図6におけるノード1、ノード2、ノード3、及びノード4は、いずれも、第2コンセンサスノード集合40e内のコンセンサスノードである。理解できるように、第2コンセンサスノード集合40e内のいずれのコンセンサスノードも下記のプロセスを実行する。本願の実施例では、
図6の美観及び可視性のために、ノード1がブロックチェーンノード50bを表し、ノード2がブロックチェーンノード405cを表すことのみを例に説明する。
図6に示すように、該方法は、準備段階、配信段階、ブロードキャスト段階、及び計算段階を含んでもよく、各段階の役割は、以下の通りである。
【0069】
a、準備段階において、一方で、ブロックチェーンノード50bは、秘密整数に基づいて、ターゲットローカル公開鍵50cを生成し、他方で、ブロックチェーンノード50bは、検証可能な秘密共有スキームに基づいて、自分の秘密整数に対して、コンセンサスノードに共有する秘密シェア50dを計算する。
図5に示すように、秘密シェア50dには、秘密シェア501d、…、秘密シェア502dが含まれてもよく、秘密シェア50dの総数は、コンセンサスネットワーク内のコンセンサスノードのノード総数に等しい。上記の検証可能な秘密共有スキームは、本願の実施例で限定されず、例えば、Pedersenによって提案された、情報理論に安全な非相互作用検証可能な秘密共有スキーム(Pedersen-VSS:Pedersen-Verifiable Secret Sharing)、Feldmanによって提案された、Feldman-Verifiable Secret Sharing(Feldman-VSS)スキームのような任意の1つのスキームであってもよい。
【0070】
b、配信段階において、ブロックチェーンノード50bは、準備段階で計算された秘密シェアと、ターゲットローカル公開鍵50cとを、対応するコンセンサスノードに配信し、例えば、秘密シェア502dを自身に配信し、秘密シェア501dをブロックチェーンノード405cに配信する(ここでのブロックチェーンノード405cは、特に、第2コンセンサスノード集合40e内のいずれか1つのコンセンサスノードを指し、コンセンサス権限及びブロック生成権限を持つ)。
【0071】
c、ブロードキャスト段階において、各コンセンサスノードのいずれも、他のコンセンサスノードから配信された秘密シェア及びそれに対応するターゲットローカル公開鍵を受信した後、例えば、ブロックチェーンノード405cが、ブロックチェーンノード50bから配信された秘密シェア501d及びターゲットローカル公開鍵50c、…、自身から配信された秘密シェア50e及びターゲットローカル公開鍵50gを取得した後、Pedersen-VSSスキームに基づき、ブロックチェーンノード405cは、取得された秘密シェアの有効性をそれぞれ検証し、そして、検証結果を第2コンセンサスノード集合40e内の他のコンセンサスノード、例えば、ブロックチェーンノード50bにブロードキャストする。
【0072】
d、計算段階において、一方で、Pedersen-VSSスキームに基づき、ブロックチェーンノード405cは、全てのコンセンサスノードのそれぞれから自身に配信された秘密シェア(例えば、
図5に例示された秘密シェア501d及び秘密シェア50e)を入力として、自身が持っている秘密鍵断片、例えば、
図5に例示された秘密鍵断片50fを計算し、他方で、ブロックチェーンノード405cは、自身で取得されたターゲットローカル公開鍵(例えば、
図5に例示されたターゲットローカル公開鍵50c及びターゲットローカル公開鍵50g)を入力として、自分のグローバル公開鍵50hを計算する。ここで、第2コンセンサスノード集合40e内の各コンセンサスノードのそれぞれに対応するグローバル公開鍵は同じである。
【0073】
3、ブロックチェーンノード405cの分散型鍵コンポーネントは、自分の秘密鍵断片が生成されたことを発見すると、コンセンサスモジュールコンポーネントで登録されたイベントに通知信号を送信して、秘密鍵断片の準備ができたことを知らせる。
【0074】
4、コンセンサスモジュールコンポーネントは、通知を受信すると、生成された秘密鍵断片を取得し、それを後続のコンセンサス投票署名に使用する。これと同時に、コンセンサスモジュールコンポーネントは、コンセンサス権限を起動することができる。
【0075】
ステップS103では、第2コンセンサスノード集合内のコンセンサスノードから送信された秘密鍵断片生成通知を取得し、秘密鍵断片生成通知には、通知署名が付されており、通知署名は、第2コンセンサスノード集合内のコンセンサスノードが第2コンセンサス周期に関連付けられた秘密鍵断片で通知を生成して署名することにより生成されたものである。
【0076】
具体的には、第2コンセンサスノード集合内の各コンセンサスノードは、自分の秘密鍵断片を計算した後、通知(即ち、秘密鍵断片生成通知)の形で署名し、即ち、秘密鍵断片で1つの秘密鍵断片に対して通知を生成して署名し、そして、通知署名が付されている秘密鍵断片生成通知を第1コンセンサスノード集合内のコンセンサスノードにブロードキャストし、即ち、自分の秘密鍵断片が生成されたことを第1コンセンサスノード集合に知らせる。
【0077】
図7を併せて参照する。
図7は、本願の実施例で提供されるブロックチェーンに基づくデータ処理のシナリオの模式図である。
図7に示すように、第2コンセンサスノード集合内のコンセンサスノード(例えば、
図7に例示されたブロックチェーンノード405c)は、まず、秘密鍵断片生成通知を生成し、次に、自分の秘密鍵断片50fで該秘密鍵断片に対して通知を生成して署名することにより、通知署名50iを取得し、そして、通知署名50iが付されている秘密鍵断片生成通知を第1コンセンサスノード集合内のコンセンサスノード、例えば、
図7に例示されたブロックチェーンノード70aにブロードキャストする。
【0078】
ステップS104では、通知署名に基づいて、第2コンセンサスノード集合内のコンセンサスノードの、第2コンセンサス周期に対するコンセンサス権限を決定する。
【0079】
具体的には、第2コンセンサスノード集合には、コンセンサスノードGaが含まれ(aは、正の整数であり、かつ、第2コンセンサスノード集合内のコンセンサスノードのノード総数以下である)、通知署名には、コンセンサスノードGaに対する通知署名Taが含まれる。第2コンセンサスノード集合に関連付けられたグローバル公開鍵で通知署名Taの署名検証を行うことにより、第1署名検証結果Jaを取得し、第1署名検証結果Jaには、署名検証失敗結果又は署名検証合格結果が含まれる。第1署名検証結果Jaが署名検証失敗結果である場合、通知署名Taを削除し、第1署名検証結果Jaが署名検証合格結果である場合、通知署名Taを正当署名集合に追加する。正当署名集合に基づいて、第2コンセンサスノード集合内のコンセンサスノードの、第2コンセンサス周期に対するコンセンサス権限を決定する。
【0080】
ここで、秘密鍵断片生成通知には、コンセンサスノードGaから送信された秘密鍵断片生成通知Zaが含まれ、第1署名検証結果Jaを取得する具体的なプロセスは、第2コンセンサスノード集合に関連付けられたグローバル公開鍵で通知署名Taを復号することにより、第1デジタルダイジェストを取得するステップと、秘密鍵断片生成通知Zaの第2デジタルダイジェストを取得し、第1デジタルダイジェストと第2デジタルダイジェストとを比較するステップと、第1デジタルダイジェストと第2デジタルダイジェストが同じである場合、第1署名検証結果Jaが署名検証合格結果であると決定するステップと、第1デジタルダイジェストと第2デジタルダイジェストが異なる場合、第1署名検証結果Jaが署名検証失敗結果であると決定するステップと、を含んでもよい。
【0081】
ここで、正当署名集合に基づいて、第2コンセンサスノード集合内のコンセンサスノードの、第2コンセンサス周期に対するコンセンサス権限を決定する具体的なプロセスは、正当署名集合内の通知署名の署名総数を集計するステップと、ノード総数と署名総数との第1数量比率を決定し、第1数量比率と第1数量比率閾値とを比較するステップと、第1数量比率が第1数量比率閾値より小さい場合、第2コンセンサスノード集合内のコンセンサスノードが第2コンセンサス周期に対するコンセンサス権限を持たないと決定するステップと、第1数量比率が第1数量比率閾値以上である場合、第2コンセンサスノード集合内のコンセンサスノードが第2コンセンサス周期に対するコンセンサス権限を持つと決定するステップと、を含んでもよい。
【0082】
第1コンセンサスノード集合内のコンセンサスノードは、上記秘密鍵断片生成通知を受信すると、新たなグローバル公開鍵(第2コンセンサス周期に関連付けられたグローバル公開鍵と同等であり、第1コンセンサス周期に関連付けられたグローバル公開鍵と同等ではない)に基づいて、通知署名の正当性をチェックし、不正である場合、それを削除し、正当である場合、それをバッファリングする。第2コンセンサスノード集合内のコンセンサスノードのそれぞれから送信された秘密鍵断片生成通知を十分に受信した後、第1コンセンサスノード集合内のブロック生成ノードは、集約署名アルゴリズムによって正当な通知署名の集約処理を行うことにより、集約署名を取得し、該集約署名を処理中のブロックにパックし、第1コンセンサスノード集合内の他のコンセンサスノードに、次のコンセンサス周期のコンセンサスノード集合(即ち、第2コンセンサスノード集合)の準備ができたことを知らせる。第1コンセンサスノード集合が該ブロックに対してコンセンサスを達成すると、第1コンセンサスノード集合がコンセンサスから離脱することができ、第2コンセンサスノード集合がコンセンサス権限を引き継ぐ。
【0083】
図7を併せて参照すると、第1コンセンサスノード集合内のいずれか1つのコンセンサスノードは、第2コンセンサスノード集合内のいずれか1つのコンセンサスノードから送信された秘密鍵断片生成通知を取得した後、以下のステップを実行する。ここで、
図7におけるブロックチェーンノード70aは、第1コンセンサスノード集合内のいずれか1つのコンセンサスノードを示し、
図7におけるブロックチェーンノード405cは、第2コンセンサスノード集合内のいずれか1つのコンセンサスノードを示す。ブロックチェーンノード70aは、第2コンセンサスノード集合に関連付けられたグローバル公開鍵50h(
図5におけるグローバル公開鍵50hと同等)で通知署名50iを復号することにより、第1デジタルダイジェストを取得する。ハッシュアルゴリズムによって、秘密鍵断片生成通知の第2デジタルダイジェストを取得してもよい。ブロックチェーンノード70aは、第1デジタルダイジェストと第2デジタルダイジェストとを比較する。第1デジタルダイジェストと第2デジタルダイジェストが異なる場合、通知署名50iに対する第1署名検証結果が署名検証失敗結果であると決定し、この場合、ブロックチェーンノード70aは、通知署名50iを削除する。第1デジタルダイジェストと第2デジタルダイジェストが同じである場合、通知署名50iに対する第1署名検証結果が署名検証合格結果であると決定し、この場合、ブロックチェーンノード70aは、通知署名50iを正当署名集合70bに追加する。
【0084】
さらに、
図8を併せて参照する。
図8は、本願の実施例で提供されるブロックチェーンに基づくデータ処理のシナリオの模式図である。
図8に示すように、第1コンセンサスノード集合内のコンセンサスノードは、正当署名集合70c内の通知署名の署名総数を集計する。ここで、
図8に例示された正当署名集合70cには、通知署名50i、…、通知署名501iが含まれ、通知署名50iは、第2コンセンサスノード集合40e(
図5における第2コンセンサスノード集合40eと同等)内のコンセンサスノード(ブロックチェーンノード405cと同等)の通知署名であってもよく、通知署名501iは、第2コンセンサスノード集合40e内のコンセンサスノード(ブロックチェーンノード50bと同等)の通知署名であってもよい。第1コンセンサスノード集合4c内のコンセンサスノードは、ノード総数と署名総数との第1数量比率を決定する。理解できるように、署名総数がノード総数以下であるため、第1数量比率が1以下である。第1数量比率と第1数量比率閾値とを比較する。第1数量比率が0.9であると仮定すると、第1数量比率閾値が0.95に等しい場合、第1数量比率が第1数量比率閾値より小さいと決定する。さらに、第2コンセンサスノード集合40e内のコンセンサスノードが第2コンセンサス周期に対するコンセンサス権限を持たず、即ち、依然として第1コンセンサスノード集合内のコンセンサスノードがコンセンサス業務を実行すると決定することができる。第1数量比率閾値が0.85に等しい場合、第1数量比率が第1数量比率閾値より大きいため、第2コンセンサスノード集合内のコンセンサスノードが第2コンセンサス周期に対するコンセンサス権限を持つと決定することができる。
【0085】
本願の実施例では、コンセンサスネットワーク内のコンセンサスノードが動的に増減する場合、集約署名分散型鍵システムを自動的に更新することができ、コンセンサスサービスを停止する必要がない。また、集約署名方法は、複数のコンセンサスノードが共同で参加する分散型鍵システムを採用し、全てのコンセンサスノードが署名用の秘密鍵断片を予測できないため、少数のノードの悪行を防ぐことができる。
【0086】
上記から分かるように、過渡ブロック高さ区間によって、本願では、第1コンセンサスノード集合から第2コンセンサスノードへ切り替える際に、第2コンセンサスノード集合内のコンセンサスノードが第2コンセンサス周期に関連付けられた秘密鍵断片を生成することを待つ必要がなくなることができる。これにより、第2コンセンサスノード集合内のコンセンサスノードがより円滑にコンセンサス権限を持つようにし、コンセンサスノード集合を切り替える際に、ブロックのコンセンサスが長時間中断されることを避けることができる。このため、本願は、ブロックチェーン業務サービスの連続性や適時性を向上させることができる。
【0087】
また、本願における第2コンセンサス周期に関連付けられた秘密鍵断片は、第2コンセンサスノード集合に対応する集合情報に関連付けられたものである。即ち、第1コンセンサス周期における署名用の秘密鍵断片(第1コンセンサスノード集合に対応する集合情報に関連付けられたものである)と、第2コンセンサス周期における署名用の秘密鍵断片とが異なる。このため、本願は、ブロックチェーン業務サービスのセキュリティを向上させることができる。
【0088】
さらに、
図9を参照する。
図9は、本願の実施例で提供されるブロックチェーンに基づくデータ処理方法の流れの模式図である。該ブロックチェーンに基づくデータ処理方法は、コンピュータ機器によって実行されてもよい。該コンピュータ機器は、第1コンセンサスノード集合内のいずれか1つのコンセンサスノードを含んでもよく、第2コンセンサスノード集合内のいずれか1つのコンセンサスノードを含んでもよく、上記の第1コンセンサスノード集合に属するいずれか1つのコンセンサスノードと、第2コンセンサスノード集合に属するいずれか1つのコンセンサスノードとを含んでもよい。
図9に示すように、該ブロックチェーンに基づくデータ処理方法は、ステップS101からステップS104に加えて、以下のステップをさらに含む。
【0089】
ステップS205では、第2コンセンサスノード集合内のコンセンサスノードが第2コンセンサス周期に対するコンセンサス権限を持つ場合、通知署名の集約処理を行うことにより、第1集約署名を取得する。
【0090】
具体的には、第2コンセンサスノード集合内のコンセンサスノードのそれぞれから送信された秘密鍵断片生成通知を十分に受信した後、第1コンセンサスノード集合内のブロック生成ノードは、署名集約アルゴリズムによって正当な通知署名の集約処理を行うことにより、集約署名を取得する。また、
図8を参照すると、第1数量比率が第1数量比率閾値以上である場合、第1コンセンサスノード集合内のコンセンサスノードは、第2コンセンサスノード集合内のコンセンサスノードが第2コンセンサス周期に対するコンセンサス権限を持つと決定することができる。この場合、第1コンセンサスノード集合内のコンセンサスノードは、正当署名集合70c内の通知署名(
図8に例示された通知署名50i及び通知署名501iを含めて)の集約処理を行うことにより、第1集約署名70dを取得する。署名集約アルゴリズムは、本願の実施例で限定されず、実際の応用シナリオに応じて設定してもよく、BLS署名アルゴリズムを含んでもよい。該署名アルゴリズムは、署名集約及び鍵集約を実現することができ、即ち、複数の鍵を1つの鍵に集約し、複数の署名を1つの署名に集約することができる。署名集約アルゴリズムは、デジタル署名アルゴリズム、例えば、Schnorr署名アルゴリズムを含んでもよい。
【0091】
ステップS206では、第1集約署名が含まれる署名検証ブロックを生成し、署名検証ブロックのコンセンサス処理を行うことにより、コンセンサス結果を取得し、署名検証ブロックに対応する第2ブロック高さは、過渡ブロック高さ区間に属する。
【0092】
具体的には、第1コンセンサスノード集合内のブロック生成ノードは、第1集約署名を処理中のブロックにパックし、第1コンセンサスノード集合内の他のコンセンサスノードに、次のコンセンサス周期のコンセンサスノード集合(即ち、第2コンセンサスノード集合)の準備ができたことを知らせる。第1コンセンサスノード集合が該ブロックに対してコンセンサスを達成すると、第1コンセンサスノード集合がコンセンサスから離脱することができ、第2コンセンサスノード集合がコンセンサス権限を引き継ぐ。
【0093】
図10を併せて参照する。
図10は、本願の実施例で提供されるブロックチェーンに基づくデータ処理のシナリオの模式図である。
図10におけるブロックチェーンノード80aは、第1コンセンサスノード集合4c内のブロック生成ノードであり、第1集約署名が含まれる署名検証ブロック80bを生成する。該署名検証ブロック80bは、ブロックヘッダとブロックボディとを含み、ブロックボディには、入力情報1(取引データと同等)が含まれてもよく、ブロックヘッダには、親ブロックのハッシュ値、入力情報1の特徴値(
図10における入力情報1の特徴値と同等)、第1集約署名などのデータが含まれてもよい。理解できるように、署名検証ブロック80bにおける親ブロックのハッシュ値は、
図5におけるブロック499d(即ち、第1ブロック)における親ブロックのハッシュ値と同等ではない。
図5の説明から、
図5におけるブロック499dにおける親ブロックのハッシュ値がブロック98に対するハッシュ値であることを決定することができるが、署名検証ブロック80bにおける親ブロックのハッシュ値は、署名検証ブロック80bの直前のブロックに対するハッシュ値であり、署名検証ブロック80bがブロック102である場合、その直前のブロックは、ブロック101を指す。
【0094】
ブロックチェーンノード80aは、第1コンセンサス周期に関連付けられた秘密鍵断片で署名検証ブロック80bを署名することにより、自分に属する署名シェア80cを取得し、署名シェア80cが付されている署名検証ブロック80bに対してコンセンサスネットワーク内でコンセンサスを行う。理解できるように、この場合のコンセンサスネットワークは、第1コンセンサスノード集合4cから構成される。コンセンサスネットワークによる署名検証ブロック80bへのコンセンサス結果を取得し、コンセンサス結果がコンセンサス失敗結果である場合、ブロックチェーンノード80aは、署名検証ブロック80bに対してブロックチェーンへの追加処理を行わず、コンセンサス結果がコンセンサス採択結果である場合、署名検証ブロック80bに対してブロックチェーンへの追加処理を行う。具体的には、以下のステップS207を含んでもよい。
【0095】
理解できるように、コンセンサスネットワークによる署名検証ブロック80bへのコンセンサスが採択された場合、ブロックチェーンノード80aは、署名シェア80cと、第1コンセンサスノード集合4c内の他のコンセンサスノードのそれぞれに対応する署名シェアとに基づいて、署名検証ブロック80bに対する集約署名を取得することができ、署名検証ブロック80bをブロックチェーンに追加する際に、該集約署名が付される。
【0096】
ステップS207では、コンセンサス結果、及び、ブロックチェーンノードと第2コンセンサスノード集合との関連関係に基づいて、コンセンサスノード集合切り替えイベントに関連付けられた業務処理を行い、該ブロックチェーンノードは、第1コンセンサスノード集合内のコンセンサスノードであり、該第1コンセンサスノード集合内のコンセンサスノードは、ブロック生成権限を持つ。
【0097】
具体的には、コンセンサス結果がコンセンサス採択結果である場合、ブロックチェーンコンセンサスノード集合を第1コンセンサスノード集合から第2コンセンサスノード集合に切り替えると決定し、ブロックチェーンノードと第2コンセンサスノード集合との関連関係を決定し、関連関係によって、ブロックチェーンノードが第2コンセンサスノード集合に属しないことが示される場合、ブロックチェーンコンセンサスノード集合から離脱し、第2コンセンサス周期におけるブロックのコンセンサス処理を中断し、第2コンセンサスノード集合によるコンセンサスが採択されたブロックをデータ台帳に同期する。
【0098】
具体的には、第2コンセンサス周期に関連付けられた秘密鍵断片には、第2ターゲット秘密鍵断片が含まれ、コンセンサス結果がコンセンサス採択結果である場合、ブロックチェーンコンセンサスノード集合を第1コンセンサスノード集合から第2コンセンサスノード集合に切り替えると決定し、前記ブロックチェーンノードと第2コンセンサスノード集合との関連関係を決定し、関連関係によって、前記ブロックチェーンノードが第2コンセンサスノード集合に属することが示される場合、第2コンセンサス周期に対応する第2コンセンサスメッセージプールを取得し、第2コンセンサスメッセージプール内のデータに基づいて、第2コンセンサス対象ブロックを生成し、第2ターゲット秘密鍵断片で第2コンセンサス対象ブロックを署名することにより、第2署名シェアを取得し、第2署名シェアが付されている第2コンセンサス対象ブロックに対してブロックチェーンへの追加処理を行い、第2署名シェアは、第2コンセンサスノード集合内のコンセンサスノードが第2コンセンサス対象ブロックに対してソース正当性署名検証を行うことを示すためのものである。
【0099】
ここで、第2コンセンサスノード集合には、コンセンサスノードGbが含まれ(bは、正の整数であり、かつ、第2コンセンサスノード集合内のコンセンサスノードのノード総数以下である)、第2コンセンサス周期に関連付けられた秘密鍵断片には、コンセンサスノードGbに対応する秘密鍵断片Pbが含まれる。第2署名シェアが付されている第2コンセンサス対象ブロックに対してブロックチェーンへの追加処理を行う具体的なプロセスは、第2署名シェアが付されている第2コンセンサス対象ブロックをコンセンサスネットワーク内でブロードキャストするステップと、コンセンサスノードGbから送信された第2署名シェアFbを取得するステップであって、第2署名シェアFbは、コンセンサスノードGbが秘密鍵断片Pbでコンセンサス結果Sbを署名することにより生成されたものであり、コンセンサス結果Sbは、コンセンサスノードGbによる第2コンセンサス対象ブロックへのコンセンサス結果を表すためのものである、ステップと、第2コンセンサスノード集合に関連付けられたグローバル公開鍵で第2署名シェアFbの署名検証を行うことにより、第2署名検証結果Dbを取得するステップと、第2署名検証結果Dbに基づいて、第2コンセンサス対象ブロックを第2ブロックとして決定するステップと、を含んでもよい。
【0100】
ここで、第2署名検証結果Dbには、署名検証失敗結果又は署名検証合格結果が含まれ、第2署名検証結果Dbに基づいて、第2コンセンサス対象ブロックを第2ブロックとして決定する具体的なプロセスは、第2署名検証結果Dbが署名検証失敗結果である場合、第2署名シェアFbを削除するステップと、第2署名検証結果Dbが署名検証合格結果である場合、第2署名シェアFbを正当シェア集合に格納するステップと、正当シェア集合内の第2署名シェアのシェア総数を決定し、ノード総数とシェア総数との第2数量比率を決定し、第2数量比率と第2数量比率閾値とを比較するステップと、第2数量比率が第2数量比率閾値以上である場合、第2コンセンサス対象ブロックを第2ブロックとして決定するステップと、を含んでもよい。
【0101】
さらに、正当シェア集合内の第2署名シェアの集約処理を行うことにより、第2集約署名を取得し、第2集約署名を第2ブロックに追加し、第2集約署名が付されている第2ブロックをデータ台帳に格納する。ブロックチェーンノードから送信された、第2ブロックに対するブロック同期要求を取得し、ブロックチェーンネットワークには、ブロックチェーンノードが含まれる。ブロック同期要求に基づいて、第2集約署名が付されている第2ブロックをブロックチェーンノードに返信する。これにより、ブロックチェーンノードは、グローバル公開鍵に基づいて、第2集約署名の署名検証を行うことにより、第3署名検証結果を取得し、第3署名検証結果に基づいて、第2ブロックを同期する。
【0102】
上記のステップS206及び
図10を参照すると、第1コンセンサスノード集合4cによる署名検証ブロック80bへのコンセンサス結果がコンセンサス採択結果である場合、ブロックチェーンノード80aは、ブロックチェーンコンセンサスノード集合を第1コンセンサスノード集合4cから第2コンセンサスノード集合40eに切り替えると決定する。さらに、ブロックチェーンノード80aと第2コンセンサスノード集合40eとの関連関係を決定する。理解できるように、一部のブロックチェーンノードは、第1コンセンサスノード集合4c及び第2コンセンサスノード集合40eの両方にあり得る。ブロックチェーンノード80aが第2コンセンサスノード集合40eに属しない場合、即ち、第2コンセンサスノード集合40eにブロックチェーンノード80aが含まれない場合、ブロックチェーンノード80aがブロックチェーンコンセンサスノード集合から離脱し、第2コンセンサス周期におけるブロック(例えば、ブロック80d)のコンセンサス処理を中断する。ここで、署名検証ブロック80bは、ブロック80dの直前のブロックである。この場合、第2コンセンサスノード集合40eによるコンセンサスが採択されたブロック(ブロック80dを含めて)をデータ台帳80eに同期し、例えば、ブロック80dをデータ台帳80eに同期する。該データ台帳80eには、ブロック498dが含まれてもよい。ブロック498dに対応するブロック高さ(例えば、
図4におけるブロック高さ98)は、第1コンセンサス周期におけるコンセンサスノード集合切り替え条件に適合する。該データ台帳80eには、ブロック499d、即ち、第1ブロックが含まれてもよい。ブロック499dのブロック高さは、99である。該データ台帳80eには、署名検証ブロック80bが含まれてもよく、ブロック80dが含まれてもよい。理解できるように、ブロックチェーンノード80aが第1コンセンサスノード集合4cに属し、第2コンセンサスノード集合40eに属しない場合、ブロックチェーンノード80aは、第1コンセンサス周期に関連付けられた秘密鍵断片(特にブロックチェーンノード80a自身の秘密鍵断片を指す)に基づいて、ブロック498d、ブロック499、…、署名検証ブロック80bのコンセンサスプロセスに参加することができるが、ブロック80dのコンセンサスプロセスに参加しない。
【0103】
ブロックチェーンノード80aが第2コンセンサスノード集合40eに属する場合、即ち、第2コンセンサスノード集合40eにブロックチェーンノード80aが含まれる場合、ブロックチェーンノード80aは、コンセンサス権限及びブロック生成権限を持つことができる。ブロックチェーンノード80aが依然としてブロック生成ノードとされると仮定すると、第2コンセンサス周期に対応する第2コンセンサスメッセージプール80fを取得してもよい。さらに、第2コンセンサスメッセージプール80f内のデータ(取引データと同等)に基づいて、第2コンセンサス対象ブロック80gを生成してもよい。理解できるように、署名検証ブロック80bは、第2コンセンサス対象ブロック80gの直前のブロックである。本願の実施例において、ブロックチェーンノード80aが第2コンセンサスノード集合40e内のブロックチェーンノード405cと同等であると仮定すると、上記の
図5の説明から分かるように、ブロックチェーンノード80aの第2ターゲット秘密鍵断片が秘密鍵断片50fと同等であり、ブロックチェーンノード80aは、第2ターゲット秘密鍵断片(即ち、
図10における秘密鍵断片50f)で第2コンセンサス対象ブロック80gを署名することにより、第2署名シェア80hを取得する。
【0104】
さらに、
図11を参照する。
図11は、本願の実施例で提供されるブロックチェーンに基づくデータ処理のシナリオの模式図である。
図11に示すように、ブロックチェーンノード80a(第2コンセンサスノード集合40e内のブロック生成ノードであり、ブロックチェーンノード405cと同等であると仮定される)は、第2署名シェア80hが付されている第2コンセンサス対象ブロック80gをコンセンサスネットワーク内でブロードキャストする。理解できるように、ここでのコンセンサスネットワークは、第2コンセンサスノード集合40eから構成される。ブロックチェーンノード80aは、第2コンセンサスノード集合40e内のコンセンサスノードから送信された第2署名シェアを取得し、
図11に示すように、ブロックチェーンノード50bから送信された第2署名シェア80kを取得する。ここで、第2署名シェア80kは、ブロックチェーンノード50bが秘密鍵断片80i(第2コンセンサス周期に関連付けられたものである)でコンセンサス結果80jを署名することにより生成されたものである。コンセンサス結果80jは、ブロックチェーンノード50bによる第2コンセンサス対象ブロック80gへのコンセンサス結果を表すものである。ブロックチェーン80aは、第2コンセンサスノード集合に関連付けられたグローバル公開鍵50hで第2署名シェア80kの署名検証を行うことにより、第2署名検証結果80mを取得する。署名検証のプロセスは、上記の
図7に対応する実施例における通知署名50iに対する署名検証プロセスを参照すればよい。この2つの署名検証プロセスが一致するため、ここでは署名検証の細部の説明を省略する。
【0105】
さらに、第2署名検証結果80mが署名検証失敗結果である場合、ブロックチェーンノード80aは、第2署名シェア80kを削除する。第2署名検証結果80mが署名検証合格結果である場合、第2署名シェア80kを正当シェア集合80nに格納する。
図11に示すように、正当シェア集合80nには、第2署名シェア80h、…、第2署名シェア80kが含まれる。ブロックチェーンノード80aは、正当シェア集合80n内の第2署名シェアのシェア総数を決定し、ノード総数とシェア総数との第2数量比率を決定し、第2数量比率と第2数量比率閾値とを比較する。第2数量比率が第2数量比率閾値以上である場合、第2コンセンサス対象ブロック80gを第2ブロックとして決定する。
【0106】
さらに、
図12を併せて参照する。
図12は、本願の実施例で提供されるブロックチェーンに基づくデータ処理のシナリオの模式図である。
図12に示すように、署名集約アルゴリズムによって、ブロックチェーンノード80aは、正当シェア集合80n内の第2署名シェアの集約処理を行うことにより、第2集約署名80qを取得する。その後、第2集約署名80qを第2ブロック(
図12における第2コンセンサス対象ブロック80gと同等であってもよい)に追加する。ブロックチェーンノード80aは、第2集約署名80qが付されている第2ブロックをデータ台帳80pに格納する。データ台帳80pには、ブロック498dが含まれてもよい。ブロック498dに対応するブロック高さ(例えば、
図4におけるブロック高さ98)は、第1コンセンサス周期におけるコンセンサスノード集合切り替え条件に適合する。該データ台帳80pには、ブロック499d、即ち、第1ブロックが含まれてもよい。ブロック499dのブロック高さは、99である。該データ台帳80pには、署名検証ブロック80bが含まれてもよく、第2ブロックが含まれてもよい。
【0107】
理解できるように、ブロックチェーンノード80aが第1コンセンサスノード集合4c及び第2コンセンサスノード集合40eの両方に属する場合、ブロックチェーンノード80aは、第1コンセンサス周期に関連付けられた秘密鍵断片(特にブロックチェーンノード80a自身の秘密鍵断片を指す)に基づいて、ブロック498d、ブロック499、…、署名検証ブロック80bのコンセンサスプロセスに参加することができ、第2コンセンサス周期に関連付けられた秘密鍵断片、例えば、
図10に例示された秘密鍵断片50fに基づいて、第2ブロックのコンセンサスプロセスに参加することができる。
【0108】
また、
図12を参照すると、ブロックチェーンノード80aは、ブロックチェーンノード90aから送信された、第2ブロック(
図12に例示された第2コンセンサス対象ブロック80gと同等)のブロック同期要求を取得する。理解できるように、ブロックチェーンノード90aは、ブロックチェーンネットワーク内のいずれか1つのブロックチェーンノードであってもよい。ブロック同期要求に基づいて、ブロックチェーンノード80aは、第2集約署名80qが付されている第2ブロックをブロックチェーンノード90aに返信する。これにより、ブロックチェーンノード90aは、グローバル公開鍵50hで第2集約署名80qの署名検証を行うことにより、第3署名検証結果を取得する。第3署名検証結果が署名検証合格結果である場合、ブロックチェーンノード90aは、第2ブロックを同期する。
【0109】
理解できるように、本願の実施例では、理解及び説明の便宜上、署名検証ブロック80b及び第2ブロックのブロック生成ノードを両方ともブロックチェーンノード80aに設定するが、実際の応用では、この2つのブロックのそれぞれに対応するブロック生成ノードは、同一のコンセンサスノードでなくてもよい。
【0110】
任意選択的に、コンセンサス結果がコンセンサス採択結果である場合、第2ブロック高さと、過渡ブロック高さ区間内の最大ブロック高さとを比較する。第2ブロック高さが最大ブロック高さに等しい場合、前記ブロックチェーンノードと第2コンセンサスノード集合との関連関係に基づいて、コンセンサスノード集合切り替えイベントに関連付けられた業務処理を行う。第2ブロック高さが最大ブロック高さより小さい場合、第1コンセンサス周期に対応する第1コンセンサスメッセージプールを取得する。第1コンセンサスメッセージプール内のデータに基づいて、第1コンセンサス対象ブロックを生成し、第1ターゲット秘密鍵断片で第1コンセンサス対象ブロックを署名することにより、第1署名シェアを取得する。第1ターゲット秘密鍵断片は、第1コンセンサス周期に関連付けられた秘密鍵断片である。第1署名シェアが付されている第1コンセンサス対象ブロックに対してブロックチェーンへの追加処理を行う。第1署名シェアは、第1コンセンサスノード集合内のコンセンサスノードが第1コンセンサス対象ブロックに対してソース正当性署名検証を行うことを示すためのものである。
【0111】
上記実施例における過渡期間は、第1ブロックが決定されてから、ブロックチェーンへの署名検証ブロックの追加が終了するまでである。実際の応用において、過渡期間は、第1ブロック及び過渡ブロック高さ区間に基づいて決定されてもよい。具体的なプロセスは、
図2に対応する実施例の説明を併せて参照すればよい。ここでは、展開的な説明を省略する。第2コンセンサスノード集合との関連関係に基づいて、コンセンサスノード集合切り替えイベントに関連付けられた業務処理を行うステップは、上記のステップS207における説明を参照すればよい。ここでは、同様に展開的な説明を省略する。
【0112】
上記のように、
図13を併せて参照する。
図13は、本願の実施例で提供されるブロックチェーンに基づくデータ処理方法の流れの模式図である。
図13に示すように、本願の実施例では、コンセンサスノード集合に、それぞれ、コンセンサスノードN1、コンセンサスノードN2、コンセンサスノードN3、及びコンセンサスノードN4である合計4つのコンセンサスノードがあると仮定する。該データ処理方法は、S1~S4の4つのステップを含んでもよい。各ステップの役割は、下記の通りである。
【0113】
S1では、各々のコンセンサスノードが自分の秘密鍵断片でブロックのデジタル署名を行うことにより、署名シェアを取得する。
【0114】
理解できるように、同一のコンセンサス周期における各コンセンサスノードは、それぞれ対応する秘密鍵断片が一致しないが、同一のグローバル公開鍵に対応する。同一のコンセンサスノードは、異なるコンセンサス周期においてそれぞれ対応する秘密鍵断片も一致しない。
【0115】
S2では、各々のコンセンサスノードが自分の署名シェアを他のコンセンサスノードにブロードキャストする。
【0116】
S3では、各々のコンセンサスノードが他のコンセンサスノードからの署名シェアを受信すると、グローバル公開鍵で各署名シェアの正当性チェックを行い、不正な署名シェアを破棄して、正当な署名シェアをバッファリングする。収集された正当な署名シェアの数が署名数量閾値を満たすと、収集された正当な署名シェを入力として、署名集約アルゴリズムを実行し、正当な署名シェアを合成することにより、固定されたサイズの集約署名を取得する。各々のコンセンサスノードは、生成された集約署名をブロックに追加してストレージに書き込む。
【0117】
S4では、コンセンサスノードから上記のブロックデータを同期してブロックをチェックするブロックチェーンノードがある場合、グローバル公開鍵で集約署名の正当性をチェックするだけでよい。
【0118】
上記のように、本願の実施例では、コンセンサスネットワークの署名集約方法が提供されており、該方法は、コンセンサスネットワークノードが動的に増減する場合、集約署名分散型鍵システムを自動的に更新することができ、コンセンサスサービスを停止する必要がない。また、該方法では、生成される署名データのサイズが固定され、ブロックチェーンの利用可能性及び拡張性が大幅に向上する。また、この方法は、記憶スペース、及びネットワークトラフィックの伝送コストを効果的に削減することができ、署名検証の計算効率を向上させることもできる。
【0119】
さらに、
図14を参照する。
図14は、本願の実施例で提供されるブロックチェーンに基づくデータ処理装置の構成の模式図である。上記のブロックチェーンに基づくデータ処理装置は、コンピュータ機器で実行されるコンピュータプログラム(プログラムコードを含む)であってもよく、例えば、該ブロックチェーンに基づくデータ処理装置は、アプリケーションソフトウェアである。該装置は、本願の実施例で提供される方法における相応のステップを実行するために使用することができる。
図14に示すように、該データ処理装置1は、第1決定モジュール11と、第1生成モジュール12と、第1取得モジュール13と、第2決定モジュール14と、を含んでもよい。
【0120】
第1決定モジュール11は、第1コンセンサス周期で生成されたブロック高さがコンセンサスノード集合切り替え条件を満たす場合、第2コンセンサス周期に対応する第2コンセンサスノード集合の選択を開始し、前記第2コンセンサスノード集合が選択されたときに生成されたブロックの高さを第1ブロック高さとして決定し、前記第1コンセンサス周期における最大ブロック高さに対応するブロックは、前記第2コンセンサス周期における最小ブロック高さに対応するブロックの直前のブロックである。
【0121】
第1生成モジュール12は、前記第2コンセンサスノード集合に対応する集合情報を前記第1ブロック高さに対応するブロックに追加して第1ブロックを生成し、ブロックチェーンネットワーク内で前記第1ブロックをブロードキャストすることにより、前記第2コンセンサスノード集合内のコンセンサスノードに、過渡コンセンサス期間内で前記第1ブロックにおける前記集合情報に基づいて前記第2コンセンサス周期に関連付けられた秘密鍵断片を生成させ、前記過渡コンセンサス期間とは、前記第1コンセンサス周期に対応する第1コンセンサスノード集合が、過渡ブロック高さ区間に属するブロックに対してコンセンサス処理を行うために消費される時間を指し、前記過渡ブロック高さ区間に含まれるブロック高さは、いずれも、前記第1ブロック高さより大きい。
【0122】
第1取得モジュール13は、前記第2コンセンサスノード集合内のコンセンサスノードから送信された秘密鍵断片生成通知を取得し、前記秘密鍵断片生成通知には、通知署名が付されており、前記通知署名は、前記第2コンセンサスノード集合内のコンセンサスノードが前記第2コンセンサス周期に関連付けられた秘密鍵断片に基づいて通知を生成して署名することにより生成されたものである。
【0123】
第2決定モジュール14は、前記通知署名に基づいて、前記第2コンセンサスノード集合内のコンセンサスノードの、前記第2コンセンサス周期に対するコンセンサス権限を決定する。
【0124】
ここで、第1決定モジュール11、第1生成モジュール12、第1取得モジュール13、及び第2決定モジュール14の具体的な機能の実現方式は、上記の
図3に対応する実施例におけるステップS101~ステップS104を参照すればよい。ここではこれ以上の説明を省略する。
【0125】
また、
図14を参照すると、第2コンセンサスノード集合には、コンセンサスノードG
aが含まれ(aは、正の整数であり、かつ、第2コンセンサスノード集合内のコンセンサスノードのノード総数以下である)、通知署名には、コンセンサスノードG
aに対する通知署名T
aが含まれ、
第2決定モジュール14は、第1署名検証ユニット141と、第2署名検証ユニット142と、第3署名検証ユニット143と、第1決定ユニット144と、を含んでもよい。
【0126】
第1署名検証ユニット141は、第2コンセンサスノード集合に関連付けられたグローバル公開鍵で通知署名Taの署名検証を行うことにより、第1署名検証結果Jaを取得し、第1署名検証結果Jaには、署名検証失敗結果又は署名検証合格結果が含まれる。
【0127】
第2署名検証ユニット142は、第1署名検証結果Jaが署名検証失敗結果である場合、通知署名Taを削除する。
【0128】
第3署名検証ユニット143は、第1署名検証結果Jaが署名検証合格結果である場合、通知署名Taを正当署名集合に追加する。
【0129】
第1決定ユニット144は、正当署名集合に基づいて、第2コンセンサスノード集合内のコンセンサスノードの、第2コンセンサス周期に対するコンセンサス権限を決定する。
【0130】
ここで、第1署名検証ユニット141、第2署名検証ユニット142、第3署名検証ユニット143、及び第1決定ユニット144の具体的な機能の実現方式は、上記の
図3に対応する実施例におけるステップS104を参照すればよい。ここではこれ以上の説明を省略する。
【0131】
また、
図14を参照すると、第1決定ユニット144は、数量集計サブユニット1441と、第1決定サブユニット1442と、第2決定サブユニット1443と、を含んでもよい。
【0132】
数量集計サブユニット1441は、正当署名集合内の通知署名の署名総数を集計する。
【0133】
第1決定サブユニット1442は、ノード総数と署名総数との第1数量比率を決定し、第1数量比率と第1数量比率閾値とを比較する。
【0134】
第2決定サブユニット1443は、第1数量比率が第1数量比率閾値より小さい場合、第2コンセンサスノード集合内のコンセンサスノードが第2コンセンサス周期に対するコンセンサス権限を持たないと決定する。
【0135】
第2決定サブユニット1443は、さらに、第1数量比率が第1数量比率閾値以上である場合、第2コンセンサスノード集合内のコンセンサスノードが第2コンセンサス周期に対するコンセンサス権限を持つと決定する。
【0136】
ここで、数量集計サブユニット1441、第1決定サブユニット1442、及び第2決定サブユニット1443の具体的な機能の実現方式は、上記の
図3に対応する実施例におけるステップS104を参照すればよい。ここではこれ以上の説明を省略する。
【0137】
また、
図14を参照すると、秘密鍵断片生成通知には、コンセンサスノードG
aから送信された秘密鍵断片生成通知Z
aが含まれ、
第1署名検証ユニット141は、第1取得サブユニット1411と、第2取得サブユニット1412と、第3決定サブユニット1413と、を含んでもよい。
【0138】
第1取得サブユニット1411は、第2コンセンサスノード集合に関連付けられたグローバル公開鍵で通知署名Taを復号することにより、第1デジタルダイジェストを取得する。
【0139】
第2取得サブユニット1412は、秘密鍵断片生成通知Zaの第2デジタルダイジェストを取得し、第1デジタルダイジェストと第2デジタルダイジェストとを比較する。
【0140】
第3決定サブユニット1413は、第1デジタルダイジェストと第2デジタルダイジェストが同じである場合、第1署名検証結果Jaが署名検証合格結果であると決定する。
【0141】
第3決定サブユニット1413は、さらに、第1デジタルダイジェストと第2デジタルダイジェストが異なる場合、第1署名検証結果Jaが署名検証失敗結果であると決定する。
【0142】
ここで、第1取得サブユニット1411、第2取得サブユニット1412、及び第3決定サブユニット1413の具体的な機能の実現方式は、上記の
図3に対応する実施例におけるステップS104を参照すればよい。ここではこれ以上の説明を省略する。
【0143】
また、
図14を参照すると、データ処理装置1は、第1処理モジュール15と、第2生成モジュール16と、第2処理モジュール17と、をさらに含んでもよい。
【0144】
第1処理モジュール15は、第2コンセンサスノード集合内のコンセンサスノードが第2コンセンサス周期に対するコンセンサス権限を持つ場合、通知署名の集約処理を行うことにより、第1集約署名を取得する。
【0145】
第2生成モジュール16は、第1集約署名が含まれる署名検証ブロックを生成し、署名検証ブロックのコンセンサス処理を行うことにより、コンセンサス結果を取得し、署名検証ブロックに対応する第2ブロック高さは、過渡ブロック高さ区間に属する。
【0146】
第2処理モジュール17は、前記コンセンサス結果、及び、ブロックチェーンノードと前記第2コンセンサスノード集合との関連関係に基づいて、コンセンサスノード集合切り替えイベントに関連付けられた業務処理を行い、前記ブロックチェーンノードは、前記第1コンセンサスノード集合内のコンセンサスノードであり、前記第1コンセンサスノード集合内のコンセンサスノードは、ブロック生成権限を持つ。
【0147】
ここで、第1処理モジュール15、第2生成モジュール16、及び第2処理モジュール17の具体的な機能の実現方式は、上記の
図9に対応する実施例におけるステップS205~ステップS207を参照すればよい。ここではこれ以上の説明を省略する。
【0148】
また、
図14を参照すると、第2処理モジュール17は、高さ比較ユニット171と、第1処理ユニット172と、メッセージ取得ユニット173と、第1生成ユニット174と、第2処理ユニット175と、を含んでもよい。
【0149】
高さ比較ユニット171は、コンセンサス結果がコンセンサス採択結果である場合、第2ブロック高さと、過渡ブロック高さ区間内の最大ブロック高さとを比較する。
【0150】
第1処理ユニット172は、第2ブロック高さが最大ブロック高さに等しい場合、第2コンセンサスノード集合との関連関係に基づいて、コンセンサスノード集合切り替えイベントに関連付けられた業務処理を行う。
【0151】
メッセージ取得ユニット173は、第2ブロック高さが最大ブロック高さより小さい場合、第1コンセンサス周期に対応する第1コンセンサスメッセージプールを取得する。
【0152】
第1生成ユニット174は、第1コンセンサスメッセージプール内のデータに基づいて、第1コンセンサス対象ブロックを生成し、第1ターゲット秘密鍵断片で第1コンセンサス対象ブロックを署名することにより、第1署名シェアを取得し、第1ターゲット秘密鍵断片は、第1コンセンサス周期に関連付けられた秘密鍵断片である。
【0153】
第2処理ユニット175は、第1署名シェアが付されている第1コンセンサス対象ブロックに対してブロックチェーンへの追加処理を行い、第1署名シェアは、第1コンセンサスノード集合内のコンセンサスノードが第1コンセンサス対象ブロックに対してソース正当性署名検証を行うことを示すためのものである。
【0154】
ここで、高さ比較ユニット171、第1処理ユニット172、メッセージ取得ユニット173、第1生成ユニット174、第2処理ユニット175の具体的な機能の実現方式は、上記の
図9に対応する実施例におけるステップS207を参照すればよい。ここではこれ以上の説明を省略する。
【0155】
また、
図14を参照すると、第2処理モジュール17は、第2決定ユニット176と、第3決定ユニット177と、を含んでもよい。
【0156】
第2決定ユニット176は、コンセンサス結果がコンセンサス採択結果である場合、ブロックチェーンコンセンサスノード集合を第1コンセンサスノード集合から第2コンセンサスノード集合に切り替えると決定する。
【0157】
第3決定ユニット177は、前記ブロックチェーンノードと前記第2コンセンサスノード集合との前記関連関係を決定し、前記関連関係によって、前記ブロックチェーンノードが前記第2コンセンサスノード集合に属しないことが示される場合、前記ブロックチェーンコンセンサスノード集合から離脱し、前記第2コンセンサス周期におけるブロックのコンセンサス処理を中断する。
【0158】
第3決定ユニット177は、さらに、第2コンセンサスノード集合によるコンセンサスが採択されたブロックをデータ台帳に同期する。
【0159】
ここで、第2決定ユニット176及び第3決定ユニット177の具体的な機能の実現方式は、上記の
図9に対応する実施例におけるステップS207を参照すればよい。ここではこれ以上の説明を省略する。
【0160】
また、
図14を参照すると、第2コンセンサス周期に関連付けられた秘密鍵断片には、第2ターゲット秘密鍵断片が含まれ、
第2処理モジュールは、第2生成ユニット178と、第3処理ユニット179と、を含んでもよい。
【0161】
第2決定ユニット176は、さらに、コンセンサス結果がコンセンサス採択結果である場合、ブロックチェーンコンセンサスノード集合を第1コンセンサスノード集合から第2コンセンサスノード集合に切り替えると決定する。
【0162】
第3決定ユニット177は、さらに、前記ブロックチェーンノードと前記第2コンセンサスノード集合との前記関連関係を決定し、前記関連関係によって、前記ブロックチェーンノードが前記第2コンセンサスノード集合に属することが示される場合、前記第2コンセンサス周期に対応する第2コンセンサスメッセージプールを取得する。
【0163】
第2生成ユニット178は、第2コンセンサスメッセージプール内のデータに基づいて、第2コンセンサス対象ブロックを生成し、第2ターゲット秘密鍵断片で第2コンセンサス対象ブロックを署名することにより、第2署名シェアを取得する。
【0164】
第3処理ユニット179は、第2署名シェアが付されている第2コンセンサス対象ブロックに対してブロックチェーンへの追加処理を行い、第2署名シェアは、第2コンセンサスノード集合内のコンセンサスノードが第2コンセンサス対象ブロックに対してソース正当性署名検証を行うことを示すためのものである。
【0165】
ここで、第2決定ユニット176、第3決定ユニット177、第2生成ユニット178、及び第3処理ユニット179の具体的な機能の実現方式は、上記の
図9に対応する実施例におけるステップS207を参照すればよい。ここではこれ以上の説明を省略する。
【0166】
また、
図14を参照すると、第2コンセンサスノード集合には、コンセンサスノードG
bが含まれ(bは、正の整数であり、かつ、第2コンセンサスノード集合内のコンセンサスノードのノード総数以下である)、第2コンセンサス周期に関連付けられた秘密鍵断片には、コンセンサスノードG
bに対応する秘密鍵断片P
bが含まれ、
第3処理ユニット179は、ブロックブロードキャストサブユニット1791と、第3取得サブユニット1792と、第4取得サブユニット1793と、第4決定サブユニット1794と、を含んでもよい。
【0167】
ブロックブロードキャストサブユニット1791は、第2署名シェアが付されている第2コンセンサス対象ブロックをコンセンサスネットワーク内でブロードキャストする。
【0168】
第3取得サブユニット1792は、コンセンサスノードGbから送信された第2署名シェアFbを取得し、第2署名シェアFbは、コンセンサスGbが秘密鍵断片Pbでコンセンサス結果Sbを署名することにより生成されたものであり、コンセンサス結果Sbは、コンセンサスノードGbによる第2コンセンサス対象ブロックへのコンセンサス結果を表すためのものである。
【0169】
第4取得サブユニット1793は、第2コンセンサスノード集合に関連付けられたグローバル公開鍵で第2署名シェアFbの署名検証を行うことにより、第2署名検証結果Dbを取得する。
【0170】
第4決定サブユニット1794は、第2署名検証結果Dbに基づいて、第2コンセンサス対象ブロックを第2ブロックとして決定する。
【0171】
ここで、ブロックブロードキャストサブユニット1791、第3取得サブユニット1792、第4取得サブユニット1793、及び第4決定サブユニット1794の具体的な機能の実現方式は、上記の
図9に対応する実施例におけるステップS207を参照すればよい。ここではこれ以上の説明を省略する。
【0172】
また、
図14を参照すると、第2署名検証結果D
bには、署名検証失敗結果又は署名検証合格結果が含まれ、
第4決定サブユニット1794は、第1シェアサブユニット17941と、第2シェアサブユニット17942と、比率比較サブユニット17943と、第1ブロックサブユニット17944と、を含んでもよい。
【0173】
第1シェアサブユニット17941は、第2署名検証結果Dbが署名検証失敗結果である場合、第2署名シェアFbを削除する。
【0174】
第2シェアサブユニット17942は、第2署名検証結果Dbが署名検証合格結果である場合、第2署名シェアFbを正当シェア集合に格納する。
【0175】
比率比較サブユニット17943は、正当シェア集合内の第2署名シェアのシェア総数を決定し、ノード総数とシェア総数との第2数量比率を決定し、第2数量比率と第2数量比率閾値とを比較する。
【0176】
第1ブロックサブユニット17944は、第2数量比率が第2数量比率閾値以上である場合、第2コンセンサス対象ブロックを第2ブロックとして決定する。
【0177】
ここで、第1シェアサブユニット17941、第2シェアサブユニット17942、比率比較サブユニット17943、及び第1ブロックサブユニット17944の具体的な機能の実現方式は、上記の
図9に対応する実施例におけるステップS207を参照すればよい。ここではこれ以上の説明を省略する。
【0178】
また、
図14を参照すると、第4決定サブユニット1794は、第3シェアサブユニット17945と、同期要求サブユニット17946と、第2ブロックサブユニット17947と、をさらに含んでもよい。
【0179】
第3シェアサブユニット17945は、正当シェア集合内の第2署名シェアの集約処理を行うことにより、第2集約署名を取得し、第2集約署名を第2ブロックに追加し、第2集約署名が付されている第2ブロックをデータ台帳に格納する。
【0180】
同期要求サブユニット17946は、ブロックチェーンノードから送信された、第2ブロックに対するブロック同期要求を取得し、ブロックチェーンネットワークには、ブロックチェーンノードが含まれる。
【0181】
第2ブロックサブユニット17947は、ブロック同期要求に基づいて、第2集約署名が付されている第2ブロックをブロックチェーンノードに返信することにより、ブロックチェーンノードがグローバル公開鍵で第2集約署名の署名検証を行って第3署名検証結果を取得し、第3署名検証結果に基づいて第2ブロックを同期するようにする。
【0182】
ここで、第3シェアサブユニット17945、同期要求サブユニット17946、及び第2ブロックサブユニット17947の具体的な機能の実現方式は、上記の
図9に対応する実施例におけるステップS207を参照すればよい。ここではこれ以上の説明を省略する。
【0183】
また、
図14を参照すると、データ処理装置1は、第2取得モジュール18をさらに含んでもよい。
【0184】
第2取得モジュール18は、コンセンサスノードが第2コンセンサスノード集合に属する場合、第1ブロックにおける集合情報を取得し、分散型鍵コンポーネントによって、集合情報に関連付けられた秘密整数を生成する。
【0185】
第2生成モジュール16は、さらに、秘密整数に基づいて、ターゲットローカル公開鍵を生成し、秘密整数に基づいて、少なくとも2つの秘密シェアを生成し、少なくとも2つの秘密シェアの総数は、第2コンセンサスノード集合内のコンセンサスノードのノード総数に等しく、第2コンセンサスノード集合内のコンセンサスノードには、コンセンサスノードGcが含まれ(cは、正の整数であり、かつ、ノード総数以下である)、少なくとも2つの秘密シェアには、秘密シェアMcが含まれる。
【0186】
第2取得モジュール18は、さらに、ターゲットローカル公開鍵及び秘密シェアMcをコンセンサスノードGcに送信し、コンセンサスノードGcから送信されたローカル公開鍵Uc及び秘密シェアEcを取得し、ローカル公開鍵Uc及び秘密シェアEcは、いずれも、コンセンサスノードGcに対応する秘密整数に関連付けられたものである。
【0187】
第2取得モジュール18は、さらに、秘密シェアEcの正当性検証を行い、正当性検証結果を第2コンセンサスノード集合内のコンセンサスノードにブロードキャストする。
【0188】
第2生成モジュール16は、さらに、秘密シェアEc及び秘密シェアMcに基づいて、第2ターゲット秘密鍵断片を生成し、ターゲットローカル公開鍵及びローカル公開鍵Ucに基づいて、第2コンセンサスノード集合に関連付けられたグローバル公開鍵を生成する。
【0189】
ここで、第2生成モジュール16及び第2取得モジュール18の具体的な機能の実現方式は、上記の
図3に対応する実施例におけるステップS102を参照すればよい。ここではこれ以上の説明を省略する。
【0190】
さらに、
図15を参照する。
図15は、本願の実施例で提供されるコンピュータ機器の構成の模式図である。
図15に示すように、該コンピュータ機器1000は、上記の
図3に対応する実施例におけるコンピュータ機器であってもよい。該コンピュータ機器1000は、例えばCPUのような少なくとも1つのプロセッサ1001と、少なくとも1つのネットワークインタフェース1004と、ユーザインタフェース1003と、メモリ1005と、少なくとも1つの通信バス1002と、を含んでもよい。ここで、通信バス1002は、これらのコンポーネント間の接続通信を実現するために使用される。ここで、ユーザインタフェース1003は、ディスプレイ(Display)、キーボード(Keyboard)を含んでもよく、ネットワークインタフェース1004は、任意選択的に、標準的な有線インタフェース、無線インタフェース(例えば、WI-FIインタフェース)を含んでもよい。メモリ1005は、高速RAMであってもよいし、不揮発性メモリ(non-volatile memory)、例えば、少なくとも1つのディスク記憶装置であってもよい。
【0191】
図15に示されたコンピュータ機器1000において、ネットワークインタフェース1004は、ネットワーク通信機能を提供することができ、ユーザインタフェース1003は、主に、ユーザに入力インタフェースを提供するために使用され、プロセッサ1001は、メモリ1005に記憶された機器制御アプリケーションを呼び出して、上記の
図3、
図6、
図9、及び
図13に対応する実施例におけるブロックチェーンに基づくデータ処理方法の説明を実現するために使用することができ、上記の
図14に対応する実施例におけるブロックチェーンに基づくデータ処理装置1の説明を実行することもできる。ここではこれ以上の説明を省略する。なお、同じ方法による有益な効果の説明についても割愛する。
【0192】
本願の実施例では、コンピュータプログラムを記憶したコンピュータ可読記憶媒体がさらに提供されており、該コンピュータプログラムには、プログラム命令が含まれており、該プログラム命令は、プロセッサによって実行されると、
図3、
図6、
図9、及び
図13の各ステップで提供されるブロックチェーンに基づくデータ処理方法を実現させる。具体的には、上記の
図3、
図6、
図9、及び
図13の各ステップで提供される実現形態を参照すればよい。ここではこれ以上の説明を省略する。なお、同じ方法による有益な効果の説明についても割愛する。
【0193】
上記コンピュータ可読記憶媒体は、前述したいずれか1つの実施例で提供されるブロックチェーンに基づくデータ処理装置、又は上記コンピュータ機器の内部記憶ユニット、例えば、コンピュータ機器のハードディスク又は内部メモリであってもよい。該コンピュータ可読記憶媒体は、該コンピュータ機器の外部記憶装置、例えば、該コンピュータ機器に搭載されているプラグインハードディスク、スマートメディアカード(SMC:smart media card)、セキュアデジタル(SD:secure digital)カード、フラッシュカード(flash card)などであってもよい。
【0194】
本願の実施例では、コンピュータ命令を含むコンピュータプログラム製品又はコンピュータプログラムがさらに提供されている。該コンピュータ命令は、コンピュータ可読記憶媒体に記憶されている。コンピュータ機器のプロセッサは、コンピュータ可読記憶媒体から該コンピュータ命令を読み取り、プロセッサが該コンピュータ命令を実行すると、該コンピュータ機器に上記の
図3、
図6、
図9、及び
図13に対応する実施例におけるブロックチェーンに基づくデータ処理方法の説明を実行させる。ここではこれ以上の説明を省略する。
【0195】
本願の実施例の明細書、特許請求の範囲、及び図面における「第1」、「第2」などの用語は、異なる対象を区別するためのものであり、特定の順序を説明するためのものではない。また、用語「含む」及びその任意の変形は、非排他的な包含をカバーすることを意図するものである。例えば、一連のステップ又はユニットを含むプロセス、方法、装置、製品、又は機器は、リストされているステップ又はモジュールに限定されず、リストされていないステップ又はモジュールも任意選択的に含むか、あるいは、これらのプロセス、方法、装置、製品、又は機器に固有の他のステップ又はユニットも任意選択的に含む。
【0196】
当業者であれば、本明細書に開示された実施例と結び付けて説明された各例のユニット及びアルゴリズムのステップは、電子ハードウェア、コンピュータソフトウェア、又は両者の組み合わせで実現可能であるということを意識できる。ハードウェアとソフトウェアの互換性を明確に説明するために、上記の説明では、機能ごとに各例の構成及びステップを一般的に説明している。
【0197】
本願の実施例で提供される方法及び関連装置は、本願の実施例で提供される方法のフローチャート及び/又は構成の模式図を参照して説明されており、具体的には、コンピュータプログラム命令によって、方法のフローチャート及び/又は構成の模式図の各流れ及び/又はブロック、並びに、フローチャート及び/又はブロック図における流れ及び/又はブロックの組み合わせを実現してもよい。
【0198】
上記で掲示されるのは、本願の好ましい実施例に過ぎず、もちろん、これで本願の権利範囲を限定するわけにはいかない。それゆえ、本願の特許請求の範囲に従った同等な変更は、依然として、本願に含まれる範囲に属する。