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 PDFInfo
- 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
Links
- 238000012546 transfer Methods 0.000 title claims abstract description 145
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 26
- 238000012545 processing Methods 0.000 abstract description 24
- 125000004122 cyclic group Chemical group 0.000 description 7
- 238000012795 verification Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
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.
以下、図面を参照して本発明の実施形態を詳細に説明する。 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
各部分ネットワークは、複数のノードにより構成されており、各ノードは、通信インターフェースなどの通信部111Aと、プロセッサ、CPU等の処理部111Bと、メモリ、ハードディスク等の記憶装置又は記憶媒体を含む記憶部111Cとを備え、各処理を行うためのプログラムを実行することによって構成することができる。各ノードは、1又は複数の装置ないしサーバを含むことがあり、また当該プログラムは1又は複数のプログラムを含むことがあり、また、コンピュータ読み取り可能な記憶媒体に記録して非一過性のプログラムプロダクトとすることができる。
Each partial network is composed of a plurality of nodes, and each node stores a
ユーザー端末140では、資産203の移転元アドレスなどの移転元識別子201から移転先アドレスなどの移転先識別子202への移転を表すトランザクションが生成される。こうしたトランザンクションの生成をするためのアプリケーションがユーザー端末140にインストールされるか、インターネットなどのコンピュータ・ネットワークを介してユーザー端末140において利用可能である。
In the
図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
次に、ユーザー端末140は、分散ネットワーク100に向けてトランザクション200の記録依頼要求を送信する(S302)。各部分ネットワークには、受け取ったトランザクションを自ら処理可能な移転元識別子の値又は範囲が設定されているところ、本実施形態において、ユーザー端末140のアプリケーションは、移転元識別子と各部分ネットワークが処理可能な移転元識別子の値又は範囲との対応づけを参照して、トランザクション200の記録依頼要求の送信先を判定する。図1及び2の例では、第1の部分ネットワーク110がトランザクション200を受信することとなる。
Next, the
より詳細には、第1の部分ネットワーク110にトランザクション200を送信するという場合、第1の部分ネットワーク110を構成する1又は複数のノードに対して送信を行う。トランザクション200を受信したノード111は、その記憶部111C又は当該ノードからアクセス可能な記憶媒体又は記憶装置にトランザクション200をその後処理するため記憶する。必要に応じてトランザクション200を受信したノード111は、第1の部分ネットワーク110を構成するその他のノードにトランザクション200を送信し、第1の部分ネットワーク110を構成する複数のノードのうち、ブロック採択の合意形成に参加するノードにおいて記憶されることとなる。
More specifically, when transmitting the
そして、第1の部分ネットワーク110を構成するいずれかのノード111が、それまでに記憶したトランザクションのうちの1又は複数のトランザクションを含むブロックを生成し、その採択のための第1の部分ネットワーク110における合意形成処理を行う(S303)。合意形成が行われた場合、合意形成に参加する各ノードは、各ノードが記憶するブロックチェーンに当該ブロックを追加する。第1の部分ネットワーク110の各ノードは、第1の部分ネットワーク110で処理可能な移転元識別子の秘密鍵に対応する公開鍵を記憶しており、トランザクションの受信時又はブロックの生成時に署名204の有効性を検証することが可能である。第1の部分ネットワーク110において行われる合意形成処理の詳細については後述する。公開鍵は、事前に各ノードが記憶しているのではなく、トランザクション200が当該トランザクション200に付加された署名204の秘密鍵に対応する公開鍵を含んでいるか、トランザクション200に当該公開鍵が付加されているか、署名204から計算可能であってもよい。
Then, one of the
各ノードは、ブロックチェーンに加えて、各ノードが処理可能な移転元識別子に関連づけられた資産の状態を保持する識別子と資産の状態との対応づけを記憶しており、ブロックチェーンに当該ブロックを追加した後、追加されたブロックに含まれる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
次いで、追加されたブロックを生成したノード又は第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
ここで、トランザクション400の生成がアセットテーブルの更新後に行われるものとして説明したが、これらは逆にすることも考えられる。合意形成処理(S303)に、ブロックに含まれる各トランザクションの移転元識別子から移転される資産の額が当該移転元識別子の残高以上であることの検証が含まれる場合には順序を逆にしてもよいが、含まれない場合にはアセットテーブルの更新処理(S304)に、移転される資産の額が残高以上であることの検証を含め、検証結果が肯定的であることを条件にトランザクション400の送信が実行されるようにしてもよい。
Here, the
図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
以下において、トランザクション400は部分ネットワーク間での資産の状態の整合性を保つためのものであり、いわゆるペグさせるものであるため、「ペグトランザクション」と呼ぶことがあり、署名404は「ペグ署名」と呼ぶことがある。
In the following, since the
ペグトランザクション400を受信した第2の部分ネットワーク120では、ペグトランザクション400を含むブロックをいずれかのノードが生成し、当該ブロックの採択についての合意形成処理(S306)がなされた後に各ノードのブロックチェーンに追加される。第2の部分ネットワーク120の各ノードは、第2の部分ネットワーク120で処理可能な移転元識別子の秘密鍵に対応する公開鍵を記憶するとともに、他の部分ネットワークによるペグ署名に関連づけられた公開鍵を記憶している。当該公開鍵によってトランザクション400のペグ署名404を有効なものとして検証することで、トランザクション400がペグトランザクションであることを判定することができる。公開鍵は、事前に各ノードが記憶しているのではなく、ペグトランザクション400が当該トランザクション400に付加された署名404の秘密鍵に対応する公開鍵を含んでいるか、トランザクション200に当該公開鍵が付加されていてもよい。いずれにしても、各部分ネットワークは、ペグトランザクション400に付加される署名404の秘密鍵に対応する公開鍵が、いずれの部分ネットワークで署名可能な秘密鍵に対応するものであるのか、換言すれば、公開鍵のいわゆる保有者がいずれの部分ネットワークであるのかを確認可能であるものとする。
In the second
ある部分ネットワークが受信したトランザクションが通常のトランザクション200であるかペグトランザクション400であるかを区別するためには、上記のように署名の検証に用いた公開鍵によって判定することが考えられるが、識別子に基づいて判定することも考えられる。すなわち、移転元識別子が自ネットワークにおいて処理可能な移転元識別子ではなく、移転先識別子が自ネットワークにおいて処理可能な移転元識別子のいずれかと一致する場合、当該トランザクションをペグトランザクション400と判定することが可能である。
In order to distinguish whether the transaction received by a certain partial network is the
ブロックが追加された後、当該ブロックに含まれるペグトランザクション400について、各ノードはペグトランザクション400の移転先識別子402の資産残高を更新して資産203の移転を記録する(S307)。通常トランザクション200では、上述したように資産203の移転元識別子201の資産残高を更新するところ、ペグトランザクション400では、移転先識別子402の資産残高を更新する。ペグトランザクション400の移転先識別子402は第2の部分ネットワーク120で処理可能な移転元識別子のいずれかと一致し、第2の部分ネットワーク120の各ノードは、各ノードの記憶部又は各ノードからアクセス可能な記憶媒体又は記憶装置に、自ネットワークで処理可能な移転元識別子と当該識別子に関連づけられた資産の状態との対応づけを参照し、更新することができる。
After the block is added, for the
以上のように、分散ネットワークを複数の部分ネットワークにより構成し、各部分ネットワークにおいて処理可能な移転元識別子を定めておくことによって、トランザクションの並列処理を行い、同時に複数のトランザクションの処理が実行可能となる。よって、単位時間当たりのトランザクション処理速度を大幅に向上させることができる。 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
また、上述の説明では、ペグトランザクション400の送信先を第1の部分ネットワーク110において定めるものとして記述したが、通常トランザクション200の送信先と同様の態様で送信を行うことが考えられる。
Further, in the above description, the destination of the
また、上述の説明では、資産203の額は特段制約を課していないが、正の値として、トランザクション200の検証の際に残高不足があれば無効なトランザクションとして処理することが好ましい。負の値とした場合、すなわち移転元識別子201が資産203を受け取る場合には、移転先識別子202の資産残高を第1のネットワーク110のアセットテーブルでは管理していないことから、残高不足か否かを検証することが出来ず、第1の部分ネットワーク110において当該トランザクションを含むブロックが追加されたにも関わらず第2の部分ネットワーク120では移転先識別子202の残高不足によって無効と処理される恐れが生じる。
Further, in the above description, the amount of the
なお、「××のみに基づいて」、「××のみに応じて」、「××のみの場合」というように「のみ」との記載がなければ、本明細書においては、付加的な情報も考慮し得ることが想定されていることに留意されたい。また、一例として、「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
図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
所定のプログラムには、合意アルゴリズムにかかるルール及びセットアップにかかるルールが定められており、記憶部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
合意形成に参加する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
いずれかの形で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
ここで、公開鍵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
図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.
次に、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
これは、いずれのノードに対しても知らされていないものの、次式のように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.
また、各ノードは、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).
この式による公開鍵シェア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.
すなわち、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,
となるため、既知の生成元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
また、上述の説明では、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
第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
そして、必要であれば、生成された単一の署名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
いずれの場合においても、ペグ署名404は、一例として、ペグトランザクション400又はその一部のハッシュ値に対する1又は複数の秘密鍵による1又は複数の署名とすることができる。ペグトランザクション400を受信した第2の部分ネットワーク120では、ペグトランザクション400の受信時又はペグトランザクション400を含むブロックの生成時に、ペグ署名404の有効性を検証する。
In any case, the
この方式であると、ブロックの採択のために一度合意形成がなされているにもかかわらず、当該ブロックに含まれる、移転先識別子が第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
そのため、別方式では、マークルツリーを用いる。ペグ署名404を生成するために、まず、第1の部分ネットワーク110において追加されたブロックに含まれる複数のトランザクション又は当該トランザクションのうちの移転先識別子が第1の部分ネットワーク110で処理可能な移転元識別子に一致しないトランザクションに基づくマークルツリーのマークルルートを算出する。そして、当該マークルルートに対する秘密鍵による署名をペグ署名404とする。
Therefore, another method uses the Merkle tree. In order to generate the
ペグトランザクション400は、移転先識別子が第1の部分ネットワーク110で処理可能な移転元識別子に一致しない通常トランザクション200に対応し、ペグ署名404に加えて、ペグ署名404の有効性を検証するために必要な1又は複数のノードにかかるマークルツリーデータMが付加される。ここで、本明細書において「マークルツリーデータ」とは、マークルツリーを構成する1又は複数のノードのデータであり、具体的には、1又は複数のハッシュ値である。ペグトランザクション400は、通常トランザクション200に一致するか通常トランザクション200を含むデータであり、ペグトランザクション400又はその一部のハッシュ値を生成し、当該ハッシュ値とペグトランザクション400と共に受信したマークルツリーデータMとを用いてマークルルートを算出して、ペグ署名404が当該マークルルートに対する署名であるか否かを第1の部分ネットワーク110の公開鍵を用いて検証を行うことができる。一例として、暗号方式はECDSAを用いることができる。ECDSAの場合には、公開鍵を署名から計算可能である。
The
図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
第1の部分ネットワーク110において追加されたブロックに対する署名が、当該ブロックのブロックヘッダに対する署名であり、当該署名に当該ブロックのマークルツリーのマークルルートが含まれていれば、ブロックに対する署名をそのままペグ署名404として用いることができる。ペグトランザクション400にはこの場合、マークルツリーデータMに加えて、当該ブロックヘッダ又は当該ブロックヘッダからマークルツリールートを除いたデータBを付加し、第2の部分ネットワーク120において、ブロックヘッダを生成して、ペグ署名404が当該ブロックヘッダに対する署名であるか否かを第1の部分ネットワーク110の公開鍵を用いて検証を行うことができる。
If the signature for the block added in the first
さらに別方式として、第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
この方式では、当該ブロック(「第1のブロック」に相当)を受信した第2の部分ネットワーク120において、当該ブロックに含まれる、移転先識別子が、第2の部分ネットワーク120で処理可能な移転元識別子に一致する1又は複数のトランザクション又はこれらの対応するトランザクションを含むブロック(「第2のブロック」に相当)を生成し、合意形成の対象とする。
In this method, in the second
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
Claims (8)
前記第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の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第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のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第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のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第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.
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)
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)
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)
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 |
-
2019
- 2019-08-28 JP JP2019155252A patent/JP6651042B1/en active Active
Patent Citations (5)
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)
Title |
---|
東角 芳樹 ほか: "コンソーシアムチェーンにおける証明書管理に関する一考察", 2017年 暗号と情報セキュリティシンポジウム(SCIS2017)予稿集 [USB], vol. 1F2−3, JPN6018017174, 24 January 2017 (2017-01-24), JP, pages 1 - 4, ISSN: 0004156561 * |
Cited By (1)
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 |