JP6571609B2 - ブロックチェーンを作成するシステム及びプログラム - Google Patents

ブロックチェーンを作成するシステム及びプログラム

Info

Publication number
JP6571609B2
JP6571609B2 JP2016148954A JP2016148954A JP6571609B2 JP 6571609 B2 JP6571609 B2 JP 6571609B2 JP 2016148954 A JP2016148954 A JP 2016148954A JP 2016148954 A JP2016148954 A JP 2016148954A JP 6571609 B2 JP6571609 B2 JP 6571609B2
Authority
JP
Japan
Prior art keywords
block
hash value
chain
lower chain
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.)
Active
Application number
JP2016148954A
Other languages
English (en)
Other versions
JP2018018348A (ja
Inventor
清本 晋作
晋作 清本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2016148954A priority Critical patent/JP6571609B2/ja
Publication of JP2018018348A publication Critical patent/JP2018018348A/ja
Application granted granted Critical
Publication of JP6571609B2 publication Critical patent/JP6571609B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本開示は、仮想通貨システム等において使用され、取引の正当性を保証するためのブロックチェーンの作成技術に関する。
非特許文献1は、仮想通貨システムにおいて取引の正当性を保証するため、所謂、ブロックチェーンを作成することを開示している。まず、図1を用いてブロックチェーンの概要について述べる。図1において直前ブロック51は、既に閉じられており(クローズ)、現在ブロック52がオープンの状態である。なお、本例においては説明の簡略化のため、図1のブロックチェーンは所定の管理サーバが管理・作成しているものとする。しかしながら、実際には、ブロックチェーンは、複数の装置により管理される。管理サーバは、直前ブロック51をクローズすると、現在ブロック52を作成するが、その際、現在ブロック52に、直前ブロック51のデータの内の所定データのハッシュ値を、ブロック51のハッシュ値521として現在ブロック52に書込む。仮想通貨の受け渡しを行う複数の端末は、ピア・トゥ・ピア・ネットワークを構成しており、仮想通貨の受け渡し(以下、個々の仮想通貨の受け渡しを取引と呼ぶ。)が行われると、その取引を示す情報は管理サーバに通知される。なお、この情報は、認証技術により改竄できない様になっている。管理サーバは、現在ブロック52に、各取引を示す情報のハッシュ値を、取引のハッシュ値522として追記してゆく。
また、ピア・トゥ・ピア・ネットワークに参加している各端末は、現在ブロック52が作成されると、現在ブロック52のナンス(Nonce)値523を見つける作業を行う。ナンス値523は、ハッシュ値521と、ハッシュ値522と、ナンス値523とを連結したデータのハッシュ値が、所定の条件、例えば、最初の所定数のビットが総て"0"になるといった条件を満足させる値である。ハッシュ関数は一方向関数であるため、ナンス値523を見つける作業は、適当に生成した値と、ハッシュ値521と、その時点におけるハッシュ値522とを連結したデータのハッシュ値を求め、その値が所定の条件を満たしているか否かを判定することを順次繰り返す必要がある。しかしながら、多数の端末がこの作業に参加しているため、当該所定の条件を満たすナンス値523を見つける端末が現れる。この端末は、見つけたナンス値523を管理サーバ経由で現在ブロック52に書込み、さらに、当該所定の端末の秘密鍵で、ハッシュ値521と、その時点におけるハッシュ値522と、書込んだナンス値523の認証情報を生成し、この認証情報も現在ブロック52に書込む(図示せず)。これにより、現在ブロック52はクローズされ、次のブロックが作成される。この次のブロックには、直前ブロック51のハッシュ値521と、閉じられた時点におけるハッシュ値522と、書込まれたナンス値523とを連結したデータのハッシュ値が書き込まれる。
上述した様に、ナンス値523を見つける作業は試行錯誤的に行われる。しかしながら、多数の端末が並行してこの作業を行うため、例えば10分程度といった所定の条件に応じた時間でナンス値を見つける端末が現れる。なお、所定の条件、例えば、ハッシュ値の最初の連続する"0"となる数の条件を変更することで、ナンス値523が見つけられるまでの時間を調整することができる。取引内容を示す情報そのものは各端末に分散して配置されているが、ブロックチェーンには、取引のハッシ値が格納されている。したがって、ブロックチェーンが正しいものとすると、ブロックチェーンの各ブロックの内容と、各端末に分散配置されている取引を示す情報とを比較することで、各取引の正当性を確認することができる。
また、ナンス値523を見つける作業は、多数の端末が並行して行うためある程度の時間内に完了するが、一部の悪意のある端末がブロックチェーンを書き換えようとしても、少数の端末では、ナンス値523を見つける作業に非常に時間がかかり、その間に、正当に計算されたブロックが伸びていく。つまり、一部の悪意のある端末がブロックチェーンを書き換えることも困難であり、ブロックチェーンそのものの正当性も担保される。
図2は、図1にて説明したブロックチェーンの変形態様である。図1においては、現在ブロック52に取引のハッシュ値522を書込みつつ、ナンス値523を見つける作業を各端末が行っていた。図2においては、ブロック51がクローズされると、オープン状態のブロック53が作成され、その後の取引のハッシュ値は、ブロック53にハッシュ値532として書込まれる。つまり、オープン状態であるブロック52に格納されたブロック51のハッシュ値521と、取引のハッシュ値522の値は固定される。その状態で、各端末はブロック52のナンス値523を見つける作業を行い、ナンス値523が見つかると、ブロック52はクローズされ、ブロック53の次のブロックが作成される。また、ブロック52の内容が確定したことにより、ブロック52のハッシュ値がブロック53に書込まれ、各端末は、ブロック53のナンス値を見つける作業を開始する。
非特許文献1に記載のブロックチェーンでは、取引量が巨大になるにつれスケーラビリティの問題が顕在化する。これは、非特許文献1のブロックチェーンは、ブロックが一列に繋がった構成であり、処理の並列化が困難であるからである。このため、非特許文献2は、木構造のブロックチェーンにより処理の並列化を行うことを開示しているが、十分に並列化されているとは言えない。また、非特許文献3は、有向グラフにより並列化を行う構成を開示しているが、処理のオーバヘッドが発生している。
Satoshi Nakamoto "Bitcoin:A peer−to−peer electronic cash system"、2008年 Sompolinsky, Y. et al.、"Accelerating bitcoin´s transaction processing.Fast money grows on trees,not chains"、IACR Cryptology ePrint Archive 2013 Lewenberg,Y. , et al.、"Inclusive block chain protocols"、In:Financial Cryptography and Data Security、19th International Conference,FC2015、2015年1月26日〜30日
本発明は、並列した処理でブロックチェーンを作成するシステム及びプログラムを提供するものである。
本発明の一側面によると、ネットワークに接続する複数の端末の間における取引の正当性を保証するためブロックチェーンを作成するシステムであって、前記ネットワークには、第1〜第N(Nは2以上の整数)オーバレイネットワークが構築され、前記複数の端末の各端末はいずれかのオーバレイネットワークに参加し、前記ブロックチェーンは、上位チェーンと、第1〜第Nオーバレイネットワークそれぞれに対応する第1〜第N下位チェーンとに分けられ、前記システムは、前記上位チェーンのオープン状態である第1ブロックに対するナンス値を前記ネットワークに接続する複数の端末の何れかが見つけると、前記第1ブロックをクローズして、前記第1ブロックの次のオープン状態である第2ブロックに、前記第1ブロックの所定データのハッシュ値である第1ハッシュ値を設定する上位チェーン管理手段と、第k(kは1からNの整数)オーバレイネットワークに接続する端末が行う取引に関する情報を第k下位チェーンのオープン状態であるブロックに記録し、当該第k下位チェーンのオープン状態である第3ブロックに対するナンス値を前記複数の端末の何れかが見つけると、前記第3ブロックをクローズして、前記第3ブロックの次のオープン状態である第4ブロックに、前記第3ブロックの所定データのハッシュ値である第2ハッシュ値を設定する下位チェーン管理手段と、を備えており、前記上位チェーン管理手段は、前記第1ブロックをクローズすると前記第1ハッシュ値を前記下位チェーン管理手段に通知し、前記下位チェーン管理手段は、前記上位チェーン管理手段から前記第1ハッシュ値が通知されると、オープン状態である第k下位チェーンのブロックに通知された前記第1ハッシュ値を設定し、前記上位チェーンのブロックに対するナンス値の数は、前記第k下位チェーンのブロックに対するナンス値の数より少ないことを特徴とする。
本発明によると、並列した処理でブロックチェーンを作成することができる。
ブロックチェーンの説明図。 ブロックチェーンの説明図。 一実施形態によるシステムの構成図。 一実施形態によるブロックチェーンの作成方法の説明図。 一実施形態によるブロックチェーンの作成方法の説明図。 一実施形態によるブロックチェーンの作成方法の説明図。 一実施形態によるブロックチェーンの作成方法の説明図。 一実施形態によるブロックチェーンの作成方法の説明図。 一実施形態によるブロックチェーンの作成のシーケンス図。 一実施形態によるシステムのブロック構成図。 一実施形態によるブロックチェーンの作成方法の説明図。 一実施形態によるブロックチェーンの作成方法の説明図。 一実施形態によるブロックチェーンの作成方法の説明図。
<第一実施形態>
以下、本発明の例示的な実施形態について図面を参照して説明する。なお、以下の各図においては実施形態の説明に必要ではない構成要素については図から省略する。また、以下の実施形態は例示であり本発明を実施形態の内容に限定するものではない。まず、実施形態での用語について説明する。上述した様に、ブロックに記録される情報には、1つ前のブロックの所定データのハッシュ値と、取引のハッシュ値と、ナンス値と、ナンス値を見つけた端末の認証情報があるが、以下の説明では、1つ前のブロックのハッシュ値をブロック・ハッシュ値と呼び、取引のハッシュ値を取引ハッシュ値と呼ぶものとする。また、ナンス値は、ブロック・ハッシュ値と、取引ハッシュ値と、当該ナンス値とを連結したデータのハッシュ値が所定条件を満たすものであるが、この連結したデータのハッシュ値を連結ハッシュ値と呼ぶものとする。なお、図1及び図2に示す様に、あるブロックの連結ハッシュ値は、次のブロックのブロック・ハッシュ値となる。
また、図1及び図2を用いて説明した様に、ナンス値を見つける作業を行っているブロック、つまり、クローズ対象のブロックの取引ハッシュ値を取引に応じて更新する方法(図1)と、クローズ対象の次のブロックの取引ハッシュ値を取引に応じて更新する方法(図2)が存在するが、以下では、クローズ対象の取引ハッシュ値を取引に応じて更新する方法を用いて説明する。しかしながら、本発明は、クローズ対象のブロックの次のブロックの取引ハッシュ値を取引に応じて更新する方法にも適用できる。また、ブロックを閉じる際には、ナンス値を見つけた端末の認証情報が当該ブロックに格納されるが、本実施形態の説明には必要ないため、以下の説明においては当該認証情報を格納する処理については省略する。なお、本実施形態では、認証情報は、連結ハッシュ値やブロック・ハッシュ値の計算対象外とする。しかしながら、認証情報をブロック・ハッシュ値の計算対象としても良い。
図3は、本実施形態によるシステムの構成図である。本実施形態の取引記録システムは、ブロックチェーンを管理するため、上位サーバ1と、管理サーバ21と、管理サーバ22とを備えている。ピア・トゥ・ピア(P2P)ネットワーク31及び32は、例えば、インターネット上に構成されるオーバレイネットワークであり、P2Pネットワーク31及び32には、取引を行う複数の端末がそれぞれ参加している。例えば、1つのP2Pネットワーク31、32を、日本、米国といった地域毎に形成することができる。管理サーバ21は、P2Pネットワーク31に参加する端末が行う取引についてのブロックチェーンを管理する。同様に、管理サーバ22は、P2Pネットワーク32に参加する端末が行う取引についてのブロックチェーンを管理する。以下、管理サーバ21及び管理サーバ22が管理するブロックチェーンを下位チェーンと呼ぶ。特に、管理サーバ21が管理するチェーンを第1下位チェーンと呼び、管理サーバ22が管理するチェーンを第2下位チェーンと呼ぶものとする。そして、上位サーバ1は、管理サーバ21及び管理サーバ22が管理するブロックチェーンを統合する上位チェーンを管理する。なお、図1においては、2つのP2Pネットワークがあり、かつ、2つの管理サーバが対応するP2Pネットワークに参加する端末が行う取引についてのブロックチェーンを管理しているが、P2Pネットワークの数は2つに限定されず、3以上であっても良い。
以下、図4〜図8を参照して、本実施形態によるブロックチェーンの作成方法について説明する。図4において、ブロック61は、上位サーバ1が管理する上位チェーンのブロックであり、図4は、ブロック61がクローズされたときの処理の説明図である。なお、ブロック61が形成される以前において、下位チェーンにはブロックが存在していなかったものとする。上位サーバ1は、ブロック61がクローズされるとその旨を管理サーバ21及び22に通知する。このとき、上位サーバ1は、ブロック61のブロック・ハッシュ値を管理サーバ21及び22に通知し、かつ、ブロック62を作成する。図4に示す様に、上位サーバ1は、ブロック62にブロック61のブロック・ハッシュ値を設定する。
管理サーバ21は、ブロック61がクローズされたことを示す通知を上位サーバ1から受け取ると、第1下位チェーンのブロック71を作成する。管理サーバ21は、このブロック71に上位サーバ1から通知されたブロック61のブロック・ハッシュ値を設定する。同様に、管理サーバ22は、ブロック61が閉じられたことを示す通知を上位サーバ1から受け取ると、第2下位チェーンのブロック81を作成する。管理サーバ22は、このブロック81に上位サーバ1から通知されたブロック61のブロック・ハッシュ値を設定する。
管理サーバ21は、ブロック71がオープンの間、P2Pネットワーク31に参加している端末に関する取引ハッシュ値をブロック71に追加する。同様に、管理サーバ22は、ブロック81がオープンの間、P2Pネットワーク32に参加している端末に関する取引ハッシュ値をブロック81に追加する。P2Pネットワーク31に参加している端末は、ブロック71が作成されると、ブロック71に追加するナンス値を見つける作業を開始する。なお、ブロック71のナンス値を求めるのに必要な、ブロック71のデータは、P2Pネットワーク31に参加している端末が閲覧可能となっている。ブロック71に追加するナンス値が見つかると、当該ナンス値を見つけた端末は、管理サーバ21に当該ナンス値を通知し、これにより、管理サーバ21は、通知されたナンス値をブロック71に追加してブロック71をクローズする。ブロック71をクローズすると、管理サーバ21は、図5に示す様に、ブロック72を作成する。なお、管理サーバ21は、ブロック72にブロック71のブロック・ハッシュ値を設定する。また、ブロック71をクローズすると、管理サーバ21は、ブロック71のブロック・ハッシュ値を上位サーバ1に通知し、上位サーバ1は、ブロック71のブロック・ハッシュ値をブロック62に追加する。図5は、ブロック71がクローズされたことによりブロック72が作成されたが、ブロック81は、オープン状態のままであるときを示している。なお、P2Pネットワーク32に参加している端末も、ブロック81が作成されたことにより、ブロック81に追加するナンス値を見つける作業を行っている。
ブロック81に追加するナンス値が見つかると、当該ナンス値を見つけた端末は、管理サーバ22を介してそのナンス値をブロック81に追加し、これによりブロック81はクローズされる。ブロック81がクローズされると、管理サーバ22は、図6に示す様に、ブロック82を作成する。管理サーバ22は、ブロック82にブロック81のブロック・ハッシュ値を設定する。また、ブロック81がクローズされると、管理サーバ22は、ブロック81のブロック・ハッシュ値を上位サーバ1に通知し、上位サーバ1は、ブロック81のブロック・ハッシュ値をブロック62に追加する。図6は、ブロック81がクローズされたことによりブロック82が作成され、ブロック72及びブロック82が共にオープン状態であるときを示している。なお、P2Pネットワーク31に参加している端末は、ブロック72に追加するナンス値を見つける作業を行っており、P2Pネットワーク32に参加している端末は、ブロック82に追加するナンス値を見つける作業を行っている。
図7は、ブロック72に追加するナンス値が見つかり、ブロック72がクローズされ、ブロック73が作成された状態を示している。ブロック73には、ブロック72のブロック・ハッシュ値が設定される。また、ブロック72がクローズされたたことにより、管理サーバ21は、ブロック72のハッシュ値を上位サーバ1に通知し、上位サーバ1は、ブロック71のブロック・ハッシュ値を削除し、代わりに、ブロック72のブロック・ハッシュ値をブロック62に追加する。
なお、ブロック62が作成されたことにより、P2Pネットワーク31及び32に参加している端末は、ブロック62のナンス値を見つける作業を開始している。図8は、図7に示す、ブロック73及びブロック82がオープン状態であるときに、ブロック62のナンス値が見つかった場合の処理の説明図である。なお、ブロック62のナンス値は、当該ナンス値と、ブロック61のブロック・ハッシュ値と、各下位チェーンの最後にクローズされたブロックそれぞれのブロック・ハッシュ値とを連結したデータのハッシュ値が所定の条件を満たすことになる値である。まず、上位サーバ1は、ブロック62をクローズすると、ブロック62のクローズと、ブロック62のブロック・ハッシュ値を管理サーバ21及び22に通知する。管理サーバ21は、これにより、オープン状態であるブロック73に設定されたブロック72のブロック・ハッシュ値を削除し、ブロック62のブロック・ハッシュ値をブロック73に設定する。なお、それまでにブロック73に追加されていた取引ハッシュ値はそのままとする。同様に、管理サーバ22は、オープン状態であるブロック82に設定されたブロック81のブロック・ハッシュ値を削除し、ブロック62のブロック・ハッシュ値をブロック82に追加する。なお、それまでにブロック81に追加されていた取引ハッシュ値はそのままとする。これにより、ブロック73及びブロック82は、ブロック62の下流側のブロックとなる。以後、同様に、上位チェーンと、下位チェーンが追加されてゆく。
ここで、本実施形態では上位チェーンのブロックをクローズするためのナンス値を見つけるために必要な時間が、下位チェーンのブロックをクローズするためのナンス値を見つけるために必要な時間より長くなる様に、ナンス値に対する条件を設定する。言い換えると、上位チェーンのブロックのナンス値の数が、下位チェーンのブロックのナンス値の数より少なくなる様に、ナンス値に対する条件を設定する。なお、ナンス値の桁数、つまり、ビット数は決まっており、ナンス値の数は有限とする。例えば、ナンス値の条件が、連結ハッシュ値の最初から所定数のビットが総て0である場合、上位チェーンで要求する0の連続数を、下位チェーンで要求する0の連続数より長くする。したがって、上位チェーンのブロックがクローズされるまでに、下位チェーンでは、複数のブロックが形成される。この様に、下位チェーンでは比較的緩い条件に基づきブロックを伸ばしておき、上位チェーンでは比較的厳しい条件でブロックをクローズすることで、処理を並列化しつつ、悪意のある端末がブロックチェーンを改竄することを防ぐことができる。
図9は、図4から図8で説明した例に対応するシーケンス図である。上位サーバ1は、ブロック61がクローズされると、ブロック61のブロック・ハッシュ値を管理サーバ21及び22に通知する。そして、上位サーバ1、管理サーバ21及び22は、それぞれ、ブロック62、71及び81を作成する。ブロック62、71及び81には、ブロック61のブロック・ハッシュ値が設定される。また、管理サーバ21及び22は、それぞれ、対応するP2Pネットワークに参加している端末に関する取引の取引ハッシュ値をブロック71及び81に追加する。また、取引に参加している総ての端末は、ブロック62のナンス値を見つける作業を開始する。また、P2Pネットワーク31に参加している端末はブロック71のナンス値を見つける作業を開始し、P2Pネットワーク32に参加している端末はブロック81のナンス値を見つける作業を開始する。
本例では、まず、ブロック71がクローズされ、これにより管理サーバ21は、ブロック71のブロック・ハッシュ値を上位サーバ1に通知する。これにより、上位サーバ1は、ブロック71のブロック・ハッシュ値をブロック62に追加する。また、管理サーバ21は、ブロック72を作成する。管理サーバ21は、ブロック72にブロック71のブロック・ハッシュ値を追加し、かつ、P2Pネットワーク31に参加している端末に関する取引の取引ハッシュ値をブロック72に追加する。また、P2Pネットワーク31に参加している端末はブロック72のナンス値を見つける作業を開始する。
その後、ブロック81がクローズされ、管理サーバ22は、ブロック81のブロック・ハッシュ値を上位サーバ1に通知し、これにより、上位サーバ1は、ブロック81のブロック・ハッシュ値をブロック62に追加する。また、管理サーバ22は、ブロック82を作成する。管理サーバ22は、ブロック82にブロック81のブロック・ハッシュ値を追加し、かつ、P2Pネットワーク32に参加している端末に関する取引の取引ハッシュ値をブロック82に追加する。また、P2Pネットワーク32に参加している端末はブロック82のナンス値を見つける作業を開始する。
その後、ブロック72がクローズされ、これにより管理サーバ21は、ブロック72のブロック・ハッシュ値を上位サーバ1に通知する。上位サーバ1は、第1下位チェーンに関するブロック・ハッシュ値として、ブロック71のブロック・ハッシュ値をブロック62に設定していたが、ブロック72のブロック・ハッシュ値が通知されたことにより、第1下位チェーンのブロック・ハッシュ値をブロック72のブロック・ハッシュ値に更新する。また、管理サーバ21は、ブロック73を作成する。管理サーバ21は、ブロック73にブロック72のブロック・ハッシュ値を追加し、かつ、P2Pネットワーク31に参加している端末に関する取引の取引ハッシュ値をブロック73に追加する。また、P2Pネットワーク31に参加している端末はブロック73のナンス値を見つける作業を開始する。
その後、ブロック62がクローズされたことにより、上位サーバ1は、ブロック62のブロック・ハッシュ値を管理サーバ21及び22に通知する。これにより管理サーバ21及び22は、その時点でオープン状態であるブロック73及び82の変更作業を行う。変更作業は、ブロック73の1つ上流のブロックをブロック72からブロック62に移す作業と、ブロック82の1つ上流のブロックをブロック81からブロック62に移す作業である。具体的には、ブロック73及びブロック82のブロック・ハッシュ値をブロック62のブロック・ハッシュ値に変更する。
なお、本実施形態では、図3に示す様に上位サーバ1が上位チェーンを管理し、管理サーバ21が第1下位チェーンを管理し、管理サーバ22が第2下位チェーンを管理している。ここで、管理サーバ21は、1つのサーバ装置に対応しても、複数のサーバ装置に対応しても良い。つまり、管理サーバ21は、複数のサーバ装置で構成することもできる。管理サーバ21を複数のサーバ装置、例えば、複数のコンピュータで構成する場合、これらコンピュータは分散配置することができる。この場合、複数のコンピュータはネットワークを介して相互接続され、各コンピュータが協働して上述した管理サーバ21として機能する。なお、上位サーバ1や管理サーバ22についても同様である。また、本実施形態では、第1下位チェーンのブロックのナンス値については、P2Pネットワーク31に参加している端末が探索し、第2下位チェーンのブロックのナンス値については、P2Pネットワーク32に参加している端末が探索するものとしたが、P2Pネットワーク31に参加している端末とP2Pネットワーク32に参加している端末の両方が各下位チェーンのナンス値を見つける構成であっても良い。また、P2Pネットワーク31に参加している端末とP2Pネットワーク32に参加している端末の総てがナンス値を見つける作業に参加するのではなく、その内の一部の端末がナンス値を見つける作業に参加する構成であっても良い。
<第二実施形態>
続いて、第二実施形態について第一実施形態との相違点を中心に説明する。第一実施形態では、予めP2Pネットワークと、当該P2Pネットワークに参加する端末が行う取引に関する下位チェーンを管理する管理サーバが設けられていた。しかしながら、ネットワークに参加する端末がP2Pネットワークを動的に構成できる様にすることが好ましい。本実施形態では、その様な構成について説明する。
図10は、本実施形態によるシステム構成図である。ネットワーク9は、例えば、インターネットといった広域網であり、図示しない多数の端末が接続している。このネットワーク9に接続している端末の幾つかの端末により、ネットワーク9には、例えば、P2Pネットワークといった、N個(Nは2以上の整数)のオーバレイネットワーク(第1オーバレイネットワークから第Nオーバレイネットワーク)が構築されている。例えば、ネットワーク9に接続している端末が、新たなオーバレイネットワークを構築すると、新たなオーバレイネットワークを構築した端末は、管理システム4の下位チェーン管理部42に新たなオーバレイネットワークの構築を通知する。なお、その際、下位チェーン管理部42は、例えば、公知の認証アルゴリズム等により新たなオーバレイネットワークの構築を通知した端末の認証を行う。認証が成功すると、下位チェーン管理部42は、この新たなオーバレイネットワーク(N+1番目)の下位チェーンの管理を開始する。
以下では、現在、図10に示す通り、N個のオーバレイネットワークが存在するものとして説明を行う。管理システム4の上位チェーン管理部1の動作は、第一実施形態の上位サーバ1と同様である。また、管理システム4の下位チェーン管理部42の動作は、第一実施形態の管理サーバと同様である。つまり、下位チェーン管理部42は、第kオーバレイネットワーク(kは1からNの整数)に参加している取引の内容を保証するための第k下位チェーン(kは1からNの整数)それぞれの管理を行う。
具体的には、上位チェーンのオープン状態である第1ブロックに対するナンス値をネットワーク9に接続する複数の端末の何れかが見つけると、上位チェーン管理部1は、当該第1ブロックをクローズして、当該第1ブロックの次のオープン状態である第2ブロックに、当該第1ブロックの所定データのハッシュ値である第1ハッシュ値を設定する。なお、図1に示すブロックの伸ばし方の場合、第2ブロックは新たに生成される。一方、図2に示すブロックの伸ばし方の場合、第2ブロックは既に生成されている。上位チェーン管理部1は、第1ブロックをクローズすると、その第1ハッシュ値を下位チェーン管理部42に通知する。
下位チェーン管理部42は、第kオーバレイネットワークに接続する端末が行う取引に関する情報を第k下位チェーンのオープン状態であるブロックに記録する。また、当該第k下位チェーンのオープン状態である第3ブロックに対するナンス値を第kオーバレイネットワークに参加する端末のいずれかが見つけると、第3ブロックをクローズして、第3ブロックの次のオープン状態である第4ブロックに、第3ブロックの所定データのハッシュ値である第2ハッシュ値を設定する。なお、図1に示すブロックの伸ばし方の場合、第4ブロックは新たに生成される。一方、図2に示すブロックの伸ばし方の場合、第4ブロックは既に生成されている。そして、下位チェーン管理部42は、上位チェーン管理部41から第1ハッシュ値が通知されると、オープン状態である各下位チェーンのブロックに設定されている第2ハッシュ値を第1ハッシュ値に置換する。
また、下位チェーン管理部42は、第kチェーンのオープン状態のブロックをクローズする度に当該ブロックの第2ハッシュ値を上位チェーン管理部1に通知する。上位チェーン管理部1は、下位チェーン管理部42から、第kチェーンのブロックについての第2ハッシュ値を受け取ると、上位チェーンのオープン状態であるブロックに記録されている第kチェーンのハッシュ値を削除し、受け取った第kチェーンの第2ハッシュ値を上位チェーンのオープン状態であるブロックに記録する。
なお、第一実施形態と同様に、上位チェーンのブロックに対するナンス値の数は、各下位チェーンのブロックに対するナンス値の数より少なくなる様に、ナンス値に対する条件を設定する。つまり、比較的、短い周期で各下位チェーンを伸ばし、上位チェーンを各下位チェーンより長い周期で伸ばしていく。これは、各下位チェーンのナンス値に対する条件より、上位チェーンのナンス値に対する条件を厳しくすることで達成できる。各下位チェーンのナンス値に対する条件は比較的緩いため、悪意のある端末が下位チェーンを書き換える可能性が高くなるが、ある程度の周期でナンス値に対する条件が比較的厳しい上位ブロックをクローズするため、処理の並列化を行いつつ、ブロックチェーンの改竄を防ぐことができる。
<第三実施形態>
以下、第三実施形態について、第一実施形態及び第二実施形態との相違点を中心に説明する。図8に示す様に、第一実施形態及び第二実施形態において、ある上位チェーンのブロックから伸びる各下位チェーンの1連のブロックは、上位チェーンの当該ブロックの1つ下流側のブロックに繋がるものであった。例えば、図8においては、ブロック61から伸びる第1下位チェーン及び第2下位チェーンのブロックは、ブロック61の1つ下流側のブロック62に繋がっている。本実施形態では、図12に示す様に、ある上位チェーンのブロックから伸びる各下位チェーンのブロックは、上位チェーンの当該ブロックの2つ下流側のブロックに繋がる。なお、図12と、以下に説明する図11、図13において、ブロック内の"ブロックxx"との表示は、ブロックxxのブロック・ハッシュ値を示している。例えば、図12においては、上位チェーンのブロック61から伸びる第1下位チェーン及び第2下位チェーンのブロックは、ブロック61の1つ下流側のブロック62ではなく、2つ下流側のブロック63に繋がっている。同様に、図では示されていないが、ブロック62から伸びる第1下位チェーン及び第2下位チェーンのブロックは、最終的には、ブロック63の1つ下流側のブロックに繋がることになる。以下、図11〜図13を用いて詳細に説明する。
図11は、上位チェーンにおいて、ブロック61がクローズされ、ブロック62がオープン状態であるときを示している。ブロック62には、ブロック61のブロック・ハッシュ値と、ブロック61がクローズされたときに、最後にクローズされていたブロック70及びブロック80のブロック・ハッシュ値が格納されている。なお、ブロック70は、第1下位チェーンのブロックであり、ブロック80は、第2下位チェーンのブロックである。なお、ブロック71及びブロック81には、ブロック61のブロック・ハッシュ値が格納されている。図11において、第1下位チェーンは、ブロック71〜ブロック73がクローズされ、ブロック74がオープン状態である。また、第2下位チェーンは、ブロック81がクローズされ、ブロック82がオープン状態である。
図12は、図11の状態において、ブロック62のナンス値が見つかり、これにより、ブロック62がクローズされ、ブロック63が作成されたときを示している。オープン状態で作成されるブロック63には、上位チェーンの1つ上流側のブロック62のブロック・ハッシュ値が格納される。さらに、ブロック63には、各下位チェーンの最後にクローズされたブロックのブロック・ハッシュ値が格納される。図12においては、第1下位チェーンにおいて最後にクローズされたブロック73のブロック・ハッシュ値と、第2下位チェーンにおいて最後にクローズされたブロック81のブロック・ハッシュ値が格納されている。また、第一実施形態と同様に、ブロック62がクローズされたときに、オープン状態であった各下位チェーンのブロックは、その1つ上流側のブロックの変更が行われる。具体的には、ブロック62がクローズされたときにオープン状態であった第1下位チェーンのブロック74と、第2下位チェーンのブロック82は、ブロック62が1つ上流側の上位ブロックとなる様に変更されている。これは、ブロック74のブロック・ハッシュ値を、ブロック73のものからブロック62のものに変更し、ブロック82のブロック・ハッシュ値を、ブロック81のものからブロック62のものに変更することで行われる。
例えば、第二実施形態と同様に、下位チェーンを動的に追加したり削除したりする構成を考える。このとき、少数の悪意のあるユーザが下位チェーンを追加し、不正な取引をブロックチェーンに追加することが考えられる。したがって、本実施形態では、上位チェーンのブロックをクローズする際に、各下位チェーンについて、クローズする1つ前の上位ブロックから伸びるブロック数を判定し、このブロック数が閾値以下の下位チェーンを削除することができる。以下では、ある上位チェーンのブロックから伸びる各下位チェーンの部分を枝部分と呼ぶものとする。例えば、図12の状態においては、ブロック71〜73は、第1下位チェーンの1つの枝部分である。同様に、ブロック74は、第1下位チェーンのブロックであるが、ブロック71〜73とは異なる枝部分である。本実施形態では、上位チェーンのブロックをクローズする際に、オープン状態である下位チェーンを含む枝部分のブロック数が閾値以下である場合、当該枝部分を削除することができる。
図13は、枝部分を削除する場合を示している。なお、ここでは閾値を2としている。図11においてブロック62がクローズされたものとする。このとき、第1下位チェーンのオープン状態のブロックはブロック74である。オープン状態のブロック74を含む第1下位チェーンの枝部分のブロック数は4(ブロック71〜74)であり、閾値より大きい。一方、第2下位チェーンのオープン状態のブロック82を含む枝部分のブロック数は2であり、閾値以下である。よって、上位チェーン管理部41は、図13に示す様に、生成するブロック63に、ブロック62とブロック73のブロック・ハッシュ値を格納するが、ブロック81のブロック・ハッシュ値を設定しない。なお、下位チェーン管理部42は下位チェーンのブロックをクローズすると、当該ブロックのブロック・ハッシュ値を上位チェーン管理部41に通知するため、上位チェーン管理部41は、各下位チェーンのブロック数を把握できる。また、上位チェーン管理部41は、下位チェーン管理部42にブロック62がクローズされたことと、ブロック62のブロック・ハッシュ値を通知する。このとき、下位チェーン管理部42は、オープン状態のブロックを含む枝部分のブロック数が閾値以下である第2下位チェーンのブロック82及び81を削除する。一方、ブロック数が閾値より大きい第1下位チェーンについては図12と同様の処理を行う。
上述した様に、ナンス値を見つける作業は試行錯誤的に行われるが、多くの端末が並行して行うためある程度の時間内にナンス値が見つけられてブロックはクローズされる。しかしながら、少数の悪意のあるユーザが少数の端末により下位チェーンを作成した場合、当該下位チェーンについては、ナンス値を見つけるのにかかる時間が、他の正当な下位チェーンより長くなる。したがって、上位ブロックをクローズするときに、前回上位ブロックをクローズしてから生成されたブロック数の短い下位チェーンは、不正な端末による不正な取引を記録したものである可能性が高く、当該下位チェーンのブロックをブロックチェーンから除くことで不正な取引が記録されることを防ぐことができる。
なお、本実施形態では、図12に示す様に、上位チェーンのブロックがクローズされた際に、オープン状態である下位チェーンのブロックは、その1つ上流側のブロックを変更する作業を行っていた。しかしながら、オープン状態の下位チェーンのブロックについては、そのままとし、更なるオープン状態の下位チェーンのブロックを作成する形態であっても良い。例えば、図11の状態でブロック62がクローズされた際、ブロク74、ブロック82については、そのまま、ブロック73、81の1つ下流側のブロックとし、ブロック62の下流側に、新たなオープン状態のブロックを作成する構成とすることができる。なお、この新たに作成する下位チェーンのブロックにはブロック62のブロック・ハッシュ値を設定する。そして、新たな取引の取引ハッシュ値は、この新たに作成した下位チェーンのブロックに追加してゆく。そして、ブロック74及びブロック82のナンス値が見つかってクローズされると、それらブロックのブロック・ハッシュ値は、ブロック63に設定される。
なお、本発明による管理システム4は、1つ以上のコンピュータを協働させて上記管理システム4として動作させるプログラムにより実現することができる。なお、1つ以上のコンピュータは分散配置でき、その場合には、ネットワークを介して互いに接続される。また、これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。

Claims (9)

  1. ネットワークに接続する複数の端末の間における取引の正当性を保証するためブロックチェーンを作成するシステムであって、
    前記ネットワークには、第1〜第N(Nは2以上の整数)オーバレイネットワークが構築され、前記複数の端末の各端末はいずれかのオーバレイネットワークに参加し、
    前記ブロックチェーンは、上位チェーンと、第1〜第Nオーバレイネットワークそれぞれに対応する第1〜第N下位チェーンとに分けられ、
    前記システムは、
    前記上位チェーンのオープン状態である第1ブロックに対するナンス値を前記ネットワークに接続する複数の端末の何れかが見つけると、前記第1ブロックをクローズして、前記第1ブロックの次のオープン状態である第2ブロックに、前記第1ブロックの所定データのハッシュ値である第1ハッシュ値を設定する上位チェーン管理手段と、
    第k(kは1からNの整数)オーバレイネットワークに接続する端末が行う取引に関する情報を第k下位チェーンのオープン状態であるブロックに記録し、当該第k下位チェーンのオープン状態である第3ブロックに対するナンス値を前記複数の端末の何れかが見つけると、前記第3ブロックをクローズして、前記第3ブロックの次のオープン状態である第4ブロックに、前記第3ブロックの所定データのハッシュ値である第2ハッシュ値を設定する下位チェーン管理手段と、
    を備えており、
    前記上位チェーン管理手段は、前記第1ブロックをクローズすると前記第1ハッシュ値を前記下位チェーン管理手段に通知し、
    前記下位チェーン管理手段は、前記上位チェーン管理手段から前記第1ハッシュ値が通知されると、オープン状態である第k下位チェーンのブロックに通知された前記第1ハッシュ値を設定し、
    前記上位チェーンのブロックに対するナンス値の数は、前記第k下位チェーンのブロックに対するナンス値の数より少ないことを特徴とするシステム。
  2. 前記上位チェーンのブロックに対するナンス値は、当該ブロックのデータに対して第1条件を満たす値であり、
    前記第k下位チェーンのブロックに対するナンス値は、当該ブロックのデータに対して第2条件を満たす値であり、
    前記第1条件を満たすナンス値の数は、前記第2条件を満たすナンス値の数より少ないことを特徴とする請求項1に記載のシステム。
  3. 前記下位チェーン管理手段は、前記上位チェーン管理手段から前記第1ハッシュ値が通知されると、オープン状態である第k下位チェーンのブロックに設定された前記第2ハッシュ値を前記第1ハッシュ値に置換することを特徴とする請求項1又は2に記載のシステム。
  4. 前記下位チェーン管理手段は、第k下位チェーンのオープン状態のブロックをクローズする度に当該クローズしたブロックの前記第2ハッシュ値を前記上位チェーン管理手段に通知し、
    前記上位チェーン管理手段は、前記下位チェーン管理手段から通知される第kチェーンの最新の前記第2ハッシュ値を前記上位チェーンのオープン状態であるブロックに設定することを特徴とする請求項1から3のいずれか1項に記載のシステム。
  5. 前記下位チェーン管理手段は、第k下位チェーンのオープン状態のブロックをクローズする度に当該クローズしたブロックの前記第2ハッシュ値を前記上位チェーン管理手段に通知し、
    前記上位チェーン管理手段は、前記第1ブロックをクローズすると前記第2ブロックに前記下位チェーン管理手段から通知された第kチェーンの最新の前記第2ハッシュ値を設定することを特徴とする請求項1から3のいずれか1項に記載のシステム。
  6. 前記上位チェーン管理手段は、前記第1ブロックをクローズすると、各下位チェーンについて、前記第1ブロックの1つ前の前記上位チェーンのブロックである第5ブロックをクローズしてから前記第1ブロックをクローズするまでにクローズ又は生成されたブロック数と閾値を比較し、当該ブロック数が閾値未満である下位チェーンの前記第2ハッシュ値については、前記第2ブロックに設定しないことを特徴とする請求項5に記載のシステム。
  7. 前記下位チェーン管理手段は、前記上位チェーン管理手段から前記第1ハッシュ値が通知されると、各下位チェーンについて、前記第5ブロックがクローズされてから前記第1ブロックがクローズされるまでにクローズ又は生成したブロック数と前記閾値を比較し、当該ブロック数が閾値未満である下位チェーンについては、当該下位チェーンのブロックの内、前記第5ブロックがクローズされてからクローズしたブロック及びオープン状態のブロックを削除することを特徴とする請求項6に記載のシステム。
  8. 前記第kオーバレイネットワークに接続する端末が行う取引に関する前記情報は、当該取引を示す情報のハッシュ値であることを特徴とする請求項1から7のいずれか1項に記載のシステム。
  9. 請求項1から8のいずれか1項に記載のシステムとしてコンピュータを機能させることを特徴とするプログラム。
JP2016148954A 2016-07-28 2016-07-28 ブロックチェーンを作成するシステム及びプログラム Active JP6571609B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016148954A JP6571609B2 (ja) 2016-07-28 2016-07-28 ブロックチェーンを作成するシステム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016148954A JP6571609B2 (ja) 2016-07-28 2016-07-28 ブロックチェーンを作成するシステム及びプログラム

Publications (2)

Publication Number Publication Date
JP2018018348A JP2018018348A (ja) 2018-02-01
JP6571609B2 true JP6571609B2 (ja) 2019-09-04

Family

ID=61081905

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016148954A Active JP6571609B2 (ja) 2016-07-28 2016-07-28 ブロックチェーンを作成するシステム及びプログラム

Country Status (1)

Country Link
JP (1) JP6571609B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7040218B2 (ja) * 2018-03-29 2022-03-23 富士通株式会社 ブロックチェーンプログラム及びブロックチェーン方法
WO2019207804A1 (ja) * 2018-04-27 2019-10-31 株式会社東芝 改ざん検出システム及び改ざん検出方法
JP2019211821A (ja) * 2018-05-31 2019-12-12 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
CN109361734B (zh) * 2018-09-18 2021-04-20 百度在线网络技术(北京)有限公司 一种区块链的数据处理方法、装置、设备及介质
KR102110138B1 (ko) * 2018-10-02 2020-05-13 한국항공대학교산학협력단 멀티블록 구조를 갖는 블록체인 기반 트랜잭션 처리 장치 및 방법
JP2020076877A (ja) * 2018-11-08 2020-05-21 矢崎総業株式会社 セキュアロギングシステム
US11483347B2 (en) * 2018-12-05 2022-10-25 Akamai Technologies, Inc. High performance distributed system of record with secure interoperability to external systems
JP6694048B1 (ja) * 2018-12-20 2020-05-13 ぷらっとホーム株式会社 データ取引システム
KR102162764B1 (ko) * 2019-08-09 2020-10-07 씨토 주식회사 블록체인 데이터 기반의 자원 거래 시스템
CN110535658A (zh) * 2019-09-02 2019-12-03 紫光展锐(重庆)科技有限公司 区块链数据处理方法、装置及系统
CN114365132A (zh) * 2019-10-21 2022-04-15 株式会社东芝 篡改验证方法以及篡改验证系统
KR102275389B1 (ko) * 2019-10-22 2021-07-08 한국항공대학교산학협력단 블록 동기화 과정 생략 및 원격 저장소 제공을 위한 분산파일시스템 활용 블록 데이터 매핑 방법 및 노드 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150302401A1 (en) * 2014-04-18 2015-10-22 Ebay Inc. Distributed crypto currency unauthorized transfer monitoring system
JP6247193B2 (ja) * 2014-10-10 2017-12-13 山下 健一 広告閲覧促進システム、情報処理方法及びプログラム

Also Published As

Publication number Publication date
JP2018018348A (ja) 2018-02-01

Similar Documents

Publication Publication Date Title
JP6571609B2 (ja) ブロックチェーンを作成するシステム及びプログラム
US11658804B2 (en) Systems and methods for blockchains with serial proof of work
JP6955026B2 (ja) 並列処理ブロックチェーントランザクションのためのシステムおよび方法
US10630463B2 (en) Meta block chain
CN114514732B (zh) 用于区块链dag结构的共识协议的方法、计算系统和可读介质
Ali et al. Blockstack: A global naming and storage system secured by blockchains
JP2022110150A (ja) セキュアな投票及び配布に利用されるブロックチェーンが実装された計数システム及び方法
CA3044071A1 (en) Methods and apparatus for a distributed database that enables deletion of events
EP3559882A1 (en) Method for operating a blockchain
WO2020070515A1 (en) A consensus method and framework for a blockchain system
Cai et al. Hardening distributed and encrypted keyword search via blockchain
EP3709568A1 (en) Deleting user data from a blockchain
Ali et al. Bootstrapping trust in distributed systems with blockchains
Sookhak et al. Towards dynamic remote data auditing in computational clouds
TWI629884B (zh) 基於區塊鏈的節點推舉系統及其方法
US20240080181A1 (en) Blockchain Data Structures and Systems and Methods Therefor for Multipath Transaction Management
JP2023515369A (ja) 分散型データベース
JP6685968B2 (ja) データ管理システム、データ管理方法及びデータ管理プログラム
KR102389465B1 (ko) 블록 체인 생성 장치 및 방법
GB2587541A (en) A consensus method and framework for a blockchain system
CN112989405A (zh) 一种数据存证的可信化存储方法、装置、设备和存储介质
El Khanboubi et al. Exploiting Blockchains to improve Data Upload and Storage in the Cloud
CN112948847B (zh) 基于区块链的数据共享系统及数据正确性验证方法
US20110225425A1 (en) Preventing causality violations in decentralized distributed systems
Estrada Galinanes et al. Helical entanglement codes: An efficient approach for designing robust distributed storage systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190722

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190808

R150 Certificate of patent or registration of utility model

Ref document number: 6571609

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150