JP2019096987A - Block chain generation system, block chain generation method, and block chain generation program - Google Patents
Block chain generation system, block chain generation method, and block chain generation program Download PDFInfo
- Publication number
- JP2019096987A JP2019096987A JP2017223516A JP2017223516A JP2019096987A JP 2019096987 A JP2019096987 A JP 2019096987A JP 2017223516 A JP2017223516 A JP 2017223516A JP 2017223516 A JP2017223516 A JP 2017223516A JP 2019096987 A JP2019096987 A JP 2019096987A
- Authority
- JP
- Japan
- Prior art keywords
- block
- block chain
- hash value
- generation device
- chain
- 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
Images
Abstract
Description
本発明は、ブロックチェーン生成システム、ブロックチェーン生成方法、およびブロックチェーン生成プログラムに関する。 The present invention relates to a block chain generation system, a block chain generation method, and a block chain generation program.
従来、ある時間間隔で、データをまとめたブロックを生成し、生成したブロックを連結していくことにより、データを管理するブロックチェーン(Blockchain)と呼ばれるリストを作成する技術がある。ブロックチェーンは、例えば、何らかの組織ごとに生成され、何らかの組織内の1以上のノードは、同一のブロックチェーンを共通して記憶する。 2. Description of the Related Art Conventionally, there is a technique of creating a block in which data is grouped at a certain time interval, and linking the generated blocks to create a list called a block chain that manages data. The block chain is generated, for example, for every organization, and one or more nodes in any organization store the same block chain in common.
先行技術としては、例えば、クライアント端末によりP2P仮想通貨ネットワークに投入された取引データから、コンテンツの利用に要する仮想通貨の価額の支払いを確認できた場合、クライアント端末のユーザに対してコンテンツの利用を許可するものがある。また、例えば、オンライン取引におけるトランザクションイベントを検出し、トランザクションイベントのそれぞれに関連する取引情報を記録する技術がある。また、例えば、仮想通貨を第1のユーザに送金する第1の取引により送金された金額の少なくとも一部を第1のユーザが送金する第2の取引の正当性を検証する技術がある。 As prior art, for example, when payment of the value of the virtual currency required for use of the content can be confirmed from the transaction data input to the P2P virtual currency network by the client terminal, the use of the content is made available to the user of the client terminal. There is something to allow. Also, for example, there is a technique of detecting transaction events in an online transaction, and recording transaction information associated with each of the transaction events. Also, for example, there is a technique for verifying the legitimacy of the second transaction in which the first user remits at least a portion of the amount of money transferred in the first transaction in which the virtual currency is remitted to the first user.
しかしながら、従来技術では、複数の組織が合併する際、合併した後の複数の組織の状態に合わせて、それぞれの組織で生成されたブロックチェーンを管理することが難しい。例えば、複数の組織が合併する際、それぞれの組織におけるブロックチェーンを所定のアプリケーションで一括して管理する場合が考えられるが、アプリケーションを導入するコストがかかり、アプリケーションがセキュリティ上の脆弱性になりうる。 However, in the prior art, when a plurality of organizations merge, it is difficult to manage the block chain generated in each organization according to the state of the plurality of organizations after the merger. For example, when a plurality of organizations merge, it is conceivable that block chains in each organization are collectively managed by a predetermined application, but it is costly to introduce an application, and the application may be a security vulnerability. .
1つの側面では、本発明は、複数のブロックチェーンを管理しやすくすることができるブロックチェーン生成システム、ブロックチェーン生成方法、およびブロックチェーン生成プログラムを提供することを目的とする。 In one aspect, the present invention aims to provide a block chain generation system, a block chain generation method, and a block chain generation program capable of facilitating management of a plurality of block chains.
1つの実施態様によれば、1以上のブロックを連結する第1のブロックチェーンと第2のブロックチェーンのうち前記第1のブロックチェーンに対して、前記第1のブロックチェーンの最新のブロックに対応する第1のハッシュ値と、前記第2のブロックチェーンの最新のブロックに対応する第2のハッシュ値とを有する中間ブロックを追加し、前記第1のブロックチェーンに追加された中間ブロックが有する第1のハッシュ値と第2のハッシュ値とに基づき、前記第1および前記第2のブロックチェーンに共通する第3のハッシュ値を算出可能な関数を用いて、前記第1のブロックチェーンに対して、前記第3のハッシュ値を有するブロックを追加するブロックチェーン生成システム、ブロックチェーン生成方法、およびブロックチェーン生成プログラムが提案される。 According to one embodiment, the first block chain of the first block chain and the second block chain connecting one or more blocks corresponds to the latest block of the first block chain. Adding an intermediate block having a first hash value and a second hash value corresponding to the latest block of the second block chain, and the intermediate block added to the first block chain includes: The first block chain is calculated using a function capable of calculating a third hash value common to the first and second block chains based on the first hash value and the second hash value. , A block chain generation system for adding a block having the third hash value, a block chain generation method, and a block chain Formation program is proposed.
一態様によれば、複数のブロックチェーンを管理しやすくすることが可能になる。 According to one aspect, it is possible to facilitate management of a plurality of block chains.
以下に、図面を参照して、本発明にかかるブロックチェーン生成システム、ブロックチェーン生成方法、および、ブロックチェーン生成プログラムの実施の形態を詳細に説明する。 Hereinafter, embodiments of a block chain generation system, a block chain generation method, and a block chain generation program according to the present invention will be described in detail with reference to the drawings.
(実施の形態にかかるブロックチェーン生成方法の一実施例)
図1は、実施の形態にかかるブロックチェーン生成方法の一実施例を示す説明図である。ブロックチェーン生成装置100は、ブロックチェーンを管理するコンピュータである。
(One Example of Block Chain Generation Method According to Embodiment)
FIG. 1 is an explanatory view showing an example of a block chain generation method according to the embodiment. The block
ブロックチェーンは、データを管理するためのリストである。ブロックチェーンは、1以上のブロックを連結させたリストである。ブロックチェーンは、例えば、何らかの組織において生成され、記憶される。何らかの組織内の1以上のノードは、同一のブロックチェーンを共通して記憶し、管理する。ブロックは、1以上のデータをまとめたデータ集合である。 A block chain is a list for managing data. A block chain is a linked list of one or more blocks. The block chain is generated and stored, for example, in some organization. One or more nodes in any organization store and manage the same block chain in common. A block is a data set that combines one or more pieces of data.
ここで、複数の組織のそれぞれの組織においてブロックチェーンが記憶されている状況において、複数の組織を合併しようとする場合がある。この場合、合併した後の複数の組織の状態に合うように、それぞれの組織におけるブロックチェーンを管理することが望まれる。 Here, in a situation where block chains are stored in each organization of a plurality of organizations, it may be attempted to merge a plurality of organizations. In this case, it is desirable to manage block chains in each organization so as to match the state of multiple organizations after merger.
例えば、複数の組織が合併した後では、それぞれの組織におけるブロックチェーンに、同一のブロックが追加されていくように、それぞれの組織において生成されているブロックチェーンを管理しようとする要望がある。換言すれば、複数の組織が合併した後では、それぞれの組織におけるブロックチェーンを、組織間で共通化しようとする要望がある。 For example, after a plurality of organizations merge, there is a demand to manage block chains generated in each organization so that the same block is added to block chains in each organization. In other words, after a plurality of organizations merge, there is a demand to make the block chain in each organization common among the organizations.
一方で、複数の組織が合併する前に、いずれかの組織におけるブロックチェーンに追加されていたブロックについては、複数の組織が合併した後でも、他の組織から参照されないようにしようとする要望がある。しかしながら、合併した後の複数の組織の状態に合わせて、上述した要望を満たすように、それぞれの組織におけるブロックチェーンを管理することは難しい。 On the other hand, there is a demand for blocks that have been added to a block chain in one organization prior to the merger of multiple organizations to be prevented from being referenced by other organizations even after the merger of the multiple organizations. is there. However, it is difficult to manage block chains in each organization so as to meet the above-mentioned needs in accordance with the state of multiple organizations after merger.
例えば、複数の組織が合併する際、それぞれの組織におけるブロックチェーンを、所定のアプリケーションで監視し、所定のアプリケーションで一括して管理する場合が考えられる。この場合、アプリケーションを導入し、運用するコストがかかり、アプリケーションがセキュリティ上の脆弱性になりうる。 For example, when a plurality of organizations merge, it is conceivable that a block chain in each organization is monitored by a predetermined application and collectively managed by the predetermined application. In this case, it is costly to introduce and operate the application, and the application may be a security vulnerability.
具体的には、所定のアプリケーションが、複数の組織が合併する前にブロックチェーンに追加されたブロックについて、それぞれの組織からのアクセスの制限を管理することになる。また、所定のアプリケーションが、合併時のブロックの正当性を保証することになる。このため、所定のアプリケーションのセキュリティを強化することが好ましく、所定のアプリケーションの運用にかかるコストの増大化を招く。 Specifically, a predetermined application will manage the restriction of access from each organization with respect to the block added to the block chain before the plurality of organizations merge. Also, a given application will guarantee the legitimacy of the block upon merger. For this reason, it is preferable to strengthen the security of a predetermined application, which leads to an increase in the cost of operating the predetermined application.
そこで、本実施の形態では、ブロックチェーンの仕組みを利用し、所定のタイミング以降には、それぞれの組織におけるブロックチェーンに、同一のブロックが追加されていくようにすることができるブロックチェーン生成方法について説明する。これによれば、ブロックチェーン生成方法は、合併した後の複数の組織の状態に合わせて、それぞれの組織におけるブロックチェーンを管理しやすくすることができる。 Therefore, in the present embodiment, a block chain generation method capable of causing the same block to be added to the block chain in each organization after a predetermined timing by using a block chain mechanism. explain. According to this, the block chain generation method can make it easy to manage the block chain in each organization according to the state of a plurality of organizations after the merger.
図1の例では、2つの組織においてブロックチェーンが記憶されている。具体的には、組織Aにおいては、ブロックチェーン110が記憶されている。ブロックチェーン110は、ブロック111,112を含む。組織Bにおいては、ブロックチェーン120が記憶されている。ブロックチェーン120は、ブロック121,122を含む。
In the example of FIG. 1, block chains are stored in two organizations. Specifically, in the organization A, the
ブロックチェーン生成装置100は、組織ごとに1以上含まれる。ブロックチェーン生成装置100は、いずれかの組織内のノードとして、いずれかの組織におけるブロックチェーンを管理する。以下の説明では、ブロックチェーン生成装置100が、組織A内のノードとして、組織Aにおけるブロックチェーン110を管理する場合について説明する。
One or more block
ブロックチェーン生成装置100は、自装置が管理するブロックチェーンの最新のブロックに対応する第1のハッシュ値を取得する。最新のブロックに対応する第1のハッシュ値は、例えば、最新のブロックを所定の関数に代入することにより算出される、最新のブロックを示すハッシュ値である。最新のブロックに対応する第1のハッシュ値は、例えば、最新のブロックに設定されたハッシュ値をコピーしたハッシュ値であってもよい。ブロックチェーン生成装置100は、例えば、ブロックチェーン110の最新のブロック112に設定された第1のハッシュ値を取得する。
The block
また、ブロックチェーン生成装置100は、自装置が管理するブロックチェーン以外の、他装置が管理するブロックチェーンの最新のブロックに対応する第2のハッシュ値を取得する。最新のブロックに対応する第2のハッシュ値は、例えば、最新のブロックを所定の関数に代入することにより算出される、最新のブロックを示すハッシュ値である。最新のブロックに対応する第2のハッシュ値は、例えば、最新のブロックに設定されたハッシュ値をコピーしたハッシュ値であってもよい。ブロックチェーン生成装置100は、例えば、ブロックチェーン120の最新のブロック122に設定された第2のハッシュ値を、他装置から受信する。
Also, the block
そして、ブロックチェーン生成装置100は、自装置が管理するブロックチェーンについて、第1のハッシュ値と、第2のハッシュ値とを有する中間ブロックを追加する。ブロックチェーン生成装置100は、例えば、ブロックチェーン110について、取得した第1のハッシュ値と、受信した第2のハッシュ値とを有する中間ブロック113を追加する。一方で、他装置も、同様に、ブロックチェーン120について、中間ブロック123を追加する。
Then, the block
次に、ブロックチェーン生成装置100は、自装置が管理するブロックチェーンに追加された中間ブロックが有する第1のハッシュ値と第2のハッシュ値とに基づき、所定の関数を用いて、第3のハッシュ値を算出する。所定の関数は、複数のブロックチェーンに共通する第3のハッシュ値を算出可能な関数である。
Next, the block
そして、ブロックチェーン生成装置100は、自装置が管理するブロックチェーンについて、第3のハッシュ値を有するブロックを追加する。ブロックチェーン生成装置100は、例えば、ブロックチェーン110について、ブロックチェーン110,120で共通する第3のハッシュ値を有するブロック114を追加する。一方で、他装置も、同様に、ブロックチェーン120について、ブロックチェーン110,120で共通する第3のハッシュ値を有するブロック124を追加する。
Then, the block
これにより、ブロックチェーン生成装置100は、所定の関数により、複数のブロックチェーンに共通する第3のハッシュ値が算出されるように、自装置が管理するブロックチェーンに、中間ブロックを追加することができる。そして、ブロックチェーン生成装置100は、自装置が管理するブロックチェーンに、複数のブロックチェーンに共通する第3のハッシュ値を有するブロックを追加することができる。結果として、それぞれのブロックチェーンに、中間ブロックの次に追加されるブロックが一致することになる。
Thereby, the block
このため、以降では、それぞれのブロックチェーンに、同一のブロックが追加されていくようになり、ブロックチェーン生成装置100は、ブロックチェーンの仕組みを利用して、複数のブロックチェーンを組織間で共通化することができる。このように、ブロックチェーン生成装置100は、自装置が管理するブロックチェーンを、合併した複数の組織の状態に合うように管理することができる。また、ブロックチェーン生成装置100は、ブロックチェーンの仕組みを利用して、合併前後でのブロックの整合性を保証することができる。
Therefore, in the following, the same block is added to each block chain, and the block
ブロックチェーン生成装置100は、自装置が管理するブロックチェーンについて、中間ブロック、および、中間ブロックに基づき生成された中間ブロックの次のブロックなどのような、特殊なブロックを残しておくことができる。このため、ブロックチェーン生成装置100は、後々、自装置が管理するブロックチェーンを共通化したタイミングを判別可能にすることができる。
The block
一方で、ブロックチェーン生成装置100は、自装置が管理するブロックチェーンに、中間ブロックより前に追加されていたブロックについては、自装置で記憶しておけばよく、他装置に参照させなくてもよい。このため、ブロックチェーン生成装置100は、自装置が管理するブロックチェーンに、中間ブロックより前に追加されていたブロックに含まれる取引情報や個人情報や社外秘情報などがあれば保護することができ、セキュリティの向上を図ることができる。
On the other hand, the block
また、ブロックチェーン生成装置100は、それぞれのブロックチェーンを管理するアプリケーションなどを導入しなくてもよく、アプリケーションの導入や運用による、人的または金銭的なコストの増大化を抑制することができる。また、ブロックチェーン生成装置100は、アプリケーションがセキュリティ上の脆弱性になることがないため、セキュリティの向上を図ることができる。
Further, the block
(ブロックチェーン生成システム200の一例)
次に、図2を用いて、図1に示したブロックチェーン生成装置100を適用した、ブロックチェーン生成システム200の一例について説明する。
(Example of block chain generation system 200)
Next, an example of a block
図2は、ブロックチェーン生成システム200の一例を示す説明図である。図2において、ブロックチェーン生成システム200は、第1の組織における1以上のノード201と、第2の組織における1以上のノード202とを含む。
FIG. 2 is an explanatory view showing an example of the block
第1の組織において、1以上のノード201は、有線または無線のネットワーク211を介して接続される。ネットワーク211は、例えば、LAN(Local Area Network)やWAN(Wide Area Network)などである。
In the first organization, one or
第2の組織において、1以上のノード202は、有線または無線のネットワーク212を介して接続される。ネットワーク212は、例えば、LANやWANなどである。
In the second organization, one or
ブロックチェーン生成システム200において、第1の組織における1以上のノード201と、第2の組織における1以上のノード202とは、第1の組織と第2の組織が合併したことに応じて、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、インターネットなどである。
In the block
ノード201は、第1の組織におけるブロックチェーンを管理するコンピュータである。ノード201は、図1に示したブロックチェーン生成装置100によって実現される。ノード201は、例えば、サーバ、PC(Personal Computer)、タブレット端末、スマートフォン、ウェアラブル端末などである。
The
ノード202は、第2の組織におけるブロックチェーンを管理するコンピュータである。ノード202は、図1に示したブロックチェーン生成装置100によって実現される。ノード202は、例えば、サーバ、PC、タブレット端末、スマートフォン、ウェアラブル端末などである。
The
(ブロックチェーン生成装置100のハードウェア構成例)
次に、図3を用いて、ブロックチェーン生成装置100のハードウェア構成例について説明する。
(Hardware configuration example of block chain generation device 100)
Next, a hardware configuration example of the block
図3は、ブロックチェーン生成装置100のハードウェア構成例を示すブロック図である。図3において、ブロックチェーン生成装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
FIG. 3 is a block diagram showing an example of the hardware configuration of the block
ここで、CPU301は、ブロックチェーン生成装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。メモリ302は、例えば、ブロックチェーンを記憶する。
Here, the
ネットワークI/F303は、通信回線を通じて、ネットワーク210,211,212などに接続され、ネットワーク210,211,212などを介して、他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク210,211,212などと内部とのインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303には、例えば、モデムやLANアダプタなどを採用することができる。
The network I /
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、ブロックチェーン生成装置100から着脱可能であってもよい。
The recording medium I /
ブロックチェーン生成装置100は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、ブロックチェーン生成装置100は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、ブロックチェーン生成装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
The block
(ブロック400の記憶内容)
次に、図4を用いてブロックチェーンに含まれるブロックの一例として、ブロック400の記憶内容について説明する。ブロック400は、例えば、図3に示したブロックチェーン生成装置100のメモリ302や記録媒体305などの記憶領域により実現される。
(Memory content of block 400)
Next, the storage contents of the
図4は、ブロック400の記憶内容の一例を示す説明図である。図4に示すように、ブロック400は、直前ハッシュ値と、ナンス(Nonce)と、取引IDリストとのフィールドを有する。ブロック400は、各フィールドに情報を設定することにより、生成される。
FIG. 4 is an explanatory diagram of an example of the storage content of the
直前ハッシュ値のフィールドには、ブロック400の直前にブロックチェーンに追加された直前ブロックに対応するハッシュ値が設定される。直前ブロックに対応するハッシュ値は、例えば、直前ブロックを所定の関数に代入することにより算出される、直前ブロックを示すハッシュ値である。ナンスのフィールドには、ナンスと呼ばれる、自由に設定可能な値が設定される。取引IDリストのフィールドには、過去の取引(transaction)に関する情報が設定される。取引に関する情報は、例えば、取引を特定するIDである。
In the field of the immediately preceding hash value, a hash value corresponding to the immediately preceding block added to the block chain immediately before the
(ブロックチェーン生成システム200の機能的構成例)
次に、ブロックチェーン生成システム200の機能的構成例について説明する。ブロックチェーン生成システム200は、第1追加部と、第2追加部とを有する。
(Example of functional configuration of block chain generation system 200)
Next, a functional configuration example of the block
第1追加部は、複数のブロックチェーンそれぞれに中間ブロックを追加する。第1追加部は、例えば、第1の組織における1以上のノード201を実現するブロックチェーン生成装置100の図5に示す各機能部と、第2の組織における1以上のノード202を実現するブロックチェーン生成装置100の図5に示す各機能部とによって実現される。
The first adding unit adds an intermediate block to each of the plurality of block chains. The first addition unit is, for example, a block that implements each functional unit shown in FIG. 5 of the block
第2追加部は、複数のブロックチェーンそれぞれに共通する第3のハッシュ値を有するブロックを、複数のブロックチェーンそれぞれに追加する。第2追加部は、例えば、第1の組織における1以上のノード201を実現するブロックチェーン生成装置100の図5に示す各機能部と、第2の組織における1以上のノード202を実現するブロックチェーン生成装置100の図5に示す各機能部とによって実現される。
The second adding unit adds a block having a third hash value common to each of the plurality of block chains to each of the plurality of block chains. The second addition unit is, for example, a block that implements each functional unit shown in FIG. 5 of the block
(ブロックチェーン生成装置100の機能的構成例)
次に、図5を用いて、ブロックチェーン生成装置100の機能的構成例について説明する。
(Example of functional configuration of block chain generation device 100)
Next, a functional configuration example of the block
図5は、ブロックチェーン生成装置100の機能的構成例を示すブロック図である。ブロックチェーン生成装置100は、記憶部500と、取得部501と、追加部502と、出力部503とを含む。
FIG. 5 is a block diagram showing an example of a functional configuration of the block
記憶部500は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、記憶部500が、ブロックチェーン生成装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部500が、ブロックチェーン生成装置100とは異なる装置に含まれ、記憶部500の記憶内容がブロックチェーン生成装置100から参照可能である場合があってもよい。
The
取得部501〜出力部503は、制御部となる機能である。取得部501〜出力部503は、具体的には、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
The
記憶部500は、ブロックチェーンを記憶する。ブロックチェーンは、1以上のブロックを連結したリストである。ブロックは、データをまとめたデータ集合である。ブロックの一例は、図4に示したブロック400である。ブロックは、複数の項目を有する。ブロックは、例えば、第1の項目と、第2の項目とを有する。ブロックが有する第1の項目は、例えば、ブロックの直前に連結されたブロックを示すハッシュ値が設定される、直前ハッシュ値の項目である。また、第1の項目は、ナンスの項目、または、取引IDリストの項目であってもよい。ブロックが有する第2の項目は、例えば、ナンスの項目である。また、第2の項目は、直前ハッシュ値の項目、または、取引IDリストの項目であってもよい。これにより、記憶部500は、ブロックチェーンを参照可能にすることができる。
The
また、記憶部500は、各機能部の処理に用いられる各種情報を記憶する。記憶部500は、例えば、所定の関数を記憶する。所定の関数は、ブロックに基づき、ブロックを示すハッシュ値を算出するハッシュ関数である。所定の関数は、例えば、ブロックが有する複数の項目の値に基づき、第3のハッシュ値を算出する関数である。所定の関数は、具体的には、ブロックが有する複数の項目のうち第1の項目の値と第2の項目の値とが入れ替わっても、算出される第3のハッシュ値が同一になる関数である。これにより、記憶部500は、各機能部の処理に用いられる各種情報を、各機能部に参照可能にすることができる。
The
取得部501は、自装置が管理するブロックチェーンの最新のブロックに対応するハッシュ値を取得する。最新のブロックに対応するハッシュ値は、例えば、最新のブロックに設定されたハッシュ値をコピーしたハッシュ値である。最新のブロックに対応するハッシュ値は、例えば、最新のブロックを所定の関数に代入することにより算出された、最新のブロックを示すハッシュ値である。取得部501は、例えば、自装置が管理するブロックチェーンの最新のブロックに対応するハッシュ値を自装置で算出しない場合に、自装置が管理するブロックチェーンの最新のブロックに対応するハッシュ値を、他装置から受信する。これにより、取得部501は、中間ブロックの生成に用いる情報を取得し、追加部502に提供することができる。
The
取得部501は、他装置が管理するブロックチェーンの最新のブロックに対応するハッシュ値を取得する。最新のブロックに対応するハッシュ値は、例えば、最新のブロックに設定されたハッシュ値をコピーしたハッシュ値である。最新のブロックに対応するハッシュ値は、例えば、最新のブロックを所定の関数に代入することにより算出された、最新のブロックを示すハッシュ値である。取得部501は、他装置が管理するブロックチェーンの最新のブロックに対応するハッシュ値を、他装置から受信する。これにより、取得部501は、中間ブロックの生成に用いる情報を取得し、追加部502に提供することができる。
The
追加部502は、自装置が管理するブロックチェーンについて、中間ブロックを追加する。ここで、複数のブロックチェーンのそれぞれのブロックチェーンに追加される中間ブロックは、同一でなくてもよいが、所定の関数に代入された場合には、所定の関数から算出される第3のハッシュ値を同一にすることができる。
The adding
自装置が管理するブロックチェーンに追加される中間ブロックは、例えば、自装置が管理するブロックチェーンの最新のブロックに対応する第1のハッシュ値と、他装置が管理するブロックチェーンの最新のブロックに対応する第2のハッシュ値とを有する。自装置が管理するブロックチェーンに追加される中間ブロックは、例えば、第1のハッシュ値が第1の項目の値に設定され、第2のハッシュ値が第2の項目の値に設定される。 The intermediate block added to the block chain managed by the own device is, for example, the first hash value corresponding to the latest block of the block chain managed by the own device and the latest block of the block chain managed by another device And a corresponding second hash value. For example, the first hash value is set to the value of the first item, and the second hash value is set to the value of the second item for the intermediate block added to the block chain managed by the own device.
中間ブロックは、具体的には、第1のハッシュ値が、直前ハッシュ値の項目の値に設定され、第2のハッシュ値が、ナンスの項目の値に設定される。また、中間ブロックは、具体的には、第1のハッシュ値が、直前ハッシュ値の項目の値に設定され、第2のハッシュ値が、取引IDリストの項目の値に設定されてもよい。また、中間ブロックは、具体的には、第1のハッシュ値が、ナンスの項目の値に設定され、第2のハッシュ値が、取引IDリストの項目の値に設定されてもよい。 Specifically, in the intermediate block, the first hash value is set to the value of the immediately preceding hash value item, and the second hash value is set to the nonce item value. Moreover, specifically, the first hash value may be set to the value of the item of the immediately preceding hash value, and the second hash value may be set to the value of the item of the transaction ID list. Moreover, specifically, the first hash value may be set to the value of the item of the nonce, and the second hash value may be set to the value of the item of the transaction ID list.
追加部502は、具体的には、自装置が管理するブロックチェーンの最新のブロックに設定された第1のハッシュ値と、他装置が管理するブロックチェーンの最新のブロックに設定された第2のハッシュ値とを有する中間ブロックを追加する。追加部502は、図7〜図18に後述する動作例1、または、図20に後述する動作例2などのように、自装置が管理するブロックチェーンについて、中間ブロックを追加する。これにより、追加部502は、算出済みのハッシュ値を利用し、処理量の低減化を図ることができる。
More specifically, the adding
追加部502は、具体的には、自装置が管理するブロックチェーンの最新のブロックを示す第1のハッシュ値と、他装置が管理するブロックチェーンの最新のブロックを示す第2のハッシュ値とを有する中間ブロックを追加してもよい。追加部502は、図21および図22に後述する動作例3などのように、自装置が管理するブロックチェーンについて、中間ブロックを追加する。これにより、追加部502は、第1のハッシュ値に基づいて、自装置が管理するブロックチェーンに中間ブロックの直前に追加されたブロックの改ざんの有無を判定可能にすることができる。また、追加部502は、第2のハッシュ値に基づいて、他装置が管理するブロックチェーンに中間ブロックの直前に追加されたブロックの改ざんの有無を判定可能にすることができる。
Specifically, the adding
追加部502は、中間ブロックを追加した後、自装置が管理するブロックチェーンについて、共通ブロックを追加する。共通ブロックは、それぞれのブロックチェーンに共通して追加されるブロックである。共通ブロックは、第3のハッシュ値を有する。共通ブロックは、第3のハッシュ値を、第1の項目の値に設定される。第3のハッシュ値は、中間ブロックを示すハッシュ値である。
After adding the intermediate block, the adding
追加部502は、例えば、自装置が管理するブロックチェーンに追加された中間ブロックが有する第1のハッシュ値と第2のハッシュ値とに基づき、所定の関数を用いて、第3のハッシュ値を算出する。そして、追加部502は、自装置が管理するブロックチェーンについて、第3のハッシュ値を有する共通ブロックを追加する。これにより、追加部502は、以降、それぞれのブロックチェーンに同一のブロックが追加されていくようにすることができ、複数のブロックチェーンを共通化することができる。
The adding
追加部502は、例えば、第3のハッシュ値のほか、それぞれのブロックチェーンに中間ブロックの直前に追加されたブロックを示す第4のハッシュ値を算出してもよい。そして、追加部502は、自装置が管理するブロックチェーンについて、第3のハッシュ値のほか、第4のハッシュ値をさらに有する共通ブロックを追加する。これにより、追加部502は、第4のハッシュ値に基づいて、それぞれのブロックチェーンに中間ブロックの直前に追加されたブロックの改ざんの有無を判定可能にすることができる。
The adding
出力部503は、各機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。これにより、出力部503は、各機能部の処理結果を利用者に通知可能にし、ブロックチェーン生成装置100の管理や運用、例えば、ブロックチェーン生成装置100の設定値の更新などを支援することができる。そして、出力部503は、ブロックチェーン生成装置100の利便性の向上を図ることができる。
The
ここでは、ブロックチェーン生成装置100が、単独で、各機能部を実現する場合について説明したが、これに限らない。例えば、図6に後述するように、ブロックチェーン生成システム200において、複数のブロックチェーン生成装置100が、協働して、各機能部を実現する場合があってもよい。
Here, although the case where block
(ブロックチェーン生成システム200の機能的構成例)
次に、図6を用いて、ブロックチェーン生成システム200の機能的構成例について説明する。
(Example of functional configuration of block chain generation system 200)
Next, a functional configuration example of the block
図6は、ブロックチェーン生成システム200の機能的構成例を示すブロック図である。ブロックチェーン生成システム200は、例えば、ハッシュ値算出部601とブロック生成部602とを含むブロックチェーン生成装置100を有する。
FIG. 6 is a block diagram showing a functional configuration example of the block
また、ブロックチェーン生成システム200は、例えば、統合準備部603を含むブロックチェーン生成装置100を有する。また、ブロックチェーン生成システム200は、例えば、統合部604を含むブロックチェーン生成装置100を有する。
Also, the block
ハッシュ値算出部601は、自装置が管理するブロックチェーンに直前に追加されたブロックを示すハッシュ値を算出する。ブロック生成部602は、ハッシュ値算出部601が算出したハッシュ値がハッシュ値の項目の値として設定されたブロックを生成し、自装置が管理するブロックチェーンに追加する。
The hash
統合準備部603は、中間ブロックを生成する。統合準備部603は、自装置のメモリ302に記憶された、自装置が管理するブロックチェーンについて、生成した中間ブロックを追加する。統合準備部603は、追加部502の一部の動作を実現する。統合部604は、共通ブロックを生成する。統合部604は、自装置のメモリ302に記憶された、自装置が管理するブロックチェーンについて、生成した共通ブロックを追加する。統合部604は、追加部502の一部の動作を実現する。
The
(ブロックチェーン生成装置100の動作例1)
次に、図7〜図18を用いて、ブロックチェーン生成装置100の動作例1について説明する。
(Operation example 1 of block chain generation device 100)
Next, an operation example 1 of the block
図7〜図18は、ブロックチェーン生成装置100の動作例1を示す説明図である。図7は、具体的には、複数の組織のそれぞれの組織におけるブロックチェーンを、組織間で共通化しようとする状況の一例を示す。
7 to 18 are explanatory diagrams showing an operation example 1 of the block
図7に示すように、A社においてA社ブロックチェーンが記憶されている。B社においてB社ブロックチェーンが記憶されている。ここで、A社とB社とが、合併や提携する状況において、A社ブロックチェーンとB社ブロックチェーンとを共通化し、AB社ブロックチェーンとして利用しようとする場合がある。 As shown in FIG. 7, the company A block chain is stored in company A. A company B block chain is stored in company B. Here, in a situation where company A and company B merge or associate, there is a case where company A block chain and company B block chain may be shared and used as company AB block chain.
ここで、A社ブロックチェーンとB社ブロックチェーンとを共通化した場合でも、A社従業員が、A社ブロックチェーンと、AB社ブロックチェーンとを参照可能であるが、B社ブロックチェーンを参照可能ではないようにすることが望まれる。一方で、B社従業員が、B社ブロックチェーンと、AB社ブロックチェーンとを参照可能であるが、A社ブロックチェーンを参照可能ではないようにすることが望まれる。 Here, even when company A block chain and company B block chain are common, company A employee can refer to company A block chain and company AB block chain, but refer to company B block chain It is desirable not to be possible. On the other hand, it is desirable that a company B employee can refer to the company B block chain and the company AB block chain but can not refer to the company A block chain.
以下の説明では、A社ブロックチェーンを「チェーンA」と表記する場合がある。以下の説明では、B社ブロックチェーンを「チェーンB」と表記する場合がある。次に、図8の説明に移行し、A社やB社における、ブロックチェーンに対するブロックの追加の流れについて説明する。 In the following description, the company A block chain may be described as "chain A". In the following description, the company B block chain may be described as "chain B". Next, it transfers to description of FIG. 8, and the flow of addition of the block with respect to a block chain in A company and B company is demonstrated.
図8は、具体的には、ブロックチェーンに対するブロックの追加の流れを示す。図8に示すように、ブロックチェーン生成装置100は、一定時間ごとに、ブロックチェーンに新たなブロックを追加していく。ここでは、ブロックチェーンに、ブロック1が追加された後における、ブロックチェーン生成装置100の動作について説明する。
FIG. 8 specifically shows the additional flow of blocks to the block chain. As shown in FIG. 8, the block
ブロックチェーン生成装置100は、具体的には、ブロックチェーンの最新のブロック1をハッシュ関数に代入し、最新のブロック1を示すハッシュ値「hash1」を算出する。次に、ブロックチェーン生成装置100は、算出したハッシュ値「hash1」を直前ハッシュ値の項目の値に設定した新たなブロック2を生成する。そして、ブロックチェーン生成装置100は、ブロックチェーンに、生成したブロック2を追加する。
Specifically, the block
ハッシュ関数は、直前ハッシュ値の項目の値、ナンスの項目の値、取引IDリストの項目の値が代入され、ハッシュ値を算出する。ハッシュ関数は、例えば、直前ハッシュ値の項目の値と、ナンスの項目の値とが入れ替わっても、同一のハッシュ値を算出する。ハッシュ関数は、例えば、下記式(1)または下記式(2)で表される。 The hash function substitutes the value of the immediately preceding hash value item, the value of the nonce item, and the value of the transaction ID list item to calculate a hash value. The hash function calculates the same hash value even if, for example, the value of the immediately preceding hash value item and the value of the nonce item are interchanged. The hash function is represented, for example, by the following equation (1) or the following equation (2).
ハッシュ値=f(直前ハッシュ値の項目の値*ナンスの項目の値*取引IDリストの項目の値) ・・・(1) Hash value = f (value of immediately preceding hash value item * value of nonce item * value of item of transaction ID list) ··· (1)
ハッシュ値=f(直前ハッシュ値の項目の値)*f(ナンスの項目の値)−f(取引IDリストの項目の値) ・・・(2) Hash value = f (value of immediately preceding hash value item) * f (value of nonce item)-f (value of item of transaction ID list) (2)
ここで、f()は、SHA−256ハッシュ関数である。*は、乗算を示す。−は、減算を示す。上記式(1)および上記式(2)において、*の代わりに、A@B=B@Aを満たす任意の演算子@が利用されてもよい。上記式(1)および上記式(2)において、例えば、*の代わりに+が利用されてもよい。上記式(2)において、−の代わりに、任意の演算子@が利用されてもよい。 Here, f () is a SHA-256 hash function. * Indicates multiplication. -Indicates subtraction. In the above equations (1) and (2), any operator @ satisfying A @ B = B @ A may be used instead of *. In the above formulas (1) and (2), for example, + may be used instead of *. In the above equation (2), an arbitrary operator @ may be used instead of-.
同様に、ブロックチェーン生成装置100は、ブロックチェーンの最新のブロック2をハッシュ関数に代入してハッシュ値「hash2」を算出し、算出したハッシュ値「hash2」を直前ハッシュ値の項目の値に設定した新たなブロック3を生成する。ブロックチェーン生成装置100は、ブロックチェーンに、生成したブロック3を追加する。
Similarly, the block
このように、ブロックチェーン生成装置100は、ブロックチェーンに新たなブロックを追加していく。ブロックチェーン生成装置100は、ブロックを追加する際、直前ブロックを示すハッシュ値を算出し、追加するブロックに含めることにより、ブロックチェーンの連結を実現する。次に、図9の説明に移行し、ブロックが追加されるブロックチェーンの共通化の流れについて説明する。
Thus, the block
図9は、ブロックチェーンの共通化の流れを示す。図9に示すように、A社とB社とが合併するタイミングで、チェーンAとチェーンBとを共通化し、A社とB社とが合併するタイミング以降は、チェーンAにもチェーンBにも同一のブロックが追加されるようにする。これにより、A社とB社とが合併するタイミング以降は、A社においてもB社においても、同一のブロックを記憶していくことになる。 FIG. 9 shows the flow of commonization of block chains. As shown in FIG. 9, at the timing when company A and company B merge, chains A and B are shared, and after time when company A and company B merge, neither chain A nor chain B Make the same block be added. As a result, after the timing at which the company A and the company B merge, the same block is stored in the company A and the company B.
図9の例では、具体的には、チェーンAには、ブロック911〜913以降、ブロック931,932が追加されていくようにする。一方で、チェーンBには、ブロック921〜923以降、チェーンAと同じブロック931,932が追加されていくようにする。次に、図10の説明に移行し、ブロックチェーンの共通化の具体例について説明する。
Specifically, in the example of FIG. 9, blocks 931 and 932 are added to the chain A after the
図10は、ブロックチェーンの共通化の具体例を示す。図10の例では、A社とB社とが合併する前、A社におけるチェーンAには、ブロック1011,1012が含まれている。ここで、図11の説明に移行し、チェーンAにおける最新のブロック1012の具体例について説明する。
FIG. 10 shows a specific example of block chain sharing. In the example of FIG. 10, before company A and company B merge, the chain A in company A includes
図11は、チェーンAにおける最新のブロック1012の具体例を示す。図11に示すように、ブロック1012は、直前ハッシュ値の項目に「A11..11」が設定される。ブロック1012は、ナンスの項目に「A22..22」が設定される。ブロック1012は、取引IDリストの項目に「A33..33, A44..44, ...」が設定される。直前ハッシュ値と、ナンスとは、例えば、256ビットである。
FIG. 11 shows an example of the
図10の説明に戻り、A社とB社とが合併する前、B社におけるチェーンBには、ブロック1021,1022が含まれている。ここで、図12の説明に移行し、チェーンBにおける最新のブロック1022の具体例について説明する。
Returning to the description of FIG. 10, before company A and company B merge, chain B in company B includes
図12は、チェーンBにおける最新のブロック1022の具体例を示す。図12に示すように、ブロック1022は、直前ハッシュ値の項目に「B55..55」が設定される。ブロック1022は、ナンスの項目に「B66..66」が設定される。ブロック1022は、取引IDリストの項目に「B77..77, B88..88, ...」が設定される。直前ハッシュ値と、ナンスとは、例えば、256ビットである。
FIG. 12 shows an example of the
図10の説明に戻り、A社側のブロックチェーン生成装置100は、例えば、A社とB社とが合併したことに応じて、中間ブロックとなるブロック1013を生成する。以下の説明では、A社側のブロックチェーン生成装置100を「ブロックチェーン生成装置100A」と表記する場合がある。
Returning to the explanation of FIG. 10, the block
ブロックチェーン生成装置100Aは、ブロック1013の直前ハッシュ値の項目の値に、直前のブロック1012に設定されたハッシュ値「hashA」を設定する。また、ブロックチェーン生成装置100Aは、ブロック1013のナンスの項目の値に、チェーンBのブロック1022に設定されたハッシュ値「hashB」を設定する。ブロック1013の取引IDリストの項目は空である。
The block chain generation device 100A sets the hash value “hashA” set in the immediately preceding
ここでは、ブロックチェーン生成装置100Aが、ブロック1013のナンスの項目の値に、チェーンBのブロック1022に設定されたハッシュ値「hashB」を設定する場合について説明したが、これに限らない。例えば、ブロックチェーン生成装置100Aが、ブロック1013の取引IDリストの項目の値に、チェーンBのブロック1022に設定されたハッシュ値「hashB」を設定する場合があってもよい。
Here, the case where the block chain generation device 100A sets the hash value “hashB” set in the
ブロックチェーン生成装置100Aは、生成したブロック1013を、チェーンAに追加する。ここで、図13の説明に移行し、ブロック1013の具体例について説明する。
The block chain generation device 100A adds the generated
図13は、ブロック1013の具体例を示す。図13に示すように、ブロック1013は、直前ハッシュ値の項目に、ブロック1012からコピーした「A11..11」が設定される。ブロック1013は、ナンスの項目に、ブロック1022からコピーした「B55..55」が設定される。ブロック1013は、取引IDリストの項目に「0」が設定される。直前ハッシュ値と、ナンスとは、例えば、256ビットである。
FIG. 13 shows a specific example of the
図10の説明に戻り、B社側のブロックチェーン生成装置100は、例えば、A社とB社とが合併したことに応じて、中間ブロックとなるブロック1023を生成する。以下の説明では、B社側のブロックチェーン生成装置100を「ブロックチェーン生成装置100B」と表記する場合がある。
Returning to the explanation of FIG. 10, the block
ブロックチェーン生成装置100Bは、ブロック1023の直前ハッシュ値の項目の値に、直前のブロック1022に設定されたハッシュ値「hashB」を設定する。また、ブロックチェーン生成装置100Bは、ブロック1023のナンスの項目の値に、チェーンAのブロック1012に設定されたハッシュ値「hashA」を設定する。ブロック1023の取引IDリストの項目は空である。
The block
ここでは、ブロックチェーン生成装置100Bが、ブロック1023のナンスの項目の値に、チェーンAのブロック1012に設定されたハッシュ値「hashA」を設定する場合について説明したが、これに限らない。例えば、ブロックチェーン生成装置100Bが、ブロック1023の取引IDリストの項目の値に、チェーンAのブロック1012に設定されたハッシュ値「hashA」を設定する場合があってもよい。
Here, the case where the block chain generation device 100B sets the hash value “hashA” set in the
ブロックチェーン生成装置100Bは、生成したブロック1023を、チェーンBに追加する。ここで、図14の説明に移行し、ブロック1023の具体例について説明する。
The block chain generation device 100B adds the generated
図14は、ブロック1023の具体例を示す。図14に示すように、ブロック1023は、直前ハッシュ値の項目に、ブロック1022からコピーした「B55..55」が設定される。ブロック1023は、ナンスの項目に、ブロック1012からコピーした「A11..11」が設定される。ブロック1023は、取引IDリストの項目に「0」が設定される。直前ハッシュ値と、ナンスとは、例えば、256ビットである。
FIG. 14 shows a specific example of
このように、ブロックチェーン生成装置100Aと、ブロックチェーン生成装置100Bとは、ハッシュ関数に代入した場合に、同一のハッシュ値が算出されるような、ブロック1013と、ブロック1023とを生成することができる。これにより、ブロックチェーン生成装置100Aと、ブロックチェーン生成装置100Bとは、次に、チェーンAと、チェーンBとに追加されるブロックが、同一になるようにすることができる。次に、図15の説明に移行する。
As described above, the block chain generation device 100A and the block chain generation device 100B may generate the
図15に示すように、ブロックチェーン生成装置100Aは、例えば、チェーンAにブロック1013を追加すると、ブロック1013に基づいて、新たなブロック1511を生成する。
As shown in FIG. 15, for example, when the
ブロックチェーン生成装置100Aは、ブロック1511の直前ハッシュ値の項目の値に、直前のブロック1013をハッシュ関数に代入することにより算出されたハッシュ値「hashAB」を設定する。また、ブロックチェーン生成装置100Aは、ブロック1511のナンスの項目の値に「nonceAB」を設定する。ブロック1511の取引IDリストの項目は空である。
The block chain generation device 100A sets the hash value “hashAB” calculated by substituting the immediately preceding
ハッシュ関数は、直前ハッシュ値の項目の値、ナンスの項目の値、取引IDリストの項目の値が代入され、ハッシュ値を算出する。ハッシュ関数は、例えば、直前ハッシュ値の項目の値と、ナンスの項目の値とが入れ替わっても、同一のハッシュ値を算出する。ハッシュ関数は、例えば、上記式(1)または上記式(2)で表される。 The hash function substitutes the value of the immediately preceding hash value item, the value of the nonce item, and the value of the transaction ID list item to calculate a hash value. The hash function calculates the same hash value even if, for example, the value of the immediately preceding hash value item and the value of the nonce item are interchanged. The hash function is represented, for example, by the above equation (1) or the above equation (2).
ブロックチェーン生成装置100Aは、生成したブロック1511を、チェーンAに追加する。ここで、図16の説明に移行し、ブロック1511の具体例について説明する。
The block chain generation device 100A adds the generated
図16は、ブロック1511の具体例を示す。図16に示すように、ブロック1511は、直前ハッシュ値の項目に、ブロック1013から算出したハッシュ値「h(A11..11,B55..55,0)」が設定される。h(p,n,t)は、直前ハッシュ値pと、ナンスnと、取引IDリストtとに基づいて算出されるハッシュ値を示す。ブロック1511は、ナンスの項目に「AB99..99」が設定される。ブロック1511は、取引IDリストの項目に「0」が設定される。直前ハッシュ値と、ナンスとは、例えば、256ビットである。
FIG. 16 shows a specific example of the
図15の説明に戻り、ブロックチェーン生成装置100Bは、例えば、チェーンBにブロック1023を追加すると、ブロック1023に基づいて、新たなブロック1521を生成する。
Returning to the explanation of FIG. 15, for example, when adding the
ブロックチェーン生成装置100Bは、ブロック1521の直前ハッシュ値の項目の値に、直前のブロック1023をハッシュ関数に代入することにより算出されたハッシュ値「hashAB」を設定する。また、ブロックチェーン生成装置100Bは、ブロック1521のナンスの項目の値に「nonceAB」を設定する。ブロック1521の取引IDリストの項目は空である。
The block chain generation device 100B sets the hash value “hashAB” calculated by substituting the immediately preceding
ハッシュ関数は、直前ハッシュ値の項目の値、ナンスの項目の値、取引IDリストの項目の値が代入され、ハッシュ値を算出する。ハッシュ関数は、例えば、直前ハッシュ値の項目の値と、ナンスの項目の値とが入れ替わっても、同一のハッシュ値を算出する。ハッシュ関数は、例えば、上記式(1)または上記式(2)で表される。 The hash function substitutes the value of the immediately preceding hash value item, the value of the nonce item, and the value of the transaction ID list item to calculate a hash value. The hash function calculates the same hash value even if, for example, the value of the immediately preceding hash value item and the value of the nonce item are interchanged. The hash function is represented, for example, by the above equation (1) or the above equation (2).
ブロックチェーン生成装置100Bは、生成したブロック1521を、チェーンBに追加する。ここで、図17の説明に移行し、ブロック1521の具体例について説明する。
The block chain generation device 100B adds the generated
図17は、ブロック1521の具体例を示す。図17に示すように、ブロック1521は、直前ハッシュ値の項目に、ブロック1023から算出したハッシュ値「h(B55..55,A11..11,0)」が設定される。ブロック1521は、ナンスの項目に「AB99..99」が設定される。ブロック1521は、取引IDリストの項目に「0」が設定される。直前ハッシュ値と、ナンスとは、例えば、256ビットである。
FIG. 17 shows a specific example of the
ここで、上述したように、ハッシュ関数は、例えば、直前ハッシュ値の項目の値と、ナンスの項目の値とが入れ替わっても、同一のハッシュ値を算出する。このため、h(A11..11,B55..55,0)=h(B55..55,A11..11,0)である。結果として、ブロック1511と、ブロック1521とが同一になる。これにより、以降は、ブロックチェーン生成装置100Aと、ブロックチェーン生成装置100Bとは、チェーンAと、チェーンBとを共通化することができる。次に、図18の説明に移行する。
Here, as described above, the hash function calculates, for example, the same hash value even when the value of the item of the immediately preceding hash value and the value of the item of the nonce are interchanged. Therefore, h (A11..11, B55..55, 0) = h (B55..55, A11..11, 0). As a result,
図18に示すように、チェーンAにブロック1511が追加され、かつ、チェーンBにブロック1521が追加された後、ブロックチェーン生成装置100Aと、ブロックチェーン生成装置100Bとが、ネットワーク210を介して接続される。そして、ブロックチェーン生成装置100Aと、ブロックチェーン生成装置100Bとが、ネットワーク210を介して、取引に関する情報などを共有する。
As shown in FIG. 18, after the
これにより、以降では、チェーンAと、チェーンBとに、同一のブロックが追加されていくようになり、チェーンAと、チェーンBとは、チェーンABとして共通化され、利用される。また、チェーンAと、チェーンBとを共通化した形跡が、チェーンAと、チェーンBとに残っているため、後々に、チェーンAと、チェーンBとが共通化されたタイミングが判別可能になる。 As a result, in the following, the same block is added to the chain A and the chain B, and the chain A and the chain B are shared and used as the chain AB. Further, since the evidence that the chain A and the chain B are made common remains in the chain A and the chain B, it is possible later to determine the timing at which the chain A and the chain B are made common. .
ここで、チェーンAに追加されたブロック1511と、チェーンBに追加されたブロック1521とは、さらに、ブロック1012を示すハッシュ値と、ブロック1022を示すハッシュ値とを有するようにしてもよい。これにより、後々、ブロック1012と、ブロック1022とについて、改ざんの有無が判定可能になる。
Here, the
(動作例1におけるブロックチェーン管理処理手順の一例)
次に、図19を用いて、動作例1におけるブロックチェーン管理処理手順の一例について説明する。
(An example of block chain management processing procedure in the operation example 1)
Next, an example of the block chain management processing procedure in the operation example 1 will be described using FIG.
図19は、動作例1におけるブロックチェーン管理処理手順の一例を示すフローチャートである。ブロックチェーン生成装置100は、自装置が管理するブロックチェーンにおける直前ブロックのハッシュ値の項目の値に設定されたハッシュ値を取得する(ステップS1901)。
FIG. 19 is a flowchart of an example of a block chain management process procedure according to the first operation example. The block
次に、ブロックチェーン生成装置100は、他装置が管理するブロックチェーンにおける直前ブロックのハッシュ値の項目の値に設定されたハッシュ値を、他装置から受信する(ステップS1902)。そして、ブロックチェーン生成装置100は、ハッシュ値の項目に、取得したハッシュ値を設定し、かつ、ナンスの項目に、受信したハッシュ値を設定した新たなブロックを生成し、自装置が管理するブロックチェーンに追加する(ステップS1903)。
Next, the block
次に、ブロックチェーン生成装置100は、追加したブロックを示すハッシュ値を算出する(ステップS1904)。そして、ブロックチェーン生成装置100は、ハッシュ値の項目に、算出したハッシュ値を設定した新たなブロックを生成し、自装置が管理するブロックチェーンに追加する(ステップS1905)。
Next, the block
次に、ブロックチェーン生成装置100は、他装置との協調動作を開始する(ステップS1906)。そして、ブロックチェーン生成装置100は、ブロックチェーン管理処理を終了する。これにより、ブロックチェーン生成装置100は、複数のブロックチェーンを共通化することができる。
Next, the block
(ブロックチェーン生成装置100の動作例2)
次に、図20を用いて、ブロックチェーン生成装置100の動作例2について説明する。動作例1は、ブロックチェーン生成システムにおいて、2つのブロックチェーンを共通化する場合についての動作例である。これに対し、動作例2は、ブロックチェーン生成システムにおいて、3以上のブロックチェーンを共通化する場合についての動作例である。
(Operation example 2 of block chain generation device 100)
Next, operation example 2 of the block
図20は、ブロックチェーン生成装置100の動作例2を示す説明図である。図20の例は、A社とB社とC社とが合併する際、A社におけるチェーンAと、B社におけるチェーンBと、C社におけるチェーンCとが共通化される場合についての一例である。
FIG. 20 is an explanatory diagram of an operation example 2 of the block
合併前では、A社におけるチェーンAには、ブロック2011,2012が含まれている。合併前では、B社におけるチェーンBには、ブロック2021,2022が含まれている。合併前では、C社におけるチェーンCには、ブロック2031,2032が含まれている。
Before the merger, Chain A in Company A includes
A社側のブロックチェーン生成装置100は、例えば、合併に応じて、ブロック2013を生成する。以下の説明では、A社側のブロックチェーン生成装置100を「ブロックチェーン生成装置100A」と表記する場合がある。ブロックチェーン生成装置100Aは、ブロック2013の直前ハッシュ値の項目の値に、直前のブロック2012に設定されたハッシュ値「hashA」を設定する。
For example, the block
また、ブロックチェーン生成装置100Aは、チェーンBのブロック2022に設定されたハッシュ値「hashB」と、チェーンCのブロック2032に設定されたハッシュ値「hashC」を乗算する。ブロックチェーン生成装置100Aは、ブロック2013のナンスの項目の値に、乗算結果「hashB*hashC」を設定する。ブロック2013の取引IDリストの項目は空である。ブロックチェーン生成装置100Aは、生成したブロック2013を、チェーンAに追加する。
Further, the block chain generation device 100A multiplies the hash value “hashB” set in the
B社側のブロックチェーン生成装置100は、例えば、合併に応じて、ブロック2023を生成する。以下の説明では、B社側のブロックチェーン生成装置100を「ブロックチェーン生成装置100B」と表記する場合がある。ブロックチェーン生成装置100Bは、ブロック2023の直前ハッシュ値の項目の値に、直前のブロック2022に設定されたハッシュ値「hashB」を設定する。
The B-side block
また、ブロックチェーン生成装置100Bは、チェーンAのブロック2012に設定されたハッシュ値「hashA」と、チェーンCのブロック2032に設定されたハッシュ値「hashC」とを乗算する。ブロックチェーン生成装置100Bは、ブロック2023のナンスの項目の値に、乗算結果「hashA*hashC」を設定する。ブロック2023の取引IDリストの項目は空である。ブロックチェーン生成装置100Bは、生成したブロック2023を、チェーンBに追加する。
Further, the block chain generation device 100B multiplies the hash value “hashA” set in the
C社側のブロックチェーン生成装置100は、例えば、合併に応じて、ブロック2033を生成する。以下の説明では、C社側のブロックチェーン生成装置100を「ブロックチェーン生成装置100C」と表記する場合がある。ブロックチェーン生成装置100Cは、ブロック2033の直前ハッシュ値の項目の値に、直前のブロック2032に設定されたハッシュ値「hashC」を設定する。
For example, the block
また、ブロックチェーン生成装置100Cは、チェーンAのブロック2012に設定されたハッシュ値「hashA」と、チェーンBのブロック2022に設定されたハッシュ値「hashB」とを乗算する。ブロックチェーン生成装置100Cは、ブロック2033のナンスの項目の値に、乗算結果「hashA*hashB」を設定する。ブロック2033の取引IDリストの項目は空である。ブロックチェーン生成装置100Cは、生成したブロック2033を、チェーンCに追加する。
Further, the block chain generation device 100C multiplies the hash value “hashA” set in the
このように、ブロックチェーン生成装置100A〜100Cは、ハッシュ関数に代入した場合に、同一のハッシュ値が算出されるような、ブロック2013と、ブロック2023と、ブロック2033とを生成することができる。これにより、ブロックチェーン生成装置100Aと、ブロックチェーン生成装置100Bと、ブロックチェーン生成装置100Cとは、次に、チェーンAと、チェーンBと、チェーンCとに追加されるブロックが、同一になるようにすることができる。
As described above, the block chain generation devices 100A to 100C can generate the
ブロックチェーン生成装置100Aは、例えば、チェーンAにブロック2013を追加すると、ブロック2013に基づいて、新たなブロック2014を生成する。ブロックチェーン生成装置100Aは、ブロック2014の直前ハッシュ値の項目の値に、直前のブロック2013をハッシュ関数に代入することにより算出されたハッシュ値「hashABC」を設定する。
For example, when the
また、ブロックチェーン生成装置100Aは、ブロック2014のナンスの項目の値に「nonceABC」を設定する。ブロック2014の取引IDリストの項目は空である。ハッシュ関数は、例えば、上記式(1)で表される。ブロックチェーン生成装置100Aは、生成したブロック2014を、チェーンAに追加する。
Further, the block chain generation device 100A sets “nonceABC” to the value of the item of the nonce of the
ブロックチェーン生成装置100Bは、例えば、チェーンBにブロック2023を追加すると、ブロック2023に基づいて、新たなブロック2024を生成する。ブロックチェーン生成装置100Bは、ブロック2024の直前ハッシュ値の項目の値に、直前のブロック2023をハッシュ関数に代入することにより算出されたハッシュ値「hashABC」を設定する。
For example, when the
また、ブロックチェーン生成装置100Bは、ブロック2024のナンスの項目の値に「nonceABC」を設定する。ブロック2024の取引IDリストの項目は空である。ハッシュ関数は、例えば、上記式(1)で表される。ブロックチェーン生成装置100Bは、生成したブロック2024を、チェーンBに追加する。
In addition, the block chain generation device 100B sets “nonceABC” to the value of the item of the nonce of the
ブロックチェーン生成装置100Cは、例えば、チェーンCにブロック2033を追加すると、ブロック2033に基づいて、新たなブロック2034を生成する。ブロックチェーン生成装置100Cは、ブロック2034の直前ハッシュ値の項目の値に、直前のブロック2033をハッシュ関数に代入することにより算出されたハッシュ値「hashABC」を設定する。
For example, when the
また、ブロックチェーン生成装置100Cは、ブロック2034のナンスの項目の値に「nonceABC」を設定する。ブロック2034の取引IDリストの項目は空である。ハッシュ関数は、例えば、上記式(1)で表される。ブロックチェーン生成装置100Cは、生成したブロック2034を、チェーンCに追加する。
Further, the block chain generation device 100C sets “nonceABC” to the value of the item of the nonce of the
ここで、上記式(1)で表されるハッシュ関数は、例えば、直前ハッシュ値の項目の値と、ナンスの項目の値とに設定される、hashAとhashBとhashCとが入れ替わっても、同一のハッシュ値を算出することができる。結果として、ブロック2014と、ブロック2024と、ブロック2034とが同一になる。これにより、以降は、ブロックチェーン生成装置100Aと、ブロックチェーン生成装置100Bと、ブロックチェーン生成装置100Cとは、チェーンAと、チェーンBと、チェーンCとを共通化することができる。
Here, for example, the hash function represented by the equation (1) is the same even if the hashA, hashB, and hashC are set to the value of the immediately preceding hash value item and the value of the nonce item. The hash value of can be calculated. As a result,
(動作例2におけるブロックチェーン管理処理手順の一例)
動作例2におけるブロックチェーン管理処理手順の一例は、図19に示した動作例1におけるブロックチェーン管理処理手順の一例と同様であるため、説明を省略する。
(An example of block chain management processing procedure in the operation example 2)
An example of the block chain management processing procedure in the operation example 2 is the same as the example of the block chain management processing procedure in the operation example 1 shown in FIG.
(ブロックチェーン生成装置100の動作例3)
次に、図21および図22を用いて、ブロックチェーン生成装置100の動作例3について説明する。動作例1は、ブロックチェーン生成装置100が、中間ブロックを生成する際、直前ブロックのハッシュ値を中間ブロックにコピーする場合についての動作例である。これに対し、動作例3は、ブロックチェーン生成装置100が、中間ブロックを生成する際、直前ブロックを示すハッシュ値を算出して、中間ブロックに含める場合についての動作例である。
(Operation example 3 of block chain generation device 100)
Next, operation example 3 of the block
図21および図22は、ブロックチェーン生成装置100の動作例3を示す説明図である。図21の例は、A社とB社とが合併する際、A社におけるチェーンAと、B社におけるチェーンBとが共通化される場合についての一例である。
21 and 22 are explanatory diagrams showing an operation example 3 of the block
合併前では、A社におけるチェーンAには、ブロック2111,2112が含まれている。合併前では、B社におけるチェーンBには、ブロック2121,2122が含まれている。
Before the merger, chain A in company A includes
A社側のブロックチェーン生成装置100は、例えば、合併に応じて、ブロック2113を生成する。以下の説明では、A社側のブロックチェーン生成装置100を「ブロックチェーン生成装置100A」と表記する場合がある。
For example, the block
ブロックチェーン生成装置100Aは、ハッシュ関数を用いて直前のブロック2112を示すハッシュ値「hashA’」を算出する。ハッシュ関数は、例えば、上記式(1)または上記式(2)で表される。ブロックチェーン生成装置100Aは、算出したハッシュ値「hashA’」を、ブロック2113の直前ハッシュ値の項目の値に設定する。
The block
ブロックチェーン生成装置100Aは、ブロックチェーン生成装置100Bがハッシュ関数を用いて算出した、チェーンBのブロック2122を示すハッシュ値「hashB’」を、ブロックチェーン生成装置100Bから受信する。ブロックチェーン生成装置100Aは、受信したハッシュ値「hashB’」を、ブロック2113のナンスの項目の値に設定する。ブロック2113の取引IDリストの項目は空である。ブロックチェーン生成装置100Aは、生成したブロック2113を、チェーンAに追加する。
The block chain generation device 100A receives, from the block chain generation device 100B, the hash value “hash B ′” indicating the
B社側のブロックチェーン生成装置100は、例えば、合併に応じて、ブロック2123を生成する。以下の説明では、B社側のブロックチェーン生成装置100を「ブロックチェーン生成装置100B」と表記する場合がある。
The B-side block
ブロックチェーン生成装置100Bは、ハッシュ関数を用いて直前のブロック2122を示すハッシュ値「hashB’」を算出する。ハッシュ関数は、例えば、上記式(1)または上記式(2)で表される。ブロックチェーン生成装置100Bは、算出したハッシュ値「hashB’」を、ブロック2123の直前ハッシュ値の項目の値に設定する。
The block
ブロックチェーン生成装置100Bは、ブロックチェーン生成装置100Aがハッシュ関数を用いて算出した、チェーンAのブロック2112を示すハッシュ値「hashA’」を、ブロックチェーン生成装置100Aから受信する。ブロックチェーン生成装置100Bは、受信したハッシュ値「hashA’」を、ブロック2123のナンスの項目の値に設定する。ブロック2123の取引IDリストの項目は空である。ブロックチェーン生成装置100Bは、生成したブロック2123を、チェーンBに追加する。
The block chain generation device 100B receives, from the block chain generation device 100A, the hash value “hashA ′” indicating the
このように、ブロックチェーン生成装置100Aと、ブロックチェーン生成装置100Bとは、ハッシュ関数に代入した場合に、同一のハッシュ値が算出されるような、ブロック2113と、ブロック2123とを生成することができる。これにより、ブロックチェーン生成装置100Aと、ブロックチェーン生成装置100Bとは、次に、チェーンAと、チェーンBとに追加されるブロックが、同一になるようにすることができる。
As described above, the block chain generation device 100A and the block chain generation device 100B can generate the
ブロックチェーン生成装置100Aは、例えば、チェーンAにブロック2113を追加すると、ブロック2113に基づいて、新たなブロック2211を生成する。ブロックチェーン生成装置100Aは、ブロック2211の直前ハッシュ値の項目の値に、直前のブロック2113をハッシュ関数に代入することにより算出されたハッシュ値「hashAB」を設定する。
For example, when the
また、ブロックチェーン生成装置100Aは、ブロック2211のナンスの項目の値に「nonceAB」を設定する。ブロック2211の取引IDリストの項目は空である。ハッシュ関数は、例えば、上記式(1)または上記式(2)で表される。ブロックチェーン生成装置100Aは、生成したブロック2211を、チェーンAに追加する。 Further, the block chain generation device 100A sets “nonce AB” to the value of the item of the nonce of the block 2211. The item of the transaction ID list of block 2211 is empty. The hash function is represented, for example, by the above equation (1) or the above equation (2). The block chain generation device 100A adds the generated block 2211 to the chain A.
ブロックチェーン生成装置100Bは、例えば、チェーンBにブロック2123を追加すると、ブロック2123に基づいて、新たなブロック2221を生成する。ブロックチェーン生成装置100Bは、ブロック2221の直前ハッシュ値の項目の値に、直前のブロック2123をハッシュ関数に代入することにより算出されたハッシュ値「hashAB」を設定する。
For example, when the
また、ブロックチェーン生成装置100Bは、ブロック2221のナンスの項目の値に「nonceAB」を設定する。ブロック2221の取引IDリストの項目は空である。ハッシュ関数は、例えば、上記式(1)または上記式(2)で表される。ブロックチェーン生成装置100Bは、生成したブロック2221を、チェーンBに追加する。
Also, the block chain generation device 100B sets “nonce AB” to the value of the item of the nonce of the
ここで、ハッシュ関数は、例えば、直前ハッシュ値の項目の値と、ナンスの項目の値が入れ替わっても、同一のハッシュ値を算出することができる。結果として、ブロック2211と、ブロック2221とが同一になる。これにより、以降は、ブロックチェーン生成装置100Aと、ブロックチェーン生成装置100Bとは、チェーンAと、チェーンBとを共通化することができる。 Here, the hash function can calculate the same hash value even if, for example, the value of the item of the immediately preceding hash value and the value of the item of the nonce are interchanged. As a result, block 2211 and block 2221 are identical. As a result, after that, the block chain generation device 100A and the block chain generation device 100B can share the chains A and B.
(動作例3におけるブロックチェーン管理処理手順の一例)
次に、図23を用いて、動作例3におけるブロックチェーン管理処理手順の一例について説明する。
(An example of block chain management processing procedure in the operation example 3)
Next, an example of the block chain management processing procedure in the operation example 3 will be described using FIG.
図23は、動作例3におけるブロックチェーン管理処理手順の一例を示すフローチャートである。ブロックチェーン生成装置100は、自装置が管理するブロックチェーンにおける直前ブロックを示すハッシュ値を算出する(ステップS2301)。
FIG. 23 is a flowchart of an example of a block chain management process procedure according to the third operation example. The block
次に、ブロックチェーン生成装置100は、他装置が管理するブロックチェーンにおける直前ブロックを示すハッシュ値を、他装置から受信する(ステップS2302)。そして、ブロックチェーン生成装置100は、ハッシュ値の項目に、算出したハッシュ値を設定し、かつ、ナンスの項目に、受信したハッシュ値を設定した新たなブロックを生成し、自装置が管理するブロックチェーンに追加する(ステップS2303)。
Next, the block
次に、ブロックチェーン生成装置100は、追加したブロックを示すハッシュ値を算出する(ステップS2304)。そして、ブロックチェーン生成装置100は、ハッシュ値の項目に、算出したハッシュ値を設定した新たなブロックを生成し、自装置が管理するブロックチェーンに追加する(ステップS2305)。
Next, the block
次に、ブロックチェーン生成装置100は、他装置との協調動作を開始する(ステップS2306)。そして、ブロックチェーン生成装置100は、ブロックチェーン管理処理を終了する。これにより、ブロックチェーン生成装置100は、複数のブロックチェーンを共通化することができる。
Next, the block
以上説明したように、ブロックチェーン生成装置100によれば、自装置が管理するブロックチェーンの最新のブロックに対応する第1のハッシュ値と、他装置が管理するブロックチェーンの最新のブロックに対応する第2のハッシュ値とを取得することができる。ブロックチェーン生成装置100によれば、自装置が管理するブロックチェーンに、第1のハッシュ値と第2のハッシュ値とを有する中間ブロックを追加することができる。ブロックチェーン生成装置100によれば、所定の関数を用いて、自装置が管理するブロックチェーンに、複数のブロックチェーンで共通するハッシュ値を有するブロックを追加することができる。これにより、ブロックチェーン生成装置100は、自装置が管理するブロックチェーンに、複数のブロックチェーンに共通する第3のハッシュ値を有するブロックを追加することができ、それぞれのブロックチェーンを組織間で共通化することができる。
As described above, according to the block
ブロックチェーン生成装置100によれば、所定の関数として、ブロックが有する複数の項目のうち第1の項目の値と第2の項目の値とが入れ替わっても、算出されるハッシュ値が同一になる関数を用いることができる。ブロックチェーン生成装置100によれば、第1のハッシュ値が第1の項目の値に設定され、かつ、第2のハッシュ値が第2の項目の値に設定された中間ブロックを生成することができる。これにより、ブロックチェーン生成装置100は、それぞれのブロックチェーンに追加された中間ブロックから算出される第3のハッシュ値が同一になるようにすることができる。
According to the block
ブロックチェーン生成装置100によれば、第1のハッシュ値を、ブロックの直前に連結されたブロックを示すハッシュ値が設定される第1の項目の値に設定し、第2のハッシュ値を、ナンスが設定される第2の項目の値に設定することができる。これにより、ブロックチェーン生成装置100は、それぞれのブロックチェーンに追加された中間ブロックから算出される第3のハッシュ値が同一になるようにすることができる。
According to the block
ブロックチェーン生成装置100によれば、第1のハッシュ値として、自装置が管理するブロックチェーンに中間ブロックの直前に追加されたブロックに設定されたハッシュ値をコピーしたハッシュ値を用いることができる。ブロックチェーン生成装置100によれば、第2のハッシュ値として、他装置が管理するブロックチェーンに中間ブロックの直前に追加されたブロックに設定されたハッシュ値をコピーしたハッシュ値を用いることができる。これにより、ブロックチェーン生成装置100は、算出済みのハッシュ値をコピーし、処理量の低減化を図ることができる。
According to the block
ブロックチェーン生成装置100によれば、自装置が管理するブロックチェーンに、第3のハッシュ値のほか、それぞれのブロックチェーンに中間ブロックの直前に追加されたブロックを示す第4のハッシュ値をさらに有するブロックを追加することができる。これにより、ブロックチェーン生成装置100は、第4のハッシュ値に基づいて、それぞれのブロックチェーンに中間ブロックの直前に追加されたブロックの改ざんの有無を判定可能にすることができる。このため、ブロックチェーン生成装置100は、ブロックチェーン生成システム200におけるセキュリティの向上を図ることができる。
According to the block
ブロックチェーン生成装置100によれば、第1のハッシュ値として、自装置が管理するブロックチェーンに中間ブロックの直前に追加されたブロックを示すハッシュ値を用いることができる。ブロックチェーン生成装置100によれば、第2のハッシュ値として、他装置が管理するブロックチェーンに中間ブロックの直前に追加されたブロックを示すハッシュ値を用いることができる。これにより、ブロックチェーン生成装置100は、第1のハッシュ値に基づいて、自装置が管理するブロックチェーンに中間ブロックの直前に追加されたブロックの改ざんの有無を判定可能にすることができる。また、ブロックチェーン生成装置100は、第2のハッシュ値に基づいて、他装置が管理するブロックチェーンに中間ブロックの直前に追加されたブロックの改ざんの有無を判定可能にすることができる。このため、ブロックチェーン生成装置100は、ブロックチェーン生成システム200におけるセキュリティの向上を図ることができる。
According to the block
ブロックチェーン生成装置100によれば、第3のハッシュ値として、中間ブロックを示すハッシュ値を用いることができる。これにより、ブロックチェーン生成装置100は、第3のハッシュ値に基づいて、中間ブロックの改ざんの有無を判定可能にすることができる。このため、ブロックチェーン生成装置100は、ブロックチェーン生成システム200におけるセキュリティの向上を図ることができる。
According to the block
なお、本実施の形態で説明したブロックチェーン生成方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明したブロックチェーン生成プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明したブロックチェーン生成プログラムは、インターネット等のネットワークを介して配布してもよい。 The block chain generation method described in the present embodiment can be realized by executing a prepared program on a computer such as a personal computer or a workstation. The block chain generation program described in the present embodiment is recorded on a computer-readable recording medium such as a hard disk, flexible disk, CD-ROM, MO, or DVD, and is executed by being read from the recording medium by the computer. . In addition, the block chain generation program described in the present embodiment may be distributed via a network such as the Internet.
上述した実施の形態に関し、さらに以下の付記を開示する。 The following appendices will be further disclosed regarding the embodiment described above.
(付記1)1以上のブロックを連結する第1のブロックチェーンと第2のブロックチェーンのそれぞれに対して、前記第1のブロックチェーンの最新のブロックに対応する第1のハッシュ値と、前記第2のブロックチェーンの最新のブロックに対応する第2のハッシュ値とを有する中間ブロックを追加する第1追加部と、
前記第1および前記第2のブロックチェーンにそれぞれ追加された前記中間ブロックが有する前記第1のハッシュ値と前記第2のハッシュ値とに基づき、前記第1および前記第2のブロックチェーンに共通する第3のハッシュ値を算出可能な関数を用いて、前記第1および前記第2のブロックチェーンに対して、前記第3のハッシュ値を有するブロックを追加する第2追加部と、
を有することを特徴とするブロックチェーン生成システム。
(Supplementary Note 1) A first hash value corresponding to the latest block of the first block chain, for each of the first block chain and the second block chain connecting one or more blocks; A first adding unit for adding an intermediate block having a second hash value corresponding to the latest block of the second block chain;
Common to the first and second block chains based on the first hash value and the second hash value of the intermediate block respectively added to the first and second block chains A second adding unit that adds a block having the third hash value to the first and second block chains using a function capable of calculating a third hash value;
A block chain generation system characterized by having.
(付記2)前記ブロックは、複数の項目を有し、
前記関数は、前記複数の項目の値に基づき、前記第3のハッシュ値を算出する関数であり、かつ、前記複数の項目のうち第1の項目の値と第2の項目の値とが入れ替わっても、算出される前記第3のハッシュ値が同一になる関数であり、
前記第1追加部は、
前記第1のブロックチェーンと前記第2のブロックチェーンのそれぞれについて、当該ブロックチェーンの最新のブロックに対応する第1のハッシュ値が前記第1の項目の値に設定され、かつ、当該ブロックチェーン以外の他のブロックチェーンの最新のブロックに対応する第2のハッシュ値が前記第2の項目の値に設定された前記中間ブロックを追加する、ことを特徴とする付記1に記載のブロックチェーン生成システム。
(Supplementary Note 2) The block has a plurality of items,
The function is a function for calculating the third hash value based on the values of the plurality of items, and the value of the first item and the value of the second item among the plurality of items are interchanged. Even if the third hash value to be calculated is the same function,
The first addition unit is
For each of the first block chain and the second block chain, a first hash value corresponding to the latest block of the block chain is set to the value of the first item, and other than the block chain The block chain generation system according to
(付記3)前記ブロックが有する前記第1の項目は、前記ブロックの直前に連結されたブロックを示すハッシュ値が設定される項目であり、
前記ブロックが有する前記第2の項目は、ナンスが設定される項目である、ことを特徴とする付記2に記載のブロックチェーン生成システム。
(Supplementary Note 3) The first item included in the block is an item to which a hash value indicating a block connected immediately before the block is set.
The block chain generation system according to appendix 2, wherein the second item included in the block is an item for which a nonce is set.
(付記4)前記第1追加部は、
前記第1のブロックチェーンと前記第2のブロックチェーンのそれぞれについて、当該ブロックチェーンの最新のブロックに設定された第1のハッシュ値と、当該ブロックチェーン以外の他のブロックチェーンの最新のブロックに設定された第2のハッシュ値とを有する前記中間ブロックを追加する、ことを特徴とする付記1〜3のいずれか一つに記載のブロックチェーン生成システム。
(Supplementary Note 4) The first addition unit
For each of the first block chain and the second block chain, the first hash value set to the latest block of the block chain and the latest block of other block chains other than the block chain The block chain generation system according to any one of
(付記5)前記第2追加部は、
前記第1のブロックチェーンと前記第2のブロックチェーンのそれぞれについて、前記第3のハッシュ値のほか、前記第1のブロックチェーンと前記第2のブロックチェーンのそれぞれに中間ブロックの直前に追加されたブロックを示す第4のハッシュ値をさらに有するブロックを追加する、ことを特徴とする付記4に記載のブロックチェーン生成システム。
(Supplementary Note 5) The second addition unit
For each of the first block chain and the second block chain, in addition to the third hash value, an intermediate block is added to each of the first block chain and the second block chain just before the intermediate block. The block chain generation system according to appendix 4, wherein a block further having a fourth hash value indicating the block is added.
(付記6)前記第1追加部は、
前記第1のブロックチェーンと前記第2のブロックチェーンのそれぞれについて、当該ブロックチェーンの最新のブロックを示す第1のハッシュ値と、当該ブロックチェーン以外の他のブロックチェーンの最新のブロックを示す第2のハッシュ値とを有する前記中間ブロックを追加する、ことを特徴とする付記1に記載のブロックチェーン生成システム。
(Supplementary Note 6) The first addition unit
For each of the first block chain and the second block chain, a first hash value indicating the latest block of the block chain and a second hash value indicating the latest block of another block chain other than the block chain The block chain generation system according to
(付記7)前記第3のハッシュ値は、前記中間ブロックを示すハッシュ値である、ことを特徴とする付記1〜6のいずれか一つに記載のブロックチェーン生成システム。
(Supplementary Note 7) The block chain generation system according to any one of
(付記8)1以上のブロックを連結する第1のブロックチェーンと第2のブロックチェーンのそれぞれに対して、前記第1のブロックチェーンの最新のブロックに対応する第1のハッシュ値と、前記第2のブロックチェーンの最新のブロックに対応する第2のハッシュ値とを有する中間ブロックを追加し、
前記第1および前記第2のブロックチェーンにそれぞれ追加された前記中間ブロックが有する前記第1のハッシュ値と前記第2のハッシュ値とに基づき、前記第1および前記第2のブロックチェーンに共通する第3のハッシュ値を算出可能な関数を用いて、前記第1および前記第2のブロックチェーンに対して、前記第3のハッシュ値を有するブロックを追加する、
ことを特徴とするブロックチェーン生成方法。
(Supplementary Note 8) A first hash value corresponding to the latest block of the first block chain, for each of the first block chain and the second block chain connecting one or more blocks; Add an intermediate block having a second hash value corresponding to the latest block of the second block chain,
Common to the first and second block chains based on the first hash value and the second hash value of the intermediate block respectively added to the first and second block chains Adding a block having the third hash value to the first and second block chains using a function capable of calculating a third hash value;
A block chain generation method characterized by
(付記9)コンピュータに、
1以上のブロックを連結する第1のブロックチェーンと第2のブロックチェーンのうち前記第1のブロックチェーンに対して、前記第1のブロックチェーンの最新のブロックに対応する第1のハッシュ値と、前記第2のブロックチェーンの最新のブロックに対応する第2のハッシュ値とを有する中間ブロックを追加し、
前記第1のブロックチェーンに追加された中間ブロックが有する第1のハッシュ値と第2のハッシュ値とに基づき、前記第1および前記第2のブロックチェーンに共通する第3のハッシュ値を算出可能な関数を用いて、前記第1のブロックチェーンに対して、前記第3のハッシュ値を有するブロックを追加する、
処理を実行させることを特徴とするブロックチェーン生成プログラム。
(Supplementary Note 9)
A first hash value corresponding to the latest block of the first block chain, for the first block chain of the first block chain connecting one or more blocks and the second block chain; Adding an intermediate block having a second hash value corresponding to the latest block of the second block chain;
A third hash value common to the first and second block chains can be calculated based on a first hash value and a second hash value of an intermediate block added to the first block chain Adding a block having the third hash value to the first block chain using a random function
A block chain generation program characterized by executing processing.
100 ブロックチェーン生成装置
110,120 ブロックチェーン
111,112,114,121,122,124,400,911〜913,921〜923,931,932,1011〜1013,1021〜1023,1511,1521,2011〜2014,2021〜2024,2031〜2034,2111〜2113,2121〜2123,2211,2221 ブロック
113,123 中間ブロック
200 ブロックチェーン生成システム
201,202 ノード
210〜212 ネットワーク
300 バス
301 CPU
302 メモリ
303 ネットワークI/F
304 記録媒体I/F
305 記録媒体
500 記憶部
501 取得部
502 追加部
503 出力部
601 ハッシュ値算出部
602 ブロック生成部
603 統合準備部
604 統合部
DESCRIPTION OF
302
304 Recording medium I / F
305
Claims (8)
前記第1および前記第2のブロックチェーンにそれぞれ追加された前記中間ブロックが有する前記第1のハッシュ値と前記第2のハッシュ値とに基づき、前記第1および前記第2のブロックチェーンに共通する第3のハッシュ値を算出可能な関数を用いて、前記第1および前記第2のブロックチェーンに対して、前記第3のハッシュ値を有するブロックを追加する第2追加部と、
を有することを特徴とするブロックチェーン生成システム。 A first hash value corresponding to the latest block of the first block chain and a second block chain for each of the first block chain and the second block chain connecting one or more blocks; Adding an intermediate block having a second hash value corresponding to the latest block of
Common to the first and second block chains based on the first hash value and the second hash value of the intermediate block respectively added to the first and second block chains A second adding unit that adds a block having the third hash value to the first and second block chains using a function capable of calculating a third hash value;
A block chain generation system characterized by having.
前記関数は、前記複数の項目の値に基づき、前記第3のハッシュ値を算出する関数であり、かつ、前記複数の項目のうち第1の項目の値と第2の項目の値とが入れ替わっても、算出される前記第3のハッシュ値が同一になる関数であり、
前記第1追加部は、
前記第1のブロックチェーンと前記第2のブロックチェーンのそれぞれについて、当該ブロックチェーンの最新のブロックに対応する第1のハッシュ値が前記第1の項目の値に設定され、かつ、当該ブロックチェーン以外の他のブロックチェーンの最新のブロックに対応する第2のハッシュ値が前記第2の項目の値に設定された前記中間ブロックを追加する、ことを特徴とする請求項1に記載のブロックチェーン生成システム。 The block has a plurality of items,
The function is a function for calculating the third hash value based on the values of the plurality of items, and the value of the first item and the value of the second item among the plurality of items are interchanged. Even if the third hash value to be calculated is the same function,
The first addition unit is
For each of the first block chain and the second block chain, a first hash value corresponding to the latest block of the block chain is set to the value of the first item, and other than the block chain The block chain generation according to claim 1, characterized in that the intermediate block is added with a second hash value corresponding to the latest block of another block chain of the block set to the value of the second item. system.
前記ブロックが有する前記第2の項目は、ナンスが設定される項目である、ことを特徴とする請求項2に記載のブロックチェーン生成システム。 The first item included in the block is an item to which a hash value indicating a block connected immediately before the block is set.
The block chain generation system according to claim 2, wherein the second item included in the block is an item for which a nonce is set.
前記第1のブロックチェーンと前記第2のブロックチェーンのそれぞれについて、当該ブロックチェーンの最新のブロックに設定された第1のハッシュ値と、当該ブロックチェーン以外の他のブロックチェーンの最新のブロックに設定された第2のハッシュ値とを有する前記中間ブロックを追加する、ことを特徴とする請求項1〜3のいずれか一つに記載のブロックチェーン生成システム。 The first addition unit is
For each of the first block chain and the second block chain, the first hash value set to the latest block of the block chain and the latest block of other block chains other than the block chain The block chain generation system according to any one of claims 1 to 3, wherein the intermediate block having the second hash value and the second hash value is added.
前記第1のブロックチェーンと前記第2のブロックチェーンのそれぞれについて、前記第3のハッシュ値のほか、前記第1のブロックチェーンと前記第2のブロックチェーンのそれぞれに中間ブロックの直前に追加されたブロックを示す第4のハッシュ値をさらに有するブロックを追加する、ことを特徴とする請求項4に記載のブロックチェーン生成システム。 The second addition unit is
For each of the first block chain and the second block chain, in addition to the third hash value, an intermediate block is added to each of the first block chain and the second block chain just before the intermediate block. The block chain generation system according to claim 4, wherein a block further having a fourth hash value indicating the block is added.
前記第1のブロックチェーンと前記第2のブロックチェーンのそれぞれについて、当該ブロックチェーンの最新のブロックを示す第1のハッシュ値と、当該ブロックチェーン以外の他のブロックチェーンの最新のブロックを示す第2のハッシュ値とを有する前記中間ブロックを追加する、ことを特徴とする請求項1に記載のブロックチェーン生成システム。 The first addition unit is
For each of the first block chain and the second block chain, a first hash value indicating the latest block of the block chain and a second hash value indicating the latest block of another block chain other than the block chain The block chain generation system according to claim 1, wherein the intermediate block having a hash value of and is added.
前記第1および前記第2のブロックチェーンにそれぞれ追加された前記中間ブロックが有する前記第1のハッシュ値と前記第2のハッシュ値とに基づき、前記第1および前記第2のブロックチェーンに共通する第3のハッシュ値を算出可能な関数を用いて、前記第1および前記第2のブロックチェーンに対して、前記第3のハッシュ値を有するブロックを追加する、
ことを特徴とするブロックチェーン生成方法。 A first hash value corresponding to the latest block of the first block chain and a second block chain for each of the first block chain and the second block chain connecting one or more blocks; Add an intermediate block with a second hash value corresponding to the latest block of
Common to the first and second block chains based on the first hash value and the second hash value of the intermediate block respectively added to the first and second block chains Adding a block having the third hash value to the first and second block chains using a function capable of calculating a third hash value;
A block chain generation method characterized by
1以上のブロックを連結する第1のブロックチェーンと第2のブロックチェーンのうち前記第1のブロックチェーンに対して、前記第1のブロックチェーンの最新のブロックに対応する第1のハッシュ値と、前記第2のブロックチェーンの最新のブロックに対応する第2のハッシュ値とを有する中間ブロックを追加し、
前記第1のブロックチェーンに追加された中間ブロックが有する第1のハッシュ値と第2のハッシュ値とに基づき、前記第1および前記第2のブロックチェーンに共通する第3のハッシュ値を算出可能な関数を用いて、前記第1のブロックチェーンに対して、前記第3のハッシュ値を有するブロックを追加する、
処理を実行させることを特徴とするブロックチェーン生成プログラム。 On the computer
A first hash value corresponding to the latest block of the first block chain, for the first block chain of the first block chain connecting one or more blocks and the second block chain; Adding an intermediate block having a second hash value corresponding to the latest block of the second block chain;
A third hash value common to the first and second block chains can be calculated based on a first hash value and a second hash value of an intermediate block added to the first block chain Adding a block having the third hash value to the first block chain using a random function
A block chain generation program characterized by executing processing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017223516A JP6915505B2 (en) | 2017-11-21 | 2017-11-21 | Blockchain generation system, blockchain generation method, and blockchain generation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017223516A JP6915505B2 (en) | 2017-11-21 | 2017-11-21 | Blockchain generation system, blockchain generation method, and blockchain generation program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019096987A true JP2019096987A (en) | 2019-06-20 |
JP6915505B2 JP6915505B2 (en) | 2021-08-04 |
Family
ID=66972040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017223516A Active JP6915505B2 (en) | 2017-11-21 | 2017-11-21 | Blockchain generation system, blockchain generation method, and blockchain generation program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6915505B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021068339A (en) * | 2019-10-28 | 2021-04-30 | 本田技研工業株式会社 | Vehicle information management system |
WO2022024340A1 (en) * | 2020-07-31 | 2022-02-03 | 日本電信電話株式会社 | Information management device, information management method, and program |
JP2022548629A (en) * | 2019-09-20 | 2022-11-21 | マスターカード インターナシヨナル インコーポレーテツド | Methods and Systems for Consistent Ledger Distribution Across Multiple Blockchains |
KR102655765B1 (en) | 2021-06-16 | 2024-04-09 | 계명대학교 산학협력단 | Method and apparatus for providing blockchain |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160330034A1 (en) * | 2015-05-07 | 2016-11-10 | Blockstream Corporation | Transferring ledger assets between blockchains via pegged sidechains |
US20170293503A1 (en) * | 2016-04-10 | 2017-10-12 | Bank Of America Corporation | System for transforming large scale electronic processing using application block chain and multi-structured data stores |
JP2017204070A (en) * | 2016-05-10 | 2017-11-16 | 日本電信電話株式会社 | Settlement system, settlement method, transaction generation device, and transaction generation program |
-
2017
- 2017-11-21 JP JP2017223516A patent/JP6915505B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160330034A1 (en) * | 2015-05-07 | 2016-11-10 | Blockstream Corporation | Transferring ledger assets between blockchains via pegged sidechains |
US20170293503A1 (en) * | 2016-04-10 | 2017-10-12 | Bank Of America Corporation | System for transforming large scale electronic processing using application block chain and multi-structured data stores |
JP2017204070A (en) * | 2016-05-10 | 2017-11-16 | 日本電信電話株式会社 | Settlement system, settlement method, transaction generation device, and transaction generation program |
Non-Patent Citations (1)
Title |
---|
WALL, E.: "Chainmerger - unifying blockchains after a fork", [ONLINE], JPN6021022501, 24 September 2017 (2017-09-24), ISSN: 0004528277 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022548629A (en) * | 2019-09-20 | 2022-11-21 | マスターカード インターナシヨナル インコーポレーテツド | Methods and Systems for Consistent Ledger Distribution Across Multiple Blockchains |
JP2021068339A (en) * | 2019-10-28 | 2021-04-30 | 本田技研工業株式会社 | Vehicle information management system |
JP7027386B2 (en) | 2019-10-28 | 2022-03-01 | 本田技研工業株式会社 | Vehicle information management system |
WO2022024340A1 (en) * | 2020-07-31 | 2022-02-03 | 日本電信電話株式会社 | Information management device, information management method, and program |
KR102655765B1 (en) | 2021-06-16 | 2024-04-09 | 계명대학교 산학협력단 | Method and apparatus for providing blockchain |
Also Published As
Publication number | Publication date |
---|---|
JP6915505B2 (en) | 2021-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102247658B1 (en) | Processing of blockchain data based on smart contract behavior executed in a trusted execution environment | |
AU2019204730C1 (en) | Processing and storing blockchain data under a trusted execution environment | |
Liu et al. | Blockchain based data integrity service framework for IoT data | |
JP2022119949A (en) | Method and system for efficient transfer of cryptocurrency associated with salary payment on block chain that leads to automated salary payment method and system based on smart contracts | |
US20190386817A1 (en) | Dynamic blockchain system and method for providing efficient and secure distributed data access, data storage and data transport | |
EP3345360B1 (en) | Method for storing an object on a plurality of storage nodes | |
KR20200078420A (en) | Data isolation in blockchain networks | |
KR20190002688A (en) | Method and system for verifying the integrity of a digital asset using a distributed hash table and peer-to-peer distributed origin | |
AU2019204733A1 (en) | Performing parallel execution of transactions in a distributed ledger system | |
AU2019378667B2 (en) | Performing map iterations in blockchain-based system | |
CN111066050B (en) | Retrieving value of digital ticket in blockchain networks using smart contracts | |
JP6915505B2 (en) | Blockchain generation system, blockchain generation method, and blockchain generation program | |
AU2019379711B2 (en) | Performing map iterations in a blockchain-based system | |
WO2020210979A1 (en) | Blockchain-network-based joint learning method and joint learning device | |
CN115668194A (en) | Cross-partition calls in a partition's tamper-resistant data store | |
CN112286872A (en) | Medical image data sharing method and system based on block chain technology and interplanetary file system and readable storage medium | |
WO2022193920A1 (en) | Blockchain data segregation | |
CN114760054A (en) | Key management method and device based on digital wallet and storage medium | |
Shah et al. | M-DPS: a blockchain-based efficient and cost-effective architecture for medical applications | |
Abbas et al. | A model-driven framework for security labs using blockchain methodology | |
US20220247570A1 (en) | Content use system, permission terminal, browsing terminal, distribution terminal, and content use program | |
Patel et al. | EMRs with blockchain: a distributed democratised electronic medical record sharing platform | |
KR20200095203A (en) | Method and system for managing electronic document | |
Hemalatha et al. | Utilization of blockchain technology to overthrow the challenges in healthcare industry | |
CN106575341A (en) | Composite document access |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200807 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210527 |
|
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: 20210615 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210628 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6915505 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |