(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023134492
(43)【公開日】2023-09-27
(54)【発明の名称】分散型台帳間の複数台帳方式振替のための方法および装置、ならびに複数台帳方式振替を使用するシステム
(51)【国際特許分類】
G06F 16/182 20190101AFI20230920BHJP
G06F 21/64 20130101ALI20230920BHJP
【FI】
G06F16/182
G06F21/64
【審査請求】有
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023101855
(22)【出願日】2023-06-21
(62)【分割の表示】P 2020533691の分割
【原出願日】2018-01-16
(31)【優先権主張番号】62/607,453
(32)【優先日】2017-12-19
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/866,266
(32)【優先日】2018-01-09
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/866,280
(32)【優先日】2018-01-09
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/866,290
(32)【優先日】2018-01-09
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】519016413
【氏名又は名称】ティービーシーエーソフト,インコーポレイテッド
(74)【代理人】
【識別番号】100082418
【弁理士】
【氏名又は名称】山口 朔生
(74)【代理人】
【識別番号】100167601
【弁理士】
【氏名又は名称】大島 信之
(74)【代理人】
【識別番号】100201329
【弁理士】
【氏名又は名称】山口 真二郎
(72)【発明者】
【氏名】ウー、ウィリアム
(72)【発明者】
【氏名】リ、チャーシン
(72)【発明者】
【氏名】ウー、リン
(57)【要約】 (修正有)
【課題】高度にスケーラブルなトランザクションスループットを実現するために分散型台帳間の複数台帳方式振替によるシステムを提供する。
【解決手段】方法は、ソース分散型台帳(200S)からターゲット分散型台帳(200T)に値を効果的に振り替える一方、値の二重使用を防止するように複数台帳方式振替を書き込む。これによって、ソース台帳の合計値が振り替えられた値によって減少するが、ターゲット台帳の合計値が同じ金額によって増加するように台帳は変換される。
【選択図】
図2
【特許請求の範囲】
【請求項1】
高度にスケーラブルなトランザクションスループットに対する複数の分散型台帳間の複数台帳方式振替によるシステムであって、
複数の分散型台帳ネットワークであって、前記複数の分散型台帳ネットワークのうちの1つを、局所分散型台帳を維持する局所分散型台帳ネットワークとして含み、残りの分散型台帳ネットワークを、少なくとも1つの対外分散型台帳をそれぞれ維持する少なくとも1つの対外分散型台帳ネットワークとして含む、複数の分散型台帳ネットワークと、
前記複数の分散型台帳ネットワーク間のインターネットワーク接続と、を含み、
前記局所分散型台帳ネットワークは、
それぞれが前記局所分散型台帳を含む局所ノードと、
各2つの前記局所ノード間の通信接続と、
前記少なくとも1つの対外分散型台帳をそれぞれ含み、前記局所ノードと共同設置され、ソース分散型台帳において、既存のトランザクションのトランザクション出力をロックする、前記ソース分散型台帳におけるロックトランザクションの存在を検証することにより、前記局所分散型台帳と前記少なくとも1つの対外分散型台帳のうちの1つとの間の複数台帳トランザクションを検証するための参照情報を提供するように構成された複数の対外支払検証ノードと、を含み、
前記局所分散型台帳と前記少なくとも1つの対外分散型台帳は互いに異なり、前記局所分散型台帳と前記少なくとも1つの対外分散型台帳のうちの1つはそれぞれ前記ソース分散型台帳とターゲット分散型台帳、あるいは、前記ターゲット分散型台帳と前記ソース分散型台帳であることを特徴とする、
システム。
【請求項2】
それぞれの前記対外支払検証ノードにおいて、対外分散型台帳に対するブロックヘッダーおよびブロックシグネチャを含むブロックヘッダー/シグネチャチェーン、または前記ブロックヘッダー/シグネチャチェーンにおける前記ブロックヘッダーへのブロックハッシュのインデックスをさらに含む、請求項1に記載のシステム。
【請求項3】
前記局所ノードおよび前記対外支払検証ノードの共同設置は、前記局所分散型台帳の局所ノードスタック、および前記対外分散型台帳の対外支払検証ノードスタックを含む1つまたは複数のプロセッサを有するコンピュータ装置によって実施されることを特徴とする、請求項1に記載のシステム。
【請求項4】
高度にスケーラブルなトランザクションスループットに対する複数の分散型台帳間の複数台帳方式振替によるシステムであって、
複数の分散型台帳ネットワークであって、前記分散型台帳ネットワークのうちの1つを、ソース分散型台帳を維持するソース分散型台帳ネットワークとして含み、もう1つの前記分散型台帳ネットワークを、ターゲット分散型台帳を維持するターゲット分散型台帳ネットワークとして含む、複数の分散型台帳ネットワークと、
前記複数の分散型台帳ネットワーク間のインターネットワーク接続と、を含み、
各分散型台帳ネットワークは、
局所ノードと、
共有ノードのセットであって、各共有ノードのセットは、前記ソース分散型台帳を含む1つの局所ノードと、前記ターゲット分散型台帳を含むもう1つの局所ノードとを含む、少なくとも2つの異なる共同設置された局所ノードを含み、前記ソース分散型台帳において、既存のトランザクションのトランザクション出力をロックする、前記ソース分散型台帳におけるロックトランザクションの存在を検証することにより、前記ソース分散型台帳と前記ターゲット分散型台帳との間の複数台帳トランザクションを検証するための参照情報を提供するように構成された、共有ノードのセットと、
前記局所ノード間、前記共有ノードのセット間、および、前記局所ノードと前記共有ノードのセットとの間の通信接続と、を含む、
システム。
【請求項5】
それぞれの前記共有ノードにおいて、前記複数の分散型台帳のそれぞれに対するブロックヘッダーへのブロックハッシュのインデックスをさらに含む、請求項4に記載のシステム。
【請求項6】
それぞれの前記共有ノードは、前記複数の分散型台帳ネットワークのうちの少なくとも異なる2つの分散型台帳ネットワークによってそれぞれ維持される前記複数の分散型台帳のうちの少なくとも異なる2つの分散型台帳の局所ノードスタックを含むコンピュータ装置を含むことを特徴とする、請求項4に記載のシステム。
【請求項7】
それぞれの前記共有ノードは、前記複数の分散型台帳ネットワークによって維持される全ての前記分散型台帳のための局所ノードスタックを含むコンピュータ装置を含むことを特徴とする、請求項4に記載のシステム。
【請求項8】
デジタル表現された経済価値を有する前記既存のトランザクションの前記トランザクション出力は、前記ターゲット分散型台帳に振り替えられることを特徴とする、請求項4に記載のシステム。
【請求項9】
スケーラブルなトランザクションスループットに対する複数の分散型台帳間の複数台帳方式振替のためのコンピュータ装置であって、
コンピュータ可読コードおよびデータを保持するためのメモリと、
前記コンピュータ可読コードを実行することで前記データを修正するための1つまたは複数のプロセッサと、
ターゲット分散型台帳に対する局所ノードスタックのための一方のコンピュータ可読コードと、
ソース分散型台帳に対する対外支払検証ノードスタックのための他方のコンピュータ可読コードと、を含み、
前記局所ノードスタックは、互いに異なり、それぞれソース分散型台帳ネットワークおよびターゲット分散型台帳ネットワークによって維持される前記ターゲット分散型台帳と前記ソース分散型台帳との間のデジタル表現された経済価値の複数台帳方式振替に対する台帳間トランザクションを検証するための参照情報を提供するために前記対外支払検証ノードスタックを使用するように構成され、前記ソース分散型台帳において、既存のトランザクションのトランザクション出力をロックする、前記ソース分散型台帳におけるロックトランザクションの存在を検証することにより、前記複数台帳トランザクションのうちの1つが検証されることを特徴とする、
コンピュータ装置。
【請求項10】
前記対外支払検証ノードスタックにおいて、前記ソース分散型台帳に対するブロックヘッダーおよびブロックシグネチャを含むブロックヘッダー/シグネチャチェーン、または前記ブロックヘッダー/シグネチャチェーンにおける前記ブロックヘッダーに対するブロックハッシュのインデックスをさらに含む、請求項9に記載のコンピュータ装置。
【請求項11】
ロックトランザクションは、少なくとも1つの台帳内トランザクション入力、1つの複数台帳方式参照トランザクション入力、およびゼロ以上のトランザクション出力を含み、開始トランザクションはトランザクション入力を含まず、1つのトランザクション出力を含むことを特徴とする、請求項9に記載のコンピュータ装置。
【請求項12】
前記局所ノードスタックは、前記ターゲット分散型台帳における開始トランザクションのトランザクション出力を用いる終了トランザクションを構築する前に、前記ソース分散型台帳におけるロックトランザクションの存在を検証し、かつ前記開始トランザクションの前記トランザクション出力の値を、前記ロックトランザクションによって用いられる値に対して一致させることが必要とされることを特徴とする、請求項9に記載のコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般的に、コンピュータおよびネットワーク技術に関する。より詳細には、本開示は、ブロックチェーンおよび他の分散型台帳技術に関する。
【背景技術】
【0002】
ブロックチェーンは、ブロックチェーンネットワークによってアクセスされかつ確認されるブロックデータ構造(ブロック)のチェーンである。ブロックチェーンの1つの例は、ビットコインが特定の暗号通貨である、ビットコイントランザクションの分散型台帳として機能する、ビットコインブロックチェーンとして知られている。ビットコインブロックチェーンにおけるそれぞれのブロックは、ビットコインの複数のトランザクションを符号化する。
【0003】
ビットコインブロックチェーンにおいて、それぞれのブロックは、ブロックに含まれるトランザクションに対するハッシュ値の、ブロックヘッダーおよびマークルツリーのルートを含む。それぞれのブロックは、(ブロックヘッダーのハッシュ値である)ブロックハッシュによって識別される。ブロックヘッダーは、ブロックのマークルツリーのルート、このチェーンにおける前のブロックのブロックハッシュ、およびノンスを含む。トランザクションの新しいブロックは、ビットコインネットワークにおけるマイナーによってビットコインブロックチェーンに追加されてよい。マイナーは、ブロックチェーンにアクセスし、かつ新しいトランザクションのブロードキャストを受信してよい。新しいブロックは、マイナーが、見込みのあるブロックにおける取引を確認し、かつ課題を満たす時、ブロックチェーンに追加されてよい。コンセンサスプロトコルは、ビットコインブロックチェーンの整合性および保全性を保護する。
【0004】
従来の分散型台帳技術のトランザクションスループットは、かなりの制限があり、容易にスケーラブルではない。例えば、ビットコインブロックチェーンネットワークは、ブロックサイズの限度と共にレイテンシおよび帯域幅の問題により、スループットの制限が大きな問題になっている。分散型台帳技術のスループットスケーラビリティ問題を解決することが非常に望まれている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示の解決策は、高度にスケーラブルなトランザクションスループットを実現するために分散型台帳間の複数台帳方式振替を提供する。ソース分散型台帳からターゲット分散型台帳に値を効果的に振り替える一方、値の二重使用を防止するように複数台帳方式振替を書き込むための方法および命令コードが開示される。高度にスケーラブルなトランザクションスループットを実現するために複数の分散型台帳間の複数台帳方式振替を利用するシステムアーキテクチャも開示される。分散型台帳間の複数台帳方式振替を実施するように構成されるコンピュータ装置も開示される。
【課題を解決するための手段】
【0006】
本開示の解決策の複数台帳方式振替によって、ソース台帳の合計値が振り替えられた値によって減少するが、ターゲット台帳の合計値が同じ値によって増加するように台帳が変換または修正される。例示の実装形態では、ソース台帳の振り替えられた値の消滅、およびターゲット台帳の振り替えられた値の再作成は、ソース台帳におけるロックトランザクション、およびターゲット台帳における開始トランザクションおよび終了トランザクションを使用することによって、達成可能である。ロックトランザクションは開始トランザクションを参照し、終了トランザクションはロックトランザクションを参照し、かつ開始トランザクションのトランザクション出力を用いる。
【0007】
本開示の発明の1つの実施形態は、デジタル表現された経済価値を、その価値の二重使用を防止するようにソース分散型台帳からターゲット分散型台帳に振り替える複数台帳方式振替を行う方法に関する。開始トランザクションは、ターゲット分散型台帳に書き込まれ、ロックトランザクションはソース分散型台帳に書き込まれる。ロックトランザクションはソース分散型台帳において既存のトランザクションのトランザクション出力を用い、かつ、ターゲット分散型台帳における開始トランザクションを参照する。終了トランザクションはさらにまた、ターゲット分散型台帳に書き込まれてよい。終了トランザクションは、開始トランザクションのトランザクション出力を用い、かつソース分散型台帳におけるロックトランザクションを参照する。
【0008】
別の実施形態は、複数台帳方式振替を行うためのコンピュータ可読コードを有する非一時的な有形的表現媒体に関する。複数台帳方式振替は、デジタル表現された経済価値を、その価値の二重使用を防止するように、ソース分散型台帳からターゲット分散型台帳に振り替える。
【0009】
別の実施形態は、高度にスケーラブルなトランザクションスループットを実現するために分散型台帳間の複数台帳方式振替を使用する第1のシステムアーキテクチャに関する。第1のシステムアーキテクチャは、複数の分散型台帳ネットワークを含み、それぞれの上記の分散型台帳ネットワークは、システムにおける他の分散型台帳のための複数の支払検証ノードを含む。
【0010】
別の実施形態は、高度にスケーラブルなトランザクションスループットを実現するために分散型台帳間の複数台帳方式振替を使用する第2のシステムアーキテクチャに関する。第2のシステムアーキテクチャは複数の分散型台帳ネットワークを含む。第2のシステムアーキテクチャは、複数の分散型台帳ネットワークによって共有される共有ノードのセットをさらに含む。上記の共有ノードは、いくつかあるサービスの中で特に、トランザクションの台帳間検証を提供する。
【0011】
別の実施形態は、複数の分散型台帳間の複数台帳方式振替のための第1のコンピュータ装置に関する。第1のコンピュータ装置は、複数の分散型台帳の局所分散型台帳の局所ノードスタックに対するコンピュータ可読コード、および、複数の分散型台帳の対外分散型台帳の対外支払検証ノードスタックに対するコンピュータ可読コードを含む。局所ノードスタックは、局所分散型台帳と対外分散型台帳との間のデジタル表現された経済価値の複数台帳方式振替中に対外分散型台帳におけるトランザクションを検証するために対外支払検証ノードスタックを使用するように構成される。
【0012】
別の実施形態は、複数の分散型台帳間の複数台帳方式振替のための第2のコンピュータ装置に関する。第2のコンピュータ装置は、複数の分散型台帳のノードスタックに対するコンピュータ可読コードを含む。それぞれの上記のノードスタックは、ソース分散型台帳からターゲット分散型台帳へのデジタル表現された経済価値の複数台帳方式振替を行うように構成される。
【0013】
他の実施形態および特徴も開示される。
【図面の簡単な説明】
【0014】
【
図1】本発明の一実施形態による単一分散型台帳ネットワークの構造を示す図である。
【
図2】本発明の一実施形態による、ソース分散型台帳とターゲット分散型台帳との間のデジタル表現された経済価値の単一トランザクション複数台帳方式振替のデータ構成要素を示す図である。
【
図3】本発明の一実施形態による、ソース分散型台帳における造幣ライセンス付与トランザクションを参照するターゲット分散型台帳における造幣トランザクションに関与する2トランザクション複数台帳方式振替を示す図である。
【
図4】本発明の一実施形態による、ソース分散型台帳からターゲット分散型台帳へのデジタル表現された経済価値の3トランザクション複数台帳方式振替を示す図である。
【
図5A】本発明の一実施形態による、複数台帳方式振替を行うための対外支払検証(PV)ノードを使用するシステムアーキテクチャを示す図である。
【
図5B】本発明の一実施形態による、
図5Aのシステムアーキテクチャにおけるノードに対するコンピュータ装置を示す図である。
【
図5C】本発明の一実施形態による、対外PVノードによって使用されるブロックヘッダーおよびブロックシグネチャのチェーンを示す図である。
【
図6A】本発明の一実施形態による、複数台帳方式振替を行うための複数の分散型台帳ネットワークによって共有されるノードを使用するシステムアーキテクチャを示す図である。
【
図6B】本発明の一実施形態による、
図6Aのシステムアーキテクチャにおける共有ノードに対するコンピュータ装置を示す図である。
【
図7】本発明の一実施形態による、ソース分散型台帳上のデジタル表現された経済価値の所有者が、デジタル表現された経済価値をターゲット分散型台帳上のエンティティに振り替えるための方法のフローチャートである。
【
図8】本発明の一実施形態による、台帳間トランザクション検証のためのプロセスを示す図である。
【
図9】本発明の一実施形態による、ソース分散型台帳からターゲット分散型台帳への複数台帳方式振替を開始するために行われてよい手順のための疑似コードを示す図である。
【
図10】本発明の一実施形態による、開始トランザクションまたはロックトランザクションがコミットされた後に行われてよい手順のための疑似コードを示す図である。
【
図11】本発明の一実施形態による、対外分散型台帳上のトランザクションをコミットするために行われてよい手順のための疑似コードを示す図である。
【
図12】本発明の一実施形態による、分散型台帳にトランザクションをサブミットするために行われてよい手順のための疑似コードを示す図である。
【
図13】本発明の一実施形態による、トランザクションのブロックに対するコンセンサスに達した後に分散型台帳のノードによって行われてよい手順のための疑似コードを示す図である。
【
図14】本発明の一実施形態による、コミットされているブロックにおける未使用のトランザクション出力を索引付けするために分散型台帳のノードによって行われてよい手順のための疑似コードを示す図である。
【
図15】本発明の一実施形態による、複数台帳方式参照トランザクション入力を含む標準トランザクションのための一般構造を示す図である。
【
図16】本発明の一実施形態による、3トランザクション複数台帳方式振替の開始トランザクションのための構造を示す図である。
【
図17】本発明の一実施形態による、3トランザクション複数台帳方式振替のロックトランザクションのための構造を示す図である。
【
図18】本発明の一実施形態による、3トランザクション複数台帳方式振替の終了トランザクションのための構造を示す図である。
【
図19】本発明の一実施形態による、システムにおける分散型台帳の数の関数として1台帳当たりの計算されたトランザクションスループットを示すグラフである。
【
図20】本発明の一実施形態による、分散型台帳の数の関数として計算された集計トランザクションスループットを示すチャートである。
【
図21】本発明の一実施形態による、コンピュータシステムの構成要素を高水準で示す図である。
【発明を実施するための形態】
【0015】
異なる図面における同じ参照ラベルの使用は、同じまたは同様の構成要素を指示する。
【0016】
概論
慣習的に、機関は、金融取引の清算および決算を取り扱うために中央手形交換所を頼りにしている。このような従来の清算および決算は、とりわけ、国際取引には、時間がかかりかつ費用が高くなることが問題になっている。
【0017】
しかしながら、近年、清算および決算のための代替的な手段が利用可能になっている。この代替策は一般的に、暗号通貨でトランザクションを清算および決算するために分散型台帳を使用する。このような暗号通貨の顕著な例は、ビットコインブロックチェーンネットワークによって維持されるビットコインである。暗号通貨の他の例には、ライトコイン(登録商標)、ノヴァコイン、ネームコイン、ドージコイン、ピアコイン、イーサリアム(登録商標)、およびリップル(登録商標)が挙げられる。
【0018】
図1は、本発明の一実施形態による単一分散型台帳ネットワーク100の構造を示す図である。分散型台帳ネットワーク100は、トランザクションの分散型台帳を維持するために使用されてよい。分散型台帳の1つの例はビットコインブロックチェーンである。しかしながら、分散型台帳ネットワーク100は、一般的に、任意のブロックチェーンネットワークであってよい、または有向非巡回グラフ(DAG)アルゴリズムを使用してDAGベースの台帳を提供するものなど、別のタイプの分散型台帳ネットワークであってよい。本開示の解決策は、一般的に、トランザクションのブロックを使用して実装される分散型台帳に適用可能であり(これと互換性があり)、この場合、それぞれのブロックヘッダーはブロックに含有されるトランザクションのマークルルートを有する。
【0019】
分散型台帳ネットワーク100は、複数のノード102を、これらの間の通信接続104と共に含む。例示を容易にする目的で、図にはいくつかのノード102のみが示されているが、分散型台帳ネットワーク100は、大多数のノードを、これらの間のさまざまな相互接続104と共に有してよい。
【0020】
ノード102は、一般的に、それぞれが分散型台帳のデータの完全かつ最新のコピーを含有するため、フルノードと称される場合がある。ビットコインネットワークの例では、このようなフルノードはビットコインブロックチェーンのマイナーとして動作してよく、この場合、成功したマイナーはビットコインのデジタル通貨で支払われる。しかしながら、本発明の一実施形態によると、分散型台帳は、デジタル通貨で成功したマイナーを支払う必要はなく、さらに、より一般的には、暗号通貨である必要のないデジタル表現資産(または負債)を扱ってよい。
【0021】
複数のクライアント106は、デジタル台帳ネットワーク100に通信接続されてよい。これらのクライアント106は、分散型台帳の完全かつ最新のコピーを維持しない軽量ノードであるが、依然、分散型台帳におけるトランザクションを検証する能力を有する。
【0022】
例えば、クライアント106は、支払検証方法を使用してトランザクションを検証できる支払検証(PV)ノードとして実装されてよい。PVノードは、分散型台帳ネットワークに接続され、かつ分散型台帳におけるトランザクションの妥当性を証明することが必要とされるデータを保持する非フルノードであってよい。個々のトランザクションレコードは、一般的に、PVノードにおけるデータからなくなっているため、PVノードは分散型台帳ネットワークのクライアントであるとみなされる場合がある。例示の実装形態では、分散型台帳がブロックチェーンである時、PVノードは簡略化支払検証(SPV)ノードであってよく、必要とされるデータは、ブロックにおけるトランザクションのマークルルート、以前のブロックハッシュ、およびブロックバリデータによって作成されるブロックシグネチャのリストを含む。
【0023】
クライアント106は、コア分散型台帳ネットワークを超えた拡大ネットワークの一部を形成するとみなされ得る。例示を容易にするために少数のクライアント106のみが示されているが、多数のクライアント106が分散型台帳ネットワーク100に接続されてよい。
【0024】
上記のように、分散型台帳の有名な例はブロックチェーンである。ブロックチェーンは、トランザクションのブロックに対して連続的にコンセンサスに達するようにP2Pプロトコルを実行するノードのピアツーピア(P2P)ネットワークによって維持される。本開示の解決策は、一般的に、ブロックチェーン技術または他の分散型台帳技術に適用されてよい。
【0025】
分散型台帳におけるトランザクションは、入力のリストおよび出力のリストを含んでよい。トランザクションハッシュは、トランザクション内のデータの全てをハッシュすることによって構築されてよい。トランザクションハッシュは、トランザクションを(すなわち、トランザクション識別子またはtx idとして)参照するために使用されてよい。
【0026】
トランザクション出力(TXO)は、このトランザクションのハッシュ、トランザクション内のこのインデックス、およびTXOの受信者の識別によって識別されてよい。TXOは、いずれのデジタル表現資産も保持してよい。TXOは振り替えられず、TXO内のデジタル表現された経済価値は振り替えられる。受信者は、(対応する秘密キーを有する)受信者の公開キーのハッシュによって識別されてよい。
【0027】
トランザクション入力はTXOを参照する。従来の台帳内トランザクションについて、トランザクション入力は、トランザクションハッシュによるTXO、およびTXOの出力インデックスを参照する。本開示によって教示されるように、複数台帳トランザクションに対するトランザクション入力210は
図2との関連で後述され得る。
【0028】
トランザクションスループットの制限
ビットコインネットワークなどの従来の分散型台帳ネットワークは、実質的なトランザクションスループットの制限を有する。これらの制限は、ブロックサイズの限度と共にレイテンシおよび帯域幅の問題によるものである。
【0029】
新しいブロックは、作成されると、分散型台帳ネットワーク全体を通して伝搬されなければならない。しかしながら、世界各地にある信頼すべきネットワークノード(すなわち、バリデータノード)間に実質的な最小レイテンシがある。これらのレイテンシは、伝搬速度に下限をもたらすため、トランザクションスループットを制限する。
【0030】
さらに、トランザクションスループットを増大させるために、1ブロック当たりより多くのトランザクションに適合させるようにブロックサイズを増大させることを可能にしてよい、および/または、より多くのブロックを処理するようにブロック周波数を増大させることを可能にしてよい。しかしながら、分散型台帳ネットワーク内の帯域制限は一般的に、ブロックサイズおよび/またはブロック周波数のこのような増大によって実現可能なスループットゲインを制限する。
【0031】
複数台帳方式振替による多重分散型台帳システム
本開示は、従来の分散型台帳技術の上で論じたトランザクションスループットの制限を克服するための革新的な解決策を提供する。複数台帳方式振替による多重分散型台帳システムを提供する技術が開示される。複数台帳方式振替によって、デジタル表現された経済価値を1つの分散型台帳から別の分散型台帳に振り替えることが可能である。
【0032】
デジタル表現された経済価値の例には、ビットコインブロックチェーンにおけるビットコインなどの暗号通貨がある。より一般的には、ソース分散型台帳とターゲット分散型台帳との間で振り替えられるデジタル表現された経済価値は、任意のデジタル表現された資産(従来の通貨、暗号通貨、商品、または他の財産)または負債(借金など)であってよい。1つの実施形態では、デジタル表現された経済価値は通貨額におけるものであってよい。別の実施形態では、デジタル表現された経済価値は、暗号通貨額におけるものであってよい。別の実施形態では、デジタル表現された経済価値は商品の金額であってよい。
【0033】
複数台帳方式振替は、実際には、システムの複数の分散型台帳を共にリンクするために使用されてよい。そのように、それぞれの分散型台帳におけるトランザクションの保全性は、他のリンクされた分散型台帳(複数可)におけるトランザクションの保全性に左右される。
【0034】
複数の分散型台帳が複数台帳トランザクションによって共に効果的にリンクされる時、共にリンクされた分散型台帳ネットワークのシステムは、多重分散型台帳システムまたは分散型台帳「エコシステム」と称される場合がある。多重分散型台帳システムによって維持されている分散型台帳は、互いに協働し、「共通台帳」と称される場合がある。
【0035】
共通台帳は同じ全体的なシステムの各部であるが、それぞれの共通台帳は他の共通台帳との関連で別個のまたは「対外」の分散型台帳である。それぞれの共通台帳はトランザクションのこれ自体の台帳を維持し、この台帳は他の共通台帳のトランザクションを含まない。しかしながら、1つの共通台帳におけるトランザクションは異なる共通台帳におけるトランザクションを参照してよい。
【0036】
有利には、本明細書に開示されるように、スケーラブルな数の共通台帳を有する多重分散型台帳システムは、単一分散型台帳ネットワークの上で論じたスループットの制限を克服するために適用されてよい。
【0037】
レイテンシの制限は、2つのバリデータノードがこれらの間に長いレイテンシを有する時、システム内の異なった分散型台帳ネットワークに分離されてよいため、克服可能である。2つのノードは異なる台帳を確認するため、これらの間の長いレイテンシはどちらの台帳のコンセンサスの時間にも影響を与えることはない。それ故に、本開示の解決策を使用して、ノード間の長いレイテンシの性能に対する影響を実質的に低減または排除可能である。
【0038】
帯域幅の制限は、単一分散型台帳の代わりに複数の共通台帳を使用することによってブロックサイズが効果的に低減可能であるため、克服可能である。Nの共通台帳による構造を使用して、ブロックサイズをほぼ1/Nに効果的に低減可能である。
【0039】
よって、複数台帳トランザクションが比較的まばらになるようにノードを領域(またはグループ)に分割することによって、共通台帳を追加することによって追加されるスループットは、単独で実行しているそのチェーンだけの全スループットのかなりの割合になる。これによって、共通台帳の数にほぼ比例して変化するスループットが生じるものとする。
【0040】
共通台帳間の複数台帳トランザクション
本発明の一実施形態によると、2つの分散型台帳(すなわち、2つの「共通台帳」)間の複数台帳トランザクションは、ソース分散型台帳200Sに対する既存の未使用のトランザクション出力(UTXO)を効果的に消滅させ、かつターゲット分散型台帳200Tにおける(消滅させたUTXOに等しい合計値での)1つまたは複数の新しいUTXOを作成する。ターゲット分散型台帳200Tに書き込まれる複数台帳トランザクション205の構成要素は、本発明の一実施形態に従って
図2に示されている。
【0041】
図2に示されるように、(ターゲット分散型台帳200Tに書き込まれるものになる)複数台帳トランザクション205は、ソース分散型台帳200Sへの参照を提供するトランザクション入力210と、ターゲット分散型台帳200Tにおける受信者(単数または複数)に値(単数または複数)を振り替えるトランザクション出力(単数または複数)220とを含む。
【0042】
より具体的には、トランザクション入力210は、ソース分散型台帳200Sのチェーン識別子211と、(ブロックのマークルツリーに対するマークル分岐ハッシュ214を含んで)参照され、参照番号が213の既存のトランザクションのブロックに対するブロックヘッダー212と、既存のトランザクションの特定の出力を指示する数を含む出力インデックス215とを含んでよい。
【0043】
必要とされるマークル分岐ハッシュ214の数は、ブロックにおけるトランザクションの数の底を2とする対数以上であることに留意されたい。それ故に、ブロックに1000(1千)のトランザクションがある場合、10(十)のマークル分岐ハッシュが必要とされる。
【0044】
また、(トランザクション識別子またはtx idと称される場合がある)トランザクションハッシュは、ハッシュ関数を参照トランザクションのコンテンツに適用することによって参照トランザクション213から導出されるハッシュ値であることに留意されたい。トランザクションハッシュは、マークル分岐ハッシュでハッシュしてマークルルートを形成してよい。このマークルルートは、ソース分散型台帳200S内のブロックのマークルルートに対して照合させて、トランザクション213がソース分散型台帳200Sに存在することを証明してよい。
【0045】
出力220のトランザクション出力は(トランザクション213および出力インデックス215によって指定されるように)ソース分散型台帳200SにおけるUTXOから得られたものの使用に関するデータを提供する。それぞれのトランザクション出力220は、受信者に振り替えられているデジタル表現された経済価値、および受信者の公開キーのハッシュを提供する。
【0046】
ソース分散型台帳における使用を防止する2トランザクション複数台帳方式振替
デジタル表現された経済価値の複数台帳方式振替を行うための開示された方法の動作の機構を理解するために、
図3に示されるように参照トランザクションによる造幣を考慮する。
図3において、ターゲット分散型台帳(例えば、ターゲットブロックチェーン)におけるデジタル表現された経済価値の造幣は、ソース分散型台帳(例えば、ソースブロックチェーン)における参照トランザクションを通して行われる。しかしながら、以下に論じられるように、図示されるようなデジタル表現された経済価値のこのような造幣は、振り替えられた値の二重(多重)使用を防止するための機構を含まない。
【0047】
参照トランザクションにおけるトランザクション出力(TXO)は、過去に存在していた時があったことが保証されると考えられるが、(現在時刻でまたは将来的に)依然未使用であることは保証されない。これは、ソースチェーンにおけるTXOを参照することが複数台帳トランザクションをサポートするのに不十分であることを意味するが、これは、未使用のTXO(すなわち、UTXO)のみが参照されなければならないからである。
【0048】
図3に示される複数台帳方式振替において、ソース分散型台帳における造幣ライセンス付与トランザクション302は、定義により、ソース分散型台帳の別の造幣者に付与されることはないトランザクションである。それ故に、造幣ライセンス付与トランザクション302からのTXOは、ソース分散型台帳では本質的に用いることが不可能である。この場合、マークル証明304を使用してソースチェーンにおける造幣ライセンスを付与するトランザクションの存在を証明することは、TXOがソース分散型台帳において(用いることが不可能であるため)未使用であることを証明するのに十分である。
【0049】
そのように、造幣ライセンス付与トランザクションがソース分散型台帳に存在するという事実は、ターゲット分散型台帳においてデジタル表現された経済価値を造幣するための造幣トランザクション306の根拠をもたらす。その後、造幣された値はターゲット分散型台帳におけるトランザクションに対して通常使用されてよい308。
【0050】
しかしながら、
図3の2トランザクション複数台帳方式振替は、システムを使用する全てのエンティティが信頼されるものである時二重使用を安全に回避するが、信頼できないエンティティがシステムを使用する場合がある時に二重使用を防止するには不十分である。これは、
図3の2トランザクション複数台帳方式振替が、ソース分散型台帳における未使用のTXOが複数のターゲット分散型台帳で用いられないようにしないからである。
【0051】
二重使用を防止する3トランザクション複数台帳方式振替
本発明の一実施形態によると、
図4に示される方法400は、共通台帳間でデジタル表現された経済価値を振り替える。複数台帳方式振替は、一連のハンドシェイクを介して、値が、複数のターゲット分散型台帳のソース分散型台帳における未使用の値を用いることによって知らないうちに作成できないことを保証するように行われる。
【0052】
図4に示されるように、このような複数台帳方式振替の例示の実装形態は、一連の3つの個々のトランザクションを生成し、かつシステムの分散型台帳にコミットしてよい。これらのトランザクションは、ターゲット分散型台帳における開始トランザクション、ソース分散型台帳におけるロックトランザクション、およびターゲット分散型台帳における終了トランザクションを含む。
【0053】
共通台帳間でデジタル表現された経済価値を振り替える方法400の第1の段階において、ソース分散型台帳200Sにおける既存のトランザクション402の未使用のトランザクション出力(UTXO)が見出されるまたは識別される。ソース分散型台帳において、ターゲット分散型台帳200Tにおいて用いられるのは、このUTXOである。
【0054】
方法400の第2の段階では、開始トランザクション404は、生成され、かつターゲット分散型台帳200Tにコミットされる。開始トランザクション404は、既存のトランザクション402の識別済みUTXOと同じデジタル表現された経済価値を作成する。しかしながら、本発明の一実施形態によると、開始トランザクション404は、この出力が通常のやり方で用いることが不可能であるという特別な性質を有する(より詳細には、以下に論じられるように、開始トランザクション404のUTXOは、開始トランザクション404を参照し、かつ既存のトランザクション402の識別済みUTXOを用いるロックトランザクション406を参照する終了トランザクション408によってのみ用いられ得る)。
【0055】
方法400の第3のステージでは、開始トランザクション404がターゲット分散型台帳200Tにコミットされた後、ロックトランザクション406は生成され、かつソース分散型台帳200Sにコミットされる。ロックトランザクション406のトランザクション入力は、ソース分散型台帳200Sにおける既存のトランザクション402の識別済みUTXOである。そのように、ロックトランザクション406は、既存のトランザクション402の識別済みUTXOを用いるため、出力はソース分散型台帳200Sにおいて用いられたTXOになる(そのため、もはや用いられ得ない)。しかしながら、ロックトランザクションの定義により、この出力は用いることが不可能である(すなわち、この出力は用いられ得ない)。実際には、ロックトランザクション406は、ソース分散型台帳200Sにおいて用いられないように既存のトランザクション402の識別済みUTXOをロックする。
【0056】
さらに、ロックトランザクション406は、(例えば、ターゲットブロックにおける開始トランザクションの存在を検証するために開始トランザクション全体、ならびにマークルルートおよび分岐ハッシュを提供することによって)ターゲット分散型台帳200Tにおける開始トランザクション404を参照する。ロックトランザクション406から開始トランザクション404へのこの「マークル参照」を使用して、識別済みUTXOの値が複数回用いられないようにする。
【0057】
方法400の第4の段階では、ロックトランザクション406がソース分散型台帳200Sにコミットされた後、終了トランザクション408が生成され、かつターゲット分散型台帳200Tにコミットされる。有効な終了トランザクション408は、開始トランザクション404によって作成されたUTXOを用いる。
【0058】
有効であるように、終了トランザクション408は、(例えば、ソースブロックにおけるロックトランザクションの存在を検証するために使用されてよい、ロックトランザクション全体、ならびにマークルルートおよび分岐ハッシュを提供することによって)識別済みUTXOを用いたロックトランザクション406を参照しなければならない。ロックトランザクション406の出力が用いられ得ないため、ソース分散型台帳200Sにおけるロックトランザクション406の存在は、識別済みUTXOが、実際には、ソース分散型台帳200Sで消滅していることの保証をもたらす。
【0059】
複数の終了トランザクション408はコミットできない。これは、終了トランザクション408が(このトランザクション入力によって)ロックトランザクション406によって参照される開始トランザクション404のUTXOを用いる場合にのみ有効であるからである。それ故に、終了トランザクション408によって用いられる出力がロックトランザクション406によって参照される開始トランザクション404の出力ではない場合、終了トランザクション408は無効であるため、ターゲット分散型台帳200Tにコミットされることが防止される。
【0060】
有効な終了トランザクション408のトランザクション出力(単数または複数)(TXO(単数または複数))は、ターゲット分散型台帳200Tにおける1または複数の受信者への複数台帳のデジタル表現された経済価値振替の終了を表す。終了トランザクション408のTXO(単数または複数)は通常、受信者(単数または複数)によってターゲット分散型台帳200T内で用いられ得る。換言すれば、終了トランザクションがターゲット分散型台帳にコミットされると、終了トランザクションのTXO(複数可)は、ソース分散型台帳におけるいずれのトランザクションもさらに参照する必要はなく、ターゲット分散型台帳内で用いられてよい。
【0061】
システムアーキテクチャ
複数台帳方式振替をサポートするために使用されてよい1つのシステムアーキテクチャは、ターゲット分散型台帳のフルノードでもあるソース分散型台帳のそれぞれのフルノードを有してよい。このような完全重複システムアーキテクチャは、複数台帳方式振替をサポートすることが考えられるが、それぞれのノードにおいてかなりの追加のリソースを必要とすると思われる。
【0062】
複数台帳方式振替をサポートするが完全重複システムアーキテクチャより少ないリソースを必要とする例示のシステムアーキテクチャが本明細書に開示される。第1の例示のシステムアーキテクチャは対外支払検証(PV)ノードを分散型台帳ネットワークに埋め込む。第2の例示のシステムアーキテクチャは、共有フルノードのセットを利用するが、全てのノードが共有されるノードであるわけではない。
【0063】
第1の例示のシステムアーキテクチャ:共同設置される「局所」フルノードおよび「対外」PVノード
図5Aに示される第1の例示のシステムアーキテクチャ500において、他の(すなわち対外の)共通台帳に対する支払検証(PV)ノードは、多重分散型台帳システムのそれぞれの分散型台帳ネットワークにおけるノードの全てまたは一部分に共同設置される。共同設置されたPVノードは複数台帳方式支払検証をサポートするために使用される。
【0064】
システムを実装するために必要とされるリソースを低減するために、PVノードは非フルノードであってよい。例示の実装形態では、それぞれのPVノードは、簡略化支払検証(SPV)ノードとして実装されてよい。また、4つの共通台帳を有する多重分散型台帳システムが
図5Aに示されているが、多重分散型台帳システムは任意の数の共通台帳を含んでよい。
【0065】
図5Aに示される例では、第1の分散型台帳Aは第1の分散型台帳ネットワーク100Aによって維持され、第2の分散型台帳Bは第2の分散型台帳ネットワーク100Bによって維持され、第3の分散型台帳Cは第3の分散型台帳ネットワーク100Cによって維持され、第4の分散型台帳Dは第4の分散型台帳ネットワーク100Dによって維持される。これらの分散型台帳ネットワーク(100A、100B、100C、および100D)のそれぞれは、
図1との関連で上述されるように、これ自体のノード102をこれらの間の相互接続104と共に含む。さらに、本発明の一実施形態によると、コンセンサスネットワーク(100A、100B、100C、および100D)を通信可能に相互接続するように異なるコンセンサスネットワークにおけるいくつかのノード102間にさらなる通信相互接続502がある。
【0066】
しかしながら、共通台帳の分散型台帳ネットワークを単に通信可能に相互接続することは、台帳間トランザクションのサブミッションおよび検証が複数台帳方式振替をサポートすることも必要とされるため、不十分である。この理由で、それぞれの分散型台帳ネットワークにおけるノード102の少なくともいくつかは、これ自体の分散型台帳の「局所」フルノードスタック、および相互作用するものになる共通台帳の「対外」PVノードスタックを両方共実行するように構成されてよい。
【0067】
分散型台帳のフルノードスタックは、分散型台帳ネットワークのフルノードにおけるソフトウェアルーチンまたはプログラムのセットを含む。ソフトウェアルーチンまたはプログラムのセットは、適用可能な場合、API(アプリケーションプログラムインターフェース)要求を分散型台帳トランザクションに変換することと、ユーザーキーを管理することと、トランザクションに署名することと、トランザクションがコミットされる時他のシステムに通知することと、トランザクションを分散型台帳にサブミットすることと、トランザクションを含んでいることの証明を提供することと、を含む、分散型台帳に関連するタスクおよび/または機能を実行する。分散型台帳のPVノードスタックは、分散型台帳ネットワークと通信するクライアントにおける低減したソフトウェアルーチンまたはプログラムのセットを含む。低減したソフトウェアルーチンまたはプログラムのセットは、トランザクションを含んでいることの証明を提供することと、トランザクションを分散型台帳にサブミットすることとを含むタスクおよび/または機能を実行する。
【0068】
図5Aの例では、第1のネットワーク100Aにおけるノード102の少なくともいくつかは、第2のネットワーク、第3のネットワーク、および第4のネットワーク(100B、100C、および100D)のそれぞれのPVノード(PV-B、PV-C、およびPV-D)も実行するように構成されている。同様に、第2のネットワーク100Bにおけるノード102の少なくともいくつかは、第1のネットワーク、第3のネットワーク、および第4のネットワーク(100A、100C、および100D)のそれぞれのPVノード(PV-A、PV-C、およびPV-D)も実行するように構成されている。また、第3のネットワーク100Cにおけるノード102の少なくともいくつかは、第1のネットワーク、第2のネットワーク、および第4のネットワーク(100A、100B、および100D)のそれぞれのPVノード(PV-A、PV-B、およびPV-D)も実行するように構成されている。最後に、第4のネットワーク100Dにおけるノード102の少なくともいくつかは、第1のネットワーク、第2のネットワーク、および第3のネットワーク(100A、100B、および100C)のそれぞれのPVノード(PV-A、PV-B、およびPV-C)も実行するように構成されている。
【0069】
それぞれのPV-Aノードは、共通台帳Aのブロックヘッダーおよびシグネチャのチェーン(すなわち、ブロックヘッダー/シグネチャチェーン)を維持する。同様に、それぞれのPV-Bノードは共通台帳Bのブロックヘッダー/シグネチャチェーンを維持し、それぞれのPV-Cノードは共通台帳Cのブロックヘッダー/シグネチャチェーンを維持し、それぞれのPV-Dノードは共通台帳Dのブロックヘッダー/シグネチャチェーンを維持する。
【0070】
図5Bは、本発明の一実施形態による、
図5Aのシステムアーキテクチャ内の分散型台帳ネットワーク100Aにおけるノード102Aのためのコンピュータシステム510の例示の実装形態を示す。コンピュータシステム510は、例えば、1つまたは複数の中央処理装置(CPU)および1つまたは複数のグラフィック処理ユニット(GPU)を含む複数のプロセッサを使用して実装されてよい。
【0071】
示されるように、コンピュータシステム510は、局所分散型台帳Aに対するフルノードスタックA 512-Aを含む。フルノードスタックA 512-Aは、局所分散型台帳Aの完全なコピーを含む。
【0072】
さらに、コンピュータシステム510は、対外分散型台帳Bに対するSPVノードスタックB 514-B、対外分散型台帳Cに対するSPVノードスタックC 514-C、および対外分散型台帳Dに対するSPVノードスタックD 514-Dを含む。SPVノードスタックB 514-Bは、対外分散型台帳Bに対するブロックヘッダー/シグネチャチェーンを含む。SPVノードスタックC 514-Cは、対外分散型台帳Cに対するブロックヘッダー/シグネチャチェーンを含む。SPVノードスタックD 514-Dは、対外分散型台帳Dに対するブロックヘッダー/シグネチャチェーンを含む。
【0073】
PVノード、とりわけ、SPVノードとして実装されるPVノードで維持されてよいブロックヘッダー/シグネチャチェーンの構造は、
図5Cに示されている。
図5Cに示されるように、ブロックヘッダー/シグネチャチェーン520は、関連の分散型台帳のブロックヘッダー522およびブロックシグネチャ524を含み、この場合、ブロックシグネチャは、署名されるブロックが有効であるとバリデータが承諾することを指示する関連の分散型台帳ネットワークのブロックバリデータによるシグネチャである。
【0074】
ここで、
図5Aとの関連で上述される第1の例示の多重分散型台帳システム500が、例えば、毎秒100,000のトランザクションという目標を実現するように構築されること、および、それぞれの共通台帳が毎秒333のトランザクションを個々に取り扱うことが可能であることを検討する。毎秒100,000のトランザクションを実現するために、
図5Aの多重分散型台帳システム500は、100,000/333=300程度の共通台帳を有する必要がある。300の共通台帳がある場合、それぞれの参加ノードは、ほぼ300の他の分散型台帳に対するSPVノードを維持しなければならない(分散型台帳における参加ノードまたはバリデータは、ブロックの妥当性について投票することが可能とされるノードである。分散型台帳におけるバリデータの圧倒的多数(例えば、3分の2以上)は一般的に、ブロックがチェーンにコミットされるようにするためにブロックの妥当性について同意しなければならない)。
【0075】
それぞれの分散型台帳がその台帳に対するSPVノードによって維持されるように毎秒約7キロバイトのデータを生じさせることになることが推定可能である。データは、その分散型台帳に対するブロックヘッダーおよびブロックシグネチャを含む。この、1共通台帳当たり毎秒7キロバイトの推定は、必要とされる投票の3分の2(2/3)の閾値で、それぞれの共通台帳に対してわずか約100のコンセンサス参加者を有すること、および、1シグネチャ当たり100バイトがあることを想定している。
【0076】
これによって、約300の分散型台帳×7キロバイト/秒/台帳=それぞれの参加している「局所」フルノードに「対外」SPVノードを共同設置するための追加のコミットされた記憶域の2,100キロバイト/秒となる。この推定された追加の記憶域の要件は、対外SPVノードを共同設置しない記憶域の要件の約2倍である。
【0077】
この追加の記憶域の要件に加えて、ブロックヘッダー/シグネチャチェーンにおけるブロックヘッダーに対するブロックハッシュのインデックスは、SPVノードが与えられてよい。インデックスは、台帳間検証を行うように
図4に示されたマークルツリー参照に使用されてよい。
【0078】
PVノードに対する追加の記憶域の要件は管理可能であるため、他の共通台帳全ての「対外」PVノードは、共通台帳の参加している「局所」ノードの一部または全てにおいて共同設置されてよい。さらに、それぞれのPVノードが与えられたインデックスを使用して、参加ノードは、該当するマークルルートを効率的に見出すことでトランザクション参照を容易に検証可能である。
【0079】
第2の例示のシステムアーキテクチャ:共有ノードのセット
図6Aに示される第2の例示のシステムアーキテクチャ600において、ノードのセットは、多重分散型台帳システムの分散型台帳ネットワーク全てによって共有される。これらの共有ノードのそれぞれは、複数台帳方式振替を効率的にサポートするように多重分散型台帳システムの共通台帳全てに対するフルノードとして動作してよい。3つの共通台帳を有する多重分散型台帳システムが
図6Aに示されているが、任意の数の共通台帳がシステムに含まれてよいことに留意されたい。
【0080】
図6Aに示される例では、第1の分散型台帳Aは第1の分散型台帳ネットワーク100Aによって維持され、第2の分散型台帳Bは第2の分散型台帳ネットワーク100Bによって維持され、第3の分散型台帳Cは第3の分散型台帳ネットワーク100Cによって維持される。これらの分散型台帳ネットワーク(100A、100B、および100C)のそれぞれは、
図1との関連で上述されるように、ノード102をこれらの間の相互接続104と共に含む。
【0081】
本発明の一実施形態によると、フルノードの共有セット(100ABC)がある。共有セット100ABCのそれぞれのノードは、3つの分散型台帳ネットワーク(100A、100B、および100C)のそれぞれのフルノードとして動作可能である。そのように、共有セット100ABCのそれぞれのノードは、3つの分散型台帳(A、B、およびC)のそれぞれのコピーを含有する。3つの分散型台帳(A、B、C)が別個の分散型台帳のままであり、それぞれがトランザクションの別個の台帳を記録していることに留意されたい。
【0082】
本発明の一実施形態によると、システムにおけるそれぞれの分散型台帳のブロックヘッダーに対するブロックハッシュのインデックスは、分散型台帳データから作成され、かつフルノードの共有セット(100ABC)のそれぞれのノードで提供されてよい。インデックスは、台帳間検証を行うように(ロックトランザクション406から開始トランザクション404まで、および終了トランザクション408からロックトランザクション406まで)
図4に示されるマークルツリー参照に使用されてよい。
【0083】
任意の参加ノードは、複数台帳トランザクションを検証するためにネットワークを通してフルノードの共有セット(100ABC)のノードに問合せを送ってよい。これは、共通台帳に提供されたフルノードが共通台帳のコンテンツについて偽っていないことを保証または認定するために中央エンティティまたは他の信頼されているエントリーでの信頼を含意する。
【0084】
図6Bは、本発明の一実施形態による、
図6Aのシステムアーキテクチャ内の共有ノードのセット100ABCにおけるノード102ABCに対するコンピュータシステム610の例示の実装形態を示す。示されるように、コンピュータシステム610は、局所分散型台帳Aに対するフルノードスタックA 512-A、局所分散型台帳Bに対するフルノードスタックB 512-B、および、局所分散型台帳Cに対するフルノードスタックC 512-Cを含む。フルノードスタックA 512-Aは局所分散型台帳Aに対する完全なコピーを含む。フルノードスタックB 512-Bは局所分散型台帳Bに対する完全なコピーを含む。フルノードスタックC 512-Cは局所分散型台帳Cに対する完全なコピーを含む。
【0085】
例示の複数台帳方式振替のフローチャート
図7は、本発明の一実施形態による、ソース分散型台帳上のデジタル表現された経済価値の所有者が、デジタル表現された経済価値をターゲット分散型台帳上のエンティティに振り替えるための方法700のフローチャートである。図示される特定の例では、振り替えられる値は100万米ドル(USD)である。
【0086】
方法700によって使用される構成要素は、以下、ソース分散型台帳L_Aと、ターゲット分散型台帳L_Bと、L_Aのフルノードスタック(N_A)を有し、また、L_Bの少なくともSPVノード(S_B)として動作するように構成される(そのため、L_Bに対する少なくともブロックヘッダーを含む)第1のネットワークノードと、L_Bのフルノードスタック(N_B)を有し、また、L_Aの少なくともSPVノード(S_A)として動作するように構成される(そのため、L_Aに対する少なくともブロックヘッダーを含む)第2のネットワークノードと、を含んでよい。
【0087】
ノードスタックN_Aは、以下のデータおよび能力、つまり、L_Aを使用するそれぞれのエンティティの資産に対するUTXOのインデックス、これらのUTXOによるトランザクションを構築する能力、L_Aからのコミットされたトランザクションをリッスンする能力、対外分散型台帳(例えば、L_B)にコミットされる対外ノードスタック(例えば、N_B)にトランザクションをサブミットする能力、トランザクションがこれ自体でサブミットされた場合の、対外ノードスタック(例えば、N_B)からのコミットされたトランザクションをリッスンする能力、対外ノードスタック(例えば、N_B)によってサブミットされたトランザクションを承諾しかつ索引付けする能力、および、コミットされたトランザクションがそれ自体でサブミットされた場合の、L_Aから対外ノードスタック(例えば、N_B)へのコミットされたトランザクションを排除する能力を有してよい。
【0088】
同様に、ノードスタックN_Bは、以下のデータおよび能力、つまり、L_Bを使用するそれぞれのエンティティの資産に対するUTXOのインデックス、これらのUTXOによるトランザクションを構築する能力、L_Bからのコミットされたトランザクションをリッスンする能力、対外分散型台帳(例えば、L_A)にコミットされる対外ノードスタック(例えば、N_A)にトランザクションをサブミットする能力、トランザクションがこれ自体でサブミットされた場合の、対外ノードスタック(例えば、N_A)からのコミットされたトランザクションをリッスンする能力、対外ノードスタック(例えば、N_A)によってサブミットされたトランザクションを承諾しかつ索引付けする能力、および、コミットされたトランザクションがそれ自体でサブミットされた場合の、L_Aから対外ノードスタック(例えば、N_A)へのコミットされたトランザクションを排除する能力を有してよい。
【0089】
ステップ1に従って、ノードスタックN_Aのクライアントとして、資産所有者および振替ソースであるエンティティAは、ソース分散型台帳A(L_A)からターゲット分散型台帳B(L_B)上のエンティティBへの指定された値(この例では、100万USD)の複数台帳方式振替を開始する。フルノードスタックにおいて(例えば、ノードスタックN_Aにおいて)実施されるステップ1に関する疑似コードは、
図9の行1~2に提供される。
【0090】
ステップ2に従って、ノードスタックN_Aは、L_AのUTXO U_1におけるエンティティAの資産の指定された値を識別する。フルノードスタックにおいて(例えば、ノードスタックN_Aにおいて)実施されるステップ2に関する疑似コードは、
図9の行3~4に提供される。
【0091】
ステップ3に従って、N_Aは指定された値の開始トランザクションT_Iをビルドする。フルノードスタックにおいて(例えば、ノードスタックN_Aにおいて)実施されるステップ3に関する疑似コードは、
図9の行5~6に提供される。
【0092】
ステップ4に従って、N_AはT_IをノードスタックN_Bにサブミットする。フルノードスタックにおいて(例えば、ノードスタックN_Aにおいて)実施されるステップ4に関する疑似コードは、
図11における疑似コードルーチンを呼び出すように、
図9の行11~14に提供される。
【0093】
ステップ5に従って、ノードスタックN_BはT_IをL_Bにサブミットする。フルノードスタックにおいて(例えば、ノードスタックN_Bにおいて)実施されるステップ5に関する疑似コードは、
図12における疑似コードルーチンを呼び出すように、
図11の行5~6に提供される。
【0094】
ステップ6に従って、L_BはT_Iをコミットし、かつT_IがコミットされるとN_Bに通知する。ステップ6は分散型台帳の従来のコードを使用して行われてよい。
【0095】
T_IがL_Bにコミットされた後、ステップ7aに従って、SPVノードS_BはT_Iを含有するブロックについてのSPV情報(すなわち、ヘッダーおよびシグネチャ)を受信する。さらに、ステップ7bに従って、N_Bは、T_IがコミットされたことをN_Aに通知する。フルノードスタックにおいて(例えば、ノードスタックN_Bにおいて)実施されるステップ7aおよび7bに関する疑似コードは、
図13および
図14における疑似コードによって提供される。
【0096】
ステップ8に従って、N_Aは、T_Iを参照しかつU_1をロックするロックトランザクションT_Lを構築する。フルノードスタックにおいて(例えば、ノードスタックN_Aにおいて)実施されるステップ8に関する疑似コードは、
図10の行7~12に提供される。
【0097】
ステップ9に従って、N_AはT_LをL_Aにサブミットする。フルノードスタックにおいて(例えば、分散型台帳L_AのノードスタックN_Aにおいて)実施されるステップ9に関する疑似コードは、
図12における疑似コードルーチンを呼び出すように、
図10の行13~14にある。
【0098】
ステップ10に従って、L_Aは、(T_Lで参照される)T_IがL_Bによってコミットされたことを検証するためにS_Bでチェックする。分散型台帳(例えば、分散型台帳L_A)によって実施されるステップ10に関する疑似コードは、
図12に提供される。トランザクションが対外分散型台帳でコミットされることを検証するための例示の手順は、
図8との関連で後述される。
【0099】
ステップ11に従って、検証が成功した後、L_AはT_Lをコミットし、かつT_LがコミットされるとN_Aに通知する。ステップ11は分散型台帳の従来のコードを使用して行われてよい。
【0100】
T_LがL_Aにコミットされた後、ステップ12aに従って、SPVノードS_AはT_Lを含有するブロックについてのSPV情報(すなわち、ヘッダーおよびシグネチャ)を受信する。さらに、ステップ12bに従って、N_Aは、T_Lを参照し、かつ振替ターゲットBによって所有される指定された値の出力を有する終了トランザクションT_Cを構築する。フルノードスタックにおいて(例えば、ノードスタックN_Aにおいて)実施されるステップ12aおよび12bに関する疑似コードは、
図13および
図14における疑似コードによって提供される。
【0101】
ステップ13に従って、N_AはT_CをN_Bにサブミットする。フルノードスタックにおいて(例えば、ノードスタックN_Aにおいて)実施されるステップ13に関する疑似コードは、
図10の行27~30、および
図11の疑似コードに提供される。
【0102】
ステップ14に従って、N_BはT_CをL_Bにサブミットする。フルノードスタックにおいて(例えば、分散型台帳L_AのノードスタックN_Aにおいて)実施されるステップ14に関する疑似コードは、
図12の疑似コードによって提供される。
【0103】
ステップ15に従って、L_Bは、(T_Cで参照される)T_LがL_Aによってコミットされたことを検証するためにS_Aでチェックし、L_Bはまた、T_Cへの入力が(T_Lで参照される)T_Iの出力であることを検証するようにチェックする。分散型台帳(例えば、分散型台帳L_B)によって実施されるステップ10に関する疑似コードは、
図12に提供される。トランザクションが対外分散型台帳でコミットされることを検証するための例示の手順は、
図8との関連で後述される。
【0104】
ステップ16に従って、検証が成功した後、L_BはT_Cをコミットし、かつT_CがコミットされるとN_Bに通知する。ステップ16は分散型台帳に対して従来のコードを使用して行われてよい。
【0105】
ステップ17に従って、N_BはT_CがL_BによってコミットされたことをN_Aに通知する。フルノードスタックにおいて(例えば、ノードスタックN_Bにおいて)実施されるステップ17に関する疑似コードは、
図14に提供される。
【0106】
最後に、ステップ18に従って、N_BはエンティティBのT_Cの出力を索引付けする。フルノードスタックにおいて(例えば、ノードスタックN_Bおいて)実施されるステップ18に関する疑似コードは、
図10の行33~34に提供される。
【0107】
上述される方法700は、
図5Aに図示される第1のシステムアーキテクチャ500による使用にとりわけ適していることに留意されたい。これは、第1のシステムアーキテクチャ500が局所分散型台帳のフルノードと共に対外分散型台帳のSPVノードを共同設置することが理由である。
【0108】
方法700は、
図6に図示される第2のシステムアーキテクチャ600による使用のために容易に修正可能である。第2のシステムアーキテクチャ600は、局所分散型台帳のフルノードによる対外分散型台帳のフルノードを共同設置する。そのように、方法700のステップ7aおよび12aは必要ではない。さらに、L_Aは、T_Iがステップ10でコミットされたことを検証するためにN_Bでチェックしてよく、L_Bは、T_Cがステップ15でコミットされたことを検証するためにN_Aでチェックしてよい。
【0109】
台帳間トランザクション検証
対外分散型台帳におけるトランザクション参照を検証するために、これらの他の分散型台帳に何がコミットされるのかに対する信頼できる検証機構を有することが必要である。別の分散型台帳におけるトランザクションを検証するためのこのような機構は、従来の分散型台帳技術によって提供されない。
【0110】
対外分散型台帳におけるトランザクションを検証するための例示のプロセス800は、
図8に示されている。プロセス800は、例えば、開始トランザクションがターゲット分散型台帳に存在することを検証するための
図7のステップ10において、および、ロックトランザクションがソース分散型台帳に存在することを検証するための
図7のステップ15において適用されてよい。
【0111】
ステップ801に従って、検証されるトランザクションに対するトランザクション入力の参照データは、問合せ内で局所ノードから1つまたは複数の対外ノードにパスさせる。局所ノードは局所分散型台帳のノードであり、対外ノードは、トランザクションが検証される対外分散型台帳のノードである。
【0112】
802)対外ノード(複数可)は、問合せするための正確なインデックスを見出すためにトランザクション入力において台帳識別子(例えば、チェーンid)を使用し、この正確なインデックスは台帳識別子と関連付けられている。インデックスへの入力は検証されているトランザクションを含有するブロックに対するブロックハッシュである。
【0113】
803)対外ノード(複数可)は、検査するための正確なブロックを見出すためにトランザクション入力においてブロックハッシュを使用する。
【0114】
804)対外ノード(複数可)は、(ステップ803で見出された)識別されたブロックからブロックヘッダーを抽出する。
【0115】
805)対外ノード(複数可)は識別されたブロックからマークルルートハッシュを抽出する。
【0116】
806)対外ノード(複数可)はトランザクション入力のトランザクションに対するトランザクションハッシュを算出する。
【0117】
807)対外ノード(複数可)はトランザクションハッシュおよび提供されたマークル分岐ハッシュからマークルルートハッシュを算出する。
【0118】
808)対外ノード(複数可)は、算出されたマークルルートハッシュを識別されたブロックにおけるマークルルートハッシュと比較する。
【0119】
809)対外ノード(複数可)は、トランザクションが、ハッシュが一致する場合有効であり、ハッシュが一致しない場合無効であることを局所ノードに返す。
【0120】
複数の対外ノードが上述した検証方法800で問い合わせられる場合、トランザクションは、対外ノードのうちの1つが、トランザクションが有効であると返す限り、有効にコミットされるとみなされ得ることに留意されたい。
【0121】
また、上述される方法800が、
図5Aに示される第1のシステムアーキテクチャ500または
図6に示される第2のシステムアーキテクチャ600のどちらかで使用されてよいことに留意されたい。第1のシステムアーキテクチャ500について、対外ノードは、局所フルノードスタックと共に共同設置される対外SPVノードスタックに対応し得る。第2のシステムアーキテクチャ600について、対外ノードスタックは、局所フルノードスタックと共に共同設置される対外フルノードスタックであってよい。
【0122】
図9~
図14は、本発明の一実施形態の例示の実装形態に対する詳細な「青写真」を提供する疑似コードを示す。疑似コードにおけるコメントは//が前に付けられている。
【0123】
トランザクションを開始する
図9に示される疑似コード手順は、複数台帳トランザクションがノードスタックにサブミットされる時に行われる。トランザクションを構築するために、トランザクションされる資産に対応するUTXOが見出されなければならない。UTXOが見出だされると、開始トランザクションはそのUTXO外に構築されるものとする。この開始トランザクションは、トランザクションのソースおよびトランザクションのターゲットと共に、後の検索のために索引付けられるものとする。開始トランザクションはUTXOにおける資産の所有者によって署名されるものとする。さらにまた、ターゲットノードスタックが位置し、開始トランザクションはソースの知識と共にターゲットノードスタックに送られる。
【0124】
コミットされたトランザクションを通知する
図10に示される疑似コード手順は、トランザクションがコミットされたことをノードスタックが通知される時に行われる。トランザクションが開始トランザクションであるかロックトランザクションであるかに応じて、2つの事例がある。
【0125】
第1の事例は、コミットされるトランザクションが開始トランザクションである場合である。これが生じる時、
図9に説明されるインデックスからロックする必要があるUTXOを検索できる。さらにまた、このUTXO外のロックトランザクションをビルドする。このトランザクションは、
図9に説明されるインデックスを使用して検索もする、UTXOにおける資産の所有者によって署名される必要がある。最後に局所台帳にこのトランザクションをサブミットする。
【0126】
第2の事例は、コミットされるトランザクションがロックトランザクションである場合である。これが生じる時、最初に、ロックトランザクションによって参照される開始トランザクションのターゲットを見出す。これは、
図9に説明されるインデックスから利用可能である。ロックトランザクションを参照する終了トランザクションをビルドする。この終了トランザクションは、振り替えられる資産の所有者のシグネチャを必要とし、これは、
図9に説明されるインデックスで検索できる。最後に、ターゲットに対するノードスタックを見出し、終了トランザクションは、ソースの知識と共に、ターゲットノードスタックに送られる。
【0127】
ノードスタックが通知される全てのトランザクションについて、利用可能なUTXOプールは更新される必要がある。
【0128】
対外トランザクションをコミットする
図11に示される疑似コード手順は、(開始または終了トランザクションが受信される時など)ノードスタックが対外ノードスタックからトランザクションを受信する時に行われる。トランザクションは、トランザクションが受信されるソースに索引付けされ、次いで、トランザクションは局所分散型台帳にサブミットされる。
【0129】
トランザクションを台帳にサブミットする
図12に示される疑似コード手順は、分散型台帳がサブミットされたトランザクションを受信する時に行われる。図では省かれている(図示されていない)全てのトランザクションにわたって共通の検証を行うことが採用されるいくつかのステップがある。SPV参照を含有するこれらのトランザクション(ロックトランザクションおよび終了トランザクション)について、これらの入力にある特定の妥当性が与えられる。
【0130】
入力が(ロックトランザクションおよび終了トランザクションの場合)SPV参照を含有することが見出される場合、SPVノード上の検証APIを呼び出すことによって、SPV参照が有効であることを検証する。さらに、(終了トランザクションの場合のように)入力がSPV参照によるトランザクションを含有するSPV参照を含有することを見出す場合、含有されるトランザクションのSPV参照トランザクションIDが、終了トランザクションが用いる開始トランザクションに一致するかどうかがチェックされる。全ての妥当性検査にパスする場合、トランザクションは台帳によってコミットされる準備ができている。
【0131】
ブロックを台帳にコミットする
図13に示される疑似コード手順は、分散型台帳がトランザクションを含有するブロックをコミットする時に行われる。図には、分散型台帳がトランザクションをブロックにどのように追加するか、および台帳がブロック上のコンセンサスにどのように達するのかを決定するプロセスを、これらの主題が本開示の範囲を超えているため示していない。示される手順では、台帳は、そのブロックをある永続化された記憶域に記憶し、ブロックについてのSPV情報をSPVノードに送り、さらにまた、ブロックがコミットされたことを局所ノードスタックに通知する。
【0132】
コミットされたトランザクションについてのメッセージを送る
図14の疑似コード手順は、局所ノードスタックがコミットされたトランザクションに関する通知をどのように配信するのかを示す。この手順は、開始トランザクションおよび終了トランザクションに対して行われる。
【0133】
ブロックにおける全てのトランザクションについて、局所ノードスタックは、トランザクションが対外ソースを有したかどうかを判断するために(
図11に定められる)対外インデックスを見る。トランザクションが対外ソースを有していた場合、局所ノードスタックは、対外ソースに対するノードスタックを見出し、かつその対外ノードスタックまでコミットされたトランザクションおよびコミットされたトランザクションについてのSPV情報を送る。局所ノードスタックは、(ソースが局所または対外であるかどうか)全てのコミットされたトランザクションについて通知される。
【0134】
トランザクション構造
図15は、本発明の一実施形態による、複数台帳方式参照トランザクション入力を含み得る標準トランザクション1500のための一般構造を示す。
図15における標準トランザクションはトランザクション入力のリスト、およびトランザクション出力のリストを含む。
【0135】
この場合、2つのタイプのトランザクション入力がある。第1のタイプのトランザクション入力は、台帳内(すなわち、標準)トランザクション入力1502である。それぞれの台帳内トランザクション入力は、入力トランザクションを識別するバイト、および、入力トランザクションに対する出力オフセットを提供する整数を含む。
【0136】
第2のタイプのトランザクション入力は、複数台帳方式参照トランザクション入力1504である。それぞれの複数台帳方式参照トランザクション入力は、対外台帳を識別するバイト、対外台帳内のブロックを識別するブロックハッシュのバイト、識別されたブロックにおけるトランザクションに対するマークル分岐ハッシュのリスト、識別されたブロック内の入力トランザクションのトランザクションバイト、および、所定のトランザクションバイト内で参照されている特定の出力に対するオフセットを提供する整数オフセットを含む。
【0137】
それぞれのトランザクション出力1506は、出力されているデジタル財産を識別するバイト、および、トランザクション出力の符号化ロックであるバイトロックを含む。バイトロックは、一致する秘密キーからシグネチャを提供することによってアンロックされる。
【0138】
図16~
図18は、本発明の一実施形態による、複数台帳方式振替を共に提供する3つのトランザクションのための構造を示す。これらの3つの構造は、
図4に示される3トランザクション複数台帳方式振替400を実施するために使用されてよい。
【0139】
図16は、本発明の一実施形態による、3トランザクション複数台帳方式振替の開始トランザクション1600のための特定の構造を示す。開始トランザクションは、トランザクション入力を含まず、単一のトランザクション出力1606を含む。
【0140】
トランザクション出力1606は、振り替えられているデジタル財産を識別するバイト、およびバイトロックを含む。バイトロックは、この開始トランザクションを参照するロックトランザクションへの参照による終了トランザクションによってのみ(デジタル財産を用いるために)アンロックされてよい。
【0141】
図17は、本発明の一実施形態による、3トランザクション複数台帳方式振替のロックトランザクション1700のための特定の構造を示す。ロックトランザクション1700は、トランザクション入力のリスト、およびトランザクション出力のリストを含む。
【0142】
トランザクション入力は、1つまたは複数の台帳内トランザクション入力1702、および単一の複数台帳方式参照トランザクション入力1704を含む。
【0143】
それぞれの台帳内トランザクション入力1702は、ソース台帳における入力トランザクションを識別するバイト、およびそのトランザクションに対する出力オフセットを提供する整数を含む。それぞれの入力トランザクションは、ソース台帳における既存のトランザクションに対応し、出力オフセットは、ロックトランザクション1700に入力される既存のトランザクションの特定の出力を指示する。
【0144】
複数台帳方式参照トランザクション入力1704を使用して、ターゲット台帳における開始トランザクションを参照する。複数台帳方式参照トランザクション入力1704は、ターゲット台帳を識別するバイト、ターゲット台帳内のブロックを識別するブロックハッシュのバイト、識別されたブロックにおけるトランザクションに対するマークル分岐ハッシュのリスト、識別されたブロック内の開始トランザクションのトランザクションバイト、および、所定のトランザクションバイト内で参照される特定の出力に対するオフセットを提供する整数オフセットを含む。
【0145】
ロックトランザクション1700は、いずれのトランザクション出力1706も必要としないため、ゼロ以上のトランザクション出力1706を有してよい。トランザクション出力1706がある場合、このトランザクション出力1706は、出力されているデジタル財産を識別するバイト、およびバイトロックを含む。トランザクション出力1706のデジタル財産は、(1つまたは複数の既存のトランザクションの出力(単数または複数)から)台帳内トランザクション入力1702が指し示すデジタル財産と、(開始トランザクションの指定された出力から)複数台帳方式参照トランザクション入力1704が指し示すデジタル財産との間の差に等しくなければならない。これらのデジタル財産の金額が等しい場合、トランザクション出力1706はない。
【0146】
図18は、本発明の一実施形態による、3トランザクション複数台帳方式振替の終了トランザクション1800のための特定の構造を示す。終了トランザクション1800は、2つのトランザクション入力、および1つまたは複数のトランザクション出力を含む。
【0147】
2つのトランザクション入力は、単一の台帳内トランザクション入力1802、および単一の複数台帳方式参照トランザクション入力1804を含む。
【0148】
台帳内トランザクション入力1802は、ターゲット台帳における開始トランザクションを識別するトランザクションIDのバイト、およびそのトランザクションに対する出力オフセットを提供する整数を含む。出力オフセットは、終了トランザクション1800に入力されている開始トランザクションの特定の出力を指示する。台帳内トランザクション入力1802におけるこのトランザクションIDは、ロックトランザクションによって指し示された開始トランザクションのトランザクションIDに一致しなければならず、その他の場合、終了トランザクションは無効になる。
【0149】
複数台帳方式参照トランザクション入力1804を使用して、ソース台帳におけるロックトランザクションを参照する。複数台帳方式参照トランザクション入力1804は、ソース台帳を識別するバイト、ソース台帳内のブロックを識別するブロックハッシュのバイト、識別されたブロックにおけるトランザクションに対するマークル分岐ハッシュのリスト、識別されたブロック内のロックトランザクションのトランザクションバイト、および、もしあれば、所定のトランザクションバイト内で参照されている特定の出力に対するオフセットを提供する整数オフセットを含む。
【0150】
1つまたは複数のトランザクション出力1806があってよい。それぞれのトランザクション出力1806は、出力されているデジタル財産を識別するバイト、およびトランザクション出力に対する符号化されたロックであるバイトロックを含む。バイトロックは、一致する秘密キーからシグネチャを提供することによってアンロックされる。
【0151】
スケーラビリティゲインを示すシステム性能計算
この節では、複数の分散型台帳(例えば、複数のブロックチェーン)を有するシステムに対するシステム性能の計算から明らかなようにスケーラビリティゲインについて説明する。
【0152】
計算についての変数定義は下記になる。
R=1台帳につき1秒当たりの送金の数
X=1台帳につき1秒当たりの台帳内トランザクションの数
Y=1台帳につき1秒当たりの台帳間トランザクションの数
N=システムにおける共通台帳の数
【0153】
計算に対する想定は下記になる。
1)Nの分散型台帳にわたるトランザクションの最悪の場合の分散は、台帳内トランザクション対台帳間トランザクションの比率が1対N-1になるように想定される
2)ブロックはサイズが1メガバイト(1MB)である
3)分散型台帳のブロックの処理速度は毎秒1ブロックである
4)台帳内トランザクションは約1000バイト=1キロバイトを扱う
5)トランザクション参照の最悪の場合のサイズは、log2(3000)*32バイト+32バイト=416バイトである
6)デジタル表現された経済価値を振り替えるための台帳間トランザクションは、それぞれ、5つのトランザクションを構成し、かつ、以下のステップにより合計2814バイトを扱う。
a)サブスクライバが送るトランザクションは約333バイトを扱う
b)開始トランザクションは約200バイトを扱う
c)ロックトランザクションは、開始サイズ+416バイト+100バイト=716バイトを扱う
d)終了トランザクションは、ロックサイズ+416バイト+100バイト=1232バイトを扱う
e=サブスクライバが受信するトランザクションは約333バイトを扱う
【0154】
上記の定義および想定に基づいて、以下の計算がなされる。
台帳内トランザクション対台帳間トランザクションの比率が1/(N-1)であることによって、X/Y=1/(N-1)
1MBのブロックサイズ、および2つのタイプのトランザクションのサイズが1000バイトおよび2814バイトであることによって、106=1000X+2814Y
1台帳につき1秒当たりの送金は、1台帳につき1秒当たりの台帳内トランザクションと、1台帳につき1秒当たりの台帳間トランザクションとの合計であるため、R=X+Y
Nの関数としてRの値を求めると、R=106N/(2814N-1814)
【0155】
システムの集計で1秒当たりの送金(RPS)N*R=105を目標にする場合、以下の二次方程式が得られる。
N2-281.4N+181.4=0
【0156】
上記の式のルートの値を求め、かつ実践的な理由から1以上でなければならない結果を考慮すると、共通台帳の数N=281になる。この結果は、上記を想定すると、281の共通台帳は、それぞれが、システムの105RPSの集計トランザクションスループットを有するように毎秒1MBをコミットするように実行されなければならないことを意味する。
【0157】
システムにおける共通台帳の数Nの関数としてRPSでの1共通台帳当たりの計算されたトランザクションスループットは、本発明の一実施形態に従って、
図19のグラフによって示される。RPSでの総トランザクションスループットは、共通台帳の数Nで乗算した1台帳当たりのRPSに等しい。グラフに見られるように、N=281で、1台帳当たり(それぞれの台帳がブロックチェーンである時は1共通チェーン当たり)のRPSは、システムスループットが約10
5であるように356である。
【0158】
共通台帳(それぞれの台帳がブロックチェーンである時は共通チェーン)の数の関数としてのRPSでのシステムに対する計算した集計トランザクションスループットは、本発明の一実施形態に従って、
図20のグラフによって示される。示されるように、集計トランザクションスループットは、システムにおける共通台帳の数に比例して変化する。
【0159】
上に提示された計算は、システムにおけるトランザクションの最悪の場合の分散およびトランザクション参照の最悪の場合のサイズに基づくことに留意されたい。少なくとも多くの場合において、システムにおけるさまざまなコンセンサスネットワークへのノードの割り当てが、台帳内トランザクション対台帳間トランザクションの比率X/Yが1以上になるように大きく増加させるようになされ得る可能性は非常に高い。換言すれば、システムは、台帳間トランザクションより台帳内トランザクションの方が多いように構成可能である可能性が高い。対照的に、上述した計算における最悪の場合の想定は、台帳内トランザクションより台帳間トランザクションの方が多いことである。それ故に、実際のシステム性能は、潜在的に、上記の計算におけるシステム性能よりはるかに良好である。
【0160】
コンピュータシステム
図21は、例えば、分散型台帳ネットワークの完全または部分的ノードを実装するために使用可能であるコンピュータシステム2100の構成要素を高水準で示す。コンピュータシステムは、図に示されるより少ないまたは多い構成要素で実装されてよい。例えば、コンピュータシステムは、(グラフィックプロセッサを含む)1つまたは複数のプロセッサ2101と、このさまざまな構成要素を結合する1つまたは複数のバス2103とを含んでよい。コンピュータシステムはまた、1つまたは複数のユーザ入力デバイス2102(例えば、キーボード、マウス)と、1つまたは複数のデータ記憶デバイス2106(例えば、ハードドライブ、光ディスク、ソリッドステートメモリディスク)と、1つまたは複数の表示モニター2104(例えば、液晶表示器、フラットパネルモニター)と、1つまたは複数のコンピュータネットワークインターフェース2105(例えば、ネットワークアダプタ、モデム)と、メインメモリ2108(すなわち、ランダムアクセスメモリ)とを含んでよい。示されるように、コンピュータネットワークインターフェース2105は、この場合、分散型台帳ネットワークであってよいコンピュータネットワーク2109に結合されてよい。
【0161】
コンピュータシステムは、プロセッサ2101による実行のためにメインメモリ2108に非一時的に記憶されるコンピュータ可読コードまたは命令を含む1つまたは複数のソフトウェアモジュールでプログラミングされるような特定のマシンである。製品は、プロセッサ2101によって実行される時、コンピュータシステムを、1つまたは複数のソフトウェアモジュールの機能を実行するように動作可能にする命令を含むコンピュータ可読記憶媒体として具現化されてよい。
【0162】
結論
本開示の解決策は、複数の分散型台帳および複数台帳方式振替を使用して、高度にスケーラブルなトランザクションスループットを実現する。ソースブロックチェーンからターゲットブロックチェーンに値を効果的に振り替える一方、値の二重使用を防止するように複数台帳方式振替を書き込むための方法および命令コードが開示される。高度にスケーラブルなトランザクションスループットを実現するために複数の分散型台帳間の複数台帳方式振替を利用するシステムアーキテクチャも開示される。分散型台帳間の複数台帳方式振替を実施するように構成されるコンピュータ装置も開示される。
【0163】
本開示では、本発明の実施形態を十分に理解してもらうために、システム、構成要素、および方法の例などの多数の具体的な詳細が提供される。しかしながら、本発明が具体的な詳細の1つまたは複数がなくても実践可能であることを、当業者は認識するであろう。他の例では、本発明の態様を不明瞭にすることを回避するために、周知の詳細は示されないし説明もされない。
【0164】
本発明の具体的な実施形態が提供されているが、これらの実施形態が例示のためのものであり限定するものではないことは、理解されたい。多くの追加の実施形態は、本開示を読む当業者には明らかとなるであろう。