(58)【調査した分野】(Int.Cl.,DB名)
2つ以上の中継器によって通信可能にリンクされた複数のブロックチェーンインスタンスを含む統合ブロックチェーンネットワーク内のクロスチェーン相互作用のための中継器のコンピュータ実装方法であって、
前記統合ブロックチェーンネットワーク内で第1のブロックチェーンインスタンスおよび第2のブロックチェーンインスタンスと通信可能にリンクされた前記中継器によって、第1のブロックチェーンインスタンスのブロックチェーンドメイン名を識別するステップであって、前記第1のブロックチェーンインスタンスの前記ブロックチェーンドメイン名が前記第1のブロックチェーンインスタンスの一意の識別子であり、かつ前記統合ブロックチェーンネットワーク内の前記第1のブロックチェーンインスタンスのチェーン識別子に一意に対応する、ステップと、
前記中継器によって、前記第2のブロックチェーンインスタンスのブロックチェーンドメイン名を識別するステップであって、前記第2のブロックチェーンインスタンスの前記ブロックチェーンドメイン名が前記第2のブロックチェーンインスタンスの一意の識別子であり、かつ前記統合ブロックチェーンネットワーク内の前記第2のブロックチェーンインスタンスのチェーン識別子に一意に対応する、ステップと、
前記第1のブロックチェーンインスタンスのノードから前記中継器によって、前記第2のブロックチェーンインスタンスにアクセスするためのアクセス要求を受信するステップであって、前記アクセス要求が前記第2のブロックチェーンインスタンスの前記ブロックチェーンドメイン名を含む、ステップと、
前記中継器によって、前記第2のブロックチェーンインスタンスの前記ブロックチェーンドメイン名に基づいて前記第2のブロックチェーンインスタンスの前記チェーン識別子を識別するステップであって、前記第2のブロックチェーンインスタンスの前記チェーン識別子が、前記第2のブロックチェーンインスタンスのブロックチェーンネットワーク構成を示す、ステップと、
前記中継器によって、前記第2のブロックチェーンインスタンスの前記チェーン識別子によって示される前記ブロックチェーンネットワーク構成に基づいて前記第1のブロックチェーンインスタンスに対して前記第2のブロックチェーンインスタンスへのアクセスを提供するステップと
を含む、方法。
前記第1のブロックチェーンインスタンスのブロックチェーンドメイン名を識別するステップが、前記第1のブロックチェーンインスタンスの前記ブロックチェーンドメイン名を前記第1のブロックチェーンインスタンスのローカル識別子として使用するステップを含み、
前記第2のブロックチェーンインスタンスのブロックチェーンドメイン名を識別するステップが、前記第2のブロックチェーンインスタンスの前記ブロックチェーンドメイン名を前記第2のブロックチェーンインスタンスのローカル識別子として使用するステップを含む、
請求項1に記載の方法。
前記第2のブロックチェーンインスタンスの前記ブロックチェーンドメイン名に基づいて前記第2のブロックチェーンインスタンスの前記チェーン識別子を識別するステップが、前記ブロックチェーンドメイン名に基づいて前記中継器においてローカルに記憶されたルックアップ情報に従って前記第2のブロックチェーンインスタンスの前記チェーン識別子を識別するステップを含む、請求項1に記載の方法。
前記第2のブロックチェーンインスタンスの前記ブロックチェーンドメイン名に基づいて前記第2のブロックチェーンインスタンスの前記チェーン識別子を識別するステップが、遠隔統合ブロックチェーンドメイン名サーバからの前記第2のブロックチェーンインスタンスの前記ブロックチェーンドメイン名に基づいて前記第2のブロックチェーンインスタンスの前記チェーン識別子を識別するステップを含む、請求項1に記載の方法。
前記中継器によって前記第2のブロックチェーンインスタンスの前記チェーン識別子によって示される前記ブロックチェーンネットワーク構成に基づいて前記第1のブロックチェーンインスタンスに対して前記第2のブロックチェーンインスタンスへのアクセスを提供するステップが、前記中継器によって、第2の中継器を介して前記第1のブロックチェーンインスタンスに対して前記第2のブロックチェーンインスタンスへのアクセスを提供するステップを含み、
前記第2のブロックチェーンインスタンスの前記チェーン識別子によって示される前記ブロックチェーンネットワーク構成が、前記第2のブロックチェーンインスタンスの同じチェーン識別子に基づいて前記第2の中継器によって識別され、
前記第2のブロックチェーンインスタンスが、前記第2のブロックチェーンインスタンスの前記チェーン識別子によって示される前記ブロックチェーンネットワーク構成に基づいて前記第2の中継器によってアクセスされる、
請求項1に記載の方法。
前記第2のブロックチェーンインスタンスの前記チェーン識別子によって示される前記ブロックチェーンネットワーク構成が、前記第2のブロックチェーンインスタンスの同じチェーン識別子に基づいて前記第2の中継器においてローカルに記憶されたルックアップ情報に従って前記第2の中継器によって識別される、請求項4に記載の方法。
前記第2のブロックチェーンインスタンスの前記チェーン識別子によって示される前記ブロックチェーンネットワーク構成が、遠隔統合ブロックチェーンドメイン名サーバからの前記第2のブロックチェーンインスタンスの前記ブロックチェーンドメイン名に基づいて前記第2の中継器によって識別される、請求項4に記載の方法。
前記第1のブロックチェーンインスタンスの前記ブロックチェーンドメイン名が第1の人間が読取り可能なラベルを含み、前記第2のブロックチェーンインスタンスの前記ブロックチェーンドメイン名が第2の人間が読取り可能なラベルを含む、請求項1に記載の方法。
1つまたは複数のプロセッサに結合され、かつ命令が記憶された非一時的コンピュータ可読記憶媒体であって、前記命令が、前記1つまたは複数のプロセッサによって実行されたとき、請求項1から8までのうちの1つまたは複数の請求項の方法による動作を前記1つまたは複数のプロセッサに実行させる、非一時的コンピュータ可読記憶媒体。
【発明を実施するための形態】
【0020】
様々な図面における同様の参照シンボルは、同様の要素を示す。
【0021】
本開示の実装形態は、ブロックチェーンシステムに対するドメイン名方式のためのコンピュータ実装方法を含む。より詳細には、本開示の実装形態は、ブロックチェーンシステム内の統合ドメイン名方式を使用するクロスチェーン相互作用を対象とする。
【0022】
いくつかの実装形態では、アクションは、第1のブロックチェーンインスタンスのブロックチェーンドメイン名を、統合ブロックチェーンネットワーク内で第1のブロックチェーンインスタンスおよび第2のブロックチェーンインスタンスと通信可能にリンクされた中継器によって識別することであって、第2のブロックチェーンインスタンスのブロックチェーンドメイン名は、第2のブロックチェーンインスタンスの一意の識別子であり、統合ブロックチェーンネットワーク内の第2のブロックチェーンインスタンスのチェーン識別子に一意に対応する、識別することと、第2のブロックチェーンインスタンスのブロックチェーンドメイン名を識別することであって、第1のブロックチェーンインスタンスのブロックチェーンドメイン名は、第1のブロックチェーンインスタンスの一意の識別子であり、統合ブロックチェーンネットワーク内の第1のブロックチェーンインスタンスのチェーン識別子に一意に対応する、識別することと、第2のブロックチェーンインスタンスにアクセスするためのアクセス要求を、第1のブロックチェーンインスタンスのノードから受信することであって、アクセス要求は、第2のブロックチェーンインスタンスのブロックチェーンドメイン名を含む、受信することと、第2のブロックチェーンインスタンスのブロックチェーンドメイン名に基づいて第2のブロックチェーンインスタンスのチェーン識別子を識別することであって、第2のブロックチェーンインスタンスのチェーン識別子は、第2のブロックチェーンインスタンスのブロックチェーンネットワーク構成を示す、識別することと、第2のブロックチェーンインスタンスのチェーン識別子によって示されるブロックチェーンネットワーク構成に基づいて第1のブロックチェーンインスタンスに対して第2のブロックチェーンインスタンスへのアクセスを提供することとを含む。
【0023】
本開示の実装形態に対するさらなる文脈を提供するために、上記で紹介したように、(たとえば、ピアツーピアノードからなる)コンセンサスネットワークと呼ぶこともできる分散型台帳システム(DLS)およびブロックチェーンネットワークは、参加エンティティがトランザクションをセキュアにかつ不変に行ってデータを記憶することを可能にする。ブロックチェーンという用語は一般にビットコイン暗号通貨ネットワークに関連付けられるが、本明細書では、ブロックチェーンは一般に、特定のユーザ事例に言及することなく、DLSを指すために使用される。上記で紹介したように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして提供することができる。
【0024】
パブリックブロックチェーンネットワークでは、コンセンサスプロセスは、コンセンサスネットワークのノードによって制御される。たとえば、数百、数千、さらには数百万のエンティティがパブリックブロックチェーンネットワークで協働することができ、エンティティの各々は、パブリックブロックチェーンネットワーク内で少なくとも1つのノードを作動させる。それに応じて、パブリックブロックチェーンネットワークは、参加エンティティに関するパブリックネットワークと見なすことができる。いくつかの例では、大部分のエンティティ(ノード)は、ブロックが有効であってブロックチェーンネットワークのブロックチェーン(分散型台帳)に追加されるために、ブロックごとに署名しなければならない。例示的なパブリックブロックチェーンネットワークは、ピアツーピア支払いネットワークであるビットコインネットワークを含む。ビットコインネットワークは、ブロックチェーンと呼ばれる分散型台帳を利用する。しかしながら、上記のように、ブロックチェーンという用語は、一般にビットコインネットワークに特に言及することなく、分散型台帳を指すために使用される。
【0025】
一般に、パブリックブロックチェーンネットワークは、パブリックトランザクションをサポートする。パブリックトランザクションは、パブリックブロックチェーンネットワーク内のすべてのノードと共有され、グローバルブロックチェーン内に記憶される。グローバルブロックチェーンは、すべてのノードにわたって複製されるブロックチェーンである。すなわち、すべてのノードは、グローバルブロックチェーンに関して完全な状態で合意している。コンセンサス(たとえば、ブロックチェーンへのブロックの追加に対する承諾)を得るために、コンセンサスプロトコルが、パブリックブロックチェーンネットワーク内に実装される。例示的なコンセンサスプロトコルは、限定はしないが、ビットコインネットワーク内に実装されるプルーフオブワーク(POW)を含む。
【0026】
一般に、プライベートブロックチェーンネットワークは、読み取りおよび書き出しの許可を中央で制御する特定のエンティティに対して提供される。エンティティは、どのノードがブロックチェーンネットワークに参加することができるかを制御する。したがって、プライベートブロックチェーンネットワークは、一般に誰がネットワークに参加することを許されるか、およびそれらの参加のレベル(たとえば、いくつかのトランザクションにおいてのみ)に対する制限を課す許可型ネットワーク(permissioned network)と呼ばれる。様々なタイプのアクセス制御メカニズム(たとえば、既存の参加者が新しいエンティティの追加について採決を行う、規制当局が入会を管理することができる)を使用することができる。
【0027】
一般に、コンソーシアムブロックチェーンネットワークは、参加エンティティの間でプライベートである。コンソーシアムブロックチェーンネットワークでは、コンセンサスプロセスは、認可されたノードのセットによって制御され、1つまたは複数のノードがそれぞれのエンティティ(たとえば、金融機関、保険会社)によって作動される。たとえば、10のエンティティ(たとえば、金融機関、保険会社)のうちの1つのコンソーシアムがコンソーシアムブロックチェーンネットワークを作動させることができ、エンティティの各々がコンソーシアムブロックチェーンネットワーク内の少なくとも1つのノードを作動させる。それに応じて、コンソーシアムブロックチェーンネットワークは、参加エンティティに関するプライベートネットワークと見なすことができる。いくつかの例では、各エンティティ(ノード)は、ブロックが有効であってブロックチェーンに追加されるために、ブロックごとに署名しなければならない。いくつかの例では、エンティティ(ノード)(たとえば、少なくとも7つのエンティティ)の少なくとも1つのサブセットは、ブロックが有効であってブロックチェーンに追加されるために、ブロックごとに署名しなければならない。
【0028】
本開示の実装形態が、コンソーシアムブロックチェーンネットワークを参照しながら本明細書でより詳細に説明される。しかしながら、本開示の実装形態は、任意の適切なタイプのブロックチェーンネットワーク内で実現されてもよいことが意図されている。
【0029】
本開示の実装形態が、上記の文脈に鑑みて本明細書でより詳細に説明される。より詳細には、上記で紹介したように、本開示の実装形態は、ブロックチェーンシステム内のクロスチェーン相互作用に対するドメイン名方式を対象とする。
【0030】
様々なブロックチェーンのプラットフォーム、環境、または製品が、異なるブロックチェーン技術に基づいて開発されている。例示的なブロックチェーン製品には、イーサリアムおよびビットコインが含まれる。現在のブロックチェーンネットワークには、異なるブロックチェーン製品に基づいて展開される複数のブロックチェーンインスタンスが含まれる。たとえば、現在のブロックチェーンネットワークには、イーサリアムまたはビットコインの技術に基づいて開発されているパブリックブロックチェーン、プライベートブロックチェーン、またはコンソーシアムブロックチェーンなどの様々なブロックチェーンインスタンスが含まれる。
【0031】
各ブロックチェーンインスタンスの現在のアクセスモードは、ブロックチェーンまたはSDKなどのそれの技術的構成要素のクライアントノード(クライアント端末とも呼ばれる)からのアクセスを必要とする。特定のブロックチェーンインスタンスに正確に接続するために、クライアントは、そのブロックチェーンネットワーク構成をロードする必要がある。これらのブロックチェーンネットワーク構成は、一般的には、ハッシュ、会員証明書(member certificate)などである。これらの構成は、人間が読み取ることができず、どのチェーンをその構成が識別するかを識別することは困難である。
【0032】
本開示は、ブロックチェーンネットワークに対するドメイン名方式を提供する。詳細には、統合ブロックチェーンドメイン名(UBCDN)は、ブロックチェーンネットワーク内の各ブロックチェーンインスタンス(ブロックチェーンネットワークインスタンスまたはチェーンとも呼ばれる)の一意の識別子としてサーバに提供される。たとえば、ブロックチェーンインスタンスは、ブロックチェーンプラットフォームまたはブロックチェーン技術(たとえば、イーサリアム)に基づくブロックチェーンの実装形態または展開であってもよい。各UBCDNは、ブロックチェーンインスタンスの対応するネットワーク構成(ブロックチェーンネットワーク構成とも呼ばれる)を用いてブロックチェーンインスタンスのドメイン名(ブロックチェーンドメイン名とも呼ばれる)を一意に結びつける。いくつかの実装形態では、ブロックチェーンネットワーク構成は、チェーン識別子によって表すかまたは示すことができる。ブロックチェーンインスタンスのクライアントノードは、チェーン識別子を識別するためにUBCDNをパースすることによって対応するブロックチェーンネットワーク構成を取得することができる。ブロックチェーンネットワーク構成に基づいて、クライアントノードは特定のブロックチェーンインスタンスにリンクするかまたはそうでなければアクセスすることができる。
【0033】
説明するドメイン名方式は、異なるブロックチェーンの製品または技術に基づいて展開された複数のまたはすべてのブロックチェーンインスタンスを含む統合(またはグローバル)ブロックチェーンネットワーク内でブロックチェーンシステム間の相互作用に対する統合プロトコルを提供することができる。統合ブロックチェーンネットワーク内のすべてのブロックチェーンインスタンスは、同じドメイン名方式に従って一意のUBCDNを割り当てられる。いくつかの実装形態では、統合ブロックチェーンネットワーク内の各ブロックチェーンインスタンスは、統合ブロックチェーンネットワーク内で使用される異なるプラットフォーム、技術、または中継器とは無関係に統合ブロックチェーンネットワーク内のすべてのブロックチェーンインスタンスによって認識されてもよい単一のUBCDNを割り当てられる。いくつかの実装形態では、UBCDNは、統合ブロックチェーンネットワーク内のブロックチェーンインスタンスの管理的自律性、権限、または支配の範囲を定義する。いくつかの実装形態では、統合ブロックチェーンネットワークは、IPネットワーク内のインターネットの対応物と見なされてもよい一方で、UBCDNは、IPリソースのIPアドレスを有するIPネットワークにおけるIPリソースのドメイン名のマッピングと見なされてもよい。
【0034】
統合ブロックチェーンネットワーク内の各ブロックチェーンインスタンスは、マルチチェーンまたはクロスチェーンの通信を容易にするために、対応するUBCDNによって一意に識別されてもよい。たとえば、クロスチェーン相互作用のためのリレーチェーンであって、そこにおいて、各ブロックチェーンはリレーチェーンネットワーク内で識別子(ID)を割り当てられるが、そのIDはローカルスコープを有するのみで他のリレーチェーンネットワーク内で再使用されることがない、リレーチェーンを使用するCOSMOSなどの既存のクロスチェーン実装形態とは違って、説明するドメイン名方式では、UBCDNは、統合ブロックチェーンネットワーク内にどれだけ多くのリレーチェーンが含まれていても、統合ブロックチェーンネットワーク内のすべてのブロックチェーンインスタンスによって使用することができ、グローバルに認識可能である。
【0035】
その上、説明するドメイン名方式は、ブロックチェーンシステム内のクロスチェーン相互作用に対する識別プロトコルまたはアドレッシングプロトコルを簡略化する。たとえば、説明するドメイン名方式では、単一のUBCDNは、ブロックチェーンインスタンスを一意に識別するのに十分であり、異なるブロックチェーンネットワークの間の相互作用に対して統合ブロックチェーンネットワーク内のすべてのブロックチェーンインスタンスによってグローバルに認識可能である一方で、COSMOSでは、ブロックチェーンインスタンスは、他のブロックチェーンと相互作用するためにブロックチェーンインスタンスに対する複数のリレーチェーンをブロックチェーンインスタンスが結合するときに、複数の異なるIDを割り当てられる。
【0036】
さらに、UBCDNは人間が読取り可能な識別子またはラベルを含むことができ、ユーザが容易にブロックチェーンインスタンスを記憶してそれに到達するのを助け、したがってブロックチェーンインスタンスの採用または使用を促進する。一例として、パブリックブロックチェーン、プライベートブロックチェーン、またはコンソーシアムブロックチェーンの所有者または事業者は、それらの名前に対応するブロックチェーンドメイン名を選択することができ、ユーザがブロックチェーンインスタンスの識別子を記憶するのを助け、ブロックチェーンドメイン名に対応するチェーン識別子の変換、解決(resolution)、またはそうでなければ識別をさらに容易にし、統合ブロックチェーンネットワーク内のクロスチェーン相互作用を促進させる。
【0037】
ブロックチェーンインスタンスを識別するために容易に認識できて記憶できる名前を提供することに加えて、UBCDNは、ブロックチェーンインスタンスの基礎となるネットワーク構成が(たとえば、システムが更新すること、またはネットワークのアドレストポロジー内の異なる物理ロケーションに移動もしくは移行することによって)変化する場合でも、ブロックチェーンインスタンスが、そのブロックチェーンドメイン名を保持することを可能にする。そのような変更または更新の場合には、ブロックチェーンインスタンスのチェーン識別子は変更されてもよいが、ブロックチェーンドメイン名は同じままであってもよい。UBCDN所有者は、ブロックチェーンドメイン名のマッピングを更新されたチェーン識別子に変更することができ、他者(たとえば、他のブロックチェーンインスタンスまたはクライアントノード)が、ブロックチェーンインスタンスにアドレス指定してアクセスするために同じブロックチェーンドメイン名を使用することを可能にする。
【0038】
図1は、本開示の実装形態を実行するために使用することができる例示的な環境100を示す。いくつかの例では、例示的な環境100は、エンティティがコンソーシアムブロックチェーンネットワーク102に参加することを可能にする。例示的な環境100は、コンピューティングデバイスまたはシステム106、108とネットワーク110とを含む。いくつかの例では、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはそれらの組合せを含み、ウェブサイト、ユーザデバイス(たとえば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例では、ネットワーク110は、ワイヤードおよび/またはワイヤレス通信リンクを介してアクセスされてもよい。
【0039】
図示の例では、コンピューティングシステム106、108は、それぞれコンソーシアムブロックチェーンネットワーク102内のノードとしての参加を可能にする任意の適切なコンピューティングシステムを含むことができる。例示的なコンピューティングデバイスは、限定はしないが、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンを含む。いくつかの例では、コンピューティングシステム106、108は、コンソーシアムブロックチェーンネットワーク102と相互作用するために1つまたは複数のコンピュータ実装サービスをホストする。たとえば、コンピューティングシステム106は、第1のエンティティが1つまたは複数の他のエンティティ(たとえば、他のユーザ)とのそのトランザクションを管理するために使用するトランザクション管理システムなどの第1のエンティティ(たとえば、ユーザA)のコンピュータ実装サービスをホストすることができる。コンピューティングシステム108は、第2のエンティティが1つまたは複数の他のエンティティ(たとえば、他のユーザ)とのそのトランザクションを管理するために使用するトランザクション管理システムなどの第2のエンティティ(たとえば、ユーザB)のコンピュータ実装サービスをホストすることができる。
図1の例では、コンソーシアムブロックチェーンネットワーク102は、ノードのピアツーピアネットワークとして表され、コンピューティングシステム106、108は、それぞれ第1のエンティティおよび第2のエンティティのノードを提供し、それらのノードはコンソーシアムブロックチェーンネットワーク102に参加する。
【0040】
図2は、本開示の実装形態による例示的な概念アーキテクチャ200を示す。例示的な概念アーキテクチャ200は、エンティティレイヤ202と、ホストされるサービスレイヤ204と、ブロックチェーンネットワークレイヤ206とを含む。図示の例では、エンティティレイヤ202は、Entity_1 (E1)、Entity_2 (E2)およびEntity_3 (E3)の3つのエンティティを含み、各エンティティはそれぞれのトランザクション管理システム208を有する。
【0041】
図示の例では、ホストされるサービスレイヤ204は、各トランザクション管理システム208に対するインターフェース210を含む。いくつかの例では、それぞれのトランザクション管理システム208は、プロトコル(たとえば、ハイパーテキスト転送プロトコルセキュア(HTTPS:hypertext transfer protocol secure))を使用してネットワーク(たとえば、
図1のネットワーク110)を介してそれぞれのインターフェース210と通信する。いくつかの例では、各インターフェース210は、それぞれのトランザクション管理システム208とブロックチェーンネットワークレイヤ206との間の通信接続を提供する。より詳細には、インターフェース210は、ブロックチェーンネットワークレイヤ206のブロックチェーンネットワーク212と通信する。いくつかの例では、インターフェース210とブロックチェーンネットワークレイヤ206との間の通信は、遠隔手続き呼出し(RPC)を使用して行われる。いくつかの例では、インターフェース210は、それぞれのトランザクション管理システム208に対するブロックチェーンネットワークノードを「ホストする」。たとえば、インターフェース210は、ブロックチェーンネットワーク212へのアクセスに対するアプリケーションプログラミングインターフェース(API)を提供する。
【0042】
本明細書で説明するように、ブロックチェーンネットワーク212は、ブロックチェーン216内の情報を不変に記録するいくつかのノード214を含むピアツーピアネットワークとして提供される。単一のブロックチェーン216が概略的に示されているが、ブロックチェーン216の複数のコピーが提供され、ブロックチェーンネットワーク212にわたって維持される。たとえば、各ノード214は、ブロックチェーンの1つのコピーを記憶する。いくつかの実装形態では、ブロックチェーン216は、コンソーシアムブロックチェーンネットワークに参加する2つ以上のエンティティ間で実行されるトランザクションに関連する情報を記憶する。
【0043】
図3は、本開示の実装形態による、ブロックチェーンインスタンスの例示的な統合ブロックチェーンドメイン名(UBCDN)300を示す。UBCDN300は、ブロックチェーンドメイン名310とブロックチェーンインスタンスの対応するチェーン識別子320とを含むことができる。ブロックチェーンドメイン名310は、人間が読取り可能なラベルであってもよい。チェーン識別子320は、ブロックチェーンインスタンスのブロックチェーンネットワーク構成を示すことができ、ブロックチェーンネットワーク構成に基づいてブロックチェーンインスタンスへのアクセスを可能にする。いくつかの実装形態では、UBCDN300は追加のフィールドを含むことができるか、またはストリングもしくは別のデータ構造として表されてもよい。
【0044】
ブロックチェーンドメイン名310は、ユーザフレンドリであってもよい。たとえば、ブロックチェーンドメイン名310は、テキストベースラベルであってもよく、そのラベルは、対応する数値のチェーン識別子320(たとえば、イーサリアムプロトコル内で使用される40文字16進アドレス)より記憶しやすい。いくつかの実装形態では、ブロックチェーンドメイン名310は、ストリングまたは別のデータ構造として表されてもよい。
【0045】
いくつかの実装形態では、ブロックチェーンドメイン名310は、基礎となるブロックチェーンインスタンスのソース、所有権、または組織の理解をさらに容易にするように定義されたシンタックスを有することができる。たとえば、ブロックチェーンドメイン名310は、IPネットワーク内のドメイン名と同様にして設計されてもよい。ブロックチェーンドメイン名310は、1つまたは複数の部品またはラベルを含むことができる。1つまたは複数のラベルは連結することができ、名前におけるラベルが右から左に降下するドメインの階層を有する。左側の各ラベルは、右側のドメインの再分割またはサブドメインを規定する。たとえば、chain1. organization1のブロックチェーンドメイン名310は、基礎となるブロックチェーンインスタンスchain1が、organization1ドメインのサブドメインであってorganization1に属することを示す。いくつかの実装形態では、ブロックチェーンドメイン名310は、追加のまたは異なるシンタックスを定義することができる。
【0046】
チェーン識別子320は、ブロックチェーンネットワーク内のブロックチェーンインスタンスにアドレス指定してアクセスするために使用されるアドレス可能識別子を含むことができる。チェーン識別子320は、ブロックチェーンインスタンスのブロックチェーンネットワーク構成を示すことができ、ブロックチェーンネットワーク構成に基づいてブロックチェーンインスタンスへのアクセスを可能にする。たとえば、複数のブロックチェーンインスタンスが、イーサリアム技術に基づいて展開されてもよい。たとえば、ブロックチェーンインスタンスは、mainnetチェーン、testingチェーン、プライベートチェーン、またはコンソーシアムチェーンであってもよい。イーサリアムクライアントは、イーサリアムブロックチェーンインスタンスのジェネシスブロック(すなわち、第1のブロック)をロードすることによってイーサリアムブロックチェーンインスタンスとの接続を確立することができる。ジェネシスブロックは、イーサリアムブロックチェーンインスタンスの一意の識別子と等価である。それに応じて、いくつかの実装形態では、イーサリアムブロックチェーンインスタンスのジェネシスブロックの1つまたは複数のフィールド(たとえば、ハッシュ値)が、イーサリアムブロックチェーンインスタンスのチェーン識別子320として抽出されてもよい。いくつかの実装形態では、ブロックチェーンインスタンスのチェーン識別子は、ブロックチェーンインスタンスのジェネシスブロックのハッシュ値だけでなくブロックチェーンインスタンスを識別するネットワークIDも含むことができる。いくつかの実装形態では、ネットワークIDは、たとえば使用されるネットワークIDに応じて別々にトランザクションに署名することによって、ブロックチェーンインスタンス上のトランザクションが他のチェーン上のトランザクションとは違って見せることが可能である。そのため、ネットワークIDは、ブロックチェーンインスタンスにリンクするかまたはそうでなければアクセスするために使用されてもよい追加のネットワーク構成を示す。チェーン識別子320は、たとえばブロックチェーンインスタンスの基礎となるブロックチェーンの技術またはプラットフォームに応じて追加のまたは異なる構成要素またはフィールドを含むことができる。
【0047】
UBCDN300は、ブロックチェーンドメイン名310およびその対応するブロックチェーンインスタンスのチェーン識別子320の1対1マッピングを作成する。ブロックチェーンドメイン名310が与えられると、その対応するチェーン識別子320は、変換、解決、またはそうでなければ識別されてもよく、その逆も同様である。そのため、ノードは、チェーン識別子320によって示されるブロックチェーンネットワーク構成に基づいてブロックチェーンインスタンスにアクセスすることができる。例として、ブロックチェーンインスタンスのブロックチェーンドメイン名310は、インターネットプロトコル(IP)リソース(たとえば、example.com)のドメイン名システム(DNS)によるドメイン名に類似し、チェーン識別子320は、IPネットワーク内のIPリソースのIPアドレスに類似する。
【0048】
いくつかの実装形態では、所与のブロックチェーンドメイン名310に対して、その対応するチェーン識別子320は、キャッシュされるか、またはそうでなければクエリコンピュータ(querying computer)の内部でローカルにまたは統合ブロックチェーンネットワーク内で(たとえば、中央UBCDNサーバ内で)リモートに記憶される、UBCDNルックアップ情報を使用して変換、解決、またはそうでなければ識別されてもよい。UBCDNルックアップ情報は、複数のUBCDN300を含むことができ、各UBCDN300は、複数のブロックチェーンインスタンスに対応する。UBCDNルックアップ情報は、たとえばルックアップテーブルまたは別のデータ構造内に記憶されてもよい。統合ブロックチェーンネットワーク内の1つまたは複数のノード(たとえば、クライアントノード、コンセンサスノード、またはリレーノード)またはサーバは、UBCDNルックアップ情報を記憶することができる。UBCDNルックアップ情報に基づいて探索することによって、所与のブロックチェーンドメイン名310に対応するチェーン識別子320が識別されてもよく、その逆も同様である。
【0049】
UBCDN情報がローカルにキャッシュされるとき、UBCDNルックアッププロセスは、たとえば遠隔UBCDNサーバにおいて遠隔UBCDNルックアップを実行するより速やかであってもよい。いくつかの実装形態では、後者の遠隔UBCDNルックアップにおいて、ユーザは、ブロックチェーンドメイン名310、たとえば“chain1. organization1”をユーザのコンピューティングデバイス(すなわち、クライアントノード)のSDKに入力する。クライアントノードは、ブロックチェーンドメイン名310“chain1. organization1”を含む要求またはクエリを遠隔UBCDNサーバに、たとえばインターネットオフザチェーン(Internet off the chain)を介して送信する。要求を受信すると、遠隔UBCDNサーバは、UBCDNルックアップ情報の中で、ブロックチェーンドメイン名310“chain1. organization1”に一致するエントリを探索し、ブロックチェーンドメイン名310に対応するチェーン識別子320を識別する。次いで、遠隔UBCDNサーバは、たとえばブロックチェーンドメイン名310に対応するチェーン識別子320を含む応答をクライアントノードに送信することによって、ブロックチェーンドメイン名310に対応するチェーン識別子320を用いてクライアントノードに応答する。
【0050】
図4は、本開示の実装形態による、統合ブロックチェーンネットワーク内の例示的なUBCDN管理方式400を示す。例示的なUBCDN管理方式400は、UBCDNに基づいてクロスチェーン通信に対する強化された信頼およびセキュリティを提供することができる。いくつかの実装形態では、例示的なUBCDN管理方式400は、統合ブロックチェーンネットワーク内に信頼を確立するために公開鍵基盤(PKI)に依存する。
【0051】
たとえば、認証局(CA)410(たとえば、PKIの事業者)が使用されてもよい。CA410は、UBCDN430a、430bおよび430cの各所有者(総称して、UBCDN所有者430)にドメイン証明書(「ドメインCert」)420a、420bおよび420c(総称して、ドメイン証明書420)を発行する。UBCDN所有者430は、たとえばブロックチェーンインスタンスの所有者または事業者であってもよい。図示のように、UBCDN所有者430aはブロックチェーンドメイン名“Example1.chain”の所有者であり、UBCDN所有者430bはブロックチェーンドメイン名“Example2.chain”の所有者であり、UBCDN所有者430cはブロックチェーンドメイン名“ExampleN.chain”の所有者である。
【0052】
いくつかの実装形態では、UBCDN所有者430は、証明書署名要求(
図4に示さず)をCA410に提出することによってドメイン証明書420を取得することができる。いくつかの実装形態では、証明書要求は、ブロックチェーンドメイン名と、ブロックチェーンインスタンスの情報(たとえば、チェーン識別子または他のネットワーク構成)と、UBCDN所有者430の公開鍵とを含む電子文書である。UBCDN所有者430がブロックチェーンインスタンスのブロックチェーンドメイン名を管理者として管理する権限を有することが確認されると、CA410は、要求に署名し、したがってパブリックドメイン証明書420を作成することができる。いくつかの実装形態では、ドメイン証明書420は、ブロックチェーンドメイン名(たとえば、“Example1.chain”)の基礎となるブロックチェーンインスタンスにアクセスすることを欲する任意のノード(たとえば、クライアントノード、コンセンサスノード、またはリレーノード)に供給されてもよく、CA410がUBCDN所有者430を信頼して証明書を発行したことをノードに対して証明する。
【0053】
ドメイン証明書420は、UBCDN所有者430のブロックチェーンドメイン名(たとえば、“Example1.chain”)と公開鍵とを含むことができる。UBCDN所有者430は、公開鍵に対応する秘密鍵ホルダである。CA410は、CA自体の秘密鍵を使用してブロックチェーンドメイン名およびUBCDN所有者430の公開鍵にデジタルで署名することができる。ドメイン証明書420は、CA410によってブロックチェーンドメイン名およびUBCDN所有者430の公開鍵に署名されたデジタル署名を含むことができる。
【0054】
図3に関して説明したように、UBCDNは、ブロックチェーンドメイン名(たとえば、“Example1.chain”)と、対応するチェーン識別子とを含むことができる。UBCDN所有者430は、UBCDNを公表し、UBCDN所有者430の秘密鍵を使用してUBCDNに署名することができる。いくつかの実装形態では、UBCDN所有者430は、UBCDNが認証または検証されてもよいように、1つまたは複数のUBCDNメッセージ(たとえば、UBCDNメッセージ440a、450a、440b)を公表する。
【0055】
いくつかの実装形態では、UBCDNメッセージ440は、UBCDNと、得られるUBCDNのデジタル署名と、ドメイン証明書とを含むことができる。ドメイン証明書は、CA410から受信されたそれぞれのドメイン証明書420であってもよい。UBCDNは、ブロックチェーンドメイン名およびチェーン識別子(たとえば、
図3に関して説明したブロックチェーンドメイン名310およびチェーン識別子320)を含むことができる。図示のように、UBCDN所有者430aは、ブロックチェーンドメイン名442a“Example1.chain”および対応するチェーン識別子444a“Chain Identifier V0”と、デジタル署名446aと、ドメイン証明書448aとを含むUBCDNメッセージ440aを発行する。ドメイン証明書448aは、CA410によって発行され、CA410からUBCDN所有者430aによって受信されたドメイン証明書420aであってもよい。デジタル署名446aは、UBCDN所有者430aの秘密鍵を使用してUBCDN(すなわち、この場合は、ブロックチェーンドメイン名442a“Example1.chain”および対応するチェーン識別子444a“Chain Identifier V0”)にUBCDN所有者430aが署名することによって得ることができる。
【0056】
同様に、UBCDN所有者430bは、ブロックチェーンドメイン名442b“Example2.chain”および対応するチェーン識別子444b“Chain Identifier Vx”と、デジタル署名446bと、ドメイン証明書448bとを含むUBCDNメッセージ440bを発行する。ドメイン証明書448bは、CA410によって発行され、CA410からUBCDN所有者430bによって受信されたドメイン証明書420bであってもよい。デジタル署名446aは、UBCDN所有者430bの秘密鍵を使用してUBCDN(すなわち、この場合は、ブロックチェーンドメイン名442b“Example2.chain”および対応するチェーン識別子444a“Chain Identifier V0”)にUBCDN所有者430bが署名することで得ることができる。
【0057】
いくつかの実装形態では、認証または検証のプロセスは、たとえばUBCDNメッセージに基づいてUBCDNの有効性を検証するために、統合ブロックチェーンネットワーク内の任意のノード、または第三者によって実行されてもよい。上記によって、特に、ブロックチェーンシステム内のクロスチェーン相互作用に対するモバイル支払いトランザクションに関する電子商取引にとって重要であるセキュリティが確保されてもよい。
【0058】
いくつかの実装形態では、認証または検証のプロセスは、たとえばブロックチェーンドメイン名がドメイン証明書内のブロックチェーンドメイン名と同じであることを検証することと、CA410によって発行されたドメイン証明書(たとえば、ドメイン証明書420a)内の公開鍵を使用してUBCDN上のデジタル署名(たとえば、デジタル署名446a)を検証することによってUBCDN所有者(たとえば、UBCDN所有者430a)がブロックチェーンドメイン名(たとえば、ブロックチェーンドメイン名442a“Example1.chain”)のホルダであることを検証することと、ドメイン証明書(たとえば、ドメイン証明書448a)が信頼できるCA410によって発行されたことを検証することとを含むことができる。
【0059】
いくつかの実装形態では、UBCDNの有効性を検証した後、たとえば認証または検証のプロセスに基づいて、クライアントノードは、統合ブロックチェーンネットワーク内のクロスチェーン相互作用のためにUBCDNを使用することができる。たとえば、クライアントノードは、UBCDNメッセージを受信して読み取り、UBCDNの有効性または適法性を検証してUBCDNがUBCDNの所有者によって発行されたことを確認し、次いで、たとえばUBCDN内のブロックチェーンドメイン名に対応するチェーン識別子を識別することによって、UBCDNを使用してブロックチェーンインスタンスを一意に識別してアクセスすることができる。
【0060】
図5は、本開示の実装形態による、統合ブロックチェーンネットワーク内のクロスチェーン相互作用に対するブロックチェーンインスタンスのブロックチェーンドメイン名を使用するための例示的なプロセス500を示す。いくつかの実装形態では、例示的なプロセス500は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して実行されてもよい。提示を明快にするために、以下の説明は、本明細書の他の形態の文脈においてプロセス500を概略的に説明する。たとえば、例示的なプロセス500は、
図1に関して説明したコンソーシアムブロックチェーンネットワーク102のコンピューティングシステム106または108などの第1のブロックチェーンインスタンスのクライアントノード、または
図2に関して説明したブロックチェーンネットワーク212のノード214によって実行されてもよい。しかしながら、プロセス500は、たとえば必要に応じて、任意の適切なシステム、環境、ソフトウェア、およびハードウェアによって、またはシステム、環境、ソフトウェア、およびハードウェアの組合せによって実行されてもよいことが理解されよう。いくつかの実装形態では、プロセス500の様々なステップは、並列に、組み合わせて、ループで、または任意の順序で実行されてもよい。
【0061】
510において、第1のブロックチェーンインスタンスのクライアントノードは、第2の異なるブロックチェーンインスタンスのブロックチェーンドメイン名を取得する。いくつかの実装形態では、第1のブロックチェーンインスタンスおよび第2のブロックチェーンインスタンスは、異なるブロックチェーンプラットフォーム上に展開される。いくつかの実装形態では、第1のブロックチェーンインスタンスおよび第2のブロックチェーンインスタンスは、異なる所有者または事業者に属する。第1のブロックチェーンインスタンスおよび第2のブロックチェーンインスタンスは、2つ以上の中継器によって通信可能にリンクされたいくつかのブロックチェーンインスタンスを含む統合ブロックチェーンネットワーク内にある。
【0062】
ブロックチェーンドメイン名は、統合ブロックチェーンネットワークが2つ以上の中継器を含む場合でも、統合ブロックチェーンネットワーク内の第2のブロックチェーンインスタンスの一意の識別子である。いくつかの実装形態では、統合ブロックチェーンネットワーク内のいくつかのブロックチェーンインスタンスの各々は、統合ブロックチェーンネットワーク内のいくつかのブロックチェーンインスタンスの各々を一意に識別する唯一のブロックチェーンドメイン名を有する。
【0063】
ブロックチェーンドメイン名は、人間が読取り可能なラベルを含む。いくつかの実装形態では、人間が読取り可能なラベルはテキストベースラベルを含む。ブロックチェーンドメイン名は、第2のブロックチェーンインスタンスのチェーン識別子に一意に対応する。ブロックチェーンドメイン名およびチェーン識別子は、
図3で説明したUBCDN300などのUBCDNによって表されてもよい。一例として、ブロックチェーンドメイン名はブロックチェーンドメイン名310であってもよい一方で、チェーン識別子はUBCDN300内の対応するチェーン識別子320であってもよい。
【0064】
520において、第1のブロックチェーンインスタンスのクライアントノードは、第2のブロックチェーンインスタンスのブロックチェーンドメイン名に基づいて第2のブロックチェーンインスタンスのチェーン識別子を識別し、第2のブロックチェーンインスタンスのチェーン識別子は、第2のブロックチェーンインスタンスのブロックチェーンネットワーク構成を示す。いくつかの実装形態では、第2のブロックチェーンインスタンスのチェーン識別子は、たとえば
図3に関して説明したように、第2のブロックチェーンインスタンスのジェネシスブロックのハッシュ値と第2のブロックチェーンインスタンスのネットワーク識別子とを含む。
【0065】
いくつかの実装形態では、ブロックチェーンドメイン名に基づいて第2のブロックチェーンインスタンスのチェーン識別子を識別することは、ブロックチェーンドメイン名に基づいてクライアントノードにおいてローカルに記憶されたルックアップ情報に従って第2のブロックチェーンインスタンスのチェーン識別子を識別することを含む。
【0066】
いくつかの実装形態では、ブロックチェーンドメイン名に基づいて第2のブロックチェーンインスタンスのチェーン識別子を識別することは、ブロックチェーンドメイン名に基づいて遠隔統合ブロックチェーンドメイン名サーバからの第2のブロックチェーンインスタンスのチェーン識別子を識別することを含む。たとえば、第1のブロックチェーンインスタンスのクライアントノードは、要求またはクエリを統合ブロックチェーンドメイン名サーバに送信する。要求は、第2のブロックチェーンインスタンスのチェーン識別子を識別するためのブロックチェーンドメイン名を含む。次いで、第1のブロックチェーンインスタンスのクライアントノードは、要求に対する応答を統合ブロックチェーンドメイン名サーバから受信し、その応答は、第2のブロックチェーンインスタンスのチェーン識別子を含む。
【0067】
530において、第1のブロックチェーンインスタンスのクライアントノードは、第2のブロックチェーンインスタンスのチェーン識別子によって示されるブロックチェーンネットワーク構成に基づいて第2のブロックチェーンインスタンスにアクセスする。たとえば、第1のブロックチェーンインスタンスは、第2のブロックチェーンインスタンスのチェーン識別子によって示される第2のブロックチェーンインスタンスのジェネシスブロックのハッシュ値に基づいて、第2のブロックチェーンインスタンスのクライアントノードを介して第2のブロックチェーンインスタンスにアクセスする。いくつかの実装形態では、第1のブロックチェーンインスタンスは、第1のブロックチェーンインスタンスと第2のブロックチェーンインスタンスの両方に通信可能にリンクされた中継器(たとえば、リレーノードまたはリレーチェーン)または他のアプリケーションを使用することによって、第2のブロックチェーンインスタンスのクライアントノードを介して第2のブロックチェーンインスタンスにアクセスする。
【0068】
いくつかの実装形態では、第2のブロックチェーンインスタンスからのデータにアクセスしてそれを取得するために、第2のブロックチェーンインスタンスのクライアントノードは、第2のブロックチェーンのノード(たとえば、コンセンサスノード)のIPアドレスおよびポート番号、ならびに第2のブロックチェーンインスタンスのジェネシスブロックのハッシュ値などのネットワーク構成を構成することができる。第2のブロックチェーンインスタンスのクライアントノードは、第2のブロックチェーンインスタンスのノードのIPアドレスおよびポート番号を介して第2のブロックチェーンインスタンスのノードと接続することができる。第2のブロックチェーンインスタンスのクライアントノードは、第2のブロックチェーンインスタンスのノードのデータを読み取り、検索し、ダウンロードし、またはそうでなければ取得し、取得されたデータが第2のブロックチェーンインスタンスのジェネシスブロックのハッシュ値を指すかどうかを判断するために、たとえば第2のブロックチェーンインスタンスの簡易版支払い検証(SPV:Simple Payment Verification)プロトコルに基づいて、取得されたデータが第2のブロックチェーンインスタンスから来たものかどうかを検証することができる。
【0069】
540において、第1のブロックチェーンインスタンスのクライアントノードは、第2のブロックチェーンインスタンスのブロックチェーンドメイン名に基づいて、第1のブロックチェーンインスタンスと第2のブロックチェーンインスタンスとの間でクロスチェーントランザクションを実行する。いくつかの実装形態では、第1のブロックチェーンインスタンスと第2のブロックチェーンインスタンスとの間でクロスチェーントランザクションを実行することは、第2のブロックチェーンインスタンスのブロックチェーンドメイン名を含むクロスチェーン要求およびデータ要求を、第1のブロックチェーンインスタンスと第2のブロックチェーンインスタンスの両方に通信可能にリンクされた中継器に、第1のブロックチェーンインスタンスによって送信することを含む。中継器は、クロスチェーン要求を受信し、第2のブロックチェーンインスタンスのブロックチェーンドメイン名を読み取り、第2のブロックチェーンインスタンスの対応するブロックチェーンネットワーク構成をロードし、その構成を使用して第2のブロックチェーンインスタンスに接続する。中継器は、第2のブロックチェーンインスタンスから要求されたデータを検索し、ダウンロードし、またはそうでなければ受信して、要求されたデータを第1のブロックチェーンインスタンスに送信することができる。
【0070】
図6は、本開示の実装形態による、ブロックチェーンインスタンスのUBCDNを認証するための例示的なプロセス600を示す。いくつかの実装形態では、例示的なプロセス600は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して実行されてもよい。提示を明快にするために、以下の説明は、本明細書の他の形態の文脈においてプロセス600を概略的に説明する。たとえば、例示的なプロセス600は、
図1に関して説明したコンソーシアムブロックチェーンネットワーク102のコンピューティングシステム106もしくは108、または
図2に関して説明したブロックチェーンネットワーク212のノード214によって実行されてもよい。しかしながら、プロセス600は、たとえば必要に応じて、任意の適切なシステム、環境、ソフトウェア、およびハードウェアによって、またはシステム、環境、ソフトウェア、およびハードウェアの組合せによって実行されてもよいことが理解されよう。いくつかの実装形態では、プロセス600の様々なステップは、並列に、組み合わせて、ループで、または任意の順序で実行されてもよい。
【0071】
610において、コンピューティングシステムは、ブロックチェーンインスタンスの統合ブロックチェーンドメイン名(UBCDN)メッセージを取得する。いくつかの実装形態では、コンピューティングシステムは、統合ブロックチェーンネットワークの第三者である。いくつかの実装形態では、コンピューティングシステムは、統合ブロックチェーンネットワーク内のブロックチェーンインスタンスとは異なる第2のブロックチェーンインスタンスのクライアントノードである。
【0072】
UBCDNメッセージは、たとえば
図4に関して説明したUBCDNメッセージ440であってもよい。UBCDNメッセージは、ブロックチェーンインスタンスのUBCDNと、UBCDN上のUBCDN所有者のデジタル署名と、UBCDNのドメイン証明書とを含む。
【0073】
ブロックチェーンインスタンスのUBCDNはブロックチェーンインスタンスのブロックチェーンドメイン名を含み、ブロックチェーンドメイン名は、2つ以上の中継器によって通信可能にリンクされたいくつかのブロックチェーンインスタンスを含む統合ブロックチェーンネットワーク内のブロックチェーンインスタンスの一意の識別子である。ブロックチェーンドメイン名は、人間が読取り可能なラベルと、ブロックチェーンドメイン名に一意に対応するブロックチェーンインスタンスのチェーン識別子とを含む。
【0074】
いくつかの実装形態では、UBCDNのドメイン証明書は、ブロックチェーンインスタンスのブロックチェーンドメイン名と、UBCDN所有者の公開鍵と、ブロックチェーンインスタンスのブロックチェーンドメイン名およびUBCDN所有者の公開鍵へのCAのデジタル署名とを含む。
【0075】
620において、コンピューティングシステムは、UBCDNのドメイン証明書が認証局(CA)の公開鍵を使用して信頼できるCAによって発行されたかどうかを検証する。いくつかの実装形態では、CAのデジタル署名は、CAがブロックチェーンインスタンスのブロックチェーンドメイン名上に署名すること、およびUBCDN所有者の公開鍵がCAの公開鍵に対応するCAの秘密鍵を使用することによって取得される。いくつかの実装形態では、UBCDNのドメイン証明書がCAの公開鍵を使用して信頼できるCAによって発行されたかどうかを検証することは、UBCDNのドメイン証明書がドメイン証明書、CAのデジタル署名、およびCAの公開鍵を使用してCAによって発行されたことを検証することを含む。
【0076】
630において、UBCDNのドメイン証明書がCAによって発行されたことを検証することに応答して、コンピューティングシステムは、UBCDNがUBCDN所有者の公開鍵を使用してUBCDN所有者によって発行されたかどうかを検証する。いくつかの実装形態では、UBCDNの所有者のデジタル署名は、UBCDNの所有者の公開鍵に対応する秘密鍵を使用して、UBCDNの所有者がUBCDNに署名することによって取得される。いくつかの実装形態では、ブロックチェーンインスタンスのUBCDNがUBCDNの所有者の公開鍵を使用してUBCDN所有者によって発行されたかどうかを検証することは、UBCDN、UBCDNの所有者のデジタル署名、およびUBCDNの所有者の公開鍵を使用してUBCDNの所有者によってUBCDNが発行されたことを検証することを含む。たとえば、UBCDNの所有者は所有者の秘密鍵を使用してUBCDNに署名して、たとえば署名アルゴリズムに従ってデジタル署名を生成することができる。UBCDNメッセージの受信者としてのコンピューティングシステムは、たとえば署名検証アルゴリズムに従って、UBCDN、デジタル署名、および所有者の公開鍵を使用して、UBCDNがUBCDN所有者によって発行されたかどうかを判断することができる。
【0077】
640において、UBCDNがUBCDN所有者によって発行されたことを検証することに応答して、コンピューティングシステムは、たとえば
図5に関して説明した例示的なプロセス500に従って、ブロックチェーンインスタンスのブロックチェーンドメイン名に基づいてブロックチェーンインスタンスと第2のブロックチェーンインスタンスとの間でクロスチェーントランザクションを実行する。
【0078】
図7は、本開示の実装形態による、ブロックチェーンインスタンスのUBCDNの所有者(UBCDN所有者)の例示的なプロセス700を示す。いくつかの実装形態では、例示的なプロセス700は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して実行されてもよい。提示を明快にするために、以下の説明は、本明細書の他の形態の文脈においてプロセス700を概略的に説明する。たとえば、例示的なプロセス700は、
図4に関して説明したUBCDN所有者430によって実行されてもよい。しかしながら、プロセス700は、たとえば必要に応じて、任意の適切なシステム、環境、ソフトウェア、およびハードウェアによって、またはシステム、環境、ソフトウェア、およびハードウェアの組合せによって実行されてもよいことが理解されよう。いくつかの実装形態では、プロセス700の様々なステップは、並列に、組み合わせて、ループで、または任意の順序で実行されてもよい。
【0079】
710において、ブロックチェーンインスタンスのUBCDNの所有者(UBCDN所有者430などのUBCDN所有者)は、ブロックチェーンインスタンスのUBCDNのドメイン証明書(たとえば、ドメイン証明書420)を信頼できる認証局(CA)(たとえば、CA410)から取得する。ブロックチェーンインスタンスのUBCDNは、ブロックチェーンインスタンスのブロックチェーンドメイン名と、ブロックチェーンドメイン名に一意に対応するブロックチェーンインスタンスのチェーン識別子とを含む。UBCDNは、たとえば
図3に関して説明したUBCDN300であってもよい。ブロックチェーンドメイン名は、2つ以上の中継器によって通信可能にリンクされたいくつかのブロックチェーンインスタンスを含む統合ブロックチェーンネットワーク内のブロックチェーンインスタンスの一意の識別子である。いくつかの実装形態では、ブロックチェーンドメイン名は、人間が読取り可能なラベルを含む。チェーン識別子は、ブロックチェーンインスタンスのブロックチェーンネットワーク構成を示す。
【0080】
UBCDNのドメイン証明書は、ブロックチェーンインスタンスのブロックチェーンドメイン名と、UBCDN所有者の公開鍵と、ブロックチェーンインスタンスのブロックチェーンドメイン名およびUBCDN所有者の公開鍵へのCAのデジタル署名とを含む。UBCDNのドメイン証明書は、たとえば
図4に関して説明したドメイン証明書420であってもよい。
【0081】
720において、UBCDN所有者は、たとえば署名アルゴリズムに従って、たとえばUBCDN所有者の秘密鍵を使用してブロックチェーンインスタンスのUBCDNに署名する。
【0082】
730において、UBCDN所有者は、ブロックチェーンインスタンスのUBCDNメッセージ(たとえば、UBCDNメッセージ440aまたは440b)を公表する。UBCDNメッセージは、ブロックチェーンインスタンスのUBCDNと、UBCDNへの署名に起因するUBCDN所有者のデジタル署名と、UBCDNのドメイン証明書とを含む。
【0083】
740において、UBCDN所有者は、ブロックチェーンインスタンスの更新されたブロックチェーンネットワーク構成を示すブロックチェーンインスタンスの更新されたチェーン識別子を識別する。たとえば、ブロックチェーンインスタンスのブロックチェーンネットワーク構成の変更または更新が、(たとえば、システム更新か、またはジェネシスブロックなどの1つまたは複数のコンピューティングデバイスの物理ロケーションの移動に起因して)発生することがある。チェーン識別子は、(たとえば、ブロックチェーンインスタンスのジェネシスブロックのハッシュ値を更新することによる)ブロックチェーンインスタンスのブロックチェーンネットワーク構成の更新を反映するために更新されることがある。たとえば、
図4に示すように、同じブロックチェーンドメイン名442a“Example1.chain”に対して、チェーン識別子444a“Chain Identifier V0”は、ブロックチェーンインスタンスのブロックチェーンネットワーク構成の変更を反映するために、チェーン識別子454a“Chain Identifier V1”に更新されている。
【0084】
750において、UBCDN所有者は、たとえばUBCDN所有者の秘密鍵を使用してブロックチェーンインスタンスの更新されたUBCDNに署名する。ブロックチェーンインスタンスの更新されたUBCDNは、ブロックチェーンインスタンスのブロックチェーンドメイン名とブロックチェーンインスタンスの更新されたチェーン識別子とを含む。たとえば、
図4に示すように、ブロックチェーンインスタンスの更新されたUBCDNは、同じブロックチェーンドメイン名442a“Example1.chain”と更新されたチェーン識別子454a“Chain Identifier V1”とを含む。
【0085】
760において、UBCDN所有者は、ブロックチェーンインスタンスの更新されたUBCDNメッセージを公表する。更新されたUBCDNメッセージは、ブロックチェーンインスタンスの更新されたUBCDNと、更新されたUBCDNへの署名に起因するUBCDN所有者の更新されたデジタル署名と、UBCDNのドメイン証明書とを含む。たとえば、
図4に示すように、UBCDN所有者430aは、ブロックチェーンドメイン名442a“Example1.chain”および更新されたチェーン識別子454a“Chain Identifier V1”と、デジタル署名456aと、ドメイン証明書458aとを含む更新されたUBCDNメッセージ450aを発行する。ドメイン証明書458aは、CA410によって発行され、CA410からUBCDN所有者430aによって受信されたドメイン証明書420aであってもよい。更新されたデジタル署名456aは、UBCDN所有者430aの秘密鍵を使用して、更新されたUBCDN(すなわち、この場合はブロックチェーンドメイン名442a“Example1.chain”および更新されたチェーン識別子454a“Chain Identifier V1”)にUBCDN所有者430aが署名することによって得ることができる。
【0086】
図8は、本開示の実装形態による、統合ブロックチェーンネットワーク内のクロスチェーン相互作用のための中継器の例示的なプロセス800を示す。統合ブロックチェーンネットワークは、2つ以上の中継器によって通信可能にリンクされたいくつかのブロックチェーンインスタンスを含む。いくつかの実装形態では、例示的なプロセス800は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して実行されてもよい。提示を明快にするために、以下の説明は、本明細書の他の形態の文脈においてプロセス800を概略的に説明する。たとえば、例示的なプロセス800は、統合ブロックチェーンネットワーク内の中継器によって実行されてもよい。しかしながら、プロセス800は、たとえば必要に応じて、任意の適切なシステム、環境、ソフトウェア、およびハードウェアによって、またはシステム、環境、ソフトウェア、およびハードウェアの組合せによって実行されてもよいことが理解されよう。たとえば、中継器は、ノード(たとえば、
図1に関して説明したコンピューティングシステム106もしくは108、または
図2に関して説明したノード214)、ブロックチェーンインスタンス(たとえば、ブロックチェーンネットワーク102またはブロックチェーンネットワーク212)、または統合ブロックチェーンネットワーク内の別のコンピュータシステムであってもよい。いくつかの実装形態では、プロセス800の様々なステップは、並列に、組み合わせて、ループで、または任意の順序で実行されてもよい。
【0087】
810において、統合ブロックチェーンネットワーク内の第1のブロックチェーンインスタンスおよび第2のブロックチェーンインスタンスと通信可能にリンクされた中継器は、第1のブロックチェーンインスタンスのブロックチェーンドメイン名を識別する。第1のブロックチェーンインスタンスのブロックチェーンドメイン名は、第1のブロックチェーンインスタンスの一意の識別子であり、統合ブロックチェーンネットワーク内の第1のブロックチェーンインスタンスのチェーン識別子に一意に対応する。いくつかの実装形態では、第1のブロックチェーンインスタンスのブロックチェーンドメイン名は、第1の人間が読取り可能なラベルを含む。
【0088】
820において、中継器は、第2のブロックチェーンインスタンスのブロックチェーンドメイン名を識別する。第2のブロックチェーンインスタンスのブロックチェーンドメイン名は、第2のブロックチェーンインスタンスの一意の識別子であり、統合ブロックチェーンネットワーク内の第2のブロックチェーンインスタンスのチェーン識別子に一意に対応する。いくつかの実装形態では、第2のブロックチェーンインスタンスのブロックチェーンドメイン名は、第2の人間が読取り可能なラベルを含む。
【0089】
いくつかの実装形態では、中継器は、通信可能にリンクされた各ブロックチェーンに対するローカル識別子を指定することができる。ローカル識別子は、中継器の使用に対して指定され、統合ブロックチェーンネットワーク内の他のノードまたは中継器によって使用されることができない。いくつかの実装形態では、第1のブロックチェーンインスタンスのブロックチェーンドメイン名を識別することは、第1のブロックチェーンインスタンスのブロックチェーンドメイン名を第1のブロックチェーンインスタンスのローカル識別子として使用すること、または第1のブロックチェーンインスタンスのローカル識別子を第1のブロックチェーンインスタンスのブロックチェーンドメイン名と置き換えることを含む。同様に、第2のブロックチェーンインスタンスのブロックチェーンドメイン名を識別することは、第2のブロックチェーンインスタンスのブロックチェーンドメイン名を第2のブロックチェーンインスタンスのローカル識別子として使用すること、または第2のブロックチェーンインスタンスの一意の識別子を第2のブロックチェーンインスタンスのブロックチェーンドメイン名と置き換えることを含む。
【0090】
830において、中継器は、第2のブロックチェーンインスタンスにアクセスするためのアクセス要求を受信する。アクセス要求は、第2のブロックチェーンインスタンスのブロックチェーンドメイン名を含む。
【0091】
840において、中継器は、第2のブロックチェーンインスタンスのブロックチェーンドメイン名に基づいて第2のブロックチェーンインスタンスのチェーン識別子を識別する。第2のブロックチェーンインスタンスのチェーン識別子は、第2のブロックチェーンインスタンスのブロックチェーンネットワーク構成を示す。
【0092】
いくつかの実装形態では、第2のブロックチェーンインスタンスのブロックチェーンドメイン名に基づいて第2のブロックチェーンインスタンスのチェーン識別子を識別することは、ブロックチェーンドメイン名に基づいて中継器においてローカルに記憶されたルックアップ情報に従って第2のブロックチェーンインスタンスのチェーン識別子を識別することを含む。
【0093】
いくつかの実装形態では、第2のブロックチェーンインスタンスのブロックチェーンドメイン名に基づいて第2のブロックチェーンインスタンスのチェーン識別子を識別することは、遠隔統合ブロックチェーンドメイン名サーバからの第2のブロックチェーンインスタンスのブロックチェーンドメイン名に基づいて第2のブロックチェーンインスタンスのチェーン識別子を識別することを含む。
【0094】
850において、中継器は、第2のブロックチェーンインスタンスのチェーン識別子によって示されるブロックチェーンネットワーク構成に基づいて第1のブロックチェーンインスタンスに対して第2のブロックチェーンインスタンスへのアクセスを提供する。いくつかの実装形態では、中継器は、クロスチェーン相互作用のために設計された通信プロトコルに従って、第1のブロックチェーンインスタンスに対して第2のブロックチェーンインスタンスへのアクセスを提供する。たとえば、中継器は、第2のブロックチェーンインスタンスのブロックチェーンドメイン名に対応する第2のブロックチェーンインスタンスのチェーン識別子によって示されるブロックチェーンネットワーク構成をロードすることができる。中継器は、第2のブロックチェーンインスタンスに接続するためにブロックチェーンネットワーク構成を使用し、第1のブロックチェーンインスタンスによって要求された結果を第2のブロックチェーンインスタンスから取得し、たとえば
図5に関して説明した例示的な技法に従って第1のブロックチェーンインスタンスによって要求された結果を第1のブロックチェーンインスタンスに返す。
【0095】
いくつかの実装形態では、第2のブロックチェーンインスタンスのチェーン識別子によって示されるブロックチェーンネットワーク構成に基づいて第1のブロックチェーンインスタンスに対して第2のブロックチェーンインスタンスへのアクセスを中継器によって提供することは、第2の中継器を介して第1のブロックチェーンインスタンスに対して第2のブロックチェーンインスタンスへのアクセスを中継器によって提供することを含む。
【0096】
いくつかの実装形態では、第2のブロックチェーンインスタンスのチェーン識別子によって示されるブロックチェーンネットワーク構成は、第2のブロックチェーンインスタンスの同じチェーン識別子に基づいて第2の中継器によって識別される。いくつかの実装形態では、第2のブロックチェーンインスタンスは、第2のブロックチェーンインスタンスのチェーン識別子によって示されるブロックチェーンネットワーク構成に基づいて第2の中継器によってアクセスされる。言い換えれば、第1のブロックチェーンインスタンスは、第2のブロックチェーンインスタンスと相互作用するためにどの中継器が使用されるか、またはいくつの中継器が使用されるかにかかわらず、第2のブロックチェーンインスタンスの同じドメイン名を使用することができる。
【0097】
いくつかの実装形態では、第2のブロックチェーンインスタンスのチェーン識別子によって示されるブロックチェーンネットワーク構成は、第2のブロックチェーンインスタンスの同じチェーン識別子に基づいて第2の中継器においてローカルに記憶されたルックアップ情報に従って第2の中継器によって識別される。
【0098】
いくつかの実装形態では、第2のブロックチェーンインスタンスのチェーン識別子によって示されるブロックチェーンネットワーク構成は、遠隔統合ブロックチェーンドメイン名サーバからの第2のブロックチェーンインスタンスのブロックチェーンドメイン名に基づいて第2の中継器によって識別される。
【0099】
説明した特徴は、デジタル電子回路の中に、またはコンピュータハードウェア、ファームウェア、ソフトウェア、もしくはそれらの組合せの中に実装されてもよい。装置は、プログラマブルプロセッサによって実行するために情報キャリア内に(たとえば、機械可読記憶デバイス内に)有形に組み込まれたコンピュータプログラム製品内に実装されてもよく、方法ステップは、入力データ上で作動させて出力を生成することによって説明する実装形態の機能を実行するために、プログラマブルプロセッサが命令のプログラムを実行することによって実行されてもよい。説明する特徴は、データおよび命令をデータ記憶システムから受信し、データ記憶システムに伝送するように結合された少なくとも1つのプログラマブルプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含むプログラマブルシステム上で実行可能である1つまたは複数のコンピュータプログラム内に有利に実装される場合がある。コンピュータプログラムは、一定のアクティビティを実行するかまたは一定の結果をもたらすために、コンピュータ内で直接的または間接的に使用されてもよい命令のセットである。コンピュータプログラムは、コンパイラ型言語またはインタープリタ型言語を含む任意の形態のプログラミング言語で書かれてもよく、コンピュータプログラムは、スタンドアローンプログラムとして、またはコンピューティング環境内で使用するのに適したモジュール、構成要素、サブルーチン、もしくは他のユニットとして含む、任意の形態で展開されてもよい。
【0100】
命令のプログラムの実行に適したプロセッサは、例として、汎用と専用の両方のマイクロプロセッサ、および唯一のプロセッサまたは任意の種類のコンピュータの複数のプロセッサのうちの1つを含む。一般に、プロセッサは、リードオンリーメモリもしくはランダムアクセスメモリまたは両方から命令およびデータを受信することになる。コンピュータの要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリとを含む場合がある。一般に、コンピュータはまた、データファイルを記憶するための1つまたは複数の大容量記憶デバイスを含んでもよく、またはそのデバイスと通信するために動作可能に結合されてもよく、そのようなデバイスは、内蔵ハードディスクおよびリムーバブルディスクなどの磁気ディスクと、光磁気ディスクと、光ディスクとを含む。コンピュータプログラム命令およびデータを有形に埋め込むのに適した記憶デバイスは、EPROM、EEPROMおよびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを例として含む、すべての形態の不揮発性メモリを含む。プロセッサおよびメモリは、特定用途向け集積回路(ASIC)によって補完されてもよく、またはASIC内に内蔵されてもよい。
【0101】
ユーザとの相互作用を提供するために、特徴は、情報をユーザに表示するためのブラウン管(CRT)または液晶ディスプレイ(LCD)モニタなどのディスプレイデバイス、ならびにユーザがコンピュータに入力を供給してもよいキーボードおよびマウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装されてもよい。
【0102】
特徴は、データサーバなどのバックエンド構成要素を含むか、またはアプリケーションサーバもしくはインターネットサーバなどのミドルウェア構成要素を含むか、またはグラフィカルユーザインターフェースもしくはインターネットブラウザを有するクライアントコンピュータなどのフロントエンド構成要素を含むか、または任意のそれらの組合せを含む、コンピュータシステム内に実装されてもよい。本システムの構成要素は、通信ネットワークなどの任意の形態または媒体のデジタルデータ通信によって接続されてもよい。通信ネットワークの例には、たとえばローカルエリアネットワーク(LAN)と、広域ネットワーク(WAN)と、インターネットを形成するコンピュータおよびネットワークとが含まれる。
【0103】
コンピュータシステムは、クライアントとサーバとを含んでもよい。クライアントおよびサーバは、概して、互いから離れており、一般に説明したネットワークなどのネットワークを介して対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行し、互いに対してクライアント-サーバ関係を有するコンピュータプログラムにより生じる。
【0104】
加えて、図に示す論理フローは、望ましい結果を達成するために、図示の特定の順序または逐次的順序を必要としない。加えて、他のステップが与えられてもよく、またはステップが説明したフローから除去されてもよく、他の構成要素が説明したシステムに追加されてもよく、またはそこから取り除かれてもよい。それに応じて、他の実装形態が以下の特許請求の範囲内に入る。
【0105】
本開示のいくつかの実装形態が説明された。それにもかかわらず、本開示の趣旨および範囲から逸脱することなく、様々な変更形態が作成されてもよいことが理解されよう。それに応じて、他の実装形態が以下の特許請求の範囲内に入る。