JP2020088864A - Block chain system and server - Google Patents

Block chain system and server Download PDF

Info

Publication number
JP2020088864A
JP2020088864A JP2019209556A JP2019209556A JP2020088864A JP 2020088864 A JP2020088864 A JP 2020088864A JP 2019209556 A JP2019209556 A JP 2019209556A JP 2019209556 A JP2019209556 A JP 2019209556A JP 2020088864 A JP2020088864 A JP 2020088864A
Authority
JP
Japan
Prior art keywords
block
transaction
node
transaction data
signature value
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.)
Pending
Application number
JP2019209556A
Other languages
Japanese (ja)
Inventor
勉 石ヶ谷
Tsutomu ISHIGAYA
勉 石ヶ谷
亮 笹田
Ryo SASADA
亮 笹田
高秋 飯塚
Takaaki Iizuka
高秋 飯塚
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.)
Cowry Inc
Original Assignee
Cowry 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 Cowry Inc filed Critical Cowry Inc
Priority to JP2019209556A priority Critical patent/JP2020088864A/en
Publication of JP2020088864A publication Critical patent/JP2020088864A/en
Pending legal-status Critical Current

Links

Images

Abstract

To establish both of stabilizing and smoothing of a transaction in a block chain.SOLUTION: A privilege node holds a secret key and a plurality of normal nodes hold a public key. Each normal node comprises: a transaction input unit for accepting input of transaction data; a transaction transmission unit for transmitting the transaction data; a transaction management unit for managing a transaction history as a block chain; and a block receiving unit for receiving a block from the privilege node. The privilege node comprises: a transaction receiving unit for receiving transaction data from the normal node; a block generation unit for generating a signature value on the basis of the secret key to generate the block as a data set including the transaction data and the signature value; and a block transmission unit for transmitting the block. The transaction management unit of the normal node couples the block with the block chain on the condition that authenticity of the signature value of the block received from the privilege node can be successfully confirmed using the public key.SELECTED DRAWING: Figure 4

Description

本発明は、ブロックチェーン、特に、ブロックチェーンに基づく電子取引の真正性を確認するための技術、に関する。 The present invention relates to blockchains, and more particularly to techniques for verifying authenticity of electronic transactions based on blockchains.

ビットコイン(Bitcoin)やイーサリアム(Ethereum)などのさまざまな仮想通貨を支える仕組みがブロックチェーンである(特許文献1参照)。ブロックチェーンは、複数の通信ノードがピア・ツー・ピア技術にて共有する取引台帳である。 Blockchain is a mechanism that supports various virtual currencies such as Bitcoin and Ethereum (see Patent Document 1). A blockchain is a trading ledger shared by multiple communication nodes by peer-to-peer technology.

取引者となるユーザは、取引データを通信ネットワークにブロードキャストする。採掘者(マイナー)とよばれるユーザは、取引データと任意のナンス(nonce)をハッシュ関数の変数として投入し、所定の条件を満たすハッシュ値(以下、「適正ハッシュ値」とよぶ)を探す。複数の採掘者は、適正ハッシュ値を一刻も早く発見すべく競争する。適正ハッシュ値が見つかったとき、取引データはブロックチェーンに登録される。適正ハッシュ値を作ることができるナンスを見つけるのは難しいが、いったん見つけられたナンスに基づいてハッシュ値が適正か否かを確認するのは容易である。適正ハッシュ値の見つけにくさと確認しやすさがブロックチェーンの改ざんを難しくしている。 The transacting user broadcasts the transaction data to the communication network. A user called a miner inputs transaction data and an arbitrary nonce as variables of a hash function, and searches for a hash value satisfying a predetermined condition (hereinafter, referred to as an “appropriate hash value”). Multiple miners compete to find the correct hash value as soon as possible. When the correct hash value is found, the transaction data is registered on the blockchain. It is difficult to find a nonce that can produce a proper hash value, but it is easy to confirm whether or not the hash value is proper based on the found nonce. It is difficult to tamper with the blockchain because it is difficult to find the proper hash value and it is easy to confirm.

特開2018−160828号公報Japanese Unexamined Patent Application Publication No. 2018-160828

ブロックチェーンは中央(サーバ)の管理に服さない分散型のシステムであるため、取引者は自分の素性(氏名など)を明かすことなく取引できる。その一方、ブロックチェーンは「中央」を持たないがゆえに、「分岐(フォーク)」とよばれる事象が発生することがある。具体的には、あるブロックについて採掘者Aと採掘者Bが2種類の適正ハッシュ値を見つけたときには、2つのブロックができてしまい、ブロックチェーンは2系統に分岐する。ブロックチェーンは一本道であることを前提とする。フォークは、通常、長いチェーンを生き残らせ、短いチェーンを無効化することで解決される。短いチェーンの無効化は一部の取引データの無効化を意味するため、フォークの発生可能性は取引の安定性を損ないかねない。 Since the blockchain is a decentralized system that is not subject to central (server) management, traders can trade without revealing their identity (name, etc.). On the other hand, since the blockchain does not have a "center", an event called "branch (fork)" may occur. Specifically, when miner A and miner B find two appropriate hash values for a block, two blocks are created and the block chain branches into two systems. It is assumed that the blockchain is a single road. Forks are usually resolved by surviving long chains and invalidating short ones. Possibility of forking can impair the stability of transactions, as the invalidation of short chains implies the invalidation of some transaction data.

一般的なブロックチェーンにおいては、フォークの発生を抑制するため、適正ハッシュ値を見つける作業の難易度(以下、「採掘難易度」とよぶ)を高くしている。しかし、採掘難易度を高めるほど取引の円滑さが損なわれてしまう。 In a general blockchain, in order to suppress the occurrence of forks, the difficulty level of the work of finding an appropriate hash value (hereinafter referred to as “mining difficulty level”) is increased. However, the higher the difficulty level of mining, the less smooth the transaction.

本発明は、上記課題認識に基づいて完成された発明であり、その主たる目的は、ブロックチェーンにおける取引の安定化と円滑化を両立させるための技術、を提供することにある。
なお、本発明の趣旨をより明確にするため、一般的なブロックチェーンの仕組みとその問題点については後に詳述する。
The present invention has been completed based on the above recognition of the problems, and its main object is to provide a technique for achieving both stabilization and smoothness of transactions in a block chain.
In addition, in order to clarify the gist of the present invention, a general blockchain mechanism and its problems will be described in detail later.

本発明のある態様におけるブロックチェーンシステムは、複数の通常ノードを含む取引ネットワークと、取引ネットワークに接続される特権ノードを含む。
特権ノードは、秘密鍵を保有する。また、通常ノードは、秘密鍵に対応する公開鍵をあらかじめ保有している。
通常ノードは、仮想通貨による商取引の結果を示す取引データの入力を受け付ける取引入力部と、取引データを取引ネットワークに送信する取引送信部と、取引履歴をブロックチェーンとして管理する取引管理部と、特権ノードからブロックを受信するブロック受信部と、を備える。
特権ノードは、通常ノードから取引データを受信する取引受信部と、秘密鍵に基づいて署名値を生成し、取引データと署名値を含むデータセットとしてブロックを生成するブロック生成部と、ブロックを取引ネットワークに送信するブロック送信部と、を備える。
通常ノードの取引管理部は、特権ノードから受信したブロックの署名値の真正性を公開鍵により確認できたことを条件として、ブロックチェーンに受信したブロックを連結する。
A blockchain system according to an aspect of the present invention includes a trading network including a plurality of ordinary nodes and a privileged node connected to the trading network.
The privileged node holds the private key. Further, the normal node has a public key corresponding to the private key in advance.
A normal node is a transaction input unit that receives the input of transaction data indicating the result of a commercial transaction using virtual currency, a transaction transmission unit that transmits the transaction data to the transaction network, a transaction management unit that manages the transaction history as a block chain, and a privilege. A block receiving unit that receives a block from the node.
A privileged node transacts a block with a transaction receiving unit that receives transaction data from a normal node, a block generation unit that generates a signature value based on a secret key, and generates a block as a data set including the transaction data and the signature value. A block transmission unit for transmitting to the network.
The transaction management unit of the normal node connects the received blocks to the block chain on condition that the authenticity of the signature value of the block received from the privileged node has been confirmed by the public key.

本発明のある態様におけるサーバ(特権ノード)は、複数の通常ノードを含む取引ネットワークと接続される。
通常ノードは、サーバの秘密鍵に対応する公開鍵をあらかじめ保有しており、かつ、仮想通貨による商取引の履歴をブロックチェーンとして管理する通信端末である。
このサーバは、通常ノードから、仮想通貨による商取引の結果を示す取引データを受信する取引受信部と、秘密鍵に基づいて署名値を生成し、取引データと署名値を含むデータセットとしてブロックを生成するブロック生成部と、ブロックを取引ネットワークに送信するブロック送信部と、を備える。
A server (privileged node) according to an aspect of the present invention is connected to a trading network including a plurality of ordinary nodes.
The normal node is a communication terminal that holds a public key corresponding to the secret key of the server in advance and manages the history of commercial transactions using virtual currency as a block chain.
This server generates a signature value based on a secret key and a transaction receiving unit that receives transaction data indicating the result of a commercial transaction using virtual currency from a normal node, and generates a block as a data set including the transaction data and the signature value. And a block transmission unit that transmits the block to the trading network.

本発明によれば、ブロックチェーンにおける取引の安定化と円滑化を両立させやすくなる。 ADVANTAGE OF THE INVENTION According to this invention, it becomes easy to make both the stabilization and smoothness of the transaction in a blockchain compatible.

一般的なブロックチェーンシステムの概要図である。It is a schematic diagram of a general block chain system. 一般的なブロックチェーンシステムにおける採掘(ブロック生成)の方法を説明するための模式図である。It is a schematic diagram for explaining a method of mining (block generation) in a general block chain system. ブロックチェーンシステムにおいてフォークが発生する仕組みを説明するための模式図である。It is a schematic diagram for explaining a mechanism in which a fork occurs in a block chain system. 本実施形態におけるブロックチェーンシステムの概要図である。It is a schematic diagram of the block chain system in this embodiment. 本実施形態におけるブロックのデータ構造図である。It is a data structure diagram of the block in this embodiment. ブロックチェーンシステムの機能ブロック図である。It is a functional block diagram of a block chain system. 取引データの入力過程を示すフローチャートである。It is a flowchart which shows the input process of transaction data. ブロック生成の処理過程を示すフローチャートである。It is a flowchart which shows the process process of block generation. 通常ノードがブロックを受信したときの処理過程を示すフローチャートである。7 is a flowchart showing a processing procedure when a normal node receives a block. 特権ノードにおける秘密鍵の使用方法を説明するための模式図である。It is a schematic diagram for demonstrating the usage method of the private key in a privileged node.

一般的なブロックチェーンは、その運用を統括管理すべき中央集権的な特権ノード(サーバ)をもたない。不特定多数の採掘者が競争しながら適正ハッシュ値を探すことで、ブロックチェーンは延長されていく。適正ハッシュ値を探す作業は「採掘」とよばれる。以下、「採掘」のように新たなブロックを生成することを「ブロック生成」とよぶことにする。一般的なブロックチェーンでは、採掘競争に勝利した採掘者がブロック生成する。 A general blockchain does not have a centralized privileged node (server) to centrally manage its operation. The blockchain will be extended by an unspecified number of miners competing to find the proper hash value. The process of finding an appropriate hash value is called "mining". Hereinafter, generating a new block such as “mining” will be referred to as “block generation”. In a general blockchain, a miner who wins a mining competition creates a block.

本実施形態に示すブロックチェーンでは、その運用において中心的な役割を果たす特権ノード(サーバ)を設置する。不特定多数の採掘者ではなく、単一の特権ノードがブロック生成を実行する。
以下においては、図1,図2に関連して一般的なブロックチェーンの概要を説明する。図3に関連して、一般的なブロックチェーンにおいて「分岐(フォーク)」が生じるメカニズムとそれにともなって生じる弊害について指摘する。図4以降に関連して、本実施形態における新しいブロックチェーンシステムについて詳述する。
In the block chain shown in this embodiment, a privileged node (server) that plays a central role in its operation is installed. A single privileged node, rather than an unspecified number of miners, performs the block generation.
In the following, an outline of a general block chain will be described with reference to FIGS. 1 and 2. With reference to FIG. 3, we will point out the mechanism of "branching (fork)" in a general blockchain and the harmful effects that accompany it. The new block chain system in this embodiment will be described in detail with reference to FIG. 4 and subsequent figures.

図1は、一般的なブロックチェーンシステム100の概要図である。
ブロックチェーンシステム100においては、多数の通常ノード110a、110b・・・110n(以下、「通常ノード110」とよぶ)と多数の採掘ノード108a、108b・・・108n(以下、「採掘ノード108」とよぶ)が取引ネットワーク102を介してピア・ツー・ピアにて接続される。取引ネットワーク102は、インターネットなどの公開型の通信ネットワークにおいて形成される。
FIG. 1 is a schematic diagram of a general block chain system 100.
In the blockchain system 100, a large number of ordinary nodes 110a, 110b... 110n (hereinafter referred to as “ordinary node 110”) and a large number of mining nodes 108a, 108b... 108n (hereinafter referred to as “mining node 108”). Are connected peer-to-peer via the trading network 102. The trading network 102 is formed in an open communication network such as the Internet.

通常ノード110は、取引の主体となるノードであり、個人ウォレットや仮想通貨の取引所などが想定される。採掘ノード108は、ブロック生成(採掘)を行うために採掘者により使用される通信端末である。通常ノード110は、採掘ノード108の機能を備えてもよい。 The normal node 110 is a node that is a main body of transactions, and an individual wallet or a virtual currency exchange is assumed. The mining node 108 is a communication terminal used by a miner to perform block generation (mining). The normal node 110 may have the function of the mining node 108.

取引ネットワーク102にはブロックチェーン104が形成される。ブロックチェーン104のデータ実体は、通常ノード110および採掘ノード108それぞれにおいてローカルに保存されている。ブロックチェーン104が更新されるとき、更新情報が取引ネットワーク102にブロードキャストされる。通常ノード110および採掘ノード108は更新情報にしたがって各自が保存するブロックチェーン104を更新することにより、全体として同一のブロックチェーン104が同期共有される仕組みとなっている。 A block chain 104 is formed in the trading network 102. The data entity of the block chain 104 is locally stored in each of the normal node 110 and the mining node 108. When the blockchain 104 is updated, the update information is broadcast to the trading network 102. The normal node 110 and the mining node 108 update the block chain 104 stored by themselves according to the update information, so that the same block chain 104 is synchronously shared as a whole.

ブロックチェーン104は、多数のブロック106が一本の鎖として連なるデータ構造を有する。ブロック106は、1以上の取引データが記録されたデータ単位である。通常ノード110は、仮想通貨による取引(送金)を実行するごとに、取引内容を示すデータ(以下、「取引データ」とよぶ)を取引ネットワーク102にブロードキャストする。複数の採掘ノード108は、新規の取引データの集合体を対象として採掘(ブロック生成)を行う。採掘後、新規のブロック106は既存のブロックチェーン104に繋げられる(詳細後述)。すなわち、ブロックチェーン104とは、過去からの膨大な取引履歴が記録された長大な取引台帳であるといえる。ブロックチェーン104を参照することにより、いつでも過去の取引内容を確認できる。また、通常ノード110は、一時的なアカウントで取引を行うことができるため、取引の匿名性が保たれる。
ビットコインの場合、1つのブロック106に書き込むことができる取引データの総量には上限が設けられている(理由は後述)。
The block chain 104 has a data structure in which a large number of blocks 106 are linked as one chain. Block 106 is a data unit in which one or more transaction data are recorded. Each time the normal node 110 executes a transaction (remittance) using virtual currency, it broadcasts data indicating the transaction content (hereinafter referred to as “transaction data”) to the transaction network 102. The plurality of mining nodes 108 perform mining (block generation) on a collection of new transaction data. After mining, the new block 106 is connected to the existing block chain 104 (details will be described later). That is, it can be said that the block chain 104 is a long trading ledger in which a huge transaction history from the past is recorded. By referring to the block chain 104, past transaction details can be confirmed at any time. Further, since the normal node 110 can carry out a transaction with a temporary account, the anonymity of the transaction is maintained.
In the case of Bitcoin, there is an upper limit on the total amount of transaction data that can be written in one block 106 (the reason will be described later).

図2は、一般的なブロックチェーンシステム100における採掘(ブロック生成)の方法を説明するための模式図である。
ここでは、(n+1)番目のブロック106(以下、「ブロック106(n+1)」のように表記する)のブロック生成(採掘)の方法について説明する。ブロック106(n+1)の生成に際しては、1つ前に生成されたブロック106(n)に基づく適正ハッシュ値(n)が使用される。ブロック106(n+1)は、多数の通常ノード110からブロードキャストされた取引データを含む。以下、ブロック106に書き込まれる多種多様な取引データの集合体のことを「取引データセット」とよぶ。
FIG. 2 is a schematic diagram for explaining a method of mining (block generation) in the general block chain system 100.
Here, a method of block generation (mining) of the (n+1)th block 106 (hereinafter referred to as “block 106(n+1)”) will be described. When generating the block 106(n+1), the proper hash value (n) based on the block 106(n) generated immediately before is used. Block 106(n+1) contains transaction data broadcast from a number of regular nodes 110. Hereinafter, a collection of various kinds of transaction data written in block 106 will be referred to as a “transaction data set”.

採掘ノード108は、取引データセット(n+1)、ハッシュ値(n)およびナンス(n+1)を変数とする所定のハッシュ関数により、ハッシュ値(n+1)を計算する。実際には、ハッシュ関数にはこれ以外の変数も含まれるがここではブロック生成の原理の説明のため、上記3つの変数に基づくものとして説明する。 The mining node 108 calculates the hash value (n+1) by a predetermined hash function having the transaction data set (n+1), the hash value (n) and the nonce (n+1) as variables. In reality, the hash function includes variables other than these, but here, for the purpose of explaining the principle of block generation, the description will be made based on the above three variables.

ナンス(n+1)は任意である。生成されたハッシュ値(n+1)が所定の条件を満たすとき、具体的には、所定の閾値W以下となるとき、そのハッシュ値(n+1)は適正ハッシュ値となる。適正ハッシュ値を見つけ出すために、採掘ノード108はさまざまなナンス(n+1)をハッシュ関数に投入しながら試行計算を繰り返す。適正ハッシュ値を見つけ出す採掘作業とは、適正なナンスを探す作業ともいえる。適正ハッシュ値を見つけた採掘ノード108は、ナンス(n+1)を含む変数群と計算結果としてのハッシュ値を取引ネットワーク102にブロードキャストする。他のノード(通常ノード110および採掘ノード108)は、計算結果が正しいことを確認できれば、適正なナンス(n+1)を含むブロック(n+1)をブロックチェーン104につなげる。適正ハッシュ値(n+1)は、次のブロック106(n+2)の一部となる。 The nonce (n+1) is arbitrary. When the generated hash value (n+1) satisfies the predetermined condition, specifically, when the hash value (n+1) is equal to or smaller than the predetermined threshold value W, the hash value (n+1) becomes the proper hash value. In order to find the proper hash value, the mining node 108 repeats the trial calculation while populating the hash function with various nonces (n+1). It can be said that mining work for finding a proper hash value is work for searching for a proper nonce. The mining node 108 that has found the proper hash value broadcasts the variable group including the nonce (n+1) and the hash value as the calculation result to the trading network 102. The other nodes (ordinary node 110 and mining node 108) connect the block (n+1) containing the proper nonce (n+1) to the block chain 104 if it can confirm that the calculation result is correct. The proper hash value (n+1) becomes a part of the next block 106(n+2).

ブロックチェーン104の取引データをあとから改ざんするとハッシュ値が変化してしまう。適正ハッシュ値を計算するためにはそれなりの計算コストがかかるため、取引データとそれにもとづく適正ハッシュ値をすべて書き換えることは困難である。このような仕組みにより、ブロックチェーン104の改ざんは実質的に不可能となっている。 If the transaction data of the block chain 104 is falsified later, the hash value will change. It takes some calculation cost to calculate the proper hash value, so it is difficult to rewrite all the transaction data and the proper hash value based on it. With such a mechanism, tampering with the block chain 104 is virtually impossible.

図3は、ブロックチェーンシステム100においてフォークが発生する仕組みを説明するための模式図である。
上述したように、多数の採掘ノード108は、競争しながら適正ハッシュ値を探す。また、適正ハッシュ値は唯一無二ではないため、複数の採掘ノード108が複数の適正ハッシュ値を見つけ出すこともありうる。このとき、一本の鎖であるべきブロックチェーン104は、2系統に分岐することがある。
FIG. 3 is a schematic diagram for explaining a mechanism in which a fork occurs in the block chain system 100.
As described above, many mining nodes 108 compete for the proper hash value. Further, since there is no unique proper hash value, a plurality of mining nodes 108 may find a plurality of proper hash values. At this time, the block chain 104, which should be one chain, may be branched into two systems.

図3においては、ブロック106(2)に基づいて、2種類の適正ハッシュ値(H2A、H2B)が見つかった場合を示す。適正ハッシュ値(H2A)に基づいてブロック106(3A)が生成されるとともに(以下、「A系列」とよぶ)、適正ハッシュ値(H2B)に基づいてブロック106(3B)も生成されている(以下、「B系列」とよぶ)。 FIG. 3 shows a case where two types of proper hash values (H2A, H2B) are found based on block 106(2). The block 106 (3A) is generated based on the proper hash value (H2A) (hereinafter referred to as “A series”), and the block 106 (3B) is also generated based on the proper hash value (H2B) ( Hereinafter referred to as "B series".

A系列においてブロック106(3A)がブロック生成され、続いてブロック106(4A)が生成されたとする。一方、B系列においては、ある採掘ノード108xがブロック106(3B)のあとブロック106(4B)、ブロック106(5B)、ブロック106(6B)をA系列よりも早いペースで生成し、これら4つのブロック106をまとめてブロードキャストしたとする。この結果、A系列とB系列が併存する。採掘ノード108xが圧倒的な計算能力を有しているときには、B系列のような「長いチェーン」が取引ネットワーク102に突然投げ込まれることがありうる。 It is assumed that the block 106 (3A) is generated in the A series, and the block 106 (4A) is subsequently generated. On the other hand, in the B series, a certain mining node 108x generates the block 106(4B), the block 106(5B), and the block 106(6B) after the block 106(3B) at a faster pace than the A series. It is assumed that the blocks 106 are collectively broadcast. As a result, the A series and the B series coexist. When the mining node 108x has overwhelming computing power, a "long chain", such as a B-series, can suddenly be thrown into the trading network 102.

ブロックチェーンシステム100は、「分岐(フォーク)が発生したときには、長いチェーンを正式採用し、短いチェーンを破棄する」というルールにて運用される。図3の場合、A系列にあるブロック106(3A)、ブロック106(3B)に書き込まれた取引データは後発的に無効化されてしまう。たとえば、ある取引者が仮想通貨を使って食事をし、その取引データをブロック106(3A)に書き込んだとする。ここでブロック106(3A)が後発的に無効化されてしまうと、仮想通貨の支払いはなされなかったことになり、取引秩序に混乱をきたしてしまう。いいかえれば、圧倒的な計算力を有する108xであれば、密かに「長いチェーン」を作ることで、「短いチェーン」の取引を強引に無効化できてしまう。 The block chain system 100 is operated under the rule that "when a branch (fork) occurs, a long chain is officially adopted and a short chain is discarded." In the case of FIG. 3, the transaction data written in the block 106 (3A) and the block 106 (3B) in the A series is invalidated later. For example, it is assumed that a trader eats using virtual currency and writes the trade data in block 106 (3A). If the block 106 (3A) is invalidated subsequently, it means that the virtual currency has not been paid and the trading order is confused. In other words, if the 108x has overwhelming computational power, secretly creating a "long chain" can forcefully invalidate a "short chain" transaction.

ビットコインのような人気の高い仮想通貨であれば、多数の採掘者を一人の採掘者が圧倒するのは難しいため、このような「長いチェーン」を後発的に投入することは難しい。人気通貨ではフォークは生じにくいが、フォークが生じる可能性はゼロではない。一方、人気の薄い仮想通貨の場合にはフォークが発生するリスクが高くなる。 With a popular virtual currency such as Bitcoin, it is difficult for one miner to overwhelm a large number of miners, so it is difficult to introduce such a “long chain” later. Forks are less likely to occur in popular currencies, but the likelihood of forking is not zero. On the other hand, the risk of a fork is increased in the case of a less popular virtual currency.

ビットコインでは、採掘におおよそ10分程度を要するように採掘難易度を調整する仕組みが導入されている。たとえば、上述した閾値Wが小さいほど、適正ハッシュ値を見つけるのは難しくなる。この仕組みにより、1つの採掘ノード108だけが他の採掘ノード108を出し抜いて着々とブロック106を作り続けるのを難しくなっている。そのかわり、取引データを投入してから正式にブロックチェーンシステム100に登録されるまでには10分程度の待ち時間が発生することになる。 Bitcoin has introduced a mechanism for adjusting the mining difficulty level so that mining takes about 10 minutes. For example, the smaller the threshold value W described above, the more difficult it is to find an appropriate hash value. This mechanism makes it difficult for only one mining node 108 to outstrip another mining node 108 and steadily continue to make blocks 106. Instead, a waiting time of about 10 minutes is required from the input of transaction data to the official registration in the blockchain system 100.

また、ビットコインでは、1つのブロック106に登録可能な取引データの総データ量(サイズ)に上限が設けられる。したがって、取引が活発なときには、取引データが今回のブロック106に登録してもらえず、次回以降のブロック生成まで待たされることもある。以下、1つのブロック106に登録可能な取引データ量の上限値を「取引上限値」とよぶ。 In addition, in Bitcoin, an upper limit is set for the total data amount (size) of transaction data that can be registered in one block 106. Therefore, when the transaction is active, the transaction data may not be registered in the current block 106 and may be kept waiting until the next block generation. Hereinafter, the upper limit value of the transaction data amount that can be registered in one block 106 is referred to as “transaction upper limit value”.

ブロックチェーンシステム100は中央集権型ではないため、設計上、取引上限値を変更するのが難しい。また、ハッシュ関数の性質上、取引上限値を大きくすると採掘難易度が高くなってしまう。採掘難易度が高くなりすぎると、通常の計算能力しか有しない一般的な採掘ノード108が採掘競争に勝てなくなってしまうというジレンマがある。 Since the blockchain system 100 is not a centralized type, it is difficult to change the transaction upper limit value by design. In addition, due to the nature of the hash function, the difficulty of mining becomes higher when the transaction upper limit is increased. If the mining difficulty becomes too high, there is a dilemma that a general mining node 108 that has only normal computing power cannot win the mining competition.

まとめると、フォークを発生させないためには、いいかえれば取引の安定性を確保するためにはある程度の採掘難易度を設定する必要がある。計算力に優れる一人の採掘者が他の採掘者を出し抜いてブロック生成しつづけるのを防ぐためである。しかし、採掘難易度を高くしすぎると取引の円滑性が損なわれてしまう。ビットコインのような人気のある仮想通貨の場合、取引(送金)を実行してもからブロックチェーンシステム100に正式登録(以下、「取引承認」とよぶ)されるまでに長時間待たされるという弊害が目立ち始めている。 In summary, in order to prevent forks, in other words, it is necessary to set a certain degree of mining difficulty to ensure the stability of transactions. This is to prevent one miner who is excellent in computing power from overtaking another miner and continuing to generate blocks. However, if the mining difficulty is set too high, the smoothness of transactions will be impaired. In the case of a popular virtual currency such as Bitcoin, it takes a long time to wait for a formal registration (hereinafter referred to as “transaction approval”) in the blockchain system 100 after executing a transaction (remittance). Is starting to stand out.

図4は、本実施形態におけるブロックチェーンシステム200の概要図である。
本実施形態におけるブロックチェーンシステム200においては、多数の採掘ノード108ではなく、単一の特権ノード120がブロック生成を担当する。複数の通常ノード110は取引ネットワーク102を介してピア・ツー・ピアにて接続される。取引ネットワーク102は、インターネットなどの公開型の通信ネットワークにおいて形成される点は図1と同じである。
FIG. 4 is a schematic diagram of the block chain system 200 in this embodiment.
In the block chain system 200 according to the present embodiment, a single privileged node 120 takes charge of block generation instead of a large number of mining nodes 108. A plurality of ordinary nodes 110 are connected peer-to-peer via the trading network 102. The transaction network 102 is the same as FIG. 1 in that it is formed in an open communication network such as the Internet.

取引ネットワーク102にはブロックチェーン104が形成される。ブロックチェーン104のデータ実体は、通常ノード110および特権ノード120それぞれにおいてローカルに保存されている。 A block chain 104 is formed in the trading network 102. The data entity of the block chain 104 is locally stored in each of the normal node 110 and the privileged node 120.

本実施形態においても、通常ノード110は、一時的なアカウントで取引を行うことができるため、取引の匿名性が保たれる。また、本実施形態においてもブロック106に取引上限値を設定してもよいが、取引上限値を設定することは必須ではない。以下、ブロック106に取引上限値は設定されないものとして説明する。 Also in this embodiment, since the normal node 110 can carry out a transaction with a temporary account, the anonymity of the transaction is maintained. Also in this embodiment, the transaction upper limit value may be set in the block 106, but it is not essential to set the transaction upper limit value. Hereinafter, it will be described that the transaction upper limit value is not set in the block 106.

特権ノード120は、公開鍵と秘密鍵のペアを有する。公開鍵は取引ネットワーク102にブロードキャストされ、すべての通常ノード110が公開鍵を保有する。通常ノード110は、取引データを取引ネットワーク102にブロードキャストし、特権ノード120はローカルな記憶領域(以下、「トランザクションプール」とよぶ)に取引データを蓄積する。特権ノード120は、定期的に、たとえば、1秒に1回のペースでトランザクションプールから取引データを読み出し、これらの取引データを含むブロック106を生成する。ブロック生成に際し、特権ノード120はブロック106に含まれるデータの一部を秘密鍵により暗号化し、署名値を生成する(詳細後述)。 The privileged node 120 has a public key/private key pair. The public key is broadcast to the trading network 102, and all ordinary nodes 110 have the public key. The normal node 110 broadcasts the transaction data to the transaction network 102, and the privileged node 120 accumulates the transaction data in a local storage area (hereinafter referred to as “transaction pool”). Privileged node 120 reads transaction data from the transaction pool on a regular basis, such as once per second, and generates block 106 containing these transaction data. When generating the block, the privileged node 120 encrypts a part of the data included in the block 106 with the secret key to generate a signature value (details will be described later).

特権ノード120は、署名値を含むブロック106を取引ネットワーク102にブロードキャストする。通常ノード110は、ブロック106の署名値を公開鍵によって復号することにより、署名値(ブロック106)の真正性を確認する。真正性を確認できたとき、通常ノード110はブロックチェーン104に新たなブロック106を追加する(取引承認)。 Privileged node 120 broadcasts block 106 containing the signature value to trading network 102. The ordinary node 110 verifies the authenticity of the signature value (block 106) by decrypting the signature value of block 106 with the public key. When the authenticity is confirmed, the normal node 110 adds a new block 106 to the block chain 104 (transaction approval).

本実施形態においては、複数の採掘ノード108が採掘競争(適正ハッシュ値探し)をするのではなく、中央集権的な特権ノード120のみがブロック生成を行う。特権ノード120が署名値を生成するだけなのでブロック生成にともなう処理コストが低く、1秒に1回程度の高頻度にてブロック106を生成できる。 In the present embodiment, the mining nodes 108 do not compete for mining (search for an appropriate hash value), and only the centralized privileged node 120 generates blocks. Since the privileged node 120 only generates the signature value, the processing cost associated with the block generation is low, and the block 106 can be generated at a high frequency of about once per second.

図5は、本実施形態におけるブロック106のデータ構造図である。
ブロック106(n)の署名値(n)は、取引データセット(n)の所定の一部、たとえば、101ビット目から105ビット目までの5ビット分のデータを秘密鍵で暗号化したデータである。特権ノード120と通常ノード110は、取引データのどの部分から署名値を生成するかについてあらかじめ情報共有(合意)しておく。以下、署名値生成のための対象となるデータを「原データ」とよぶ。通常ノード110は、ブロック106(n)の取引データセット(n)から原データを取得するとともに署名値(n)も取得する。通常ノード110は、署名値(n)を公開鍵により復号し、復号後の署名値(n)が原データと一致したとき、ブロック106(n)は特権ノード120によりブロック生成された真正のブロック106であると判定する。署名値の確認が取引承認となる。
FIG. 5 is a data structure diagram of the block 106 in this embodiment.
The signature value (n) of the block 106(n) is a predetermined part of the transaction data set (n), for example, data obtained by encrypting 5-bit data from the 101st bit to the 105th bit with a secret key. is there. The privileged node 120 and the normal node 110 share (agree) information in advance from which part of the transaction data the signature value is generated. Hereinafter, the target data for generating the signature value is referred to as “original data”. Ordinary node 110 obtains the raw data from the transaction data set (n) of block 106(n) as well as the signature value (n). The normal node 110 decrypts the signature value (n) with the public key, and when the decrypted signature value (n) matches the original data, the block 106(n) is an authentic block generated by the privileged node 120. It is determined to be 106. Confirmation of the signature value is transaction approval.

図6は、ブロックチェーンシステム200の機能ブロック図である。
上述したように、ブロックチェーンシステム200は、複数の通常ノード110および特権ノード120を含む。
(通常ノード110)
通常ノード110の各構成要素は、CPU(Central Processing Unit)および各種コプロセッサなどの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
特権ノード120についても同様である。
FIG. 6 is a functional block diagram of the block chain system 200.
As described above, the blockchain system 200 includes a plurality of ordinary nodes 110 and privileged nodes 120.
(Normal node 110)
Each constituent element of the normal node 110 includes an arithmetic unit such as a CPU (Central Processing Unit) and various coprocessors, a storage device such as a memory and a storage, hardware including a wired or wireless communication line connecting them, and a storage device. It is realized by software that is stored and supplies a processing instruction to the arithmetic unit. The computer program may be configured by a device driver, an operating system, various application programs located in their upper layers, and a library that provides common functions to these programs. Each block described below is not a hardware-based configuration but a function-based block.
The same applies to the privileged node 120.

通常ノード110は、ユーザインタフェース処理部130、データ処理部132、通信部134およびデータ格納部136を含む。
通信部134は、取引ネットワーク102を対象として通信処理を担当する。ユーザインタフェース処理部130は、ユーザ(取引者)からの操作を受け付けるほか、画像表示や音声出力など、ユーザインタフェースに関する処理を担当する。データ格納部136は各種データを格納する。データ処理部132は、通信部134、ユーザインタフェース処理部130により取得されたデータおよびデータ格納部136に格納されているデータに基づいて各種処理を実行する。データ処理部132は、ユーザインタフェース処理部130、通信部134およびデータ格納部136のインタフェースとしても機能する。
The normal node 110 includes a user interface processing unit 130, a data processing unit 132, a communication unit 134, and a data storage unit 136.
The communication unit 134 is in charge of communication processing for the transaction network 102. The user interface processing unit 130 receives operations from the user (trader) and is in charge of processing related to the user interface such as image display and audio output. The data storage unit 136 stores various data. The data processing unit 132 executes various processes based on the data acquired by the communication unit 134 and the user interface processing unit 130 and the data stored in the data storage unit 136. The data processing unit 132 also functions as an interface for the user interface processing unit 130, the communication unit 134, and the data storage unit 136.

通信部134は、取引送信部146とブロック受信部148を含む。
取引送信部146は、取引データ(送金記録)を取引ネットワーク102にブロードキャストする。ブロック受信部148は、特権ノード120が生成するブロック106を受信する。
The communication unit 134 includes a transaction transmission unit 146 and a block reception unit 148.
The transaction transmitter 146 broadcasts transaction data (remittance record) to the transaction network 102. The block reception unit 148 receives the block 106 generated by the privileged node 120.

ユーザインタフェース処理部130は、入力部138と出力部140を含む。
入力部138は、ユーザからの各種入力を受け付ける。出力部140は、ユーザに対して各種情報を出力する。入力部138は、取引入力部142を含む。取引入力部142は、仮想通貨による取引が行われたとき、ユーザから取引内容の入力を受け付ける。
The user interface processing unit 130 includes an input unit 138 and an output unit 140.
The input unit 138 receives various inputs from the user. The output unit 140 outputs various information to the user. The input unit 138 includes a transaction input unit 142. The transaction input unit 142 receives input of transaction details from the user when a transaction using virtual currency is performed.

データ処理部132は、取引管理部144を含む。取引管理部144は、ブロック106の真正性を確認し、ブロックチェーン104を更新する。 The data processing unit 132 includes a transaction management unit 144. The transaction management unit 144 confirms the authenticity of the block 106 and updates the block chain 104.

データ格納部136は、ブロックチェーン104および公開鍵を格納する。 The data storage unit 136 stores the block chain 104 and the public key.

(特権ノード120)
特権ノード120は、通信部150、データ処理部152およびデータ格納部154を含む。
通信部150は、取引ネットワーク102を対象とした通信処理を担当する。データ格納部154は各種データを格納する。データ処理部152は、通信部150により取得されたデータおよびデータ格納部154に格納されているデータに基づいて各種処理を実行する。データ処理部152は、通信部150およびデータ格納部154のインタフェースとしても機能する。
(Privileged node 120)
The privileged node 120 includes a communication unit 150, a data processing unit 152, and a data storage unit 154.
Communication unit 150 is in charge of communication processing targeting transaction network 102. The data storage unit 154 stores various data. The data processing unit 152 executes various processes based on the data acquired by the communication unit 150 and the data stored in the data storage unit 154. The data processing unit 152 also functions as an interface between the communication unit 150 and the data storage unit 154.

データ処理部152は、ブロック生成部160を含む。ブロック生成部160は上述の方法により、ブロック生成を行う。 The data processing unit 152 includes a block generation unit 160. The block generation unit 160 performs block generation by the method described above.

通信部150は、取引受信部156とブロック送信部158を含む。
取引受信部156は、取引ネットワーク102から取引データを受信し、データ格納部154の記憶領域であるトランザクションプールに取引データを蓄積する。ブロック送信部158は、生成されたブロック106を取引ネットワーク102にブロードキャストする。
The communication unit 150 includes a transaction receiving unit 156 and a block transmitting unit 158.
The transaction receiving unit 156 receives the transaction data from the transaction network 102 and accumulates the transaction data in the transaction pool, which is the storage area of the data storage unit 154. The block transmission unit 158 broadcasts the generated block 106 to the trading network 102.

データ格納部154は、ブロックチェーン104および秘密鍵を格納する。また、データ格納部154の一部にはトランザクションプールが形成され、トランザクションプールには取引データが蓄積される。 The data storage unit 154 stores the block chain 104 and the secret key. A transaction pool is formed in a part of the data storage unit 154, and transaction data is accumulated in the transaction pool.

図7は、取引データの入力過程を示すフローチャートである。
図7に示す処理は、通常ノード110において、ユーザが仮想通貨による取引をしたときに実行される。取引入力部142は、まず、ユーザからの取引データの入力を受け付ける(S10)。取引送信部146は、取引データを直ちに取引ネットワーク102にブロードキャストする(S12)。
FIG. 7 is a flowchart showing a process of inputting transaction data.
The process shown in FIG. 7 is executed in the normal node 110 when the user makes a transaction with virtual currency. The transaction input unit 142 first receives an input of transaction data from the user (S10). The transaction transmitting unit 146 immediately broadcasts the transaction data to the transaction network 102 (S12).

特権ノード120の取引受信部156は、多数の通常ノード110から取引データを取得し、トランザクションプールに蓄積する。一方、取引データをブロードキャストした通常ノード110は、取引データを含むブロック106の生成を待つ。 The transaction receiving unit 156 of the privileged node 120 acquires transaction data from a large number of ordinary nodes 110 and stores it in the transaction pool. Meanwhile, the ordinary node 110 that broadcasts the transaction data waits for the generation of the block 106 containing the transaction data.

図8は、ブロック生成の処理過程を示すフローチャートである。
本実施形態においては、1秒に1回の頻度にて、特権ノード120のブロック生成部160はトランザクションプール(データ格納部154)から取引データを読み出す。図8に示す処理は、読み出しタイミング(ブロック生成のタイミング)ごとに実行される。
FIG. 8 is a flowchart showing the process steps of block generation.
In the present embodiment, the block generation unit 160 of the privileged node 120 reads transaction data from the transaction pool (data storage unit 154) once a second. The process shown in FIG. 8 is executed at each read timing (block generation timing).

ブロック生成部160は、トランザクションプールに蓄積されている取引データの総データ量が所定の閾値T以上であれば(S20のY)、取引データセットの一部から原データを抽出し、これを秘密鍵により暗号化することで署名値を生成する(S22)。ブロック生成部160は、署名値および取引データセットを含むブロック106を生成する(S24)。ブロック送信部158は、署名値を含むブロック106を取引ネットワーク102にブロードキャストする(S26)。 If the total amount of transaction data accumulated in the transaction pool is equal to or greater than the predetermined threshold T (Y in S20), the block generation unit 160 extracts the original data from a part of the transaction data set and keeps it secret. A signature value is generated by encrypting with a key (S22). The block generation unit 160 generates the block 106 including the signature value and the transaction data set (S24). The block transmission unit 158 broadcasts the block 106 including the signature value to the trading network 102 (S26).

取引データの総データ量が閾値T未満のときには(S20のN)、S22以降の処理はスキップされる。ブロック生成部160は、定期的にブロック106を生成するが、取引データがトランザクションプールにあまり溜まっていないときには次回の読み出しタイミングまで待ってからブロック106を生成する。このような処理方法により、取引が閑散としているときに中身の少ないブロック106(以下、「スモール・ブロック」とよぶ)が生成されるのを防いでいる。 When the total data amount of transaction data is less than the threshold value T (N of S20), the process after S22 is skipped. The block generation unit 160 periodically generates the block 106, and when transaction data is not much accumulated in the transaction pool, waits until the next read timing and then generates the block 106. By such a processing method, it is possible to prevent the block 106 having a small content (hereinafter referred to as “small block”) from being generated when the transaction is quiet.

図9は、通常ノード110がブロックを受信したときの処理過程を示すフローチャートである。
通常ノード110のブロック受信部148は、特権ノード120がブロードキャストしたブロック106を受信する。取引管理部144は、ブロック106の署名値を公開鍵で復号し、ブロック106に含まれる原データと比較することにより、ブロック106が真正か否かを判定する(S30)。真正であれば(S30のY)、取引管理部144はブロックチェーン104にブロック106を追加することにより取引承認する(S32)。真正でなければ(S30のN)、S32の処理はスキップされる。このときには、通常ノード110の通信部134は、不正なブロック106が検出されたことを特権ノード120に警告してもよい。
すべての通常ノード110は、受信したブロック106に基づいてブロックチェーン104を更新する。
FIG. 9 is a flowchart showing a processing procedure when the normal node 110 receives a block.
The block receiving unit 148 of the normal node 110 receives the block 106 broadcast by the privileged node 120. The transaction management unit 144 determines whether or not the block 106 is authentic by decrypting the signature value of the block 106 with the public key and comparing it with the original data included in the block 106 (S30). If the transaction is authentic (Y in S30), the transaction management unit 144 approves the transaction by adding the block 106 to the block chain 104 (S32). If not authentic (N of S30), the process of S32 is skipped. At this time, the communication unit 134 of the normal node 110 may warn the privileged node 120 that the illegal block 106 has been detected.
All ordinary nodes 110 update the blockchain 104 based on the received block 106.

図10は、特権ノード120における秘密鍵172の使用方法を説明するための模式図である。
ブロックチェーンシステム200の運用の前提は、特権ノード120のみが秘密鍵172を保持することである。秘密鍵172が他のノードに不正取得されると偽物のブロック106が生成されてしまう可能性がある。
FIG. 10 is a schematic diagram for explaining how to use the secret key 172 in the privileged node 120.
The premise of operation of the block chain system 200 is that only the privileged node 120 holds the secret key 172. If the private key 172 is illegally acquired by another node, the fake block 106 may be generated.

秘密鍵の秘匿性を守るため、特権ノード120は、データベースA、B、Cとローカル接続される。秘密鍵172は、まず、暗号鍵174により暗号化される。暗号化された秘密鍵172は、更に、第1部分鍵172aおよび第2部分鍵172bに分割される。データベースAは第1部分鍵172aを保存する。データベースBは第2部分鍵172bを保存する。暗号鍵174はデータベースCに保存される。通常時においては、特権ノード120は秘密鍵172も暗号鍵174も保存していない。このため、通常時においては、特権ノード120への不正アクセスが発生しても秘密鍵172も暗号鍵174も漏洩することはない。 To protect the confidentiality of the private key, the privileged node 120 is locally connected to the databases A, B, and C. The secret key 172 is first encrypted by the encryption key 174. The encrypted secret key 172 is further divided into a first partial key 172a and a second partial key 172b. The database A stores the first partial key 172a. The database B stores the second partial key 172b. The encryption key 174 is stored in the database C. Normally, the privileged node 120 does not store the secret key 172 or the encryption key 174. Therefore, in a normal time, even if an unauthorized access to the privileged node 120 occurs, neither the private key 172 nor the encryption key 174 is leaked.

トランザクションプールからの読み出しのタイミング、すなわち、ブロック生成のタイミングに至るとき、特権ノード120のブロック生成部160は、データベースAから第1部分鍵172a、データベースBから第2部分鍵172bを読み出し、内蔵の揮発性メモリ170にロードする。ブロック生成部160は、第1部分鍵172aと第2部分鍵172bをつなげることにより、揮発性メモリ170上に秘密鍵172を生成する。この段階では、秘密鍵172はまだ暗号化されている。 When the timing of reading from the transaction pool, that is, the timing of block generation is reached, the block generation unit 160 of the privileged node 120 reads the first partial key 172a from the database A and the second partial key 172b from the database B, and the built-in internal key is read. Load into volatile memory 170. The block generation unit 160 generates the secret key 172 on the volatile memory 170 by connecting the first partial key 172a and the second partial key 172b. At this stage, the private key 172 is still encrypted.

続いて、ブロック生成部160は、データベースCから暗号鍵174を読み出し、揮発性メモリ170に展開された秘密鍵172を暗号鍵174により復号する。ブロック生成部160は、復号された秘密鍵172に基づいて署名値を生成する。ブロック生成後、特権ノード120のブロック生成部160は揮発性メモリ170から秘密鍵172を削除する。ブロック生成のための一瞬のタイミングにおいてしか、特権ノード120は秘密鍵172を保有しない構成とすることにより、特権ノード120から秘密鍵172が漏洩するリスクを低減させている。 Subsequently, the block generation unit 160 reads the encryption key 174 from the database C, and decrypts the secret key 172 expanded in the volatile memory 170 with the encryption key 174. The block generation unit 160 generates a signature value based on the decrypted private key 172. After generating the block, the block generation unit 160 of the privileged node 120 deletes the secret key 172 from the volatile memory 170. The risk that the secret key 172 leaks from the privileged node 120 is reduced by configuring the privileged node 120 not to hold the secret key 172 only at an instant when the block is generated.

データベースA、B、Cはいずれも特権ノード120にローカル接続されており、インターネット等の公開型通信回線とは接続されていない。このため、これらのデータベースへの不正アクセスは生じにくくなっている。また、データベースA、Bは秘密鍵172の一部しか保存しないため、一方のデータベースに不正アクセスが発生しても秘密鍵172全体が漏洩することはない。更に、第1部分鍵172aと第2部分鍵172bが漏洩したとしても、暗号鍵174がなければ秘密鍵172を使用できない。 Each of the databases A, B, and C is locally connected to the privileged node 120, and is not connected to a public communication line such as the Internet. Therefore, unauthorized access to these databases is less likely to occur. Further, since the databases A and B store only part of the private key 172, the entire private key 172 will not be leaked even if an unauthorized access occurs to one of the databases. Furthermore, even if the first partial key 172a and the second partial key 172b are leaked, the private key 172 cannot be used without the encryption key 174.

データベースCは、複数の暗号鍵を保有してもよい。たとえば、第1部分鍵172aを復号するための暗号鍵Aと第2部分鍵172bを復号するための暗号鍵Bをそれぞれ用意してもよい。また、ブロック生成部160は複数の暗号鍵を定期的に変更してもよい。 The database C may have a plurality of encryption keys. For example, an encryption key A for decrypting the first partial key 172a and an encryption key B for decrypting the second partial key 172b may be prepared. Further, the block generation unit 160 may periodically change the plurality of encryption keys.

特権ノード120は、取引ネットワーク102とは非公開型の通信回線により接続されてもよい。具体的には、VPN(Virtual Private Network)等の秘匿回線により接続されてもよいし、専用の有線回線により接続されてもよいし、取引ネットワーク102側からの特権ノード120へのアクセスを制限するためのファイアウォールを設けてもよい。このような制御方法によれば、特権ノード120およびデータベースA、B、Cへの不正アクセスをいっそう確実に防止しやすくなる。 The privileged node 120 may be connected to the trading network 102 by a private communication line. Specifically, they may be connected by a secret line such as a VPN (Virtual Private Network), or may be connected by a dedicated wire line, and access to the privileged node 120 from the transaction network 102 side is restricted. A firewall may be provided for this purpose. According to such a control method, it becomes easier to more surely prevent unauthorized access to the privileged node 120 and the databases A, B, and C.

以上、実施形態に基づいてブロックチェーンシステム200を説明した。
本実施形態によれば、ブロック106を生成するのは唯一の特権ノード120であるため、分岐(フォーク)が発生することはない。また、秘密鍵で署名値を作ることでブロック106を生成する方式であるためブロック生成にともなう計算コストが一般的なブロックチェーン104に比べると格段に小さい。ビットコインでは、通常、1つのブロック106を生成するのに10分程度を要する。本実施形態におけるブロックチェーンシステム200によれば、1秒に1回程度の高頻度にてブロック106を生成できるため、実質的な即時決済が実現される。また、高頻度にてブロック106を生成できるため、1つのブロック106に含まれる取引データの総データ量が肥大化するのを防ぎやすい。
The blockchain system 200 has been described above based on the embodiment.
According to the present embodiment, since only the privileged node 120 generates the block 106, no branch (fork) occurs. In addition, since the block 106 is generated by creating a signature value with a secret key, the calculation cost associated with block generation is significantly smaller than that of a general block chain 104. In Bitcoin, it usually takes about 10 minutes to generate one block 106. According to the block chain system 200 in the present embodiment, the block 106 can be generated at a high frequency of about once per second, so that substantially immediate settlement is realized. Further, since the block 106 can be generated with high frequency, it is easy to prevent the total data amount of the transaction data included in one block 106 from increasing.

一般的なブロックチェーン104においては、1つのブロック106を生成するための時間を約10分とするため採掘難易度を適宜コントロールしている。統計的にブロック生成の頻度が決まるため、10分以上待たされることもありうる。これに対して、本実施形態においては、特権ノード120により定期的にブロック生成するため、取引者は取引データの入力からブロック生成(取引の認証)までの時間をより確実に見積もることができる。また、取引上限値が設定されないため取引承認まで待たされることもない。 In the general block chain 104, the time required to generate one block 106 is set to about 10 minutes, so that the mining difficulty level is appropriately controlled. Since the frequency of block generation is statistically determined, it may be possible to wait for 10 minutes or more. On the other hand, in the present embodiment, since the privileged node 120 regularly generates blocks, the trader can more reliably estimate the time from the input of transaction data to the block generation (transaction authentication). Further, since the transaction upper limit value is not set, there is no need to wait for transaction approval.

一般的なブロックチェーン104と同様、通常ノード110は一時的なアカウントにて仮想通貨取引を実行できる。取引者は、特権ノード120等に自身の素性を明かす必要はない。したがって、ブロックチェーン104本来の魅力である「匿名性」は、本実施形態におけるブロックチェーンシステム200においても維持できる。 Like the general blockchain 104, the normal node 110 can execute virtual currency transactions with a temporary account. The trader does not have to reveal his/her identity to the privileged node 120 or the like. Therefore, “anonymity”, which is the original appeal of the blockchain 104, can be maintained in the blockchain system 200 according to this embodiment.

本実施形態におけるブロックチェーンシステム200は、採掘難易度により取引安全性を高めるという考え方ではない。したがって、取引上限値を設けなくてもブロック生成のパフォーマンスが落ちることはない。取引が活発な時期(繁忙期)であっても、特権ノード120は通常時と同じペースでブロック106を生成できる。取引が不活発な時期(閑散期)には1つのブロック106に含まれる取引データの量が小さくなり、繁忙期には1つのブロック106に含まれる取引データの量が多くなる。短期間に大量の取引が発生したときには、1つのブロック106に多くの取引データをまとめて記録すればよい。ブロック106に登録可能な取引データの総量が可変であるため、取引の活発度によってブロック生成のペースが影響されることがない。 The block chain system 200 according to the present embodiment is not based on the idea of increasing transaction safety depending on the difficulty level of mining. Therefore, the performance of block generation does not deteriorate even if the transaction upper limit is not set. Privileged nodes 120 may generate blocks 106 at the same pace as normal, even during periods of high trading activity (busy periods). The amount of transaction data included in one block 106 is small during periods when transactions are inactive (quiet periods), and the amount of transaction data included in one block 106 is large during busy periods. When a large number of transactions occur in a short period of time, a large amount of transaction data may be collectively recorded in one block 106. Since the total amount of transaction data that can be registered in the block 106 is variable, the activity of the transaction does not affect the pace of block generation.

一般的なブロックチェーン104における採掘競争の場合、競争に負ける大多数の採掘ノード108の計算は無駄になる。採掘には電気代等の現実的なコストがかかっている。本実施形態においては、特権ノード120だけがブロック生成をするため、採掘競争にともなう無駄なコストをなくすことができる。 In the case of a mining competition in a general blockchain 104, the calculation of the majority of mining nodes 108 that loses the competition is wasted. Mining requires a realistic cost such as electricity bills. In the present embodiment, since only the privileged node 120 generates blocks, it is possible to eliminate unnecessary costs associated with mining competition.

また、本実施形態においては、トランザクションプールに蓄積している取引データの総データ量が閾値T以下のときには、ブロック生成はスキップされる(図8参照)。このため、スモール・ブロックの生成を抑制できる。閾値Tは数メガバイトであってもよいし、ゼロであってもよい。閾値Tをゼロとすれば取引データをまったく含まない無駄なブロック106が生成されるのを防ぐことができる。一般的なブロックチェーン104にはスモール・ブロックの生成を抑止する仕組みがない。スモール・ブロックは無駄な送金遅延を引き起こすだけでなく、取引ネットワーク102に対しても不必要な負荷をかけてしまう。本実施形態によれば、取引円滑性と取引活発度の双方に鑑みてスモール・ブロックの生成を避けつつ、合理的なペースにてブロック106を生成できる。 Further, in the present embodiment, when the total amount of transaction data accumulated in the transaction pool is less than or equal to the threshold value T, block generation is skipped (see FIG. 8). Therefore, the generation of small blocks can be suppressed. The threshold T may be several megabytes or zero. By setting the threshold T to zero, it is possible to prevent the generation of a wasteful block 106 that does not include transaction data at all. The general block chain 104 has no mechanism for suppressing the generation of small blocks. Small blocks not only cause unnecessary delays in remittance, but also place unnecessary load on the trading network 102. According to this embodiment, the block 106 can be generated at a reasonable pace while avoiding the generation of the small block in consideration of both transaction smoothness and transaction activity.

ブロック106の生成だけでなく、各通常ノード110における署名値の確認(取引承認)にも若干のコストがかかる。したがって、すべての通常ノード110においてブロックチェーン104(ブロック106)を同期させるためにはある程度の時間がかかる。この点からも、生成側(特権ノード120)だけでなく、受け入れ側(通常ノード110)にとってもスモール・ブロックの生成を抑制することが好ましい。 Not only the generation of the block 106, but also the confirmation of the signature value (transaction approval) at each normal node 110 requires some cost. Therefore, it takes some time to synchronize the block chain 104 (block 106) in all the normal nodes 110. From this point as well, it is preferable to suppress the generation of small blocks not only on the generation side (privileged node 120) but also on the reception side (normal node 110).

特権ノード120は、図10に関連して説明したように、秘密鍵172を分離と暗号化により不正アクセスから守る。特に、ブロック生成のときだけ秘密鍵172を揮発性メモリ170に展開し、ブロック生成を完了したあとに揮発性メモリ170から秘密鍵172を消去することで秘密鍵172の漏洩をいっそう防ぎやすくなる。 The privileged node 120 protects the private key 172 from unauthorized access by separating and encrypting it, as described with reference to FIG. Particularly, the secret key 172 is expanded in the volatile memory 170 only when the block is generated, and the secret key 172 is erased from the volatile memory 170 after the block generation is completed. This makes it easier to prevent the secret key 172 from leaking.

なお、本発明は上記実施形態や変形例に限定されるものではなく、要旨を逸脱しない範囲で構成要素を変形して具体化することができる。上記実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成してもよい。また、上記実施形態や変形例に示される全構成要素からいくつかの構成要素を削除してもよい。 It should be noted that the present invention is not limited to the above-described embodiments and modifications, and the constituent elements can be modified and embodied without departing from the scope of the invention. Various inventions may be formed by appropriately combining a plurality of constituent elements disclosed in the above-described embodiments and modifications. Further, some constituent elements may be deleted from all the constituent elements shown in the above-described embodiments and modifications.

[変形例]
本実施形態においては、ブロック106に取引上限値を設定しないとして説明した。変形例として、数メガバイトから1ギガバイト程度の取引上限値を設定してもよい。ビットコインにおけるブロック生成(採掘)を10分に1回、本実施形態におけるブロック生成を1秒に1回と想定するならば、ブロックチェーンシステム200はビットコインの600倍の速度にてブロック106を生成できることになる。このため、仮に、比較的小さな取引上限値を設定したとしても、ブロック生成と取引承認の待ち時間を大幅に短縮できる。
[Modification]
In the present embodiment, it is described that the transaction upper limit value is not set in the block 106. As a modification, a transaction upper limit value of several megabytes to about 1 gigabyte may be set. Assuming that block generation (mining) in bitcoin is performed once every 10 minutes and block generation in this embodiment is performed once per second, the block chain system 200 executes the block 106 at 600 times the speed of bitcoin. It can be generated. Therefore, even if a relatively small transaction upper limit value is set, the waiting time for block generation and transaction approval can be greatly shortened.

本実施形態においては、取引データを特権ノード120のトランザクションプールに蓄積し、特権ノード120は定期的にトランザクションプールから取引データを読み出してブロック生成するとして説明した。変形例として、特権ノード120はいずれかの通常ノード110から取引データを受信するごとにブロック106を生成してもよい。あるいは、特権ノード120はトランザクションプールに蓄積される取引データの総データ量が所定の閾値K以上となるときにブロック生成をするとしてもよい。このような制御方法によれば、取引の活発度に応じてブロック生成のタイミングを自動的に調整できる。繁忙期においては高頻度でブロック生成され、閑散期には低頻度でブロック生成されることになる。また、1つのブロック106に含まれる取引データの総データ量のばらつきを抑制しやすくなる。 In the present embodiment, the transaction data is stored in the transaction pool of the privileged node 120, and the privileged node 120 periodically reads the transaction data from the transaction pool and generates a block. Alternatively, privileged node 120 may generate block 106 each time it receives transaction data from any regular node 110. Alternatively, the privileged node 120 may generate a block when the total amount of transaction data accumulated in the transaction pool becomes equal to or larger than a predetermined threshold K. According to such a control method, the block generation timing can be automatically adjusted according to the activity level of the transaction. Blocks are generated with high frequency in the busy season and blocks are generated with low frequency in the off-season. Further, it becomes easy to suppress the variation in the total amount of transaction data included in one block 106.

本実施形態においては、特権ノード120は1つのブロック106に1つの署名値を付加するとして説明した。変形例として、特権ノード120は1つのブロック106に複数の署名値を付加してもよい。たとえば、特権ノード120のブロック生成部160は、101バイト目から105バイト目までの第1の原データに基づいて第1の署名値を生成し、1001バイト目から1005バイト目までの第2の原データに基づいて第2の署名値を生成してもよい。このように、取引データの総データ量が多いときほど多くの署名値を含ませてもよい。通常ノード110は、複数の署名値すべてについて真正性が確認されたことを条件として取引承認する。このような制御方法によれば、ブロック106の真正性をいっそう確実に証明しやすくなる。 In this embodiment, the privileged node 120 has been described as adding one signature value to one block 106. Alternatively, the privileged node 120 may add multiple signature values to one block 106. For example, the block generation unit 160 of the privileged node 120 generates the first signature value based on the first original data from the 101st byte to the 105th byte, and the second signature value from the 1001st byte to the 1005th byte. The second signature value may be generated based on the original data. In this way, as the total amount of transaction data is larger, more signature values may be included. The normal node 110 approves the transaction on condition that the authenticity of all the plurality of signature values is confirmed. Such a control method makes it easier to more reliably prove the authenticity of the block 106.

特権ノード120のデータ処理部152は、鍵変更部(図示せず)と鍵送信部(図示せず)を備えてもよい。鍵変更部は、秘密鍵および公開鍵を定期的に変更してもよい。また、鍵変更部は、暗号鍵174を定期的に変更してもよい。鍵変更部は、不正アクセスまたは不正の疑いのあるアクセスが検出されたときに秘密鍵等を変更してもよい。通常ノード110は、署名値に基づいて真正性が確認できないブロック106が検出されたときには、特権ノード120に不正ブロックの存在を通知してもよい。このとき、特権ノード120の鍵変更部は、秘密鍵等を変更してもよい。また、特権ノード120の鍵変更部は、特権ノード120またはデータベースA、B、Cへの外部からのアクセスがあったときにも秘密鍵等を変更してもよい。特権ノード120は、あらかじめ複数種類の秘密鍵/公開鍵を用意しておき、これらの変更条件が成立したとき、秘密鍵/公開鍵のペアを変更してもよい。変更に際しては、特権ノード120の鍵送信部は、新規採用の公開鍵を取引ネットワーク102にブロードキャストすればよい。 The data processing unit 152 of the privileged node 120 may include a key changing unit (not shown) and a key transmitting unit (not shown). The key changing unit may change the private key and the public key periodically. The key changing unit may change the encryption key 174 periodically. The key changing unit may change the secret key or the like when an unauthorized access or an access suspected of being unauthorized is detected. The normal node 110 may notify the privileged node 120 of the existence of an illegal block when the block 106 whose authenticity cannot be confirmed based on the signature value is detected. At this time, the key changing unit of the privileged node 120 may change the secret key or the like. Further, the key changing unit of the privileged node 120 may change the secret key or the like even when the privileged node 120 or the databases A, B, and C are accessed from the outside. The privileged node 120 may prepare a plurality of types of secret keys/public keys in advance and change the secret key/public key pair when these change conditions are satisfied. For the change, the key transmission unit of the privileged node 120 may broadcast the newly adopted public key to the transaction network 102.

図10に示したデータベースA、B、Cの全部または一部は特権ノード120が内蔵するハードディスク等の不揮発性メモリであってもよい。また、各データベースは、特権ノード120の不揮発性メモリにおいてパーティションを分けることで形成されてもよい。 All or part of the databases A, B, and C shown in FIG. 10 may be a nonvolatile memory such as a hard disk built in the privileged node 120. Further, each database may be formed by dividing a partition in the non-volatile memory of the privileged node 120.

特権ノード120は、ブロック生成のタイミングにおいて、取引ネットワーク102との接続を遮断してもよい。特権ノード120は、取引ネットワーク102との接続を遮断後、図10に関連して説明した処理過程により、トランザクションプールに溜まっている取引データからブロックを生成する。ブロック生成後、揮発性メモリ170から秘密鍵172等を消去する。秘密鍵172の消去後、取引ネットワーク102と再接続し、ブロック106をブロードキャストする。このような制御方法によれば、特権ノード120が秘密鍵172を使用するときには完全にオフラインにできるため、特権ノード120から秘密鍵172が漏洩するリスクをいっそう低減できる。 The privileged node 120 may disconnect the connection with the trading network 102 at the timing of block generation. After disconnecting the connection with the transaction network 102, the privileged node 120 generates a block from the transaction data accumulated in the transaction pool by the process described with reference to FIG. After generating the block, the private key 172 and the like are erased from the volatile memory 170. After clearing the private key 172, reconnect to the trading network 102 and broadcast block 106. According to such a control method, when the privileged node 120 uses the secret key 172, it can be completely offline, so that the risk of the secret key 172 leaking from the privileged node 120 can be further reduced.

本実施形態においては、取引データセットの一部を原データとし、この原データから署名値を作るとして説明した。変形例として、特権ノード120は任意の原データを生成し、この原データから署名値を生成してもよい。ブロック106は、特権ノード120が指定する原データおよび署名値を含んでいればよい。 In this embodiment, a part of the transaction data set is used as the original data, and the signature value is created from this original data. As a modification, the privileged node 120 may generate arbitrary original data and generate a signature value from this original data. The block 106 may include the original data and the signature value specified by the privileged node 120.

本実施形態においては、特権ノード120が生成したブロック106は、ブロックチェーン104につなげられるとして説明した。本実施形態の場合、必ずしも「チェーン」である必要はない。図2に示したような適正ハッシュ値によるつながりを作る必要がないためである。たとえば、特権ノード120は、ブロック106に生成日時(日時情報)を記録した上で取引ネットワーク102にブロック106をブロードキャストし、通常ノード110は署名値の真正性を確認した上で、このブロック106を正式に受け入れるか否かを判定してもよい。ブロック106には日時情報が含まれているため、複数のブロック106の日時情報を参照することにより、取引の順番を後から確認できる。 In the present embodiment, the block 106 generated by the privileged node 120 has been described as being connected to the block chain 104. In the case of the present embodiment, it does not necessarily have to be a “chain”. This is because it is not necessary to make a connection by the proper hash value as shown in FIG. For example, the privileged node 120 records the generation date and time (date and time information) in the block 106, broadcasts the block 106 to the trading network 102, and the normal node 110 confirms the authenticity of the signature value and then executes this block 106. It may be determined whether or not it is officially accepted. Since the block 106 includes date and time information, the order of transactions can be confirmed later by referring to the date and time information of a plurality of blocks 106.

本実施形態においては、仮想通貨による取引を前提として説明した。ブロック106に登録される取引データは仮想通貨取引以外のものであってもよい。たとえば、取引者Aが取引者Bにモノ(有体物または無体物)を渡したとき、その取引データをブロック106に登録してもよい。この場合には、ブロックチェーン104により、取引者Aから取引者Bにモノの所有権が移転していることを確認できる。このように、ブロックチェーンシステム200は、仮想通貨(金銭等価物)に限らず、モノや情報の所有権の管理に利用することもできる。 In this embodiment, the description has been made on the premise that the transaction is performed using virtual currency. The transaction data registered in block 106 may be other than virtual currency transactions. For example, when the trader A gives the trader B a thing (tangible or intangible), the trade data may be registered in the block 106. In this case, the blockchain 104 can confirm that the ownership of the goods has been transferred from the trader A to the trader B. As described above, the block chain system 200 can be used not only for managing virtual currencies (money equivalents) but also for managing ownership of things and information.

100 ブロックチェーンシステム、102 取引ネットワーク、104 ブロックチェーン、106 ブロック、108 採掘ノード、110 通常ノード、120 特権ノード、130 ユーザインタフェース処理部、132 データ処理部、134 通信部、136 データ格納部、138 入力部、140 出力部、142 取引入力部、144 取引管理部、146 取引送信部、148 ブロック受信部、150 通信部、152 データ処理部、154 データ格納部、156 取引受信部、158 ブロック送信部、160 ブロック生成部、170 揮発性メモリ、172 秘密鍵、172a 第1部分鍵、172b 第2部分鍵、174 暗号鍵、200 ブロックチェーンシステム 100 block chain system, 102 trading network, 104 block chain, 106 block, 108 mining node, 110 ordinary node, 120 privileged node, 130 user interface processing unit, 132 data processing unit, 134 communication unit, 136 data storage unit, 138 input Section, 140 output section, 142 transaction input section, 144 transaction management section, 146 transaction transmission section, 148 block reception section, 150 communication section, 152 data processing section, 154 data storage section, 156 transaction reception section, 158 block transmission section, 160 block generation unit, 170 volatile memory, 172 secret key, 172a first partial key, 172b second partial key, 174 encryption key, 200 block chain system

Claims (11)

複数の通常ノードを含む取引ネットワークと、前記取引ネットワークに接続される特権ノードと、を含み、
前記特権ノードは、秘密鍵を保有し、
前記通常ノードは、前記秘密鍵に対応する公開鍵をあらかじめ保有しており、
前記通常ノードは、
仮想通貨による商取引の結果を示す取引データの入力を受け付ける取引入力部と、
前記取引データを前記取引ネットワークに送信する取引送信部と、
取引履歴をブロックチェーンとして管理する取引管理部と、
前記特権ノードからブロックを受信するブロック受信部と、を備え、
前記特権ノードは、
前記通常ノードから取引データを受信する取引受信部と、
前記秘密鍵に基づいて署名値を生成し、前記取引データと前記署名値を含むデータセットとして前記ブロックを生成するブロック生成部と、
前記ブロックを前記取引ネットワークに送信するブロック送信部と、を備え、
前記通常ノードの取引管理部は、
前記特権ノードから受信したブロックの署名値の真正性を前記公開鍵により確認できたことを条件として、前記ブロックチェーンに前記受信したブロックを連結することを特徴とするブロックチェーンシステム。
A trading network including a plurality of ordinary nodes, and a privileged node connected to the trading network,
The privileged node holds a private key,
The normal node has a public key corresponding to the secret key in advance,
The normal node is
A transaction input unit that accepts input of transaction data indicating the result of a commercial transaction using virtual currency,
A transaction transmitter for transmitting the transaction data to the transaction network,
A transaction management unit that manages transaction history as a blockchain,
A block receiving unit that receives a block from the privileged node,
The privileged node is
A transaction receiving unit for receiving transaction data from the normal node,
A block generation unit that generates a signature value based on the secret key and generates the block as a data set including the transaction data and the signature value;
A block transmission unit for transmitting the block to the trading network,
The transaction management unit of the normal node is
A block chain system, wherein the received block is connected to the block chain on condition that the authenticity of the signature value of the block received from the privileged node has been confirmed by the public key.
前記特権ノードにおいて、
前記取引受信部は、1以上の通常ノードから受信した取引データを所定の記憶領域に蓄積し、
前記ブロック生成部は、前記記憶領域に蓄積された取引データを定期的に読み出し、前記読み出した取引データと署名値を含むブロックを生成することを特徴とする請求項1に記載のブロックチェーンシステム。
In the privileged node,
The transaction receiving unit stores transaction data received from one or more ordinary nodes in a predetermined storage area,
The block chain system according to claim 1, wherein the block generation unit periodically reads the transaction data accumulated in the storage area and generates a block including the read transaction data and a signature value.
前記特権ノードにおいて、
前記ブロック生成部は、前記記憶領域に蓄積された取引データの総データ量に関わらず、前記記憶領域から取引データをまとめて定期的に読み出し、前記読み出した取引データと署名値を含む可変サイズのブロックを生成することを特徴とする請求項2に記載のブロックチェーンシステム。
In the privileged node,
The block generation unit reads transaction data collectively and periodically from the storage area regardless of the total amount of transaction data accumulated in the storage area, and has a variable size including the read transaction data and a signature value. The block chain system according to claim 2, wherein the block is generated.
前記特権ノードにおいて、
前記取引受信部は、1以上の通常ノードから受信した取引データを所定の記憶領域に蓄積し、
前記ブロック生成部は、読み出しのタイミングにおいて前記記憶領域に蓄積される取引データの総データ量が所定の閾値以下のときにはブロックの形成をスキップすることを特徴とする請求項2に記載のブロックチェーンシステム。
In the privileged node,
The transaction receiving unit stores transaction data received from one or more ordinary nodes in a predetermined storage area,
The block chain system according to claim 2, wherein the block generation unit skips block formation when the total amount of transaction data accumulated in the storage area at a read timing is less than or equal to a predetermined threshold value. ..
前記特権ノードにおいて、
前記取引受信部は、1以上の通常ノードから受信した取引データを所定の記憶領域に蓄積し、
前記ブロック生成部は、前記記憶領域から取引データを読み出し、前記読み出した取引データと署名値を含むブロックを生成し、かつ、ブロック生成のタイミングを取引の活発度に応じて調整することを特徴とする請求項1に記載のブロックチェーンシステム。
In the privileged node,
The transaction receiving unit stores transaction data received from one or more ordinary nodes in a predetermined storage area,
The block generation unit reads transaction data from the storage area, generates a block including the read transaction data and a signature value, and adjusts the timing of block generation according to the activity level of the transaction. The block chain system according to claim 1.
前記取引ネットワークは、公開型の通信回線により形成され、
前記特権ノードは、前記取引ネットワークに対して非公開型の通信回線により接続されることを特徴とする請求項1から5のいずれかに記載のブロックチェーンシステム。
The transaction network is formed by an open communication line,
The blockchain system according to any one of claims 1 to 5, wherein the privileged node is connected to the transaction network by a non-public communication line.
前記秘密鍵は、暗号化された状態で所定の記憶領域に保存されており、
前記特権ノードにおいて、
前記ブロック生成部は、ブロックの生成に際して前記記憶領域から前記秘密鍵をメモリに読み出して復号した上で前記署名値を生成し、前記ブロックの生成後に前記秘密鍵をメモリから削除することを特徴とする請求項1から6のいずれかに記載のブロックチェーンシステム。
The private key is stored in a predetermined storage area in an encrypted state,
In the privileged node,
When the block is generated, the block generation unit reads the secret key from the storage area into a memory, decrypts the secret key, generates the signature value, and deletes the secret key from the memory after generating the block. The block chain system according to any one of claims 1 to 6.
前記秘密鍵は、複数パーツに分割された状態で複数の記憶領域に分けて保存されており、
前記特権ノードにおいて、
前記ブロック生成部は、ブロックの生成に際して前記複数の記憶領域それぞれから前記秘密鍵のパーツをメモリに読み出して前記秘密鍵を合成した上で前記署名値を生成し、前記ブロックの生成後に前記秘密鍵をメモリから削除することを特徴とする請求項1から6のいずれかに記載のブロックチェーンシステム。
The secret key is divided into a plurality of parts and stored in a plurality of storage areas,
In the privileged node,
When generating a block, the block generation unit reads the parts of the secret key from each of the plurality of storage areas into a memory, synthesizes the secret key, and then generates the signature value. After the block is generated, the secret key is generated. 7. The block chain system according to claim 1, wherein the block chain system is deleted from the memory.
特権ノードは、更に、
所定の変更条件が成立したとき、前記秘密鍵を変更する鍵変更部と、
変更後の秘密鍵に対応する公開鍵を前記取引ネットワークに送信する鍵送信部と、を更に備えることを特徴とする請求項1から8のいずれかに記載のブロックチェーンシステム。
Privileged nodes also
A key changing unit that changes the secret key when a predetermined changing condition is satisfied;
9. The block chain system according to claim 1, further comprising a key transmission unit that transmits a public key corresponding to the changed private key to the transaction network.
複数の通常ノードを含む取引ネットワークと接続され、
前記通常ノードは、当該サーバの秘密鍵に対応する公開鍵をあらかじめ保有しており、かつ、仮想通貨による商取引の履歴をブロックチェーンとして管理する通信端末であって、
前記通常ノードから、仮想通貨による商取引の結果を示す取引データを受信する取引受信部と、
前記秘密鍵に基づいて署名値を生成し、前記取引データと前記署名値を含むデータセットとしてブロックを生成するブロック生成部と、
前記ブロックを前記取引ネットワークに送信するブロック送信部と、を備えることを特徴とするサーバ。
Connected to a trading network containing multiple regular nodes,
The normal node is a communication terminal that holds a public key corresponding to the private key of the server in advance, and that manages the history of commercial transactions using virtual currencies as a block chain,
From the normal node, a transaction receiving unit that receives transaction data indicating the result of a commercial transaction using virtual currency,
A block generation unit that generates a signature value based on the secret key and generates a block as a data set including the transaction data and the signature value;
A block transmission unit that transmits the block to the transaction network.
通常ノードから、仮想通貨による商取引の結果を示す取引データを受信する機能と、
秘密鍵に基づいて署名値を生成し、前記取引データと前記署名値を含むデータセットとしてブロックを生成する機能と、
前記ブロックを複数の通常ノードを含む取引ネットワークに送信する機能と、を特権ノードにおいて発揮させる第1プログラムと、
取引データを前記特権ノードに送信する機能と、
前記特権ノードからブロックを受信する機能と、
受信したブロックの署名値の真正性を前記秘密鍵に対応する公開鍵により確認する機能と、
前記ブロックの真正性が確認できたことを条件として、ブロックチェーンに前記受信したブロックを連結する機能と、を前記通常ノードに発揮させる第2プログラムと、を含むブロックチェーン管理プログラム。
A function to receive transaction data showing the result of a commercial transaction with virtual currency from a normal node,
A function of generating a signature value based on a private key, and generating a block as a data set including the transaction data and the signature value,
A first program for causing a privileged node to exert a function of transmitting the block to a trading network including a plurality of ordinary nodes;
The ability to send transaction data to the privileged node,
The ability to receive blocks from the privileged node,
A function of confirming the authenticity of the signature value of the received block by the public key corresponding to the secret key,
A blockchain management program including a second program that causes the normal node to exhibit the function of connecting the received block to a blockchain on condition that the authenticity of the block has been confirmed.
JP2019209556A 2019-11-20 2019-11-20 Block chain system and server Pending JP2020088864A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019209556A JP2020088864A (en) 2019-11-20 2019-11-20 Block chain system and server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019209556A JP2020088864A (en) 2019-11-20 2019-11-20 Block chain system and server

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018213408A Division JP6838260B2 (en) 2018-11-14 2018-11-14 Blockchain control method

Publications (1)

Publication Number Publication Date
JP2020088864A true JP2020088864A (en) 2020-06-04

Family

ID=70909208

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019209556A Pending JP2020088864A (en) 2019-11-20 2019-11-20 Block chain system and server

Country Status (1)

Country Link
JP (1) JP2020088864A (en)

Similar Documents

Publication Publication Date Title
JP6838260B2 (en) Blockchain control method
Lokhava et al. Fast and secure global payments with stellar
CN109219940B (en) Private node and processing method in private node
Baird et al. Hedera: A public hashgraph network & governing council
CN108764870B (en) Transaction processing method and device based on block chain and electronic equipment
CN109313763B (en) Hierarchical network system and node for hierarchical network system
JP6355168B2 (en) Block chain generation device, block chain generation method, block chain verification device, block chain verification method and program
JP6358658B2 (en) Block chain generation device, block chain generation method, block chain verification device, block chain verification method and program
CN109314643B (en) Transaction processing device and transaction processing method
US20200067697A1 (en) Method for operating a blockchain
CN107171785A (en) A kind of digital copyright management method based on block chain technology
JP2020068388A (en) Content contract system, content contract method, right holder terminal, assignee terminal, control terminal, content storage server, right holder program, assignee program, control program, and content storage program
JP2020528689A (en) Event lock encryption methods and systems implemented on the blockchain
US11496327B1 (en) Secure and trustworthy bridge for transferring assets across different networks
US11836714B2 (en) Secure and trustworthy bridge for transferring assets across networks with different data architecture
CN116670701A (en) Distributed ledger network implementing synchronous trust consensus model
KR102302351B1 (en) Blockchain system that includes bank nodes each having separate ledgers for identity, digital currency and other functions, and operation method thereof
KR20220133221A (en) Systems and methods for secure peer-to-peer transport of content in distributed ledger networks
JP2020088864A (en) Block chain system and server
CN110688651A (en) Method and device for realizing state updating based on FPGA
US11985262B2 (en) Secure and trustworthy bridge for transferring assets across different networks
Lee et al. RouTEE: A secure payment network routing hub using trusted execution environments
Ahola Implementing Ethereum blockchain to RGCE cyber range
CN117077195A (en) Web3.0 data privacy protection method, system and equipment based on distributed storage network