JP7324222B2 - Computing system, method and computer program for managing blockchain - Google Patents

Computing system, method and computer program for managing blockchain Download PDF

Info

Publication number
JP7324222B2
JP7324222B2 JP2020551329A JP2020551329A JP7324222B2 JP 7324222 B2 JP7324222 B2 JP 7324222B2 JP 2020551329 A JP2020551329 A JP 2020551329A JP 2020551329 A JP2020551329 A JP 2020551329A JP 7324222 B2 JP7324222 B2 JP 7324222B2
Authority
JP
Japan
Prior art keywords
chain
blockchain
cross
data
transaction
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.)
Active
Application number
JP2020551329A
Other languages
Japanese (ja)
Other versions
JP2021520539A (en
Inventor
ボー、ホアン、タム
メヘディ、レーニン
モハニア、ムケシュ、クマール
ワン、ジュアン
アベベ、エーミアス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Priority claimed from US15/967,683 external-priority patent/US11030217B2/en
Priority claimed from US15/967,728 external-priority patent/US11194837B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2021520539A publication Critical patent/JP2021520539A/en
Application granted granted Critical
Publication of JP7324222B2 publication Critical patent/JP7324222B2/en
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/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

本出願は一般に、複数のブロックチェーンにわたってトランザクション・データを区画化することに関し、より詳細には、クロスチェーン・トランザクションを実施するブロックチェーンに関する。 TECHNICAL FIELD This application relates generally to partitioning transaction data across multiple blockchains, and more particularly to blockchains implementing cross-chain transactions.

台帳は一般にエントリの会計帳簿として定義され、その中にトランザクションが記録され、権限付与されたユーザには見える。分散型台帳は、複数のコンピューティング・システムに全体的にまたは部分的に複製された台帳である。分散型台帳の1つのタイプは、暗号分散型台帳(CDL:cryptographic distributed Ledger)であり、不可逆性(トランザクションが記録されると、破棄することができない)、アクセス可能性(いずれの当事者も、全体的にまたは部分的にCDLにアクセスすることができる)、時系列でありタイムスタンプが押されている(トランザクションが台帳にいつ追加されたかを全ての当事者が知っている)、コンセンサス・ベースである(トランザクションは、ネットワーク上の当事者によって典型的には満場一致して承認された場合のみ追加される)、検証可能性(全てのトランザクションは、暗号学的に検証されることが可能である)という、プロパティのうちの少なくともいくつかを有することができる。ブロックチェーンは、CDLの例である。本明細書の説明および図は、ブロックチェーンの観点から説明されるが、本出願は、いずれのCDLにも等しく適用される。 A ledger is generally defined as an accounting book of entries in which transactions are recorded and visible to authorized users. A distributed ledger is a ledger that is wholly or partially replicated on multiple computing systems. One type of distributed ledger is the cryptographic distributed ledger (CDL), which is irreversible (once a transaction is recorded it cannot be discarded), accessible (no party CDL can be accessed partially or partially), chronological and timestamped (all parties know when a transaction was added to the ledger), consensus based (transactions are added only if they are approved, typically unanimously, by the parties on the network), verifiable (all transactions can be cryptographically verified). , can have at least some of the properties Blockchain is an example of a CDL. Although the description and diagrams herein are described in terms of a blockchain, this application applies equally to any CDL.

分散型台帳は、他のブロックに関する暗号学的ハッシュを格納することなどの暗号化技法を典型的に適用するレコードの絶えず増大するリストである。金融取引のために主に使用されるが、ブロックチェーンは、商品およびサービスに関する情報などの他の資産(すなわち、製品、パッケージ、ステータス、ソフトウェア、データ、等)を格納することができる。非集中型方式は、非集中型ネットワークに権威および信用をもたらし、そのノードがこれらのトランザクションを公開「ブロック」上に連続かつ順次記録することを可能にし、ブロックチェーンと呼ばれる一意の「チェーン」を作り出す。暗号文は、ハッシュコードを介して、トランザクション・ソースの認証をセキュアにするために使用され、中心の中間体を除去する。さらに、各ブロックは、タイムスタンプ、および前のブロックへのリンクを収め、このことにより、トランザクション履歴の改ざん不能なチェーンを作り出す。ブロックチェーンは分散型システムなので、ブロックチェーン台帳にトランザクションを追加する前に、ピアがコンセンサス状態に達する必要がある。 A distributed ledger is an ever-growing list of records that typically apply cryptographic techniques such as storing cryptographic hashes of other blocks. Although primarily used for financial transactions, blockchain can store other assets such as information about goods and services (i.e. products, packages, status, software, data, etc.). A decentralized scheme brings authority and trust to a decentralized network, allowing its nodes to continuously and sequentially record these transactions on a public "block", creating a unique "chain" called a blockchain. produce. Cryptograms are used to secure the authentication of transaction sources via hashcodes, removing the central middleman. Additionally, each block contains a timestamp and a link to the previous block, creating an immutable chain of transaction history. Since blockchains are decentralized systems, peers must reach a consensus state before a transaction can be added to the blockchain ledger.

限定的なトランザクション・スループットおよびストレージが、ブロックチェーン技術の問題であると広く思われている。一定の技術が、トランザクション・スループットを改善しようとしてきた。例えば、ビットコインのブロックチェーンは、検証しやすいが、計算コストが高い(意図的に)プルーフ・オブ・ワーク・コンセンサス方法を使用し、処理中に暗号パズルを解く必要がある。別の例として、許可型ブロックチェーンが、ビザンチン障害耐性(BFT:byzantine fault-tolerant)ステート・マシンの変形形態に基づくコンセンサス方法を使用する。これらのBFTステート・マシンは、トランザクション・スループットが高くなり、コンセンサスのレイテンシが低くなるように選ばれるが、多くの業界に必要なスループットをまだもたらしていない。すなわち、これらの改善があったとしても、現在のブロックチェーン技術は、財務、保険、ソフトウェア開発、サプライ・チェーン、運送業、および他の多くのもののための現実世界のアプリケーションで一般に見られる大規模データ処理の作業負荷に適していない。したがって、必要なものは、ブロックチェーンのスループットを拡大するためのメカニズムである。 Limited transaction throughput and storage are widely believed to be problems with blockchain technology. Certain techniques have attempted to improve transaction throughput. For example, the Bitcoin blockchain uses an easy-to-verify but (deliberately) computationally expensive proof-of-work consensus method, requiring cryptographic puzzles to be solved during processing. As another example, permissioned blockchains use a consensus method based on a variant of the Byzantine fault-tolerant (BFT) state machine. These BFT state machines are chosen for high transaction throughput and low consensus latency, but have not yet delivered the required throughput for many industries. That is, even with these improvements, today's blockchain technology will not reach the large scale commonly found in real-world applications for finance, insurance, software development, supply chain, transportation, and many other things. Not suitable for data processing workloads. What is needed, therefore, is a mechanism for scaling blockchain throughput.

したがって、前述の問題に対処するという当技術分野における必要性がある。 Therefore, there is a need in the art to address the aforementioned problems.

第1の態様から眺めると、本発明は、ブロックチェーンを管理するためのシステムを提供し、システムは、クロスチェーン・トランザクションを実行するというリクエストを受け取るためのネットワーク・インターフェースと、プロセッサであって、クロスチェーン・トランザクションのためのデータを格納した2つ以上の異なるブロックチェーンの全く異なるロケーションを識別すること、識別した全く異なるロケーションに基づいて、2つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索すること、2つ以上の異なるブロックチェーンからの検索したデータをクロスチェーンの結果を生成するための入力とするクロスチェーン・トランザクションを実行すること、および分散型台帳のデータ・ブロックを介してクロスチェーンの結果を格納することを行うためのプロセッサとを備える。 Viewed from a first aspect, the present invention provides a system for managing a blockchain, the system comprising a network interface for receiving requests to perform cross-chain transactions and a processor, comprising: identifying disparate locations on two or more different blockchains that store data for cross-chain transactions; extracting data from data blocks on two or more different blockchains based on the identified disparate locations; Searching respectively, performing cross-chain transactions with retrieved data from two or more different blockchains as input to generate cross-chain results, and via data blocks on a distributed ledger a processor for storing cross-chain results.

さらなる態様から眺めると、本発明は、ブロックチェーンを管理するための方法を提供し、クロスチェーン・トランザクションを実行するというリクエストを受け取ることと、クロスチェーン・トランザクションのためのデータを格納した2つ以上の異なるブロックチェーンの全く異なるロケーションを識別することと、識別した全く異なるロケーションに基づいて、2つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索することと、2つ以上の異なるブロックチェーンからの検索したデータをクロスチェーンの結果を生成するための入力とするクロスチェーン・トランザクションを実行することと、分散型台帳のデータ・ブロックを介してクロスチェーンの結果を格納することとを含む。 Viewed from a further aspect, the present invention provides a method for managing a blockchain, receiving a request to perform a cross-chain transaction; identifying disparate locations on different blockchains of the two or more different blockchains; respectively retrieving data from data blocks of two or more different blockchains based on the identified disparate locations; performing a cross-chain transaction with retrieved data from as input for generating a cross-chain result; and storing the cross-chain result via a data block on a distributed ledger.

さらなる態様から眺めると、本発明は、ブロックチェーンを管理するためのコンピュータ・プログラム製品を提供し、コンピュータ・プログラム製品は、本発明のステップを行うための方法を行うための処理回路、および処理回路による実行のための格納命令によって読取可能なコンピュータ可読ストレージ媒体を備える。 Viewed from a further aspect, the invention provides a computer program product for managing a blockchain, the computer program product comprising processing circuitry for performing a method for performing the steps of the invention and processing circuitry. computer readable storage medium readable by stored instructions for execution by;

さらなる態様から眺めると、本発明は、コンピュータ可読媒体に格納され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムを提供し、前記プログラムがコンピュータ上で動くとき、本発明のステップを実行するためのソフトウェア・コード部分を含む。 Viewed from a further aspect, the invention provides a computer program stored on a computer readable medium and loadable into the internal memory of a digital computer for performing the steps of the invention when said program is run on the computer. contains software code portions for

実施形態の1つの例は、クロスチェーン・トランザクションを実行するというリクエストを受け取ることと、クロスチェーン・トランザクションのためのデータを格納した2つ以上の異なるブロックチェーンの全く異なるロケーションを識別することと、識別した全く異なるロケーションに基づいて、2つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索することと、2つ以上の異なるブロックチェーンからの検索したデータをクロスチェーンの結果を生成するための入力とするクロスチェーン・トランザクションを実行することと、分散型台帳のデータ・ブロックを介してクロスチェーンの結果を格納することとのうちの1つまたは複数を含む方法を提供することができる。 An example embodiment includes receiving a request to perform a cross-chain transaction; identifying disparate locations on two or more different blockchains that store data for the cross-chain transaction; Retrieving data from data blocks of two or more different blockchains, respectively, based on the identified disparate locations, and retrieving data from the two or more different blockchains to generate cross-chain results. and storing cross-chain results via data blocks on a distributed ledger.

実施形態の別の例は、クロスチェーン・トランザクションを実行するというリクエストを受け取るためのネットワーク・インターフェースと、プロセッサであって、クロスチェーン・トランザクションのためのデータを格納した2つ以上の異なるブロックチェーンの全く異なるロケーションを識別すること、識別した全く異なるロケーションに基づいて、2つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索すること、2つ以上の異なるブロックチェーンからの検索したデータをクロスチェーンの結果を生成するための入力とするクロスチェーン・トランザクションを実行すること、および分散型台帳のデータ・ブロックを介してクロスチェーンの結果を格納することのうちの1つまたは複数を行うように構成されたプロセッサとを含むシステムを提供することができる。 Another example embodiment is a network interface for receiving a request to perform a cross-chain transaction and a processor of two or more different blockchains storing data for the cross-chain transaction. identifying disparate locations; respectively retrieving data from data blocks of two or more different blockchains based on the identified disparate locations; crossing retrieved data from two or more different blockchains; to perform one or more of executing cross-chain transactions as inputs to produce chain results and storing cross-chain results via data blocks on a distributed ledger; A system can be provided that includes a configured processor.

実施形態のさらなる例は、プロセッサによって読み込まれると、クロスチェーン・トランザクションを実行するというリクエストを受け取ることと、クロスチェーン・トランザクションのためのデータを格納した2つ以上の異なるブロックチェーンの全く異なるロケーションを識別することと、識別した全く異なるロケーションに基づいて、2つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索することと、2つ以上の異なるブロックチェーンからの検索したデータをクロスチェーンの結果を生成するための入力とするクロスチェーン・トランザクションを実行することと、分散型台帳のデータ・ブロックを介してクロスチェーンの結果を格納することとのうちの1つまたは複数をプロセッサに行わせる命令を含む非一過性コンピュータ可読媒体を提供することができる。 A further example of an embodiment is receiving a request to perform a cross-chain transaction and disparate locations on two or more different blockchains containing data for the cross-chain transaction when read by a processor. respectively retrieving data from data blocks of two or more different blockchains based on the identified disparate locations; and cross-chaining the retrieved data from the two or more different blockchains. Causes a processor to perform one or more of executing cross-chain transactions as inputs for generating results and storing cross-chain results via data blocks on a distributed ledger. A non-transitory computer-readable medium can be provided that contains the instructions.

本発明の実施形態が次に、添付の図面を参照しながら、ほんの一例として説明されることになる。 Embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings.

実施形態の例によるクロスチェーン・トランザクションを管理するためのシステムを示す図である。1 illustrates a system for managing cross-chain transactions according to an example embodiment; FIG. 実施形態の例によるピア・ノード・ブロックチェーン・アーキテクチャ構成を示す図である。FIG. 2 illustrates a peer node blockchain architecture configuration according to an example embodiment; 実施形態の例による許可型ブロックチェーン・ネットワークを示す図である。1 illustrates a permissioned blockchain network, according to an example embodiment; FIG. 実施形態の例による複数のパーティション・ブロックチェーンにわたるデータ区画化を管理するマスタ・チェーンの処理を示す図である。FIG. 4 illustrates the processing of a master chain managing data partitioning across multiple partition blockchains according to an example embodiment; 実施形態の例による複数のパーティション・ブロックチェーンからのデータに基づいてクロスチェーン・トランザクションを実行する混合チェーンの処理を示す図である。FIG. 4 illustrates the processing of a mixed chain performing cross-chain transactions based on data from multiple partition blockchains according to an example embodiment; 実施形態の例によるクロスチェーン・トランザクションを管理する方法を示す図である。FIG. 4 illustrates a method of managing cross-chain transactions according to an example embodiment; 実施形態の例によるクロスチェーン・トランザクションを管理する方法を示す図である。FIG. 4 illustrates a method of managing cross-chain transactions according to an example embodiment; 実施形態の例による、本明細書で説明される1つまたは複数の動作によるブロックチェーンに対する様々な動作を行うように構成された物理的なインフラストラクチャを示す図である。FIG. 2 illustrates a physical infrastructure configured to perform various operations on a blockchain according to one or more operations described herein, according to an example embodiment; 実施形態の例による、契約当事者間のスマート・コントラクト構成、およびブロックチェーンに対してスマート・コントラクト条件を実施するように構成された仲介サーバを示す図である。FIG. 2 illustrates a smart contract configuration between contracting parties and an intermediary server configured to enforce the smart contract terms against a blockchain, according to an example embodiment; 実施形態の例の1つまたは複数をサポートするように構成されたコンピュータ・システムを示す図である。1 illustrates a computer system configured to support one or more of the example embodiments; FIG.

本構成要素は、本明細書の図において一般に説明され示されるように、多種多様な異なる構成で配列され設計されてもよいということが容易に理解されよう。したがって、方法、装置、非一過性コンピュータ可読媒体、およびシステムのうちの少なくとも1つの実施形態の以下の詳細な説明は、添付の図に表されるように、特許請求されるものとして本出願の範囲を限定することを意図するものではなく、選択された実施形態を表しているにすぎない。 It will be readily appreciated that the present components may be arranged and designed in a wide variety of different configurations as generally described and shown in the figures herein. Accordingly, the following detailed description of at least one embodiment of the method, apparatus, non-transitory computer-readable medium, and system, as represented in the accompanying figures, is claimed in the present application. is not intended to limit the scope of, but merely represents selected embodiments.

本明細書の全体を通して説明されるような本特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な手法で組み合わされてもよい。例えば、句「実施形態の例(example embodiments)」、「いくつかの実施形態(some embodiments)」、または他の類似の言葉を使用すると、本明細書の全体を通して、実施形態について説明される特定の特徴、構造、または特性が少なくとも1つの実施形態に含まれ得るということを表す。したがって、句「実施形態の例」、「いくつかの実施形態では(in some embodiments)」、「他の実施形態では(in other embodiments)」、または他の類似の言語が現れると、本明細書の全体を通して、実施形態の同じグループを必ずしも全て表すわけではなく、説明される特徴、構造、または特性が、1つまたは複数の実施形態に任意の適切な手法で組み合わされてもよい。 The present features, structures, or characteristics as described throughout this specification may be combined in any suitable manner in one or more embodiments. For example, throughout the specification, use of the phrases "example embodiments," "some embodiments," or other similar language to describe specific features, structures, or characteristics may be included in at least one embodiment. Thus, when the phrases "example embodiments," "in some embodiments," "in other embodiments," or other similar language appear, they appear in this specification. do not necessarily all refer to the same group of embodiments throughout, and the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

さらに、用語「メッセージ」が、実施形態の説明で使用されている可能性があるが、本出願は、パケット、フレーム、データグラム、等など、多くのタイプのネットワーク・データに適用されることもある。用語「メッセージ」は、パケット、フレーム、データグラム、およびこれらのいずれかの均等物も含む。さらに、一定のタイプのメッセージおよびシグナリングが、例示的な実施形態に描写されることがあるが、これらは、一定のタイプのメッセージに限定されるのではなく、本出願は、一定のタイプのシグナリングに限定されるものではない。 Further, although the term "message" may be used in describing embodiments, the present application may also apply to many types of network data such as packets, frames, datagrams, etc. be. The term "message" also includes packets, frames, datagrams, and equivalents of any of these. Furthermore, although certain types of messages and signaling may be depicted in exemplary embodiments, these are not limited to certain types of messages, and the present application describes certain types of signaling. is not limited to

実施形態の例は、マスタ・ブロックチェーン・システムをサポートする方法、デバイス、ネットワーク、またはシステム、あるいはその組合せを対象とする。システムは、区画化されたデータを格納するパーティション・ブロックチェーンのセットであるブロックチェーンの間でオーケストレータまたはトランザクション・ルータの役割を果たすマスタ・ブロックチェーンを含むブロックチェーンのネットワークを含む。さらに、システムは、複数のブロックチェーンからデータを検索し、複数のブロックチェーンからのデータを活用することによってクロスチェーン・トランザクションを実行する混合ブロックチェーン(mixed blockchain)のチェーンを含む。ブロックチェーン・システムの利益のうちのいくつかは、ストレージとトランザクション・スループットの両方の観点からブロックチェーン・ベースのシステムの能力を改善するというものである。具体的には、単一のブロックチェーン・ネットワークと比較すると、複数の(区画化された)ブロックチェーン・ネットワークは、トランザクション・データを格納するために(全体として)はるかに大きいストレージ容量を用意することができ、アプリケーションから投入されるはるかに大きい数の同時発生トランザクションをさらにサポートすることができる。 Example embodiments are directed to methods, devices, networks, or systems, or combinations thereof, that support a master blockchain system. The system includes a network of blockchains, including a master blockchain that acts as an orchestrator or transaction router among blockchains, which is a set of partitioned blockchains that store partitioned data. Additionally, the system includes a chain of mixed blockchains that retrieve data from multiple blockchains and perform cross-chain transactions by leveraging data from multiple blockchains. Some of the benefits of blockchain systems are improving the capabilities of blockchain-based systems in terms of both storage and transaction throughput. Specifically, compared to a single blockchain network, multiple (compartmentalized) blockchain networks provide (aggregately) much greater storage capacity for storing transaction data. and can further support a much larger number of concurrent transactions injected by an application.

ブロックチェーンは、ブロックチェーンが中心のストレージではなく、むしろ非集中化された不変かつセキュアなストレージであるという点で従来のデータベースとは異なり、ここで、ノードは、ストレージ内のレコードへの変更を共有しなければならない。ブロックチェーンに固有のものであり、ブロックチェーンを実施するのに役立ついくつかのプロパティは、不変台帳、スマート・コントラクト、セキュリティ、プライバシ、非集中化、コンセンサス、エンドースメント、アクセス可能性、および同様のものを含むがこれらに限定されない。 Blockchains differ from traditional databases in that the blockchain is not a central storage, but rather a decentralized, immutable and secure storage, where nodes are allowed to make changes to records in storage. must share. Some properties that are unique to blockchains and that help enforce them are immutable ledgers, smart contracts, security, privacy, decentralization, consensus, endorsement, accessibility, and similar including but not limited to:

様々な態様によれば、区画化機能およびクロスチェーン実行機能は、ブロックチェーンに固有かつ一意の新たに定義されたスマート・コントラクトによって実施される。さらに、実施形態の例は、ネットワーク・インターフェース等などのシステム・リソースへのアクセスによって複数のブロックチェーンの間のデータの区画化を管理するように構成された、システム・ベースのトランザクション・ルータのスマート・コントラクトも提供する。トランザクションを実行するというリクエストを受け取るのに応じて、(マスタ・チェーンの)トランザクション・ルータのスマート・コントラクトは、トランザクションを実行するためのデータを有する複数の異なるブロックチェーンを識別し、(混合チェーンの)クロスチェーン・ハンドリングのスマート・コントラクトに、異なるブロックチェーンのロケーションを提供することができる。クロスチェーン・ハンドリングのスマート・コントラクトは、異なるブロックチェーンからデータを検索して、クロスチェーン・トランザクションを実行し、クロスチェーン・トランザクションの結果に基づいて異なるブロックチェーンを更新することができる。 According to various aspects, the compartmentalization and cross-chain execution functions are performed by newly defined smart contracts that are unique and specific to blockchains. Further, example embodiments include system-based transaction router smart blockchains configured to manage data partitioning among multiple blockchains through access to system resources such as network interfaces, etc.・Contracts are also provided. In response to receiving a request to execute a transaction, the Transaction Router smart contract (of the master chain) identifies multiple different blockchains that have data to execute the transaction, and ) can provide different blockchain locations for cross-chain handling smart contracts. Cross-chain handling smart contracts can retrieve data from different blockchains, perform cross-chain transactions, and update different blockchains based on the results of cross-chain transactions.

さらに、コンセンサス、エンドースメント、および非集中型/分散型ノードなどの追加のブロックチェーン属性は、到着したトランザクションをどのパーティション(個々のブロックチェーン)にルートするべきかを決定するパーティション・ルールの技術的効果の実施を担っている。具体的には、マスタ・ブロックチェーンの参加者(ノード)のコンセンサスは、到着したトランザクションを適切なパーティション・チェーンにルートするために、トランザクション・ルータのスマート・コントラクトによって使用されることが可能な共通の区画化ルールに同意してもよい。1つの例では、シングル・チェーン・トランザクションは、データが格納された個々のパーティション・チェーンに単純にルートされる。別の例として、トランザクションが、複数のパーティション・チェーンからのデータを伴うとき、トランザクションは、データを検索してクロスチェーン・トランザクションを実行することができるクロスチェーン・ハンドラを含む混合チェーンのブロックチェーンにルートされてもよい。いくつかの実施形態では、混合チェーンはまた、クロスチェーン・トランザクションのハッシュ・リンクされた不変レコードを格納した独自のブロックチェーンを維持することができる。 Additionally, additional blockchain attributes such as consensus, endorsement, and decentralized/decentralized nodes are technically part of partition rules that determine which partition (individual blockchain) an arriving transaction should be routed to. It is responsible for the implementation of effects. Specifically, the consensus of the participants (nodes) of the master blockchain is a common common that can be used by smart contracts in the transaction router to route incoming transactions to the appropriate partition chain. may agree with the compartmentalization rules of In one example, single-chain transactions are simply routed to the individual partition chains where the data is stored. As another example, when a transaction involves data from multiple partition chains, the transaction is sent to a mixed-chain blockchain that contains a cross-chain handler that can retrieve the data and perform cross-chain transactions. May be rooted. In some embodiments, the hybrid chain may also maintain its own blockchain containing hash-linked immutable records of cross-chain transactions.

実施形態の例は、従来のデータベースを超える非常に多くの利益をもたらす。例えば、ブロックチェーンのネットワークを通じて、実施形態は、ブロックチェーンによって必要とされる信用およびアカウンタビリティのレベルも維持しつつ、スループットおよびストレージ可用性を向上させる。一方で、従来のデータベースは、ノード間のコンセンサスを提供しないので、実施形態の例を実施するために使用することができず、このことにより、データベースをどのように区画化するかを単一のアクターが判定するのを当てにすることになる。このようにして、単一のアクターは、自分の意志で区画化方式を変更することができ、マスタ・チェーンによって必要とされる同意したコンセンサスには基づかない。さらに、従来のデータベースは、ブロックチェーン・ベースのトランザクションを実行せず、ここで、トランザクションの証拠は、コンセンサスおよびエンドースメントを通じてのみ修正可能な不変台帳に格納される。 Example embodiments provide numerous benefits over traditional databases. For example, through a network of blockchains, embodiments improve throughput and storage availability while also maintaining the level of trust and accountability required by blockchains. On the other hand, conventional databases cannot be used to implement example embodiments because they do not provide consensus among nodes, which leaves a single You will rely on the actors to judge. In this way, a single actor can change the partitioning scheme at will, not based on the agreed-upon consensus required by the master chain. Furthermore, traditional databases do not carry out blockchain-based transactions, where evidence of transactions is stored in an immutable ledger that can only be modified through consensus and endorsement.

従来のデータベースでは、データ区画化は、典型的には、データベース内のデータ・スケーラビリティ、データ分離、およびトランザクション・スループット問題に立ち向かうために用いられる。さらに、ブロックチェーンなどのより新しい格納技術は、類似の問題を有し続ける。詳細には、ビジネス・ネットワークのトランザクション履歴を保持するために、許可型ブロックチェーン(例えばHyperledger Fabric)の使用に関心が増すにつれて、ビジネス・ネットワークは、同じ技術的障害に直面する。今のところ、現在のブロックチェーン技術のどれも、複数のブロックチェーンにわたってデータを区画化することによってブロックチェーンのトランザクション・スループットをスケーリングするという実行可能な解決策を提案したことがない。これは、データ区画化が、ブロックチェーン・ベースのアプリケーションの平凡な解決策ではなく、解決される必要のあるいくつかの技術的難題があるということが理由である。例えば、ブロックチェーンは、様々な当事者間のコンセンサスを使用してデータ不変性および信用を維持するので、データ区画化も、同じレベルの信用、アカウンタビリティ、およびトレーサビリティをもたらす必要がある。この問題に対処するために、データが複数のブロックチェーンに区画されるとき、本明細書で説明されるシステムは、「クロスチェーン」トランザクションをサポートし、このことにより、徐々に進化するビジネス・ネットワークに適合させることができる。さらに、システムは、信用、アカウンタビリティ、およびトレーサビリティを維持しつつ、データ区画化およびクロスチェーン・トランザクションをサポートするために、複数のブロックチェーンにわたってデータを区画化することができる。詳細には、ブロックチェーン・システムは、(a)複数のブロックチェーンにわたってデータを区画化すること、(b)クロスチェーン・トランザクションをサポートすること、ならびに、(c)信用、出所、およびトレーサビリティを維持することができる。 In traditional databases, data partitioning is typically used to combat data scalability, data isolation, and transaction throughput issues within the database. Moreover, newer storage technologies such as blockchain continue to have similar problems. Specifically, business networks face the same technical obstacles as interest grows in using permissioned blockchains (eg, Hyperledger Fabric) to preserve the transaction history of business networks. So far, none of the current blockchain technologies have proposed a viable solution to scaling blockchain transaction throughput by partitioning data across multiple blockchains. This is because data partitioning is not a trivial solution for blockchain-based applications and there are several technical challenges that need to be solved. For example, since blockchain uses consensus among various parties to maintain data immutability and trust, data compartmentalization should also provide the same level of trust, accountability, and traceability. To address this issue, the system described herein supports “cross-chain” transactions when data is partitioned across multiple blockchains, thereby enabling gradually evolving business networks. can be adapted to Additionally, the system can partition data across multiple blockchains to support data partitioning and cross-chain transactions while maintaining trust, accountability, and traceability. Specifically, blockchain systems are designed to (a) compartmentalize data across multiple blockchains, (b) support cross-chain transactions, and (c) maintain trust, provenance, and traceability. can do.

本出願は、1つの実施形態では、複数のブロックチェーンにわたってトランザクション・データを区画化することに関し、別の実施形態では、クロスチェーン・トランザクションを実施するブロックチェーンに関する。 The present application relates, in one embodiment, to partitioning transaction data across multiple blockchains and, in another embodiment, to blockchains that conduct cross-chain transactions.

図1は、実施形態の様々な例による、クロスチェーン・トランザクションを管理するためのブロックチェーンのシステム100を示す。図1を参照すると、システム100は、マスタ・チェーン・ネットワーク110(マスタ・チェーン)、混合チェーン・ネットワーク120(混合チェーン)、および複数のパーティション・ブロックチェーン・ネットワークを含む。ブロックチェーン・ネットワークは、プライベート・ネットワーク、インターネット、または同様のもの、あるいはその組合せなどのネットワーク140を介して互いに接続されてもよい。システム100は、パーティション・データ・モデルに関連したトランザクションをビジネス・ネットワークに格納するために、ブロックチェーンの組合せを使用してもよく、したがって、より多くのストレージが必要なとき、または、トランザクション・データが大きくなるとき、あるいはその両方において、ストレージ容量とトランザクション・スループットを徐々に動的に両方増加させることができるビジネス・ネットワークのスケーラビリティをサポートする。全体として、提案されるシステムは、到着したトランザクションおよびクエリを、これらを処理できる適切なパーティション(すなわち、混合チェーン120またはパーティション・チェーン132~136)にルートするためのマスタ・チェーン110を含む。一方で、区画化されたチェーン132~136は、データ・ドメイン全体の一パーティション内のデータの維持をそれぞれ担っている。さらに、混合チェーン120は、複数のパーティションにわたるデータにアクセスするトランザクションを取り扱うこともできる。 FIG. 1 illustrates a blockchain system 100 for managing cross-chain transactions, according to various example embodiments. Referring to FIG. 1, system 100 includes a master chain network 110 (master chain), a mixed chain network 120 (mixed chain), and multiple partition blockchain networks. Blockchain networks may be connected together via a network 140 such as a private network, the Internet, or the like, or a combination thereof. The system 100 may use a combination of blockchains to store transactions associated with the partition data model in the business network, so when more storage is needed or transaction data It supports the scalability of business networks, which can both increase storage capacity and transaction throughput dynamically over time as the size of the network grows, or both. Overall, the proposed system includes a master chain 110 for routing incoming transactions and queries to the appropriate partitions (ie, mixed chain 120 or partition chains 132-136) that can process them. On the other hand, partitioned chains 132-136 are each responsible for maintaining data within one partition of the entire data domain. Additionally, mixed chain 120 can also handle transactions that access data across multiple partitions.

マスタ・チェーン110は、ネットワーク内のあらゆる当事者によって信頼されるポリシに基づいてトランザクションをルートするメカニズムである。集中型ルータが代わりに使用される場合、システム全体の信頼性は、ブロックチェーンの要件を満たさないこの単一のエンティティに依存することになる。したがって、マスタ・チェーン110は、一緒にハッシュ・リンクされたブロックのチェーンを含むブロックチェーンを介してパーティション・ルールの変更を持続し、追跡することができる。マスタ・チェーン110のブロックチェーンに区画化ポリシが格納されると、マスタ・チェーン110内の個々のブロックチェーン・ノードは、マスタ・チェーンに格納されたパーティション・ルールに基づいて、他の異なるブロックチェーン・ネットワーク(例えば、混合チェーン120、区画化されたチェーン132~136、等)にトランザクションをルートすることができる。マスタ・チェーン110によって格納された区画化ルール/情報は、異なる区画化されたチェーン132、134、および136のそれぞれに割り当てられたデータ範囲を含んでもよく、データ範囲は、各区画化されたチェーンに格納されたデータを識別する。さらに、マスタ・チェーン110は、区画化されたチェーン132、134、および136のそれぞれのネットワーク・エンドポイントを格納することができ、区画化されたチェーン132、134、および136の1つまたは複数のノードからデータを検索できるようにする。 Master Chain 110 is a mechanism that routes transactions based on policies that are trusted by all parties in the network. If centralized routers are used instead, the reliability of the entire system will depend on this single entity, which does not meet blockchain requirements. Thus, the master chain 110 can persist and track partition rule changes through a blockchain that includes chains of blocks that are hash-linked together. Once the partitioning policy is stored on the master chain's 110 blockchain, individual blockchain nodes within the master chain 110 can follow other different blockchains based on the partition rules stored on the master chain. • Transactions can be routed through networks (eg, mixed chain 120, partitioned chains 132-136, etc.). The partitioning rules/information stored by the master chain 110 may include data ranges assigned to each of the different partitioned chains 132, 134, and 136, the data ranges corresponding to each partitioned chain. Identifies the data stored in Further, master chain 110 may store the network endpoints of each of partitioned chains 132, 134, and 136, and one or more of partitioned chains 132, 134, and 136. Allows retrieval of data from a node.

様々な態様によれば、マスタ・チェーン110は、本明細書においてクロスチェーン・トランザクションと呼ばれる、いくつかの異なるブロックチェーンに格納された別個のデータを伴うトランザクションを処理するというリクエストを受け取ることができる。クロスチェーン・トランザクションを取り扱うための1つのオプションは、いくつかのチェーンから特定のチェーンにデータを移動させ、次に、このチェーンでトランザクションを実行することである。しかし、このアプローチは、不要な遅延および不安定をネットワークに持ち込むことになるので、実現可能な解決策ではない。代わりに、システム100は、異なるチェーンの間のトランザクション・データの混合を作り出すために、異なるブロックチェーンからのデータにアクセスし、データの異なるチェーンを伴うトランザクションを作り出すことによって、マスタ・チェーン110から提供されたクロスチェーン・トランザクションを取り扱う混合チェーン120を含む。 According to various aspects, the master chain 110 can receive requests to process transactions involving separate data stored on several different blockchains, referred to herein as cross-chain transactions. . One option for handling cross-chain transactions is to move data from several chains to a specific chain and then execute transactions on this chain. However, this approach introduces unnecessary delays and instabilities into the network and is not a viable solution. Instead, system 100 accesses data from different blockchains to create a mix of transaction data between different chains, and by creating transactions involving different chains of data, provides data from master chain 110. It includes a mixed chain 120 that handles cross-chain transactions that have been processed.

トランザクション・データは、複数の区画化されたブロックチェーン132、134、および136にわたって区画化されてもよい。マスタ・チェーン110は、問い合わせるスマート・コントラクトに基づいてインデックスを構築することによって、これらのブロックチェーンからのデータのロケーションを効率的に識別することができる。例えば、クエリは、以前にアクセスされたことがないトランザクション・データのロケーションをマスタ・チェーン110に提供することができる。さらに、実際のルーティング・モジュールは、マスタ・チェーン110に格納されたパーティション・ルールを使用するが、信頼できるものでなければならない。したがって、ルーティング・モジュール(すなわち、トランザクション・ルータ)は、ブロックチェーン・ノード・ソフトウェアと統合されてもよい。例えば、ルーティング・モジュールは、例えばHyperledger Fabric 1.0において利用可能なシステム・チェーンコードなどの特殊なタイプのスマート・コントラクト/チェーンコードを介して実施されてもよい。システム・チェーンコードは、ブロックチェーン・ソフトウェア・モジュールの統合部分であってもよい。オン・チェーン・データにアクセスする典型的なスマート・コントラクトとは対照的に、システムのスマート・コントラクトは、システム・レベルのアクセスができるように設計されてもよく、そうでなければ、サンドボックスの中で動くとされている従来のスマート・コントラクトには利用できない。 Transaction data may be partitioned across multiple partitioned blockchains 132 , 134 , and 136 . Master Chain 110 can efficiently identify the location of data from these blockchains by building an index based on the smart contracts it queries. For example, a query may provide the master chain 110 with the location of transactional data that has not been previously accessed. Furthermore, the actual routing module, which uses partition rules stored in the master chain 110, must be reliable. Thus, routing modules (ie, transaction routers) may be integrated with blockchain node software. For example, the routing module may be implemented via a special type of smart contract/chaincode, such as the system chaincode available in Hyperledger Fabric 1.0. A system chaincode may be an integral part of a blockchain software module. In contrast to typical smart contracts that access on-chain data, system smart contracts may be designed to allow system-level access, or else be sandboxed. It cannot be used for conventional smart contracts that are supposed to run inside.

図2は、実施形態の例による、ブロックチェーンのブロックチェーン・アーキテクチャ構成200を示す。構成200は、図1に示した区画化ブロックチェーンなどの従来のブロックチェーンの例であってもよい。図2を参照すると、ブロックチェーン・アーキテクチャ200は、例えば、ブロックチェーン・ノード202のグループといった、一定のブロックチェーン要素を含むことができる。ブロックチェーン・ノード202は、1つまたは複数のノード204~210を含んでもよい(4つのノードが単なる例によって描写される)。これらのノードは、ブロックチェーン・トランザクションの追加およびバリデーション処理(コンセンサス)などのいくつかの活動に関与する。ブロックチェーン・ノード204~210の1つまたは複数は、トランザクションをエンドースメントすることができ、アーキテクチャ200内の全てのブロックチェーン・ノードに対する順序付けサービス(ordering service)を提供することができる。ブロックチェーン・ノードは、ブロックチェーン認証を開始し、ブロックチェーン・レイヤ216に格納されたブロックチェーンの不変台帳に書き込もうとすることができ、このコピーも、土台となる物理的なインフラストラクチャ214に格納することができる。ブロックチェーン構成は、参加者によって求められるカスタマイズ構成に従って作り出すことができ、独自の状態を維持し、独自の資産を制御し、外部情報を受け取ることができる、格納されたプログラム/アプリケーション・コード220(例えば、チェーンコード、スマート・コントラクト、等)にアクセスして実行するための、アプリケーション・プログラミング・インターフェース(API:application programming interface)222にリンクされた1つまたは複数のアプリケーション224を含んでもよい。これは、トランザクションとして配布され、全てのブロックチェーン・ノード204~210に、分散型台帳に付け加えることによってインストールすることができる。 FIG. 2 shows a blockchain architecture configuration 200 of a blockchain, according to an example embodiment. Configuration 200 may be an example of a conventional blockchain, such as the compartmentalized blockchain shown in FIG. Referring to FIG. 2, a blockchain architecture 200 may include certain blockchain elements, such as a group of blockchain nodes 202, for example. Blockchain node 202 may include one or more nodes 204-210 (four nodes are depicted by way of example only). These nodes are involved in several activities such as blockchain transaction addition and validation processing (consensus). One or more of blockchain nodes 204 - 210 can endorse transactions and provide an ordering service for all blockchain nodes in architecture 200 . A blockchain node can attempt to initiate a blockchain authentication and write to the blockchain's immutable ledger stored in the blockchain layer 216, a copy of which is also stored in the underlying physical infrastructure 214. can do. The blockchain configuration can be created according to the customized configuration desired by the participants, maintain its own state, control its own assets, and receive external information as stored program/application code 220 ( may include one or more applications 224 linked to an application programming interface (API) 222 for accessing and executing chaincodes, smart contracts, etc.). It is distributed as a transaction and can be installed on all blockchain nodes 204-210 by adding to the distributed ledger.

ブロックチェーンのベースまたはプラットフォーム212は、ブロックチェーン・データ、サービス(例えば、暗号トラスト・サービス、仮想実行環境、等)、および、新しいトランザクションを受け取って格納し、データ・エントリにアクセスしようとしている監査人がアクセスできるようにするために使用され得る土台となる物理的なコンピュータ・インフラストラクチャという様々なレイヤを含んでもよい。ブロックチェーン・レイヤ216は、プログラム・コードを処理し、物理的なインフラストラクチャ214を利用するのに必要な仮想実行環境にアクセスできるようにするインターフェースを公開してもよい。暗号トラスト・サービス218は、資産交換トランザクションなどのトランザクションを検証し、情報を非公開にしておくために使用することができる。 Blockchain base or platform 212 includes blockchain data, services (e.g., crypto trust services, virtual execution environments, etc.), and auditors seeking to receive and store new transactions and access data entries. may include various layers of underlying physical computer infrastructure that can be used to provide access to Blockchain layer 216 may expose interfaces that allow program code to process and access the virtual execution environment needed to utilize physical infrastructure 214 . Crypto trust services 218 can be used to validate transactions, such as asset exchange transactions, and keep information private.

図2のブロックチェーン・アーキテクチャ構成は、ブロックチェーン・プラットフォーム212によって公開された1つまたは複数のインターフェース、および提供されたサービスを介して、プログラム/アプリケーション・コード220を処理し、実行することができる。コード220は、ブロックチェーン資産を管理することができる。例えば、コード220は、データを格納し、転送することができ、スマート・コントラクト、および、条件または実行される他のコード要素と関連付けられたチェーンコードの形で、ノード204~210によって実行されてもよい。非限定的な例として、スマート・コントラクトは、リマインダ、更新、または、変更、更新、等が行われる他の通知、あるいはその組合せを実行するために作り出されてもよい。スマート・コントラクトは、それ自体を、台帳の認可およびアクセス要件ならびに使用と関連付けられたルールを識別するために使用することができる。例えば、トランザクション・データ226は、ブロックチェーン・レイヤ216に含まれる1つまたは複数の処理エンティティ(例えば仮想マシン)によって処理されてもよい。トランザクション・データ226は、ブロックチェーンを介して実行されるトランザクションを一緒にリンクするデータ・ブロックのハッシュ・リンクされたチェーンを含んでもよい。例えば、最も新しいトランザクションは、ブロックチェーンの最後尾のブロックに格納されてもよい。トランザクションの結果228は、クロスチェーン・トランザクションを介した別のブロックチェーンからのデータと混合されたトランザクション・データ226を含んでもよい。物理的なインフラストラクチャ214は、本明細書で説明されるデータまたは情報のいずれかを検索するために利用されてもよい。 The blockchain architecture configuration of FIG. 2 can process and execute program/application code 220 via one or more interfaces and services provided by blockchain platform 212. . Code 220 can manage blockchain assets. For example, code 220 can store and transfer data and is executed by nodes 204-210 in the form of chaincode associated with smart contracts and conditions or other code elements to be executed. good too. As a non-limiting example, smart contracts may be created to implement reminders, updates, or other notifications that changes, updates, etc. are made, or a combination thereof. A smart contract can itself be used to identify the rules associated with the ledger's authorization and access requirements and usage. For example, transaction data 226 may be processed by one or more processing entities (eg, virtual machines) included in blockchain layer 216 . Transaction data 226 may include a hash-linked chain of data blocks that link together transactions executed via a blockchain. For example, the most recent transaction may be stored in the last block of the blockchain. Transaction results 228 may include transaction data 226 mixed with data from another blockchain via cross-chain transactions. Physical infrastructure 214 may be utilized to retrieve any of the data or information described herein.

チェーンコードの中のスマート・コントラクトは、高水準のアプリケーションおよびプログラミング言語によって作り出され、その後、ブロックチェーン内のブロックに書き込まれてもよい。スマート・コントラクトは、ブロックチェーン(例えば、ブロックチェーンのピアの分散型ネットワーク)によって登録、格納、または複製、あるいはその組合せが行われる実行可能コードを含んでもよい。トランザクションは、スマート・コントラクトと関連付けられた条件が満たされるのに応じて実行されることが可能なスマート・コントラクト・コードの実行である。スマート・コントラクトの実行は、デジタル・ブロックチェーン台帳の状態への信頼できる修正をトリガすることができる。スマート・コントラクトの実行によって行われるブロックチェーン台帳への修正は、1つまたは複数のコンセンサス・プロトコルを通じてブロックチェーンのピアの分散型ネットワークの全体を通して自動的に複製されてもよい。 Smart contracts in chaincode may be created by high-level applications and programming languages and then written to blocks in the blockchain. A smart contract may include executable code that is registered, stored, and/or replicated by a blockchain (eg, a distributed network of blockchain peers). A transaction is an execution of smart contract code that can be executed upon satisfaction of conditions associated with the smart contract. Execution of smart contracts can trigger trusted modifications to the state of the digital blockchain ledger. Modifications to the blockchain ledger made by executing smart contracts may be automatically replicated throughout a distributed network of blockchain peers through one or more consensus protocols.

スマート・コントラクトは、キーと値とのペアのフォーマットでブロックチェーンにデータを書き込むことができる。さらに、スマート・コントラクト・コードは、ブロックチェーンに格納された値を読み込み、アプリケーションの動作時にこの値を使用することができる。スマート・コントラクト・コードは、様々な論理演算の出力をブロックチェーンに書き込むことができる。コードは、仮想マシンまたは他のコンピューティング・プラットフォーム内に一時的なデータ構造を作り出すために使用されてもよい。ブロックチェーンに書き込まれたデータは、公開のものであること、または、暗号化され非公開のものとして維持されること、あるいはその両方が可能である。スマート・コントラクトによって使用/生成される一時的なデータは、与えられた実行環境によってメモリに保持され、その後、ブロックチェーンに必要なデータが識別されると削除される。 Smart contracts can write data to the blockchain in the form of key-value pairs. Additionally, the smart contract code can read values stored on the blockchain and use this value when the application is running. Smart contract code can write the output of various logical operations to the blockchain. The code may be used to create temporary data structures within virtual machines or other computing platforms. Data written to a blockchain can be public, encrypted and kept private, or both. Temporary data used/generated by a smart contract is held in memory by a given execution environment and then deleted once data needed by the blockchain is identified.

チェーンコードは、追加の特徴を伴うスマート・コントラクトのコード解釈を含んでもよい。本明細書で説明されるように、チェーンコードは、コンピューティング・ネットワーク上で展開されたプログラム・コードであってもよく、コンセンサス処理中にチェーン・バリデータによって一緒に実行され、バリデーションされる。チェーンコードは、ハッシュを受け取り、以前に格納された特徴抽出器(feature extractor)を使って作り出されたデータ・テンプレートと関連付けられたハッシュをブロックチェーンから検索する。ハッシュ識別子のハッシュと、格納された識別子のテンプレート・データから作り出されたハッシュとが一致する場合、チェーンコードは、リクエストされたサービスへの認可キーを送る。チェーンコードは、暗号の詳細と関連付けられたブロックチェーン・データに書き込むことができる。図2では、チェーンコードは、トランザクションを実行した結果を表すデータ・ブロックを格納することによって、資産への修正を取り入れることができる。1つの機能は、新しい値を資産に追加すること、資産の値を変更すること、資産の値を削除すること、および同様のものであってもよく、ノード204~210の1つまたは複数に分散されてもよく、これらによって格納されてもよい。 A chaincode may include a code interpretation of a smart contract with additional features. As described herein, a chaincode may be program code deployed on a computing network and executed together and validated by a chain validator during the consensus process. The chaincode receives the hash and retrieves the hash associated with the data template created using the previously stored feature extractor from the blockchain. If the hash of the hash identifier matches the hash created from the stored template data of the identifier, the chaincode sends the authorization key to the requested service. Chaincode can be written to blockchain data associated with cryptographic details. In FIG. 2, the chaincode can incorporate modifications to assets by storing data blocks representing the results of executing transactions. One function may be adding a new value to an asset, modifying an asset's value, deleting an asset's value, and the like, which may be performed by one or more of the nodes 204-210. They may be distributed or stored by them.

クライアントは、ブロックチェーン・トランザクション(例えば、クロスチェーン・トランザクション)を実行するというリクエストを送信することができ、NODE、Java(R)、PYTHON、および同様のものなどの、サポートされるソフトウェア開発キット(SDK:software development kit)を活用するアプリケーションを含んでもよく、アプリケーションは、利用可能なアプリケーション・プログラミング・インターフェース(API)を利用して、クロスチェーン・トランザクション・プロポーザルを生成する。プロポーザルは、異なるブロックチェーンの台帳または複数の台帳からデータを読むこと、台帳にデータを書き込むこと、およびその両方をできるように、チェーンコード機能を起動する(すなわち、資産に対する新しいキー値のペアを書き込む)というリクエストである。SDKは、正しく設計されたフォーマット(例えば、リモート・プロシージャ・コール(RPC)に対するプロトコル・バッファ)にトランザクション・プロポーザルをパッケージにするためのシム(shim)として機能し、トランザクション・プロポーザルに対する一意の署名を生成するためのクライアントの暗号資格証明書とすることができる。Java(R)および全てのJava(R)に基づく商標およびロゴは、Oracleまたはその系列会社あるいはその両方の商標または登録商標である。 A client can send a request to perform a blockchain transaction (e.g., a cross-chain transaction), supported software development kits (such as NODE, Java(R), PYTHON, and the like) An application that utilizes a software development kit (SDK) may be included that utilizes available application programming interfaces (APIs) to generate cross-chain transaction proposals. Proposals invoke chaincode functions (i.e., create new key-value pairs for assets write). The SDK acts as a shim for packaging transaction proposals into well-designed formats (e.g., protocol buffers for remote procedure calls (RPCs)) and provides unique signatures for transaction proposals. It can be the client's cryptographic credentials to generate. Java(R) and all Java(R)-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates.

チェーンコードは、レスポンス値、リード・セット、およびライト・セットを含むトランザクションの結果を生成するように、現在の状態データベースに対して実行されてもよい。しかし、この時点で台帳への更新は行われない。むしろ、値のセットは、エンドースメントするピア・ノードの署名とともに、クライアントのSDKにプロポーザル・レスポンスとして返されてもよく、SDKは、アプリケーションが消費することになるペイロードを解析する。 The chaincode may be run against the current state database to produce transactional results including response values, read sets, and write sets. However, no updates to the ledger are made at this point. Rather, the set of values, along with the endorsing peer node's signature, may be returned as a proposal response to the client's SDK, which parses the payload that the application will consume.

それに応じて、クライアントのアプリケーションは、エンドースメントするピアの署名を検査/検証し、プロポーザル・レスポンスが同じであるかどうかを決定するためにプロポーザル・レスポンスを比較する。チェーンコードが台帳に問い合わせるだけの場合、アプリケーションは、クエリ・レスポンスを検査することになり、典型的には、順序付けノード・サービス(ordering node service)にトランザクションを投入することはない。クライアント・アプリケーションが、台帳を更新するために順序付けノード・サービスにトランザクションを投入しようとする場合、アプリケーションは、投入前に指定のエンドースメント・ポリシが満たされているかどうか(すなわち、トランザクションに必要な全てのピア・ノードがトランザクションをエンドースメントしたかどうか)を決定する。ここで、クライアントは、トランザクションに対する複数の当事者のうちのただ1つを含んでもよい。この場合、各クライアントは、独自のエンドースメント・ノード(endorsing node)を有することができ、各エンドースメント・ノードは、トランザクションをエンドースメントする必要があることになる。アーキテクチャは、アプリケーションが、レスポンスを検査しないことを選択するか、そうでなければ、エンドースメントされなかったトランザクションを転送したとしても、エンドースメント・ポリシが、ピアによって依然として実施されること、および、コミット・バリデーション・フェーズにおいて守られることになるというものである。 In response, the client's application checks/verifies the endorsing peer's signature and compares the proposal responses to determine if they are the same. If the chaincode only queries the ledger, the application will inspect the query response and typically will not submit the transaction to the ordering node service. When a client application attempts to submit a transaction to the ordering node service to update the ledger, the application must check whether the specified endorsement policy has been met (i.e. all required peer node endorsed the transaction). Here, a client may include only one of multiple parties to a transaction. In this case, each client could have its own endorsing node, and each endorsing node would need to endorse the transaction. The architecture ensures that even if an application chooses not to inspect the response or otherwise forwards a transaction that was not endorsed, the endorsement policy is still enforced by the peer and the commit・It will be protected in the validation phase.

検査の成功後、クライアントは、エンドースメントを集めてトランザクションにし、順序付けノードへのトランザクション・メッセージの中で資産およびレスポンスのトランザクション・プロポーザルをブロードキャストする。トランザクションは、リード/ライト・セット、エンドースメントするピアの署名、およびチャネルIDを収めることができる。順序付けノードは、その動作を行うために、トランザクションの全内容を検査する必要がなく、代わりに順序付けノードは、ネットワーク内の全てのチャネルからのトランザクションを単純に受け取り、チャネルによってこれらを時系列に並べ、チャネル毎にトランザクションのブロックを作り出すことができる。 After successful verification, the client aggregates the endorsements into a transaction and broadcasts the asset and response transaction proposals in a transaction message to the ordering node. A transaction may contain a read/write set, the endorsing peer's signature, and a channel ID. The ordering node does not need to examine the full contents of the transaction in order to do its work, instead the ordering node simply receives the transactions from all channels in the network and chronologically orders them by channel. , can produce a block of transactions per channel.

図3は、分散型非集中型ピアツーピア・アーキテクチャ、ならびにユーザの役割およびパーミッションを管理する証明機関318を特徴としている、単一ブロックチェーンの許可型ブロックチェーン・ネットワーク300の例を示す。マスタ・チェーン、混合チェーン、およびパーティション・チェーンのいずれかは、許可型ブロックチェーン・ネットワーク300であってもよい。この例では、ブロックチェーン・ユーザ302は、許可型ブロックチェーン・ネットワーク310にトランザクションを投入することができる。トランザクションは、展開、起動、またはクエリであることが可能であり、SDKを活用するクライアント・サイドのアプリケーションを通じて、REST APIを直接通じて、または同様のものを通じて発行されてもよい。信頼できるビジネス・ネットワークは、監査人(例えば米国株式市場の証券取引委員会)などの規制当局のシステム314へのアクセスを提供することができる。一方で、ノード308であるブロックチェーン・ネットワーク・オペレータのシステムは、規制当局のシステム310を「監査人」として、また、ブロックチェーン・ユーザ302を「クライアント」として登録することなど、メンバのパーミッションを管理する。監査人は、台帳に問い合わせることだけに限定される可能性があり、その一方で、クライアントは、一定のタイプのチェーンコードの展開、起動、およびクエリの権限を付与される可能性がある。 FIG. 3 shows an example of a single-blockchain, permissioned blockchain network 300 featuring a decentralized, decentralized peer-to-peer architecture and a certification authority 318 that manages user roles and permissions. Any of the master chain, mixed chain, and partition chain may be a permissioned blockchain network 300 . In this example, blockchain user 302 is able to submit transactions to permissioned blockchain network 310 . Transactions can be deployments, invocations, or queries, and may be issued through client-side applications leveraging the SDK, directly through REST APIs, or the like. A trusted business network can provide access to systems 314 of regulatory agencies such as auditors (eg, the Securities and Exchange Commission of the US stock market). On the other hand, the blockchain network operator's system, which is a node 308, enforces member permissions, such as registering the regulator's system 310 as an "auditor" and the blockchain user 302 as a "client". to manage. Auditors may be limited to querying the ledger only, while clients may be granted permission to deploy, launch, and query certain types of chaincodes.

ブロックチェーン開発者のシステム316は、チェーンコード、およびクライアント・サイドのアプリケーションを書く。ブロックチェーン開発者のシステム316は、チェーンコードを、RESTインターフェースを通じてネットワークに直接展開することができる。従来のデータ・ソース330からの資格証明書をチェーンコードに含めるために、開発者のシステム316は、帯域外接続を使用してデータにアクセスすることができる。この例では、ブロックチェーン・ユーザ302は、ピア・ノード312を通じてネットワークに接続する。いずれかのトランザクションを進める前に、ピア・ノード312は、証明機関318からのユーザの登録およびトランザクション証明書を検索する。場合によっては、ブロックチェーン・ユーザは、許可型ブロックチェーン・ネットワーク310で取引するために、これらのデジタル証明書を保有しなければならない。一方で、チェーンコードを動かそうとするユーザは、従来のデータ・ソース330上でユーザの資格証明書を検証することを要求される可能性がある。ユーザの認可を確認するために、チェーンコードは、従来の処理プラットフォーム320を通じてこのデータへの帯域外接続を使用することができる。 Blockchain developer system 316 writes chaincode and client-side applications. A blockchain developer's system 316 can deploy chaincode directly to the network through a REST interface. To include credentials from legacy data sources 330 in the chaincode, developer's system 316 can access the data using an out-of-band connection. In this example, blockchain user 302 connects to the network through peer node 312 . Before proceeding with any transaction, peer node 312 retrieves the user's registration and transaction credentials from certificate authority 318 . In some cases, blockchain users must possess these digital certificates in order to transact on permissioned blockchain network 310 . On the other hand, a user attempting to run a chaincode may be required to verify the user's credentials on the traditional data source 330 . To verify user authorization, Chaincode can use an out-of-band connection to this data through the conventional processing platform 320 .

図4は、実施形態の例による、複数のパーティション・ブロックチェーンにわたるデータ区画化を管理するマスタ・チェーン410の処理400Aを示し、図5は、実施形態の例による、複数のパーティション・ブロックチェーンからのデータに基づいてクロスチェーン・トランザクションを実行する混合チェーン420の処理400Bを示す。図4を参照すると、マスタ・チェーン410は、異なるパーティション・ブロックチェーン432、434、および436の中でデータがどのように区画化されるかについての区画化情報のブロックのハッシュ・リンクされたチェーンを含むブロックチェーン412を管理する。ドメイン全体は、サブドメインまたはサブセットに分けられてもよく、ここで、各パーティション・ブロックチェーン432、434、および436は、他のパーティション・ブロックチェーンを除く一意のサブドメインまたはサブセットを含む。さらに、ブロックチェーン412は、トランザクション・データを検索し、提供するための、各パーティション・ブロックチェーン432、434、および436のノードのネットワーク・ロケーション(例えば、エンドポイント、URL、等)を識別する情報を格納することができる。 FIG. 4 illustrates a process 400A of a master chain 410 managing data partitioning across multiple partition blockchains, according to an example embodiment, and FIG. 5 illustrates a process 400A from multiple partition blockchains, according to an example embodiment. 4 shows a process 400B of a mixed chain 420 executing cross-chain transactions based on data in . Referring to FIG. 4, master chain 410 is a hash-linked chain of blocks of partitioning information about how data is partitioned among different partition blockchains 432, 434, and 436. manages a blockchain 412 including An entire domain may be divided into subdomains or subsets, where each partition blockchain 432, 434, and 436 contains a unique subdomain or subset to the exclusion of other partition blockchains. Blockchain 412 also includes information identifying the network locations (e.g., endpoints, URLs, etc.) of nodes in each partition blockchain 432, 434, and 436 for retrieving and providing transaction data. can be stored.

例えば、マスタ・チェーン410の機能は、対応する3つのスマート・コントラクトを介して実施されてもよい。1つの例では、パーティショナのスマート・コントラクト414は、例えば、各パーティション・ブロックチェーン432~436に割り当てられたデータ・ドメインの各パーティションにおいて維持されるデータの範囲の境界など、データ・ドメイン全体をどのように区画化できるかを決定する区画化機能に対する当事者(マスタ・チェーン・ノード)間のコンセンサスを維持する。マスタ・チェーン410は、トランザクションの処理を(区画化機能に従って)担っている適切なチェーンに、到着したトランザクションをルートするトランザクション・ルータのスマート・コントラクト416をさらに含んでもよい。例えば、シングル・チェーン・トランザクションは、トランザクション・データが格納された単一のチェーンに直接ルートされてもよい。一方で、クロスチェーン・トランザクションは、処理のために混合チェーン420にルートされてもよい。ルーティング情報は、ブロックチェーン412に格納された区画化情報から識別されてもよい。 For example, the functionality of master chain 410 may be implemented via three corresponding smart contracts. In one example, the partitioner's smart contract 414 governs the entire data domain, e.g., the boundaries of the range of data maintained in each partition of the data domain assigned to each partition blockchain 432-436. Maintain consensus among the parties (master chain nodes) on the partitioning function that determines how partitioning can be done. The master chain 410 may further include a transaction router smart contract 416 that routes incoming transactions to the appropriate chain responsible for processing the transaction (according to its partitioning function). For example, a single chain transaction may be routed directly to the single chain on which the transaction data is stored. On the other hand, cross-chain transactions may be routed to mixed chain 420 for processing. Routing information may be identified from the partitioning information stored on blockchain 412 .

マスタ・チェーン410は、クライアントからのクエリの取扱いを担っているクエリ・フェデレータのスマート・コントラクト418をさらに含んでもよい。いくつかの実施形態において、パーティショナのスマート・コントラクト414は、オン・チェーン・データに基づいてマスタ・チェーン内の各ピア・ノードの内部で動くスマート・コントラクトであってもよく、一方で、トランザクション・ルータ416およびクエリ・フェデレータ418は、ホスト・ノード内の他の様々なソフトウェア構成要素にアクセスするシステム・レベルの能力を有するが、サンドボックスの内部で動く普通のスマート・コントラクトには利用できない、(システム・チェーンコードとしても知られる)特殊なシステムのスマート・コントラクトであってもよい。一方で、区画化されたブロックチェーン432、434、および436は、完全なドメインを知らずにデータ・ドメイン全体の異なるパーティションを維持する従来のブロックチェーン・ネットワークであってもよい。各区画化されたチェーンは、トランザクションおよびクエリ・リクエストをマスタ・チェーン410から受け取り、これらのリクエストを実行するシングル・チェーン・ハンドラのスマート・コントラクトを動かすことができる。 The master chain 410 may further include a query federator smart contract 418 responsible for handling queries from clients. In some embodiments, the partitioner smart contract 414 may be a smart contract running inside each peer node in the master chain based on on-chain data, while the transaction - The router 416 and query federator 418 have system-level capabilities to access various other software components within the host node, but are not available to ordinary smart contracts running inside the sandbox; It can also be a special system smart contract (also known as system chaincode). On the other hand, partitioned blockchains 432, 434, and 436 may be conventional blockchain networks that maintain different partitions across data domains without knowing the complete domain. Each compartmentalized chain can receive transaction and query requests from the master chain 410 and run a single chain handler smart contract that executes these requests.

図5を参照すると、混合チェーン420は、クロスチェーン・トランザクションをマスタ・チェーン410から受け取り、クロスチェーン・トランザクションを実行する。例えば、マスタ・チェーン410から受け取ったリクエストは、クロスチェーン・トランザクションのためのデータが格納されたブロックチェーン・ネットワークのネットワーク・ロケーションを含んでもよい。したがって、混合チェーン420は、クロスチェーン・トランザクションのためのデータを有する、複数の区画化されたブロックチェーン432、434、および436の中のどの区画化されたブロックチェーンであるかを識別することができる。混合チェーン420は、マスタ・チェーン410からトランザクション・リクエストを受け取り、複数のパーティションにわたるデータへのアクセスを担っている、クロスチェーン・ハンドラのスマート・コントラクト424を含む。さらに、クロスチェーン・ハンドラ424は、クロスチェーン・トランザクションを実行し、このことにより、異なるパーティション・ブロックチェーンからのデータを一緒に混合し、混合された結果を作り出す。クロスチェーン・ハンドラ424は、システムで行われた全てのクロスチェーン・トランザクションの結果を一緒にリンクするブロックチェーン422に、クロスチェーン・トランザクションの結果を格納することができる。さらに、クロスチェーン・ハンドラ424は、格納されたデータ/資産をパーティション・ブロックチェーンが更新できるようにするために、クロスチェーン・トランザクションの結果とともに、トランザクションのためのデータを提供したパーティション・ブロックチェーンをさらに更新することができる。 Referring to FIG. 5, mixed chain 420 receives cross-chain transactions from master chain 410 and executes the cross-chain transactions. For example, the request received from master chain 410 may include the network location of the blockchain network where the data for the cross-chain transaction is stored. Accordingly, mixed chain 420 can identify which partitioned blockchain among multiple partitioned blockchains 432, 434, and 436 that has data for cross-chain transactions. can. The mixed chain 420 includes a cross-chain handler smart contract 424 that receives transaction requests from the master chain 410 and is responsible for accessing data across multiple partitions. In addition, cross-chain handler 424 performs cross-chain transactions, thereby mixing data from different partition blockchains together to produce mixed results. Cross-chain handler 424 can store the results of cross-chain transactions on blockchain 422, which links together the results of all cross-chain transactions made in the system. In addition, the cross-chain handler 424 sends the partition blockchain that provided the data for the transaction along with the results of the cross-chain transaction to allow the partition blockchain to update the stored data/assets. It can be updated further.

様々な実施形態によれば、マスタ・チェーン410は、他のブロックチェーン(420、432、434、および436)のエンドポイントの情報で初期化されてもよい。マスタ・チェーン410の中で、ネットワーク内の各当事者は、オフ・ネットワークでパーティション・ルールのコンセンサスに至ることができ、1つの権限付与された当事者は、パーティショナのスマート・コントラクト414内の「setPartitionRule」メソッドを起動して、ブロックチェーン412内のパーティション・ルールを設定することが可能である。パーティション・ルールへのいずれの変更もブロックチェーン412に格納され、これらを追跡できるようにする。初期化後、パーティショナのスマート・コントラクト414は、このマスタ・チェーン内のあらゆるノードが、パーティション・ルールをフェッチし、このルールに従ってトランザクションをルートできるように、使用可能フラグを設定することができる。さらに、トランザクション・ルータのスマート・コントラクト416は、これらのトランザクションによってどのデータがアクセスされたかを最初に識別することができる。例えば、トランザクション・ルータ416は、パーティショナのスマート・コントラクト414を通じてブロックチェーンから区画化ルールを探索することができる。様々な実施形態によれば、次に、トランザクション・ルータ416は、どのブロックチェーン・ネットワークにトランザクションがルートされるべきかを判定する。例えば、トランザクションが単一パーティション内のデータにアクセスするだけの場合、トランザクションは、特定の区画化されたブロックチェーン・ネットワークにルートされることになる。反対に、複数のパーティション内のデータにアクセスするトランザクションは、処理のために混合チェーン420のネットワークにルートされる。 According to various embodiments, master chain 410 may be initialized with the endpoint information of other blockchains (420, 432, 434, and 436). Within the master chain 410, each party in the network can reach consensus on a partition rule off-network, and one authorized party can use the "setPartitionRule ” method to set the partition rules within the blockchain 412 . Any changes to partition rules are stored on the blockchain 412, allowing them to be tracked. After initialization, the partitioner smart contract 414 can set the enable flag so that any node in this master chain can fetch the partition rule and route transactions according to this rule. Additionally, transaction router smart contract 416 can initially identify what data was accessed by these transactions. For example, the transaction router 416 can look up the partitioning rules from the blockchain through the partitioner's smart contract 414 . According to various embodiments, transaction router 416 then determines to which blockchain network the transaction should be routed. For example, if a transaction only accesses data within a single partition, the transaction will be routed to a specific partitioned blockchain network. Conversely, transactions that access data in multiple partitions are routed to the network of Mixed Chains 420 for processing.

一方で、混合チェーン420におけるトランザクションを処理するためのワークフローは、クロスチェーン・ハンドラのスマート・コントラクト424が、マスタ・チェーンのトランザクション・ルータからトランザクションおよびパーティション情報を受け取ることを含む。それに応じて、クロスチェーン・ハンドラ424は、異なるチェーンからデータをフェッチし、フェッチしたデータ、および、独自のチェーン412内の新しい値を存続させ、別個の「setDiff」トランザクションを開始して、異なる区画化されたチェーン内の異なる当事者のために最新の値を更新する。例えば、「X」の残高が「B-チェーン」434からフェッチされ、「Y」の残高が「A-チェーン」432からフェッチされる場合、XからYへの残高移動トランザクションの後、XとYの最終的な残高の差は、「B-チェーン」内の「setDiff」トランザクションを使用して設定されることになり、逆もまた同様である。このようにして、「混合チェーン」は、クロスチェーン・トランザクションを収めることになるが、差分変化(delta change)による値を更新するために別個の「setDiff」トランザクションで他の関連チェーンも更新する。いくつかの実施形態において、クロスチェーン・トランザクションが処理中であり、クロスチェーン・トランザクションと共通のいくつかのデータにアクセスする新しく到着したトランザクションがある場合、この新しいトランザクションは、定義された期間保留されても、トランザクション・ルータ416によってすぐに廃棄されてもよい。 On the one hand, the workflow for processing transactions in the mixed chain 420 involves the cross-chain handler's smart contract 424 receiving transaction and partition information from the master chain's transaction router. In response, the cross-chain handler 424 fetches data from a different chain, persists the fetched data and the new value in its own chain 412, and initiates a separate "setDiff" transaction to update the latest values for different parties in the encrypted chain. For example, if balances for 'X' are fetched from the 'B-chain' 434 and balances for 'Y' are fetched from the 'A-chain' 432, after a balance transfer transaction from X to Y, X and Y will be set using the 'setDiff' transaction in the 'B-Chain' and vice versa. In this way, a 'mixed chain' will contain cross-chain transactions, but also update other related chains with separate 'setDiff' transactions to update values due to delta changes. In some embodiments, if a cross-chain transaction is in progress and there is a newly arriving transaction that accesses some data in common with the cross-chain transaction, this new transaction is held for a defined period of time. may be immediately discarded by the transaction router 416.

別の例として、区画化機能に含まれる区画化属性に基づいてクエリがデータにアクセスする場合、クエリ・フェデレータ418は、関心のあるデータを維持する特定の区画化されたチェーンにクエリをルートするだけである。対照的に、非区画化属性に基づいてクエリがデータにアクセスする場合、クエリ・フェデレータ418は、異なるブロックチェーン・パーティションの間のどこにデータが格納されているかを認識していなくてもよい。この場合、クエリ・フェデレータ418は、あらゆる区画化されたチェーンにクエリを転送し、これらのチェーンによって返された結果を集めた後、クライアントに返すことができる。 As another example, if a query accesses data based on the partitioning attributes included in the partitioning function, query federator 418 routes the query to the particular partitioned chain that maintains the data of interest. Only. In contrast, when queries access data based on non-partitioned attributes, query federator 418 may not be aware of where data is stored among different blockchain partitions. In this case, the query federator 418 can forward queries to any partitioned chains and collect the results returned by those chains before returning them to the client.

説明されたように、混合チェーン420は、異なるパーティション・ブロックチェーン432~436にわたるトランザクションを実行することができる。例えば、トランザクション・ルータ414は、到着したトランザクションに含まれるユーザ情報、および、そのブロックチェーン412(すなわち、マスタ・チェーンまたはパーティション・スマート・コントラクト)内で維持されているパーティション・ルールを読み込むことができる。非限定的な例として、トランザクション・ルータ414は、ユーザ「U1」と関連付けられたデータ・レコードがパーティションA432にあり、その一方でユーザ「U2」と関連付けられたデータ・レコードがパーティションB434にあることを識別することができる。この例では、トランザクション・ルータ414は、クロスチェーン・トランザクションが「U1」および「U2」に対して進行中であるという情報でそのロック・テーブルを更新することができる。次に、このトランザクションは、「U1」、「U2」、およびこれらのブロックチェーン・ノードのURLの詳細とともに混合チェーン420に転送されてもよい。それに応じて、クロスチェーン・ハンドラ424は、「U1」に関するデータをパーティションA432から、また「U2」に関するデータをパーティションB434からフェッチすることができる。さらに、クロスチェーン・ハンドラ424は、独自のブロックチェーン422内でトランザクションを作り出し、さらに、U1の残高の差分とともに「SetDiff」トランザクションをU1のブロックチェーン(パーティションA432)に送り、U2の残高の差分とともに別個の「SetDiff」トランザクションをU2のブロックチェーン(パーティションB434)に送ることができる。 As described, mixed chain 420 is capable of executing transactions across different partitioned blockchains 432-436. For example, transaction router 414 can read user information contained in incoming transactions and partition rules maintained within its blockchain 412 (i.e., master chain or partition smart contract). . As a non-limiting example, transaction router 414 determines that data records associated with user "U1" are in partition A 432, while data records associated with user "U2" are in partition B 434. can be identified. In this example, transaction router 414 may update its lock table with the information that a cross-chain transaction is in progress for 'U1' and 'U2'. This transaction may then be transferred to the mixed chain 420 along with the details of 'U1', 'U2', and the URLs of these blockchain nodes. In response, cross-chain handler 424 may fetch data for 'U1' from partition A 432 and data for 'U2' from partition B 434 . In addition, the cross-chain handler 424 creates a transaction within its own blockchain 422 and also sends a "SetDiff" transaction to U1's blockchain (partition A 432) with the delta of U1's balance and A separate "SetDiff" transaction can be sent to U2's blockchain (Partition B 434).

図6は、実施形態の例による、クロスチェーン処理のためのトランザクションをルーティングする方法500を示す。例えば、方法500は、マスタ・ブロックチェーン・ネットワーク内のブロックチェーン・ノードによって実行されるスマート・コントラクトを介して実施されてもよい。別の例として、方法500は、マスタ・ブロックチェーン・ネットワーク内のコンピューティング・ノードのグループによって行われてもよい。図6を参照すると、510において、方法は、複数のブロックチェーンにわたってストレージを一緒にリンクするパーティション情報を、マスタ・チェーンを介して格納することを含んでもよい。例えば、パーティション情報は、マスタ・チェーンのノードのコンセンサスによって生成されたパーティション・ルールを含んでもよい。パーティション・ルールは、複数の異なるブロックチェーンのそれぞれによって格納されたデータの範囲、および、ユニフォーム・リソース・ロケータ(URL)または同様のものなどの各ブロックチェーンのロケーション情報を識別することができる。いくつかの実施形態において、方法は、マスタ・チェーンを管理する複数のブロックチェーン・ノードからのパーティション情報のコンセンサスを検出するのに応答して、パーティション情報を確立することを含んでもよい。 FIG. 6 illustrates a method 500 of routing transactions for cross-chain processing, according to an example embodiment. For example, method 500 may be implemented via smart contracts executed by blockchain nodes within a master blockchain network. As another example, method 500 may be performed by a group of computing nodes within a master blockchain network. Referring to FIG. 6, at 510, the method may include storing partition information linking storage together across multiple blockchains via the master chain. For example, the partition information may include partition rules generated by consensus of the nodes of the master chain. Partition rules can identify the extent of data stored by each of multiple different blockchains, and location information for each blockchain, such as a Uniform Resource Locator (URL) or the like. In some embodiments, the method may include establishing partition information in response to finding consensus on partition information from multiple blockchain nodes managing a master chain.

520において、方法は、ブロックチェーン・トランザクションを実行するというリクエストをクライアントから受け取ることを含んでもよい。例えば、クライアントは、単一のブロックチェーンからのデータを活用するトランザクション、または、複数の異なるブロックチェーンからのデータを活用するトランザクションをリクエストすることができる。530において、方法は、マスタ・チェーンに格納されたパーティション情報に基づいて、ブロックチェーン・トランザクションが、1つのブロックチェーンに格納されたデータと関連付けられているか、異なるブロックチェーンに別々に格納されたデータと関連付けられているかを、マスタ・チェーンを介して決定することを含んでもよい。例えば、トランザクションは、特定の資産またはデータ項目を識別することができ、パーティション情報は、マスタ・チェーンおよび区画化情報を管理するパーティショナのスマート・コントラクトに基づいて、資産またはデータ項目がどこに格納されたかを識別することができる。 At 520, the method may include receiving a request from a client to perform a blockchain transaction. For example, a client can request a transaction that leverages data from a single blockchain, or a transaction that leverages data from multiple different blockchains. At 530, the method determines whether blockchain transactions are associated with data stored on one blockchain or data stored separately on different blockchains based on partition information stored on the master chain. may include determining, via the master chain, whether it is associated with For example, a transaction can identify a particular asset or data item, and partition information is where the asset or data item is stored, based on the master chain and partitioner smart contracts that manage the partitioning information. can identify

ブロックチェーン・トランザクションが、異なるブロックチェーンに別々に格納されたデータと関連付けられているという決定に応答して、540において、方法は、異なるブロックチェーンの中から各ブロックチェーンのロケーションを、マスタ・チェーンを介して識別し、ブロックチェーン・トランザクションを実行するように構成されたシステムにロケーションを送信することさらに含んでもよい。いくつかの実施形態において、送信することは、異なるブロックチェーンのそれぞれから個々のデータを検索し、異なるブロックチェーンから検索したデータに基づいてブロックチェーン・トランザクションを実行するように構成された混合チェーン上で実行するクロスチェーン・ハンドラのスマート・コントラクトにロケーションを送信することを含んでもよい。 In response to determining that the blockchain transaction is associated with data separately stored on different blockchains, at 540 the method transfers the location of each blockchain from among the different blockchains to the master chain. and transmitting the location to a system configured to perform blockchain transactions. In some embodiments, transmitting is on a mixed chain configured to retrieve individual data from each of the different blockchains and execute blockchain transactions based on the data retrieved from the different blockchains. may include sending the location to a cross-chain handler smart contract running in .

いくつかの実施形態において、パーティション情報は、マスタ・チェーンによって管理されるトランザクション・データのドメイン全体または範囲全体を識別し、複数のブロックチェーンの中の各個々のブロックチェーンに割り当てられた個々のサブドメインをさらに識別する。ここで、パーティション情報またはサブドメイン情報は、複数のブロックチェーンの中の各ブロックチェーンによって維持されるトランザクション・データの境界の範囲を識別することができる。 In some embodiments, the partition information identifies the entire domain or range of transactional data managed by the master chain and the individual sub-chains assigned to each individual blockchain among the multiple blockchains. Further identify the domain. Here, the partition information or subdomain information can identify the boundary extents of the transaction data maintained by each blockchain in the multiple blockchains.

いくつかの実施形態において、方法は、ブロックチェーン・トランザクションのためのデータを格納するブロックチェーンの識別情報をマスタ・チェーンが含まないとき、ブロックチェーン・トランザクションのためのデータを格納している少なくとも1つのブロックチェーンを決定するために複数のブロックチェーンに個別に問い合わせることをさらに含んでもよい。例えば、クエリは、ブロックチェーン・ノードで実行するクエリ・フェデレータのスマート・コントラクトによって行われてもよく、一方で、決定は、ブロックチェーン・ノードで実行するトランザクション・ルーティングのスマート・コントラクトによって行われてもよい。いくつかの実施形態において、方法は、マスタ・チェーンによって設定された使用可能性フラグを検出し、使用可能性フラグの検出に応答してパーティション情報をフェッチすることをさらに含んでもよい。 In some embodiments, the method includes at least one block storing data for a blockchain transaction when the master chain does not contain identification information of the blockchain storing the data for the blockchain transaction. It may further include querying the plurality of blockchains individually to determine one blockchain. For example, queries may be made by a query federator smart contract running on a blockchain node, while decisions are made by a transaction routing smart contract running on a blockchain node. good too. In some embodiments, the method may further include detecting an availability flag set by the master chain and fetching partition information in response to detecting the availability flag.

図7は、実施形態の例による、複数のブロックチェーン・ネットワークからのデータに基づいてクロスチェーン・トランザクションを実行する方法550を示す。例えば、方法550は、混合チェーン・ネットワークのノードによって行われてもよい。図7を参照すると、551において、方法は、クロスチェーン・トランザクションを実行するというリクエストを受け取ることを含んでもよい。例えば、リクエストは、異なるブロックチェーンからのデータを必要とするブロックチェーン・トランザクションを識別したマスタ・チェーンから受け取られてもよい。552において、方法は、クロスチェーン・トランザクションのためのデータを格納した2つ以上の異なるブロックチェーンの全く異なるロケーションを識別することを含んでもよい。例えば、混合チェーンは、混合チェーンとの通信のために登録され、マスタ・チェーンに格納されたロケーション情報(例えば、URL、エンドポイント、等)を有するブロックチェーン・ノードのネットワーク・ロケーションを識別することができる。この例では、識別することは、リクエストに含まれる2つ以上のURLに基づいて、2つ以上の異なるブロックチェーンにアクセスするための異なるネットワーク・ロケーションをそれぞれ識別することを含んでもよい。 FIG. 7 illustrates a method 550 of performing cross-chain transactions based on data from multiple blockchain networks, according to an example embodiment. For example, method 550 may be performed by nodes of a mixed chain network. Referring to FIG. 7, at 551 the method may include receiving a request to perform a cross-chain transaction. For example, a request may be received from a master chain that identified a blockchain transaction requiring data from a different blockchain. At 552, the method may include identifying distinct locations on two or more different blockchains that store data for cross-chain transactions. For example, a hybrid chain may identify the network locations of blockchain nodes that have been registered for communication with the hybrid chain and have location information (e.g., URLs, endpoints, etc.) stored in the master chain. can be done. In this example, identifying may include respectively identifying different network locations for accessing two or more different blockchains based on two or more URLs included in the request.

553において、方法は、識別した全く異なるロケーションに基づいて、2つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索することを含んでもよい。例えば、検索することは、異なるブロックチェーンに格納されたデータの異なるデータ項目(例えばデータ範囲)をリクエストする異なるブロックチェーンのそれぞれのブロックチェーン・ノードに混合チェーンからリクエストを送信することを含んでもよい。ここで、データは、個々のブロックチェーンのそれぞれに一意のものであり、同じブロックチェーンから取得できるものでなくてもよい。554において、方法は、2つ以上の異なるブロックチェーンからの検索したデータをクロスチェーンの結果を生成するための入力とするクロスチェーン・トランザクションを実行することを含んでもよい。例えば、クロスチェーン・トランザクションの実行は、データの交換、データの結合、データの減算、データの加算、データの修正、および同様のものを通じるなどして、2つ以上の異なるブロックチェーンからの検索したデータを一緒に混合することができる。 At 553, the method may include respectively retrieving data from data blocks of two or more different blockchains based on the identified distinct locations. For example, searching may include sending requests from the mixed chain to respective blockchain nodes of different blockchains requesting different data items (e.g., data ranges) of data stored on different blockchains. . Here, the data is unique to each individual blockchain and does not have to be obtained from the same blockchain. At 554, the method may include performing a cross-chain transaction with retrieved data from two or more different blockchains as input for generating a cross-chain result. For example, performing cross-chain transactions involves retrieving from two or more different blockchains, such as through exchanging data, combining data, subtracting data, adding data, modifying data, and the like. data can be mixed together.

555において、方法は、分散型台帳のデータ・ブロックを介してクロスチェーンの結果を格納することを含んでもよい。例えば、格納することは、クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを、2つ以上の異なるブロックチェーンのそれぞれに挿入することを含んでもよい。この例では、格納することは、第1のブロックチェーンから取得されたトランザクション・データを、クロスチェーンの結果から生じた差分値で更新するために、クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを2つ以上の異なるブロックチェーンの中からの第1のブロックチェーンに挿入することを含んでもよい。いくつかの実施形態において、格納することは、生成されたクロスチェーンの結果に基づいて、クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを、混合チェーンのブロックチェーンに挿入することを含んでもよい。いくつかの実施形態において、格納することは、混合チェーンのブロックチェーンに挿入した新しいデータ・ブロックを、混合チェーンのブロックチェーンに以前に格納した別のクロスチェーン・トランザクションのクロスチェーンの結果にリンクすることをさらに含んでもよい。 At 555, the method may include storing cross-chain results via data blocks on a distributed ledger. For example, storing may include inserting a new data block containing information about the result of the cross-chain into each of two or more different blockchains. In this example, the storing means new data storing information about the cross-chain result to update the transaction data obtained from the first blockchain with the difference value resulting from the cross-chain result. • It may involve inserting a block into a first blockchain from among two or more different blockchains. In some embodiments, the storing includes inserting a new data block containing information about the cross-chain results into the mixed-chain blockchain based on the generated cross-chain results. It's okay. In some embodiments, storing links a new data block inserted on the mixed-chain blockchain to the cross-chain result of another cross-chain transaction previously stored on the mixed-chain blockchain. It may further include:

図8は、実施形態の例による、動作の方法の例の1つまたは複数による、ブロックチェーンで様々な動作を行うように構成された物理的なインフラストラクチャの例を示す。図8を参照すると、構成600Aの例は、ブロックチェーン620およびスマート・コントラクト640を伴う物理的なインフラストラクチャ610を含み、実施形態の例のいずれかに含まれる動作ステップ612のいずれかを実行することができる。例えば、スマート・コントラクト640は、トランザクションを実行し、クロスチェーン・トランザクションが実行された結果として、複数の異なるブロックチェーン台帳への変更を起動することができ、このことにより、複数のブロックチェーンのあらゆる状態を同時に(すなわち一斉に)更新する。この例では、ステップ/動作612は、1つまたは複数の流れ図または論理図あるいはその両方に記述または描写されたステップの1つまたは複数を含んでもよい。ステップは、コンピュータ・システム構成の物理的なインフラストラクチャ610にある1つまたは複数のスマート・コントラクト640またはブロックチェーン620あるいはその両方から書き込まれたまたは読み込まれた、出力されたまたは書き込まれた情報を表すことができる。データは、実行されたスマート・コントラクト640またはブロックチェーン620あるいはその両方から出力することができる。物理的なインフラストラクチャ610は、1つまたは複数のコンピュータ、サーバ、プロセッサ、メモリ、またはワイヤレス通信デバイス、あるいはその組合せを含んでもよい。 FIG. 8 illustrates an example physical infrastructure configured to perform various operations on a blockchain, according to one or more of the example methods of operation, according to an example embodiment. Referring to FIG. 8, an example configuration 600A includes a physical infrastructure 610 with a blockchain 620 and a smart contract 640 to perform any of the operational steps 612 included in any of the example embodiments. be able to. For example, smart contract 640 can execute a transaction and initiate changes to different blockchain ledgers as a result of a cross-chain transaction being executed, thereby allowing any Update states simultaneously (ie all at once). In this example, steps/actions 612 may include one or more of the steps described or depicted in one or more flowcharts and/or logic diagrams. The steps include information written or read, output or written from one or more smart contracts 640 and/or blockchain 620 in the physical infrastructure 610 of the computer system configuration. can be represented. Data can be output from executed smart contract 640 and/or blockchain 620 . Physical infrastructure 610 may include one or more computers, servers, processors, memory, or wireless communication devices, or a combination thereof.

図9は、実施形態の例による、契約当事者間のスマート・コントラクト構成、および、ブロックチェーンに対するスマート・コントラクト条件を実施するように構成された仲介サーバの例を示す。図9を参照すると、構成650Bは、通信セッション、資産移転セッション、あるいは、1つまたは複数のユーザ・デバイス652もしくは656またはその両方を明示的に識別するスマート・コントラクト640によって動かされる処理または手順を表すことができる。実行、動作、およびスマート・コントラクトの実行の結果は、サーバ654によって管理されてもよい。スマート・コントラクト640の内容は、スマート・コントラクト・トランザクションの当事者であるエンティティ652および656の1つまたは複数によるデジタル署名を要求することができる。スマート・コントラクトの実行の結果は、ブロックチェーン・トランザクションとしてブロックチェーンに書き込まれてもよい。 FIG. 9 illustrates an example smart contract configuration between contracting parties and an intermediary server configured to enforce the smart contract terms to a blockchain, according to an example embodiment. Referring to FIG. 9, configuration 650B implements a process or procedure driven by smart contract 640 that explicitly identifies a communication session, asset transfer session, or one or more user devices 652 and/or 656. can be represented. The execution, actions, and results of smart contract execution may be managed by server 654 . The contents of smart contract 640 may require digital signature by one or more of entities 652 and 656 that are parties to the smart contract transaction. The results of smart contract execution may be written to the blockchain as blockchain transactions.

スマート・コントラクトの例は、オン・チェーンで格納されたデータに基づいて判定を行う通常のスマート・コントラクトを含む。例えば、マスタ・チェーンの区画化スマート・コントラクトは、マスタ・チェーン上のブロックチェーンを介して区画化ルールを識別し、格納することができる。スマート・コントラクトの別の例は、(オフ・チェーンとも呼ばれる)チェーンの外部のコンピューティング・システムのデータおよび機能にアクセスするように構成されたシステムのスマート・コントラクトである。例えば、トランザクション・ルータは、ネットワーク情報を識別し、シングル・パーティションのブロックチェーンまたは混合チェーンにトランザクションをルートするためにシステムのネットワーク・インターフェースと対話することができる。別の例として、クエリ・フェデレータは、他のブロックチェーン・システムにクエリを送信し、レスポンスを受信するために、ネットワーク情報およびシステムのネットワーク・インターフェースと対話することができる。 Examples of smart contracts include regular smart contracts that make decisions based on data stored on-chain. For example, the master chain's compartmentalization smart contract can identify and store the compartmentalization rules via the blockchain on the master chain. Another example of a smart contract is a smart contract for a system configured to access data and functionality of a computing system outside the chain (also called off-chain). For example, a transaction router can identify network information and interact with the system's network interface to route transactions to a single-partition blockchain or mixed chain. As another example, a query federator can interact with network information and the system's network interfaces to send queries to and receive responses from other blockchain systems.

上記の実施形態は、ハードウェアで、プロセッサによって実行されるコンピュータ・プログラムで、ファームウェアで、または、上記の組合せで実施されてもよい。コンピュータ・プログラムは、ストレージ媒体などのコンピュータ可読媒体で具体化されてもよい。例えば、コンピュータ・プログラムは、ランダム・アクセス・メモリ(「RAM」)、フラッシュ・メモリ、リード・オンリ・メモリ(「ROM」)、消去可能プログラマブル・リード・オンリ・メモリ(「EPROM」)、電気的消去可能プログラマブル・リード・オンリ・メモリ(「EEPROM」)、レジスタ、ハード・ディスク、取外し可能ディスク、コンパクト・ディスク・リード・オンリ・メモリ(「CD-ROM」)、または、当技術分野で知られているストレージ媒体のいずれかの他の形態の中に常駐してもよい。 The above embodiments may be implemented in hardware, in a computer program executed by a processor, in firmware, or in combinations of the above. A computer program may be embodied in a computer readable medium such as a storage medium. For example, a computer program may be stored in random access memory (“RAM”), flash memory, read-only memory (“ROM”), erasable programmable read-only memory (“EPROM”), electronic erasable programmable read only memory ("EEPROM"), registers, hard disk, removable disk, compact disk read only memory ("CD-ROM"), or may reside in any other form of storage medium.

例示的なストレージ媒体は、プロセッサが、ストレージ媒体から情報を読み込み、ストレージ媒体に情報を書き込むことができるように、プロセッサに連結されてもよい。別の方式では、ストレージ媒体は、プロセッサに統合されてもよい。プロセッサおよびストレージ媒体は、特定用途向け集積回路(「ASIC」)の中にあってもよい。別の方式では、プロセッサおよびストレージ媒体は、個別の構成要素として存在してもよい。例えば、図10は、上述の構成要素等のいずれかを表すか、これに統合され得るコンピュータ・システム・アーキテクチャ700の例を示す。 An exemplary storage medium may be coupled to the processor such that the processor can read information from, and write information to, the storage medium. Alternatively, the storage medium may be integrated into the processor. The processor and storage medium may reside in an application specific integrated circuit (“ASIC”). Alternatively, the processor and storage medium may exist as separate components. For example, FIG. 10 illustrates an example computer system architecture 700 that may represent or be integrated with any of the components and others described above.

図10は、本明細書で説明される本出願の実施形態の用途または機能の範囲について何らかの限定を示唆することを意図するものではない。いずれにしても、コンピューティング・ノード700は、実施されることまたは以上に示した機能のいずれかを行うことあるいはその両方ができる。 FIG. 10 is not intended to suggest any limitation as to the scope of use or functionality of the embodiments of the present application described herein. In any event, computing node 700 may be implemented and/or perform any of the functions set forth above.

コンピューティング・ノード700には、コンピュータ・システム/サーバ702があり、非常に多くの他の汎用または特殊用途のコンピューティング・システム環境または構成で動作するものである。コンピュータ・システム/サーバ702とともに使用するのに適している可能性のあるよく知られているコンピューティング・システム、環境、または構成、あるいはその組合せの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能家庭用電化製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境、ならびに同様のものを含むがこれらに限定されない。 Computing node 700 includes a computer system/server 702 that operates in numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, or configurations, or combinations thereof, that may be suitable for use with computer system/server 702 include personal computer systems, server computers, Systems, Thin Clients, Thick Clients, Handheld or Laptop Devices, Multiprocessor Systems, Microprocessor Based Systems, Set Top Boxes, Programmable Consumer Electronics, Network PCs, Minicomputer Systems, Including, but not limited to, mainframe computer systems and distributed cloud computing environments including any of the above systems or devices, and the like.

コンピュータ・システム/サーバ702は、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な背景で説明されてもよい。一般に、プログラム・モジュールは、特定のタスクを行う、または特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含んでもよい。コンピュータ・システム/サーバ702は、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実践されてもよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルとリモートの両方のコンピュータ・システム・ストレージ媒体の中にあってもよい。 Computer system/server 702 may be described in the general context of computer system-executable instructions, such as program modules, being executed by the computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer system/server 702 may also be practiced in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.

図10に示すように、クラウド・コンピューティング・ノード700におけるコンピュータ・システム/サーバ702が、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム/サーバ702の構成要素は、1つまたは複数のプロセッサまたは処理ユニット704、システム・メモリ706、および、システム・メモリ706を含む様々なシステム構成要素をプロセッサ704に連結するバスを含んでもよいがこれらに限定されない。 As shown in FIG. 10, computer systems/servers 702 in cloud computing node 700 are shown in the form of general-purpose computing devices. Components of computer system/server 702 may include one or more processors or processing units 704 , system memory 706 , and a bus coupling various system components including system memory 706 to processor 704 . Good but not limited to these.

バスは、メモリ・バスまたはメモリ・コントローラ、周辺機器バス、アクセラレイティッド・グラフィックス・ポート、および、様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含むいくつかのタイプのバス構造のいずれかの1つまたは複数に相当する。例として、また限定ではなく、このようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)バスを含む。 A bus can be any type of bus including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. Any one or more of the structures. By way of example and not limitation, such architectures include Industry Standard Architecture (ISA) Bus, Micro Channel Architecture (MCA) Bus, Enhanced ISA (EISA) Bus, Video Electronics Standards Association ( VESA) local bus, and Peripheral Component Interconnect (PCI) bus.

コンピュータ・システム/サーバ702は、典型的には、様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ702によってアクセス可能ないずれかの利用可能な媒体であってもよく、揮発性媒体および不揮発性媒体の両方、取外し可能媒体および取外し不能媒体の両方を含む。システム・メモリ706は、1つの実施形態において、他の図の流れ図を実施する。システム・メモリ706は、ランダム・アクセス・メモリ(RAM)710またはキャッシュ・メモリ712あるいはその両方など、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ702は、他の取外し可能/取外し不能な、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含んでもよい。ほんの一例として、ストレージ・システム714は、取外し不能な不揮発性磁気媒体(図示していないが、典型的には「ハード・ドライブ」と呼ばれる)を読み書きするために提供されることが可能である。図示していないが、取外し可能な不揮発性磁気ディスク(例えば「フロッピー・ディスク」)を読み書きするための磁気ディスク・ドライブ、および、CD-ROM、DVD-ROM、または他の光媒体などの取外し可能な不揮発性光ディスクを読み書きするための光ディスク・ドライブが、提供されることが可能である。このような事例では、それぞれは、1つまたは複数のデータ媒体インターフェースによってバスに接続されることが可能である。下記でさらに描写され、説明されることになるように、メモリ706は、本出願の様々な実施形態の機能を実行するように構成されたプログラム・モジュールのセット(例えば少なくとも1つ)を有する少なくとも1つのプログラム製品を含んでもよい。 Computer system/server 702 typically includes a variety of computer system readable media. Such media can be any available media that can be accessed by computer system/server 702 and includes both volatile and nonvolatile media, removable and non-removable media. . System memory 706, in one embodiment, implements the flowcharts of other figures. The system memory 706 can include computer system readable media in the form of volatile memory such as random access memory (RAM) 710 and/or cache memory 712 . Computer system/server 702 may further include other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only, storage system 714 may be provided for reading from and writing to non-removable, nonvolatile magnetic media (not shown but typically referred to as "hard drives"). Although not shown, a magnetic disk drive for reading and writing to removable nonvolatile magnetic disks (eg, "floppy disks") and removable media such as CD-ROMs, DVD-ROMs, or other optical media An optical disc drive can be provided for reading and writing non-volatile optical discs. In such cases, each may be connected to the bus by one or more data medium interfaces. As will be further delineated and explained below, memory 706 has at least a set of program modules (eg, at least one) configured to perform the functions of various embodiments of the present application. It may include one program product.

プログラム/ユーティリティ716は、プログラム・モジュール718のセット(少なくとも1つ)を有し、例としてまた限定ではなく、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、メモリ706に格納されてもよい。オペレーティング・システム、1つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはこれらのいくつかの組合せのそれぞれは、ネットワーキング環境の実施態様を含んでもよい。プログラム・モジュール718は一般に、本明細書で説明されるような本出願の様々な実施形態の機能または方法あるいはその両方を実行する。 Programs/utilities 716 include a set (at least one) of program modules 718, by way of example and not limitation, an operating system, one or more application programs, other program modules, and program modules. Like data, it may be stored in memory 706 . Each of the operating system, one or more application programs, other program modules, and program data, or some combination thereof, may comprise an implementation of a networking environment. Program modules 718 generally perform the functions and/or methods of various embodiments of the present application as described herein.

当業者によって理解されるように、本出願の態様は、システム、方法、またはコンピュータ・プログラム製品として具体化されてもよい。したがって、本出願の態様は、全面的にハードウェアの実施形態、(ファームウェア、常駐ソフトウェア、マイクロコード、等を含む)全面的にソフトウェアの実施形態、または、本明細書において「回路」、「モジュール」、または「システム」と全て全体的に呼ばれるソフトウェアとハードウェアの態様を組み合わせた実施形態の形態をしていてもよい。さらに、本出願の態様は、コンピュータ可読プログラム・コードが含まれる1つまたは複数のコンピュータ可読媒体に具体化されるコンピュータ・プログラム製品の形態をしていてもよい。 As will be appreciated by those skilled in the art, aspects of the present application may be embodied as a system, method, or computer program product. Accordingly, aspects of the present application may refer to entirely hardware embodiments, entirely software embodiments (including firmware, resident software, microcode, etc.) or as referred to herein as "circuits," "modules." Embodiments may take the form of a combination of software and hardware aspects, all collectively referred to as the "system", or the "system". Furthermore, aspects of the present application may be in the form of a computer program product embodied in one or more computer-readable media containing computer-readable program code.

コンピュータ・システム/サーバ702はまた、キーボード、ポインティング・デバイス、ディスプレイ722、等などの1つもしくは複数の外部デバイス720、ユーザがコンピュータ・システム/サーバ702と対話できるようにする1つもしくは複数のデバイス、または、コンピュータ・システム/サーバ702が1つもしくは複数の他のコンピューティング・デバイスと通信できるようにするいずれかのデバイス(例えば、ネットワーク・カード、モデム、等)、あるいはその組合せと通信してもよい。このような通信は、I/Oインターフェース724を介して発生させることができる。さらに、コンピュータ・システム/サーバ702は、ローカル・エリア・ネットワーク(LAN)、一般的な広域ネットワーク(WAN)、または、パブリック・ネットワーク(例えばインターネット)、あるいはその組合せなどの1つまたは複数のネットワークと、ネットワーク・アダプタ726を介して通信することができる。描写されたように、ネットワーク・アダプタ726は、コンピュータ・システム/サーバ702の他の構成要素と、バスを介して通信する。図示していないが、他のハードウェアまたはソフトウェアあるいはその両方の構成要素が、コンピュータ・システム/サーバ702とともに使用できるということが理解されよう。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システム、等を含むがこれらに限定されない。 Computer system/server 702 also has one or more external devices 720 , such as keyboards, pointing devices, displays 722 , etc., that allow users to interact with computer system/server 702 . , or any device (e.g., network card, modem, etc.), or combination thereof, that enables computer system/server 702 to communicate with one or more other computing devices. good too. Such communication can occur via I/O interface 724 . Additionally, computer system/server 702 may be connected to one or more networks such as a local area network (LAN), a general wide area network (WAN), or a public network (eg, the Internet), or combinations thereof. , can communicate via network adapter 726 . As depicted, network adapter 726 communicates with other components of computer system/server 702 via a bus. Although not shown, it will be appreciated that other hardware and/or software components may be used with computer system/server 702 . Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, data archive storage systems, and the like.

様々な実施形態によれば、1つの例では、コンピューティング・システム702は、本明細書で説明されるマスタ・チェーンに含まれるブロックチェーン・ノードであってもよい。この例では、メモリ704は、複数の異なるブロックチェーンにわたるストレージを一緒にリンクする、ルール、URL、および同様のものなどのパーティション情報を含むマスタ・チェーンを格納することができる。プロセッサ704は、ブロックチェーン・トランザクションを実行するというリクエストをクライアントから受け取り、マスタ・チェーンに格納されたパーティション情報に基づいて、ブロックチェーン・トランザクションが、1つの単一のブロックチェーンに格納されたデータと関連付けられているか、異なるブロックチェーンに別々に格納されたデータと関連付けられているかを決定することができる。ブロックチェーン・トランザクションが、異なるブロックチェーンに別々に格納されたデータと関連付けられているという決定に応答して、プロセッサ704は、異なるブロックチェーンの中から各ブロックチェーンのロケーションを、マスタ・チェーンを介して識別し、クロスチェーンのブロックチェーン・トランザクションを実行するように構成された混合チェーンなどのシステムにロケーションを送信することができる。 According to various embodiments, in one example, computing system 702 may be a blockchain node included in the master chain described herein. In this example, memory 704 may store a master chain that includes partition information such as rules, URLs, and the like that link storage across multiple different blockchains together. Processor 704 receives a request from a client to execute a blockchain transaction, and based on the partition information stored in the master chain, executes the blockchain transaction with the data stored in one single blockchain. It can be determined whether they are associated or with data stored separately on different blockchains. In response to determining that a blockchain transaction is associated with data stored separately on different blockchains, processor 704 transmits the location of each blockchain among the different blockchains via the master chain. , and transmit the location to a system such as a mixed chain configured to perform cross-chain blockchain transactions.

システム、方法、および非一過性コンピュータ可読媒体のうちの少なくとも1つの例示的な実施形態が、添付の図面に示され、前述の詳細な説明において説明されてきたが、本出願は、開示された実施形態に限定されるのではなく、以下の特許請求の範囲によって示され、定義されるような非常に多くの再配列、修正、および代用を行うことができるということが理解されよう。例えば、様々な図のシステムの能力は、本明細書で説明されるモジュールもしくは構成要素の1つもしくは複数によって、または、分散型アーキテクチャにおいて実行されることが可能であり、送信器、受信器、または両方のペアを含んでもよい。例えば、個々のモジュールによって実行される機能の全てまたは一部は、これらのモジュールの1つまたは複数によって実行されてもよい。さらに、本明細書で説明される機能は、モジュールまたは構成要素の内部または外部で何度も、また様々なイベントと関連して実行されてもよい。また、様々なモジュール間で送られる情報は、データ・ネットワーク、インターネット、音声ネットワーク、インターネット・プロトコル・ネットワーク、ワイヤレス・デバイス、有線デバイスのうちの少なくとも1つを介して、または、複数のプロトコルを介して、あるいはその両方で、モジュール間で送られることが可能である。また、モジュールのいずれかによって送られるまたは受け取られるメッセージは、直接的に、または他のモジュールの1つまたは複数を介して、あるいはその両方で送られても受け取られてもよい。 While exemplary embodiments of at least one of the systems, methods, and non-transitory computer-readable media are illustrated in the accompanying drawings and described in the foregoing detailed description, the present application discloses Rather than being limited to the specific embodiments, it will be understood that numerous rearrangements, modifications and substitutions may be made as indicated and defined by the following claims. For example, the capabilities of the systems of various figures can be performed by one or more of the modules or components described herein, or in a distributed architecture, including transmitters, receivers, Or it may contain both pairs. For example, all or part of the functionality performed by individual modules may be performed by one or more of these modules. Moreover, the functions described herein may be performed inside or outside a module or component many times and in connection with various events. Also, information sent between the various modules may be sent via at least one of a data network, the Internet, a voice network, an Internet Protocol network, wireless devices, wired devices, or via multiple protocols. and/or can be sent between modules. Also, messages sent or received by any of the modules may be sent or received either directly or through one or more of the other modules, or both.

「システム」は、パーソナル・コンピュータ、サーバ、コンソール、パーソナル・デジタル・アシスタント(PDA)、携帯電話、タブレット・コンピューティング・デバイス、スマートフォン、もしくは他の任意の適切なコンピューティング・デバイス、またはデバイスの組合せとして具体化されることが可能であるということを当業者は理解するであろう。「システム」によって実行されるような上述の機能を示すことは、いずれかの方式で本出願の範囲を限定することを意図するものではなく、多くの実施形態のうちの1つの例を示すことを意図するものである。実際、本明細書において開示された方法、システム、および装置は、コンピューティング技術と一致した局所型および分散型形態で実施されてもよい。 "System" means a personal computer, server, console, personal digital assistant (PDA), mobile phone, tablet computing device, smart phone, or any other suitable computing device or combination of devices One skilled in the art will appreciate that it can be embodied as Showing the above-described functions as performed by the "system" is not intended to limit the scope of this application in any way, but rather shows one example of many embodiments. is intended to be Indeed, the methods, systems, and apparatus disclosed herein may be implemented in localized and distributed forms consistent with computing technology.

本明細書において記述されたシステムの特徴のうちのいくつかは、これらの実施態様の独立性をさらに具体的に強調するためにモジュールとして示されてきたということに留意されたい。例えば、モジュールは、カスタム超大規模集積(VLSI)回路もしくはゲート・アレイ、論理チップなどの市販の半導体、トランジスタ、または他の個別の構成要素を備えるハードウェア回路として実施されてもよい。モジュールは、また、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイス、画像処理装置、または同様のものなどのプログラム可能ハードウェア・デバイスで実施されてもよい。 Note that some of the features of the systems described herein have been presented as modules to more specifically emphasize their implementation independence. For example, a module may be implemented as a hardware circuit comprising custom Very Large Scale Integrated (VLSI) circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module may also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices, image processors, or the like.

モジュールは、また、様々なタイプのプロセッサによる実行のためのソフトウェアで少なくとも部分的に実施されてもよい。実行可能コードの識別したユニットは、例えば、例えば、オブジェクト、プロシージャ、または関数としてまとめられ得るコンピュータ命令の1つまたは複数の物理または論理ブロックを備えてもよい。それでも、識別したモジュールの実行ファイルは、一緒に物理的に配置される必要はなく、一緒に論理的に結合されたとき、モジュールを含み、モジュールのための決められた目的を達成する、異なる位置に格納された全く異なる命令を含んでもよい。さらに、モジュールは、コンピュータ可読媒体に格納されてもよく、コンピュータ可読媒体は、例えば、ハード・ディスク・ドライブ、フラッシュ・デバイス、ランダム・アクセス・メモリ(RAM)、テープ、または、データを格納するために使用される他の任意のこのような媒体であってもよい。 Modules may also be implemented at least partially in software for execution by various types of processors. An identified unit of executable code may, for example, comprise one or more physical or logical blocks of computer instructions which may, for example, be organized as an object, procedure, or function. Nevertheless, the executables of the identified modules need not be physically located together, but rather different locations that, when logically combined together, contain the module and achieve the stated purpose for the module. may contain entirely different instructions stored in the . Additionally, a module may be stored on a computer-readable medium, such as a hard disk drive, flash device, random access memory (RAM), tape, or any other medium for storing data. Any other such medium used for

実際、実行可能コードのモジュールは、単一の命令、または多くの命令であることが可能であり、いくつかの異なるコード・セグメントにわたって、異なるプログラム間に、およびいくつかのメモリ・デバイスにわたって、分散させることさえできる。同様に、動作データは、本明細書においてモジュール内に識別され示されることがあるが、任意の適切な形態で具体化され、任意の適切なタイプのデータ構造の中にまとめられてもよい。動作データは、単一のデータ・セットとして収集されてもよく、または、異なるストレージ・デバイスを含む異なるロケーションにわたって分散されてもよく、システムまたはネットワーク上の単なる電子信号として少なくとも部分的に存在してもよい。 In fact, a module of executable code can be a single instruction, or many instructions, distributed across several different code segments, between different programs, and across several memory devices. can even let you. Similarly, although operational data may be identified and illustrated herein within modules, it may be embodied in any suitable form and organized within any suitable type of data structure. The operational data may be collected as a single data set, or may be distributed across different locations, including different storage devices, and exist at least partially as mere electronic signals on a system or network. good too.

本出願の構成要素は、本明細書の図に全体的に記述され示されるように、多種多様な異なる構成の中に配列され設計されてもよいということが容易に理解されよう。したがって、実施形態の詳細な説明は、特許請求されるものとして本出願の範囲を限定することを意図するものではなく、本出願の選択された実施形態を表すにすぎない。 It will be readily appreciated that the components of the present application may be arranged and designed in a wide variety of different configurations as generally described and shown in the figures herein. Accordingly, the detailed description of the embodiments is not intended to limit the scope of the present application as claimed, but merely represents selected embodiments of the present application.

上記は、異なる順序のステップによって、または、開示されたものとは異なる構成のハードウェア要素によって、あるいはその両方によって実践されてもよいということを当業者は容易に理解するであろう。したがって、本出願は、これらの好ましい実施形態に基づいて記述されてきたが、一定の変更形態、変形形態、および代替形態の構築が明らかになるということが当業者には明らかであろう。 Those skilled in the art will readily appreciate that the above may be practiced by a different order of steps and/or by a different arrangement of hardware elements than those disclosed. Thus, while this application has been described in terms of these preferred embodiments, it will be apparent to those skilled in the art that certain modifications, variations, and alternative constructions will become apparent.

本出願の好ましい実施形態が記述されてきたが、記述された実施形態は例証的なものにすぎず、本出願の範囲は、全ての範囲の均等物および変更形態(例えば、プロトコル、ハードウェア・デバイス、ソフトウェア・プラットフォーム、等)によって考えられるとき、添付の特許請求の範囲によって単に定義されることになるということが理解されよう。 Although preferred embodiments of the application have been described, the described embodiments are exemplary only, and the scope of the application covers the full range of equivalents and modifications (e.g., protocols, hardware, device, software platform, etc.) will be defined solely by the appended claims.

Claims (18)

ブロックチェーンを管理するためのコンピューティング・システムであって、
クライアントからクエリを受け取るためのネットワーク・インターフェースと、
プロセッサであって、
前記クエリのためのデータを格納した2つ以上の異なるブロックチェーンを識別すること、
前記2つ以上の異なるブロックチェーンから独立した混合ブロックチェーンのスマートコントラクトを介して、それぞれ、前記2つ以上の異なるブロックチェーンのデータ・ブロックから前記クエリのための前記データをそれぞれ検索すること、
前記2つ以上の異なるブロックチェーンからの前記検索したデータをクロスチェーンの結果を生成するための入力とするクロスチェーン・トランザクションを実行すること、および
分散型台帳のデータ・ブロックを介して前記クロスチェーンの結果を格納することを行うためのプロセッサと
を備え、
前記識別は、前記混合ブロックチェーンにより格納された前記2つ以上の異なるブロックチェーンの区画化されたデータの範囲の境界に基づいて行われる、
システム。
A computing system for managing a blockchain, comprising:
a network interface for receiving queries from clients;
a processor,
identifying two or more different blockchains that store data for the query;
retrieving the data for the query from data blocks of the two or more different blockchains, respectively, via a hybrid blockchain smart contract independent of the two or more different blockchains;
performing a cross-chain transaction using the retrieved data from the two or more different blockchains as input to generate a cross-chain result; and the cross-chain via distributed ledger data blocks. a processor for storing the results of
the identification is based on bounds of ranges of partitioned data of the two or more different blockchains stored by the mixed blockchain;
system.
前記クロスチェーン・トランザクションの実行が、前記2つ以上の異なるブロックチェーンからの検索したデータを前記プロセッサによって一緒に混合させる、請求項1に記載のコンピューティング・システム。 2. The computing system of claim 1, wherein executing the cross-chain transaction causes retrieved data from the two or more different blockchains to be mixed together by the processor. 前記プロセッサが、前記クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを前記2つ以上の異なるブロックチェーンのそれぞれに挿入するように構成される、請求項1または2のいずれかに記載のコンピューティング・システム。 3. The processor of claim 1 or 2, wherein the processor is configured to insert a new data block containing information about the result of the cross-chain into each of the two or more different blockchains. computing system. 前記プロセッサが、第1のブロックチェーンから取得したトランザクション・データを前記クロスチェーンの結果の差分値で更新するために、前記クロスチェーンの結果についての情報を格納した前記新しいデータ・ブロックを前記2つ以上の異なるブロックチェーンの中からの前記第1のブロックチェーンに挿入するように構成される、請求項3に記載のコンピューティング・システム。 The processor divides the two new data blocks storing information about the cross-chain result in order to update the transaction data obtained from the first blockchain with the difference value of the cross-chain result. 4. The computing system of claim 3, configured to insert into said first blockchain from among said different blockchains. 前記プロセッサが、前記生成したクロスチェーンの結果に基づいて、前記クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを混合チェーンのブロックチェーンに挿入するように構成される、請求項1ないし4のいずれかに記載のコンピューティング・システム。 5. The processor is configured, based on the generated cross-chain result, to insert a new data block containing information about the cross-chain result into a blockchain of the hybrid chain. A computing system according to any of the preceding claims. 前記プロセッサが、前記混合チェーンのブロックチェーンに以前に格納された別のクロスチェーン・トランザクションのクロスチェーンの結果に、前記混合チェーンのブロックチェーンに挿入した前記新しいデータ・ブロックをリンクするようにさらに構成される、請求項5に記載のコンピューティング・システム。 The processor is further configured to link the new data block inserted into the mixed-chain blockchain to a cross-chain result of another cross-chain transaction previously stored on the mixed-chain blockchain. 6. The computing system of claim 5, wherein: 前記プロセッサが、前記クロスチェーン・トランザクションを実行するというリクエストによって識別された前記2つ以上の異なるブロックチェーンの個々のターゲット・ブロックチェーン・ノードから、前記クロスチェーンのブロックチェーン・トランザクションのための前記データを検索するために、前記ネットワーク・インターフェースを制御するように構成される、請求項1ないし6のいずれかに記載のコンピューティング・システム。 The processor retrieves the data for the cross-chain blockchain transaction from individual target blockchain nodes of the two or more different blockchains identified by the request to perform the cross-chain transaction. 7. A computing system according to any one of claims 1 to 6, adapted to control said network interface to search for . 前記プロセッサが、前記クロスチェーン・トランザクションを実行するというリクエストに含まれる2つ以上のユニフォーム・リソース・ロケータ(URL)に基づいて、前記2つ以上の異なるブロックチェーンの異なるネットワーク・ロケーションをそれぞれ識別するように構成される、請求項1ないし7のいずれかに記載のコンピューティング・システム。 The processor respectively identifies different network locations of the two or more different blockchains based on two or more uniform resource locators (URLs) included in the request to perform the cross-chain transaction. A computing system as claimed in any preceding claim, configured to: ブロックチェーンを管理するための方法であって、
コンピュータに、
クライアントからクエリを受け取ることと、
前記クエリのためのデータを格納した2つ以上の異なるブロックチェーンを識別することと、
前記2つ以上の異なるブロックチェーンから独立した混合ブロックチェーンのスマートコントラクトを介して、それぞれ、前記2つ以上の異なるブロックチェーンのデータ・ブロックから前記クエリのための前記データをそれぞれ検索することと、
前記2つ以上の異なるブロックチェーンからの前記検索したデータをクロスチェーンの結果を生成するための入力とするクロスチェーン・トランザクションを実行することと、
分散型台帳のデータ・ブロックを介して前記クロスチェーンの結果を格納することとを含むプログラムを実行させ、
前記識別は、前記混合ブロックチェーンにより格納された前記2つ以上の異なるブロックチェーンの区画化されたデータの範囲の境界に基づいて行われる、
方法。
A method for managing a blockchain, comprising:
to the computer,
receiving a query from a client;
identifying two or more different blockchains that store data for the query;
retrieving the data for the query from data blocks of the two or more different blockchains, respectively, via a hybrid blockchain smart contract independent of the two or more different blockchains;
performing cross-chain transactions using the retrieved data from the two or more different blockchains as input for generating cross-chain results;
storing the cross-chain results via data blocks on a distributed ledger;
the identification is based on bounds of ranges of partitioned data of the two or more different blockchains stored by the mixed blockchain;
Method.
前記クロスチェーン・トランザクションの前記実行することが、前記2つ以上の異なるブロックチェーンからの前記検索したデータを一緒に混合させる、請求項9に記載の方法。 10. The method of claim 9, wherein the executing of the cross-chain transaction mixes together the retrieved data from the two or more different blockchains. 前記格納することが、前記クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを前記2つ以上の異なるブロックチェーンのそれぞれに挿入することを含む、請求項9または10のいずれかに記載の方法。 11. A method according to any of claims 9 or 10, wherein said storing comprises inserting a new data block containing information about said cross-chain result into each of said two or more different blockchains. Method. 前記格納することが、第1のブロックチェーンから取得したトランザクション・データを前記クロスチェーンの結果から生じた差分値で更新するために、前記クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを前記2つ以上の異なるブロックチェーンの中からの前記第1のブロックチェーンに挿入することを含む、請求項11に記載の方法。 The storing causes a new data block containing information about the cross-chain result to update transaction data obtained from the first blockchain with a difference value resulting from the cross-chain result. 12. The method of claim 11, comprising inserting into the first blockchain from among the two or more different blockchains. 前記格納することが、前記生成したクロスチェーンの結果に基づいて、前記クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを混合チェーンのブロックチェーンに挿入することを含む、請求項9ないし12のいずれかに記載の方法。 13. The storing step comprises inserting a new data block storing information about the cross-chain result into a mixed-chain blockchain based on the generated cross-chain result. The method according to any one of 前記格納することが、前記混合チェーンのブロックチェーンに以前に格納された別のクロスチェーン・トランザクションのクロスチェーンの結果に、前記混合チェーンのブロックチェーンに挿入した前記新しいデータ・ブロックをリンクすることをさらに含む、請求項13に記載の方法。 The storing comprises linking the new data block inserted into the mixed-chain blockchain to a cross-chain result of another cross-chain transaction previously stored on the mixed-chain blockchain. 14. The method of claim 13, further comprising: 前記検索することが、前記クロスチェーン・トランザクションを実行するというリクエストによって識別された前記2つ以上の異なるブロックチェーンの個々のターゲット・ブロックチェーン・ノードから、前記クロスチェーンのブロックチェーン・トランザクションを実行するための前記データを検索することを含む、請求項9ないし14のいずれかに記載の方法。 The retrieving executes the cross-chain blockchain transaction from respective target blockchain nodes of the two or more different blockchains identified by the request to execute the cross-chain transaction. 15. A method as claimed in any one of claims 9 to 14, comprising retrieving the data for. 前記識別することが、前記クロスチェーン・トランザクションを実行するというリクエストに含まれる2つ以上のユニフォーム・リソース・ロケータ(URL)に基づいて、前記2つ以上の異なるブロックチェーンにアクセスするための異なるネットワーク・ロケーションをそれぞれ識別することを含む、請求項9ないし15のいずれかに記載の方法。 different networks for accessing said two or more different blockchains, said identifying based on two or more uniform resource locators (URLs) included in said request to perform said cross-chain transaction; - A method according to any one of claims 9 to 15, comprising identifying each location. コンピュータ・プログラムであって、請求項9ないし16のいずれかに記載の方法の各ステップをコンピュータに実行させるための、コンピュータ・プログラム。 A computer program product for causing a computer to perform the steps of the method according to any one of claims 9 to 16. 請求項17に記載のコンピュータ・プログラムを記録した、コンピュータ可読媒体。
18. A computer readable medium recording the computer program according to claim 17.
JP2020551329A 2018-05-01 2019-04-29 Computing system, method and computer program for managing blockchain Active JP7324222B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/967,728 2018-05-01
US15/967,683 US11030217B2 (en) 2018-05-01 2018-05-01 Blockchain implementing cross-chain transactions
US15/967,728 US11194837B2 (en) 2018-05-01 2018-05-01 Blockchain implementing cross-chain transactions
US15/967,683 2018-05-01
PCT/EP2019/060886 WO2019211225A1 (en) 2018-05-01 2019-04-29 Blockchain implementing cross-chain transactions

Publications (2)

Publication Number Publication Date
JP2021520539A JP2021520539A (en) 2021-08-19
JP7324222B2 true JP7324222B2 (en) 2023-08-09

Family

ID=66349535

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020551329A Active JP7324222B2 (en) 2018-05-01 2019-04-29 Computing system, method and computer program for managing blockchain

Country Status (4)

Country Link
EP (1) EP3788578A1 (en)
JP (1) JP7324222B2 (en)
CN (1) CN112005264A (en)
WO (1) WO2019211225A1 (en)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111107136A (en) * 2019-12-05 2020-05-05 上海中信信息发展股份有限公司 Block chain cross-chain relay method based on IPFS
CN111090661B (en) * 2019-12-10 2024-03-01 京东科技信息技术有限公司 Block chain cross-chain data access method, device, adapter and system
CN111105222B (en) * 2019-12-16 2023-12-19 南方科技大学 Block chain crossing operation method and device
CN111178851A (en) * 2019-12-31 2020-05-19 杭州趣链科技有限公司 Decentralized workflow-based data collaboration method
CN111694851B (en) * 2020-05-28 2023-06-16 平安科技(深圳)有限公司 Transaction processing method of distributed transaction and related equipment
SG10202006447VA (en) * 2020-07-03 2021-04-29 Alipay Labs Singapore Pte Ltd Managing transactions in multiple blockchain networks
CN112446785B (en) * 2020-11-06 2023-09-22 杭州趣链科技有限公司 Cross-chain transaction method, system, device, equipment and storage medium
CN112508563A (en) * 2020-12-01 2021-03-16 浙商银行股份有限公司 Cross-chain transaction credibility verification method and device and computer equipment
CN112511355B (en) * 2020-12-18 2022-02-08 四川大学 Cross-chain intelligent contract cooperation possibility evaluation method
CN114666326B (en) * 2020-12-23 2023-12-15 中移动信息技术有限公司 Data synchronization method, device, electronic equipment and computer storage medium
CN112733100A (en) * 2021-01-07 2021-04-30 浙江大学 Alliance chain-oriented cross-chain access trusted authority management system and method
CN113032482B (en) * 2021-03-10 2022-05-13 杭州链网科技有限公司 Construction method and system of cross-chain transfer bridge
CN112804357B (en) * 2021-03-30 2021-08-06 支付宝(杭州)信息技术有限公司 Method and device for reading data in cross-link mode based on relay equipment network
CN115460142A (en) * 2021-06-07 2022-12-09 京东科技控股股份有限公司 Routing addressing method and device based on cross-chain transaction
CN113452781B (en) * 2021-06-28 2023-02-14 上海计算机软件技术开发中心 Block chain cross-chain system and method
US11695573B2 (en) 2021-07-23 2023-07-04 International Business Machines Corporation Blockchain controlled cross-domain data transfer
CN113783949A (en) * 2021-08-26 2021-12-10 浙商银行股份有限公司 Cross-chain decentralized method based on contract management
CN113746858B (en) * 2021-09-10 2022-09-30 云南大学 Cross-chain communication method based on verifiable random function
CN113537991B (en) * 2021-09-16 2022-03-01 中国信息通信研究院 Cross-chain transaction ordered execution method and cross-chain system
CN113987077B (en) * 2021-12-23 2022-03-29 太极计算机股份有限公司 Data sensing and cross-link scheduling method and device based on chain code mechanism
WO2023141011A2 (en) * 2022-01-21 2023-07-27 Neeva Inc. Blockchain search engine
CN114185996B (en) * 2022-02-15 2022-05-13 北京溪塔科技有限公司 Cross-chain transaction processing method and device
CN114785804B (en) * 2022-04-29 2024-03-29 蚂蚁区块链科技(上海)有限公司 System and method for cross-blockchain interactions
CN114844904B (en) * 2022-04-29 2024-03-29 蚂蚁区块链科技(上海)有限公司 System and method for cross-blockchain interactions
CN114844905B (en) * 2022-04-29 2024-03-29 蚂蚁区块链科技(上海)有限公司 System and method for cross-blockchain interactions
CN115174118B (en) * 2022-07-11 2024-05-24 电子科技大学 Cross-heterogeneous chain trusted data sharing method integrating mutually trusted attributes
CN115914244B (en) * 2022-09-23 2024-05-17 四川启睿克科技有限公司 Method for optimizing interoperability of distributed account book

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160342977A1 (en) 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
CN107231299A (en) 2017-06-07 2017-10-03 众安信息技术服务有限公司 A kind of chain route and realized the system that block chain communicates across chain
CN107301600A (en) 2017-06-23 2017-10-27 北京天德科技有限公司 A kind of core algorithm for the block chain the Internet model merchandised across chain
CN107888562A (en) 2017-10-13 2018-04-06 布比(北京)网络技术有限公司 Interconnect serobila architecture
US20180113752A1 (en) 2016-10-20 2018-04-26 International Business Machines Corporation Inter-ledger messaging in a blockchain

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106850538B (en) * 2016-12-06 2022-01-18 中金云金融(北京)大数据科技股份有限公司 Block link route access system and method
CN107273410B (en) * 2017-05-03 2020-07-07 上海点融信息科技有限责任公司 Block chain based distributed storage
CN107273455B (en) * 2017-05-31 2020-12-18 深圳前海微众银行股份有限公司 Block chain data access method and device
CN107222482A (en) * 2017-06-01 2017-09-29 黑龙江卓亚科技有限公司 A kind of data management system and method based on compound block chain network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160342977A1 (en) 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US20180113752A1 (en) 2016-10-20 2018-04-26 International Business Machines Corporation Inter-ledger messaging in a blockchain
CN107231299A (en) 2017-06-07 2017-10-03 众安信息技术服务有限公司 A kind of chain route and realized the system that block chain communicates across chain
CN107301600A (en) 2017-06-23 2017-10-27 北京天德科技有限公司 A kind of core algorithm for the block chain the Internet model merchandised across chain
CN107888562A (en) 2017-10-13 2018-04-06 布比(北京)网络技术有限公司 Interconnect serobila architecture

Also Published As

Publication number Publication date
JP2021520539A (en) 2021-08-19
WO2019211225A1 (en) 2019-11-07
EP3788578A1 (en) 2021-03-10
CN112005264A (en) 2020-11-27

Similar Documents

Publication Publication Date Title
JP7324222B2 (en) Computing system, method and computer program for managing blockchain
US11194837B2 (en) Blockchain implementing cross-chain transactions
US11030217B2 (en) Blockchain implementing cross-chain transactions
JP7304117B2 (en) Proxy agents and proxy ledgers on blockchain
US10917233B2 (en) Selective exchange of transaction data
US11240001B2 (en) Selective access to asset transfer data
US20210217001A1 (en) Decentralized tokenization technologies
US11227057B2 (en) Membership access management of a database
JP2021525931A (en) Efficient verification for blockchain
US11362805B2 (en) Database encryption layer
US11270017B2 (en) Selective exchange of transaction data
US11270296B2 (en) Protection of data trading
US10936552B2 (en) Performing bilateral negotiations on a blockchain
US11074353B2 (en) Blockchain universal RFID translator
US11360946B2 (en) Tracking data transfers
US11301590B2 (en) Unfalsifiable audit logs for a blockchain
US11637691B2 (en) Management of a size of a ledger
WO2022007548A1 (en) Blockchain implementation to securely store information off-chain
US11888981B2 (en) Privacy preserving auditable accounts
US11138188B2 (en) Performance optimization
US20200082391A1 (en) Performing bilateral negotiations on a blockchain
WO2022121673A1 (en) Decentralized broadcast encryption and key generation facility
CN111698198A (en) Secret generation and share distribution
US11777738B2 (en) Metadata-based endorsement
US10970307B2 (en) Information transparency control

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210413

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210830

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230525

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: 20230711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230728

R150 Certificate of patent or registration of utility model

Ref document number: 7324222

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150