JP2020127187A - Method for storing transaction representing asset transfer in distributed network having multiple nodes, program therefor, and node for configuring distributed network - Google Patents

Method for storing transaction representing asset transfer in distributed network having multiple nodes, program therefor, and node for configuring distributed network Download PDF

Info

Publication number
JP2020127187A
JP2020127187A JP2019155252A JP2019155252A JP2020127187A JP 2020127187 A JP2020127187 A JP 2020127187A JP 2019155252 A JP2019155252 A JP 2019155252A JP 2019155252 A JP2019155252 A JP 2019155252A JP 2020127187 A JP2020127187 A JP 2020127187A
Authority
JP
Japan
Prior art keywords
transaction
network
transfer
block
asset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019155252A
Other languages
Japanese (ja)
Other versions
JP6651042B1 (en
Inventor
峰史 小宮山
Takafumi Komiyama
峰史 小宮山
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.)
BitFlyer Blockchain Inc
Original Assignee
BitFlyer Blockchain Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BitFlyer Blockchain Inc filed Critical BitFlyer Blockchain Inc
Priority to JP2019155252A priority Critical patent/JP6651042B1/en
Application granted granted Critical
Publication of JP6651042B1 publication Critical patent/JP6651042B1/en
Publication of JP2020127187A publication Critical patent/JP2020127187A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

To greatly improve transaction processing speed in a method for storing a transaction representing the transfer of an asset in a distributed network.SOLUTION: A first partial network 110 that constitutes a distributed network receives a transaction 200 generated by a user terminal 140, and representing the transfer of an asset 203 from a transfer source identifier 201 to a transfer destination identifier 202, and generates a block including the transaction 200, and executes consensus building processing in the first partial network 110 for adoption (S303). Each node stores the state of the asset of the transfer source identifier that can be processed by the node, and the transfer of the asset from transfer source identifier described in one or more transactions included in the block added after total formation is recorded (S304). The transfer source identifier that can be processed in each partial network is defined, and therefore, parallel processing of transactions is executed.SELECTED DRAWING: Figure 3

Description

本発明は、複数のノードを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法及びそのためのプログラム並びに当該分散ネットワークを構成するためのノードに関する。 The present invention relates to a method for storing a transaction representing an asset transfer in a distributed network having a plurality of nodes, a program therefor, and nodes for configuring the distributed network.

データベースを複数のノードによって構成される分散ネットワーク上に構築するブロックチェーンネットワークは、その非中央集権的性格から改ざん耐性が高い。いずれかのノードにおいてデータベースが改ざんされても分散ネットワーク全体を書き換えることは困難だからである。各ノードに記憶されるブロックチェーンが互いに同期してデータベースとして機能している。 A blockchain network that builds a database on a distributed network consisting of multiple nodes is highly tamper resistant due to its decentralized nature. This is because it is difficult to rewrite the entire distributed network even if the database is tampered with at any node. The block chains stored in each node function as a database in synchronization with each other.

ノード数の増大は改ざん耐性を高める反面、各ノードに同一のブロックチェーンを記憶する必要性からブロックの採択のための処理速度を一般に低下させる。直観的にはノード数を増やすことで単位時間当たりの処理速度を向上可能であるとおもわれるが、ブロックチェーンにおいては逆に低下してしまうことから、ブロックサイズの増大、ブロックに含まれる1又は複数のトランザクションのデータ容量の低減等、さまざまな試みがなされているのが現状である。 The increase in the number of nodes increases the resistance to tampering, but on the other hand, it is necessary to store the same block chain in each node, so that the processing speed for selecting a block is generally reduced. Intuitively, it seems that the processing speed per unit time can be improved by increasing the number of nodes, but in the block chain, it will decrease conversely, so the block size will increase, and 1 or At present, various attempts have been made to reduce the data capacity of multiple transactions.

しかしながら、現状のさまざまな試みの中には、拡張性(スケーラビリティ)を大幅に向上可能なものを見出すことは出来ない。特に、仮想通貨、実通貨、株等の資産の移転を分散ネットワーク上のデータベースにおいて管理することを現実的に考えた場合、1秒間に処理可能なトランザクションの数が数件と言われるビットコインを筆頭に、スケーラビリティはブロックチェーンの実用化において喫緊の課題である。 However, it is not possible to find one that can greatly improve the scalability among various attempts at present. In particular, when considering realistically managing the transfer of assets such as virtual currencies, real currencies, and stocks in a database on a distributed network, bitcoins that can handle a few transactions per second are First of all, scalability is an urgent issue in the practical application of blockchain.

本発明は、このような問題点に鑑みてなされたものであり、その目的は、複数のノードを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法及びそのためのプログラム並びに当該分散ネットワークを構成するためのノードにおいて、単位時間当たりのトランザクション処理速度を大幅に向上することにある。 The present invention has been made in view of the above problems, and an object of the present invention is to configure a method for storing a transaction representing asset transfer in a distributed network having a plurality of nodes, a program therefor, and the distributed network. In the node for doing so, it is to greatly improve the transaction processing speed per unit time.

このような目的を達成するために、本発明の第1の態様は、複数の部分ネットワークを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法であって、前記複数の部分ネットワークのうちの第1の部分ネットワークを構成するノードが、前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信するステップと、前記第1のトランザクションを含むブロックを生成するステップと、前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新するステップと、前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信するステップとを含むことを特徴とする。 In order to achieve such an object, a first aspect of the present invention is a method of storing a transaction representing transfer of assets in a distributed network having a plurality of partial networks, the method including: A first transaction in which a node forming the first partial network represents transfer of an asset from a transfer source identifier processable in the first partial network to a transfer destination identifier not processable in the first partial network. Receiving, the step of generating a block containing the first transaction, and the step of updating the status of the asset of the source identifier after consensus formation in the first partial network for adoption of the block. A second transaction for reflecting the transfer of the asset to the transferee identifier represented by the first transaction after consensus formation in the first sub-network for adoption of the block, the second transaction Sending a source identifier that matches the destination identifier of one transaction to a processable second sub-network.

また、本発明の第2の態様は、第1の態様において、前記第1のトランザクションは、前記移転元識別子の秘密鍵による署名が付加されていることを特徴とする。 Further, a second aspect of the present invention is characterized in that, in the first aspect, the first transaction is added with a signature by a secret key of the transfer source identifier.

また、本発明の第3の態様は、第1又は2の態様において、移転される前記資産の額は、正の値であることを特徴とする。 Further, a third aspect of the present invention is characterized in that, in the first or second aspect, the amount of the transferred asset is a positive value.

また、本発明の第4の態様は、第1から第3のいずれかの態様において、前記第2のトランザクションは、前記第1の部分ネットワークにおいて合意形成がなされたことを示す署名が付加されていることを特徴とする。 A fourth aspect of the present invention is the method according to any one of the first to third aspects, wherein the second transaction is added with a signature indicating that consensus has been formed in the first partial network. It is characterized by being

また、本発明の第5の態様は、第4の態様において、前記第2のトランザクションの署名は、単一の署名であることを特徴とする。 Further, a fifth aspect of the present invention is characterized in that, in the fourth aspect, the signature of the second transaction is a single signature.

また、本発明の第6の態様は、第4又は第5の態様において、前記第2のトランザクションの署名は、前記ブロック内の前記第1のトランザクションを含む複数のトランザクションに基づくマークルツリーのマークルルートを含むブロックヘッダに対する署名であることを特徴とする。 A sixth aspect of the present invention is the mark of a Merkle tree according to the fourth or fifth aspect, wherein the signature of the second transaction is based on a plurality of transactions including the first transaction in the block. It is characterized in that it is a signature for a block header including a route.

また、本発明の第7の態様は、複数の部分ネットワークのうちの第1の部分ネットワークを構成するノードに、前記複数の部分ネットワークを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法を実行させるためのプログラムであって、前記方法は、前記ノードが、前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信するステップと、前記第1のトランザクションを含むブロックを生成するステップと、前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新するステップと、前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信するステップとを含むことを特徴とする。 Further, a seventh aspect of the present invention is a method for storing a transaction representing an asset transfer in a distributed network having a plurality of partial networks in a node forming a first partial network of a plurality of partial networks. A program for executing the method, wherein the node transfers an asset from a transfer source identifier processable in the first partial network to a transfer destination identifier not processable in the first partial network. Receiving a first transaction representing the first transaction, generating a block containing the first transaction, and concluding an agreement in the first sub-network for adoption of the block, and A second step for reflecting the transfer of the asset to the transferee identifier represented by the first transaction after the step of updating the state and after consensus in the first sub-network on the adoption of the block; Is transmitted to the second partial network capable of processing the source identifier that matches the destination identifier of the first transaction.

また、本発明の第8の態様は、複数の部分ネットワークを有する分散ネットワークに資産の移転を表すトランザクションを記憶するための、前記複数の部分ネットワークのうちの第1の部分ネットワークを構成するノードであって、前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信して、前記第1のトランザクションを含むブロックを生成し、前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新し、前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信することを特徴とする。 Further, an eighth aspect of the present invention is a node constituting a first partial network of the plurality of partial networks for storing a transaction representing the transfer of assets in a distributed network having a plurality of partial networks. And receiving a first transaction representing a transfer of an asset from a source identifier processable in the first partial network to a destination identifier not processable in the first partial network, the first transaction Generating a block including the transaction of the block, updating the status of the asset of the transfer source identifier after consensus formation in the first partial network for adoption of the block, and the first partial network for adoption of the block. In the second transaction for reflecting the transfer of the asset to the transfer destination identifier represented by the first transaction, the transfer source that matches the transfer destination identifier of the first transaction. It is characterized in that the identifier is transmitted to a second partial network that can be processed.

また、本発明の第9の態様は、複数の部分ネットワークを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法であって、前記複数の部分ネットワークのうちの第1の部分ネットワークを構成するノードが、前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信するステップと、前記第1のトランザクションを含む第1のブロックを生成するステップと、前記第1のブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新するステップと、前記第1のブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信するステップとを含み、前記第2の部分ネットワークを構成するノードが、前記第2のトランザクションを受信するステップと、前記第2のトランザクションを含む第2のブロックを生成するステップと、前記第2のブロックの採択についての前記第2の部分ネットワークにおける合意形成後、前記第2のトランザクションの移転先識別子の資産の状態を更新するステップとを含むことを特徴とする。 A ninth aspect of the present invention is a method of storing a transaction representing transfer of assets in a distributed network having a plurality of partial networks, which constitutes a first partial network of the plurality of partial networks. The node receiving a first transaction representing a transfer of an asset from a source identifier processable in the first partial network to a destination identifier not processable in the first partial network; Generating a first block containing one transaction, updating the status of the asset of the source identifier after consensus formation in the first sub-network for adoption of the first block, After consensus formation in the first sub-network for adoption of the first block, a second transaction for reflecting the transfer of the asset to the transferee identifier represented by the first transaction is Sending a transfer source identifier matching the transfer destination identifier of the first transaction to a processable second partial network, wherein a node configuring the second partial network executes the second transaction. Receiving, generating a second block containing the second transaction, and after consensus in the second sub-network about adoption of the second block, transferee of the second transaction Updating the asset status of the identifier.

また、本発明の第10の態様は、資産の移転を表すトランザクションを記憶するための複数の部分ネットワークを有する分散ネットワークであって、前記複数の部分ネットワークのうちの第1の部分ネットワーク及び第2の部分ネットワークを備え、前記第1の部分ネットワークを構成するノードが、前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信して、前記第1のトランザクションを含む第1のブロックを生成し、前記第1のブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新し、前記第1のブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信し、前記第2の部分ネットワークを構成するノードが、前記第2のトランザクションを受信して、前記第2のトランザクションを含む第2のブロックを生成し、前記第2のブロックの採択についての前記第2の部分ネットワークにおける合意形成後、前記第2のトランザクションの移転先識別子の資産の状態を更新することを特徴とする。 Further, a tenth aspect of the present invention is a distributed network having a plurality of partial networks for storing a transaction representing the transfer of assets, the first partial network and the second partial network of the plurality of partial networks. Of the assets from the transfer source identifier that can be processed by the first partial network to the transfer destination identifier that cannot be processed by the first partial network. After receiving a first transaction representing a transfer, generating a first block containing the first transaction, and after forming an agreement in the first sub-network for adoption of the first block, the transfer source Updating the status of the asset of the identifier and reflecting the transfer of the asset to the transferee identifier represented by the first transaction after consensus in the first sub-network on the adoption of the first block; A second transaction for transmitting the second transaction to the second partial network capable of processing a transfer source identifier that matches the transfer destination identifier of the first transaction, and a node forming the second partial network, The second transaction is received after receiving the second transaction, generating a second block containing the second transaction, and after consensus formation in the second sub-network for adoption of the second block. The state of the asset of the transfer destination identifier of is updated.

本発明の一態様によれば、分散ネットワークを複数の部分ネットワークにより構成し、各部分ネットワークにおいて処理可能な移転元識別子を定めておくことによって、トランザクションの並列処理を行い、同時に複数のトランザクションの処理が実行可能となる。 According to an aspect of the present invention, a distributed network is configured by a plurality of partial networks, and a transfer source identifier that can be processed in each partial network is defined, thereby performing parallel processing of transactions and simultaneously processing a plurality of transactions. Becomes feasible.

本発明の一実施形態にかかる分散ネットワークを示す図である。It is a figure which shows the distributed network concerning one Embodiment of this invention. 本発明の一実施形態にかかる通常トランザクションの模式図である。It is a schematic diagram of the normal transaction concerning one Embodiment of this invention. 本発明の一実施形態にかかるトランザクションを記憶する方法の流れを説明するための図である。It is a figure for explaining the flow of the method of storing the transaction concerning one embodiment of the present invention. 本発明の一実施形態にかかるペグトランザクションの模式図である。It is a schematic diagram of a peg transaction according to an embodiment of the present invention. 本発明の一実施形態における合意形成処理を説明するための図である。It is a figure for demonstrating the consensus formation process in one Embodiment of this invention. 本発明の一実施形態における合意形成のための鍵生成方法の流れ図である。6 is a flowchart of a key generation method for consensus building according to an embodiment of the present invention. 本発明の一実施形態におけるブロックの採択についての確定方法の流れ図である。7 is a flowchart of a method for determining block adoption according to an embodiment of the present invention. 本発明の別実施形態にかかるペグトランザクションの模式図である。It is a schematic diagram of the peg transaction concerning another embodiment of the present invention. 本発明の別実施形態にかかるマークルツリーデータを説明するための図である。It is a figure for demonstrating the Merkle tree data concerning another embodiment of the present invention. 本発明の別実施形態にかかるペグトランザクションの模式図である。It is a schematic diagram of the peg transaction concerning another embodiment of the present invention.

以下、図面を参照して本発明の実施形態を詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

図1は、本発明の一実施形態にかかる分散ネットワークを示す。分散ネットワーク100は、分散ネットワーク100上に構築されたデータベースに記憶すべきトランザクションにおける資産の移転元に応じて動作が異なる複数の部分ネットワークを有する。図1では、第1の部分ネットワーク110と、第2の部分ネットワーク120と、第3の部分ネットワーク130とを示しているが、部分ネットワーク数は3に限られるものではない。 FIG. 1 shows a distributed network according to an embodiment of the present invention. The distributed network 100 has a plurality of partial networks that operate differently depending on the transfer source of the asset in the transaction to be stored in the database constructed on the distributed network 100. Although FIG. 1 shows the first partial network 110, the second partial network 120, and the third partial network 130, the number of partial networks is not limited to three.

各部分ネットワークは、複数のノードにより構成されており、各ノードは、通信インターフェースなどの通信部111Aと、プロセッサ、CPU等の処理部111Bと、メモリ、ハードディスク等の記憶装置又は記憶媒体を含む記憶部111Cとを備え、各処理を行うためのプログラムを実行することによって構成することができる。各ノードは、1又は複数の装置ないしサーバを含むことがあり、また当該プログラムは1又は複数のプログラムを含むことがあり、また、コンピュータ読み取り可能な記憶媒体に記録して非一過性のプログラムプロダクトとすることができる。 Each partial network is composed of a plurality of nodes, and each node stores a communication unit 111A such as a communication interface, a processing unit 111B such as a processor and a CPU, and a storage device or a storage medium such as a memory and a hard disk. It can be configured by including a unit 111C and executing a program for performing each process. Each node may include one or a plurality of devices or servers, the program may include one or a plurality of programs, and a non-transitory program recorded in a computer-readable storage medium. Can be a product.

ユーザー端末140では、資産203の移転元アドレスなどの移転元識別子201から移転先アドレスなどの移転先識別子202への移転を表すトランザクションが生成される。こうしたトランザンクションの生成をするためのアプリケーションがユーザー端末140にインストールされるか、インターネットなどのコンピュータ・ネットワークを介してユーザー端末140において利用可能である。 In the user terminal 140, a transaction representing a transfer from the transfer source identifier 201 such as the transfer source address of the asset 203 to the transfer destination identifier 202 such as the transfer destination address is generated. An application for generating such a transaction can be installed in the user terminal 140 or can be used in the user terminal 140 via a computer network such as the Internet.

図3を参照して、本実施形態にかかる資産の移転を表すトランザクションを記憶する方法を説明する。まず、ユーザー端末140において仮想通貨等の資産203の移転元識別子201から移転先識別子202への移転を表すトランザクション200が生成される(S301)。トランザクション200には、移転元識別子201、移転先識別子202、移転される資産203の額が記述され、移転元識別子201に関連づけられた秘密鍵による署名204が付加される。たとえば、移転元識別子201の秘密鍵は、ユーザー端末140又はユーザー端末140のユーザーのみがアクセス可能に管理されており、当該ユーザーのみが移転先識別子201からの資産の移転を正当に実行可能である。 With reference to FIG. 3, a method of storing a transaction representing the transfer of assets according to the present embodiment will be described. First, the transaction 200 representing the transfer of the asset 203 such as virtual currency from the transfer source identifier 201 to the transfer destination identifier 202 is generated in the user terminal 140 (S301). In the transaction 200, the transfer source identifier 201, the transfer destination identifier 202, and the amount of the transferred asset 203 are described, and a signature 204 with a secret key associated with the transfer source identifier 201 is added. For example, the private key of the transfer source identifier 201 is managed so that only the user terminal 140 or the user of the user terminal 140 can access it, and only that user can legitimately transfer the asset from the transfer destination identifier 201. ..

次に、ユーザー端末140は、分散ネットワーク100に向けてトランザクション200の記録依頼要求を送信する(S302)。各部分ネットワークには、受け取ったトランザクションを自ら処理可能な移転元識別子の値又は範囲が設定されているところ、本実施形態において、ユーザー端末140のアプリケーションは、移転元識別子と各部分ネットワークが処理可能な移転元識別子の値又は範囲との対応づけを参照して、トランザクション200の記録依頼要求の送信先を判定する。図1及び2の例では、第1の部分ネットワーク110がトランザクション200を受信することとなる。 Next, the user terminal 140 transmits a recording request request for the transaction 200 to the distributed network 100 (S302). A value or range of a transfer source identifier capable of processing the received transaction by itself is set in each partial network. In this embodiment, the application of the user terminal 140 can process the transfer source identifier and each partial network. The transmission destination of the recording request request of the transaction 200 is determined by referring to the correspondence with the value or range of the transfer source identifier. In the example of FIGS. 1 and 2, the first partial network 110 will receive the transaction 200.

より詳細には、第1の部分ネットワーク110にトランザクション200を送信するという場合、第1の部分ネットワーク110を構成する1又は複数のノードに対して送信を行う。トランザクション200を受信したノード111は、その記憶部111C又は当該ノードからアクセス可能な記憶媒体又は記憶装置にトランザクション200をその後処理するため記憶する。必要に応じてトランザクション200を受信したノード111は、第1の部分ネットワーク110を構成するその他のノードにトランザクション200を送信し、第1の部分ネットワーク110を構成する複数のノードのうち、ブロック採択の合意形成に参加するノードにおいて記憶されることとなる。 More specifically, when transmitting the transaction 200 to the first partial network 110, the transaction 200 is transmitted to one or a plurality of nodes forming the first partial network 110. The node 111 that has received the transaction 200 stores the transaction 200 in the storage unit 111C or a storage medium or storage device accessible from the node for subsequent processing. The node 111, which has received the transaction 200 as necessary, transmits the transaction 200 to the other nodes configuring the first partial network 110, and among the plurality of nodes configuring the first partial network 110, the block adoption is performed. It will be stored in the nodes that participate in consensus building.

そして、第1の部分ネットワーク110を構成するいずれかのノード111が、それまでに記憶したトランザクションのうちの1又は複数のトランザクションを含むブロックを生成し、その採択のための第1の部分ネットワーク110における合意形成処理を行う(S303)。合意形成が行われた場合、合意形成に参加する各ノードは、各ノードが記憶するブロックチェーンに当該ブロックを追加する。第1の部分ネットワーク110の各ノードは、第1の部分ネットワーク110で処理可能な移転元識別子の秘密鍵に対応する公開鍵を記憶しており、トランザクションの受信時又はブロックの生成時に署名204の有効性を検証することが可能である。第1の部分ネットワーク110において行われる合意形成処理の詳細については後述する。公開鍵は、事前に各ノードが記憶しているのではなく、トランザクション200が当該トランザクション200に付加された署名204の秘密鍵に対応する公開鍵を含んでいるか、トランザクション200に当該公開鍵が付加されているか、署名204から計算可能であってもよい。 Then, one of the nodes 111 constituting the first partial network 110 generates a block including one or a plurality of transactions stored so far, and the first partial network 110 for adoption thereof. A consensus building process is performed (S303). When the consensus is formed, each node participating in the consensus formation adds the block to the block chain stored in each node. Each node of the first partial network 110 stores the public key corresponding to the private key of the transfer source identifier processable in the first partial network 110, and the signature 204 of the signature 204 is received when a transaction is received or a block is generated. It is possible to verify the effectiveness. The details of the consensus building process performed in the first partial network 110 will be described later. The public key is not stored in advance in each node, but whether the transaction 200 includes a public key corresponding to the private key of the signature 204 added to the transaction 200, or the public key is added to the transaction 200. Or may be calculable from the signature 204.

各ノードは、ブロックチェーンに加えて、各ノードが処理可能な移転元識別子に関連づけられた資産の状態を保持する識別子と資産の状態との対応づけを記憶しており、ブロックチェーンに当該ブロックを追加した後、追加されたブロックに含まれる1又は複数のトランザクションに記述された移転元識別子からの資産の移転を記録する(S304)。当該対応づけは、テーブル形式に限るものではないが便宜上「アセットテーブル」と呼ぶことがある。また、対応づけは、各ノードからアクセス可能な記憶媒体又は記憶装置に記憶してもよい。 In addition to the blockchain, each node stores the association between the asset state and the identifier that holds the state of the asset associated with the transfer source identifier that can be processed by each node, and stores the block in the blockchain. After the addition, the transfer of the asset from the transfer source identifier described in one or more transactions included in the added block is recorded (S304). The association is not limited to the table format, but may be referred to as “asset table” for convenience. Further, the association may be stored in a storage medium or a storage device accessible from each node.

より詳細には、一例として、分散ネットワーク100で処理可能な移転元識別子及び移転先識別子が「A」で始まる10桁の記号列、「B」で始まる10桁の記号列、そして「C」で始まる10桁の記号列である場合を考える。そして、第1の部分ネットワーク110は「A」で始まる移転元識別子、第2の部分ネットワーク120は「B」で始まる移転元識別子、第3の部分ネットワーク130は「C」で始まる移転元識別子を処理可能と設定されているものとする。第1の部分ネットワーク110において「A13afb3sdf」という移転元識別子201が記述されたトランザクション200を含むブロックに関する合意形成がなされたことを受けて、第1の部分ネットワーク110の各ノード111は、それぞれが記憶するアセットテーブル内の識別子「A13afb3sdf」の資産残高を更新する。具体的には、移転元識別子「A13afb3sdf」の資産残高を10BTC減少させる。 More specifically, as an example, the transfer source identifier and the transfer destination identifier processable in the distributed network 100 are a 10-digit symbol string starting with “A”, a 10-digit symbol string starting with “B”, and a “C”. Consider the case where it is a starting 10-digit symbol string. Then, the first partial network 110 has a transfer source identifier that starts with “A”, the second partial network 120 has a transfer source identifier that starts with “B”, and the third partial network 130 has a transfer source identifier that starts with “C”. It is assumed that processing is possible. In response to the agreement formation regarding the block including the transaction 200 in which the transfer source identifier 201 “A13afb3sdf” is described in the first partial network 110, each of the nodes 111 of the first partial network 110 stores each. The asset balance of the identifier “A13afb3sdf” in the asset table to be updated is updated. Specifically, the asset balance of the transfer source identifier “A13afb3sdf” is reduced by 10 BTC.

次いで、追加されたブロックを生成したノード又は第1の部分ネットワークのその他のノードが、追加されたブロックに含まれる1又は複数のトランザクションのうち移転先識別子が第1の部分ネットワーク110で処理可能な移転元識別子に一致しないトランザクションに対応するトランザクション400を、当該移転先識別子が自ネットワークにおいて処理可能な移転元識別子と一致する部分ネットワークに送信する(S305)。 Then, the node that generated the added block or another node of the first partial network can process the transfer destination identifier in the first partial network 110 among the one or more transactions included in the added block. The transaction 400 corresponding to the transaction that does not match the transfer source identifier is transmitted to the partial network in which the transfer destination identifier matches the transfer source identifier that can be processed in the own network (S305).

ここで、トランザクション400の生成がアセットテーブルの更新後に行われるものとして説明したが、これらは逆にすることも考えられる。合意形成処理(S303)に、ブロックに含まれる各トランザクションの移転元識別子から移転される資産の額が当該移転元識別子の残高以上であることの検証が含まれる場合には順序を逆にしてもよいが、含まれない場合にはアセットテーブルの更新処理(S304)に、移転される資産の額が残高以上であることの検証を含め、検証結果が肯定的であることを条件にトランザクション400の送信が実行されるようにしてもよい。 Here, the transaction 400 is described as being generated after the asset table is updated, but these may be reversed. If the consensus building process (S303) includes verification that the amount of assets transferred from the transfer source identifier of each transaction included in the block is equal to or more than the balance of the transfer source identifier, the order may be reversed. If it is not included, the update processing (S304) of the asset table includes the verification that the amount of the transferred asset is equal to or more than the balance, and the transaction 400 of the transaction 400 is provided on the condition that the verification result is positive. The transmission may be executed.

図2に示したトランザクション200に対応する図4のトランザクション400を例にすると、トランザクション400は、第1の部分ネットワーク110に記憶されたトランザクション200により表される資産203の移転を、移転先識別子202と一致する移転元識別子を処理可能な第2の部分ネットワーク120において反映させるものであり、移転元識別子401、移転先識別子402、移転される資産403の額が記述されている。図2のトランザクション200とは異なり、図4のトランザクション400においては、付加される署名404が、トランザクション200を含むブロックが第1の部分ネットワーク110においてその採択について合意形成がなされたこと、すなわち、ブロックチェーンに追加されたことを示す署名である。図4においては、署名404を「A」として図示している。署名404の詳細は後述する。 Taking the transaction 400 of FIG. 4 corresponding to the transaction 200 shown in FIG. 2 as an example, the transaction 400 indicates the transfer of the asset 203 represented by the transaction 200 stored in the first partial network 110 to the transfer destination identifier 202. Is to be reflected in the processable second partial network 120, and the amounts of the transfer source identifier 401, the transfer destination identifier 402, and the transferred asset 403 are described. Unlike the transaction 200 of FIG. 2, in the transaction 400 of FIG. 4, the attached signature 404 indicates that the block containing the transaction 200 has been agreed upon for its adoption in the first partial network 110, ie, the block. It is a signature indicating that it has been added to the chain. In FIG. 4, the signature 404 is shown as “A”. Details of the signature 404 will be described later.

以下において、トランザクション400は部分ネットワーク間での資産の状態の整合性を保つためのものであり、いわゆるペグさせるものであるため、「ペグトランザクション」と呼ぶことがあり、署名404は「ペグ署名」と呼ぶことがある。 In the following, since the transaction 400 is for maintaining the consistency of the asset state between the partial networks and is what is called a peg, it is sometimes called a “peg transaction”, and the signature 404 is a “peg signature”. Sometimes called.

ペグトランザクション400を受信した第2の部分ネットワーク120では、ペグトランザクション400を含むブロックをいずれかのノードが生成し、当該ブロックの採択についての合意形成処理(S306)がなされた後に各ノードのブロックチェーンに追加される。第2の部分ネットワーク120の各ノードは、第2の部分ネットワーク120で処理可能な移転元識別子の秘密鍵に対応する公開鍵を記憶するとともに、他の部分ネットワークによるペグ署名に関連づけられた公開鍵を記憶している。当該公開鍵によってトランザクション400のペグ署名404を有効なものとして検証することで、トランザクション400がペグトランザクションであることを判定することができる。公開鍵は、事前に各ノードが記憶しているのではなく、ペグトランザクション400が当該トランザクション400に付加された署名404の秘密鍵に対応する公開鍵を含んでいるか、トランザクション200に当該公開鍵が付加されていてもよい。いずれにしても、各部分ネットワークは、ペグトランザクション400に付加される署名404の秘密鍵に対応する公開鍵が、いずれの部分ネットワークで署名可能な秘密鍵に対応するものであるのか、換言すれば、公開鍵のいわゆる保有者がいずれの部分ネットワークであるのかを確認可能であるものとする。 In the second partial network 120 that has received the peg transaction 400, one of the nodes generates a block including the peg transaction 400, and after the consensus forming process (S306) for adoption of the block is performed, the block chain of each node Added to. Each node of the second partial network 120 stores the public key corresponding to the private key of the transfer source identifier processable in the second partial network 120, and the public key associated with the peg signature by another partial network. I remember. By verifying the peg signature 404 of the transaction 400 as valid with the public key, it is possible to determine that the transaction 400 is a peg transaction. The public key is not stored in each node in advance, but whether the peg transaction 400 includes the public key corresponding to the private key of the signature 404 added to the transaction 400, or whether the public key is included in the transaction 200. It may be added. In any case, in each partial network, in other words, in which partial network the public key corresponding to the private key of the signature 404 added to the peg transaction 400 corresponds to the private key that can be signed. It is possible to confirm which partial network the so-called holder of the public key belongs to.

ある部分ネットワークが受信したトランザクションが通常のトランザクション200であるかペグトランザクション400であるかを区別するためには、上記のように署名の検証に用いた公開鍵によって判定することが考えられるが、識別子に基づいて判定することも考えられる。すなわち、移転元識別子が自ネットワークにおいて処理可能な移転元識別子ではなく、移転先識別子が自ネットワークにおいて処理可能な移転元識別子のいずれかと一致する場合、当該トランザクションをペグトランザクション400と判定することが可能である。 In order to distinguish whether the transaction received by a certain partial network is the normal transaction 200 or the peg transaction 400, it is conceivable to judge by the public key used for verifying the signature as described above. It is also possible to make a determination based on That is, if the transfer source identifier is not a transfer source identifier processable in the own network and the transfer destination identifier matches any of the transfer source identifiers processable in the own network, the transaction can be determined as a peg transaction 400. Is.

ブロックが追加された後、当該ブロックに含まれるペグトランザクション400について、各ノードはペグトランザクション400の移転先識別子402の資産残高を更新して資産203の移転を記録する(S307)。通常トランザクション200では、上述したように資産203の移転元識別子201の資産残高を更新するところ、ペグトランザクション400では、移転先識別子402の資産残高を更新する。ペグトランザクション400の移転先識別子402は第2の部分ネットワーク120で処理可能な移転元識別子のいずれかと一致し、第2の部分ネットワーク120の各ノードは、各ノードの記憶部又は各ノードからアクセス可能な記憶媒体又は記憶装置に、自ネットワークで処理可能な移転元識別子と当該識別子に関連づけられた資産の状態との対応づけを参照し、更新することができる。 After the block is added, for the peg transaction 400 included in the block, each node updates the asset balance of the transfer destination identifier 402 of the peg transaction 400 and records the transfer of the asset 203 (S307). In the normal transaction 200, the asset balance of the transfer source identifier 201 of the asset 203 is updated as described above, while in the peg transaction 400, the asset balance of the transfer destination identifier 402 is updated. The transfer destination identifier 402 of the peg transaction 400 matches one of the transfer source identifiers that can be processed by the second partial network 120, and each node of the second partial network 120 can be accessed from the storage unit of each node or each node. The storage medium or storage device can be updated by referring to the correspondence between the transfer source identifier processable in the own network and the state of the asset associated with the identifier.

以上のように、分散ネットワークを複数の部分ネットワークにより構成し、各部分ネットワークにおいて処理可能な移転元識別子を定めておくことによって、トランザクションの並列処理を行い、同時に複数のトランザクションの処理が実行可能となる。よって、単位時間当たりのトランザクション処理速度を大幅に向上させることができる。 As described above, by configuring the distributed network with a plurality of partial networks and determining transfer source identifiers that can be processed in each partial network, it is possible to perform parallel processing of transactions and execute processing of multiple transactions at the same time. Become. Therefore, the transaction processing speed per unit time can be significantly improved.

上述の説明では、ユーザー端末140が用いるアプリケーションにおいて、移転元識別子と処理可能な移転元識別子の値又は範囲との対応づけを参照して、トランザクション200の記録依頼要求の送信先を判定するものとして記述したが、1又は複数の部分ネットワークに向けて送信をして、トランザクション200が受信した部分ネットワークにおいて自ら処理可能なトランザクションでなければトランザクション200を処理可能な部分ネットワークに転送してもよい。また、分散ネットワーク100に転送ノード(図示せず)を設けて、転送ノードにおいて最初にユーザー端末140から送信されたトランザクション200を受信し、送信元識別子201の値に応じてトランザクション200を処理可能な部分ネットワークを判定してもよい。 In the above description, in the application used by the user terminal 140, it is assumed that the destination of the recording request request of the transaction 200 is determined by referring to the correspondence between the transfer source identifier and the value or range of the processable transfer source identifier. As described above, the transaction 200 may be transmitted to one or a plurality of partial networks, and the transaction 200 may be transferred to the partial network which can be processed unless the transaction 200 can process itself in the received partial network. Further, a forwarding node (not shown) is provided in the distributed network 100, the transaction 200 that is first transmitted from the user terminal 140 is received in the forwarding node, and the transaction 200 can be processed according to the value of the transmission source identifier 201. You may determine a partial network.

また、上述の説明では、ペグトランザクション400の送信先を第1の部分ネットワーク110において定めるものとして記述したが、通常トランザクション200の送信先と同様の態様で送信を行うことが考えられる。 Further, in the above description, the destination of the peg transaction 400 is described as being defined in the first partial network 110, but it is conceivable that the transmission is performed in the same manner as the destination of the normal transaction 200.

また、上述の説明では、資産203の額は特段制約を課していないが、正の値として、トランザクション200の検証の際に残高不足があれば無効なトランザクションとして処理することが好ましい。負の値とした場合、すなわち移転元識別子201が資産203を受け取る場合には、移転先識別子202の資産残高を第1のネットワーク110のアセットテーブルでは管理していないことから、残高不足か否かを検証することが出来ず、第1の部分ネットワーク110において当該トランザクションを含むブロックが追加されたにも関わらず第2の部分ネットワーク120では移転先識別子202の残高不足によって無効と処理される恐れが生じる。 Further, in the above description, the amount of the asset 203 is not particularly restricted, but it is preferable to process it as an invalid transaction if the balance is insufficient when verifying the transaction 200 as a positive value. When the value is a negative value, that is, when the transfer source identifier 201 receives the asset 203, the asset balance of the transfer destination identifier 202 is not managed in the asset table of the first network 110. However, even if a block including the transaction is added in the first partial network 110, the second partial network 120 may be processed as invalid due to insufficient balance of the transfer destination identifier 202. Occurs.

なお、「××のみに基づいて」、「××のみに応じて」、「××のみの場合」というように「のみ」との記載がなければ、本明細書においては、付加的な情報も考慮し得ることが想定されていることに留意されたい。また、一例として、「aの場合にbする」という記載は、明示した場合を除き、「aの場合に常にbする」ことを必ずしも意味しないことに留意されたい。 If there is no description of “only” such as “based only on XX”, “according to only XX”, “in the case of only XX”, in this specification, additional information It should be noted that it is assumed that can also be considered. Also, as an example, it should be noted that the description “b in the case of a” does not necessarily mean “always b in the case of a” unless explicitly stated.

また、念のため、なんらかの方法、プログラム、端末、装置、サーバ又はシステム(以下「方法等」)において、本明細書で記述された動作と異なる動作を行う側面があるとしても、本発明の各態様は、本明細書で記述された動作のいずれかと同一の動作を対象とするものであり、本明細書で記述された動作と異なる動作が存在することは、当該方法等を本発明の各態様の範囲外とするものではないことを付言する。 Also, as a precaution, even if some method, program, terminal, device, server or system (hereinafter “method etc.”) has an aspect that performs an operation different from the operation described in this specification, each of the present invention The aspect is intended for the same operation as any one of the operations described in the present specification, and the existence of an operation different from the operation described in the present specification means that the method etc. It is added that it does not fall outside the scope of the embodiment.

合意形成の詳細
部分ネットワークにおける合意形成は、さまざまな合意アルゴリズムの下で行うことができるところ、一例として、合意形成に参加するN個(Nは2以上の整数)のノードのうちk個(kは2≦k≦Nを満たす整数)のノードによる署名を必要とするものが挙げられる。N=5、k=3の例を考えれば、これは合意形成に参加するノードの過半数による署名が必要となることを意味する。そして、合意形成がなされ、合意形成対象のブロックについてその採択が確定したことを示すためには、根拠としてk個以上の署名を付すことが必要となる。
Consensus building details Consensus building in a sub-network can be done under various consensus algorithms. As an example, k (k is an integer of 2 or more) of N (N is an integer of 2 or more) nodes participating in consensus building. Is an integer that satisfies 2≦k≦N). Considering the example of N=5 and k=3, this means that a signature by the majority of the nodes participating in consensus formation is required. Then, in order to show that the consensus is formed and the adoption of the block for which the consensus is formed is confirmed, it is necessary to add k or more signatures as a basis.

このようにk個のノードによる署名が当該合意アルゴリズムにおける所定の条件を満たすことのできるノードの組み合わせはN及びkの値によっては数多く考えられ、このことは、合意が形成されたブロックについて、署名の取り扱いを複雑にしている側面がある。たとえば、あるブロックの署名を事後的に検証(verify)するためには、当該ブロックに付された複数の署名が所定の条件を満たしているか否かを個別に確認しなければならないからである。そこで、以下に述べるような単一の署名によって、部分ネットワークにおいて、ブロックの採択にかかる合意がなされたことを示すことが好ましい。このことは、ブロックの採択についての合意形成だけでなく、ペグトランザクション400にペグ署名404を付加するための合意形成についても同様である。 As described above, there are many possible combinations of nodes in which the signature by the k nodes can satisfy the predetermined condition in the agreement algorithm, depending on the values of N and k. There are aspects that complicate the handling of. This is because, for example, in order to subsequently verify the signature of a block, it is necessary to individually confirm whether or not a plurality of signatures attached to the block satisfy a predetermined condition. Therefore, it is preferable that a single signature as described below is used to indicate that agreement has been reached regarding the selection of blocks in the partial network. This applies not only to the consensus formation regarding the adoption of the block but also the consensus formation for adding the peg signature 404 to the peg transaction 400.

図5に示すネットワーク500は、例示としてNが5であり、第1のノード510、第2のノード520、第3のノード530、第4のノード540及び第5のノード550を有する。各ノードは、第1のノード510について図示するように、通信インターフェースなどの通信部511と、プロセッサ、CPU等の処理部512と、メモリ、ハードディスク等の記憶装置又は記憶媒体を含む記憶部513とを備えるコンピュータであり、所定のプログラムを実行することによって、以下で説明する各処理を実現することができ、当該ノード510は、1又は複数の装置ないしサーバを含むことがあり、また当該プログラムは、1又は複数のプログラムを含むことがあり、また、コンピュータ読み取り可能な記憶媒体に記録して非一過性のプログラムプロダクトとすることができる。その他のノードについても、そのハードウェアの構成は同様である。以下では第1のノード510を中心に説明するが、他のノードにおいても、同様の処理を行い得る。また、合意形成に参加しないノードがネットワーク500に含まれることもある。 The network 500 illustrated in FIG. 5 has N of 5 as an example, and includes a first node 510, a second node 520, a third node 530, a fourth node 540, and a fifth node 550. As illustrated for the first node 510, each node includes a communication unit 511 such as a communication interface, a processing unit 512 such as a processor and a CPU, and a storage unit 513 including a storage device or a storage medium such as a memory and a hard disk. It is a computer provided with, and each processing described below can be realized by executing a predetermined program. The node 510 may include one or a plurality of devices or servers, and the program is One or a plurality of programs may be included, and the program can be recorded in a computer-readable storage medium to provide a non-transitory program product. The hardware configurations of the other nodes are similar. Although the first node 510 will be mainly described below, similar processing can be performed in other nodes. The network 500 may include nodes that do not participate in consensus building.

所定のプログラムには、合意アルゴリズムにかかるルール及びセットアップにかかるルールが定められており、記憶部513又は第1のノード510からネットワークを介してアクセス可能な記憶装置又は記憶媒体に記憶しておくことができる。 The predetermined program defines the rules related to the agreement algorithm and the rules related to the setup, and should be stored in a storage device or a storage medium accessible from the storage unit 513 or the first node 510 via the network. You can

合意形成に参加するN個のノードが、互いに通信可能な状態から、ブロックの採択にかかる合意形成を実行可能な状態に遷移するために実行させるべきプロセスを「セットアップ」と呼ぶ。セットアップは、ネットワーク500の外部又は内部においてセットアップの要求を受けて開始され、図5では、外部から当該要求が送信される例を示している。当該要求には、合意形成に必要となる署名の数kを含むことができ、また予めセットアップにかかるルールの中で定めておいてもよい。また、当該要求には、合意形成に参加するN個のノードの指定を含むことができ、またこの指定は予めセットアップにかかるルールの中で定めておいてもよい。 A process to be executed in order for N nodes participating in consensus building to transition from a state in which they can communicate with each other to a state in which consensus building regarding block adoption can be executed is called “setup”. The setup is started by receiving a setup request from outside or inside the network 500, and FIG. 5 shows an example in which the request is transmitted from the outside. The request may include the number k of signatures required for consensus formation, and may be set in advance in a rule concerning setup. Further, the request can include designation of N nodes that participate in consensus building, and this designation may be defined in advance in a rule relating to setup.

いずれかの形でN及びkの値が定まり、セットアップ・プロセスの実行が進むと、各ノードは、合意形成に参加するノード全体に割り当てられた1個の公開鍵、合意形成に参加する各ノードに割り当てられたN個の公開鍵シェア、そして当該ノードに割り当てられた1個の秘密鍵シェアを保持することとなる。また、各ノードは、N及びkの値又はk/Nの値も保持することとなる。Nの値は、公開鍵シェアの数から求めることもできる。 When the values of N and k are determined in any form, and the execution of the setup process proceeds, each node has one public key assigned to all nodes participating in consensus formation, each node participating in consensus formation. Will hold N public key shares assigned to the node, and 1 private key share assigned to the node. Further, each node also holds the values of N and k or the value of k/N. The value of N can also be obtained from the number of public key shares.

秘密鍵と公開鍵は、当該秘密鍵により署名した平文を当該公開鍵により検証できるという関係にあり、秘密鍵シェアとそれに対応する公開鍵シェアについても同様である。ここで、「秘密鍵シェア」とは、N個の一組の秘密鍵シェアのうち所定の数k個の秘密鍵シェアによる署名を用いて秘密鍵による署名を生成可能であるように、生成された一組の秘密鍵シェアのうちのいずれかを指す。したがって、当該秘密鍵を知ることなく、k個の秘密鍵シェアに基づいて公開鍵に対応する署名を生成し、合意形成の対象であるブロックに当該署名を付加することができる。付加された署名は、公開鍵によってその検証可能である。 The private key and the public key have a relationship that the plaintext signed by the private key can be verified by the public key, and the same applies to the private key share and the corresponding public key share. Here, the “secret key share” is generated so that a signature with a secret key can be generated using a signature with a predetermined number k of secret key shares out of a set of N secret key shares. One of a set of private key shares. Therefore, without knowing the secret key, a signature corresponding to the public key can be generated based on k secret key shares, and the signature can be added to the block for which consensus is formed. The added signature can be verified by the public key.

図5の例についてさらに説明すると、ネットワーク500全体に割り当てられる1個の公開鍵をPK(Public Keyの略)、当該公開鍵に対応する秘密鍵をSK(Secret Keyの略)、第1のノード510、第2のノード520、第3のノード530、第4のノード540、第5のノード550のそれぞれに割り当てられる公開鍵シェア及び秘密鍵シェアをそれぞれPK1及びSK1、PK2及びSK2、PK3及びSK3、PK4及びSK4、PK5及びSK5と表記する。セットアップ後には、たとえば第1のノードは、PK、PK1乃至PK5及びSK1をその記憶部513又は当該ノードと通信可能な記憶装置又は記憶媒体に記憶していることになる。記憶されたこれらのデータは、後の合意形成又はその確定プロセスにおいて当該ノードからアクセス可能となる。 To further explain the example in FIG. 5, one public key assigned to the entire network 500 is PK (abbreviation of Public Key), a secret key corresponding to the public key is SK (abbreviation of Secret Key), and the first node 510, the second node 520, the third node 530, the fourth node 540, and the fifth node 550 are assigned public key shares and secret key shares PK1 and SK1, PK2 and SK2, PK3 and SK3, respectively. , PK4 and SK4, PK5 and SK5. After the setup, for example, the first node stores PK, PK1 to PK5, and SK1 in its storage unit 513 or a storage device or storage medium that can communicate with the node. These stored data will be accessible from the node in the subsequent consensus building process or its concluding process.

ここで、公開鍵PKは、最終的に付加される署名の検証に必要となるところ、セットアップの段階では生成しない場合もある。署名の検証を行うノード又は装置が検証時に公開鍵PKを有していればよく、初期設定の時点で必ずしもネットワーク500の各ノードが有していることは必要ではないからである。 Here, the public key PK is necessary for verification of the finally added signature, but may not be generated at the setup stage. This is because the node or device that verifies the signature only needs to have the public key PK at the time of verification, and each node of the network 500 does not necessarily have to have the public key PK at the time of initial setting.

図6に、本実施形態にかかるこれらの鍵生成方法の流れを示す。ここでは一例として、(k−1)次多項式f(x)を考え、f(xi)の値(iはi番目のノードを表す1からNの整数であり、xiは任意の整数)を各ノードに対する秘密鍵シェアSKiとするものとする。 FIG. 6 shows the flow of these key generation methods according to this embodiment. Here, as an example, consider a (k−1)th degree polynomial f(x), and each value of f(xi) (i is an integer from 1 to N representing the i-th node, and xi is an arbitrary integer) The private key share SKi for the node is assumed.

まず、i番目のノードは、aim(mは0からk−1の整数)を係数とする(k−1)次多項式fi(x)を決定する(S601)。各ノードは、セットアップルールに従って、aimを選択ないし生成して記憶することによってfi(x)を計算することができる。 First, the i-th node determines a (k-1)th degree polynomial fi(x) having aim (m is an integer from 0 to k-1) as a coefficient (S601). Each node can calculate fi(x) by selecting or generating aim and storing it according to the setup rule.

Figure 2020127187
Figure 2020127187

次に、i番目のノードは、巡回群G1の生成元g1を用いて、0からk−1の各mにおけるaim・g1の値又はそれを含むメッセージを他のノードに送信する(S602)。また、i番目のノードは、j番目のノード(jは1からNの整数)に対して、fi(xj)の値又はそれを含むメッセージを送信する。ここで、fi(xj)の送信は、m及びaim・g1より前に送信してもよく、またこれと同時に送信してもよい。
生成元g1は、各ノードに記憶されて既知であるか、いずれかのノードから合意形成に参加するN個のノードに与えられることによって、N個のノードそれぞれがアクセス可能であり、用いることができるものとする。同様に、i番目のノードに秘密鍵シェアf(xi)を与える整数xiの値についても、N個のノードそれぞれがアクセス可能であり、用いることができるものとする。たとえば、これらの値は、各ノードの記憶部又は各ノードからアクセス可能な記憶装置又は記憶媒体に記憶しておけばよい。
Next, the i-th node uses the generator g1 of the cyclic group G1 to transmit the value of aim·g1 in each m from 0 to k−1 or a message including the value to another node (S602). Further, the i-th node transmits the value of fi(xj) or a message including it to the j-th node (j is an integer from 1 to N). Here, fi(xj) may be transmitted before m and aim·g1, or may be transmitted at the same time.
The generator g1 is stored in each node and known, or given from one of the nodes to the N nodes participating in consensus formation, the N nodes can access and use it. It should be possible. Similarly, with respect to the value of the integer xi that gives the secret key share f(xi) to the i-th node, each of the N nodes can access and can be used. For example, these values may be stored in a storage unit of each node or a storage device or storage medium accessible from each node.

そして、j番目のノードにおいて、1からNのiについてfi(xj)を加算して、f(xj)、すなわち秘密鍵シェアSKjを算出する(S604)。多項式f(x)を次式のように定義すれば、 Then, in the j-th node, fi(xj) is added for i from 1 to N to calculate f(xj), that is, the secret key share SKj (S604). If the polynomial f(x) is defined as

Figure 2020127187
Figure 2020127187

これは、いずれのノードに対しても知らされていないものの、次式のようにf(xj)を考えることによって、f(x)自体を各ノードが知ることなく、f(xj)の値を各ノードにおいて算出可能である。 Although this is not known to any node, by considering f(xj) as in the following equation, the value of f(xj) can be calculated without each node knowing f(xj) itself. It can be calculated at each node.

Figure 2020127187
Figure 2020127187

また、各ノードは、m及びaim・g1を自ノードにおいては算出可能であるとともに他ノードのものについては既に受信していることから、次式に従って、公開鍵シェアPKjとしてSKj・g1を算出することができる(S206)。 Further, since each node can calculate m and aim·g1 at its own node and already has received from other nodes, SKj·g1 is calculated as the public key share PKj according to the following equation. It is possible (S206).

Figure 2020127187
Figure 2020127187

この式による公開鍵シェアPKiの算出は、m及びaim・g1並びにxiがすべてのiについて既知であることから、f(x)を知ることなくすべてのノードについて可能である。 The calculation of the public key share PKi by this formula is possible for all nodes without knowing f(x) because m and aim.g1 and xi are known for all i.

このようにして得られた公開鍵シェアと秘密鍵シェアのペアは、合意形成対象のブロックのハッシュ値hを与えるハッシュ関数を任意のデータからg2を生成元とする巡回群G2への写像とし、hにSKjを乗じたSKj・hを署名sjとして、G1×G2からgTを生成元とする巡回群GTへの写像eであって、次式を満たす双線形写像を定義することによって、暗号方式として成り立つことが分かる。ここで、a及びbは任意の整数である。 The pair of the public key share and the secret key share obtained in this way is a hash function that gives the hash value h of the block for which consensus is to be formed, which is a mapping from arbitrary data to the cyclic group G2 whose source is g2, By defining SKj·h obtained by multiplying h by SKj as a signature sj, a mapping e from G1×G2 to a cyclic group GT whose generator is gT, and a bilinear mapping satisfying the following equation is defined. It can be seen that Here, a and b are arbitrary integers.

Figure 2020127187
Figure 2020127187

すなわち、i番目のノードにおいて、合意形成対象のブロックのハッシュ値h及び署名sjをj番目のノードより受け取ったとき、上述のアルゴリズムによって既知の公開鍵シェアPKjを用いて、 That is, when the i-th node receives the hash value h and the signature sj of the block for consensus formation from the j-th node, using the public key share PKj known by the above algorithm,

Figure 2020127187
Figure 2020127187

となるため、既知の生成元g1を用いて、j番目のノードより受け取った署名sjの検証を行うことができる。ハッシュ値は、セットアップルールの中にハッシュ関数を定めておくことで、各ノードにおいて、合意形成対象のブロックから算出してもよい。 Therefore, the signature sj received from the j-th node can be verified using the known generator g1. The hash value may be calculated from the consensus building target block at each node by defining a hash function in the setup rule.

生成元g1、g2の位数は素数であることが好ましく、各生成元により生成される巡回群G1、G2の元の数は一例として32バイト、すなわち256ビット程度以上であることが好ましい。ここで、巡回群G1、G2における演算は加法的に記述しており、たとえば、生成元g1をa回繰り返し加算する演算をa・g1を表記し、「aを生成元g1に乗じる」と呼ぶ。なお、axのように整数の集合の元同士の乗算も本明細書において表記として用いられるが、これは巡回加法群における乗算とは異なるものであることを念のため付言する。 The order of the generators g1 and g2 is preferably a prime number, and the number of elements of the cyclic groups G1 and G2 generated by each generator is preferably 32 bytes, that is, about 256 bits or more. Here, the operations in the cyclic groups G1 and G2 are described additively. For example, the operation of repeatedly adding the generator g1 a times a is expressed as a·g1 and is called “multiply a by the generator g1”. .. Note that the multiplication of elements of a set of integers such as ax is also used as a notation in this specification, but it should be noted that this is different from multiplication in the cyclic additive group.

上述の説明では、(k−1)次多項式関数f(x)の値を秘密鍵シェアとして定め、当該秘密鍵シェアを巡回群の生成元に乗じた値を公開鍵シェアとする署名方式を前提としているところ、N個の一組の秘密鍵シェアのうち所定の数k個の秘密鍵シェアによる署名を用いて秘密鍵による署名を生成可能であれば、異なる署名方式を採用することもできる。また、この際には、ネットワーク500のいずれかのノード又はその外部のノードが生成した一組の秘密鍵シェアを各ノードに与えるのではなく、各秘密鍵シェアが各ノードにおいて分散して生成可能であることが望ましい。 In the above description, the value of the (k−1)th degree polynomial function f(x) is defined as the secret key share, and the public key share is a value obtained by multiplying the secret key share by the generator of the cyclic group. However, if a signature with a secret key can be generated using signatures with a predetermined number k of secret key shares out of a set of N secret key shares, different signature schemes can be adopted. In this case, instead of giving a set of secret key shares generated by any node of the network 500 or a node outside thereof to each node, each secret key share can be generated in a distributed manner in each node. Is desirable.

また、上述の説明では、j番目のノードにおける公開鍵シェアPKj及び秘密鍵シェアSKjを例に説明したが、i番目のノードを中心にそこで行われる処理を記述する場合には、当然ではあるが、添え字が適宜変更されることを付言する。 Further, in the above description, the public key share PKj and the secret key share SKj in the j-th node have been described as an example, but when describing the processing performed there centering on the i-th node, it is natural. , Addition that the subscripts are changed appropriately.

図7に、本発明の一実施形態にかかるブロックの採択についての確定方法の流れを示す。セットアップが完了した状態から、第1のノード510が、ブロックを生成して当該ブロックを含む第1のメッセージを合意形成に参加するN個のノードに送信する(S701)。送信ノードも自ら当該ブロックを受信することができる。ここで、ノード間では、メッセージが直接的又は間接的に送受信可能であり、ネットワーク100を構成する他のノードに合意形成に関連するデータを伝え、また、他のノードからデータを受け取ることができる。 FIG. 7 shows a flow of a method for determining a block selection according to an embodiment of the present invention. From the state where the setup is completed, the first node 510 generates a block and transmits the first message including the block to the N nodes participating in consensus formation (S701). The transmitting node can also receive the block itself. Here, messages can be directly or indirectly transmitted and received between the nodes, and data related to consensus building can be transmitted to other nodes constituting the network 100 and data can be received from the other nodes. ..

第1のメッセージを受信した各ノードは、それぞれが有するプログラムに定められた合意形成のルールに基づいて、当該ブロックの有効性を評価する(S702)。有効性の評価の詳細は、送信者が正当な送信ノードであるか、ブロックのデータ形式が用途に応じた所定の形式その他の所定の条件を満たしているか、分岐が生じていないかなど、さまざまなルールを含むことができ、ノードによって異なるルールが存在してもよい。また、有効性の評価を行う上で、他のノードとのメッセージの送受信を必要としてもよい。 Each node that receives the first message evaluates the effectiveness of the block based on the consensus building rules defined in the programs that the nodes have (S702). Details of effectiveness evaluation include various things such as whether the sender is a legitimate sender node, whether the data format of the block satisfies a certain format and other certain conditions according to the application, whether branching has occurred, etc. Rules may be included, and different rules may exist depending on the node. In addition, it may be necessary to send and receive messages to and from other nodes in order to evaluate the effectiveness.

有効と評価された場合、当該ノードは、当該ノードがアクセス可能な秘密鍵シェアf(xi)による合意形成対象のブロックのハッシュ値hに対する署名siを有する第2のメッセージを各ノードに送信する(S703−1)。署名は、当該ノードに与えられた秘密鍵シェアをハッシュ値に乗じることによって行うことができる。送信先には、自ノードを含めてもよい。無効と評価された場合には、当該ブロックは却下される(S703−2)。 If the node is evaluated as valid, the node transmits to each node a second message having the signature si for the hash value h of the block for which consensus is formed by the secret key share f(xi) accessible by the node ( S703-1). The signature can be performed by multiplying the hash value by the secret key share given to the node. The destination may include its own node. If the block is evaluated as invalid, the block is rejected (S703-2).

j番目のノードにおいてk個の署名が集まった後、当該ノードは、これらの署名を合成して、公開鍵PKに対応する署名を生成する(S704)。具体的には、各ノードは、定期的又は断続的に、k/Nの条件が充足されたか否かを判定し、充足された場合には、受け取ったk個又はk個以上の秘密鍵シェアによる署名から、f(0)・hを公開鍵PKに対応する秘密鍵SKによる署名SK・hとして算出することができる。ここでは、(k−1)次多項式f(x)は、k個以上の点(xi,f(xi))が既知であれば一意に定めることができ、f(0)の値を未知の秘密鍵SKの値と考えられることを用いている。k個の署名からk個の点(xi,f(xi)・h)が既知であれば、関数f(x)・hが定まることになる。f(0)・hの算出は、たとえば、ラグランジュ補間を用いて行うことができる。 After k signatures are collected at the jth node, the node synthesizes these signatures to generate a signature corresponding to the public key PK (S704). Specifically, each node periodically or intermittently determines whether or not the condition of k/N is satisfied, and if satisfied, receives k or k or more secret key shares. F(0)·h can be calculated as the signature SK·h by the private key SK corresponding to the public key PK from the signature by Here, the (k-1)th degree polynomial f(x) can be uniquely determined if k or more points (xi, f(xi)) are known, and the value of f(0) is unknown. What is considered as the value of the secret key SK is used. If k points (xi, f(xi)·h) are known from the k signatures, the function f(x)·h is determined. The calculation of f(0)·h can be performed using, for example, Lagrange interpolation.

なお、公開鍵PKは、k個以上の点(xj,PKj)=(xj,f(xj)・g1)から、たとえば、ラグランジュ補間によって算出可能であり、これはセットアップの段階で行っておいて必要に応じて配布しておいてもよいし、署名の検証を行うネットワーク500の内部又は外部のノード又は装置が検証時又は検証前にk個の公開鍵シェアPKjに基づいて生成してもよい。 The public key PK can be calculated, for example, by Lagrange interpolation from k or more points (xj, PKj)=(xj, f(xj)·g1). This can be done at the setup stage. It may be distributed as needed, or it may be generated by a node or device inside or outside the network 500 for verifying a signature based on the k public key shares PKj at the time of verification or before verification. ..

そして、必要であれば、生成された単一の署名SK・hが他のノードにブロードキャスト乃至送信される(S705)。既にk個以上のノードによる有効性の評価が済んでいることから、合成に成功した時点でブロックを当該ノードが有するブロックチェーンに追加可能としてもよいが、一例として、合成に成功したノードは他のノードに当該合成後の署名を送信し、そして、所定の数以上の合成後の署名を受け取ったことに応じて、各ノードはブロックを追加可能としてもよい。 Then, if necessary, the generated single signature SK·h is broadcast or transmitted to other nodes (S705). Since the effectiveness of k or more nodes has already been evaluated, it may be possible to add a block to the block chain of the node at the time of successful synthesis. Each node may be able to add a block in response to transmitting the combined signature to the node and receiving a predetermined number or more of combined signatures.

最後に、合意形成対象のブロックは、署名SK・hが付加されて各ノードのブロックチェーンに追加される(S706)。これにより、当該ブロックのネットワーク700における採択が確定する。 Finally, the block for consensus formation is added to the block chain of each node with the signature SK·h added (S706). As a result, the adoption of the block in the network 700 is confirmed.

上述の説明では、各ノードに1つの秘密鍵シェアが与えられる場合を考えているが、1つのノードに与えるシェア数を複数とすることも考えられる。また、上述の説明では、有効性の評価対象となるブロックの詳細について触れていないが、1又は複数のトランザクションを含むものとすることができ、あるいは、任意の1又は複数のデータを含むとすることもできる。そして、必ずしもチェーンを形成しない1又は複数のデータに対する複数のノードを有するコンピュータ・ネットワークによる有効性の評価につき、本発明の精神を適用することも可能である。 In the above description, the case where one secret key share is given to each node is considered, but it is also possible to give a plurality of shares to one node. Further, in the above description, the details of the block to be evaluated for validity are not mentioned, but the block may include one or a plurality of transactions, or may include any one or a plurality of data. it can. It is also possible to apply the spirit of the present invention to the evaluation of effectiveness by a computer network having a plurality of nodes for one or a plurality of data that do not necessarily form a chain.

ペグ署名の詳細
ペグ署名404は、第1の部分ネットワーク110におけるブロックの採択にかかる合意形成に用いられる合意アルゴリズムと同一又はこれに対応する合意アルゴリズムによって生成することができる。あるいは、第1の部分ネットワーク110におけるブロックの採択で採用される合意アルゴリズムとは異なる合意アルゴリズムによって生成することができる。
Details of Peg Signature The peg signature 404 can be generated by an agreement algorithm that is the same as or corresponding to the agreement algorithm used for consensus formation regarding the adoption of the block in the first partial network 110. Alternatively, it can be generated by a consensus algorithm different from the consensus algorithm adopted in the selection of the blocks in the first partial network 110.

いずれの場合においても、ペグ署名404は、一例として、ペグトランザクション400又はその一部のハッシュ値に対する1又は複数の秘密鍵による1又は複数の署名とすることができる。ペグトランザクション400を受信した第2の部分ネットワーク120では、ペグトランザクション400の受信時又はペグトランザクション400を含むブロックの生成時に、ペグ署名404の有効性を検証する。 In any case, the peg signature 404 may be, for example, one or more signatures with one or more private keys for the hash value of the peg transaction 400 or a portion thereof. The second partial network 120 that has received the peg transaction 400 verifies the validity of the peg signature 404 when the peg transaction 400 is received or when the block including the peg transaction 400 is generated.

この方式であると、ブロックの採択のために一度合意形成がなされているにもかかわらず、当該ブロックに含まれる、移転先識別子が第1の部分ネットワーク110で処理可能な移転元識別子に一致しないすべてのトランザクションについて、それらに対応するペグトランザクション400を生成し、それぞれについて第1の部分ネットワーク110として署名するための合意形成を行わなければならない。部分ネットワークの数が増えれば増えるほど、移転先識別子が第1の部分ネットワーク110で処理可能な移転元識別子に一致しないトランザクションの数も増え、合意形成処理が増加することとなる。 According to this method, the transfer destination identifier included in the block does not match the transfer source identifier processable in the first partial network 110, even though the consensus is once formed for the adoption of the block. For every transaction, a corresponding peg transaction 400 must be generated and consensus formed for each to be signed as the first partial network 110. As the number of partial networks increases, the number of transactions in which the transfer destination identifier does not match the transfer source identifier processable in the first partial network 110 also increases, and the consensus forming process increases.

そのため、別方式では、マークルツリーを用いる。ペグ署名404を生成するために、まず、第1の部分ネットワーク110において追加されたブロックに含まれる複数のトランザクション又は当該トランザクションのうちの移転先識別子が第1の部分ネットワーク110で処理可能な移転元識別子に一致しないトランザクションに基づくマークルツリーのマークルルートを算出する。そして、当該マークルルートに対する秘密鍵による署名をペグ署名404とする。 Therefore, another method uses the Merkle tree. In order to generate the peg signature 404, first, a plurality of transactions included in a block added in the first partial network 110 or a transfer source identifier of the transfer destination of the transactions that can be processed in the first partial network 110 is transferred. Compute the Merkle root of a Merkle tree based on transactions that do not match the identifier. The signature of the Merkle root with the private key is set as the peg signature 404.

ペグトランザクション400は、移転先識別子が第1の部分ネットワーク110で処理可能な移転元識別子に一致しない通常トランザクション200に対応し、ペグ署名404に加えて、ペグ署名404の有効性を検証するために必要な1又は複数のノードにかかるマークルツリーデータMが付加される。ここで、本明細書において「マークルツリーデータ」とは、マークルツリーを構成する1又は複数のノードのデータであり、具体的には、1又は複数のハッシュ値である。ペグトランザクション400は、通常トランザクション200に一致するか通常トランザクション200を含むデータであり、ペグトランザクション400又はその一部のハッシュ値を生成し、当該ハッシュ値とペグトランザクション400と共に受信したマークルツリーデータMとを用いてマークルルートを算出して、ペグ署名404が当該マークルルートに対する署名であるか否かを第1の部分ネットワーク110の公開鍵を用いて検証を行うことができる。一例として、暗号方式はECDSAを用いることができる。ECDSAの場合には、公開鍵を署名から計算可能である。 The peg transaction 400 corresponds to the normal transaction 200 in which the transfer destination identifier does not match the transfer source identifier processable in the first partial network 110, and is used to verify the validity of the peg signature 404 in addition to the peg signature 404. Merkle tree data M for one or more necessary nodes is added. Here, in the present specification, “merkle tree data” is data of one or a plurality of nodes forming the Merkle tree, and specifically, one or a plurality of hash values. The peg transaction 400 is data that matches the normal transaction 200 or includes the normal transaction 200, generates a hash value of the peg transaction 400 or a part thereof, and receives the hash value and the peg transaction 400 and the Merkle tree data M. It is possible to calculate the Merkle root by using and to verify whether the peg signature 404 is a signature for the Merkle root using the public key of the first partial network 110. For example, ECDSA can be used as the encryption method. In the case of ECDSA, the public key can be calculated from the signature.

図9に、マークルツリーの一例を示す。第1の部分ネットワーク110において、4つのトランザクションを含むブロックが追加されたものとする。そして、第2のトランザクションtx2に対応するペグトランザクション400が第2の部分ネットワーク120に送信されるものとする。この場合、ペグトランザクション400又はその一部のハッシュ値として第2のトランザクションtx2のハッシュ値が得られるから、ノード1のハッシュ値とノード6のハッシュ値とをマークルツリーデータMとしてペグトランザクション400に付加しておけば、第2の部分ネットワーク120においてノード7のマークルルートを算出することができる。 FIG. 9 shows an example of the Merkle tree. It is assumed that a block including four transactions has been added to the first partial network 110. Then, it is assumed that the peg transaction 400 corresponding to the second transaction tx2 is transmitted to the second partial network 120. In this case, since the hash value of the second transaction tx2 is obtained as the hash value of the peg transaction 400 or a part thereof, the hash value of the node 1 and the hash value of the node 6 are sent to the peg transaction 400 as the Merkle tree data M. If added, the Merkle route of the node 7 can be calculated in the second partial network 120.

第1の部分ネットワーク110において追加されたブロックに対する署名が、当該ブロックのブロックヘッダに対する署名であり、当該署名に当該ブロックのマークルツリーのマークルルートが含まれていれば、ブロックに対する署名をそのままペグ署名404として用いることができる。ペグトランザクション400にはこの場合、マークルツリーデータMに加えて、当該ブロックヘッダ又は当該ブロックヘッダからマークルツリールートを除いたデータBを付加し、第2の部分ネットワーク120において、ブロックヘッダを生成して、ペグ署名404が当該ブロックヘッダに対する署名であるか否かを第1の部分ネットワーク110の公開鍵を用いて検証を行うことができる。 If the signature for the block added in the first partial network 110 is the signature for the block header of the block and the signature includes the Merkle root of the Merkle tree of the block, the signature for the block is unchanged. It can be used as the peg signature 404. In this case, in addition to the Merkle tree data M, the block header or data B obtained by removing the Merkle tree root from the block header is added to the peg transaction 400, and the block header is generated in the second partial network 120. Then, it is possible to verify whether the peg signature 404 is a signature for the block header using the public key of the first partial network 110.

さらに別方式として、第1の部分ネットワーク110において追加されたブロック全体をペグトランザクション400として第2の部分ネットワーク120に送信することが考えられる。この場合、当該ブロックには、移転先識別子が、第2の部分ネットワーク120で処理可能な移転元識別子に一致しないトランザクションが含まれるため、不必要なデータを送信することとなるものの、第1の部分ネットワーク110におけるペグトランザクション400への追加的な署名を省略し、ブロックの採択についての合意形成において付加された署名をそのままペグ署名404と考えることができる。 As another method, it is conceivable to send the entire block added in the first partial network 110 to the second partial network 120 as the peg transaction 400. In this case, since the block includes a transaction whose transfer destination identifier does not match the transfer source identifier processable by the second partial network 120, unnecessary data is transmitted, but the first data is transmitted. The additional signature to the peg transaction 400 in the partial network 110 can be omitted, and the signature added in the consensus formation regarding the block adoption can be directly considered as the peg signature 404.

この方式では、当該ブロック(「第1のブロック」に相当)を受信した第2の部分ネットワーク120において、当該ブロックに含まれる、移転先識別子が、第2の部分ネットワーク120で処理可能な移転元識別子に一致する1又は複数のトランザクション又はこれらの対応するトランザクションを含むブロック(「第2のブロック」に相当)を生成し、合意形成の対象とする。 In this method, in the second partial network 120 that has received the block (corresponding to the “first block”), the transfer destination identifier included in the block is a transfer source that can be processed by the second partial network 120. A block (corresponding to a "second block") including one or a plurality of transactions that match the identifier or these corresponding transactions is generated and is an object of consensus formation.

100 分散ネットワーク
110 第1の部分ネットワーク
111 第1の部分ネットワークのノード
111A 通信部
111B 処理部
111C 記憶部
120 第2の部分ネットワーク
130 第3の部分ネットワーク
140 ユーザー端末
200 通常トランザクション
201 移転元識別子
202 移転先識別子
203 資産
204 署名
400 ペグトランザクション
401 移転元識別子
402 移転先識別子
403 資産
404 ペグ署名
500 ネットワーク
510 第1のノード
511 通信部
512 処理部
513 記憶部
520 第2のノード
530 第3のノード
540 第4のノード
550 第5のノード
B ブロックヘッダ又は又はブロックヘッダからマークルツリールートを除いたデータ
M マークルツリーデータ
1乃至7 マークルツリーのノード

100 distributed network 110 first partial network 111 node of first partial network 111A communication unit 111B processing unit 111C storage unit 120 second partial network 130 third partial network 140 user terminal 200 normal transaction 201 transfer source identifier 202 transfer Destination identifier 203 Asset 204 Signature 400 Peg transaction 401 Transfer source identifier 402 Transfer destination identifier 403 Asset 404 Peg signature 500 Network 510 First node 511 Communication unit 512 Processing unit 513 Storage unit 520 Second node 530 Third node 540th 4 node 550 Fifth node B Block header or data obtained by removing the Merkle tree root from the block header M Merkle tree data 1 to 7 Merkle tree nodes

Claims (8)

複数の部分ネットワークを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法であって、前記複数の部分ネットワークのうちの第1の部分ネットワークを構成するノードが、
前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信するステップと、
前記第1のトランザクションを含むブロックを生成するステップと、
前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新するステップと、
前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信するステップと
を含むことを特徴とする方法。
A method of storing a transaction representing an asset transfer in a distributed network having a plurality of sub-networks, wherein a node constituting a first sub-network of the plurality of sub-networks comprises:
Receiving a first transaction representing the transfer of an asset from a source identifier processable in the first partial network to a destination identifier not processable in the first partial network;
Generating a block containing the first transaction;
Updating the status of the asset of the source identifier after consensus in the first sub-network on adoption of the block;
After consensus in the first sub-network on the adoption of the block, a second transaction for reflecting the transfer of the asset to the transfer destination identifier represented by the first transaction, the first transaction, Sending a source identifier corresponding to the destination identifier of the transaction to a processable second sub-network.
前記第1のトランザクションは、前記移転元識別子の秘密鍵による署名が付加されていることを特徴とする請求項1に記載の方法。 The method according to claim 1, wherein the first transaction has a signature added by a private key of the transfer source identifier. 前記第2のトランザクションは、前記第1の部分ネットワークにおいて合意形成がなされたことを示す署名が付加されていることを特徴とする請求項1又は2に記載の方法。 The method according to claim 1, wherein the second transaction is added with a signature indicating that consensus has been formed in the first partial network. 前記第2のトランザクションの署名は、前記ブロック内の前記第1のトランザクションを含む複数のトランザクションに基づくマークルツリーのマークルルートを含むブロックヘッダに対する署名であることを特徴とする請求項3に記載の方法。 The signature of the second transaction is a signature for a block header including a Merkle root of a Merkle tree based on a plurality of transactions including the first transaction in the block. the method of. 複数の部分ネットワークのうちの第1の部分ネットワークを構成するノードに、前記複数の部分ネットワークを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法を実行させるためのプログラムであって、前記方法は、前記ノードが、
前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信するステップと、
前記第1のトランザクションを含むブロックを生成するステップと、
前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新するステップと、
前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信するステップと
を含むことを特徴とするプログラム。
A program for causing a node constituting a first partial network of a plurality of partial networks to execute a method of storing a transaction representing transfer of assets in a distributed network having the plurality of partial networks, the method comprising: Is the node
Receiving a first transaction representing the transfer of an asset from a source identifier processable in the first partial network to a destination identifier not processable in the first partial network;
Generating a block containing the first transaction;
Updating the status of the asset of the source identifier after consensus in the first sub-network on adoption of the block;
After consensus in the first sub-network on the adoption of the block, a second transaction for reflecting the transfer of the asset to the transfer destination identifier represented by the first transaction, the first transaction, Sending a transfer source identifier that matches the transfer destination identifier of the transaction to a processable second partial network.
複数の部分ネットワークを有する分散ネットワークに資産の移転を表すトランザクションを記憶するための、前記複数の部分ネットワークのうちの第1の部分ネットワークを構成するノードであって、
前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信して、前記第1のトランザクションを含むブロックを生成し、
前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新し、
前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信することを特徴とするノード。
A node constituting a first sub-network of said plurality of sub-networks for storing a transaction representing an asset transfer in a distributed network having a plurality of sub-networks,
Receiving a first transaction representing a transfer of an asset from a source identifier processable in the first partial network to a destination identifier not processable in the first partial network, and executing the first transaction Generate a block containing
Updating consensus in the first sub-network on adoption of the block, updating the state of the asset of the source identifier,
After consensus in the first sub-network on the adoption of the block, a second transaction for reflecting the transfer of the asset to the transfer destination identifier represented by the first transaction, the first transaction, A transfer source identifier that matches the transfer destination identifier of the transaction of 1. to the processable second partial network.
複数の部分ネットワークを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法であって、前記複数の部分ネットワークのうちの第1の部分ネットワークを構成するノードが、
前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信するステップと、
前記第1のトランザクションを含む第1のブロックを生成するステップと、
前記第1のブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新するステップと、
前記第1のブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信するステップとを含み、前記第2の部分ネットワークを構成するノードが、
前記第2のトランザクションを受信するステップと、
前記第2のトランザクションを含む第2のブロックを生成するステップと、
前記第2のブロックの採択についての前記第2の部分ネットワークにおける合意形成後、前記第2のトランザクションの移転先識別子の資産の状態を更新するステップと
を含むことを特徴とする方法。
A method of storing a transaction representing an asset transfer in a distributed network having a plurality of sub-networks, wherein a node constituting a first sub-network of the plurality of sub-networks comprises:
Receiving a first transaction representing the transfer of an asset from a source identifier processable in the first partial network to a destination identifier not processable in the first partial network;
Generating a first block containing the first transaction;
Updating the state of the asset of the source identifier after consensus in the first sub-network for adoption of the first block,
A second transaction for reflecting the transfer of the asset to the transferee identifier represented by the first transaction after consensus formation in the first sub-network for adoption of the first block, Transmitting a transfer source identifier matching the transfer destination identifier of the first transaction to a processable second partial network, wherein the node forming the second partial network comprises:
Receiving the second transaction,
Generating a second block containing the second transaction;
Updating the status of the asset of the transferee identifier of the second transaction after consensus in the second sub-network for adoption of the second block.
資産の移転を表すトランザクションを記憶するための複数の部分ネットワークを有する分散ネットワークであって、
前記複数の部分ネットワークのうちの第1の部分ネットワーク及び第2の部分ネットワークを備え、
前記第1の部分ネットワークを構成するノードが、
前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信して、前記第1のトランザクションを含む第1のブロックを生成し、
前記第1のブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新し、
前記第1のブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信し、
前記第2の部分ネットワークを構成するノードが、
前記第2のトランザクションを受信して、前記第2のトランザクションを含む第2のブロックを生成し、
前記第2のブロックの採択についての前記第2の部分ネットワークにおける合意形成後、前記第2のトランザクションの移転先識別子の資産の状態を更新することを特徴とする分散ネットワーク。

A distributed network having a plurality of sub-networks for storing transactions representing the transfer of assets,
A first partial network and a second partial network of the plurality of partial networks;
A node configuring the first partial network,
Receiving a first transaction representing a transfer of an asset from a source identifier processable in the first partial network to a destination identifier not processable in the first partial network, and executing the first transaction Generate a first block containing
Updating consensus in the first sub-network on the adoption of the first block, updating the state of the assets of the source identifier,
A second transaction for reflecting the transfer of the asset to the transferee identifier represented by the first transaction after consensus formation in the first sub-network for adoption of the first block, Sending a source identifier matching the destination identifier of the first transaction to a processable second partial network,
A node constituting the second partial network,
Receiving the second transaction and generating a second block containing the second transaction;
The distributed network, wherein after the consensus is formed in the second partial network regarding the adoption of the second block, the status of the asset of the transfer destination identifier of the second transaction is updated.

JP2019155252A 2019-08-28 2019-08-28 Method for storing a transaction representing transfer of assets in a distributed network having a plurality of nodes, a program therefor, and a node for configuring the distributed network Active JP6651042B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019155252A JP6651042B1 (en) 2019-08-28 2019-08-28 Method for storing a transaction representing transfer of assets in a distributed network having a plurality of nodes, a program therefor, and a node for configuring the distributed network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019155252A JP6651042B1 (en) 2019-08-28 2019-08-28 Method for storing a transaction representing transfer of assets in a distributed network having a plurality of nodes, a program therefor, and a node for configuring the distributed network

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2019017542A Division JP2020127100A (en) 2019-02-03 2019-02-03 Method for storing transaction representing asset transfer in distributed network having multiple nodes, program therefor, and node for configuring distributed network

Publications (2)

Publication Number Publication Date
JP6651042B1 JP6651042B1 (en) 2020-02-19
JP2020127187A true JP2020127187A (en) 2020-08-20

Family

ID=69568436

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019155252A Active JP6651042B1 (en) 2019-08-28 2019-08-28 Method for storing a transaction representing transfer of assets in a distributed network having a plurality of nodes, a program therefor, and a node for configuring the distributed network

Country Status (1)

Country Link
JP (1) JP6651042B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023277443A1 (en) * 2021-06-30 2023-01-05 주식회사 아티프렌즈 Blockchain network using smart-contract-based multi-chain technique, and parallel expansion method therefor

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021166528A1 (en) * 2020-02-21 2021-08-26 Necソリューションイノベータ株式会社 Fraud testing device and fraud detection system
US20230155847A1 (en) * 2020-02-21 2023-05-18 Nec Solution Innovators, Ltd. Fraud verification device and fraud detection system
WO2022002375A1 (en) * 2020-06-30 2022-01-06 DFINITY Stiftung Distributed networks having a plurality of subnets
CN114866560B (en) * 2022-04-29 2023-12-01 蚂蚁区块链科技(上海)有限公司 Block chain node migration method and device, electronic equipment and readable storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107528886A (en) * 2017-07-25 2017-12-29 中国科学院计算技术研究所 Block chain the whole network method for splitting and system
JP6389542B1 (en) * 2017-03-21 2018-09-12 株式会社大和総研ビジネス・イノベーション Transaction recording system and program
WO2018215951A1 (en) * 2017-05-26 2018-11-29 nChain Holdings Limited Script based blockchain interaction
KR20190009958A (en) * 2017-07-20 2019-01-30 주식회사 더블체인 Extendable block chain system and block chain extending method
US20190034920A1 (en) * 2017-12-29 2019-01-31 Intel Corporation Contextual Authentication of an Electronic Wallet

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6389542B1 (en) * 2017-03-21 2018-09-12 株式会社大和総研ビジネス・イノベーション Transaction recording system and program
WO2018215951A1 (en) * 2017-05-26 2018-11-29 nChain Holdings Limited Script based blockchain interaction
KR20190009958A (en) * 2017-07-20 2019-01-30 주식회사 더블체인 Extendable block chain system and block chain extending method
CN107528886A (en) * 2017-07-25 2017-12-29 中国科学院计算技术研究所 Block chain the whole network method for splitting and system
US20190034920A1 (en) * 2017-12-29 2019-01-31 Intel Corporation Contextual Authentication of an Electronic Wallet

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
東角 芳樹 ほか: "コンソーシアムチェーンにおける証明書管理に関する一考察", 2017年 暗号と情報セキュリティシンポジウム(SCIS2017)予稿集 [USB], vol. 1F2−3, JPN6018017174, 24 January 2017 (2017-01-24), JP, pages 1 - 4, ISSN: 0004156561 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023277443A1 (en) * 2021-06-30 2023-01-05 주식회사 아티프렌즈 Blockchain network using smart-contract-based multi-chain technique, and parallel expansion method therefor

Also Published As

Publication number Publication date
JP6651042B1 (en) 2020-02-19

Similar Documents

Publication Publication Date Title
JP6651042B1 (en) Method for storing a transaction representing transfer of assets in a distributed network having a plurality of nodes, a program therefor, and a node for configuring the distributed network
Roos et al. Settling payments fast and private: Efficient decentralized routing for path-based transactions
Zhang et al. Blockchain-assisted public-key encryption with keyword search against keyword guessing attacks for cloud storage
WO2020158953A1 (en) Method for storing transaction that represents asset transfer to distributed network and program for the same
CN110719159B (en) Multi-party privacy set intersection method for resisting malicious adversaries
Chepurnoy et al. Edrax: A cryptocurrency with stateless transaction validation
Asharov et al. Privacy-preserving interdomain routing at internet scale
JP7101031B2 (en) Blockchain network and confirmation method for it
CN113711202A (en) Method and apparatus for implementing state attestation and ledger identifiers in a distributed database
CN110945831B (en) Generation of anti-Sybil attack identities
Seo et al. Pclsc-tkem: a pairing-free certificateless signcryption-tag key encapsulation mechanism for a privacy-preserving IoT.
CN112016923A (en) Intra-network cross-domain identity management method and system based on block chain and computational power network
WO2021009496A1 (en) Peer-to-peer network and method
CN115834056A (en) Certificateless ordered aggregation signature method, certificateless ordered aggregation signature system and related devices
TW202231018A (en) Identifying denial-of-service attacks
JP6478361B1 (en) Blockchain network and determination method therefor
CN112529550A (en) Anonymous transfer method and device based on block chain and electronic equipment
CN116561791A (en) Privacy exchange method, device and storage medium
Wang et al. New construction of blind signatures from braid groups
US10469267B2 (en) Method of managing implicit certificates using a distributed public keys infrastructure
Salamon et al. Orchid: enabling decentralized network formation and probabilistic micro-payments
JP6261493B2 (en) Zero knowledge proof system and method, certifier device, verifier device, and program
CN112262422B (en) Block chain network and determination method therefor
Panwar et al. SPRITE: Secure and Private Routing in Payment Channel Networks
JP5486454B2 (en) Digital signature / verification system, digital signature / verification method, signature apparatus, verification apparatus, and program thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190828

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190828

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20191010

A25B Request for examination refused [due to the absence of examination request for another application deemed to be identical]

Free format text: JAPANESE INTERMEDIATE CODE: A2522

Effective date: 20191021

A25B Request for examination refused [due to the absence of examination request for another application deemed to be identical]

Free format text: JAPANESE INTERMEDIATE CODE: A2522

Effective date: 20191108

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20191220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200121

R150 Certificate of patent or registration of utility model

Ref document number: 6651042

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250