(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-01
(54)【発明の名称】セキュアなチェーン分割によってブロックチェーンをスケーリングするための方法およびシステム
(51)【国際特許分類】
H04L 9/32 20060101AFI20240125BHJP
【FI】
H04L9/32 200Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023523628
(86)(22)【出願日】2021-04-22
(85)【翻訳文提出日】2023-04-18
(86)【国際出願番号】 EP2021060566
(87)【国際公開番号】W WO2022161646
(87)【国際公開日】2022-08-04
(32)【優先日】2021-01-29
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
(71)【出願人】
【識別番号】517451940
【氏名又は名称】エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】セバスティアン・アンドレイナ
(72)【発明者】
【氏名】ジョルジア・アズーラ・マルソン
(72)【発明者】
【氏名】ロレンツォ・アルミニオ
(72)【発明者】
【氏名】ガッサン・カラメ
(57)【要約】
この方法は、ブロックチェーンシステム(100)の元のサテライトチェーン(S)のバリデータノード(130)のセットと通信することによって、元のサテライトチェーン(S)のバリデータノード(130)を元のサテライトチェーン(S)の子チェーン(Si)のバリデータノード(130)のサブセットに分割するバリデータ割当てスキームを実行するステップと、それぞれのサブセットのバリデータノード(130)と通信することによって、それぞれの子チェーン(Si)をセットアップするために再構成プロトコルを起動し、ブロックチェーンシステム(100)のすべてのメンバのアイデンティティをレジストリ(112)内で維持するアイデンティティ管理コンポーネント(110)に、元のサテライトチェーン(S)の分割および子チェーン(Si)の対応する作成を記録するための構成更新を送信するステップと、を含む。
【特許請求の範囲】
【請求項1】
許可ベースブロックチェーンシステム(100)のバリデータノードによるサテライトチェーン(140)のセキュアなチェーン分割のための方法であって、
前記ブロックチェーンシステム(100)の元のサテライトチェーン(S)のバリデータノード(130)のセットと通信することによって、前記元のサテライトチェーン(S)の前記バリデータノード(130)を前記元のサテライトチェーン(S)の子チェーン(S
i)のバリデータノード(130)のサブセットに分割するバリデータ割当てスキームを実行するステップと、
前記それぞれのサブセットの前記バリデータノード(130)と通信することによって、前記それぞれの子チェーン(S
i)をセットアップするために再構成プロトコルを起動し、前記ブロックチェーンシステム(100)のすべてのメンバのアイデンティティをレジストリ(112)内で維持するアイデンティティ管理コンポーネント(110)に、前記元のサテライトチェーン(S)の前記分割および前記子チェーン(S
i)の対応する作成を記録するための構成更新を送信するステップと
を含む、方法。
【請求項2】
前記バリデータ割当てスキームが、前記子チェーン(S
i)のそれぞれが、基礎となるBFTコンセンサスプロトコルによって許容される最大割合よりも多くのビザンチンノードを含まないように、バリデータノード(130)を前記子チェーン(S
i)に割り当てる、請求項1に記載の方法。
【請求項3】
前記チェーン分割の前に、前記基礎となるBFTコンセンサスプロトコルによって許容されるよりも、前記元のチェーン(S)における許容されたビザンチンノードの割合についてより保守的な境界を施行するステップと、
決定論的に、バリデータノード(130)を前記子チェーン(S
i)に割り当てるステップと
をさらに含む、請求項1または2に記載の方法。
【請求項4】
前記バリデータ割当てスキームが、前記元のサテライトチェーン(S)のバリデータノード(130)の前記セットのバリデータノード(130)をランダム化されたように前記子チェーン(S
i)に割り当てる、請求項1または2に記載の方法。
【請求項5】
ビザンチンノードが、前記ブロックチェーンシステム(100)から抽出されるパブリックに利用可能なランダム性に基づいて前記バリデータノード(130)をランク付けすることによって、および前記ランク付けに基づいてバリデータノード(130)を前記子チェーン(S
i)に割り当てることによって、前記バリデータ割当てスキームによって使用される前記ランダム性に影響を与えることを防止される、請求項3に記載の方法。
【請求項6】
バリデータ(130)の前記割当てが確立された後、前記元のサテライトチェーン(S)の台帳の状態に関して前記子チェーン(S
i)のそれぞれの前記それぞれのバリデータ(130)間で合意を達成することによって、前記子チェーン(S
i)を初期化するステップをさらに含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
チェーン分割処理をトリガする条件および/またはイベントを確立するステップと、
確立された条件および/またはイベントの発生を観察すると同時に、前記チェーン分割処理を開始するステップと
をさらに含む、請求項1から6のいずれか一項に記載の方法。
【請求項8】
元のサテライトチェーン(S)のチェーン分割処理は、前記チェーン(S)が、あらかじめ規定された最大チェーンサイズに到達したときトリガされる、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記サテライトチェーン(140)のそれぞれの取引スループットを監視するステップと、
前記監視された取引スループットが、あらかじめ規定されたスループット性能しきい値未満に低下したとき、チェーン分割処理をトリガするステップと
をさらに含む、請求項1から7のいずれか一項に記載の方法。
【請求項10】
チェーン分割処理をトリガするステップが、すべての関与するバリデータノード(130)に前記チェーン分割を通知するステップを含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
プロセッサおよびメモリを備える許可ベースブロックチェーンシステム(100)のバリデータノードであって、前記メモリが、前記プロセッサによって実行されると、前記プロセッサに、前記ブロックチェーンシステム(100)におけるサテライトチェーン(140)のセキュアなチェーン分割のための次の動作、
前記ブロックチェーンシステム(100)の元のサテライトチェーン(S)のバリデータノード(130)のセットと通信することによって、前記元のサテライトチェーン(S)の前記バリデータノード(130)を前記元のサテライトチェーン(S)の子チェーン(S
i)のバリデータノード(130)のサブセットに分割するバリデータ割当てスキームを実行する動作と、
前記それぞれのサブセットの前記バリデータノード(130)と通信することによって、前記それぞれの子チェーン(S
i)をセットアップするために再構成プロトコルを起動し、前記ブロックチェーンシステム(100)のすべてのメンバのアイデンティティをレジストリ(112)内で維持するアイデンティティ管理コンポーネント(110)に、前記元のサテライトチェーン(S)の前記分割および前記子チェーン(S
i)の対応する作成を記録するための構成更新を送信する動作と
を行わせるプロセッサ実行可能命令を含む、
バリデータノード。
【請求項12】
前記子チェーン(S
i)のそれぞれが、基礎となるBFTコンセンサスプロトコルによって許容される最大割合よりも多くのビザンチンノードを含まないように、前記バリデータ割当てスキームを実行するようにさらに構成されている、請求項11に記載のバリデータノード。
【請求項13】
バリデータノード(130)の前記割当てが確立された後、前記元のサテライトチェーン(S)の台帳の状態に関して前記子チェーン(S
i)のそれぞれの前記それぞれのバリデータノード(130)間で合意を達成することによって、前記子チェーン(S
i)を初期化する
ようにさらに構成されている、請求項11または12に記載のバリデータノード。
【請求項14】
チェーン分割処理をトリガする条件および/またはイベントを確立することと、
確立された条件および/またはイベントの発生を観察すると同時に、前記チェーン分割処理を開始することと
を行うようにさらに構成されている、請求項11から13のいずれか一項に記載のバリデータノード。
【請求項15】
プロセッサによって実行されると、前記プロセッサに、ブロックチェーンシステム(100)におけるサテライトチェーン(140)のセキュアなチェーン分割のための次の動作、
前記ブロックチェーンシステム(100)の元のサテライトチェーン(S)のバリデータノード(130)のセットと通信することによって、前記元のサテライトチェーン(S)の前記バリデータノード(130)を前記元のサテライトチェーン(S)の子チェーン(S
i)のバリデータノード(130)のサブセットに分割するバリデータ割当てスキームを実行する動作と、
前記それぞれのサブセットの前記バリデータノード(130)と通信することによって、前記それぞれの子チェーン(S
i)をセットアップするために再構成プロトコルを起動し、前記ブロックチェーンシステム(100)のすべてのメンバのアイデンティティをレジストリ(112)内で維持するアイデンティティ管理コンポーネント(110)に、前記元のサテライトチェーン(S)の前記分割および前記子チェーン(S
i)の対応する作成を記録するための構成更新を送信する動作と
を行わせるプロセッサ実行可能命令を含む、
非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、許可ベースブロックチェーンシステムのバリデータノードによるサテライトチェーンのセキュアなチェーン分割のための方法、ならびに許可ベースブロックチェーンシステムのバリデータノードに関する。
【背景技術】
【0002】
許可ベースブロックチェーンは、複数人のビザンチン参加者を制御する攻撃者が存在する場合においてもシステムの一貫性およびライブネスを確保するという意味での強力なセキュリティと、取引スループットの点での高い性能とを提供する。しかしながら、許可ベースブロックチェーンのスケーラビリティは、参加者の数が増加するにつれて、その基礎となるBFTコンセンサスプロトコルが大幅に非効率になるという点で限界がある。
【0003】
ブロックチェーン領域においては、並列処理によって取引スループットを高めるための提案がいくつか存在しており、これらのうちの最も代表的なものがブロックチェーンシャーディングである。ブロックチェーンシャーディングについての様々な異なる設計物が存在するが、それらはすべて、同じコンセンサスプロトコルの下で、「並列(in parallel)に」多数のブロックチェーン(いわゆるシャード)を動作させて、バリデータの異なるサブセットが異なるシャードを担うようにするために、同じ高レベルの着想に基づいている。重要なことは、各シャードが、同じコンセンサスプロトコルを使用して、同じポリシーを共有して、すべての他のシャードと協調して動作しなくてはならないことである。シャーディングは、個々のブロックチェーンの性能を向上させるのに適切に適用できるが、その設計の堅苦しさにより、多数のブロックチェーンが共存し、自律的に動作するシナリオには適用できない。
【発明の概要】
【発明が解決しようとする課題】
【0004】
そのため、本発明の目的は、ブロックチェーンシステムの高スループットが、参加者の数が増加する場合でも、セキュアで柔軟に保たれ得るように、最初に説明したタイプの方法およびバリデータノードを改良し、さらに発展させることである。
【課題を解決するための手段】
【0005】
本発明によれば、前述の目的は、許可ベースブロックチェーンシステムのバリデータノードによるサテライトチェーンのセキュアなチェーン分割のための方法によって達成され、この方法は、ブロックチェーンシステムの元のサテライトチェーンのバリデータノードのセットと通信することによって、元のサテライトチェーンのバリデータノードを元のサテライトチェーンの子チェーンのバリデータノードのサブセットに分割するバリデータ割当てスキームを実行するステップと、それぞれのサブセットのバリデータノードと通信することによって、それぞれの子チェーンをセットアップするために再構成プロトコルを起動し、ブロックチェーンシステムのすべてのメンバのアイデンティティをレジストリ内で維持するアイデンティティ管理コンポーネントに、元のサテライトチェーンの分割および子チェーンの対応する作成を記録するための構成更新を送信するステップとを含む。
【0006】
さらには、前述の目的は、プロセッサおよびメモリを備える許可ベースブロックチェーンシステムのバリデータノードによって達成され、メモリは、プロセッサによって実行されると、プロセッサに、ブロックチェーンシステムにおけるサテライトチェーンのセキュアなチェーン分割のための次の動作、ブロックチェーンシステムの元のサテライトチェーンのバリデータノードのセットと通信することによって、元のサテライトチェーンのバリデータノードを元のサテライトチェーンの子チェーンのバリデータノードのサブセットに分割するバリデータ割当てスキームを実行する動作と、それぞれのサブセットのバリデータノードと通信することによって、それぞれの子チェーンをセットアップするために再構成プロトコルを起動し、ブロックチェーンシステムのすべてのメンバのアイデンティティをレジストリ内で維持するアイデンティティ管理コンポーネントに、元のサテライトチェーンの分割および子チェーンの対応する作成を記録するための構成更新を送信する動作とを行わせるプロセッサ実行可能命令を含む。
【0007】
本発明は、ビザンチン回復力(Byzantine resilience)を保つように許可ベースブロックチェーンを2つの自律的なブロックチェーンに変えるためのセキュアなチェーン分割機構を提供する。本発明は、クライアントにクロスチェーン取引を通じて互いに取り引きさせながら、自律的に動作する多数の高性能ブロックチェーンを生成し、そのため、高レベルの相互運用性(interoperability)を満たすことが可能になる。したがって、本発明の実施形態は、多数のブロックチェーンが共存し自律的に動作するが、クロスチェーン通信を介して互いに対話するオプションを有するアプリケーションを対象とする。そのため、本発明は、既存の解決策、たとえば、シャーディングよりも柔軟な解決策を提供し、相互運用可能なブロックチェーンの文脈で様々なユースケースに適していることが可能である。
【0008】
より具体的には、本発明の実施形態は、ブロックチェーンシステムをセキュアに分割して、2つの「子(child)」ブロックチェーンを生成するための方法を提供し、それにより、ビザンチン障害にもかかわらず、両方の子システムについて安全性とライブネスが保証される。本発明の実施形態は、大規模展開のための許可ベースブロックチェーンシステムにおける適用を見出すことができる。チェーン分割は、並列処理を活用して、動的メンバシップ(すなわち、参加者は、いつでも、加入し、離脱することができる)を含む許可ベースブロックチェーンをスケーリングし、それにより、参加者の数を任意に増加させながら、小規模システムの高いスループットを保つことが可能になる。本発明の実施形態は、様々なブロックチェーンが、互いに通信し、ブロックチェーンにわたって資産移転をサポートし、そのため、ブロックチェーンの相互運用性について高い基準を満たすことを可能にする。
【0009】
一実施形態においては、本発明は、チェーンスプリッティングを通じて(数の多い)ブロックチェーンのスループットを改良する方法を提供し、それにより、それらは、チェーンのセキュアな分割によって多数のチェーンに効果的に分割される。この方法は、アイデンティティ管理システム(identity management system、IAM)をセットアップするステップと、様々な許可ベースブロックチェーンに関する情報を記憶するためのレジストリを初期化するステップとを含むことができる。JAMセットアップに続いて、方法は、アイデンティティ管理システムにおける新規ブロックチェーンの構築および登録を、バリデータアクセスポリシーおよびチェーンを分割するための条件トリガとともに含むことができる。方法は、確立された条件をトリガするイベントが発生すると同時に、生成されたブロックチェーンを多数の子ブロックチェーンに分割するステップと、分割更新をアイデンティティ管理システムに提出するステップとをさらに含むことができる。
【0010】
方法はまた、チェーン証明を使用して子チェーン間の資産のクロスチェーン移転を含むこともでき、ここでは、生成されたチェーン証明の検証と同時に、振込元子チェーンの資産がロックされ、振込先チェーンに移転される。この文脈においては、本発明の実施形態は、結果として生じる各チェーン間の信頼性のないクロスチェーン移転を可能にし、新たに加入するノードに信頼性のないブートストラップを提供することを可能にする。この方法はまた、振込先チェーンから受領した確認応答受領を用いた移転の再検証を含むこともできる。確認応答が肯定である場合においては、資産は、振込元チェーンから恒久的に削除され、否定的な確認応答である場合においては、資産は、振込元チェーンにおいてロック解除される。
【0011】
本発明の一実施形態によれば、チェーンSのバリデータVSによって行われるチェーン分割処理は、次のステップを含むことができる。
1.チェーン分割の条件をトリガするイベントを観察すると同時に、
1.1.適切なバリデータ割当てスキームに従って、セットVSをVS1およびVS2に分割する。
1.2.チェーンS1およびS2をSと一貫してセットアップするために再構成プロトコルを起動する(また、チェーンのそれぞれについて適当な構成をセットアップする)。
2.Sの、チェーンS1およびS2へのチェーン分割を登録するための既存のチェーンの構成を記録するIMに構成更新を送信する。
【0012】
本発明の一実施形態によれば、クライアントならびに2つのサテライトチェーンS1およびS2に関わるクロスチェーン資産移転(上記に指定したチェーン分割処理から結果的に生じ得る)は、次のステップを含むことができる。
1.クライアントからクロスチェーン移転要求を受領すると同時に、振込元チェーンS1のバリデータは、振込先チェーンS2に移転されることになる資産にロックをかける。
2.S1におけるバリデータは、資産が適切にロックされているチェーン証明を作成し、S2におけるバリデータにチェーン証明を送信して、振込先チェーンに資産を登録する。
3.(クロスチェーン)チェーン証明を受領すると同時に、受領側チェーンは、移転の妥当性および証明の正確性を検証する。移転がチェーン固有のポリシーに従って妥当である場合、資産は、チェーンS2に追加され、そうでなければ、拒否される。
4.振込先チェーンはまた、結果(受諾、拒否)を同封した受領チェーン証明を作成し、それをチェーンS1に送信し、それにより、受領が登録される。結果が「拒否」である場合、資産は、S1においてロック解除され、クロスチェーン移転は失敗する。結果が「受諾」である場合、資産は、S1から恒久的に削除される。
【0013】
一実施形態によれば、本発明は、許可ベースブロックチェーンシステムにおけるサテライトチェーンのセキュアなチェーン分割のための方法を提供し、この方法は、
アイデンティティ管理コンポーネントによって、ブロックチェーンシステムのすべてのメンバのアイデンティティをレジストリ内で維持するステップと、
ブロックチェーンシステムの元のサテライトチェーンのバリデータノードのセットの中で、元のサテライトチェーンのバリデータノードを元のサテライトチェーンの子チェーンのバリデータノードのサブセットに分割するバリデータ割当てスキームを実行するステップと、
それぞれのサブセットのバリデータノードによって、それぞれの子チェーンをセットアップするために再構成プロトコルを起動し、アイデンティティ管理コンポーネントに、構成更新を送信するステップと、
アイデンティティ管理コンポーネントによって、元のサテライトチェーンの分割および子チェーンの対応する作成を記録するステップと
を含む。
【0014】
本発明の教示を有利に設計し、さらに発展させるやり方はいくつか存在する。この目的のために、一方では従属請求項を参照すべきであり、他方では図によって例示される本発明の好ましい実施形態の次の説明を例として参照すべきである。図の助けによって本発明の好ましい実施形態の説明と関連して、教示の概して好ましい実施形態およびさらなる発展について説明する。
【図面の簡単な説明】
【0015】
【
図1】本発明の一実施形態によるサテライトチェーンを支援するブロックチェーンシステムのアーキテクチャを示す概略図である。
【
図2】本発明の一実施形態によるブロックチェーンシステムへのバリデータの登録の処理を示す概略図である。
【
図3】本発明の一実施形態によるブロックチェーンシステムにおけるチェーン分割の処理を示す概略図である。
【
図4】本発明の一実施形態によるブロックチェーンシステムにおけるサテライトチェーンの機能としてクロスチェーン資産移転を示す概略図である。
【発明を実施するための形態】
【0016】
図全体を通じて、参照数字は、同様の構成要素を示す。
【0017】
図1は、本発明の一実施形態によるサテライトチェーンを支援するブロックチェーンシステムのアーキテクチャおよび主コンポーネントを概略的に示している。概して、本発明は、許可ベースブロックチェーンシステム100に関し、ここでは、システムのメンバになるために明示的な登録が必要とされる。この目的のために、システムは、専用のレジストリ112にすべてのメンバシップ情報を維持するアイデンティティマネージャ(Identity Manager、IM)110を含む。IM110は、ブロックチェーンシステム100のユーザに、互いを識別するのに必要な情報を提供し(たとえば、暗号化検証キーを通じて)、新規メンバの発見機構として働くことができる。
【0018】
本発明の実施形態は、アカウント型システムに関し、ここでは、(UTXO型システムとは対照的に)IM110に登録すると同時に、ユーザuは、uが所有し、システム内で移転することができる資産に関連するアカウントa
uを取得する。ユーザは、次の役割を有することができる。
- 特定の機能(これらの機能は、特定のユースケースに依存する)を提供するサービスとしてブロックチェーンシステム100を利用するクライアント120、または通常のユーザ。例として、クライアントは、取引を発行することによって、資産を取り引きすることができる。
- システムのガバナンスを担うバリデータ130、またはブロックチェーンノード。具体的には、バリデータ130は、取引を検証し、それらをシステムの取引台帳に編成し、それは、ブロックチェーンノードにわたって分散され、専用のコンセンサスプロトコルを通じて拡張される。バリデータノード130は、
図1における小さい円によって概略的に示されている。
【0019】
当業者には認識されるように、ユーザは、原理上、両方の役割、すなわち、クライアント120とバリデータ130とを同時にカバーすることができる。
【0020】
図1に示されているように、ブロックチェーンシステム100は、サテライトチェーン140と呼ばれる、サブシステムの形態で共存するいくつかの様々なブロックチェーンを含む。各サテライトチェーン140(
図1においては、S
1、S
2、およびS
3と示されている)は、所与のビジネスロジックを共有するユーザU
Sのセットを含む。これらの中で、バリデータ130(V
S⊆U
S)は、それぞれのチェーン140についての取引台帳L
Sを維持する特別な役割を有する。本明細書においては、他のユーザ(すなわち、バリデータ130ではないユーザ)は、Sのクライアント120と呼ばれ、対応するセットは、C
Sによって示される。
【0021】
本開示の文脈においては、バリデータセットのサイズ|VS|は、チェーンSのサイズと呼ばれる。あらゆるバリデータノード130(ν⊆VS)は、台帳のそれ自体のローカルコピーLS,νを記憶すること、および台帳を新規取引により拡張するためのコンセンサスプロトコルに参加することが期待される。各ブロックチェーン140は、は、他のブロックチェーン140の選択にかかわらず、それ自体のコンセンサスプロトコルを採用することができ、すなわち、各ブロックチェーン140は、自律的なシステムとして動作し得る。しかしながら、異なるブロックチェーン140は、互いと対話して、たとえば、異なるチェーン140にわたって資産を移転することができる。本発明の実施形態により、ブロックチェーン140は、より詳細に後述するように、新規メンバがシステム100に加入すると、動的に形成され進化することが可能になる。
【0022】
本発明の実施形態は、ブロックチェーンシステム100内で様々な処理、中でも次の、チェーン作成、チェーンへの加入、チェーン分割、およびチェーンマージングをサポートする。
【0023】
チェーン作成
この処理には、ブロックチェーンSの構成を確立するために、バリデータVSの中で適切なセットアップが必要である。本発明の基礎となるモデルによれば、このセットアップ相は、取り除かれ、チェーンSは、IM110への登録と同時に、そのバリデータ130によって作成されることが宣言される。
【0024】
チェーンへの加入
この手順は、ブロックチェーンSのメンバになるためにユーザuによって開始される。ユーザuは、それぞれのチェーン140のクライアント120になることを希望する場合、登録取引をチェーン140のバリデータ130に直接提出することによって加入する。一方、uがバリデータ130として申請する場合、まず、要求が、あらかじめ確立されたアクセス制御ポリシーと対照してバリデータ130によって検査され、要求が受諾される場合、uをVSに含めるための構成更新がトリガされ、これにより、バリデータ130間で対話を要求し得る、より繊細な再構成プロトコルにつながる。VS←VS∪{u}を首尾良く更新すると同時に、構成更新がIM110に送信され、レジストリ112に記録される。
【0025】
チェーン分割
この手順は、2つの「子」ブロックチェーンS1およびS2を生成するように、ブロックチェーンSの再構成を可能にする。具体的には、チェーン分割は、VSi内のバリデータが子チェーンSiのメンバになるように、バリデータのセットVS=VS1∪VS2の区分化をトリガする。
【0026】
加入処理と分割処理にはともに、バリデータ130のセットおよび対応する台帳を更新するのに再構成ステップが必要であることに留意すべきである。しかしながらチェーンへの加入は、バリデータ130をVSに追加することしか含まないが、チェーン分割は、Sから2つのサテライトチェーン140を作成することが必要であるのでより繊細である。
【0027】
チェーンマージング
チェーン分割手順を補完するために、本発明の実施形態はまた、2つの既存のバリデータセットV1およびV2をマージすることによって、バリデータV'の単一のセットを作成するマージング動作をサポートする。チェーン分割と同様に、この動作は、2つのブロックチェーンシステムS1およびS2を新規ブロックチェーンS'に置き換える再構成をトリガする。
【0028】
本明細書において以降、上記に簡単に紹介した個々の動作について、より詳細に説明する。
【0029】
チェーン作成
本発明の一実施形態においては、チェーンSを(最初から)作成するために、Sについてのバリデータ130として働いて、一緒になり、チェーン構成(すなわち、具体的には、コンセンサスプロトコル、資産分散、ジェネシスブロックなど)について合意することになるユーザVSのセットが仮定される。各チェーン140に関する構成情報は、IM110によって維持されるレジストリ112に記憶され、参加者はそれをオンデマンドでそこから読み出すことができる。
【0030】
具体的には、チェーン140が作成されると、IM110は、次の情報(のサブセット)、
- チェーン140についての一意の識別子S
- バリデータ130のセットVS
- (分散された)コンセンサスプロトコルΠSの仕様
- ΠSに関連する取引台帳LSのジェネシスブロックLS[0]
- (オプション)クライアント120のセットCS(ただし、US=CS∪VSは、Sにおけるすべてのユーザを与える)
- (オプション)Sにおけるユーザ間の資産
【0031】
【0032】
の初期分布
を記録することができる。
【0033】
各ユーザu∈USは、システムにおいて様々な資産を所有することができる。例として、暗号通貨適用例においては、1つのそのような資産は、システムの通貨における出資金であり、出資者間で移転可能な代替性資産である。しかしながら、本発明は、これらの適用例に限定するものではなく、仮想的に、いずれのタイプの資産も取り扱うことができることが明示的に指摘されている。ブロックチェーンSがIM110に登録された後、CSにおけるクライアント120は、取引を提出することによって互いの間で資産の交換を開始することができ、VSにおけるバリデータ130は、これらの取引をシステムの台帳LSに編成するために、コンセンサスプロトコルΠSを起動する。
【0034】
本発明の一実施形態によれば、台帳LSの一貫性およびライブネスを保証するために、VSにおけるビザンチンノードの数は、バリデータ130間で起動するコンセンサスプロトコルΠSに依存するあらかじめ規定されたしきい値を下回ると仮定される。n=|VS|であり、fがSにおけるビザンチンバリデータの数である場合、セキュリティ条件は、f<τnによって正式に表現することができ、ただし、τ∈(0,1)は、システム固有のしきい値である(たとえば、古典的BFTプロトコルでは、それは、τ=1/3を適用する)。
【0035】
チェーンへの加入
本発明の一実施形態によれば、ブロックチェーンシステム100のメンバになるために、ユーザuは、IM110にコンタクトをとって、既存のブロックチェーン140に関する情報を読み出し、これらの中でチェーンSを選択し、アカウントauをSに登録することができる。バリデータ130になるための処理は、選択されたチェーンのバリデータは、悪意のあるバリデータがシステム100に加入することを防止する、または少なくとも制限するために何らかのアクセス制御ポリシーを施行しなければならないので、より複雑にされる。
【0036】
図2は、本発明の一実施形態によるブロックチェーンシステム100のチェーン140への新規バリデータノード130の登録の処理を概略的に示している。したがって、バリデータ130になることを希望するユーザνはまず、
図2におけるS201に示されているように、「チェーンの検索(lookup chains)」要求をIM110に提出することができる。
【0037】
専用のレジストリ112にすべてのメンバシップ情報を維持するIM110は、すべての利用可能なチェーン140に関して学習するためにνに発見機構を提供する。例示の実施形態においては、S202に示されているように、IM110は、チェーンS1、S2、S3がシステム100において現在利用可能であることをユーザνに通知することによってユーザから受領した「チェーンの検索」要求に回答する。
【0038】
次いで、この情報を提供されたユーザνは、特定のチェーンSを自由に選択し、S203に示されているように、「加入(Join)」要求をVSにおけるバリデータ130に直接、提出することができる。
【0039】
VSにおける十分な数のバリデータ130(チェーン固有のアクセス制御ポリシーが実施されていることに依存する数)が要求をサポートする場合、ユーザνは、S204に示されているように、バリデータセットに追加され、すなわち、VS←VS∪{ν}になる。そうでなければ、要求は拒否されることになる。対応する返信(すなわち受諾された(「はい(yes)」)または拒否された(「いいえ(no)」))が、S204に示されているように、ユーザνに伝送される。
【0040】
さらには、IM110によって維持されるレジストリ112を更新し続けるためには、対応する構成更新が、S206に示されているように、IM110に送信される。
【0041】
ビザンチン敵対者の存在下でシステム100の堅牢性を保証するために、所与のブロックチェーン140のバリデータ130のセットの加入のための許可を与える際に注意を払わなければならない。具体的には、新規バリデータ130の入会が、あらかじめ確立されたセキュリティ条件を保つこと、すなわち、ビザンチン参加者の数がそれぞれの許容される、しきい値未満のままであることが必要である。そのため、専用のアクセス制御機構が採用されなければならず、そうでなければ、攻撃者がビザンチン参加者の数を増やし、ブロックチェーン全体を乗っ取る可能性があるからである。そのようなアクセス制御機構は、本発明の範囲には入らない。
【0042】
チェーン分割
新規バリデータ130がシステム100に加入すると、チェーン140のサイズは、無限に成長し得る。許可型コンセンサスプロトコルのスケーラビリティが本質的に限定されることに起因して、最終的にはセットVSは、「大きすぎる」ことになり得、チェーンSの性能を著しく低下させることもあり得る。本発明の実施形態は、この問題に対する解決策を提供する。着想は、親細胞から2つの子細胞を作成する細胞分割の生物学的プロセスと同様に、大きいチェーンSを2つのサブシステムS1およびS2に分割することによって、それをスリムダウンする原理に基づいている。一実施形態においては、分割は、
【0043】
【0044】
になるように行うことができる。
【0045】
図3は、本発明の一実施形態によるチェーン分割処理の高レベルの図である。
【0046】
本発明の実施形態によれば、チェーン分割処理は、ユースケースおよび/または特定のブロックチェーン実装形態に応じて、様々なイベントによってトリガされ得る。例として、システム100は、最大チェーンサイズmをサポートするように設定されることもあり得、この場合においては、ブロックチェーンシステム100のチェーンSが、あらかじめ確立された最大サイズ|VS|≧mに到達するとすぐに、チェーン分割が要求され得る。
【0047】
代替の実施形態によれば、システムは、各サテライトチェーン140の取引スループットを監視し、測定値が有意な(かつ長く続く、すなわち、あらかじめ規定された時間期間よりも長い)スループット低下(すなわち、あらかじめ規定されたしきい値を超える)を示す場合には、チェーン分割をトリガすることが行われ得る。この点で、本発明は、いかなる形でも制限されるものではない。したがって、一般論として、システムは、チェーン分割処理をトリガする、暗黙の適用例固有の機構を含む。トリガ機構はまた、すべての関与するバリデータ130に通知することを含むこともできる。
【0048】
本発明の実施形態によれば、チェーン分割処理は、バリデータ割当てスキームおよび再構成プロトコルの実行を含むことができる。Sを元のサテライトチェーン140とする。バリデータ割当てスキームは、セットVS、すなわち、元のサテライトチェーン140のバリデータ130をVS1およびVS2、すなわち、子システムのバリデータ130に分割するように構成されている。再構成プロトコルは、元のチェーンSを新規チェーンS1およびS2に置き換えるように構成され、それにより、子チェーンが親チェーンと一貫して初期化されることが確認される。
【0049】
一実施形態によれば、バリデータ割当てスキームは、VS、すなわち元のチェーンSのバリデータ130のセットをVS1およびVS2、すなわち子チェーンS1およびS2のバリデータ130のセットに分割する戦略を規定することができる。例として、最適な性能を達成するために、Sにおけるバリデータ130の半分を子チェーンS1に、残りのバリデータ130をS2に割り当てることを行うことができる。
【0050】
加えて、または代替として、バリデータ割当てスキームは、セキュリティ面を考慮することができる。たとえば、セキュリティの目的のために、バリデータ割当てスキームは、使用されているコンセンサスプロトコルに応じて最大許容割合よりも多くのビザンチンノードを含む子チェーンSiがないように、すなわち、fi<τniになるように、バリデータ130を割り当てることを目的とし得る。この文脈においては、適合型攻撃者は、S1またはS2のいずれかにビザンチンバリデータをすべて集中させることによって、子チェーンのうちの1つを乗っ取る機会として、チェーン140の分割を悪用し得る。
【0051】
本発明の一実施形態によれば、バリデータノード130の、子チェーンへの割当ては、決定論的に行うことができる。この文脈においては、前述の攻撃は、Sにおける許容されたビザンチン参加者の割合についてより保守的な境界を施行することによって(コンセンサスプロトコルの許容度と比較して)防止することができることが認識されている。すなわち、チェーンSの基礎となるコンセンサスプロトコルΠSが最大でτnのビザンチンノードまで許容することができる場合、バリデータ割当てスキームは、Sにおけるビザンチンノードのより厳しい境界(たとえば、τn/2)を施行し得る。例として、ΠSが古典的BFTプロトコルである場合、f<n/3ではなく、f<n/6を施行することが提供され得る。このより強い要件は、バリデータ130がS1およびS2にどのように割り当てられるかにかかわらず、すなわち、割当てスキームとは無関係に、両方の子システムのセキュリティを確実にする。この場合においては、単純な割当てスキームは、何らかの基準(たとえば、バリデータの識別子の辞書的順序に従う)に従って、Sにおけるバリデータを決定論的にランク付けし、ランキングの最初のn/2個のバリデータ130をS1に、他のバリデータ130をS2に割り当てることとすることができる。
【0052】
本発明の代替の実施形態によれば、バリデータノード130の、子チェーンへの割当ては、ランダム化されたように行うことができる。言い換えれば、バリデータ130の、子システムへの割当ては、ビザンチンノードを分散するためのランダム化を活用する場合があり得、それにより、すべてのチェーンにおけるビザンチンバリデータと本物のバリデータとの間の比率が、高い確率を伴って、おおよそ保たれる、すなわちf1/n1≒f2/n2≒f/nであることが確保される。ランダム化を使用すると、割当てスキームをわずかにより複雑にするが、確率的セキュリティ保証を確保しながら、より多数のビザンチンバリデータ、すなわち0≦s≦τn/2の場合のf<τn/2+sを許容することができる。
【0053】
古典的BFTシステム(すなわち、τ=1/3)においては、上記のように決定論的な割当て戦略は、最大でn/6個のビザンチンノードを許容することができるが、ランダム化された割当ては、より多くのビザンチン障害、すなわち、0≦s≦n/6の場合のn/6+sを許容することが可能になる。明らかに、s=0は、最も保守的な境界をもたらし、それは、最も高い可能性のセキュリティに対応する(すなわち、システムS1およびS2はともに、確率1を伴ってセキュリティを保つように保証される)。s>0、すなわち、Sにおけるn/6個を上回るノードがビザンチンである場合、sの値が高いほど、両方の子システムにおけるセキュリティを保つ確率は低下するという意味で、子システムのセキュリティ保証は、潔く低下する。例として、Sがf=n/4(=n/6+n/12)個のビザンチンノードを含んでいる場合、子チェーンのいずれかにセキュリティ境界に違反する可能性が低く、両方のチェーンにおけるセキュリティを保つ確率は、sとともに潔く減少する。
【0054】
重要なことは、スキームは、攻撃者がバリデータの選択に影響を与えることを防止するために使用されるランダム性に、ビザンチンノードがバイアスをかけることを防止しなければならないことである。そのため、一実施形態においては、本発明は、たとえば、各バリデータの識別子を最近のブロックチェーンコンテンツとともに暗号化的にハッシュすることによって、ブロックチェーンから抽出されるパブリックに利用可能なランダム性に基づいてバリデータをランク付けする堅牢な割当てスキームを提供する。
【0055】
バリデータ130の、子システムS1およびS2への割当てが確立された後、VSiにおけるバリデータノード130は、それぞれの子チェーンS1およびS2をセットアップするために再構成プロトコルを起動する。VSiにおけるバリデータ130によって実行される新規サテライトチェーンSiをセットアップするこのステップは、両方のシステムS1およびS2がそれらの親システムSの状態と一貫していなければならないことを除いて、上述した「最初から」新規チェーンを作成するのと同様である。すなわち、各子システムSiの状態は、その台帳LSiによって完全に記載され、台帳LSiは、すべてのバリデータν∈VSiについて、LSに登録されたいずれの資産情報A[ν]も再現する。子台帳の親台帳との一貫性を確保するために、すべての(本物の)バリデータ130は、再構成プロトコルを開始する前に、台帳LSの状態に同意していることが必要である。
【0056】
具体的には、本発明の一実施形態によれば、各子システムSiは、次の情報、
- チェーンについての一意の識別子Si、
- バリデータセットVSi、
- 基礎となるコンセンサスプロトコルΠSi、
- LSに登録された取引の履歴、または代わりに、LSと一貫して取引履歴をまとめたジェネシスブロックLSi[0]、
- LSによって指定された資産の分散
【0057】
【0058】
を指定することができる。
【0059】
一実施形態によれば、両方のサテライトチェーンS1およびS2が上述したように初期化された後、対応するバリデータ130は、構成更新要求をIM110に送信することができ、IM110は、サテライトチェーンSの分割、ならびにレジストリ112におけるチェーンS1およびS2の対応する作成を記録することができる。このステップが完了すると同時に、新規に作成されたチェーンは、動作を開始することができる。この循環から、それらのチェーンは、互いに自律的に、かつ独立して進む。
【0060】
チェーンマージング
動的参加の下では、新規バリデータは、既存のブロックチェーンに加入することができ、古いバリデータは離脱することができる。それらのバリデータがシステムから離脱することに起因して、サテライトチェーンのサイズが縮小する場合に対処するために、本発明の実施形態は、2つの(小さい)ブロックチェーンS1およびS2から単一のブロックチェーンS'を作成することを可能にするマージング動作を追加的にサポートする。
【0061】
本発明の一実施形態によれば、チェーンマージングは、2つのサテライトチェーンS1およびS2の、対応するセットV1およびV2が縮小するとき(たとえば、構成可能なしきい値未満に)、それらのバリデータ130によってトリガされ得る。2つのチェーンのバリデータ130は、何らかの外部の発見機構を使用して単一のチェーンに加入することに合意することができる。例として、すべてのサテライトチェーン140のチェーンサイズがIM110のレジストリ112において示されている場合、それらは、レジストリ112において調べることによって、単純に「互いを見出す」ことが可能になる。2つのブロックチェーンをマージするために、バリデータ130は、一緒になり、新規セットV'=V1∪V2を確立し、新規チェーンの一意の識別子S'を選択し、LS1およびLS2と一貫している新規台帳LS'をセットする。新規台帳LS'は、2つの古いチェーンのクライアントによって所有される資産を新規に作成されたチェーンに再現することによってセットアップされ得る。最後に、新規サテライトチェーンS'のバリデータ130は、構成更新をIM110に送信して、システムS1およびS2を置き換えるものとして新規ブロックチェーンS'をレジストリ112に記録する。
【0062】
本発明の実施形態は、ブロックチェーン相互運用性の文脈で自然な適用例を見出す。本発明の実施形態による(元の)サテライトチェーンを(子)サテライトチェーンにセキュアに分割させることにより、自律的に動作するとともに、ブロックチェーンシステム100内のすべての他のチェーンと通信することができる多数のサテライトチェーン140の作成が可能になる。
【0063】
サテライトチェーンのスマートコントラクトレイヤは、クライアントに様々な機能、たとえば他のクライアントに関する情報を読み出すことや、あるアカウントから別のアカウントに資産を移転することなどを提供する。本発明の実施形態によれば、これらの機能は、2つのサテライトチェーン140間のクロスチェーン資産移転について
図4に例示的に示されているように、専用のクロスチェーン通信プロトコルを通じて、サテライトチェーン140のシステム全体に拡張することが可能である。クライアント120がいくつかの資産を、それ自体のアカウントからそれが選択した何らかの他のアカウントに移転することを要求する資産移転は、最も幅広く使用されているブロックチェーン機能であることは確かである。
【0064】
図4を参照する前に、単一のブロックチェーン内で動作する典型的な資産移転について簡単に説明する。そのようなチェーン内の資産移転は、u
s、u
d∈C
S(上記の表記を用いて)の場合に、クライアントがそれ自体のアカウントa
s(振込元アカウント)から何らかの他のアカウントa
d(振込先アカウント)に資産を移転するように取引TXを発行することによって開始される。取引が台帳に書き留められると(すなわち、それが確認されると)すぐに、TXにおいて示されている資産は、a
sからa
dに(仮想的に)移動し、移転は、首尾良く終了する。そうではない場合は、(移転が行われなかったか、または失敗したかのいずれかであるので)資産は移転されない。
【0065】
次に、本発明の実施形態によるクロスチェーン通信の場合に対する資産移転(すなわち、クロスチェーン資産移転)の拡張について、
図4を参照して説明する。このタイプの移転は、アカウントa
s∈Sからアカウントa
d∈S'に、すなわち、相異なるサテライトチェーンSおよびS'にわたって、資産を移動させることを目的とする。それは、標準チェーン内資産移転よりも繊細であり、サテライトチェーン140間の対話が必要である。
【0066】
図4に示されているように、振込元サテライトチェーンS
1から振込先サテライトチェーンS
2へのクロスチェーン資産移転は、クライアント120がそれぞれのクロスチェーン移転要求を伝送すること(S401)によって始まる。要求は、2つのサテライトチェーンの識別子S
1およびS
2、振込元アカウントa
sおよび振込先アカウントa
d、ならびに移転されることになる資産xを含む。
【0067】
S402に示されているように、クロスチェーン移転要求を受領すると同時に、振込元チェーンS1のバリデータは、アカウントasからの資産xの移転を検証し、振込先チェーンS2に移転されることになる資産xにロックをかける。さらには、S1におけるバリデータは、資産xが適切にロックされているチェーン証明を作成する。
【0068】
S403に示されているように、S1におけるバリデータノードは、チェーン証明をS2におけるバリデータに送信して、資産xを振込先チェーンS2に登録する。
【0069】
S404に示されているように、(クロスチェーン)チェーン証明を受領すると同時に、受領側チェーンS2のバリデータは、移転の妥当性および証明の正確性を検証する。移転がチェーン固有のポリシーに従って妥当である場合、資産xは、チェーンS2に追加され、そうでなければ、拒否される。
【0070】
振込先S2チェーンはまた、結果(すなわち、受諾(「はい」)または拒否(「いいえ」))を含む(S405に示されているように)受領チェーン証明を作成し、それを振込元チェーンS1に送信し、それにより、受領が登録される。S406に示されているように、結果が「拒否」である場合、資産xは、S1においてロック解除され、クロスチェーン移転は失敗する。一方、結果が「受諾」である場合、資産は、S1から恒久的に削除される。
【0071】
最後に、S407に示されているように、結果は、クライアント120に折り返し報告される。
【0072】
本明細書に記載される本発明の多くの修正形態および他の実施形態は、前述の説明および関連する図面に提示される教示の便益を有する、本発明が関連する技術分野の当業者には思い浮かぶであろう。そのため、本発明が、開示される特定の実施形態に限定されるものではなく、修正形対および他の実施形態が添付の特許請求の範囲の範囲内に含まれることが意図されることを理解すべきである。特定の用語が本明細書に用いられているが、それらは、一般的かつ説明的な意味でのみ使用されており、限定の目的としたものではない。
【符号の説明】
【0073】
100 許可ベースブロックチェーンシステム
110 アイデンティティマネージャ(Identity Manager、IM)、アイデンティティ管理コンポーネント
112 レジストリ
120 クライアント
130 バリデータ、バリデータノード
140 サテライトチェーン、ブロックチェーン
【国際調査報告】