(57)【要約】本開示の解決策は、高度にスケーラブルなトランザクションスループットを実現するために分散型台帳間の複数台帳方式振替を提供する。ソース分散型台帳（２００Ｓ）からターゲット分散型台帳（２００Ｔ）に値を効果的に振り替える一方、値の二重使用を防止するように複数台帳方式振替（４００）を書き込むための方法および命令コードが開示される。これによって、ソース台帳の合計値が振り替えられた値によって減少するが、ターゲット台帳の合計値が同じ金額によって増加するように台帳は変換される。高度にスケーラブルなトランザクションスループットを実現するために複数の分散型台帳間の複数台帳方式振替を利用するシステムアーキテクチャ（５００および７００）も開示される。分散型台帳間の複数台帳方式振替を実施するように構成されるコンピュータ装置（５１０および６１０）も開示される。他の実施形態および特徴も開示される。【選択図】図２
2021508111.tif 000002
【特許請求の範囲】
【請求項１】
ターゲット分散型台帳のデジタル表現された経済価値を、前記デジタル表現された経済価値がソース分散型台帳で生じかつエンティティによって所有される場合に用いる方法であって、
未使用であり、かつ前記エンティティによって所有されるトランザクション出力を有する前記ソース分散型台帳において既存のトランザクションを判断することと、
前記ターゲット分散型台帳にコミットするための開始トランザクションを構築しかつサブミットすることであって、前記開始トランザクションはトランザクション出力を有する、ことと、
前記ソース分散型台帳にコミットするためのロックトランザクションを構築しかつサブミットすることであって、前記ロックトランザクションは、前記ソース分散型台帳における前記既存のトランザクションの前記トランザクション出力を用いかつロックし、前記ターゲット分散型台帳における前記開始トランザクションを参照する、ことと、
前記ターゲット分散型台帳にコミットするための終了トランザクションを構築しかつサブミットすることであって、前記終了トランザクションは、前記ターゲット分散型台帳における前記開始トランザクションの前記トランザクション出力を用い、かつ、前記ソース分散型台帳における前記ロックトランザクションを参照する、ことと、を含む、
方法。
【請求項２】
前記開始トランザクションの前記トランザクション出力は、前記終了トランザクションが前記ロックトランザクションを参照する時、および前記開始トランザクションの前記トランザクション出力の値が前記既存のトランザクションの前記トランザクション出力の値に一致する時にのみ、前記終了トランザクションによって用いることが可能であることを特徴とする、請求項１に記載の方法。
【請求項３】
前記ロックトランザクションは前記開始トランザクションを参照するためにマークルツリー参照を使用することを特徴とする、請求項２に記載の方法。
【請求項４】
前記終了トランザクションは前記ロックトランザクションを参照するためにマークルツリー参照を使用することを特徴とする、請求項３に記載の方法。
【請求項５】
前記方法は、前記ソース分散型台帳のノードスタックによって行われることを特徴とする、請求項１に記載の方法。
【請求項６】
前記開始トランザクションおよび前記終了トランザクションは、前記ターゲット分散型台帳のノードスタックにサブミットされ、前記ターゲット分散型台帳の前記ノードスタックは、前記開始トランザクションおよび前記終了トランザクションを前記ターゲット分散型台帳にさらにサブミットすることを特徴とする、請求項５に記載の方法。
【請求項７】
前記方法は前記ターゲット分散型台帳のノードスタックによって行われることを特徴とする、請求項１に記載の方法。
【請求項８】
前記ロックトランザクションは前記ターゲット分散型台帳のノードスタックにサブミットされ、前記ソース分散型台帳の前記ノードスタックは前記ロックトランザクションを前記ソース分散型台帳にさらにサブミットすることを特徴とする、請求項７に記載の方法。
【請求項９】
前記方法は、それぞれが複数のノードおよびこれらの間の通信接続を有する複数の分散型台帳ネットワークと、前記複数の分散型台帳ネットワーク間のインターネットワーク接続と、を含むシステムにおいて実行され、
局所分散型台帳を維持する分散型台帳ネットワークは、前記システムにおける他の分散型台帳に対する複数の対外支払い検証ノードを含むことを特徴とする、請求項１に記載の方法。
【請求項１０】
前記方法は、システムの中で行われ、それぞれが複数のノードおよびこれらの間のインターネットワーク接続を有する複数の分散型台帳ネットワークと、前記複数の分散型台帳ネットワークによって共有されるノードのセットであって、前記セットにおけるノードは、いくつかあるサービスの中で特に、トランザクションの台帳間検証を提供することを特徴とする、請求項１に記載の方法。
【請求項１１】
プロセッサによって実行される時、
未使用であり、かつエンティティによって所有されるトランザクション出力を有するソース分散型台帳において既存のトランザクションを判断するステップと、
ターゲット分散型台帳にコミットするための開始トランザクションを構築しかつサブミットするステップであって、前記開始トランザクションはトランザクション出力を有する、ステップと、
前記ソース分散型台帳にコミットするためのロックトランザクションを構築しかつサブミットするステップであって、前記ロックトランザクションは、前記ソース分散型台帳における前記既存のトランザクションの前記トランザクション出力を用いかつロックし、前記ターゲット分散型台帳における前記開始トランザクションを参照する、ステップと、
前記ターゲット分散型台帳にコミットするための終了トランザクションを構築しかつサブミットするステップであって、前記終了トランザクションは、前記ターゲット分散型台帳における前記開始トランザクションの前記トランザクション出力を用い、かつ、前記ソース分散型台帳における前記ロックトランザクションを参照する、ステップと、を行う、記憶された命令を含む、
非一時的な有形コンピュータ可読媒体。
【請求項１２】
前記開始トランザクションの前記トランザクション出力は、前記終了トランザクションが前記ロックトランザクションを参照する時、および前記開始トランザクションの前記トランザクション出力の値が前記既存のトランザクションの前記トランザクション出力の値に一致する時にのみ、前記終了トランザクションによって用いることが可能であることを特徴とする、請求項１１に記載のコンピュータ可読媒体。
【請求項１３】
前記ロックトランザクションは前記開始トランザクションを参照するためにマークルツリー参照を使用することを特徴とする、請求項１２に記載のコンピュータ可読媒体。
【請求項１４】
前記終了トランザクションは前記ロックトランザクションを参照するためにマークルツリー参照を使用することを特徴とする、請求項１３に記載のコンピュータ可読媒体。
【請求項１５】
前記命令は前記ソース分散型台帳のノードスタックによって行われることを特徴とする、請求項１１に記載のコンピュータ可読媒体。
【請求項１６】
前記命令は前記ターゲット分散型台帳のノードスタックによって行われることを特徴とする、請求項１１に記載のコンピュータ可読媒体。
【請求項１７】
ソースブロックチェーンにおける既存のトランザクションの未使用のトランザクション出力におけるデジタル表現された通貨額を、ターゲットブロックチェーンにおいて前記デジタル表現された通貨額を用いる１つまたは複数のトランザクション出力に振り替える方法であって、
前記ターゲットブロックチェーンにコミットするための開始トランザクションを構築しかつサブミットすることであって、前記開始トランザクションは前記デジタル表現された通貨額を含む前記未使用のトランザクション出力を有することと、
前記ソースブロックチェーンにコミットするためのロックトランザクションを構築しかつサブミットすることであって、前記ロックトランザクションは、前記ソースブロックチェーンの前記既存のトランザクションの前記トランザクション出力を用いかつロックし、前記ターゲットブロックチェーンの前記開始トランザクションを参照する、ことと、
前記ターゲットブロックチェーンにコミットするための終了トランザクションを構築しかつサブミットすることであって、前記終了トランザクションは、前記ソースブロックチェーンにおける前記ロックトランザクションを参照し、前記終了トランザクションは、前記ターゲットブロックチェーンにおける前記デジタル表現された通貨額を用いる前記１つまたは複数のトランザクション出力を含むことと、を含む、
方法。
【請求項１８】
前記開始トランザクションの前記トランザクション出力は、前記終了トランザクションが前記ロックトランザクションを参照する時、および前記開始トランザクションの前記トランザクション出力の値が前記既存のトランザクションの前記トランザクション出力の値に一致する時にのみ、前記終了トランザクションによって用いることが可能であることを特徴とする、請求項１７に記載の方法。
【請求項１９】
前記ロックトランザクションは前記開始トランザクションを参照するためにマークルツリー参照を使用することを特徴とする、請求項１８に記載の方法。
【請求項２０】
前記終了トランザクションは前記ロックトランザクションを参照するためにマークルツリー参照を使用することを特徴とする、請求項１９に記載の方法。
【請求項２１】
前記分散型台帳はブロックチェーンを含むことを特徴とする、請求項１に記載の方法。
【請求項２２】
前記分散型台帳は有向非巡回グラフを利用することを特徴とする、請求項１に記載の方法。
【請求項２３】
前記分散型台帳はブロックチェーンを含むことを特徴とする、請求項１１に記載のコンピュータ可読媒体。
【請求項２４】
前記分散型台帳は有向非巡回グラフを利用することを特徴とする、請求項１１に記載のコンピュータ可読媒体。
【請求項２５】
高度にスケーラブルなトランザクションスループットに対する複数の分散型台帳間の複数台帳方式振替によるシステムであって、
それぞれが、局所分散型台帳を維持し、かつ局所ノードおよびこれらの間の通信接続を含む、複数の分散型台帳ネットワークと、
前記複数の分散型台帳ネットワーク間のインターネットワーク接続と、
それぞれの前記分散型台帳ネットワークの前記局所ノードと共同設置される対外支払検証ノードであって、前記システムの他の分散型台帳ネットワークにおけるトランザクションの台帳間検証のために複数台帳方式振替で使用される、対外支払検証ノードと、を含む、
システム。
【請求項２６】
それぞれの前記対外支払検証ノードにおいて、対外分散型台帳に対するブロックヘッダーおよびブロックシグネチャを含むブロックヘッダー／シグネチャチェーンをさらに含む、請求項２５に記載のシステム。
【請求項２７】
それぞれの前記支払検証ノードにおいて、前記ブロックヘッダー／シグネチャチェーンにおける前記ブロックヘッダーへのブロックハッシュのインデックスをさらに含む、請求項２５に記載のシステム。
【請求項２８】
ソース分散型台帳における既存のトランザクションは、デジタル表現された経済価値がターゲット分散型台帳に振り替えられるトランザクション出力を含有することを特徴とする、請求項２５に記載のシステム。
【請求項２９】
台帳間検証は前記ソース分散型台帳におけるロックトランザクションの存在を検証することを含み、前記ロックトランザクションは前記既存のトランザクションの前記トランザクション出力を用いることを特徴とする、請求項２８に記載のシステム。
【請求項３０】
前記ソース分散型台帳における前記ロックトランザクションの存在の検証は、前記ターゲット分散型台帳における終了トランザクションが前記ターゲット分散型台帳における開始トランザクションのトランザクション出力を用いるために必要であることを特徴とする、請求項２９に記載のシステム。
【請求項３１】
前記局所ノードおよび前記対外支払検証ノードの前記共同設置は、前記局所分散型台帳の局所ノードスタック、および前記システムにおける前記他の分散型台帳の対外支払検証ノードスタックを含む１つまたは複数のプロセッサを有するコンピュータ装置によって実施されることを特徴とする、請求項２５に記載のシステム。
【請求項３２】
高度にスケーラブルなトランザクションスループットに対する複数の分散型台帳間の複数台帳方式振替によるシステムであって、
それぞれが、局所分散型台帳を維持し、かつ局所ノードおよびこれらの間の通信接続を含む、複数の分散型台帳ネットワークと、
共有ノードのセットであって、それぞれの前記共有ノードは、前記複数の分散型台帳ネットワークの少なくとも２つの分散型台帳ネットワークに対する局所ノードを含む、
システム。
【請求項３３】
それぞれの前記共有ノードにおいて、前記複数の分散型台帳のそれぞれに対するブロックヘッダーへのブロックハッシュのインデックスをさらに含む、請求項３２に記載のシステム。
【請求項３４】
それぞれの前記共有ノードは、前記少なくとも２つの分散型台帳ネットワークの局所ノードスタックを含むコンピュータ装置を含むことを特徴とする、請求項３２に記載のシステム。
【請求項３５】
それぞれの前記共有ノードは、前記複数の分散型台帳ネットワークの全てに対する局所ノードを含むことを特徴とする、請求項３２に記載のシステム。
【請求項３６】
それぞれの前記共有ノードは、前記複数の分散型台帳ネットワークの全ての局所ノードスタックを含むコンピュータ装置を含むことを特徴とする、請求項３５に記載のシステム。
【請求項３７】
ソース分散型台帳における既存のトランザクションは、デジタル表現された経済価値がターゲット分散型台帳に振り替えられるトランザクション出力を含有することを特徴とする、請求項３２に記載のシステム。
【請求項３８】
ロックトランザクションは前記既存のトランザクションの前記トランザクション出力を用い、前記ソース分散型台帳における前記ロックトランザクションの存在の検証は、前記ターゲット分散型台帳における終了トランザクションが前記ターゲット分散型台帳における開始トランザクションのトランザクション出力を用いるために必要であることを特徴とする、請求項３７に記載のシステム。
【請求項３９】
高度にスケーラブルなトランザクションスループットに対する複数の分散型台帳間の複数台帳方式振替によるシステムであって、
それぞれが、コンピュータ可読コードおよびデータを保持するためのメモリ、および前記コンピュータ可読コードを実行することで前記データを修正するための１つまたは複数のプロセッサを含む、コンピュータ装置のセットと、
それぞれの前記コンピュータ装置と複数の分散型台帳ネットワークとの間の通信接続と、
それぞれの前記コンピュータ装置における前記複数の分散型台帳ネットワークの局所ノードスタックに対するコンピュータ可読コードと、を含む、
システム。
【請求項４０】
それぞれの前記コンピュータ装置において、前記複数の分散型台帳のそれぞれに対するブロックヘッダーへのブロックハッシュのインデックスをさらに含む、請求項３９に記載のシステム。
【請求項４１】
ソース分散型台帳における既存のトランザクションは、デジタル表現された経済価値がターゲット分散型台帳に振り替えられるトランザクション出力を含有することを特徴とする、請求項３９に記載のシステム。
【請求項４２】
ロックトランザクションは前記既存のトランザクションの前記トランザクション出力を用い、前記ソース分散型台帳における前記ロックトランザクションの存在の検証は、前記ターゲット分散型台帳における終了トランザクションが前記ターゲット分散型台帳における開始トランザクションのトランザクション出力を用いるために必要であることを特徴とする、請求項４１に記載のシステム。
【請求項４３】
前記分散型台帳はブロックチェーンを含むことを特徴とする、請求項３９に記載のシステム。
【請求項４４】
前記分散型台帳は有向非巡回グラフを利用することを特徴とする、請求項３９に記載のシステム。
【請求項４５】
前記分散型台帳はブロックチェーンを含むことを特徴とする、請求項２５に記載のシステム。
【請求項４６】
前記分散型台帳は有向非巡回グラフを利用することを特徴とする、請求項２５に記載のシステム。
【請求項４７】
前記分散型台帳はブロックチェーンを含むことを特徴とする、請求項３２に記載のシステム。
【請求項４８】
前記分散型台帳は有向非巡回グラフを利用することを特徴とする、請求項３２に記載のシステム。
【請求項４９】
複数の分散型台帳間の複数台帳方式振替のためのコンピュータ装置であって、
コンピュータ可読コードおよびデータを保持するためのメモリと、
前記コンピュータ可読コードを実行することで前記データを修正するための１つまたは複数のプロセッサと、
前記複数の分散型台帳のターゲット分散型台帳に対する局所ノードスタックのためのコンピュータ可読コードと、
前記複数の分散型台帳のソース分散型台帳に対する対外支払検証ノードスタックのためのコンピュータ可読コードと、を含み、
前記局所ノードスタックは、前記ターゲット分散型台帳と前記ソース分散型台帳との間のデジタル表現された経済価値の複数台帳方式振替中に前記ソース分散型台帳におけるトランザクションを検証するために前記対外支払検証ノードスタックを使用するように構成されることを特徴とする、
コンピュータ装置。
【請求項５０】
前記対外支払検証ノードスタックにおいて、前記ソース分散型台帳に対するブロックヘッダーおよびブロックシグネチャを含むブロックヘッダー／シグネチャチェーンをさらに含む、請求項４９に記載のコンピュータ装置。
【請求項５１】
前記対外支払検証ノードスタックにおいて、前記ブロックヘッダー／シグネチャチェーンにおける前記ブロックヘッダーに対するブロックハッシュのインデックスをさらに含む、請求項５０に記載のコンピュータ装置。
【請求項５２】
前記ソース分散型台帳における既存のトランザクションは、複数台帳方式振替のためのデジタル表現された経済価値を有するトランザクション出力を含有することを特徴とする、請求項４９に記載のコンピュータ装置。
【請求項５３】
前記局所ノードスタックは、前記デジタル表現された経済価値が、前記ソース分散型台帳においてさらに用いられ得ないように前記既存のトランザクションの前記トランザクション出力の前記デジタル表現された経済価値を用いかつロックするロックトランザクションを構築するように構成されることを特徴とする、請求項５２に記載のコンピュータ装置。
【請求項５４】
前記ロックトランザクションは、少なくとも１つの台帳内トランザクション入力、１つの複数台帳方式参照トランザクション入力、およびゼロ以上のトランザクション出力を含むことを特徴とする、請求項５３に記載のコンピュータ装置。
【請求項５５】
前記局所ノードスタックは、前記ターゲット分散型台帳における開始トランザクションのトランザクション出力を用いる終了トランザクションを構築する前に、前記ソース分散型台帳における前記ロックトランザクションの存在を検証し、かつ前記開始トランザクションの前記トランザクション出力の値を、前記ロックトランザクションによって用いられる値に対して一致させることが必要とされることを特徴とする、請求項５３に記載のコンピュータ装置。
【請求項５６】
前記開始トランザクションは、トランザクション入力を含まず、１つのトランザクション出力を含むことを特徴とする、請求項５５に記載のコンピュータ装置。
【請求項５７】
前記終了トランザクションは、１つの台帳内トランザクション入力、１つの複数台帳方式参照トランザクション入力、および１つまたは複数のトランザクション出力を含むことを特徴とする、請求項５５に記載のコンピュータ装置。
【請求項５８】
複数の分散型台帳間の複数台帳方式振替のためのコンピュータ装置であって、
コンピュータ可読コードおよびデータを保持するためのメモリと、
前記コンピュータ可読コードを実行することで前記データを修正するための１つまたは複数のプロセッサと、
前記複数の分散型台帳のノードスタックのためのコンピュータ可読コードと、を含み、
それぞれの前記ノードスタックは、ソース分散型台帳からターゲット分散型台帳へのデジタル表現された経済価値の複数台帳方式振替を行うように構成されることを特徴とする、
コンピュータ装置。
【請求項５９】
前記複数の分散型台帳のそれぞれに対するブロックヘッダーへのブロックハッシュのインデックスをさらに含む、請求項５８に記載のコンピュータ装置。
【請求項６０】
前記ソース分散型台帳における既存のトランザクションは、デジタル表現された経済価値が前記ターゲット分散型台帳に振り替えられるトランザクション出力を含有することを特徴とする、請求項５８に記載のコンピュータ装置。
【請求項６１】
ロックトランザクションは、前記既存のトランザクションの前記トランザクション出力を用いかつロックすることを特徴とする、請求項６０に記載のコンピュータ装置。
【請求項６２】
前記ロックトランザクションは、少なくとも１つの台帳内トランザクション入力、１つの複数台帳方式参照トランザクション入力、およびゼロ以上のトランザクション出力を含むことを特徴とする、請求項６１に記載のコンピュータ装置。
【請求項６３】
前記ソース分散型台帳における前記ロックトランザクションの存在の検証は、前記ターゲット分散型台帳における終了トランザクションが前記ターゲット分散型台帳における開始トランザクションのトランザクション出力を用いるために必要であることを特徴とする、請求項６１に記載のコンピュータ装置。
【請求項６４】
前記開始トランザクションは、トランザクション入力を含まず、１つのトランザクション出力を含むことを特徴とする、請求項６３に記載のコンピュータ装置。
【請求項６５】
前記終了トランザクションは、１つの台帳内トランザクション入力、１つの複数台帳方式参照トランザクション入力、および１つまたは複数のトランザクション出力を含むことを特徴とする、請求項６３に記載のコンピュータ装置。
【請求項６６】
複数の分散型台帳間の複数台帳方式振替のための装置であって、
未使用であり、かつエンティティによって所有されるトランザクション出力を有するソース分散型台帳において既存のトランザクションを判断するための手段と、
ターゲット分散型台帳にコミットするための開始トランザクションを構築しかつサブミットするための手段であって、前記開始トランザクションはトランザクション出力を有する、手段と、
前記ソース分散型台帳にコミットするためのロックトランザクションを構築しかつサブミットするための手段であって、前記ロックトランザクションは、前記ソース分散型台帳における前記既存のトランザクションの前記トランザクション出力を用いかつロックし、前記ターゲット分散型台帳における前記開始トランザクションを参照する、手段と、
前記ターゲット分散型台帳にコミットするための終了トランザクションを構築しかつサブミットするための手段であって、前記終了トランザクションは、前記ターゲット分散型台帳における前記開始トランザクションの前記トランザクション出力を用い、かつ、前記ソース分散型台帳における前記ロックトランザクションを参照する手段を含む、
装置。
【請求項６７】
前記開始トランザクションの前記トランザクション出力は、前記終了トランザクションが前記ロックトランザクションを参照する時、および前記開始トランザクションの前記トランザクション出力の値が前記既存のトランザクションの前記トランザクション出力の値に一致する時にのみ、前記終了トランザクションによって用いることが可能であることを特徴とする、請求項６６に記載の装置。
【請求項６８】
前記分散型台帳はブロックチェーンを含むことを特徴とする、請求項６６に記載の装置。
【請求項６９】
前記分散型台帳は有向非巡回グラフを利用することを特徴とする、請求項６６に記載の装置。
【請求項７０】
前記分散型台帳はブロックチェーンを含むことを特徴とする、請求項４９に記載のコンピュータ装置。
【請求項７１】
前記分散型台帳は有向非巡回グラフを利用することを特徴とする、請求項４９に記載のコンピュータ装置。
【請求項７２】
前記分散型台帳はブロックチェーンを含むことを特徴とする、請求項５８に記載のコンピュータ装置。
【請求項７３】
前記分散型台帳は有向非巡回グラフを利用することを特徴とする、請求項５８に記載のコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的に、コンピュータおよびネットワーク技術に関する。より詳細には、本開示は、ブロックチェーンおよび他の分散型台帳技術に関する。
【背景技術】
【０００２】
ブロックチェーンは、ブロックチェーンネットワークによってアクセスされかつ確認されるブロックデータ構造（ブロック）のチェーンである。ブロックチェーンの１つの例は、ビットコインが特定の暗号通貨である、ビットコイントランザクションの分散型台帳として機能する、ビットコインブロックチェーンとして知られている。ビットコインブロックチェーンにおけるそれぞれのブロックは、ビットコインの複数のトランザクションを符号化する。
【０００３】
ビットコインブロックチェーンにおいて、それぞれのブロックは、ブロックに含まれるトランザクションに対するハッシュ値の、ブロックヘッダーおよびマークルツリーのルートを含む。それぞれのブロックは、（ブロックヘッダーのハッシュ値である）ブロックハッシュによって識別される。ブロックヘッダーは、ブロックのマークルツリーのルート、このチェーンにおける前のブロックのブロックハッシュ、およびノンスを含む。トランザクションの新しいブロックは、ビットコインネットワークにおけるマイナーによってビットコインブロックチェーンに追加されてよい。マイナーは、ブロックチェーンにアクセスし、かつ新しいトランザクションのブロードキャストを受信してよい。新しいブロックは、マイナーが、見込みのあるブロックにおける取引を確認し、かつ課題を満たす時、ブロックチェーンに追加されてよい。コンセンサスプロトコルは、ビットコインブロックチェーンの整合性および保全性を保護する。
【０００４】
従来の分散型台帳技術のトランザクションスループットは、かなりの制限があり、容易にスケーラブルではない。例えば、ビットコインブロックチェーンネットワークは、ブロックサイズの限度と共にレイテンシおよび帯域幅の問題により、スループットの制限が大きな問題になっている。分散型台帳技術のスループットスケーラビリティ問題を解決することが非常に望まれている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本開示の解決策は、高度にスケーラブルなトランザクションスループットを実現するために分散型台帳間の複数台帳方式振替を提供する。ソース分散型台帳からターゲット分散型台帳に値を効果的に振り替える一方、値の二重使用を防止するように複数台帳方式振替を書き込むための方法および命令コードが開示される。高度にスケーラブルなトランザクションスループットを実現するために複数の分散型台帳間の複数台帳方式振替を利用するシステムアーキテクチャも開示される。分散型台帳間の複数台帳方式振替を実施するように構成されるコンピュータ装置も開示される。
【課題を解決するための手段】
【０００６】
本開示の解決策の複数台帳方式振替によって、ソース台帳の合計値が振り替えられた値によって減少するが、ターゲット台帳の合計値が同じ値によって増加するように台帳が変換または修正される。例示の実装形態では、ソース台帳の振り替えられた値の消滅、およびターゲット台帳の振り替えられた値の再作成は、ソース台帳におけるロックトランザクション、およびターゲット台帳における開始トランザクションおよび終了トランザクションを使用することによって、達成可能である。ロックトランザクションは開始トランザクションを参照し、終了トランザクションはロックトランザクションを参照し、かつ開始トランザクションのトランザクション出力を用いる。
【０００７】
本開示の発明の１つの実施形態は、デジタル表現された経済価値を、その価値の二重使用を防止するようにソース分散型台帳からターゲット分散型台帳に振り替える複数台帳方式振替を行う方法に関する。開始トランザクションは、ターゲット分散型台帳に書き込まれ、ロックトランザクションはソース分散型台帳に書き込まれる。ロックトランザクションはソース分散型台帳において既存のトランザクションのトランザクション出力を用い、かつ、ターゲット分散型台帳における開始トランザクションを参照する。終了トランザクションはさらにまた、ターゲット分散型台帳に書き込まれてよい。終了トランザクションは、開始トランザクションのトランザクション出力を用い、かつソース分散型台帳におけるロックトランザクションを参照する。
【０００８】
別の実施形態は、複数台帳方式振替を行うためのコンピュータ可読コードを有する非一時的な有形的表現媒体に関する。複数台帳方式振替は、デジタル表現された経済価値を、その価値の二重使用を防止するように、ソース分散型台帳からターゲット分散型台帳に振り替える。
【０００９】
別の実施形態は、高度にスケーラブルなトランザクションスループットを実現するために分散型台帳間の複数台帳方式振替を使用する第１のシステムアーキテクチャに関する。第１のシステムアーキテクチャは、複数の分散型台帳ネットワークを含み、それぞれの上記の分散型台帳ネットワークは、システムにおける他の分散型台帳のための複数の支払検証ノードを含む。
【００１０】
別の実施形態は、高度にスケーラブルなトランザクションスループットを実現するために分散型台帳間の複数台帳方式振替を使用する第２のシステムアーキテクチャに関する。第２のシステムアーキテクチャは複数の分散型台帳ネットワークを含む。第２のシステムアーキテクチャは、複数の分散型台帳ネットワークによって共有される共有ノードのセットをさらに含む。上記の共有ノードは、いくつかあるサービスの中で特に、トランザクションの台帳間検証を提供する。
【００１１】
別の実施形態は、複数の分散型台帳間の複数台帳方式振替のための第１のコンピュータ装置に関する。第１のコンピュータ装置は、複数の分散型台帳の局所分散型台帳の局所ノードスタックに対するコンピュータ可読コード、および、複数の分散型台帳の対外分散型台帳の対外支払検証ノードスタックに対するコンピュータ可読コードを含む。局所ノードスタックは、局所分散型台帳と対外分散型台帳との間のデジタル表現された経済価値の複数台帳方式振替中に対外分散型台帳におけるトランザクションを検証するために対外支払検証ノードスタックを使用するように構成される。
【００１２】
別の実施形態は、複数の分散型台帳間の複数台帳方式振替のための第２のコンピュータ装置に関する。第２のコンピュータ装置は、複数の分散型台帳のノードスタックに対するコンピュータ可読コードを含む。それぞれの上記のノードスタックは、ソース分散型台帳からターゲット分散型台帳へのデジタル表現された経済価値の複数台帳方式振替を行うように構成される。
【００１３】
他の実施形態および特徴も開示される。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態による単一分散型台帳ネットワークの構造を示す図である。
【図２】本発明の一実施形態による、ソース分散型台帳とターゲット分散型台帳との間のデジタル表現された経済価値の単一トランザクション複数台帳方式振替のデータ構成要素を示す図である。
【図３】本発明の一実施形態による、ソース分散型台帳における造幣ライセンス付与トランザクションを参照するターゲット分散型台帳における造幣トランザクションに関与する２トランザクション複数台帳方式振替を示す図である。
【図４】本発明の一実施形態による、ソース分散型台帳からターゲット分散型台帳へのデジタル表現された経済価値の３トランザクション複数台帳方式振替を示す図である。
【図５Ａ】本発明の一実施形態による、複数台帳方式振替を行うための対外支払検証（ＰＶ）ノードを使用するシステムアーキテクチャを示す図である。
【図５Ｂ】本発明の一実施形態による、図５Ａのシステムアーキテクチャにおけるノードに対するコンピュータ装置を示す図である。
【図５Ｃ】本発明の一実施形態による、対外ＰＶノードによって使用されるブロックヘッダーおよびブロックシグネチャのチェーンを示す図である。
【図６Ａ】本発明の一実施形態による、複数台帳方式振替を行うための複数の分散型台帳ネットワークによって共有されるノードを使用するシステムアーキテクチャを示す図である。
【図６Ｂ】本発明の一実施形態による、図６Ａのシステムアーキテクチャにおける共有ノードに対するコンピュータ装置を示す図である。
【図７】本発明の一実施形態による、ソース分散型台帳上のデジタル表現された経済価値の所有者が、デジタル表現された経済価値をターゲット分散型台帳上のエンティティに振り替えるための方法のフローチャートである。
【図８】本発明の一実施形態による、台帳間トランザクション検証のためのプロセスを示す図である。
【図９】本発明の一実施形態による、ソース分散型台帳からターゲット分散型台帳への複数台帳方式振替を開始するために行われてよい手順のための疑似コードを示す図である。
【図１０】本発明の一実施形態による、開始トランザクションまたはロックトランザクションがコミットされた後に行われてよい手順のための疑似コードを示す図である。
【図１１】本発明の一実施形態による、対外分散型台帳上のトランザクションをコミットするために行われてよい手順のための疑似コードを示す図である。
【図１２】本発明の一実施形態による、分散型台帳にトランザクションをサブミットするために行われてよい手順のための疑似コードを示す図である。
【図１３】本発明の一実施形態による、トランザクションのブロックに対するコンセンサスに達した後に分散型台帳のノードによって行われてよい手順のための疑似コードを示す図である。
【図１４】本発明の一実施形態による、コミットされているブロックにおける未使用のトランザクション出力を索引付けするために分散型台帳のノードによって行われてよい手順のための疑似コードを示す図である。
【図１５】本発明の一実施形態による、複数台帳方式参照トランザクション入力を含む標準トランザクションのための一般構造を示す図である。
【図１６】本発明の一実施形態による、３トランザクション複数台帳方式振替の開始トランザクションのための構造を示す図である。
【図１７】本発明の一実施形態による、３トランザクション複数台帳方式振替のロックトランザクションのための構造を示す図である。
【図１８】本発明の一実施形態による、３トランザクション複数台帳方式振替の終了トランザクションのための構造を示す図である。
【図１９】本発明の一実施形態による、システムにおける分散型台帳の数の関数として１台帳当たりの計算されたトランザクションスループットを示すグラフである。
【図２０】本発明の一実施形態による、分散型台帳の数の関数として計算された集計トランザクションスループットを示すチャートである。
【図２１】本発明の一実施形態による、コンピュータシステムの構成要素を高水準で示す図である。
【発明を実施するための形態】
【００１５】
異なる図面における同じ参照ラベルの使用は、同じまたは同様の構成要素を指示する。
【００１６】
概論
慣習的に、機関は、金融取引の清算および決算を取り扱うために中央手形交換所を頼りにしている。このような従来の清算および決算は、とりわけ、国際取引には、時間がかかりかつ費用が高くなることが問題になっている。
【００１７】
しかしながら、近年、清算および決算のための代替的な手段が利用可能になっている。この代替策は一般的に、暗号通貨でトランザクションを清算および決算するために分散型台帳を使用する。このような暗号通貨の顕著な例は、ビットコインブロックチェーンネットワークによって維持されるビットコインである。暗号通貨の他の例には、ライトコイン（登録商標）、ノヴァコイン、ネームコイン、ドージコイン、ピアコイン、イーサリアム（登録商標）、およびリップル（登録商標）が挙げられる。
【００１８】
図１は、本発明の一実施形態による単一分散型台帳ネットワーク１００の構造を示す図である。分散型台帳ネットワーク１００は、トランザクションの分散型台帳を維持するために使用されてよい。分散型台帳の１つの例はビットコインブロックチェーンである。しかしながら、分散型台帳ネットワーク１００は、一般的に、任意のブロックチェーンネットワークであってよい、または有向非巡回グラフ（ＤＡＧ）アルゴリズムを使用してＤＡＧベースの台帳を提供するものなど、別のタイプの分散型台帳ネットワークであってよい。本開示の解決策は、一般的に、トランザクションのブロックを使用して実装される分散型台帳に適用可能であり（これと互換性があり）、この場合、それぞれのブロックヘッダーはブロックに含有されるトランザクションのマークルルートを有する。
【００１９】
分散型台帳ネットワーク１００は、複数のノード１０２を、これらの間の通信接続１０４と共に含む。例示を容易にする目的で、図にはいくつかのノード１０２のみが示されているが、分散型台帳ネットワーク１００は、大多数のノードを、これらの間のさまざまな相互接続１０４と共に有してよい。
【００２０】
ノード１０２は、一般的に、それぞれが分散型台帳のデータの完全かつ最新のコピーを含有するため、フルノードと称される場合がある。ビットコインネットワークの例では、このようなフルノードはビットコインブロックチェーンのマイナーとして動作してよく、この場合、成功したマイナーはビットコインのデジタル通貨で支払われる。しかしながら、本発明の一実施形態によると、分散型台帳は、デジタル通貨で成功したマイナーを支払う必要はなく、さらに、より一般的には、暗号通貨である必要のないデジタル表現資産（または負債）を扱ってよい。
【００２１】
複数のクライアント１０６は、デジタル台帳ネットワーク１００に通信接続されてよい。これらのクライアント１０６は、分散型台帳の完全かつ最新のコピーを維持しない軽量ノードであるが、依然、分散型台帳におけるトランザクションを検証する能力を有する。
【００２２】
例えば、クライアント１０６は、支払検証方法を使用してトランザクションを検証できる支払検証（ＰＶ）ノードとして実装されてよい。ＰＶノードは、分散型台帳ネットワークに接続され、かつ分散型台帳におけるトランザクションの妥当性を証明することが必要とされるデータを保持する非フルノードであってよい。個々のトランザクションレコードは、一般的に、ＰＶノードにおけるデータからなくなっているため、ＰＶノードは分散型台帳ネットワークのクライアントであるとみなされる場合がある。例示の実装形態では、分散型台帳がブロックチェーンである時、ＰＶノードは簡略化支払検証（ＳＰＶ）ノードであってよく、必要とされるデータは、ブロックにおけるトランザクションのマークルルート、以前のブロックハッシュ、およびブロックバリデータによって作成されるブロックシグネチャのリストを含む。
【００２３】
クライアント１０６は、コア分散型台帳ネットワークを超えた拡大ネットワークの一部を形成するとみなされ得る。例示を容易にするために少数のクライアント１０６のみが示されているが、多数のクライアント１０６が分散型台帳ネットワーク１００に接続されてよい。
【００２４】
上記のように、分散型台帳の有名な例はブロックチェーンである。ブロックチェーンは、トランザクションのブロックに対して連続的にコンセンサスに達するようにＰ２Ｐプロトコルを実行するノードのピアツーピア（Ｐ２Ｐ）ネットワークによって維持される。本開示の解決策は、一般的に、ブロックチェーン技術または他の分散型台帳技術に適用されてよい。
【００２５】
分散型台帳におけるトランザクションは、入力のリストおよび出力のリストを含んでよい。トランザクションハッシュは、トランザクション内のデータの全てをハッシュすることによって構築されてよい。トランザクションハッシュは、トランザクションを（すなわち、トランザクション識別子またはｔｘ  ｉｄとして）参照するために使用されてよい。
【００２６】
トランザクション出力（ＴＸＯ）は、このトランザクションのハッシュ、トランザクション内のこのインデックス、およびＴＸＯの受信者の識別によって識別されてよい。ＴＸＯは、いずれのデジタル表現資産も保持してよい。ＴＸＯは振り替えられず、ＴＸＯ内のデジタル表現された経済価値は振り替えられる。受信者は、（対応する秘密キーを有する）受信者の公開キーのハッシュによって識別されてよい。
【００２７】
トランザクション入力はＴＸＯを参照する。従来の台帳内トランザクションについて、トランザクション入力は、トランザクションハッシュによるＴＸＯ、およびＴＸＯの出力インデックスを参照する。本開示によって教示されるように、複数台帳トランザクションに対するトランザクション入力２１０は図２との関連で後述され得る。
【００２８】
トランザクションスループットの制限
ビットコインネットワークなどの従来の分散型台帳ネットワークは、実質的なトランザクションスループットの制限を有する。これらの制限は、ブロックサイズの限度と共にレイテンシおよび帯域幅の問題によるものである。
【００２９】
新しいブロックは、作成されると、分散型台帳ネットワーク全体を通して伝搬されなければならない。しかしながら、世界各地にある信頼すべきネットワークノード（すなわち、バリデータノード）間に実質的な最小レイテンシがある。これらのレイテンシは、伝搬速度に下限をもたらすため、トランザクションスループットを制限する。
【００３０】
さらに、トランザクションスループットを増大させるために、１ブロック当たりより多くのトランザクションに適合させるようにブロックサイズを増大させることを可能にしてよい、および／または、より多くのブロックを処理するようにブロック周波数を増大させることを可能にしてよい。しかしながら、分散型台帳ネットワーク内の帯域制限は一般的に、ブロックサイズおよび／またはブロック周波数のこのような増大によって実現可能なスループットゲインを制限する。
【００３１】
複数台帳方式振替による多重分散型台帳システム
本開示は、従来の分散型台帳技術の上で論じたトランザクションスループットの制限を克服するための革新的な解決策を提供する。複数台帳方式振替による多重分散型台帳システムを提供する技術が開示される。複数台帳方式振替によって、デジタル表現された経済価値を１つの分散型台帳から別の分散型台帳に振り替えることが可能である。
【００３２】
デジタル表現された経済価値の例には、ビットコインブロックチェーンにおけるビットコインなどの暗号通貨がある。より一般的には、ソース分散型台帳とターゲット分散型台帳との間で振り替えられるデジタル表現された経済価値は、任意のデジタル表現された資産（従来の通貨、暗号通貨、商品、または他の財産）または負債（借金など）であってよい。１つの実施形態では、デジタル表現された経済価値は通貨額におけるものであってよい。別の実施形態では、デジタル表現された経済価値は、暗号通貨額におけるものであってよい。別の実施形態では、デジタル表現された経済価値は商品の金額であってよい。
【００３３】
複数台帳方式振替は、実際には、システムの複数の分散型台帳を共にリンクするために使用されてよい。そのように、それぞれの分散型台帳におけるトランザクションの保全性は、他のリンクされた分散型台帳（複数可）におけるトランザクションの保全性に左右される。
【００３４】
複数の分散型台帳が複数台帳トランザクションによって共に効果的にリンクされる時、共にリンクされた分散型台帳ネットワークのシステムは、多重分散型台帳システムまたは分散型台帳「エコシステム」と称される場合がある。多重分散型台帳システムによって維持されている分散型台帳は、互いに協働し、「共通台帳」と称される場合がある。
【００３５】
共通台帳は同じ全体的なシステムの各部であるが、それぞれの共通台帳は他の共通台帳との関連で別個のまたは「対外」の分散型台帳である。それぞれの共通台帳はトランザクションのこれ自体の台帳を維持し、この台帳は他の共通台帳のトランザクションを含まない。しかしながら、１つの共通台帳におけるトランザクションは異なる共通台帳におけるトランザクションを参照してよい。
【００３６】
有利には、本明細書に開示されるように、スケーラブルな数の共通台帳を有する多重分散型台帳システムは、単一分散型台帳ネットワークの上で論じたスループットの制限を克服するために適用されてよい。
【００３７】
レイテンシの制限は、２つのバリデータノードがこれらの間に長いレイテンシを有する時、システム内の異なった分散型台帳ネットワークに分離されてよいため、克服可能である。２つのノードは異なる台帳を確認するため、これらの間の長いレイテンシはどちらの台帳のコンセンサスの時間にも影響を与えることはない。それ故に、本開示の解決策を使用して、ノード間の長いレイテンシの性能に対する影響を実質的に低減または排除可能である。
【００３８】
帯域幅の制限は、単一分散型台帳の代わりに複数の共通台帳を使用することによってブロックサイズが効果的に低減可能であるため、克服可能である。Ｎの共通台帳による構造を使用して、ブロックサイズをほぼ１／Ｎに効果的に低減可能である。
【００３９】
よって、複数台帳トランザクションが比較的まばらになるようにノードを領域（またはグループ）に分割することによって、共通台帳を追加することによって追加されるスループットは、単独で実行しているそのチェーンだけの全スループットのかなりの割合になる。これによって、共通台帳の数にほぼ比例して変化するスループットが生じるものとする。
【００４０】
共通台帳間の複数台帳トランザクション
本発明の一実施形態によると、２つの分散型台帳（すなわち、２つの「共通台帳」）間の複数台帳トランザクションは、ソース分散型台帳２００Ｓに対する既存の未使用のトランザクション出力（ＵＴＸＯ）を効果的に消滅させ、かつターゲット分散型台帳２００Ｔにおける（消滅させたＵＴＸＯに等しい合計値での）１つまたは複数の新しいＵＴＸＯを作成する。ターゲット分散型台帳２００Ｔに書き込まれる複数台帳トランザクション２０５の構成要素は、本発明の一実施形態に従って図２に示されている。
【００４１】
図２に示されるように、（ターゲット分散型台帳２００Ｔに書き込まれるものになる）複数台帳トランザクション２０５は、ソース分散型台帳２００Ｓへの参照を提供するトランザクション入力２１０と、ターゲット分散型台帳２００Ｔにおける受信者（単数または複数）に値（単数または複数）を振り替えるトランザクション出力（単数または複数）２２０とを含む。
【００４２】
より具体的には、トランザクション入力２１０は、ソース分散型台帳２００Ｓのチェーン識別子２１１と、（ブロックのマークルツリーに対するマークル分岐ハッシュ２１４を含んで）参照され、参照番号が２１３の既存のトランザクションのブロックに対するブロックヘッダー２１２と、既存のトランザクションの特定の出力を指示する数を含む出力インデックス２１５とを含んでよい。
【００４３】
必要とされるマークル分岐ハッシュ２１４の数は、ブロックにおけるトランザクションの数の底を２とする対数以上であることに留意されたい。それ故に、ブロックに１０００（１千）のトランザクションがある場合、１０（十）のマークル分岐ハッシュが必要とされる。
【００４４】
また、（トランザクション識別子またはｔｘ  ｉｄと称される場合がある）トランザクションハッシュは、ハッシュ関数を参照トランザクションのコンテンツに適用することによって参照トランザクション２１３から導出されるハッシュ値であることに留意されたい。トランザクションハッシュは、マークル分岐ハッシュでハッシュしてマークルルートを形成してよい。このマークルルートは、ソース分散型台帳２００Ｓ内のブロックのマークルルートに対して照合させて、トランザクション２１３がソース分散型台帳２００Ｓに存在することを証明してよい。
【００４５】
出力２２０のトランザクション出力は（トランザクション２１３および出力インデックス２１５によって指定されるように）ソース分散型台帳２００ＳにおけるＵＴＸＯから得られたものの使用に関するデータを提供する。それぞれのトランザクション出力２２０は、受信者に振り替えられているデジタル表現された経済価値、および受信者の公開キーのハッシュを提供する。
【００４６】
ソース分散型台帳における使用を防止する２トランザクション複数台帳方式振替
デジタル表現された経済価値の複数台帳方式振替を行うための開示された方法の動作の機構を理解するために、図３に示されるように参照トランザクションによる造幣を考慮する。図３において、ターゲット分散型台帳（例えば、ターゲットブロックチェーン）におけるデジタル表現された経済価値の造幣は、ソース分散型台帳（例えば、ソースブロックチェーン）における参照トランザクションを通して行われる。しかしながら、以下に論じられるように、図示されるようなデジタル表現された経済価値のこのような造幣は、振り替えられた値の二重（多重）使用を防止するための機構を含まない。
【００４７】
参照トランザクションにおけるトランザクション出力（ＴＸＯ）は、過去に存在していた時があったことが保証されると考えられるが、（現在時刻でまたは将来的に）依然未使用であることは保証されない。これは、ソースチェーンにおけるＴＸＯを参照することが複数台帳トランザクションをサポートするのに不十分であることを意味するが、これは、未使用のＴＸＯ（すなわち、ＵＴＸＯ）のみが参照されなければならないからである。
【００４８】
図３に示される複数台帳方式振替において、ソース分散型台帳における造幣ライセンス付与トランザクション３０２は、定義により、ソース分散型台帳の別の造幣者に付与されることはないトランザクションである。それ故に、造幣ライセンス付与トランザクション３０２からのＴＸＯは、ソース分散型台帳では本質的に用いることが不可能である。この場合、マークル証明３０４を使用してソースチェーンにおける造幣ライセンスを付与するトランザクションの存在を証明することは、ＴＸＯがソース分散型台帳において（用いることが不可能であるため）未使用であることを証明するのに十分である。
【００４９】
そのように、造幣ライセンス付与トランザクションがソース分散型台帳に存在するという事実は、ターゲット分散型台帳においてデジタル表現された経済価値を造幣するための造幣トランザクション３０６の根拠をもたらす。その後、造幣された値はターゲット分散型台帳におけるトランザクションに対して通常使用されてよい３０８。
【００５０】
しかしながら、図３の２トランザクション複数台帳方式振替は、システムを使用する全てのエンティティが信頼されるものである時二重使用を安全に回避するが、信頼できないエンティティがシステムを使用する場合がある時に二重使用を防止するには不十分である。これは、図３の２トランザクション複数台帳方式振替が、ソース分散型台帳における未使用のＴＸＯが複数のターゲット分散型台帳で用いられないようにしないからである。
【００５１】
二重使用を防止する３トランザクション複数台帳方式振替
本発明の一実施形態によると、図４に示される方法４００は、共通台帳間でデジタル表現された経済価値を振り替える。複数台帳方式振替は、一連のハンドシェイクを介して、値が、複数のターゲット分散型台帳のソース分散型台帳における未使用の値を用いることによって知らないうちに作成できないことを保証するように行われる。
【００５２】
図４に示されるように、このような複数台帳方式振替の例示の実装形態は、一連の３つの個々のトランザクションを生成し、かつシステムの分散型台帳にコミットしてよい。これらのトランザクションは、ターゲット分散型台帳における開始トランザクション、ソース分散型台帳におけるロックトランザクション、およびターゲット分散型台帳における終了トランザクションを含む。
【００５３】
共通台帳間でデジタル表現された経済価値を振り替える方法４００の第１の段階において、ソース分散型台帳２００Ｓにおける既存のトランザクション４０２の未使用のトランザクション出力（ＵＴＸＯ）が見出されるまたは識別される。ソース分散型台帳において、ターゲット分散型台帳２００Ｔにおいて用いられるのは、このＵＴＸＯである。
【００５４】
方法４００の第２の段階では、開始トランザクション４０４は、生成され、かつターゲット分散型台帳２００Ｔにコミットされる。開始トランザクション４０４は、既存のトランザクション４０２の識別済みＵＴＸＯと同じデジタル表現された経済価値を作成する。しかしながら、本発明の一実施形態によると、開始トランザクション４０４は、この出力が通常のやり方で用いることが不可能であるという特別な性質を有する（より詳細には、以下に論じられるように、開始トランザクション４０４のＵＴＸＯは、開始トランザクション４０４を参照し、かつ既存のトランザクション４０２の識別済みＵＴＸＯを用いるロックトランザクション４０６を参照する終了トランザクション４０８によってのみ用いられ得る）。
【００５５】
方法４００の第３のステージでは、開始トランザクション４０４がターゲット分散型台帳２００Ｔにコミットされた後、ロックトランザクション４０６は生成され、かつソース分散型台帳２００Ｓにコミットされる。ロックトランザクション４０６のトランザクション入力は、ソース分散型台帳２００Ｓにおける既存のトランザクション４０２の識別済みＵＴＸＯである。そのように、ロックトランザクション４０６は、既存のトランザクション４０２の識別済みＵＴＸＯを用いるため、出力はソース分散型台帳２００Ｓにおいて用いられたＴＸＯになる（そのため、もはや用いられ得ない）。しかしながら、ロックトランザクションの定義により、この出力は用いることが不可能である（すなわち、この出力は用いられ得ない）。実際には、ロックトランザクション４０６は、ソース分散型台帳２００Ｓにおいて用いられないように既存のトランザクション４０２の識別済みＵＴＸＯをロックする。
【００５６】
さらに、ロックトランザクション４０６は、（例えば、ターゲットブロックにおける開始トランザクションの存在を検証するために開始トランザクション全体、ならびにマークルルートおよび分岐ハッシュを提供することによって）ターゲット分散型台帳２００Ｔにおける開始トランザクション４０４を参照する。ロックトランザクション４０６から開始トランザクション４０４へのこの「マークル参照」を使用して、識別済みＵＴＸＯの値が複数回用いられないようにする。
【００５７】
方法４００の第４の段階では、ロックトランザクション４０６がソース分散型台帳２００Ｓにコミットされた後、終了トランザクション４０８が生成され、かつターゲット分散型台帳２００Ｔにコミットされる。有効な終了トランザクション４０８は、開始トランザクション４０４によって作成されたＵＴＸＯを用いる。
【００５８】
有効であるように、終了トランザクション４０８は、（例えば、ソースブロックにおけるロックトランザクションの存在を検証するために使用されてよい、ロックトランザクション全体、ならびにマークルルートおよび分岐ハッシュを提供することによって）識別済みＵＴＸＯを用いたロックトランザクション４０６を参照しなければならない。ロックトランザクション４０６の出力が用いられ得ないため、ソース分散型台帳２００Ｓにおけるロックトランザクション４０６の存在は、識別済みＵＴＸＯが、実際には、ソース分散型台帳２００Ｓで消滅していることの保証をもたらす。
【００５９】
複数の終了トランザクション４０８はコミットできない。これは、終了トランザクション４０８が（このトランザクション入力によって）ロックトランザクション４０６によって参照される開始トランザクション４０４のＵＴＸＯを用いる場合にのみ有効であるからである。それ故に、終了トランザクション４０８によって用いられる出力がロックトランザクション４０６によって参照される開始トランザクション４０４の出力ではない場合、終了トランザクション４０８は無効であるため、ターゲット分散型台帳２００Ｔにコミットされることが防止される。
【００６０】
有効な終了トランザクション４０８のトランザクション出力（単数または複数）（ＴＸＯ（単数または複数））は、ターゲット分散型台帳２００Ｔにおける１または複数の受信者への複数台帳のデジタル表現された経済価値振替の終了を表す。終了トランザクション４０８のＴＸＯ（単数または複数）は通常、受信者（単数または複数）によってターゲット分散型台帳２００Ｔ内で用いられ得る。換言すれば、終了トランザクションがターゲット分散型台帳にコミットされると、終了トランザクションのＴＸＯ（複数可）は、ソース分散型台帳におけるいずれのトランザクションもさらに参照する必要はなく、ターゲット分散型台帳内で用いられてよい。
【００６１】
システムアーキテクチャ
複数台帳方式振替をサポートするために使用されてよい１つのシステムアーキテクチャは、ターゲット分散型台帳のフルノードでもあるソース分散型台帳のそれぞれのフルノードを有してよい。このような完全重複システムアーキテクチャは、複数台帳方式振替をサポートすることが考えられるが、それぞれのノードにおいてかなりの追加のリソースを必要とすると思われる。
【００６２】
複数台帳方式振替をサポートするが完全重複システムアーキテクチャより少ないリソースを必要とする例示のシステムアーキテクチャが本明細書に開示される。第１の例示のシステムアーキテクチャは対外支払検証（ＰＶ）ノードを分散型台帳ネットワークに埋め込む。第２の例示のシステムアーキテクチャは、共有フルノードのセットを利用するが、全てのノードが共有されるノードであるわけではない。
【００６３】
第１の例示のシステムアーキテクチャ：共同設置される「局所」フルノードおよび「対外」ＰＶノード
図５Ａに示される第１の例示のシステムアーキテクチャ５００において、他の（すなわち対外の）共通台帳に対する支払検証（ＰＶ）ノードは、多重分散型台帳システムのそれぞれの分散型台帳ネットワークにおけるノードの全てまたは一部分に共同設置される。共同設置されたＰＶノードは複数台帳方式支払検証をサポートするために使用される。
【００６４】
システムを実装するために必要とされるリソースを低減するために、ＰＶノードは非フルノードであってよい。例示の実装形態では、それぞれのＰＶノードは、簡略化支払検証（ＳＰＶ）ノードとして実装されてよい。また、４つの共通台帳を有する多重分散型台帳システムが図５Ａに示されているが、多重分散型台帳システムは任意の数の共通台帳を含んでよい。
【００６５】
図５Ａに示される例では、第１の分散型台帳Ａは第１の分散型台帳ネットワーク１００Ａによって維持され、第２の分散型台帳Ｂは第２の分散型台帳ネットワーク１００Ｂによって維持され、第３の分散型台帳Ｃは第３の分散型台帳ネットワーク１００Ｃによって維持され、第４の分散型台帳Ｄは第４の分散型台帳ネットワーク１００Ｄによって維持される。これらの分散型台帳ネットワーク（１００Ａ、１００Ｂ、１００Ｃ、および１００Ｄ）のそれぞれは、図１との関連で上述されるように、これ自体のノード１０２をこれらの間の相互接続１０４と共に含む。さらに、本発明の一実施形態によると、コンセンサスネットワーク（１００Ａ、１００Ｂ、１００Ｃ、および１００Ｄ）を通信可能に相互接続するように異なるコンセンサスネットワークにおけるいくつかのノード１０２間にさらなる通信相互接続５０２がある。
【００６６】
しかしながら、共通台帳の分散型台帳ネットワークを単に通信可能に相互接続することは、台帳間トランザクションのサブミッションおよび検証が複数台帳方式振替をサポートすることも必要とされるため、不十分である。この理由で、それぞれの分散型台帳ネットワークにおけるノード１０２の少なくともいくつかは、これ自体の分散型台帳の「局所」フルノードスタック、および相互作用するものになる共通台帳の「対外」ＰＶノードスタックを両方共実行するように構成されてよい。
【００６７】
分散型台帳のフルノードスタックは、分散型台帳ネットワークのフルノードにおけるソフトウェアルーチンまたはプログラムのセットを含む。ソフトウェアルーチンまたはプログラムのセットは、適用可能な場合、ＡＰＩ（アプリケーションプログラムインターフェース）要求を分散型台帳トランザクションに変換することと、ユーザーキーを管理することと、トランザクションに署名することと、トランザクションがコミットされる時他のシステムに通知することと、トランザクションを分散型台帳にサブミットすることと、トランザクションを含んでいることの証明を提供することと、を含む、分散型台帳に関連するタスクおよび／または機能を実行する。分散型台帳のＰＶノードスタックは、分散型台帳ネットワークと通信するクライアントにおける低減したソフトウェアルーチンまたはプログラムのセットを含む。低減したソフトウェアルーチンまたはプログラムのセットは、トランザクションを含んでいることの証明を提供することと、トランザクションを分散型台帳にサブミットすることとを含むタスクおよび／または機能を実行する。
【００６８】
図５Ａの例では、第１のネットワーク１００Ａにおけるノード１０２の少なくともいくつかは、第２のネットワーク、第３のネットワーク、および第４のネットワーク（１００Ｂ、１００Ｃ、および１００Ｄ）のそれぞれのＰＶノード（ＰＶ−Ｂ、ＰＶ−Ｃ、およびＰＶ−Ｄ）も実行するように構成されている。同様に、第２のネットワーク１００Ｂにおけるノード１０２の少なくともいくつかは、第１のネットワーク、第３のネットワーク、および第４のネットワーク（１００Ａ、１００Ｃ、および１００Ｄ）のそれぞれのＰＶノード（ＰＶ−Ａ、ＰＶ−Ｃ、およびＰＶ−Ｄ）も実行するように構成されている。また、第３のネットワーク１００Ｃにおけるノード１０２の少なくともいくつかは、第１のネットワーク、第２のネットワーク、および第４のネットワーク（１００Ａ、１００Ｂ、および１００Ｄ）のそれぞれのＰＶノード（ＰＶ−Ａ、ＰＶ−Ｂ、およびＰＶ−Ｄ）も実行するように構成されている。最後に、第４のネットワーク１００Ｄにおけるノード１０２の少なくともいくつかは、第１のネットワーク、第２のネットワーク、および第３のネットワーク（１００Ａ、１００Ｂ、および１００Ｃ）のそれぞれのＰＶノード（ＰＶ−Ａ、ＰＶ−Ｂ、およびＰＶ−Ｃ）も実行するように構成されている。
【００６９】
それぞれのＰＶ−Ａノードは、共通台帳Ａのブロックヘッダーおよびシグネチャのチェーン（すなわち、ブロックヘッダー／シグネチャチェーン）を維持する。同様に、それぞれのＰＶ−Ｂノードは共通台帳Ｂのブロックヘッダー／シグネチャチェーンを維持し、それぞれのＰＶ−Ｃノードは共通台帳Ｃのブロックヘッダー／シグネチャチェーンを維持し、それぞれのＰＶ−Ｄノードは共通台帳Ｄのブロックヘッダー／シグネチャチェーンを維持する。
【００７０】
図５Ｂは、本発明の一実施形態による、図５Ａのシステムアーキテクチャ内の分散型台帳ネットワーク１００Ａにおけるノード１０２Ａのためのコンピュータシステム５１０の例示の実装形態を示す。コンピュータシステム５１０は、例えば、１つまたは複数の中央処理装置（ＣＰＵ）および１つまたは複数のグラフィック処理ユニット（ＧＰＵ）を含む複数のプロセッサを使用して実装されてよい。
【００７１】
示されるように、コンピュータシステム５１０は、局所分散型台帳Ａに対するフルノードスタックＡ  ５１２−Ａを含む。フルノードスタックＡ  ５１２−Ａは、局所分散型台帳Ａの完全なコピーを含む。
【００７２】
さらに、コンピュータシステム５１０は、対外分散型台帳Ｂに対するＳＰＶノードスタックＢ  ５１４−Ｂ、対外分散型台帳Ｃに対するＳＰＶノードスタックＣ  ５１４−Ｃ、および対外分散型台帳Ｄに対するＳＰＶノードスタックＤ  ５１４−Ｄを含む。ＳＰＶノードスタックＢ  ５１４−Ｂは、対外分散型台帳Ｂに対するブロックヘッダー／シグネチャチェーンを含む。ＳＰＶノードスタックＣ  ５１４−Ｃは、対外分散型台帳Ｃに対するブロックヘッダー／シグネチャチェーンを含む。ＳＰＶノードスタックＤ  ５１４−Ｄは、対外分散型台帳Ｄに対するブロックヘッダー／シグネチャチェーンを含む。
【００７３】
ＰＶノード、とりわけ、ＳＰＶノードとして実装されるＰＶノードで維持されてよいブロックヘッダー／シグネチャチェーンの構造は、図５Ｃに示されている。図５Ｃに示されるように、ブロックヘッダー／シグネチャチェーン５２０は、関連の分散型台帳のブロックヘッダー５２２およびブロックシグネチャ５２４を含み、この場合、ブロックシグネチャは、署名されるブロックが有効であるとバリデータが承諾することを指示する関連の分散型台帳ネットワークのブロックバリデータによるシグネチャである。
【００７４】
ここで、図５Ａとの関連で上述される第１の例示の多重分散型台帳システム５００が、例えば、毎秒１００，０００のトランザクションという目標を実現するように構築されること、および、それぞれの共通台帳が毎秒３３３のトランザクションを個々に取り扱うことが可能であることを検討する。毎秒１００，０００のトランザクションを実現するために、図５Ａの多重分散型台帳システム５００は、１００，０００／３３３＝３００程度の共通台帳を有する必要がある。３００の共通台帳がある場合、それぞれの参加ノードは、ほぼ３００の他の分散型台帳に対するＳＰＶノードを維持しなければならない（分散型台帳における参加ノードまたはバリデータは、ブロックの妥当性について投票することが可能とされるノードである。分散型台帳におけるバリデータの圧倒的多数（例えば、３分の２以上）は一般的に、ブロックがチェーンにコミットされるようにするためにブロックの妥当性について同意しなければならない）。
【００７５】
それぞれの分散型台帳がその台帳に対するＳＰＶノードによって維持されるように毎秒約７キロバイトのデータを生じさせることになることが推定可能である。データは、その分散型台帳に対するブロックヘッダーおよびブロックシグネチャを含む。この、１共通台帳当たり毎秒７キロバイトの推定は、必要とされる投票の３分の２（２／３）の閾値で、それぞれの共通台帳に対してわずか約１００のコンセンサス参加者を有すること、および、１シグネチャ当たり１００バイトがあることを想定している。
【００７６】
これによって、約３００の分散型台帳×７キロバイト／秒／台帳＝それぞれの参加している「局所」フルノードに「対外」ＳＰＶノードを共同設置するための追加のコミットされた記憶域の２，１００キロバイト／秒となる。この推定された追加の記憶域の要件は、対外ＳＰＶノードを共同設置しない記憶域の要件の約２倍である。
【００７７】
この追加の記憶域の要件に加えて、ブロックヘッダー／シグネチャチェーンにおけるブロックヘッダーに対するブロックハッシュのインデックスは、ＳＰＶノードが与えられてよい。インデックスは、台帳間検証を行うように図４に示されたマークルツリー参照に使用されてよい。
【００７８】
ＰＶノードに対する追加の記憶域の要件は管理可能であるため、他の共通台帳全ての「対外」ＰＶノードは、共通台帳の参加している「局所」ノードの一部または全てにおいて共同設置されてよい。さらに、それぞれのＰＶノードが与えられたインデックスを使用して、参加ノードは、該当するマークルルートを効率的に見出すことでトランザクション参照を容易に検証可能である。
【００７９】
第２の例示のシステムアーキテクチャ：共有ノードのセット
図６Ａに示される第２の例示のシステムアーキテクチャ６００において、ノードのセットは、多重分散型台帳システムの分散型台帳ネットワーク全てによって共有される。これらの共有ノードのそれぞれは、複数台帳方式振替を効率的にサポートするように多重分散型台帳システムの共通台帳全てに対するフルノードとして動作してよい。３つの共通台帳を有する多重分散型台帳システムが図６Ａに示されているが、任意の数の共通台帳がシステムに含まれてよいことに留意されたい。
【００８０】
図６Ａに示される例では、第１の分散型台帳Ａは第１の分散型台帳ネットワーク１００Ａによって維持され、第２の分散型台帳Ｂは第２の分散型台帳ネットワーク１００Ｂによって維持され、第３の分散型台帳Ｃは第３の分散型台帳ネットワーク１００Ｃによって維持される。これらの分散型台帳ネットワーク（１００Ａ、１００Ｂ、および１００Ｃ）のそれぞれは、図１との関連で上述されるように、ノード１０２をこれらの間の相互接続１０４と共に含む。
【００８１】
本発明の一実施形態によると、フルノードの共有セット（１００ＡＢＣ）がある。共有セット１００ＡＢＣのそれぞれのノードは、３つの分散型台帳ネットワーク（１００Ａ、１００Ｂ、および１００Ｃ）のそれぞれのフルノードとして動作可能である。そのように、共有セット１００ＡＢＣのそれぞれのノードは、３つの分散型台帳（Ａ、Ｂ、およびＣ）のそれぞれのコピーを含有する。３つの分散型台帳（Ａ、Ｂ、Ｃ）が別個の分散型台帳のままであり、それぞれがトランザクションの別個の台帳を記録していることに留意されたい。
【００８２】
本発明の一実施形態によると、システムにおけるそれぞれの分散型台帳のブロックヘッダーに対するブロックハッシュのインデックスは、分散型台帳データから作成され、かつフルノードの共有セット（１００ＡＢＣ）のそれぞれのノードで提供されてよい。インデックスは、台帳間検証を行うように（ロックトランザクション４０６から開始トランザクション４０４まで、および終了トランザクション４０８からロックトランザクション４０６まで）図４に示されるマークルツリー参照に使用されてよい。
【００８３】
任意の参加ノードは、複数台帳トランザクションを検証するためにネットワークを通してフルノードの共有セット（１００ＡＢＣ）のノードに問合せを送ってよい。これは、共通台帳に提供されたフルノードが共通台帳のコンテンツについて偽っていないことを保証または認定するために中央エンティティまたは他の信頼されているエントリーでの信頼を含意する。
【００８４】
図６Ｂは、本発明の一実施形態による、図６Ａのシステムアーキテクチャ内の共有ノードのセット１００ＡＢＣにおけるノード１０２ＡＢＣに対するコンピュータシステム６１０の例示の実装形態を示す。示されるように、コンピュータシステム６１０は、局所分散型台帳Ａに対するフルノードスタックＡ  ５１２−Ａ、局所分散型台帳Ｂに対するフルノードスタックＢ  ５１２−Ｂ、および、局所分散型台帳Ｃに対するフルノードスタックＣ  ５１２−Ｃを含む。フルノードスタックＡ  ５１２−Ａは局所分散型台帳Ａに対する完全なコピーを含む。フルノードスタックＢ  ５１２−Ｂは局所分散型台帳Ｂに対する完全なコピーを含む。フルノードスタックＣ  ５１２−Ｃは局所分散型台帳Ｃに対する完全なコピーを含む。
【００８５】
例示の複数台帳方式振替のフローチャート
図７は、本発明の一実施形態による、ソース分散型台帳上のデジタル表現された経済価値の所有者が、デジタル表現された経済価値をターゲット分散型台帳上のエンティティに振り替えるための方法７００のフローチャートである。図示される特定の例では、振り替えられる値は１００万米ドル（ＵＳＤ）である。
【００８６】
方法７００によって使用される構成要素は、以下、ソース分散型台帳Ｌ＿Ａと、ターゲット分散型台帳Ｌ＿Ｂと、Ｌ＿Ａのフルノードスタック（Ｎ＿Ａ）を有し、また、Ｌ＿Ｂの少なくともＳＰＶノード（Ｓ＿Ｂ）として動作するように構成される（そのため、Ｌ＿Ｂに対する少なくともブロックヘッダーを含む）第１のネットワークノードと、Ｌ＿Ｂのフルノードスタック（Ｎ＿Ｂ）を有し、また、Ｌ＿Ａの少なくともＳＰＶノード（Ｓ＿Ａ）として動作するように構成される（そのため、Ｌ＿Ａに対する少なくともブロックヘッダーを含む）第２のネットワークノードと、を含んでよい。
【００８７】
ノードスタックＮ＿Ａは、以下のデータおよび能力、つまり、Ｌ＿Ａを使用するそれぞれのエンティティの資産に対するＵＴＸＯのインデックス、これらのＵＴＸＯによるトランザクションを構築する能力、Ｌ＿Ａからのコミットされたトランザクションをリッスンする能力、対外分散型台帳（例えば、Ｌ＿Ｂ）にコミットされる対外ノードスタック（例えば、Ｎ＿Ｂ）にトランザクションをサブミットする能力、トランザクションがこれ自体でサブミットされた場合の、対外ノードスタック（例えば、Ｎ＿Ｂ）からのコミットされたトランザクションをリッスンする能力、対外ノードスタック（例えば、Ｎ＿Ｂ）によってサブミットされたトランザクションを承諾しかつ索引付けする能力、および、コミットされたトランザクションがそれ自体でサブミットされた場合の、Ｌ＿Ａから対外ノードスタック（例えば、Ｎ＿Ｂ）へのコミットされたトランザクションを排除する能力を有してよい。
【００８８】
同様に、ノードスタックＮ＿Ｂは、以下のデータおよび能力、つまり、Ｌ＿Ｂを使用するそれぞれのエンティティの資産に対するＵＴＸＯのインデックス、これらのＵＴＸＯによるトランザクションを構築する能力、Ｌ＿Ｂからのコミットされたトランザクションをリッスンする能力、対外分散型台帳（例えば、Ｌ＿Ａ）にコミットされる対外ノードスタック（例えば、Ｎ＿Ａ）にトランザクションをサブミットする能力、トランザクションがこれ自体でサブミットされた場合の、対外ノードスタック（例えば、Ｎ＿Ａ）からのコミットされたトランザクションをリッスンする能力、対外ノードスタック（例えば、Ｎ＿Ａ）によってサブミットされたトランザクションを承諾しかつ索引付けする能力、および、コミットされたトランザクションがそれ自体でサブミットされた場合の、Ｌ＿Ａから対外ノードスタック（例えば、Ｎ＿Ａ）へのコミットされたトランザクションを排除する能力を有してよい。
【００８９】
ステップ１に従って、ノードスタックＮ＿Ａのクライアントとして、資産所有者および振替ソースであるエンティティＡは、ソース分散型台帳Ａ（Ｌ＿Ａ）からターゲット分散型台帳Ｂ（Ｌ＿Ｂ）上のエンティティＢへの指定された値（この例では、１００万ＵＳＤ）の複数台帳方式振替を開始する。フルノードスタックにおいて（例えば、ノードスタックＮ＿Ａにおいて）実施されるステップ１に関する疑似コードは、図９の行１〜２に提供される。
【００９０】
ステップ２に従って、ノードスタックＮ＿Ａは、Ｌ＿ＡのＵＴＸＯ  Ｕ＿１におけるエンティティＡの資産の指定された値を識別する。フルノードスタックにおいて（例えば、ノードスタックＮ＿Ａにおいて）実施されるステップ２に関する疑似コードは、図９の行３〜４に提供される。
【００９１】
ステップ３に従って、Ｎ＿Ａは指定された値の開始トランザクションＴ＿Ｉをビルドする。フルノードスタックにおいて（例えば、ノードスタックＮ＿Ａにおいて）実施されるステップ３に関する疑似コードは、図９の行５〜６に提供される。
【００９２】
ステップ４に従って、Ｎ＿ＡはＴ＿ＩをノードスタックＮ＿Ｂにサブミットする。フルノードスタックにおいて（例えば、ノードスタックＮ＿Ａにおいて）実施されるステップ４に関する疑似コードは、図１１における疑似コードルーチンを呼び出すように、図９の行１１〜１４に提供される。
【００９３】
ステップ５に従って、ノードスタックＮ＿ＢはＴ＿ＩをＬ＿Ｂにサブミットする。フルノードスタックにおいて（例えば、ノードスタックＮ＿Ｂにおいて）実施されるステップ５に関する疑似コードは、図１２における疑似コードルーチンを呼び出すように、図１１の行５〜６に提供される。
【００９４】
ステップ６に従って、Ｌ＿ＢはＴ＿Ｉをコミットし、かつＴ＿ＩがコミットされるとＮ＿Ｂに通知する。ステップ６は分散型台帳の従来のコードを使用して行われてよい。
【００９５】
Ｔ＿ＩがＬ＿Ｂにコミットされた後、ステップ７ａに従って、ＳＰＶノードＳ＿ＢはＴ＿Ｉを含有するブロックについてのＳＰＶ情報（すなわち、ヘッダーおよびシグネチャ）を受信する。さらに、ステップ７ｂに従って、Ｎ＿Ｂは、Ｔ＿ＩがコミットされたことをＮ＿Ａに通知する。フルノードスタックにおいて（例えば、ノードスタックＮ＿Ｂにおいて）実施されるステップ７ａおよび７ｂに関する疑似コードは、図１３および図１４における疑似コードによって提供される。
【００９６】
ステップ８に従って、Ｎ＿Ａは、Ｔ＿Ｉを参照しかつＵ＿１をロックするロックトランザクションＴ＿Ｌを構築する。フルノードスタックにおいて（例えば、ノードスタックＮ＿Ａにおいて）実施されるステップ８に関する疑似コードは、図１０の行７〜１２に提供される。
【００９７】
ステップ９に従って、Ｎ＿ＡはＴ＿ＬをＬ＿Ａにサブミットする。フルノードスタックにおいて（例えば、分散型台帳Ｌ＿ＡのノードスタックＮ＿Ａにおいて）実施されるステップ９に関する疑似コードは、図１２における疑似コードルーチンを呼び出すように、図１０の行１３〜１４にある。
【００９８】
ステップ１０に従って、Ｌ＿Ａは、（Ｔ＿Ｌで参照される）Ｔ＿ＩがＬ＿Ｂによってコミットされたことを検証するためにＳ＿Ｂでチェックする。分散型台帳（例えば、分散型台帳Ｌ＿Ａ）によって実施されるステップ１０に関する疑似コードは、図１２に提供される。トランザクションが対外分散型台帳でコミットされることを検証するための例示の手順は、図８との関連で後述される。
【００９９】
ステップ１１に従って、検証が成功した後、Ｌ＿ＡはＴ＿Ｌをコミットし、かつＴ＿ＬがコミットされるとＮ＿Ａに通知する。ステップ１１は分散型台帳の従来のコードを使用して行われてよい。
【０１００】
Ｔ＿ＬがＬ＿Ａにコミットされた後、ステップ１２ａに従って、ＳＰＶノードＳ＿ＡはＴ＿Ｌを含有するブロックについてのＳＰＶ情報（すなわち、ヘッダーおよびシグネチャ）を受信する。さらに、ステップ１２ｂに従って、Ｎ＿Ａは、Ｔ＿Ｌを参照し、かつ振替ターゲットＢによって所有される指定された値の出力を有する終了トランザクションＴ＿Ｃを構築する。フルノードスタックにおいて（例えば、ノードスタックＮ＿Ａにおいて）実施されるステップ１２ａおよび１２ｂに関する疑似コードは、図１３および図１４における疑似コードによって提供される。
【０１０１】
ステップ１３に従って、Ｎ＿ＡはＴ＿ＣをＮ＿Ｂにサブミットする。フルノードスタックにおいて（例えば、ノードスタックＮ＿Ａにおいて）実施されるステップ１３に関する疑似コードは、図１０の行２７〜３０、および図１１の疑似コードに提供される。
【０１０２】
ステップ１４に従って、Ｎ＿ＢはＴ＿ＣをＬ＿Ｂにサブミットする。フルノードスタックにおいて（例えば、分散型台帳Ｌ＿ＡのノードスタックＮ＿Ａにおいて）実施されるステップ１４に関する疑似コードは、図１２の疑似コードによって提供される。
【０１０３】
ステップ１５に従って、Ｌ＿Ｂは、（Ｔ＿Ｃで参照される）Ｔ＿ＬがＬ＿Ａによってコミットされたことを検証するためにＳ＿Ａでチェックし、Ｌ＿Ｂはまた、Ｔ＿Ｃへの入力が（Ｔ＿Ｌで参照される）Ｔ＿Ｉの出力であることを検証するようにチェックする。分散型台帳（例えば、分散型台帳Ｌ＿Ｂ）によって実施されるステップ１０に関する疑似コードは、図１２に提供される。トランザクションが対外分散型台帳でコミットされることを検証するための例示の手順は、図８との関連で後述される。
【０１０４】
ステップ１６に従って、検証が成功した後、Ｌ＿ＢはＴ＿Ｃをコミットし、かつＴ＿ＣがコミットされるとＮ＿Ｂに通知する。ステップ１６は分散型台帳に対して従来のコードを使用して行われてよい。
【０１０５】
ステップ１７に従って、Ｎ＿ＢはＴ＿ＣがＬ＿ＢによってコミットされたことをＮ＿Ａに通知する。フルノードスタックにおいて（例えば、ノードスタックＮ＿Ｂにおいて）実施されるステップ１７に関する疑似コードは、図１４に提供される。
【０１０６】
最後に、ステップ１８に従って、Ｎ＿ＢはエンティティＢのＴ＿Ｃの出力を索引付けする。フルノードスタックにおいて（例えば、ノードスタックＮ＿Ｂおいて）実施されるステップ１８に関する疑似コードは、図１０の行３３〜３４に提供される。
【０１０７】
上述される方法７００は、図５Ａに図示される第１のシステムアーキテクチャ５００による使用にとりわけ適していることに留意されたい。これは、第１のシステムアーキテクチャ５００が局所分散型台帳のフルノードと共に対外分散型台帳のＳＰＶノードを共同設置することが理由である。
【０１０８】
方法７００は、図６に図示される第２のシステムアーキテクチャ６００による使用のために容易に修正可能である。第２のシステムアーキテクチャ６００は、局所分散型台帳のフルノードによる対外分散型台帳のフルノードを共同設置する。そのように、方法７００のステップ７ａおよび１２ａは必要ではない。さらに、Ｌ＿Ａは、Ｔ＿Ｉがステップ１０でコミットされたことを検証するためにＮ＿Ｂでチェックしてよく、Ｌ＿Ｂは、Ｔ＿Ｃがステップ１５でコミットされたことを検証するためにＮ＿Ａでチェックしてよい。
【０１０９】
台帳間トランザクション検証
対外分散型台帳におけるトランザクション参照を検証するために、これらの他の分散型台帳に何がコミットされるのかに対する信頼できる検証機構を有することが必要である。別の分散型台帳におけるトランザクションを検証するためのこのような機構は、従来の分散型台帳技術によって提供されない。
【０１１０】
対外分散型台帳におけるトランザクションを検証するための例示のプロセス８００は、図８に示されている。プロセス８００は、例えば、開始トランザクションがターゲット分散型台帳に存在することを検証するための図７のステップ１０において、および、ロックトランザクションがソース分散型台帳に存在することを検証するための図７のステップ１５において適用されてよい。
【０１１１】
ステップ８０１に従って、検証されるトランザクションに対するトランザクション入力の参照データは、問合せ内で局所ノードから１つまたは複数の対外ノードにパスさせる。局所ノードは局所分散型台帳のノードであり、対外ノードは、トランザクションが検証される対外分散型台帳のノードである。
【０１１２】
８０２）対外ノード（複数可）は、問合せするための正確なインデックスを見出すためにトランザクション入力において台帳識別子（例えば、チェーンｉｄ）を使用し、この正確なインデックスは台帳識別子と関連付けられている。インデックスへの入力は検証されているトランザクションを含有するブロックに対するブロックハッシュである。
【０１１３】
８０３）対外ノード（複数可）は、検査するための正確なブロックを見出すためにトランザクション入力においてブロックハッシュを使用する。
【０１１４】
８０４）対外ノード（複数可）は、（ステップ８０３で見出された）識別されたブロックからブロックヘッダーを抽出する。
【０１１５】
８０５）対外ノード（複数可）は識別されたブロックからマークルルートハッシュを抽出する。
【０１１６】
８０６）対外ノード（複数可）はトランザクション入力のトランザクションに対するトランザクションハッシュを算出する。
【０１１７】
８０７）対外ノード（複数可）はトランザクションハッシュおよび提供されたマークル分岐ハッシュからマークルルートハッシュを算出する。
【０１１８】
８０８）対外ノード（複数可）は、算出されたマークルルートハッシュを識別されたブロックにおけるマークルルートハッシュと比較する。
【０１１９】
８０９）対外ノード（複数可）は、トランザクションが、ハッシュが一致する場合有効であり、ハッシュが一致しない場合無効であることを局所ノードに返す。
【０１２０】
複数の対外ノードが上述した検証方法８００で問い合わせられる場合、トランザクションは、対外ノードのうちの１つが、トランザクションが有効であると返す限り、有効にコミットされるとみなされ得ることに留意されたい。
【０１２１】
また、上述される方法８００が、図５Ａに示される第１のシステムアーキテクチャ５００または図６に示される第２のシステムアーキテクチャ６００のどちらかで使用されてよいことに留意されたい。第１のシステムアーキテクチャ５００について、対外ノードは、局所フルノードスタックと共に共同設置される対外ＳＰＶノードスタックに対応し得る。第２のシステムアーキテクチャ６００について、対外ノードスタックは、局所フルノードスタックと共に共同設置される対外フルノードスタックであってよい。
【０１２２】
図９〜図１４は、本発明の一実施形態の例示の実装形態に対する詳細な「青写真」を提供する疑似コードを示す。疑似コードにおけるコメントは／／が前に付けられている。
【０１２３】
トランザクションを開始する
図９に示される疑似コード手順は、複数台帳トランザクションがノードスタックにサブミットされる時に行われる。トランザクションを構築するために、トランザクションされる資産に対応するＵＴＸＯが見出されなければならない。ＵＴＸＯが見出だされると、開始トランザクションはそのＵＴＸＯ外に構築されるものとする。この開始トランザクションは、トランザクションのソースおよびトランザクションのターゲットと共に、後の検索のために索引付けられるものとする。開始トランザクションはＵＴＸＯにおける資産の所有者によって署名されるものとする。さらにまた、ターゲットノードスタックが位置し、開始トランザクションはソースの知識と共にターゲットノードスタックに送られる。
【０１２４】
コミットされたトランザクションを通知する
図１０に示される疑似コード手順は、トランザクションがコミットされたことをノードスタックが通知される時に行われる。トランザクションが開始トランザクションであるかロックトランザクションであるかに応じて、２つの事例がある。
【０１２５】
第１の事例は、コミットされるトランザクションが開始トランザクションである場合である。これが生じる時、図９に説明されるインデックスからロックする必要があるＵＴＸＯを検索できる。さらにまた、このＵＴＸＯ外のロックトランザクションをビルドする。このトランザクションは、図９に説明されるインデックスを使用して検索もする、ＵＴＸＯにおける資産の所有者によって署名される必要がある。最後に局所台帳にこのトランザクションをサブミットする。
【０１２６】
第２の事例は、コミットされるトランザクションがロックトランザクションである場合である。これが生じる時、最初に、ロックトランザクションによって参照される開始トランザクションのターゲットを見出す。これは、図９に説明されるインデックスから利用可能である。ロックトランザクションを参照する終了トランザクションをビルドする。この終了トランザクションは、振り替えられる資産の所有者のシグネチャを必要とし、これは、図９に説明されるインデックスで検索できる。最後に、ターゲットに対するノードスタックを見出し、終了トランザクションは、ソースの知識と共に、ターゲットノードスタックに送られる。
【０１２７】
ノードスタックが通知される全てのトランザクションについて、利用可能なＵＴＸＯプールは更新される必要がある。
【０１２８】
対外トランザクションをコミットする
図１１に示される疑似コード手順は、（開始または終了トランザクションが受信される時など）ノードスタックが対外ノードスタックからトランザクションを受信する時に行われる。トランザクションは、トランザクションが受信されるソースに索引付けされ、次いで、トランザクションは局所分散型台帳にサブミットされる。
【０１２９】
トランザクションを台帳にサブミットする
図１２に示される疑似コード手順は、分散型台帳がサブミットされたトランザクションを受信する時に行われる。図では省かれている（図示されていない）全てのトランザクションにわたって共通の検証を行うことが採用されるいくつかのステップがある。ＳＰＶ参照を含有するこれらのトランザクション（ロックトランザクションおよび終了トランザクション）について、これらの入力にある特定の妥当性が与えられる。
【０１３０】
入力が（ロックトランザクションおよび終了トランザクションの場合）ＳＰＶ参照を含有することが見出される場合、ＳＰＶノード上の検証ＡＰＩを呼び出すことによって、ＳＰＶ参照が有効であることを検証する。さらに、（終了トランザクションの場合のように）入力がＳＰＶ参照によるトランザクションを含有するＳＰＶ参照を含有することを見出す場合、含有されるトランザクションのＳＰＶ参照トランザクションＩＤが、終了トランザクションが用いる開始トランザクションに一致するかどうかがチェックされる。全ての妥当性検査にパスする場合、トランザクションは台帳によってコミットされる準備ができている。
【０１３１】
ブロックを台帳にコミットする
図１３に示される疑似コード手順は、分散型台帳がトランザクションを含有するブロックをコミットする時に行われる。図には、分散型台帳がトランザクションをブロックにどのように追加するか、および台帳がブロック上のコンセンサスにどのように達するのかを決定するプロセスを、これらの主題が本開示の範囲を超えているため示していない。示される手順では、台帳は、そのブロックをある永続化された記憶域に記憶し、ブロックについてのＳＰＶ情報をＳＰＶノードに送り、さらにまた、ブロックがコミットされたことを局所ノードスタックに通知する。
【０１３２】
コミットされたトランザクションについてのメッセージを送る
図１４の疑似コード手順は、局所ノードスタックがコミットされたトランザクションに関する通知をどのように配信するのかを示す。この手順は、開始トランザクションおよび終了トランザクションに対して行われる。
【０１３３】
ブロックにおける全てのトランザクションについて、局所ノードスタックは、トランザクションが対外ソースを有したかどうかを判断するために（図１１に定められる）対外インデックスを見る。トランザクションが対外ソースを有していた場合、局所ノードスタックは、対外ソースに対するノードスタックを見出し、かつその対外ノードスタックまでコミットされたトランザクションおよびコミットされたトランザクションについてのＳＰＶ情報を送る。局所ノードスタックは、（ソースが局所または対外であるかどうか）全てのコミットされたトランザクションについて通知される。
【０１３４】
トランザクション構造
図１５は、本発明の一実施形態による、複数台帳方式参照トランザクション入力を含み得る標準トランザクション１５００のための一般構造を示す。図１５における標準トランザクションはトランザクション入力のリスト、およびトランザクション出力のリストを含む。
【０１３５】
この場合、２つのタイプのトランザクション入力がある。第１のタイプのトランザクション入力は、台帳内（すなわち、標準）トランザクション入力１５０２である。それぞれの台帳内トランザクション入力は、入力トランザクションを識別するバイト、および、入力トランザクションに対する出力オフセットを提供する整数を含む。
【０１３６】
第２のタイプのトランザクション入力は、複数台帳方式参照トランザクション入力１５０４である。それぞれの複数台帳方式参照トランザクション入力は、対外台帳を識別するバイト、対外台帳内のブロックを識別するブロックハッシュのバイト、識別されたブロックにおけるトランザクションに対するマークル分岐ハッシュのリスト、識別されたブロック内の入力トランザクションのトランザクションバイト、および、所定のトランザクションバイト内で参照されている特定の出力に対するオフセットを提供する整数オフセットを含む。
【０１３７】
それぞれのトランザクション出力１５０６は、出力されているデジタル財産を識別するバイト、および、トランザクション出力の符号化ロックであるバイトロックを含む。バイトロックは、一致する秘密キーからシグネチャを提供することによってアンロックされる。
【０１３８】
図１６〜図１８は、本発明の一実施形態による、複数台帳方式振替を共に提供する３つのトランザクションのための構造を示す。これらの３つの構造は、図４に示される３トランザクション複数台帳方式振替４００を実施するために使用されてよい。
【０１３９】
図１６は、本発明の一実施形態による、３トランザクション複数台帳方式振替の開始トランザクション１６００のための特定の構造を示す。開始トランザクションは、トランザクション入力を含まず、単一のトランザクション出力１６０６を含む。
【０１４０】
トランザクション出力１６０６は、振り替えられているデジタル財産を識別するバイト、およびバイトロックを含む。バイトロックは、この開始トランザクションを参照するロックトランザクションへの参照による終了トランザクションによってのみ（デジタル財産を用いるために）アンロックされてよい。
【０１４１】
図１７は、本発明の一実施形態による、３トランザクション複数台帳方式振替のロックトランザクション１７００のための特定の構造を示す。ロックトランザクション１７００は、トランザクション入力のリスト、およびトランザクション出力のリストを含む。
【０１４２】
トランザクション入力は、１つまたは複数の台帳内トランザクション入力１７０２、および単一の複数台帳方式参照トランザクション入力１７０４を含む。
【０１４３】
それぞれの台帳内トランザクション入力１７０２は、ソース台帳における入力トランザクションを識別するバイト、およびそのトランザクションに対する出力オフセットを提供する整数を含む。それぞれの入力トランザクションは、ソース台帳における既存のトランザクションに対応し、出力オフセットは、ロックトランザクション１７００に入力される既存のトランザクションの特定の出力を指示する。
【０１４４】
複数台帳方式参照トランザクション入力１７０４を使用して、ターゲット台帳における開始トランザクションを参照する。複数台帳方式参照トランザクション入力１７０４は、ターゲット台帳を識別するバイト、ターゲット台帳内のブロックを識別するブロックハッシュのバイト、識別されたブロックにおけるトランザクションに対するマークル分岐ハッシュのリスト、識別されたブロック内の開始トランザクションのトランザクションバイト、および、所定のトランザクションバイト内で参照される特定の出力に対するオフセットを提供する整数オフセットを含む。
【０１４５】
ロックトランザクション１７００は、いずれのトランザクション出力１７０６も必要としないため、ゼロ以上のトランザクション出力１７０６を有してよい。トランザクション出力１７０６がある場合、このトランザクション出力１７０６は、出力されているデジタル財産を識別するバイト、およびバイトロックを含む。トランザクション出力１７０６のデジタル財産は、（１つまたは複数の既存のトランザクションの出力（単数または複数）から）台帳内トランザクション入力１７０２が指し示すデジタル財産と、（開始トランザクションの指定された出力から）複数台帳方式参照トランザクション入力１７０４が指し示すデジタル財産との間の差に等しくなければならない。これらのデジタル財産の金額が等しい場合、トランザクション出力１７０６はない。
【０１４６】
図１８は、本発明の一実施形態による、３トランザクション複数台帳方式振替の終了トランザクション１８００のための特定の構造を示す。終了トランザクション１８００は、２つのトランザクション入力、および１つまたは複数のトランザクション出力を含む。
【０１４７】
２つのトランザクション入力は、単一の台帳内トランザクション入力１８０２、および単一の複数台帳方式参照トランザクション入力１８０４を含む。
【０１４８】
台帳内トランザクション入力１８０２は、ターゲット台帳における開始トランザクションを識別するトランザクションＩＤのバイト、およびそのトランザクションに対する出力オフセットを提供する整数を含む。出力オフセットは、終了トランザクション１８００に入力されている開始トランザクションの特定の出力を指示する。台帳内トランザクション入力１８０２におけるこのトランザクションＩＤは、ロックトランザクションによって指し示された開始トランザクションのトランザクションＩＤに一致しなければならず、その他の場合、終了トランザクションは無効になる。
【０１４９】
複数台帳方式参照トランザクション入力１８０４を使用して、ソース台帳におけるロックトランザクションを参照する。複数台帳方式参照トランザクション入力１８０４は、ソース台帳を識別するバイト、ソース台帳内のブロックを識別するブロックハッシュのバイト、識別されたブロックにおけるトランザクションに対するマークル分岐ハッシュのリスト、識別されたブロック内のロックトランザクションのトランザクションバイト、および、もしあれば、所定のトランザクションバイト内で参照されている特定の出力に対するオフセットを提供する整数オフセットを含む。
【０１５０】
１つまたは複数のトランザクション出力１８０６があってよい。それぞれのトランザクション出力１８０６は、出力されているデジタル財産を識別するバイト、およびトランザクション出力に対する符号化されたロックであるバイトロックを含む。バイトロックは、一致する秘密キーからシグネチャを提供することによってアンロックされる。
【０１５１】
スケーラビリティゲインを示すシステム性能計算
この節では、複数の分散型台帳（例えば、複数のブロックチェーン）を有するシステムに対するシステム性能の計算から明らかなようにスケーラビリティゲインについて説明する。
【０１５２】
計算についての変数定義は下記になる。
Ｒ＝１台帳につき１秒当たりの送金の数
Ｘ＝１台帳につき１秒当たりの台帳内トランザクションの数
Ｙ＝１台帳につき１秒当たりの台帳間トランザクションの数
Ｎ＝システムにおける共通台帳の数
【０１５３】
計算に対する想定は下記になる。
１）Ｎの分散型台帳にわたるトランザクションの最悪の場合の分散は、台帳内トランザクション対台帳間トランザクションの比率が１対Ｎ−１になるように想定される
２）ブロックはサイズが１メガバイト（１ＭＢ）である
３）分散型台帳のブロックの処理速度は毎秒１ブロックである
４）台帳内トランザクションは約１０００バイト＝１キロバイトを扱う
５）トランザクション参照の最悪の場合のサイズは、ｌｏｇ２（３０００）＊３２バイト＋３２バイト＝４１６バイトである
６）デジタル表現された経済価値を振り替えるための台帳間トランザクションは、それぞれ、５つのトランザクションを構成し、かつ、以下のステップにより合計２８１４バイトを扱う。
ａ）サブスクライバが送るトランザクションは約３３３バイトを扱う
ｂ）開始トランザクションは約２００バイトを扱う
ｃ）ロックトランザクションは、開始サイズ＋４１６バイト＋１００バイト＝７１６バイトを扱う
ｄ）終了トランザクションは、ロックサイズ＋４１６バイト＋１００バイト＝１２３２バイトを扱う
ｅ＝サブスクライバが受信するトランザクションは約３３３バイトを扱う
【０１５４】
上記の定義および想定に基づいて、以下の計算がなされる。
台帳内トランザクション対台帳間トランザクションの比率が１／（Ｎ−１）であることによって、Ｘ／Ｙ＝１／（Ｎ−１）
１ＭＢのブロックサイズ、および２つのタイプのトランザクションのサイズが１０００バイトおよび２８１４バイトであることによって、１０６＝１０００Ｘ＋２８１４Ｙ
１台帳につき１秒当たりの送金は、１台帳につき１秒当たりの台帳内トランザクションと、１台帳につき１秒当たりの台帳間トランザクションとの合計であるため、Ｒ＝Ｘ＋Ｙ
Ｎの関数としてＲの値を求めると、Ｒ＝１０６Ｎ／（２８１４Ｎ−１８１４）
【０１５５】
システムの集計で１秒当たりの送金（ＲＰＳ）Ｎ＊Ｒ＝１０５を目標にする場合、以下の二次方程式が得られる。
Ｎ２−２８１．４Ｎ＋１８１．４＝０
【０１５６】
上記の式のルートの値を求め、かつ実践的な理由から１以上でなければならない結果を考慮すると、共通台帳の数Ｎ＝２８１になる。この結果は、上記を想定すると、２８１の共通台帳は、それぞれが、システムの１０５ＲＰＳの集計トランザクションスループットを有するように毎秒１ＭＢをコミットするように実行されなければならないことを意味する。
【０１５７】
システムにおける共通台帳の数Ｎの関数としてＲＰＳでの１共通台帳当たりの計算されたトランザクションスループットは、本発明の一実施形態に従って、図１９のグラフによって示される。ＲＰＳでの総トランザクションスループットは、共通台帳の数Ｎで乗算した１台帳当たりのＲＰＳに等しい。グラフに見られるように、Ｎ＝２８１で、１台帳当たり（それぞれの台帳がブロックチェーンである時は１共通チェーン当たり）のＲＰＳは、システムスループットが約１０５であるように３５６である。
【０１５８】
共通台帳（それぞれの台帳がブロックチェーンである時は共通チェーン）の数の関数としてのＲＰＳでのシステムに対する計算した集計トランザクションスループットは、本発明の一実施形態に従って、図２０のグラフによって示される。示されるように、集計トランザクションスループットは、システムにおける共通台帳の数に比例して変化する。
【０１５９】
上に提示された計算は、システムにおけるトランザクションの最悪の場合の分散およびトランザクション参照の最悪の場合のサイズに基づくことに留意されたい。少なくとも多くの場合において、システムにおけるさまざまなコンセンサスネットワークへのノードの割り当てが、台帳内トランザクション対台帳間トランザクションの比率Ｘ／Ｙが１以上になるように大きく増加させるようになされ得る可能性は非常に高い。換言すれば、システムは、台帳間トランザクションより台帳内トランザクションの方が多いように構成可能である可能性が高い。対照的に、上述した計算における最悪の場合の想定は、台帳内トランザクションより台帳間トランザクションの方が多いことである。それ故に、実際のシステム性能は、潜在的に、上記の計算におけるシステム性能よりはるかに良好である。
【０１６０】
コンピュータシステム
図２１は、例えば、分散型台帳ネットワークの完全または部分的ノードを実装するために使用可能であるコンピュータシステム２１００の構成要素を高水準で示す。コンピュータシステムは、図に示されるより少ないまたは多い構成要素で実装されてよい。例えば、コンピュータシステムは、（グラフィックプロセッサを含む）１つまたは複数のプロセッサ２１０１と、このさまざまな構成要素を結合する１つまたは複数のバス２１０３とを含んでよい。コンピュータシステムはまた、１つまたは複数のユーザ入力デバイス２１０２（例えば、キーボード、マウス）と、１つまたは複数のデータ記憶デバイス２１０６（例えば、ハードドライブ、光ディスク、ソリッドステートメモリディスク）と、１つまたは複数の表示モニター２１０４（例えば、液晶表示器、フラットパネルモニター）と、１つまたは複数のコンピュータネットワークインターフェース２１０５（例えば、ネットワークアダプタ、モデム）と、メインメモリ２１０８（すなわち、ランダムアクセスメモリ）とを含んでよい。示されるように、コンピュータネットワークインターフェース２１０５は、この場合、分散型台帳ネットワークであってよいコンピュータネットワーク２１０９に結合されてよい。
【０１６１】
コンピュータシステムは、プロセッサ２１０１による実行のためにメインメモリ２１０８に非一時的に記憶されるコンピュータ可読コードまたは命令を含む１つまたは複数のソフトウェアモジュールでプログラミングされるような特定のマシンである。製品は、プロセッサ２１０１によって実行される時、コンピュータシステムを、１つまたは複数のソフトウェアモジュールの機能を実行するように動作可能にする命令を含むコンピュータ可読記憶媒体として具現化されてよい。
【０１６２】
結論
本開示の解決策は、複数の分散型台帳および複数台帳方式振替を使用して、高度にスケーラブルなトランザクションスループットを実現する。ソースブロックチェーンからターゲットブロックチェーンに値を効果的に振り替える一方、値の二重使用を防止するように複数台帳方式振替を書き込むための方法および命令コードが開示される。高度にスケーラブルなトランザクションスループットを実現するために複数の分散型台帳間の複数台帳方式振替を利用するシステムアーキテクチャも開示される。分散型台帳間の複数台帳方式振替を実施するように構成されるコンピュータ装置も開示される。
【０１６３】
本開示では、本発明の実施形態を十分に理解してもらうために、システム、構成要素、および方法の例などの多数の具体的な詳細が提供される。しかしながら、本発明が具体的な詳細の１つまたは複数がなくても実践可能であることを、当業者は認識するであろう。他の例では、本発明の態様を不明瞭にすることを回避するために、周知の詳細は示されないし説明もされない。
【０１６４】
本発明の具体的な実施形態が提供されているが、これらの実施形態が例示のためのものであり限定するものではないことは、理解されたい。多くの追加の実施形態は、本開示を読む当業者には明らかとなるであろう。
【図１】
2021508111.tif 000003
【図２】
2021508111.tif 000004
【図３】
2021508111.tif 000005
【図４】
2021508111.tif 000006
【図５Ａ】
2021508111.tif 000007
【図５Ｂ】
2021508111.tif 000008
【図５Ｃ】
2021508111.tif 000009
【図６Ａ】
2021508111.tif 000010
【図６Ｂ】
2021508111.tif 000011
【図７】
2021508111.tif 000012
【図８】
2021508111.tif 000013
【図９】
2021508111.tif 000014
【図１０】
2021508111.tif 000015
【図１１】
2021508111.tif 000016
【図１２】
2021508111.tif 000017
【図１３】
2021508111.tif 000018
【図１４】
2021508111.tif 000019
【図１５】
2021508111.tif 000020
【図１６】
2021508111.tif 000021
【図１７】
2021508111.tif 000022
【図１８】
2021508111.tif 000023
【図１９】
2021508111.tif 000024
【図２０】
2021508111.tif 000025
【図２１】
2021508111.tif 000026
【手続補正書】
【提出日】令和3年1月15日(2021.1.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
それぞれが複数のノードを有する複数の分散型台帳ネットワークを含み、前記複数の分散型台帳ネットワークのうちの１つはソース分散型台帳を有し、別の分散型台帳ネットワークはターゲット分散型台帳を有する多重分散型台帳システムにおいてスケーラブルなトランザクションスループットを達成するための方法であって、
未使用であるトランザクション出力を有する前記ソース分散型台帳において既存のトランザクションを判断することと、
前記ターゲット分散型台帳にコミットするための開始トランザクションを生成しかつサブミットすることであって、前記開始トランザクションはトランザクション出力を有する、ことと、
前記ソース分散型台帳にコミットするためのロックトランザクションを生成しかつサブミットすることであって、前記ロックトランザクションは、前記ソース分散型台帳における前記既存のトランザクションの前記トランザクション出力を用いかつロックするために生成され、前記開始トランザクションの存在を検証するために前記ターゲット分散型台帳における前記開始トランザクションを参照する、ことと、
前記ターゲット分散型台帳にコミットするための終了トランザクションを生成しかつサブミットすることであって、前記終了トランザクションは、前記ターゲット分散型台帳における前記開始トランザクションの前記トランザクション出力を用いるために生成され、かつ、前記ロックトランザクションの存在を検証するために前記ソース分散型台帳における前記ロックトランザクションを参照する、ことと、を含み、
前記ソース分散型台帳は前記ターゲット分散型台帳と異なることを特徴とする、
方法。
【請求項２】
前記開始トランザクションの前記トランザクション出力は、前記終了トランザクションが前記ロックトランザクションを参照する時、および前記開始トランザクションの前記トランザクション出力の値が前記既存のトランザクションの前記トランザクション出力の値に一致する時にのみ、前記終了トランザクションによって用いることが可能であることを特徴とする、請求項１に記載の方法。
【請求項３】
前記ロックトランザクションは前記開始トランザクションを参照するためにマークルツリー参照を使用し、前記終了トランザクションは前記ロックトランザクションを参照するためにマークルツリー参照を使用することを特徴とする、請求項２に記載の方法。
【請求項４】
前記方法は、前記ソース分散型台帳のノードスタックによって行われることを特徴とする、請求項１に記載の方法。
【請求項５】
前記開始トランザクションおよび前記終了トランザクションは、前記ターゲット分散型台帳のノードスタックにサブミットされ、前記ターゲット分散型台帳の前記ノードスタックは、前記開始トランザクションおよび前記終了トランザクションを前記ターゲット分散型台帳にさらにサブミットすることを特徴とする、請求項４に記載の方法。
【請求項６】
前記方法は前記ターゲット分散型台帳のノードスタックによって行われることを特徴とする、請求項１に記載の方法。
【請求項７】
前記ロックトランザクションは前記ターゲット分散型台帳のノードスタックにサブミットされ、前記ソース分散型台帳の前記ノードスタックは前記ロックトランザクションを前記ソース分散型台帳にさらにサブミットすることを特徴とする、請求項６に記載の方法。
【請求項８】
前記ソース分散型台帳および前記ターゲット分散型台帳のそれぞれはブロックチェーンを含むことを特徴とする、請求項１に記載の方法。
【請求項９】
前記ソース分散型台帳および前記ターゲット分散型台帳のそれぞれは有向非巡回グラフを利用することを特徴とする、請求項１に記載の方法。
【請求項１０】
前記既存のトランザクションの未使用の前記トランザクション出力は通貨額を表すことを特徴とする、請求項１に記載の方法。
【請求項１１】
それぞれが複数のノードを有する複数の分散型台帳ネットワークを含み、前記複数の分散型台帳ネットワークのうちの１つはソース分散型台帳を有し、別の分散型台帳ネットワークはターゲット分散型台帳を有する多重分散型台帳システムを動作させるためにコンピュータ可読プログラムコードが埋め込まれている１つまたは複数のコンピュータ使用可能非一時的媒体を含み、前記コンピュータ可読プログラムコードは前記システムに複数台帳トランザクションプロセスを実行させるように構成される、コンピュータプログラムであって、前記プロセスは、
未使用であるトランザクション出力を有するソース分散型台帳において既存のトランザクションを判断するステップと、
ターゲット分散型台帳にコミットするための開始トランザクションを生成しかつサブミットするステップであって、前記開始トランザクションはトランザクション出力を有する、ステップと、
前記ソース分散型台帳にコミットするためのロックトランザクションを生成しかつサブミットするステップであって、前記ロックトランザクションは、前記ソース分散型台帳における前記既存のトランザクションの前記トランザクション出力を用いかつロックするために生成され、前記開始トランザクションの存在を検証するために前記ターゲット分散型台帳における前記開始トランザクションを参照する、ステップと、
前記ターゲット分散型台帳にコミットするための終了トランザクションを生成しかつサブミットするステップであって、前記終了トランザクションは、前記ターゲット分散型台帳における前記開始トランザクションの前記トランザクション出力を用いるために生成され、かつ、前記ロックトランザクションの存在を検証するために前記ソース分散型台帳における前記ロックトランザクションを参照する、ステップと、を含み、
前記ソース分散型台帳は前記ターゲット分散型台帳と異なることを特徴とする、コンピュータプログラム。
【請求項１２】
前記開始トランザクションの前記トランザクション出力は、前記終了トランザクションが前記ロックトランザクションを参照する時、および前記開始トランザクションの前記トランザクション出力の値が前記既存のトランザクションの前記トランザクション出力の値に一致する時にのみ、前記終了トランザクションによって用いることが可能であることを特徴とする、請求項１１に記載のコンピュータプログラム。
【請求項１３】
前記ロックトランザクションは前記開始トランザクションを参照するためにマークルツリー参照を使用し、前記終了トランザクションは前記ロックトランザクションを参照するためにマークルツリー参照を使用することを特徴とする、請求項１２に記載のコンピュータプログラム。
【請求項１４】
高度にスケーラブルなトランザクションスループットに対する複数の分散型台帳間の複数台帳方式振替によるシステムであって、
それぞれが、複数の局所分散型台帳を維持し、かつ局所ノードおよびこれらの間の通信接続を含む、複数の分散型台帳ネットワークと、
前記複数の分散型台帳ネットワーク間のインターネットワーク接続と、を含み、
局所分散型台帳を維持する分散型台帳ネットワークは、他の分散型台帳のためにそれぞれの前記分散型台帳ネットワークの前記局所ノードと共同設置される複数の対外支払検証ノードを含むことを特徴とする、
システム。
【請求項１５】
前記対外支払検証ノードは、それぞれソース分散型台帳ネットワークおよびターゲット分散型台帳ネットワークによって維持されるソース分散型台帳とターゲット分散型台帳との間の複数台帳トランザクションの台帳間検証に使用され、
前記ソース分散型台帳は前記ターゲット分散型台帳と異なることを特徴とする、請求項１４に記載のシステム。
【請求項１６】
それぞれの前記対外支払検証ノードにおいて、対外分散型台帳に対するブロックヘッダーおよびブロックシグネチャを含むブロックヘッダー／シグネチャチェーン、または前記ブロックヘッダー／シグネチャチェーンにおける前記ブロックヘッダーへのブロックハッシュのインデックスをさらに含む、請求項１４に記載のシステム。
【請求項１７】
前記ソース分散型台帳における前記ロックトランザクションの存在の検証は、前記ターゲット分散型台帳における終了トランザクションが前記ターゲット分散型台帳における開始トランザクションのトランザクション出力を用いるために必要であることを特徴とする、請求項１５に記載のシステム。
【請求項１８】
前記局所ノードおよび前記対外支払検証ノードの前記共同設置は、前記局所分散型台帳の局所ノードスタック、および前記システムにおける前記他の分散型台帳の対外支払検証ノードスタックを含む１つまたは複数のプロセッサを有するコンピュータ装置によって実施されることを特徴とする、請求項１４に記載のシステム。
【請求項１９】
高度にスケーラブルなトランザクションスループットに対する複数の分散型台帳間の複数台帳方式振替によるシステムであって、
それぞれが、複数の局所ノードおよびこれらの間の通信接続を含む、複数の分散型台帳ネットワークと、
前記複数の分散型台帳ネットワークによって共有される共有ノードのセットであって、前記セットにおけるノードは、いくつかあるサービスの中で特に、トランザクションの台帳間検証を提供する、共有ノードのセットと、を含む、
システム。
【請求項２０】
それぞれの共有ノードは、互いに異なり、かつ、それぞれ、複数の局所分散型台帳ネットワークのソース分散型台帳ネットワークおよびターゲット分散型台帳ネットワークによって維持されるソース分散型台帳とターゲット分散型台帳との間の複数台帳トランザクションの前記台帳間検証のために前記複数の分散型台帳ネットワークのうちの少なくとも２つによって維持される前記局所分散型台帳を有し、
前記ソース分散型台帳は前記ターゲット分散型台帳と異なることを特徴とする、請求項１９に記載のシステム。
【請求項２１】
それぞれの前記共有ノードにおいて、前記複数の分散型台帳のそれぞれに対するブロックヘッダーへのブロックハッシュのインデックスをさらに含む、請求項１９に記載のシステム。
【請求項２２】
それぞれの前記共有ノードは、前記少なくとも２つの異なる分散型台帳ネットワークの局所ノードスタックを含むコンピュータ装置を含むことを特徴とする、請求項１９に記載のシステム。
【請求項２３】
それぞれの前記共有ノードは、前記複数の分散型台帳ネットワークの全ての局所ノードスタックを含むコンピュータ装置を含むことを特徴とする、請求項１９に記載のシステム。
【請求項２４】
ソース分散型台帳における既存のトランザクションは、デジタル表現された経済価値がターゲット分散型台帳に振り替えられるトランザクション出力を含有することを特徴とする、請求項２０に記載のシステム。
【請求項２５】
ロックトランザクションは前記既存のトランザクションの前記トランザクション出力を用い、前記ソース分散型台帳における前記ロックトランザクションの存在の検証は、前記ターゲット分散型台帳における終了トランザクションが前記ターゲット分散型台帳における開始トランザクションのトランザクション出力を用いるために必要であることを特徴とする、請求項２４に記載のシステム。
【請求項２６】
スケーラブルなトランザクションスループットに対する複数の分散型台帳間の複数台帳方式振替のためのコンピュータ装置であって、
コンピュータ可読コードおよびデータを保持するためのメモリと、
前記コンピュータ可読コードを実行することで前記データを修正するための１つまたは複数のプロセッサと、
前記複数の分散型台帳のターゲット分散型台帳に対する局所ノードスタックのための一方のコンピュータ可読コードと、
前記複数の分散型台帳のソース分散型台帳に対する対外支払検証ノードスタックのための他方のコンピュータ可読コードと、を含み、
前記局所ノードスタックは、それぞれソース分散型台帳ネットワークおよびターゲット分散型台帳ネットワークによって維持される前記ターゲット分散型台帳と前記ソース分散型台帳との間のデジタル表現された経済価値の複数台帳方式振替に対する台帳間トランザクションを検証するために前記対外支払検証ノードスタックを使用するように構成され、
前記ソース分散型台帳は前記ターゲット分散型台帳と異なることを特徴とする、
コンピュータ装置。
【請求項２７】
前記対外支払検証ノードスタックにおいて、前記ソース分散型台帳に対するブロックヘッダーおよびブロックシグネチャを含むブロックヘッダー／シグネチャチェーン、または前記ブロックヘッダー／シグネチャチェーンにおける前記ブロックヘッダーに対するブロックハッシュのインデックスをさらに含む、請求項２６に記載のコンピュータ装置。
【請求項２８】
前記ロックトランザクションは、少なくとも１つの台帳内トランザクション入力、１つの複数台帳方式参照トランザクション入力、およびゼロ以上のトランザクション出力を含み、前記開始トランザクションはトランザクション入力を含まず、１つのトランザクション出力を含むことを特徴とする、請求項２６に記載のコンピュータ装置。
【請求項２９】
前記局所ノードスタックは、前記ターゲット分散型台帳における開始トランザクションのトランザクション出力を用いる終了トランザクションを構築する前に、前記ソース分散型台帳における前記ロックトランザクションの存在を検証し、かつ前記開始トランザクションの前記トランザクション出力の値を、前記ロックトランザクションによって用いられる値に対して一致させることが必要とされることを特徴とする、請求項２６に記載のコンピュータ装置。
【請求項３０】
スケーラブルなトランザクションスループットに対する複数の分散型台帳間の複数台帳方式振替のためのコンピュータ装置であって、
コンピュータ可読コードおよびデータを保持するためのメモリと、
未使用であるトランザクション出力を有する前記複数の分散型台帳のソース分散型台帳において既存のトランザクションを判断するように構成される、第１のコンピュータ可読コードと、
前記複数の分散型台帳のターゲット分散型台帳にコミットするための開始トランザクションを生成しかつサブミットするように構成されるコンピュータ可読コードであって、前記開始トランザクションはトランザクション出力を有する、第２のコンピュータ可読コードと、
前記ソース分散型台帳にコミットするためのロックトランザクションを生成しかつサブミットするように構成されるコンピュータ可読コードであって、前記ロックトランザクションは、前記ソース分散型台帳における前記既存のトランザクションの前記トランザクション出力を用いかつロックし、前記開始トランザクションの存在を検証するために前記ターゲット分散型台帳における前記開始トランザクションを参照するために生成される、第３のコンピュータ可読コードと、
前記ターゲット分散型台帳にコミットするための終了トランザクションを生成しかつサブミットするように構成されるコンピュータ可読コードであって、前記終了トランザクションは、前記ターゲット分散型台帳における前記開始トランザクションの前記トランザクション出力を用い、かつ、前記ロックトランザクションの存在を検証するために前記ソース分散型台帳における前記ロックトランザクションを参照するために生成される、第４のコンピュータ可読コードと、を含み、
ソース分散型台帳ネットワークによって維持される前記ソース分散型台帳は、ターゲット分散型台帳ネットワークによって維持される前記ターゲット分散型台帳と異なることを特徴とする、コンピュータ装置。
【請求項３１】
前記開始トランザクションの前記トランザクション出力は、前記終了トランザクションが前記ロックトランザクションを参照する時、および前記開始トランザクションの前記トランザクション出力の値が前記既存のトランザクションの前記トランザクション出力の値に一致する時にのみ、前記終了トランザクションによって用いることが可能であることを特徴とする、請求項３０に記載のコンピュータ装置。
【国際調査報告】
2021508111.tif 000027