JP2021508111A - 分散型台帳間の複数台帳方式振替のための方法および装置、ならびに複数台帳方式振替を使用するシステム - Google Patents

分散型台帳間の複数台帳方式振替のための方法および装置、ならびに複数台帳方式振替を使用するシステム Download PDF

Info

Publication number
JP2021508111A
JP2021508111A JP2020533691A JP2020533691A JP2021508111A JP 2021508111 A JP2021508111 A JP 2021508111A JP 2020533691 A JP2020533691 A JP 2020533691A JP 2020533691 A JP2020533691 A JP 2020533691A JP 2021508111 A JP2021508111 A JP 2021508111A
Authority
JP
Japan
Prior art keywords
transaction
distributed ledger
ledger
target
lock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020533691A
Other languages
English (en)
Other versions
JP7307910B2 (ja
Inventor
ウー、ウィリアム
リ、チャーシン
ウー、リン
Original Assignee
ティービーシーエーソフト,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ティービーシーエーソフト,インコーポレイテッド filed Critical ティービーシーエーソフト,インコーポレイテッド
Publication of JP2021508111A publication Critical patent/JP2021508111A/ja
Priority to JP2023101855A priority Critical patent/JP2023134492A/ja
Application granted granted Critical
Publication of JP7307910B2 publication Critical patent/JP7307910B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/227Payment schemes or models characterised in that multiple accounts are available, e.g. to the payer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/381Currency conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4014Identity check for transactions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/70Administration or customization aspects; Counter-checking correct charges
    • H04M15/785Reserving amount on the account
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography

Abstract

本開示の解決策は、高度にスケーラブルなトランザクションスループットを実現するために分散型台帳間の複数台帳方式振替を提供する。ソース分散型台帳(200S)からターゲット分散型台帳(200T)に値を効果的に振り替える一方、値の二重使用を防止するように複数台帳方式振替(400)を書き込むための方法および命令コードが開示される。これによって、ソース台帳の合計値が振り替えられた値によって減少するが、ターゲット台帳の合計値が同じ金額によって増加するように台帳は変換される。高度にスケーラブルなトランザクションスループットを実現するために複数の分散型台帳間の複数台帳方式振替を利用するシステムアーキテクチャ(500および700)も開示される。分散型台帳間の複数台帳方式振替を実施するように構成されるコンピュータ装置(510および610)も開示される。他の実施形態および特徴も開示される。【選択図】図2

Description

本開示は、一般的に、コンピュータおよびネットワーク技術に関する。より詳細には、本開示は、ブロックチェーンおよび他の分散型台帳技術に関する。
ブロックチェーンは、ブロックチェーンネットワークによってアクセスされかつ確認されるブロックデータ構造(ブロック)のチェーンである。ブロックチェーンの1つの例は、ビットコインが特定の暗号通貨である、ビットコイントランザクションの分散型台帳として機能する、ビットコインブロックチェーンとして知られている。ビットコインブロックチェーンにおけるそれぞれのブロックは、ビットコインの複数のトランザクションを符号化する。
ビットコインブロックチェーンにおいて、それぞれのブロックは、ブロックに含まれるトランザクションに対するハッシュ値の、ブロックヘッダーおよびマークルツリーのルートを含む。それぞれのブロックは、(ブロックヘッダーのハッシュ値である)ブロックハッシュによって識別される。ブロックヘッダーは、ブロックのマークルツリーのルート、このチェーンにおける前のブロックのブロックハッシュ、およびノンスを含む。トランザクションの新しいブロックは、ビットコインネットワークにおけるマイナーによってビットコインブロックチェーンに追加されてよい。マイナーは、ブロックチェーンにアクセスし、かつ新しいトランザクションのブロードキャストを受信してよい。新しいブロックは、マイナーが、見込みのあるブロックにおける取引を確認し、かつ課題を満たす時、ブロックチェーンに追加されてよい。コンセンサスプロトコルは、ビットコインブロックチェーンの整合性および保全性を保護する。
従来の分散型台帳技術のトランザクションスループットは、かなりの制限があり、容易にスケーラブルではない。例えば、ビットコインブロックチェーンネットワークは、ブロックサイズの限度と共にレイテンシおよび帯域幅の問題により、スループットの制限が大きな問題になっている。分散型台帳技術のスループットスケーラビリティ問題を解決することが非常に望まれている。
本開示の解決策は、高度にスケーラブルなトランザクションスループットを実現するために分散型台帳間の複数台帳方式振替を提供する。ソース分散型台帳からターゲット分散型台帳に値を効果的に振り替える一方、値の二重使用を防止するように複数台帳方式振替を書き込むための方法および命令コードが開示される。高度にスケーラブルなトランザクションスループットを実現するために複数の分散型台帳間の複数台帳方式振替を利用するシステムアーキテクチャも開示される。分散型台帳間の複数台帳方式振替を実施するように構成されるコンピュータ装置も開示される。
本開示の解決策の複数台帳方式振替によって、ソース台帳の合計値が振り替えられた値によって減少するが、ターゲット台帳の合計値が同じ値によって増加するように台帳が変換または修正される。例示の実装形態では、ソース台帳の振り替えられた値の消滅、およびターゲット台帳の振り替えられた値の再作成は、ソース台帳におけるロックトランザクション、およびターゲット台帳における開始トランザクションおよび終了トランザクションを使用することによって、達成可能である。ロックトランザクションは開始トランザクションを参照し、終了トランザクションはロックトランザクションを参照し、かつ開始トランザクションのトランザクション出力を用いる。
本開示の発明の1つの実施形態は、デジタル表現された経済価値を、その価値の二重使用を防止するようにソース分散型台帳からターゲット分散型台帳に振り替える複数台帳方式振替を行う方法に関する。開始トランザクションは、ターゲット分散型台帳に書き込まれ、ロックトランザクションはソース分散型台帳に書き込まれる。ロックトランザクションはソース分散型台帳において既存のトランザクションのトランザクション出力を用い、かつ、ターゲット分散型台帳における開始トランザクションを参照する。終了トランザクションはさらにまた、ターゲット分散型台帳に書き込まれてよい。終了トランザクションは、開始トランザクションのトランザクション出力を用い、かつソース分散型台帳におけるロックトランザクションを参照する。
別の実施形態は、複数台帳方式振替を行うためのコンピュータ可読コードを有する非一時的な有形的表現媒体に関する。複数台帳方式振替は、デジタル表現された経済価値を、その価値の二重使用を防止するように、ソース分散型台帳からターゲット分散型台帳に振り替える。
別の実施形態は、高度にスケーラブルなトランザクションスループットを実現するために分散型台帳間の複数台帳方式振替を使用する第1のシステムアーキテクチャに関する。第1のシステムアーキテクチャは、複数の分散型台帳ネットワークを含み、それぞれの上記の分散型台帳ネットワークは、システムにおける他の分散型台帳のための複数の支払検証ノードを含む。
別の実施形態は、高度にスケーラブルなトランザクションスループットを実現するために分散型台帳間の複数台帳方式振替を使用する第2のシステムアーキテクチャに関する。第2のシステムアーキテクチャは複数の分散型台帳ネットワークを含む。第2のシステムアーキテクチャは、複数の分散型台帳ネットワークによって共有される共有ノードのセットをさらに含む。上記の共有ノードは、いくつかあるサービスの中で特に、トランザクションの台帳間検証を提供する。
別の実施形態は、複数の分散型台帳間の複数台帳方式振替のための第1のコンピュータ装置に関する。第1のコンピュータ装置は、複数の分散型台帳の局所分散型台帳の局所ノードスタックに対するコンピュータ可読コード、および、複数の分散型台帳の対外分散型台帳の対外支払検証ノードスタックに対するコンピュータ可読コードを含む。局所ノードスタックは、局所分散型台帳と対外分散型台帳との間のデジタル表現された経済価値の複数台帳方式振替中に対外分散型台帳におけるトランザクションを検証するために対外支払検証ノードスタックを使用するように構成される。
別の実施形態は、複数の分散型台帳間の複数台帳方式振替のための第2のコンピュータ装置に関する。第2のコンピュータ装置は、複数の分散型台帳のノードスタックに対するコンピュータ可読コードを含む。それぞれの上記のノードスタックは、ソース分散型台帳からターゲット分散型台帳へのデジタル表現された経済価値の複数台帳方式振替を行うように構成される。
他の実施形態および特徴も開示される。
本発明の一実施形態による単一分散型台帳ネットワークの構造を示す図である。 本発明の一実施形態による、ソース分散型台帳とターゲット分散型台帳との間のデジタル表現された経済価値の単一トランザクション複数台帳方式振替のデータ構成要素を示す図である。 本発明の一実施形態による、ソース分散型台帳における造幣ライセンス付与トランザクションを参照するターゲット分散型台帳における造幣トランザクションに関与する2トランザクション複数台帳方式振替を示す図である。 本発明の一実施形態による、ソース分散型台帳からターゲット分散型台帳へのデジタル表現された経済価値の3トランザクション複数台帳方式振替を示す図である。 本発明の一実施形態による、複数台帳方式振替を行うための対外支払検証(PV)ノードを使用するシステムアーキテクチャを示す図である。 本発明の一実施形態による、図5Aのシステムアーキテクチャにおけるノードに対するコンピュータ装置を示す図である。 本発明の一実施形態による、対外PVノードによって使用されるブロックヘッダーおよびブロックシグネチャのチェーンを示す図である。 本発明の一実施形態による、複数台帳方式振替を行うための複数の分散型台帳ネットワークによって共有されるノードを使用するシステムアーキテクチャを示す図である。 本発明の一実施形態による、図6Aのシステムアーキテクチャにおける共有ノードに対するコンピュータ装置を示す図である。 本発明の一実施形態による、ソース分散型台帳上のデジタル表現された経済価値の所有者が、デジタル表現された経済価値をターゲット分散型台帳上のエンティティに振り替えるための方法のフローチャートである。 本発明の一実施形態による、台帳間トランザクション検証のためのプロセスを示す図である。 本発明の一実施形態による、ソース分散型台帳からターゲット分散型台帳への複数台帳方式振替を開始するために行われてよい手順のための疑似コードを示す図である。 本発明の一実施形態による、開始トランザクションまたはロックトランザクションがコミットされた後に行われてよい手順のための疑似コードを示す図である。 本発明の一実施形態による、対外分散型台帳上のトランザクションをコミットするために行われてよい手順のための疑似コードを示す図である。 本発明の一実施形態による、分散型台帳にトランザクションをサブミットするために行われてよい手順のための疑似コードを示す図である。 本発明の一実施形態による、トランザクションのブロックに対するコンセンサスに達した後に分散型台帳のノードによって行われてよい手順のための疑似コードを示す図である。 本発明の一実施形態による、コミットされているブロックにおける未使用のトランザクション出力を索引付けするために分散型台帳のノードによって行われてよい手順のための疑似コードを示す図である。 本発明の一実施形態による、複数台帳方式参照トランザクション入力を含む標準トランザクションのための一般構造を示す図である。 本発明の一実施形態による、3トランザクション複数台帳方式振替の開始トランザクションのための構造を示す図である。 本発明の一実施形態による、3トランザクション複数台帳方式振替のロックトランザクションのための構造を示す図である。 本発明の一実施形態による、3トランザクション複数台帳方式振替の終了トランザクションのための構造を示す図である。 本発明の一実施形態による、システムにおける分散型台帳の数の関数として1台帳当たりの計算されたトランザクションスループットを示すグラフである。 本発明の一実施形態による、分散型台帳の数の関数として計算された集計トランザクションスループットを示すチャートである。 本発明の一実施形態による、コンピュータシステムの構成要素を高水準で示す図である。
異なる図面における同じ参照ラベルの使用は、同じまたは同様の構成要素を指示する。
概論
慣習的に、機関は、金融取引の清算および決算を取り扱うために中央手形交換所を頼りにしている。このような従来の清算および決算は、とりわけ、国際取引には、時間がかかりかつ費用が高くなることが問題になっている。
しかしながら、近年、清算および決算のための代替的な手段が利用可能になっている。この代替策は一般的に、暗号通貨でトランザクションを清算および決算するために分散型台帳を使用する。このような暗号通貨の顕著な例は、ビットコインブロックチェーンネットワークによって維持されるビットコインである。暗号通貨の他の例には、ライトコイン(登録商標)、ノヴァコイン、ネームコイン、ドージコイン、ピアコイン、イーサリアム(登録商標)、およびリップル(登録商標)が挙げられる。
図1は、本発明の一実施形態による単一分散型台帳ネットワーク100の構造を示す図である。分散型台帳ネットワーク100は、トランザクションの分散型台帳を維持するために使用されてよい。分散型台帳の1つの例はビットコインブロックチェーンである。しかしながら、分散型台帳ネットワーク100は、一般的に、任意のブロックチェーンネットワークであってよい、または有向非巡回グラフ(DAG)アルゴリズムを使用してDAGベースの台帳を提供するものなど、別のタイプの分散型台帳ネットワークであってよい。本開示の解決策は、一般的に、トランザクションのブロックを使用して実装される分散型台帳に適用可能であり(これと互換性があり)、この場合、それぞれのブロックヘッダーはブロックに含有されるトランザクションのマークルルートを有する。
分散型台帳ネットワーク100は、複数のノード102を、これらの間の通信接続104と共に含む。例示を容易にする目的で、図にはいくつかのノード102のみが示されているが、分散型台帳ネットワーク100は、大多数のノードを、これらの間のさまざまな相互接続104と共に有してよい。
ノード102は、一般的に、それぞれが分散型台帳のデータの完全かつ最新のコピーを含有するため、フルノードと称される場合がある。ビットコインネットワークの例では、このようなフルノードはビットコインブロックチェーンのマイナーとして動作してよく、この場合、成功したマイナーはビットコインのデジタル通貨で支払われる。しかしながら、本発明の一実施形態によると、分散型台帳は、デジタル通貨で成功したマイナーを支払う必要はなく、さらに、より一般的には、暗号通貨である必要のないデジタル表現資産(または負債)を扱ってよい。
複数のクライアント106は、デジタル台帳ネットワーク100に通信接続されてよい。これらのクライアント106は、分散型台帳の完全かつ最新のコピーを維持しない軽量ノードであるが、依然、分散型台帳におけるトランザクションを検証する能力を有する。
例えば、クライアント106は、支払検証方法を使用してトランザクションを検証できる支払検証(PV)ノードとして実装されてよい。PVノードは、分散型台帳ネットワークに接続され、かつ分散型台帳におけるトランザクションの妥当性を証明することが必要とされるデータを保持する非フルノードであってよい。個々のトランザクションレコードは、一般的に、PVノードにおけるデータからなくなっているため、PVノードは分散型台帳ネットワークのクライアントであるとみなされる場合がある。例示の実装形態では、分散型台帳がブロックチェーンである時、PVノードは簡略化支払検証(SPV)ノードであってよく、必要とされるデータは、ブロックにおけるトランザクションのマークルルート、以前のブロックハッシュ、およびブロックバリデータによって作成されるブロックシグネチャのリストを含む。
クライアント106は、コア分散型台帳ネットワークを超えた拡大ネットワークの一部を形成するとみなされ得る。例示を容易にするために少数のクライアント106のみが示されているが、多数のクライアント106が分散型台帳ネットワーク100に接続されてよい。
上記のように、分散型台帳の有名な例はブロックチェーンである。ブロックチェーンは、トランザクションのブロックに対して連続的にコンセンサスに達するようにP2Pプロトコルを実行するノードのピアツーピア(P2P)ネットワークによって維持される。本開示の解決策は、一般的に、ブロックチェーン技術または他の分散型台帳技術に適用されてよい。
分散型台帳におけるトランザクションは、入力のリストおよび出力のリストを含んでよい。トランザクションハッシュは、トランザクション内のデータの全てをハッシュすることによって構築されてよい。トランザクションハッシュは、トランザクションを(すなわち、トランザクション識別子またはtx idとして)参照するために使用されてよい。
トランザクション出力(TXO)は、このトランザクションのハッシュ、トランザクション内のこのインデックス、およびTXOの受信者の識別によって識別されてよい。TXOは、いずれのデジタル表現資産も保持してよい。TXOは振り替えられず、TXO内のデジタル表現された経済価値は振り替えられる。受信者は、(対応する秘密キーを有する)受信者の公開キーのハッシュによって識別されてよい。
トランザクション入力はTXOを参照する。従来の台帳内トランザクションについて、トランザクション入力は、トランザクションハッシュによるTXO、およびTXOの出力インデックスを参照する。本開示によって教示されるように、複数台帳トランザクションに対するトランザクション入力210は図2との関連で後述され得る。
トランザクションスループットの制限
ビットコインネットワークなどの従来の分散型台帳ネットワークは、実質的なトランザクションスループットの制限を有する。これらの制限は、ブロックサイズの限度と共にレイテンシおよび帯域幅の問題によるものである。
新しいブロックは、作成されると、分散型台帳ネットワーク全体を通して伝搬されなければならない。しかしながら、世界各地にある信頼すべきネットワークノード(すなわち、バリデータノード)間に実質的な最小レイテンシがある。これらのレイテンシは、伝搬速度に下限をもたらすため、トランザクションスループットを制限する。
さらに、トランザクションスループットを増大させるために、1ブロック当たりより多くのトランザクションに適合させるようにブロックサイズを増大させることを可能にしてよい、および/または、より多くのブロックを処理するようにブロック周波数を増大させることを可能にしてよい。しかしながら、分散型台帳ネットワーク内の帯域制限は一般的に、ブロックサイズおよび/またはブロック周波数のこのような増大によって実現可能なスループットゲインを制限する。
複数台帳方式振替による多重分散型台帳システム
本開示は、従来の分散型台帳技術の上で論じたトランザクションスループットの制限を克服するための革新的な解決策を提供する。複数台帳方式振替による多重分散型台帳システムを提供する技術が開示される。複数台帳方式振替によって、デジタル表現された経済価値を1つの分散型台帳から別の分散型台帳に振り替えることが可能である。
デジタル表現された経済価値の例には、ビットコインブロックチェーンにおけるビットコインなどの暗号通貨がある。より一般的には、ソース分散型台帳とターゲット分散型台帳との間で振り替えられるデジタル表現された経済価値は、任意のデジタル表現された資産(従来の通貨、暗号通貨、商品、または他の財産)または負債(借金など)であってよい。1つの実施形態では、デジタル表現された経済価値は通貨額におけるものであってよい。別の実施形態では、デジタル表現された経済価値は、暗号通貨額におけるものであってよい。別の実施形態では、デジタル表現された経済価値は商品の金額であってよい。
複数台帳方式振替は、実際には、システムの複数の分散型台帳を共にリンクするために使用されてよい。そのように、それぞれの分散型台帳におけるトランザクションの保全性は、他のリンクされた分散型台帳(複数可)におけるトランザクションの保全性に左右される。
複数の分散型台帳が複数台帳トランザクションによって共に効果的にリンクされる時、共にリンクされた分散型台帳ネットワークのシステムは、多重分散型台帳システムまたは分散型台帳「エコシステム」と称される場合がある。多重分散型台帳システムによって維持されている分散型台帳は、互いに協働し、「共通台帳」と称される場合がある。
共通台帳は同じ全体的なシステムの各部であるが、それぞれの共通台帳は他の共通台帳との関連で別個のまたは「対外」の分散型台帳である。それぞれの共通台帳はトランザクションのこれ自体の台帳を維持し、この台帳は他の共通台帳のトランザクションを含まない。しかしながら、1つの共通台帳におけるトランザクションは異なる共通台帳におけるトランザクションを参照してよい。
有利には、本明細書に開示されるように、スケーラブルな数の共通台帳を有する多重分散型台帳システムは、単一分散型台帳ネットワークの上で論じたスループットの制限を克服するために適用されてよい。
レイテンシの制限は、2つのバリデータノードがこれらの間に長いレイテンシを有する時、システム内の異なった分散型台帳ネットワークに分離されてよいため、克服可能である。2つのノードは異なる台帳を確認するため、これらの間の長いレイテンシはどちらの台帳のコンセンサスの時間にも影響を与えることはない。それ故に、本開示の解決策を使用して、ノード間の長いレイテンシの性能に対する影響を実質的に低減または排除可能である。
帯域幅の制限は、単一分散型台帳の代わりに複数の共通台帳を使用することによってブロックサイズが効果的に低減可能であるため、克服可能である。Nの共通台帳による構造を使用して、ブロックサイズをほぼ1/Nに効果的に低減可能である。
よって、複数台帳トランザクションが比較的まばらになるようにノードを領域(またはグループ)に分割することによって、共通台帳を追加することによって追加されるスループットは、単独で実行しているそのチェーンだけの全スループットのかなりの割合になる。これによって、共通台帳の数にほぼ比例して変化するスループットが生じるものとする。
共通台帳間の複数台帳トランザクション
本発明の一実施形態によると、2つの分散型台帳(すなわち、2つの「共通台帳」)間の複数台帳トランザクションは、ソース分散型台帳200Sに対する既存の未使用のトランザクション出力(UTXO)を効果的に消滅させ、かつターゲット分散型台帳200Tにおける(消滅させたUTXOに等しい合計値での)1つまたは複数の新しいUTXOを作成する。ターゲット分散型台帳200Tに書き込まれる複数台帳トランザクション205の構成要素は、本発明の一実施形態に従って図2に示されている。
図2に示されるように、(ターゲット分散型台帳200Tに書き込まれるものになる)複数台帳トランザクション205は、ソース分散型台帳200Sへの参照を提供するトランザクション入力210と、ターゲット分散型台帳200Tにおける受信者(単数または複数)に値(単数または複数)を振り替えるトランザクション出力(単数または複数)220とを含む。
より具体的には、トランザクション入力210は、ソース分散型台帳200Sのチェーン識別子211と、(ブロックのマークルツリーに対するマークル分岐ハッシュ214を含んで)参照され、参照番号が213の既存のトランザクションのブロックに対するブロックヘッダー212と、既存のトランザクションの特定の出力を指示する数を含む出力インデックス215とを含んでよい。
必要とされるマークル分岐ハッシュ214の数は、ブロックにおけるトランザクションの数の底を2とする対数以上であることに留意されたい。それ故に、ブロックに1000(1千)のトランザクションがある場合、10(十)のマークル分岐ハッシュが必要とされる。
また、(トランザクション識別子またはtx idと称される場合がある)トランザクションハッシュは、ハッシュ関数を参照トランザクションのコンテンツに適用することによって参照トランザクション213から導出されるハッシュ値であることに留意されたい。トランザクションハッシュは、マークル分岐ハッシュでハッシュしてマークルルートを形成してよい。このマークルルートは、ソース分散型台帳200S内のブロックのマークルルートに対して照合させて、トランザクション213がソース分散型台帳200Sに存在することを証明してよい。
出力220のトランザクション出力は(トランザクション213および出力インデックス215によって指定されるように)ソース分散型台帳200SにおけるUTXOから得られたものの使用に関するデータを提供する。それぞれのトランザクション出力220は、受信者に振り替えられているデジタル表現された経済価値、および受信者の公開キーのハッシュを提供する。
ソース分散型台帳における使用を防止する2トランザクション複数台帳方式振替
デジタル表現された経済価値の複数台帳方式振替を行うための開示された方法の動作の機構を理解するために、図3に示されるように参照トランザクションによる造幣を考慮する。図3において、ターゲット分散型台帳(例えば、ターゲットブロックチェーン)におけるデジタル表現された経済価値の造幣は、ソース分散型台帳(例えば、ソースブロックチェーン)における参照トランザクションを通して行われる。しかしながら、以下に論じられるように、図示されるようなデジタル表現された経済価値のこのような造幣は、振り替えられた値の二重(多重)使用を防止するための機構を含まない。
参照トランザクションにおけるトランザクション出力(TXO)は、過去に存在していた時があったことが保証されると考えられるが、(現在時刻でまたは将来的に)依然未使用であることは保証されない。これは、ソースチェーンにおけるTXOを参照することが複数台帳トランザクションをサポートするのに不十分であることを意味するが、これは、未使用のTXO(すなわち、UTXO)のみが参照されなければならないからである。
図3に示される複数台帳方式振替において、ソース分散型台帳における造幣ライセンス付与トランザクション302は、定義により、ソース分散型台帳の別の造幣者に付与されることはないトランザクションである。それ故に、造幣ライセンス付与トランザクション302からのTXOは、ソース分散型台帳では本質的に用いることが不可能である。この場合、マークル証明304を使用してソースチェーンにおける造幣ライセンスを付与するトランザクションの存在を証明することは、TXOがソース分散型台帳において(用いることが不可能であるため)未使用であることを証明するのに十分である。
そのように、造幣ライセンス付与トランザクションがソース分散型台帳に存在するという事実は、ターゲット分散型台帳においてデジタル表現された経済価値を造幣するための造幣トランザクション306の根拠をもたらす。その後、造幣された値はターゲット分散型台帳におけるトランザクションに対して通常使用されてよい308。
しかしながら、図3の2トランザクション複数台帳方式振替は、システムを使用する全てのエンティティが信頼されるものである時二重使用を安全に回避するが、信頼できないエンティティがシステムを使用する場合がある時に二重使用を防止するには不十分である。これは、図3の2トランザクション複数台帳方式振替が、ソース分散型台帳における未使用のTXOが複数のターゲット分散型台帳で用いられないようにしないからである。
二重使用を防止する3トランザクション複数台帳方式振替
本発明の一実施形態によると、図4に示される方法400は、共通台帳間でデジタル表現された経済価値を振り替える。複数台帳方式振替は、一連のハンドシェイクを介して、値が、複数のターゲット分散型台帳のソース分散型台帳における未使用の値を用いることによって知らないうちに作成できないことを保証するように行われる。
図4に示されるように、このような複数台帳方式振替の例示の実装形態は、一連の3つの個々のトランザクションを生成し、かつシステムの分散型台帳にコミットしてよい。これらのトランザクションは、ターゲット分散型台帳における開始トランザクション、ソース分散型台帳におけるロックトランザクション、およびターゲット分散型台帳における終了トランザクションを含む。
共通台帳間でデジタル表現された経済価値を振り替える方法400の第1の段階において、ソース分散型台帳200Sにおける既存のトランザクション402の未使用のトランザクション出力(UTXO)が見出されるまたは識別される。ソース分散型台帳において、ターゲット分散型台帳200Tにおいて用いられるのは、このUTXOである。
方法400の第2の段階では、開始トランザクション404は、生成され、かつターゲット分散型台帳200Tにコミットされる。開始トランザクション404は、既存のトランザクション402の識別済みUTXOと同じデジタル表現された経済価値を作成する。しかしながら、本発明の一実施形態によると、開始トランザクション404は、この出力が通常のやり方で用いることが不可能であるという特別な性質を有する(より詳細には、以下に論じられるように、開始トランザクション404のUTXOは、開始トランザクション404を参照し、かつ既存のトランザクション402の識別済みUTXOを用いるロックトランザクション406を参照する終了トランザクション408によってのみ用いられ得る)。
方法400の第3のステージでは、開始トランザクション404がターゲット分散型台帳200Tにコミットされた後、ロックトランザクション406は生成され、かつソース分散型台帳200Sにコミットされる。ロックトランザクション406のトランザクション入力は、ソース分散型台帳200Sにおける既存のトランザクション402の識別済みUTXOである。そのように、ロックトランザクション406は、既存のトランザクション402の識別済みUTXOを用いるため、出力はソース分散型台帳200Sにおいて用いられたTXOになる(そのため、もはや用いられ得ない)。しかしながら、ロックトランザクションの定義により、この出力は用いることが不可能である(すなわち、この出力は用いられ得ない)。実際には、ロックトランザクション406は、ソース分散型台帳200Sにおいて用いられないように既存のトランザクション402の識別済みUTXOをロックする。
さらに、ロックトランザクション406は、(例えば、ターゲットブロックにおける開始トランザクションの存在を検証するために開始トランザクション全体、ならびにマークルルートおよび分岐ハッシュを提供することによって)ターゲット分散型台帳200Tにおける開始トランザクション404を参照する。ロックトランザクション406から開始トランザクション404へのこの「マークル参照」を使用して、識別済みUTXOの値が複数回用いられないようにする。
方法400の第4の段階では、ロックトランザクション406がソース分散型台帳200Sにコミットされた後、終了トランザクション408が生成され、かつターゲット分散型台帳200Tにコミットされる。有効な終了トランザクション408は、開始トランザクション404によって作成されたUTXOを用いる。
有効であるように、終了トランザクション408は、(例えば、ソースブロックにおけるロックトランザクションの存在を検証するために使用されてよい、ロックトランザクション全体、ならびにマークルルートおよび分岐ハッシュを提供することによって)識別済みUTXOを用いたロックトランザクション406を参照しなければならない。ロックトランザクション406の出力が用いられ得ないため、ソース分散型台帳200Sにおけるロックトランザクション406の存在は、識別済みUTXOが、実際には、ソース分散型台帳200Sで消滅していることの保証をもたらす。
複数の終了トランザクション408はコミットできない。これは、終了トランザクション408が(このトランザクション入力によって)ロックトランザクション406によって参照される開始トランザクション404のUTXOを用いる場合にのみ有効であるからである。それ故に、終了トランザクション408によって用いられる出力がロックトランザクション406によって参照される開始トランザクション404の出力ではない場合、終了トランザクション408は無効であるため、ターゲット分散型台帳200Tにコミットされることが防止される。
有効な終了トランザクション408のトランザクション出力(単数または複数)(TXO(単数または複数))は、ターゲット分散型台帳200Tにおける1または複数の受信者への複数台帳のデジタル表現された経済価値振替の終了を表す。終了トランザクション408のTXO(単数または複数)は通常、受信者(単数または複数)によってターゲット分散型台帳200T内で用いられ得る。換言すれば、終了トランザクションがターゲット分散型台帳にコミットされると、終了トランザクションのTXO(複数可)は、ソース分散型台帳におけるいずれのトランザクションもさらに参照する必要はなく、ターゲット分散型台帳内で用いられてよい。
システムアーキテクチャ
複数台帳方式振替をサポートするために使用されてよい1つのシステムアーキテクチャは、ターゲット分散型台帳のフルノードでもあるソース分散型台帳のそれぞれのフルノードを有してよい。このような完全重複システムアーキテクチャは、複数台帳方式振替をサポートすることが考えられるが、それぞれのノードにおいてかなりの追加のリソースを必要とすると思われる。
複数台帳方式振替をサポートするが完全重複システムアーキテクチャより少ないリソースを必要とする例示のシステムアーキテクチャが本明細書に開示される。第1の例示のシステムアーキテクチャは対外支払検証(PV)ノードを分散型台帳ネットワークに埋め込む。第2の例示のシステムアーキテクチャは、共有フルノードのセットを利用するが、全てのノードが共有されるノードであるわけではない。
第1の例示のシステムアーキテクチャ:共同設置される「局所」フルノードおよび「対外」PVノード
図5Aに示される第1の例示のシステムアーキテクチャ500において、他の(すなわち対外の)共通台帳に対する支払検証(PV)ノードは、多重分散型台帳システムのそれぞれの分散型台帳ネットワークにおけるノードの全てまたは一部分に共同設置される。共同設置されたPVノードは複数台帳方式支払検証をサポートするために使用される。
システムを実装するために必要とされるリソースを低減するために、PVノードは非フルノードであってよい。例示の実装形態では、それぞれのPVノードは、簡略化支払検証(SPV)ノードとして実装されてよい。また、4つの共通台帳を有する多重分散型台帳システムが図5Aに示されているが、多重分散型台帳システムは任意の数の共通台帳を含んでよい。
図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がある。
しかしながら、共通台帳の分散型台帳ネットワークを単に通信可能に相互接続することは、台帳間トランザクションのサブミッションおよび検証が複数台帳方式振替をサポートすることも必要とされるため、不十分である。この理由で、それぞれの分散型台帳ネットワークにおけるノード102の少なくともいくつかは、これ自体の分散型台帳の「局所」フルノードスタック、および相互作用するものになる共通台帳の「対外」PVノードスタックを両方共実行するように構成されてよい。
分散型台帳のフルノードスタックは、分散型台帳ネットワークのフルノードにおけるソフトウェアルーチンまたはプログラムのセットを含む。ソフトウェアルーチンまたはプログラムのセットは、適用可能な場合、API(アプリケーションプログラムインターフェース)要求を分散型台帳トランザクションに変換することと、ユーザーキーを管理することと、トランザクションに署名することと、トランザクションがコミットされる時他のシステムに通知することと、トランザクションを分散型台帳にサブミットすることと、トランザクションを含んでいることの証明を提供することと、を含む、分散型台帳に関連するタスクおよび/または機能を実行する。分散型台帳のPVノードスタックは、分散型台帳ネットワークと通信するクライアントにおける低減したソフトウェアルーチンまたはプログラムのセットを含む。低減したソフトウェアルーチンまたはプログラムのセットは、トランザクションを含んでいることの証明を提供することと、トランザクションを分散型台帳にサブミットすることとを含むタスクおよび/または機能を実行する。
図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)も実行するように構成されている。
それぞれのPV−Aノードは、共通台帳Aのブロックヘッダーおよびシグネチャのチェーン(すなわち、ブロックヘッダー/シグネチャチェーン)を維持する。同様に、それぞれのPV−Bノードは共通台帳Bのブロックヘッダー/シグネチャチェーンを維持し、それぞれのPV−Cノードは共通台帳Cのブロックヘッダー/シグネチャチェーンを維持し、それぞれのPV−Dノードは共通台帳Dのブロックヘッダー/シグネチャチェーンを維持する。
図5Bは、本発明の一実施形態による、図5Aのシステムアーキテクチャ内の分散型台帳ネットワーク100Aにおけるノード102Aのためのコンピュータシステム510の例示の実装形態を示す。コンピュータシステム510は、例えば、1つまたは複数の中央処理装置(CPU)および1つまたは複数のグラフィック処理ユニット(GPU)を含む複数のプロセッサを使用して実装されてよい。
示されるように、コンピュータシステム510は、局所分散型台帳Aに対するフルノードスタックA 512−Aを含む。フルノードスタックA 512−Aは、局所分散型台帳Aの完全なコピーを含む。
さらに、コンピュータシステム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に対するブロックヘッダー/シグネチャチェーンを含む。
PVノード、とりわけ、SPVノードとして実装されるPVノードで維持されてよいブロックヘッダー/シグネチャチェーンの構造は、図5Cに示されている。図5Cに示されるように、ブロックヘッダー/シグネチャチェーン520は、関連の分散型台帳のブロックヘッダー522およびブロックシグネチャ524を含み、この場合、ブロックシグネチャは、署名されるブロックが有効であるとバリデータが承諾することを指示する関連の分散型台帳ネットワークのブロックバリデータによるシグネチャである。
ここで、図5Aとの関連で上述される第1の例示の多重分散型台帳システム500が、例えば、毎秒100,000のトランザクションという目標を実現するように構築されること、および、それぞれの共通台帳が毎秒333のトランザクションを個々に取り扱うことが可能であることを検討する。毎秒100,000のトランザクションを実現するために、図5Aの多重分散型台帳システム500は、100,000/333=300程度の共通台帳を有する必要がある。300の共通台帳がある場合、それぞれの参加ノードは、ほぼ300の他の分散型台帳に対するSPVノードを維持しなければならない(分散型台帳における参加ノードまたはバリデータは、ブロックの妥当性について投票することが可能とされるノードである。分散型台帳におけるバリデータの圧倒的多数(例えば、3分の2以上)は一般的に、ブロックがチェーンにコミットされるようにするためにブロックの妥当性について同意しなければならない)。
それぞれの分散型台帳がその台帳に対するSPVノードによって維持されるように毎秒約7キロバイトのデータを生じさせることになることが推定可能である。データは、その分散型台帳に対するブロックヘッダーおよびブロックシグネチャを含む。この、1共通台帳当たり毎秒7キロバイトの推定は、必要とされる投票の3分の2(2/3)の閾値で、それぞれの共通台帳に対してわずか約100のコンセンサス参加者を有すること、および、1シグネチャ当たり100バイトがあることを想定している。
これによって、約300の分散型台帳×7キロバイト/秒/台帳=それぞれの参加している「局所」フルノードに「対外」SPVノードを共同設置するための追加のコミットされた記憶域の2,100キロバイト/秒となる。この推定された追加の記憶域の要件は、対外SPVノードを共同設置しない記憶域の要件の約2倍である。
この追加の記憶域の要件に加えて、ブロックヘッダー/シグネチャチェーンにおけるブロックヘッダーに対するブロックハッシュのインデックスは、SPVノードが与えられてよい。インデックスは、台帳間検証を行うように図4に示されたマークルツリー参照に使用されてよい。
PVノードに対する追加の記憶域の要件は管理可能であるため、他の共通台帳全ての「対外」PVノードは、共通台帳の参加している「局所」ノードの一部または全てにおいて共同設置されてよい。さらに、それぞれのPVノードが与えられたインデックスを使用して、参加ノードは、該当するマークルルートを効率的に見出すことでトランザクション参照を容易に検証可能である。
第2の例示のシステムアーキテクチャ:共有ノードのセット
図6Aに示される第2の例示のシステムアーキテクチャ600において、ノードのセットは、多重分散型台帳システムの分散型台帳ネットワーク全てによって共有される。これらの共有ノードのそれぞれは、複数台帳方式振替を効率的にサポートするように多重分散型台帳システムの共通台帳全てに対するフルノードとして動作してよい。3つの共通台帳を有する多重分散型台帳システムが図6Aに示されているが、任意の数の共通台帳がシステムに含まれてよいことに留意されたい。
図6Aに示される例では、第1の分散型台帳Aは第1の分散型台帳ネットワーク100Aによって維持され、第2の分散型台帳Bは第2の分散型台帳ネットワーク100Bによって維持され、第3の分散型台帳Cは第3の分散型台帳ネットワーク100Cによって維持される。これらの分散型台帳ネットワーク(100A、100B、および100C)のそれぞれは、図1との関連で上述されるように、ノード102をこれらの間の相互接続104と共に含む。
本発明の一実施形態によると、フルノードの共有セット(100ABC)がある。共有セット100ABCのそれぞれのノードは、3つの分散型台帳ネットワーク(100A、100B、および100C)のそれぞれのフルノードとして動作可能である。そのように、共有セット100ABCのそれぞれのノードは、3つの分散型台帳(A、B、およびC)のそれぞれのコピーを含有する。3つの分散型台帳(A、B、C)が別個の分散型台帳のままであり、それぞれがトランザクションの別個の台帳を記録していることに留意されたい。
本発明の一実施形態によると、システムにおけるそれぞれの分散型台帳のブロックヘッダーに対するブロックハッシュのインデックスは、分散型台帳データから作成され、かつフルノードの共有セット(100ABC)のそれぞれのノードで提供されてよい。インデックスは、台帳間検証を行うように(ロックトランザクション406から開始トランザクション404まで、および終了トランザクション408からロックトランザクション406まで)図4に示されるマークルツリー参照に使用されてよい。
任意の参加ノードは、複数台帳トランザクションを検証するためにネットワークを通してフルノードの共有セット(100ABC)のノードに問合せを送ってよい。これは、共通台帳に提供されたフルノードが共通台帳のコンテンツについて偽っていないことを保証または認定するために中央エンティティまたは他の信頼されているエントリーでの信頼を含意する。
図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に対する完全なコピーを含む。
例示の複数台帳方式振替のフローチャート
図7は、本発明の一実施形態による、ソース分散型台帳上のデジタル表現された経済価値の所有者が、デジタル表現された経済価値をターゲット分散型台帳上のエンティティに振り替えるための方法700のフローチャートである。図示される特定の例では、振り替えられる値は100万米ドル(USD)である。
方法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のネットワークノードと、を含んでよい。
ノードスタックN_Aは、以下のデータおよび能力、つまり、L_Aを使用するそれぞれのエンティティの資産に対するUTXOのインデックス、これらのUTXOによるトランザクションを構築する能力、L_Aからのコミットされたトランザクションをリッスンする能力、対外分散型台帳(例えば、L_B)にコミットされる対外ノードスタック(例えば、N_B)にトランザクションをサブミットする能力、トランザクションがこれ自体でサブミットされた場合の、対外ノードスタック(例えば、N_B)からのコミットされたトランザクションをリッスンする能力、対外ノードスタック(例えば、N_B)によってサブミットされたトランザクションを承諾しかつ索引付けする能力、および、コミットされたトランザクションがそれ自体でサブミットされた場合の、L_Aから対外ノードスタック(例えば、N_B)へのコミットされたトランザクションを排除する能力を有してよい。
同様に、ノードスタックN_Bは、以下のデータおよび能力、つまり、L_Bを使用するそれぞれのエンティティの資産に対するUTXOのインデックス、これらのUTXOによるトランザクションを構築する能力、L_Bからのコミットされたトランザクションをリッスンする能力、対外分散型台帳(例えば、L_A)にコミットされる対外ノードスタック(例えば、N_A)にトランザクションをサブミットする能力、トランザクションがこれ自体でサブミットされた場合の、対外ノードスタック(例えば、N_A)からのコミットされたトランザクションをリッスンする能力、対外ノードスタック(例えば、N_A)によってサブミットされたトランザクションを承諾しかつ索引付けする能力、および、コミットされたトランザクションがそれ自体でサブミットされた場合の、L_Aから対外ノードスタック(例えば、N_A)へのコミットされたトランザクションを排除する能力を有してよい。
ステップ1に従って、ノードスタックN_Aのクライアントとして、資産所有者および振替ソースであるエンティティAは、ソース分散型台帳A(L_A)からターゲット分散型台帳B(L_B)上のエンティティBへの指定された値(この例では、100万USD)の複数台帳方式振替を開始する。フルノードスタックにおいて(例えば、ノードスタックN_Aにおいて)実施されるステップ1に関する疑似コードは、図9の行1〜2に提供される。
ステップ2に従って、ノードスタックN_Aは、L_AのUTXO U_1におけるエンティティAの資産の指定された値を識別する。フルノードスタックにおいて(例えば、ノードスタックN_Aにおいて)実施されるステップ2に関する疑似コードは、図9の行3〜4に提供される。
ステップ3に従って、N_Aは指定された値の開始トランザクションT_Iをビルドする。フルノードスタックにおいて(例えば、ノードスタックN_Aにおいて)実施されるステップ3に関する疑似コードは、図9の行5〜6に提供される。
ステップ4に従って、N_AはT_IをノードスタックN_Bにサブミットする。フルノードスタックにおいて(例えば、ノードスタックN_Aにおいて)実施されるステップ4に関する疑似コードは、図11における疑似コードルーチンを呼び出すように、図9の行11〜14に提供される。
ステップ5に従って、ノードスタックN_BはT_IをL_Bにサブミットする。フルノードスタックにおいて(例えば、ノードスタックN_Bにおいて)実施されるステップ5に関する疑似コードは、図12における疑似コードルーチンを呼び出すように、図11の行5〜6に提供される。
ステップ6に従って、L_BはT_Iをコミットし、かつT_IがコミットされるとN_Bに通知する。ステップ6は分散型台帳の従来のコードを使用して行われてよい。
T_IがL_Bにコミットされた後、ステップ7aに従って、SPVノードS_BはT_Iを含有するブロックについてのSPV情報(すなわち、ヘッダーおよびシグネチャ)を受信する。さらに、ステップ7bに従って、N_Bは、T_IがコミットされたことをN_Aに通知する。フルノードスタックにおいて(例えば、ノードスタックN_Bにおいて)実施されるステップ7aおよび7bに関する疑似コードは、図13および図14における疑似コードによって提供される。
ステップ8に従って、N_Aは、T_Iを参照しかつU_1をロックするロックトランザクションT_Lを構築する。フルノードスタックにおいて(例えば、ノードスタックN_Aにおいて)実施されるステップ8に関する疑似コードは、図10の行7〜12に提供される。
ステップ9に従って、N_AはT_LをL_Aにサブミットする。フルノードスタックにおいて(例えば、分散型台帳L_AのノードスタックN_Aにおいて)実施されるステップ9に関する疑似コードは、図12における疑似コードルーチンを呼び出すように、図10の行13〜14にある。
ステップ10に従って、L_Aは、(T_Lで参照される)T_IがL_Bによってコミットされたことを検証するためにS_Bでチェックする。分散型台帳(例えば、分散型台帳L_A)によって実施されるステップ10に関する疑似コードは、図12に提供される。トランザクションが対外分散型台帳でコミットされることを検証するための例示の手順は、図8との関連で後述される。
ステップ11に従って、検証が成功した後、L_AはT_Lをコミットし、かつT_LがコミットされるとN_Aに通知する。ステップ11は分散型台帳の従来のコードを使用して行われてよい。
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における疑似コードによって提供される。
ステップ13に従って、N_AはT_CをN_Bにサブミットする。フルノードスタックにおいて(例えば、ノードスタックN_Aにおいて)実施されるステップ13に関する疑似コードは、図10の行27〜30、および図11の疑似コードに提供される。
ステップ14に従って、N_BはT_CをL_Bにサブミットする。フルノードスタックにおいて(例えば、分散型台帳L_AのノードスタックN_Aにおいて)実施されるステップ14に関する疑似コードは、図12の疑似コードによって提供される。
ステップ15に従って、L_Bは、(T_Cで参照される)T_LがL_Aによってコミットされたことを検証するためにS_Aでチェックし、L_Bはまた、T_Cへの入力が(T_Lで参照される)T_Iの出力であることを検証するようにチェックする。分散型台帳(例えば、分散型台帳L_B)によって実施されるステップ10に関する疑似コードは、図12に提供される。トランザクションが対外分散型台帳でコミットされることを検証するための例示の手順は、図8との関連で後述される。
ステップ16に従って、検証が成功した後、L_BはT_Cをコミットし、かつT_CがコミットされるとN_Bに通知する。ステップ16は分散型台帳に対して従来のコードを使用して行われてよい。
ステップ17に従って、N_BはT_CがL_BによってコミットされたことをN_Aに通知する。フルノードスタックにおいて(例えば、ノードスタックN_Bにおいて)実施されるステップ17に関する疑似コードは、図14に提供される。
最後に、ステップ18に従って、N_BはエンティティBのT_Cの出力を索引付けする。フルノードスタックにおいて(例えば、ノードスタックN_Bおいて)実施されるステップ18に関する疑似コードは、図10の行33〜34に提供される。
上述される方法700は、図5Aに図示される第1のシステムアーキテクチャ500による使用にとりわけ適していることに留意されたい。これは、第1のシステムアーキテクチャ500が局所分散型台帳のフルノードと共に対外分散型台帳のSPVノードを共同設置することが理由である。
方法700は、図6に図示される第2のシステムアーキテクチャ600による使用のために容易に修正可能である。第2のシステムアーキテクチャ600は、局所分散型台帳のフルノードによる対外分散型台帳のフルノードを共同設置する。そのように、方法700のステップ7aおよび12aは必要ではない。さらに、L_Aは、T_Iがステップ10でコミットされたことを検証するためにN_Bでチェックしてよく、L_Bは、T_Cがステップ15でコミットされたことを検証するためにN_Aでチェックしてよい。
台帳間トランザクション検証
対外分散型台帳におけるトランザクション参照を検証するために、これらの他の分散型台帳に何がコミットされるのかに対する信頼できる検証機構を有することが必要である。別の分散型台帳におけるトランザクションを検証するためのこのような機構は、従来の分散型台帳技術によって提供されない。
対外分散型台帳におけるトランザクションを検証するための例示のプロセス800は、図8に示されている。プロセス800は、例えば、開始トランザクションがターゲット分散型台帳に存在することを検証するための図7のステップ10において、および、ロックトランザクションがソース分散型台帳に存在することを検証するための図7のステップ15において適用されてよい。
ステップ801に従って、検証されるトランザクションに対するトランザクション入力の参照データは、問合せ内で局所ノードから1つまたは複数の対外ノードにパスさせる。局所ノードは局所分散型台帳のノードであり、対外ノードは、トランザクションが検証される対外分散型台帳のノードである。
802)対外ノード(複数可)は、問合せするための正確なインデックスを見出すためにトランザクション入力において台帳識別子(例えば、チェーンid)を使用し、この正確なインデックスは台帳識別子と関連付けられている。インデックスへの入力は検証されているトランザクションを含有するブロックに対するブロックハッシュである。
803)対外ノード(複数可)は、検査するための正確なブロックを見出すためにトランザクション入力においてブロックハッシュを使用する。
804)対外ノード(複数可)は、(ステップ803で見出された)識別されたブロックからブロックヘッダーを抽出する。
805)対外ノード(複数可)は識別されたブロックからマークルルートハッシュを抽出する。
806)対外ノード(複数可)はトランザクション入力のトランザクションに対するトランザクションハッシュを算出する。
807)対外ノード(複数可)はトランザクションハッシュおよび提供されたマークル分岐ハッシュからマークルルートハッシュを算出する。
808)対外ノード(複数可)は、算出されたマークルルートハッシュを識別されたブロックにおけるマークルルートハッシュと比較する。
809)対外ノード(複数可)は、トランザクションが、ハッシュが一致する場合有効であり、ハッシュが一致しない場合無効であることを局所ノードに返す。
複数の対外ノードが上述した検証方法800で問い合わせられる場合、トランザクションは、対外ノードのうちの1つが、トランザクションが有効であると返す限り、有効にコミットされるとみなされ得ることに留意されたい。
また、上述される方法800が、図5Aに示される第1のシステムアーキテクチャ500または図6に示される第2のシステムアーキテクチャ600のどちらかで使用されてよいことに留意されたい。第1のシステムアーキテクチャ500について、対外ノードは、局所フルノードスタックと共に共同設置される対外SPVノードスタックに対応し得る。第2のシステムアーキテクチャ600について、対外ノードスタックは、局所フルノードスタックと共に共同設置される対外フルノードスタックであってよい。
図9〜図14は、本発明の一実施形態の例示の実装形態に対する詳細な「青写真」を提供する疑似コードを示す。疑似コードにおけるコメントは//が前に付けられている。
トランザクションを開始する
図9に示される疑似コード手順は、複数台帳トランザクションがノードスタックにサブミットされる時に行われる。トランザクションを構築するために、トランザクションされる資産に対応するUTXOが見出されなければならない。UTXOが見出だされると、開始トランザクションはそのUTXO外に構築されるものとする。この開始トランザクションは、トランザクションのソースおよびトランザクションのターゲットと共に、後の検索のために索引付けられるものとする。開始トランザクションはUTXOにおける資産の所有者によって署名されるものとする。さらにまた、ターゲットノードスタックが位置し、開始トランザクションはソースの知識と共にターゲットノードスタックに送られる。
コミットされたトランザクションを通知する
図10に示される疑似コード手順は、トランザクションがコミットされたことをノードスタックが通知される時に行われる。トランザクションが開始トランザクションであるかロックトランザクションであるかに応じて、2つの事例がある。
第1の事例は、コミットされるトランザクションが開始トランザクションである場合である。これが生じる時、図9に説明されるインデックスからロックする必要があるUTXOを検索できる。さらにまた、このUTXO外のロックトランザクションをビルドする。このトランザクションは、図9に説明されるインデックスを使用して検索もする、UTXOにおける資産の所有者によって署名される必要がある。最後に局所台帳にこのトランザクションをサブミットする。
第2の事例は、コミットされるトランザクションがロックトランザクションである場合である。これが生じる時、最初に、ロックトランザクションによって参照される開始トランザクションのターゲットを見出す。これは、図9に説明されるインデックスから利用可能である。ロックトランザクションを参照する終了トランザクションをビルドする。この終了トランザクションは、振り替えられる資産の所有者のシグネチャを必要とし、これは、図9に説明されるインデックスで検索できる。最後に、ターゲットに対するノードスタックを見出し、終了トランザクションは、ソースの知識と共に、ターゲットノードスタックに送られる。
ノードスタックが通知される全てのトランザクションについて、利用可能なUTXOプールは更新される必要がある。
対外トランザクションをコミットする
図11に示される疑似コード手順は、(開始または終了トランザクションが受信される時など)ノードスタックが対外ノードスタックからトランザクションを受信する時に行われる。トランザクションは、トランザクションが受信されるソースに索引付けされ、次いで、トランザクションは局所分散型台帳にサブミットされる。
トランザクションを台帳にサブミットする
図12に示される疑似コード手順は、分散型台帳がサブミットされたトランザクションを受信する時に行われる。図では省かれている(図示されていない)全てのトランザクションにわたって共通の検証を行うことが採用されるいくつかのステップがある。SPV参照を含有するこれらのトランザクション(ロックトランザクションおよび終了トランザクション)について、これらの入力にある特定の妥当性が与えられる。
入力が(ロックトランザクションおよび終了トランザクションの場合)SPV参照を含有することが見出される場合、SPVノード上の検証APIを呼び出すことによって、SPV参照が有効であることを検証する。さらに、(終了トランザクションの場合のように)入力がSPV参照によるトランザクションを含有するSPV参照を含有することを見出す場合、含有されるトランザクションのSPV参照トランザクションIDが、終了トランザクションが用いる開始トランザクションに一致するかどうかがチェックされる。全ての妥当性検査にパスする場合、トランザクションは台帳によってコミットされる準備ができている。
ブロックを台帳にコミットする
図13に示される疑似コード手順は、分散型台帳がトランザクションを含有するブロックをコミットする時に行われる。図には、分散型台帳がトランザクションをブロックにどのように追加するか、および台帳がブロック上のコンセンサスにどのように達するのかを決定するプロセスを、これらの主題が本開示の範囲を超えているため示していない。示される手順では、台帳は、そのブロックをある永続化された記憶域に記憶し、ブロックについてのSPV情報をSPVノードに送り、さらにまた、ブロックがコミットされたことを局所ノードスタックに通知する。
コミットされたトランザクションについてのメッセージを送る
図14の疑似コード手順は、局所ノードスタックがコミットされたトランザクションに関する通知をどのように配信するのかを示す。この手順は、開始トランザクションおよび終了トランザクションに対して行われる。
ブロックにおける全てのトランザクションについて、局所ノードスタックは、トランザクションが対外ソースを有したかどうかを判断するために(図11に定められる)対外インデックスを見る。トランザクションが対外ソースを有していた場合、局所ノードスタックは、対外ソースに対するノードスタックを見出し、かつその対外ノードスタックまでコミットされたトランザクションおよびコミットされたトランザクションについてのSPV情報を送る。局所ノードスタックは、(ソースが局所または対外であるかどうか)全てのコミットされたトランザクションについて通知される。
トランザクション構造
図15は、本発明の一実施形態による、複数台帳方式参照トランザクション入力を含み得る標準トランザクション1500のための一般構造を示す。図15における標準トランザクションはトランザクション入力のリスト、およびトランザクション出力のリストを含む。
この場合、2つのタイプのトランザクション入力がある。第1のタイプのトランザクション入力は、台帳内(すなわち、標準)トランザクション入力1502である。それぞれの台帳内トランザクション入力は、入力トランザクションを識別するバイト、および、入力トランザクションに対する出力オフセットを提供する整数を含む。
第2のタイプのトランザクション入力は、複数台帳方式参照トランザクション入力1504である。それぞれの複数台帳方式参照トランザクション入力は、対外台帳を識別するバイト、対外台帳内のブロックを識別するブロックハッシュのバイト、識別されたブロックにおけるトランザクションに対するマークル分岐ハッシュのリスト、識別されたブロック内の入力トランザクションのトランザクションバイト、および、所定のトランザクションバイト内で参照されている特定の出力に対するオフセットを提供する整数オフセットを含む。
それぞれのトランザクション出力1506は、出力されているデジタル財産を識別するバイト、および、トランザクション出力の符号化ロックであるバイトロックを含む。バイトロックは、一致する秘密キーからシグネチャを提供することによってアンロックされる。
図16〜図18は、本発明の一実施形態による、複数台帳方式振替を共に提供する3つのトランザクションのための構造を示す。これらの3つの構造は、図4に示される3トランザクション複数台帳方式振替400を実施するために使用されてよい。
図16は、本発明の一実施形態による、3トランザクション複数台帳方式振替の開始トランザクション1600のための特定の構造を示す。開始トランザクションは、トランザクション入力を含まず、単一のトランザクション出力1606を含む。
トランザクション出力1606は、振り替えられているデジタル財産を識別するバイト、およびバイトロックを含む。バイトロックは、この開始トランザクションを参照するロックトランザクションへの参照による終了トランザクションによってのみ(デジタル財産を用いるために)アンロックされてよい。
図17は、本発明の一実施形態による、3トランザクション複数台帳方式振替のロックトランザクション1700のための特定の構造を示す。ロックトランザクション1700は、トランザクション入力のリスト、およびトランザクション出力のリストを含む。
トランザクション入力は、1つまたは複数の台帳内トランザクション入力1702、および単一の複数台帳方式参照トランザクション入力1704を含む。
それぞれの台帳内トランザクション入力1702は、ソース台帳における入力トランザクションを識別するバイト、およびそのトランザクションに対する出力オフセットを提供する整数を含む。それぞれの入力トランザクションは、ソース台帳における既存のトランザクションに対応し、出力オフセットは、ロックトランザクション1700に入力される既存のトランザクションの特定の出力を指示する。
複数台帳方式参照トランザクション入力1704を使用して、ターゲット台帳における開始トランザクションを参照する。複数台帳方式参照トランザクション入力1704は、ターゲット台帳を識別するバイト、ターゲット台帳内のブロックを識別するブロックハッシュのバイト、識別されたブロックにおけるトランザクションに対するマークル分岐ハッシュのリスト、識別されたブロック内の開始トランザクションのトランザクションバイト、および、所定のトランザクションバイト内で参照される特定の出力に対するオフセットを提供する整数オフセットを含む。
ロックトランザクション1700は、いずれのトランザクション出力1706も必要としないため、ゼロ以上のトランザクション出力1706を有してよい。トランザクション出力1706がある場合、このトランザクション出力1706は、出力されているデジタル財産を識別するバイト、およびバイトロックを含む。トランザクション出力1706のデジタル財産は、(1つまたは複数の既存のトランザクションの出力(単数または複数)から)台帳内トランザクション入力1702が指し示すデジタル財産と、(開始トランザクションの指定された出力から)複数台帳方式参照トランザクション入力1704が指し示すデジタル財産との間の差に等しくなければならない。これらのデジタル財産の金額が等しい場合、トランザクション出力1706はない。
図18は、本発明の一実施形態による、3トランザクション複数台帳方式振替の終了トランザクション1800のための特定の構造を示す。終了トランザクション1800は、2つのトランザクション入力、および1つまたは複数のトランザクション出力を含む。
2つのトランザクション入力は、単一の台帳内トランザクション入力1802、および単一の複数台帳方式参照トランザクション入力1804を含む。
台帳内トランザクション入力1802は、ターゲット台帳における開始トランザクションを識別するトランザクションIDのバイト、およびそのトランザクションに対する出力オフセットを提供する整数を含む。出力オフセットは、終了トランザクション1800に入力されている開始トランザクションの特定の出力を指示する。台帳内トランザクション入力1802におけるこのトランザクションIDは、ロックトランザクションによって指し示された開始トランザクションのトランザクションIDに一致しなければならず、その他の場合、終了トランザクションは無効になる。
複数台帳方式参照トランザクション入力1804を使用して、ソース台帳におけるロックトランザクションを参照する。複数台帳方式参照トランザクション入力1804は、ソース台帳を識別するバイト、ソース台帳内のブロックを識別するブロックハッシュのバイト、識別されたブロックにおけるトランザクションに対するマークル分岐ハッシュのリスト、識別されたブロック内のロックトランザクションのトランザクションバイト、および、もしあれば、所定のトランザクションバイト内で参照されている特定の出力に対するオフセットを提供する整数オフセットを含む。
1つまたは複数のトランザクション出力1806があってよい。それぞれのトランザクション出力1806は、出力されているデジタル財産を識別するバイト、およびトランザクション出力に対する符号化されたロックであるバイトロックを含む。バイトロックは、一致する秘密キーからシグネチャを提供することによってアンロックされる。
スケーラビリティゲインを示すシステム性能計算
この節では、複数の分散型台帳(例えば、複数のブロックチェーン)を有するシステムに対するシステム性能の計算から明らかなようにスケーラビリティゲインについて説明する。
計算についての変数定義は下記になる。
R=1台帳につき1秒当たりの送金の数
X=1台帳につき1秒当たりの台帳内トランザクションの数
Y=1台帳につき1秒当たりの台帳間トランザクションの数
N=システムにおける共通台帳の数
計算に対する想定は下記になる。
1)Nの分散型台帳にわたるトランザクションの最悪の場合の分散は、台帳内トランザクション対台帳間トランザクションの比率が1対N−1になるように想定される
2)ブロックはサイズが1メガバイト(1MB)である
3)分散型台帳のブロックの処理速度は毎秒1ブロックである
4)台帳内トランザクションは約1000バイト=1キロバイトを扱う
5)トランザクション参照の最悪の場合のサイズは、log(3000)*32バイト+32バイト=416バイトである
6)デジタル表現された経済価値を振り替えるための台帳間トランザクションは、それぞれ、5つのトランザクションを構成し、かつ、以下のステップにより合計2814バイトを扱う。
a)サブスクライバが送るトランザクションは約333バイトを扱う
b)開始トランザクションは約200バイトを扱う
c)ロックトランザクションは、開始サイズ+416バイト+100バイト=716バイトを扱う
d)終了トランザクションは、ロックサイズ+416バイト+100バイト=1232バイトを扱う
e=サブスクライバが受信するトランザクションは約333バイトを扱う
上記の定義および想定に基づいて、以下の計算がなされる。
台帳内トランザクション対台帳間トランザクションの比率が1/(N−1)であることによって、X/Y=1/(N−1)
1MBのブロックサイズ、および2つのタイプのトランザクションのサイズが1000バイトおよび2814バイトであることによって、10=1000X+2814Y
1台帳につき1秒当たりの送金は、1台帳につき1秒当たりの台帳内トランザクションと、1台帳につき1秒当たりの台帳間トランザクションとの合計であるため、R=X+Y
Nの関数としてRの値を求めると、R=10N/(2814N−1814)
システムの集計で1秒当たりの送金(RPS)N*R=10を目標にする場合、以下の二次方程式が得られる。
−281.4N+181.4=0
上記の式のルートの値を求め、かつ実践的な理由から1以上でなければならない結果を考慮すると、共通台帳の数N=281になる。この結果は、上記を想定すると、281の共通台帳は、それぞれが、システムの10RPSの集計トランザクションスループットを有するように毎秒1MBをコミットするように実行されなければならないことを意味する。
システムにおける共通台帳の数Nの関数としてRPSでの1共通台帳当たりの計算されたトランザクションスループットは、本発明の一実施形態に従って、図19のグラフによって示される。RPSでの総トランザクションスループットは、共通台帳の数Nで乗算した1台帳当たりのRPSに等しい。グラフに見られるように、N=281で、1台帳当たり(それぞれの台帳がブロックチェーンである時は1共通チェーン当たり)のRPSは、システムスループットが約10であるように356である。
共通台帳(それぞれの台帳がブロックチェーンである時は共通チェーン)の数の関数としてのRPSでのシステムに対する計算した集計トランザクションスループットは、本発明の一実施形態に従って、図20のグラフによって示される。示されるように、集計トランザクションスループットは、システムにおける共通台帳の数に比例して変化する。
上に提示された計算は、システムにおけるトランザクションの最悪の場合の分散およびトランザクション参照の最悪の場合のサイズに基づくことに留意されたい。少なくとも多くの場合において、システムにおけるさまざまなコンセンサスネットワークへのノードの割り当てが、台帳内トランザクション対台帳間トランザクションの比率X/Yが1以上になるように大きく増加させるようになされ得る可能性は非常に高い。換言すれば、システムは、台帳間トランザクションより台帳内トランザクションの方が多いように構成可能である可能性が高い。対照的に、上述した計算における最悪の場合の想定は、台帳内トランザクションより台帳間トランザクションの方が多いことである。それ故に、実際のシステム性能は、潜在的に、上記の計算におけるシステム性能よりはるかに良好である。
コンピュータシステム
図21は、例えば、分散型台帳ネットワークの完全または部分的ノードを実装するために使用可能であるコンピュータシステム2100の構成要素を高水準で示す。コンピュータシステムは、図に示されるより少ないまたは多い構成要素で実装されてよい。例えば、コンピュータシステムは、(グラフィックプロセッサを含む)1つまたは複数のプロセッサ2101と、このさまざまな構成要素を結合する1つまたは複数のバス2103とを含んでよい。コンピュータシステムはまた、1つまたは複数のユーザ入力デバイス2102(例えば、キーボード、マウス)と、1つまたは複数のデータ記憶デバイス2106(例えば、ハードドライブ、光ディスク、ソリッドステートメモリディスク)と、1つまたは複数の表示モニター2104(例えば、液晶表示器、フラットパネルモニター)と、1つまたは複数のコンピュータネットワークインターフェース2105(例えば、ネットワークアダプタ、モデム)と、メインメモリ2108(すなわち、ランダムアクセスメモリ)とを含んでよい。示されるように、コンピュータネットワークインターフェース2105は、この場合、分散型台帳ネットワークであってよいコンピュータネットワーク2109に結合されてよい。
コンピュータシステムは、プロセッサ2101による実行のためにメインメモリ2108に非一時的に記憶されるコンピュータ可読コードまたは命令を含む1つまたは複数のソフトウェアモジュールでプログラミングされるような特定のマシンである。製品は、プロセッサ2101によって実行される時、コンピュータシステムを、1つまたは複数のソフトウェアモジュールの機能を実行するように動作可能にする命令を含むコンピュータ可読記憶媒体として具現化されてよい。
結論
本開示の解決策は、複数の分散型台帳および複数台帳方式振替を使用して、高度にスケーラブルなトランザクションスループットを実現する。ソースブロックチェーンからターゲットブロックチェーンに値を効果的に振り替える一方、値の二重使用を防止するように複数台帳方式振替を書き込むための方法および命令コードが開示される。高度にスケーラブルなトランザクションスループットを実現するために複数の分散型台帳間の複数台帳方式振替を利用するシステムアーキテクチャも開示される。分散型台帳間の複数台帳方式振替を実施するように構成されるコンピュータ装置も開示される。
本開示では、本発明の実施形態を十分に理解してもらうために、システム、構成要素、および方法の例などの多数の具体的な詳細が提供される。しかしながら、本発明が具体的な詳細の1つまたは複数がなくても実践可能であることを、当業者は認識するであろう。他の例では、本発明の態様を不明瞭にすることを回避するために、周知の詳細は示されないし説明もされない。
本発明の具体的な実施形態が提供されているが、これらの実施形態が例示のためのものであり限定するものではないことは、理解されたい。多くの追加の実施形態は、本開示を読む当業者には明らかとなるであろう。

Claims (73)

  1. ターゲット分散型台帳のデジタル表現された経済価値を、前記デジタル表現された経済価値がソース分散型台帳で生じかつエンティティによって所有される場合に用いる方法であって、
    未使用であり、かつ前記エンティティによって所有されるトランザクション出力を有する前記ソース分散型台帳において既存のトランザクションを判断することと、
    前記ターゲット分散型台帳にコミットするための開始トランザクションを構築しかつサブミットすることであって、前記開始トランザクションはトランザクション出力を有する、ことと、
    前記ソース分散型台帳にコミットするためのロックトランザクションを構築しかつサブミットすることであって、前記ロックトランザクションは、前記ソース分散型台帳における前記既存のトランザクションの前記トランザクション出力を用いかつロックし、前記ターゲット分散型台帳における前記開始トランザクションを参照する、ことと、
    前記ターゲット分散型台帳にコミットするための終了トランザクションを構築しかつサブミットすることであって、前記終了トランザクションは、前記ターゲット分散型台帳における前記開始トランザクションの前記トランザクション出力を用い、かつ、前記ソース分散型台帳における前記ロックトランザクションを参照する、ことと、を含む、
    方法。
  2. 前記開始トランザクションの前記トランザクション出力は、前記終了トランザクションが前記ロックトランザクションを参照する時、および前記開始トランザクションの前記トランザクション出力の値が前記既存のトランザクションの前記トランザクション出力の値に一致する時にのみ、前記終了トランザクションによって用いることが可能であることを特徴とする、請求項1に記載の方法。
  3. 前記ロックトランザクションは前記開始トランザクションを参照するためにマークルツリー参照を使用することを特徴とする、請求項2に記載の方法。
  4. 前記終了トランザクションは前記ロックトランザクションを参照するためにマークルツリー参照を使用することを特徴とする、請求項3に記載の方法。
  5. 前記方法は、前記ソース分散型台帳のノードスタックによって行われることを特徴とする、請求項1に記載の方法。
  6. 前記開始トランザクションおよび前記終了トランザクションは、前記ターゲット分散型台帳のノードスタックにサブミットされ、前記ターゲット分散型台帳の前記ノードスタックは、前記開始トランザクションおよび前記終了トランザクションを前記ターゲット分散型台帳にさらにサブミットすることを特徴とする、請求項5に記載の方法。
  7. 前記方法は前記ターゲット分散型台帳のノードスタックによって行われることを特徴とする、請求項1に記載の方法。
  8. 前記ロックトランザクションは前記ターゲット分散型台帳のノードスタックにサブミットされ、前記ソース分散型台帳の前記ノードスタックは前記ロックトランザクションを前記ソース分散型台帳にさらにサブミットすることを特徴とする、請求項7に記載の方法。
  9. 前記方法は、それぞれが複数のノードおよびこれらの間の通信接続を有する複数の分散型台帳ネットワークと、前記複数の分散型台帳ネットワーク間のインターネットワーク接続と、を含むシステムにおいて実行され、
    局所分散型台帳を維持する分散型台帳ネットワークは、前記システムにおける他の分散型台帳に対する複数の対外支払い検証ノードを含むことを特徴とする、請求項1に記載の方法。
  10. 前記方法は、システムの中で行われ、それぞれが複数のノードおよびこれらの間のインターネットワーク接続を有する複数の分散型台帳ネットワークと、前記複数の分散型台帳ネットワークによって共有されるノードのセットであって、前記セットにおけるノードは、いくつかあるサービスの中で特に、トランザクションの台帳間検証を提供することを特徴とする、請求項1に記載の方法。
  11. プロセッサによって実行される時、
    未使用であり、かつエンティティによって所有されるトランザクション出力を有するソース分散型台帳において既存のトランザクションを判断するステップと、
    ターゲット分散型台帳にコミットするための開始トランザクションを構築しかつサブミットするステップであって、前記開始トランザクションはトランザクション出力を有する、ステップと、
    前記ソース分散型台帳にコミットするためのロックトランザクションを構築しかつサブミットするステップであって、前記ロックトランザクションは、前記ソース分散型台帳における前記既存のトランザクションの前記トランザクション出力を用いかつロックし、前記ターゲット分散型台帳における前記開始トランザクションを参照する、ステップと、
    前記ターゲット分散型台帳にコミットするための終了トランザクションを構築しかつサブミットするステップであって、前記終了トランザクションは、前記ターゲット分散型台帳における前記開始トランザクションの前記トランザクション出力を用い、かつ、前記ソース分散型台帳における前記ロックトランザクションを参照する、ステップと、を行う、記憶された命令を含む、
    非一時的な有形コンピュータ可読媒体。
  12. 前記開始トランザクションの前記トランザクション出力は、前記終了トランザクションが前記ロックトランザクションを参照する時、および前記開始トランザクションの前記トランザクション出力の値が前記既存のトランザクションの前記トランザクション出力の値に一致する時にのみ、前記終了トランザクションによって用いることが可能であることを特徴とする、請求項11に記載のコンピュータ可読媒体。
  13. 前記ロックトランザクションは前記開始トランザクションを参照するためにマークルツリー参照を使用することを特徴とする、請求項12に記載のコンピュータ可読媒体。
  14. 前記終了トランザクションは前記ロックトランザクションを参照するためにマークルツリー参照を使用することを特徴とする、請求項13に記載のコンピュータ可読媒体。
  15. 前記命令は前記ソース分散型台帳のノードスタックによって行われることを特徴とする、請求項11に記載のコンピュータ可読媒体。
  16. 前記命令は前記ターゲット分散型台帳のノードスタックによって行われることを特徴とする、請求項11に記載のコンピュータ可読媒体。
  17. ソースブロックチェーンにおける既存のトランザクションの未使用のトランザクション出力におけるデジタル表現された通貨額を、ターゲットブロックチェーンにおいて前記デジタル表現された通貨額を用いる1つまたは複数のトランザクション出力に振り替える方法であって、
    前記ターゲットブロックチェーンにコミットするための開始トランザクションを構築しかつサブミットすることであって、前記開始トランザクションは前記デジタル表現された通貨額を含む前記未使用のトランザクション出力を有することと、
    前記ソースブロックチェーンにコミットするためのロックトランザクションを構築しかつサブミットすることであって、前記ロックトランザクションは、前記ソースブロックチェーンの前記既存のトランザクションの前記トランザクション出力を用いかつロックし、前記ターゲットブロックチェーンの前記開始トランザクションを参照する、ことと、
    前記ターゲットブロックチェーンにコミットするための終了トランザクションを構築しかつサブミットすることであって、前記終了トランザクションは、前記ソースブロックチェーンにおける前記ロックトランザクションを参照し、前記終了トランザクションは、前記ターゲットブロックチェーンにおける前記デジタル表現された通貨額を用いる前記1つまたは複数のトランザクション出力を含むことと、を含む、
    方法。
  18. 前記開始トランザクションの前記トランザクション出力は、前記終了トランザクションが前記ロックトランザクションを参照する時、および前記開始トランザクションの前記トランザクション出力の値が前記既存のトランザクションの前記トランザクション出力の値に一致する時にのみ、前記終了トランザクションによって用いることが可能であることを特徴とする、請求項17に記載の方法。
  19. 前記ロックトランザクションは前記開始トランザクションを参照するためにマークルツリー参照を使用することを特徴とする、請求項18に記載の方法。
  20. 前記終了トランザクションは前記ロックトランザクションを参照するためにマークルツリー参照を使用することを特徴とする、請求項19に記載の方法。
  21. 前記分散型台帳はブロックチェーンを含むことを特徴とする、請求項1に記載の方法。
  22. 前記分散型台帳は有向非巡回グラフを利用することを特徴とする、請求項1に記載の方法。
  23. 前記分散型台帳はブロックチェーンを含むことを特徴とする、請求項11に記載のコンピュータ可読媒体。
  24. 前記分散型台帳は有向非巡回グラフを利用することを特徴とする、請求項11に記載のコンピュータ可読媒体。
  25. 高度にスケーラブルなトランザクションスループットに対する複数の分散型台帳間の複数台帳方式振替によるシステムであって、
    それぞれが、局所分散型台帳を維持し、かつ局所ノードおよびこれらの間の通信接続を含む、複数の分散型台帳ネットワークと、
    前記複数の分散型台帳ネットワーク間のインターネットワーク接続と、
    それぞれの前記分散型台帳ネットワークの前記局所ノードと共同設置される対外支払検証ノードであって、前記システムの他の分散型台帳ネットワークにおけるトランザクションの台帳間検証のために複数台帳方式振替で使用される、対外支払検証ノードと、を含む、
    システム。
  26. それぞれの前記対外支払検証ノードにおいて、対外分散型台帳に対するブロックヘッダーおよびブロックシグネチャを含むブロックヘッダー/シグネチャチェーンをさらに含む、請求項25に記載のシステム。
  27. それぞれの前記支払検証ノードにおいて、前記ブロックヘッダー/シグネチャチェーンにおける前記ブロックヘッダーへのブロックハッシュのインデックスをさらに含む、請求項25に記載のシステム。
  28. ソース分散型台帳における既存のトランザクションは、デジタル表現された経済価値がターゲット分散型台帳に振り替えられるトランザクション出力を含有することを特徴とする、請求項25に記載のシステム。
  29. 台帳間検証は前記ソース分散型台帳におけるロックトランザクションの存在を検証することを含み、前記ロックトランザクションは前記既存のトランザクションの前記トランザクション出力を用いることを特徴とする、請求項28に記載のシステム。
  30. 前記ソース分散型台帳における前記ロックトランザクションの存在の検証は、前記ターゲット分散型台帳における終了トランザクションが前記ターゲット分散型台帳における開始トランザクションのトランザクション出力を用いるために必要であることを特徴とする、請求項29に記載のシステム。
  31. 前記局所ノードおよび前記対外支払検証ノードの前記共同設置は、前記局所分散型台帳の局所ノードスタック、および前記システムにおける前記他の分散型台帳の対外支払検証ノードスタックを含む1つまたは複数のプロセッサを有するコンピュータ装置によって実施されることを特徴とする、請求項25に記載のシステム。
  32. 高度にスケーラブルなトランザクションスループットに対する複数の分散型台帳間の複数台帳方式振替によるシステムであって、
    それぞれが、局所分散型台帳を維持し、かつ局所ノードおよびこれらの間の通信接続を含む、複数の分散型台帳ネットワークと、
    共有ノードのセットであって、それぞれの前記共有ノードは、前記複数の分散型台帳ネットワークの少なくとも2つの分散型台帳ネットワークに対する局所ノードを含む、
    システム。
  33. それぞれの前記共有ノードにおいて、前記複数の分散型台帳のそれぞれに対するブロックヘッダーへのブロックハッシュのインデックスをさらに含む、請求項32に記載のシステム。
  34. それぞれの前記共有ノードは、前記少なくとも2つの分散型台帳ネットワークの局所ノードスタックを含むコンピュータ装置を含むことを特徴とする、請求項32に記載のシステム。
  35. それぞれの前記共有ノードは、前記複数の分散型台帳ネットワークの全てに対する局所ノードを含むことを特徴とする、請求項32に記載のシステム。
  36. それぞれの前記共有ノードは、前記複数の分散型台帳ネットワークの全ての局所ノードスタックを含むコンピュータ装置を含むことを特徴とする、請求項35に記載のシステム。
  37. ソース分散型台帳における既存のトランザクションは、デジタル表現された経済価値がターゲット分散型台帳に振り替えられるトランザクション出力を含有することを特徴とする、請求項32に記載のシステム。
  38. ロックトランザクションは前記既存のトランザクションの前記トランザクション出力を用い、前記ソース分散型台帳における前記ロックトランザクションの存在の検証は、前記ターゲット分散型台帳における終了トランザクションが前記ターゲット分散型台帳における開始トランザクションのトランザクション出力を用いるために必要であることを特徴とする、請求項37に記載のシステム。
  39. 高度にスケーラブルなトランザクションスループットに対する複数の分散型台帳間の複数台帳方式振替によるシステムであって、
    それぞれが、コンピュータ可読コードおよびデータを保持するためのメモリ、および前記コンピュータ可読コードを実行することで前記データを修正するための1つまたは複数のプロセッサを含む、コンピュータ装置のセットと、
    それぞれの前記コンピュータ装置と複数の分散型台帳ネットワークとの間の通信接続と、
    それぞれの前記コンピュータ装置における前記複数の分散型台帳ネットワークの局所ノードスタックに対するコンピュータ可読コードと、を含む、
    システム。
  40. それぞれの前記コンピュータ装置において、前記複数の分散型台帳のそれぞれに対するブロックヘッダーへのブロックハッシュのインデックスをさらに含む、請求項39に記載のシステム。
  41. ソース分散型台帳における既存のトランザクションは、デジタル表現された経済価値がターゲット分散型台帳に振り替えられるトランザクション出力を含有することを特徴とする、請求項39に記載のシステム。
  42. ロックトランザクションは前記既存のトランザクションの前記トランザクション出力を用い、前記ソース分散型台帳における前記ロックトランザクションの存在の検証は、前記ターゲット分散型台帳における終了トランザクションが前記ターゲット分散型台帳における開始トランザクションのトランザクション出力を用いるために必要であることを特徴とする、請求項41に記載のシステム。
  43. 前記分散型台帳はブロックチェーンを含むことを特徴とする、請求項39に記載のシステム。
  44. 前記分散型台帳は有向非巡回グラフを利用することを特徴とする、請求項39に記載のシステム。
  45. 前記分散型台帳はブロックチェーンを含むことを特徴とする、請求項25に記載のシステム。
  46. 前記分散型台帳は有向非巡回グラフを利用することを特徴とする、請求項25に記載のシステム。
  47. 前記分散型台帳はブロックチェーンを含むことを特徴とする、請求項32に記載のシステム。
  48. 前記分散型台帳は有向非巡回グラフを利用することを特徴とする、請求項32に記載のシステム。
  49. 複数の分散型台帳間の複数台帳方式振替のためのコンピュータ装置であって、
    コンピュータ可読コードおよびデータを保持するためのメモリと、
    前記コンピュータ可読コードを実行することで前記データを修正するための1つまたは複数のプロセッサと、
    前記複数の分散型台帳のターゲット分散型台帳に対する局所ノードスタックのためのコンピュータ可読コードと、
    前記複数の分散型台帳のソース分散型台帳に対する対外支払検証ノードスタックのためのコンピュータ可読コードと、を含み、
    前記局所ノードスタックは、前記ターゲット分散型台帳と前記ソース分散型台帳との間のデジタル表現された経済価値の複数台帳方式振替中に前記ソース分散型台帳におけるトランザクションを検証するために前記対外支払検証ノードスタックを使用するように構成されることを特徴とする、
    コンピュータ装置。
  50. 前記対外支払検証ノードスタックにおいて、前記ソース分散型台帳に対するブロックヘッダーおよびブロックシグネチャを含むブロックヘッダー/シグネチャチェーンをさらに含む、請求項49に記載のコンピュータ装置。
  51. 前記対外支払検証ノードスタックにおいて、前記ブロックヘッダー/シグネチャチェーンにおける前記ブロックヘッダーに対するブロックハッシュのインデックスをさらに含む、請求項50に記載のコンピュータ装置。
  52. 前記ソース分散型台帳における既存のトランザクションは、複数台帳方式振替のためのデジタル表現された経済価値を有するトランザクション出力を含有することを特徴とする、請求項49に記載のコンピュータ装置。
  53. 前記局所ノードスタックは、前記デジタル表現された経済価値が、前記ソース分散型台帳においてさらに用いられ得ないように前記既存のトランザクションの前記トランザクション出力の前記デジタル表現された経済価値を用いかつロックするロックトランザクションを構築するように構成されることを特徴とする、請求項52に記載のコンピュータ装置。
  54. 前記ロックトランザクションは、少なくとも1つの台帳内トランザクション入力、1つの複数台帳方式参照トランザクション入力、およびゼロ以上のトランザクション出力を含むことを特徴とする、請求項53に記載のコンピュータ装置。
  55. 前記局所ノードスタックは、前記ターゲット分散型台帳における開始トランザクションのトランザクション出力を用いる終了トランザクションを構築する前に、前記ソース分散型台帳における前記ロックトランザクションの存在を検証し、かつ前記開始トランザクションの前記トランザクション出力の値を、前記ロックトランザクションによって用いられる値に対して一致させることが必要とされることを特徴とする、請求項53に記載のコンピュータ装置。
  56. 前記開始トランザクションは、トランザクション入力を含まず、1つのトランザクション出力を含むことを特徴とする、請求項55に記載のコンピュータ装置。
  57. 前記終了トランザクションは、1つの台帳内トランザクション入力、1つの複数台帳方式参照トランザクション入力、および1つまたは複数のトランザクション出力を含むことを特徴とする、請求項55に記載のコンピュータ装置。
  58. 複数の分散型台帳間の複数台帳方式振替のためのコンピュータ装置であって、
    コンピュータ可読コードおよびデータを保持するためのメモリと、
    前記コンピュータ可読コードを実行することで前記データを修正するための1つまたは複数のプロセッサと、
    前記複数の分散型台帳のノードスタックのためのコンピュータ可読コードと、を含み、
    それぞれの前記ノードスタックは、ソース分散型台帳からターゲット分散型台帳へのデジタル表現された経済価値の複数台帳方式振替を行うように構成されることを特徴とする、
    コンピュータ装置。
  59. 前記複数の分散型台帳のそれぞれに対するブロックヘッダーへのブロックハッシュのインデックスをさらに含む、請求項58に記載のコンピュータ装置。
  60. 前記ソース分散型台帳における既存のトランザクションは、デジタル表現された経済価値が前記ターゲット分散型台帳に振り替えられるトランザクション出力を含有することを特徴とする、請求項58に記載のコンピュータ装置。
  61. ロックトランザクションは、前記既存のトランザクションの前記トランザクション出力を用いかつロックすることを特徴とする、請求項60に記載のコンピュータ装置。
  62. 前記ロックトランザクションは、少なくとも1つの台帳内トランザクション入力、1つの複数台帳方式参照トランザクション入力、およびゼロ以上のトランザクション出力を含むことを特徴とする、請求項61に記載のコンピュータ装置。
  63. 前記ソース分散型台帳における前記ロックトランザクションの存在の検証は、前記ターゲット分散型台帳における終了トランザクションが前記ターゲット分散型台帳における開始トランザクションのトランザクション出力を用いるために必要であることを特徴とする、請求項61に記載のコンピュータ装置。
  64. 前記開始トランザクションは、トランザクション入力を含まず、1つのトランザクション出力を含むことを特徴とする、請求項63に記載のコンピュータ装置。
  65. 前記終了トランザクションは、1つの台帳内トランザクション入力、1つの複数台帳方式参照トランザクション入力、および1つまたは複数のトランザクション出力を含むことを特徴とする、請求項63に記載のコンピュータ装置。
  66. 複数の分散型台帳間の複数台帳方式振替のための装置であって、
    未使用であり、かつエンティティによって所有されるトランザクション出力を有するソース分散型台帳において既存のトランザクションを判断するための手段と、
    ターゲット分散型台帳にコミットするための開始トランザクションを構築しかつサブミットするための手段であって、前記開始トランザクションはトランザクション出力を有する、手段と、
    前記ソース分散型台帳にコミットするためのロックトランザクションを構築しかつサブミットするための手段であって、前記ロックトランザクションは、前記ソース分散型台帳における前記既存のトランザクションの前記トランザクション出力を用いかつロックし、前記ターゲット分散型台帳における前記開始トランザクションを参照する、手段と、
    前記ターゲット分散型台帳にコミットするための終了トランザクションを構築しかつサブミットするための手段であって、前記終了トランザクションは、前記ターゲット分散型台帳における前記開始トランザクションの前記トランザクション出力を用い、かつ、前記ソース分散型台帳における前記ロックトランザクションを参照する手段を含む、
    装置。
  67. 前記開始トランザクションの前記トランザクション出力は、前記終了トランザクションが前記ロックトランザクションを参照する時、および前記開始トランザクションの前記トランザクション出力の値が前記既存のトランザクションの前記トランザクション出力の値に一致する時にのみ、前記終了トランザクションによって用いることが可能であることを特徴とする、請求項66に記載の装置。
  68. 前記分散型台帳はブロックチェーンを含むことを特徴とする、請求項66に記載の装置。
  69. 前記分散型台帳は有向非巡回グラフを利用することを特徴とする、請求項66に記載の装置。
  70. 前記分散型台帳はブロックチェーンを含むことを特徴とする、請求項49に記載のコンピュータ装置。
  71. 前記分散型台帳は有向非巡回グラフを利用することを特徴とする、請求項49に記載のコンピュータ装置。
  72. 前記分散型台帳はブロックチェーンを含むことを特徴とする、請求項58に記載のコンピュータ装置。
  73. 前記分散型台帳は有向非巡回グラフを利用することを特徴とする、請求項58に記載のコンピュータ装置。
JP2020533691A 2017-12-19 2018-01-16 分散型台帳間の複数台帳方式振替のための方法および装置、ならびに複数台帳方式振替を使用するシステム Active JP7307910B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023101855A JP2023134492A (ja) 2017-12-19 2023-06-21 分散型台帳間の複数台帳方式振替のための方法および装置、ならびに複数台帳方式振替を使用するシステム

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201762607453P 2017-12-19 2017-12-19
US62/607,453 2017-12-19
US15/866,266 US11461777B2 (en) 2017-12-19 2018-01-09 Cross-ledger transfers between distributed ledgers
US15/866,290 2018-01-09
US15/866,280 US20190188697A1 (en) 2017-12-19 2018-01-09 Systems of multiple distributed ledgers using cross-ledger transfers for highly-scalable transaction throughput
US15/866,280 2018-01-09
US15/866,290 US20190188698A1 (en) 2017-12-19 2018-01-09 Computer apparatus for cross-ledger transfers between distributed ledgers
US15/866,266 2018-01-09
PCT/US2018/013861 WO2019125506A1 (en) 2017-12-19 2018-01-16 Methods and apparatus for cross-ledger transfers between distributed ledgers and systems using cross-ledger transfers

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023101855A Division JP2023134492A (ja) 2017-12-19 2023-06-21 分散型台帳間の複数台帳方式振替のための方法および装置、ならびに複数台帳方式振替を使用するシステム

Publications (2)

Publication Number Publication Date
JP2021508111A true JP2021508111A (ja) 2021-02-25
JP7307910B2 JP7307910B2 (ja) 2023-07-13

Family

ID=66814603

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020533691A Active JP7307910B2 (ja) 2017-12-19 2018-01-16 分散型台帳間の複数台帳方式振替のための方法および装置、ならびに複数台帳方式振替を使用するシステム
JP2023101855A Pending JP2023134492A (ja) 2017-12-19 2023-06-21 分散型台帳間の複数台帳方式振替のための方法および装置、ならびに複数台帳方式振替を使用するシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023101855A Pending JP2023134492A (ja) 2017-12-19 2023-06-21 分散型台帳間の複数台帳方式振替のための方法および装置、ならびに複数台帳方式振替を使用するシステム

Country Status (7)

Country Link
US (3) US20190188698A1 (ja)
EP (1) EP3729779A4 (ja)
JP (2) JP7307910B2 (ja)
KR (1) KR102548540B1 (ja)
CN (1) CN111615817B (ja)
SG (1) SG11202005655UA (ja)
WO (1) WO2019125506A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023127530A1 (ja) * 2021-12-28 2023-07-06 京セラ株式会社 システム、ノード、及びプログラム

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10419225B2 (en) 2017-01-30 2019-09-17 Factom, Inc. Validating documents via blockchain
US10810546B2 (en) * 2017-10-02 2020-10-20 R3 Ltd. Settling obligations via netting transactions
US10630769B2 (en) * 2017-12-26 2020-04-21 Akamai Technologies, Inc. Distributed system of record transaction receipt handling in an overlay network
WO2019144948A1 (en) * 2018-01-27 2019-08-01 Redrock Biometrics Inc Decentralized biometric authentication platform
US11438139B2 (en) * 2018-02-07 2022-09-06 Raouf Boutaba Blockchain based secure naming and update verification
US20210004906A1 (en) * 2018-02-08 2021-01-07 2Bc Innovations, Llc Modifying a portfolio of blockchain-encoded rived longevity-contingent instruments
CN112767158A (zh) * 2018-02-27 2021-05-07 创新先进技术有限公司 基于区块链的交易执行方法及装置、电子设备
US10848395B2 (en) * 2018-04-10 2020-11-24 Zscaler, Inc. State management across distributed services using cryptographically bound journals
US11030217B2 (en) * 2018-05-01 2021-06-08 International Business Machines Corporation Blockchain implementing cross-chain transactions
US11194837B2 (en) * 2018-05-01 2021-12-07 International Business Machines Corporation Blockchain implementing cross-chain transactions
US11669914B2 (en) 2018-05-06 2023-06-06 Strong Force TX Portfolio 2018, LLC Adaptive intelligence and shared infrastructure lending transaction enablement platform responsive to crowd sourced information
US11544782B2 (en) 2018-05-06 2023-01-03 Strong Force TX Portfolio 2018, LLC System and method of a smart contract and distributed ledger platform with blockchain custody service
CN112534452A (zh) 2018-05-06 2021-03-19 强力交易投资组合2018有限公司 用于改进自动执行能源、计算、存储和其它资源的现货和远期市场中的分布式账本和其它交易的机器和系统的方法和系统
US11550299B2 (en) 2020-02-03 2023-01-10 Strong Force TX Portfolio 2018, LLC Automated robotic process selection and configuration
US11184171B2 (en) * 2018-05-24 2021-11-23 Walmart Apollo, Llc System and methods for multi-variant tracking
US20200042982A1 (en) * 2018-08-06 2020-02-06 Factom Digital Contracts in Blockchain Environments
US11196543B2 (en) * 2018-09-05 2021-12-07 International Business Machines Corporation Minimum evidence calculation in blockchain transactions
CN109274667B (zh) 2018-09-14 2020-06-23 阿里巴巴集团控股有限公司 一种基于区块链的版权事件存证方法及系统
CN109272385B (zh) * 2018-09-14 2021-03-23 创新先进技术有限公司 一种基于区块链的版权事件代理存证方法及系统
CN110008686B (zh) * 2018-11-16 2020-12-04 创新先进技术有限公司 跨区块链的数据处理方法、装置、客户端、区块链系统
US11121860B2 (en) * 2018-12-27 2021-09-14 Lendingclub Corporation Multi-layered blockchain for digital assets
JP6892514B2 (ja) 2018-12-28 2021-06-23 アドバンスド ニュー テクノロジーズ カンパニー リミテッド トランザクションの再送信を使用してブロックチェーンネットワークにおけるトランザクション配信の加速化
CN109792382B (zh) * 2018-12-28 2022-07-12 创新先进技术有限公司 使用全局加速节点提高区块交易速度的方法、系统和存储介质
WO2019072307A2 (en) 2018-12-28 2019-04-18 Alibaba Group Holding Limited ACCELERATION OF TRANSACTION DELIVERIES IN BLOCK CHAIN NETWORKS USING ACCELERATION NODES
US11177962B2 (en) * 2019-02-05 2021-11-16 Visa International Service Association Optimizations for verification of interactions system and method
JP2022520844A (ja) * 2019-02-15 2022-04-01 エヌチェーン ホールディングス リミテッド ブロックチェーンネットワークを介した移転を実施するためのコンピュータで実施されるシステムおよび方法
US20200274713A1 (en) * 2019-02-25 2020-08-27 Tbcasoft, Inc. Credential verification and issuance through credential service providers
US20200327627A1 (en) * 2019-03-03 2020-10-15 Deep Chakraborty Methods and systems of a blockchain for distributed-energy-project management
SG11201910057QA (en) * 2019-04-12 2019-11-28 Alibaba Group Holding Ltd Performing parallel execution of transactions in a distributed ledger system
CA3060790C (en) 2019-04-12 2021-06-08 Alibaba Group Holding Limited Performing parallel execution of transactions in a distributed ledger system
US11251938B2 (en) * 2019-06-03 2022-02-15 International Business Machines Corporation Blockchain verification using non-consecutive blocks
CN110288480B (zh) * 2019-06-28 2023-06-09 深圳前海微众银行股份有限公司 一种区块链的私密交易方法及装置
US10771524B1 (en) * 2019-07-31 2020-09-08 Theta Labs, Inc. Methods and systems for a decentralized data streaming and delivery network
SG10201907333RA (en) * 2019-08-08 2020-01-30 Alibaba Group Holding Ltd Methods And Devices For Executing Cross-Chain Anonymous Multi-Swap Contracts
CN114391241A (zh) * 2019-09-11 2022-04-22 维萨国际服务协会 具有可调整法定数量的区块链分片
US11468044B2 (en) 2019-11-25 2022-10-11 Visa International Service Association Optimizations for verification of interactions system and method using probability density functions
US11544252B2 (en) * 2019-12-17 2023-01-03 Akamai Technologies, Inc. High performance distributed system of record with extended transaction processing capability
CN111340631B (zh) * 2020-05-15 2020-12-01 支付宝(杭州)信息技术有限公司 资产转移方法、装置、设备及系统
EP4168964A1 (en) * 2020-06-17 2023-04-26 Coinbase Inc. Systems and methods for converting cryptocurrency
CA3091660A1 (en) * 2020-08-31 2021-11-03 Polymath Inc. Method, system, and medium for blockchain-enabled atomic settlement
KR20220057823A (ko) * 2020-10-30 2022-05-09 서강대학교산학협력단 블록체인 네트워크에서의 블록 사이즈 조절 방법 및 이를 이용한 블록체인 네트워크
EP4307645A1 (en) * 2021-06-11 2024-01-17 Samsung Electronics Co., Ltd. Electronic device having partial ledger in blockchain network, and operating method therefor
US20220417044A1 (en) * 2021-06-25 2022-12-29 Prateek GOEL System and method to manage large data in blockchain
CN113362068B (zh) * 2021-08-10 2022-03-29 北京连琪科技有限公司 一种轻节点验证区块链状态转移的方法
US11379429B1 (en) 2021-10-28 2022-07-05 Tassat Group LLC Computer-based systems configured for permission events management on a blockchain and methods of use thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160330034A1 (en) * 2015-05-07 2016-11-10 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
US20160342977A1 (en) * 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US20170287090A1 (en) * 2016-03-31 2017-10-05 Clause, Inc. System and method for creating and executing data-driven legal contracts
JP2017204070A (ja) * 2016-05-10 2017-11-16 日本電信電話株式会社 決済システム、決済方法、トランザクション生成装置及びトランザクション生成プログラム
US20170337534A1 (en) * 2015-11-06 2017-11-23 Cable Television Laboratories, Inc Systems and methods for blockchain virtualization and scalability

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130226891A1 (en) * 2012-02-29 2013-08-29 Red Hat Inc. Managing versions of transaction data used for multiple transactions in distributed environments
US11023968B2 (en) 2015-03-05 2021-06-01 Goldman Sachs & Co. LLC Systems and methods for updating a distributed ledger based on partial validations of transactions
US20160335641A1 (en) * 2015-05-13 2016-11-17 Mastercard International Incorporated Enhanced payment card platform
US11488147B2 (en) 2015-07-14 2022-11-01 Fmr Llc Computationally efficient transfer processing and auditing apparatuses, methods and systems
EP3125489B1 (en) 2015-07-31 2017-08-09 BRITISH TELECOMMUNICATIONS public limited company Mitigating blockchain attack
US20180089651A9 (en) 2015-11-06 2018-03-29 Cable Television Laboratories, Inc Blockchaining systems and methods for frictionless media
US10440101B2 (en) * 2016-02-22 2019-10-08 Bank Of America Corporation System for external validation of private-to-public transition protocols
US10521775B2 (en) 2016-04-18 2019-12-31 R3 Ltd. Secure processing of electronic transactions by a decentralized, distributed ledger system
WO2017189027A1 (en) * 2016-04-29 2017-11-02 Digital Asset Holdings Digital asset modeling
SG11201809963XA (en) 2016-05-11 2018-12-28 Nasdaq Inc Application framework using blockchain-based asset ownership
US10713731B2 (en) 2016-07-22 2020-07-14 Nec Corporation Method for secure ledger distribution and computer system using secure distributed ledger technology
GB201613176D0 (en) * 2016-07-29 2016-09-14 Eitc Holdings Ltd Computer-implemented method and system
US11271736B2 (en) * 2016-07-29 2022-03-08 nChain Holdings Limited Blockchain-implemented method and system
US10339014B2 (en) * 2016-09-28 2019-07-02 Mcafee, Llc Query optimized distributed ledger system
US11182851B2 (en) * 2016-10-20 2021-11-23 International Business Machines Corporation Inter-ledger messaging in a blockchain
US10540652B2 (en) * 2016-11-18 2020-01-21 Intel Corporation Technology for secure partitioning and updating of a distributed digital ledger
US11270395B2 (en) * 2016-12-15 2022-03-08 Mastercard International Incorporated Systems and methods for building a data table to reduce false declines over a network
US10452998B2 (en) * 2017-03-19 2019-10-22 International Business Machines Corporation Cognitive blockchain automation and management
US20190295083A1 (en) * 2017-04-25 2019-09-26 Tovarystvo z obmezhenoiu vidpovidalnistiu, Simcord The method for executing a digital value transfer transaction and the digital value transfer system for its implementation
CN107239951A (zh) * 2017-06-07 2017-10-10 北京天德科技有限公司 一种基于第三代区块链的可扩展央行数字货币交易方法
WO2019070853A1 (en) * 2017-10-04 2019-04-11 The Dun & Bradstreet Corporation SYSTEM AND METHOD FOR IDENTITY RESOLUTION ON A SET OF DISPARATE NETWORKS OF IMMUNE DISTRIBUTED REGISTERS
GB2569278A (en) 2017-10-23 2019-06-19 Cygnetise Ltd Methods and apparatus for verifying a user transaction
US11244309B2 (en) * 2017-11-22 2022-02-08 Cornell University Real-time cryptocurrency exchange using trusted hardware
US20190172026A1 (en) * 2017-12-02 2019-06-06 Alchemy Limited LLC Cross blockchain secure transactions
US10673620B2 (en) * 2017-12-14 2020-06-02 Paypal, Inc. Blockchain validation system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160330034A1 (en) * 2015-05-07 2016-11-10 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
US20160342977A1 (en) * 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US20170337534A1 (en) * 2015-11-06 2017-11-23 Cable Television Laboratories, Inc Systems and methods for blockchain virtualization and scalability
US20170287090A1 (en) * 2016-03-31 2017-10-05 Clause, Inc. System and method for creating and executing data-driven legal contracts
JP2017204070A (ja) * 2016-05-10 2017-11-16 日本電信電話株式会社 決済システム、決済方法、トランザクション生成装置及びトランザクション生成プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023127530A1 (ja) * 2021-12-28 2023-07-06 京セラ株式会社 システム、ノード、及びプログラム

Also Published As

Publication number Publication date
EP3729779A4 (en) 2021-12-15
US20190188697A1 (en) 2019-06-20
CN111615817B (zh) 2023-10-17
EP3729779A1 (en) 2020-10-28
WO2019125506A1 (en) 2019-06-27
US20190188698A1 (en) 2019-06-20
KR20200100773A (ko) 2020-08-26
SG11202005655UA (en) 2020-07-29
KR102548540B1 (ko) 2023-06-29
US11461777B2 (en) 2022-10-04
JP7307910B2 (ja) 2023-07-13
JP2023134492A (ja) 2023-09-27
US20190188711A1 (en) 2019-06-20
CN111615817A (zh) 2020-09-01

Similar Documents

Publication Publication Date Title
JP7307910B2 (ja) 分散型台帳間の複数台帳方式振替のための方法および装置、ならびに複数台帳方式振替を使用するシステム
US10965446B2 (en) Blockchain-based automated user matching
JP7472333B2 (ja) バリデータノードにより提供されるブロックチェーントランザクションをマイニングする方法及びシステム
US11790370B2 (en) Techniques for expediting processing of blockchain transactions
EP3559891B1 (en) Executing multi-party transactions using smart contracts
Robinson et al. Atomic crosschain transactions for ethereum private sidechains
TWI828857B (zh) 在區塊鏈網路上實施轉移之電腦實施系統及方法
US20200028667A1 (en) Blockchain-Based Unexpected Data Detection
CN110771127B (zh) 用于区块链网络中一致分布式内存池的方法和系统
US10693646B2 (en) Event execution using a blockchain approach
US20200204338A1 (en) Securing public key cryptographic algorithms
Smith et al. IBM Blockchain: An enterprise deployment of a distributed consensus-based transaction log
Guan et al. Scaling Blockchain via a Lightweight Tree-based Sharding System
CN116244709A (zh) 区块链网络中出块节点的确定方法及相关装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220315

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221101

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230120

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230426

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230530

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230622

R150 Certificate of patent or registration of utility model

Ref document number: 7307910

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150