(57)【特許請求の範囲】
【請求項１】
複数のトランザクション生成装置によって生成されたトランザクションデータを含むブロックを連結したブロックチェーンデータに、新たなブロックを連結して、新たなブロックチェーンデータを生成するブロックチェーン生成装置であって、
前記ブロックチェーンデータと、前記ブロックチェーンに含まれていないトランザクションデータとを含む共有データを取得する同期手段と、
前記ブロックチェーンデータの前記トランザクションデータのうち、当該ブロックチェーン生成装置を用いる生成者の識別子に関連するトランザクションデータから、前記生成者の取引パターン量を算出する取引パターン量算出手段と、
前記取引パターン量算出手段が算出した前記取引パターン量に基づいて、前記生成者が、前記新たなブロックチェーンデータを生成する資格を有しているか否かを判定するブロック生成条件確認手段と、
前記ブロック生成条件確認手段が資格を有していると判定した場合、前記共有データを参照して、前記新たなブロックチェーンの生成を試みるブロックチェーン生成手段
とを備えることを特徴とするブロックチェーン生成装置。
【請求項２】
前記取引パターン量は、前記生成者の信用の指標である
ことを特徴とする請求項１に記載のブロックチェーン生成装置。
【請求項３】
前記取引パターン量は、
前記生成者の識別子に関連するトランザクションデータにおける、取引相手の識別子の各組み合わせにおける、前記取引相手の識別子の合計である
ことを特徴とする請求項１に記載のブロックチェーン生成装置。
【請求項４】
前記取引パターン量は、
前記生成者の識別子に関連するトランザクションデータにおける、取引相手の識別子のユニーク数である
ことを特徴とする請求項１に記載のブロックチェーン生成装置。
【請求項５】
複数のトランザクション生成装置によって生成されたトランザクションデータを含むブロックを連結したブロックチェーンデータに、新たなブロックを連結して、新たなブロックチェーンデータを生成するブロックチェーン生成方法であって、
コンピュータが、前記ブロックチェーンデータと、前記ブロックチェーンに含まれていないトランザクションデータとを含む共有データを取得するステップと、
前記コンピュータが、前記ブロックチェーンデータの前記トランザクションデータのうち、当該コンピュータを用いる生成者の識別子に関連するトランザクションデータから、前記生成者の取引パターン量を算出すステップと、
前記コンピュータが、前記生成者の取引パターン量に基づいて、前記生成者が、前記新たなブロックチェーデータンを生成する資格を有しているか否かを判定するステップと、
前記コンピュータが、前記生成者が、前記新たなブロックチェーンデータを生成する資格を有していると判定した場合、前記共有データを参照して、前記新たなブロックチェーンの生成を試みるステップ
とを備えることを特徴とするブロックチェーン生成方法。
【請求項６】
複数のトランザクション生成装置によって生成されたトランザクションデータを含むブロックを連結したブロックチェーンデータを検証するブロックチェーン検証装置であって、
前記ブロックチェーンデータを含む共有データを取得する同期手段と、
前記ブロックチェーンデータの前記トランザクションデータのうち、前記ブロックチェーンデータを生成した装置を用いる生成者の識別子に関連するトランザクションデータから、前記生成者の取引パターン量を算出する取引パターン量算出手段と、
前記取引パターン量算出手段が算出した前記取引パターン量に基づいて、前記生成者が、前記ブロックチェーンデータを生成する資格を有しているか否かを判定するブロック生成条件検証手段と、
前記ブロック生成条件検証手段が資格を有していると判定した場合、前記ブロックチェーンデータを承認するブロックチェーン検証手段
とを備えることを特徴とするブロックチェーン検証装置。
【請求項７】
複数のトランザクション生成装置によって生成されたトランザクションデータを含むブロックを連結したブロックチェーンデータを検証するブロックチェーン検証方法であって、
コンピュータが、前記ブロックチェーンデータを含む共有データを取得するステップと、
前記コンピュータが、前記ブロックチェーンデータの前記トランザクションデータのうち、前記ブロックチェーンデータを生成した装置を用いる生成者の識別子に関連するトランザクションデータから、前記生成者の取引パターン量を算出するステップと、
前記コンピュータが、前記生成者の取引パターン量に基づいて、前記生成者が、前記ブロックチェーンデータを生成する資格を有しているか否かを判定するステップと、
前記コンピュータが、前記生成者が、前記ブロックチェーンデータを生成する資格を有していると判定した場合、前記ブロックチェーンデータを承認するステップ
とを備えることを特徴とするブロックチェーン検証方法。
【請求項８】
コンピュータに、請求項１ないし請求項４および請求項６のいずれか１項に記載の手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のトランザクション生成装置によって生成されたトランザクションデータを含むブロックを連結したブロックチェーンデータを生成するブロックチェーン生成装置およびブロックチェーン生成方法、ブロックチェーンデータを検証するブロックチェーン検証装置およびブロックチェーン検証方法、ならびプログラムに関する。
【背景技術】
【０００２】
近年、ビットコイン（登録商標）などのデジタル仮想通貨が普及しつつある。このような仮想通貨では、中央集権的な管理を必要とせずに、信頼性を担保可能な仕組みが導入されている。ビットコイン（登録商標）などの仮想通貨において、ブロックチェーンと呼ばれる技術が用いられている。ブロックチェーン技術において、参加者間でやり取りされる情報の信頼性は、参加者全体で形成されるネットワーク内での合意形成のプロセスによって担保され、かつ、改ざんや二重使用などの不正を系全体で防ぐことで、ブロックチェーンの健全性が保たれる。ブロックチェーンは、参加者間の仮想通貨の取引情報（トランザクション）がブロックと呼ばれる単位でまとめられたものである。ブロックチェーンは、Ｐ２Ｐ（Ｐｅｅｒ  Ｔｏ  Ｐｅｅｒ）ネットワークにおいて参加者が共有する一つの巨大な元帳として機能する。
【０００３】
非特許文献１によれば、ブロックチェーンでは、デジタル署名を図２のように使用し、署名の連鎖によりコインの取引情報を表現する。
【０００４】
ところでブロックチェーンの仕組みによるデジタル仮想通貨では、ネットワークに参加する一つの端末が代表してネットワーク内にブロードキャストされた取引データをまとめて承認して、その取引情報を含めたブロックを生成し、他の端末に通知する。また、このプロセスに不正がないことを、システム全体、より具体的には、ブロックを生成する端末以外の複数の端末で検証する。ブロックを生成する端末は、ブロックの生成においてコストを必要とするものの、ブロックを生成した報酬として新規のコインを得ることが出来るため、ブロック生成の権利を得ようと参加者間では競争的プロセスが働く。
【０００５】
ここで、同時に複数の端末がブロックを生成すると、ブロックチェーンが分岐する可能性があるが、その後より長くブロックを伸ばしたチェーンが正式なチェーンとされる。即ち、最も生成コストをかけたブロックチェーンが、共有される唯一のブロックチェーンとして選ばれる。従って、攻撃者が改ざんや二重使用を行うためには、他のブロックチェーンよりも長くブロックをつながなければならないので、攻撃者はその分多くのコストをかける必要があり、攻撃が困難となる。
【０００６】
ブロックを生成する際に、参加者が提供するコストに関して、複数の手法が提案されている。例えば、Ｐｒｏｏｆ  ｏｆ  Ｗｏｒｋ  （ＰｏＷ）と呼ばれる手法や、Ｐｒｏｏｆ  ｏｆ  Ｓｔａｋｅ  （ＰｏＳ）と呼ばれる手法が提案されている。ＰｏＷでは、数学的な問題をいち早く解いた参加者がブロックを生成する。問題を解くために、参加者は計算機パワーをコストとして提供することとなる。一方で、ＰｏＷにおいて、報酬を得るためだけに問題を解くという非生産的であり、電力資源の浪費する問題がある。
【０００７】
このような問題を解決するために、ＰｏＷに代替する手法としてＰｏＳが提案されている。ＰｏＳは、数学的な条件に当てはまる参加者に、ブロックを生成する権利が与えられる。条件に当てはまるか否かを決める難易度は、参加者の所持するコインの貯蓄量に応じて調整されることが知られている（Kourosh Davarpanah , Dan Kaufman, Ophelie Pubellier “NeuCoin: the First Secure, Cost-efficient and Decentralized Cryptocurrency”、［online］、２０１５年６月１５日、２０１５年１０月２０日検索、インターネット＜URL: http://www.neucoin.org/en/whitepaper/download＞）。具体的には、ＰｏＳでは、数学的な条件に当てはまる参加者に、ブロックを生成する権利（資格）が与えられる。条件の難易度は参加者のコインの所持量に応じて調整されるので、コインの貯蓄量が多いほどブロックが生成しやすい。具体的には、参加者のアドレスと前ブロックのハッシュ値と現在時刻を含めてハッシュ値を取り、そのハッシュ値がコインの貯蓄量に比例する値よりも小さくなる条件の時に、その参加者がブロックを生成する権利を持つ。条件の判定は現在時刻をパラメータに含めることにより、１秒に１回実施される。このようなＰｏＳにおいて、参加者は、大量のコインを保持するリスクをコストとして提供している。
【０００８】
一方でブロックチェーンには、不正に支払いを行ったり過去の履歴を改ざんしたりするために、「５１%攻撃」と呼ばれる攻撃方法が存在する。この攻撃方法では、悪意のある攻撃者が全体のブロック生成速度の５１％以上を支配すると、正規のブロックの生成速度を上回るため、理論的には不正が成功すると考えられている。ブロック生成速度はＰｏＷやＰｏＳにおける提供リソースの大きさに比例している。例えばＰｏＷでは計算機パワーの５１％以上を、ＰｏＳでは全コイン量の５１％以上を独占することで、攻撃が実現すると考えられている。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】斉藤賢爾，ビットコイン−人間不在のデジタル巨石貨幣，WIDEテクニカルレポート
【発明の概要】
【発明が解決しようとする課題】
【００１０】
昨今では、計算機パワーを集結させ組織的にブロック生成を行うマイニングプールや、ＡＳＩＣなどを用いたＰｏＷ専用の集積回路の登場を背景に、ＰｏＷにおいて、計算機リソースの５１％以上が独占されることが現実味を帯びてきている。
【００１１】
一方、後継のアルゴリズムのＰｏＳでは、コイン資産の独占に要するコストが計算機リソースの独占よりもはるかに高コストであり、また攻撃によりコイン価格の暴落が予測される。従って、ＰｏＳでは、コストをかけて独占したコインの価値がなくなるリスクが大きいため、攻撃者が５１％攻撃を実施する動機が薄く、抑止力があると考えられていた。
【００１２】
ここで、ブロックチェーンは参加者全ての取引の内容を記録した一つの元帳であると捉えると、通貨以外の様々な取引に応用することが考えられる。例えば、複数者間で契約書を交わす際の証跡としてブロックチェーンを用いる方法が考えられる。契約書の内容をメタデータとして、コインの取引を絡めて、トランザクションのデータに含めて取引を行うことで、契約を交わした証跡をブロックチェーンに書き込むことが可能になる。
【００１３】
しかしながら、ブロックチェーンに契約の証跡を記録する方法において、ＰｏＳを採用した場合、問題が生じる場合がある。従来の仮想通貨のＰｏＳにおいては、攻撃者がコインの不正取引や履歴の改ざんを目的として攻撃を仕掛けると、その攻撃のためにむしろ独占したコインの価値が暴落するというリスクが攻撃の抑止力として働いていた。しかしながら、契約の証跡を記録する方法において、攻撃者の目的はコインの不正利用よりも、ブロックチェーンに書き込んだ契約の取り消しや内容の書き換えにあると考えられる。すなわちこのような方法においてＰｏＳを導入した場合、コインの価値を暴落させても、契約を取り消すことができれば、暴落で失ったコインの価値を上回る利益を得るといった状況が成り立つため、従来のような抑止力が働かず、攻撃の動機が生まれる可能性がある。
【００１４】
従って本発明の目的は、より安全で信頼性の高いデジタル仮想通貨のブロックチェーンデータを生成可能な、ブロックチェーンデータを生成するブロックチェーン生成装置およびブロックチェーン生成方法、ブロックチェーンデータを検証するブロックチェーン検証装置およびブロックチェーン検証方法、ならびにプログラムを提供することである。
【課題を解決するための手段】
【００１５】
上記課題を解決するために、本発明の第１の特徴は、複数のトランザクション生成装置によって生成されたトランザクションデータを含むブロックを連結したブロックチェーンデータに、新たなブロックを連結して、新たなブロックチェーンデータを生成するブロックチェーン生成装置に関する。本発明の第１の特徴に係るブロックチェーン生成装置は、ブロックチェーンデータと、ブロックチェーンに含まれていないトランザクションデータとを含む共有データを取得する同期手段と、ブロックチェーンデータのトランザクションデータのうち、当該ブロックチェーン生成装置を用いる生成者の識別子に関連するトランザクションデータから、生成者の取引パターン量を算出する取引パターン量算出手段と、取引パターン量算出手段が算出した取引パターン量に基づいて、生成者が、新たなブロックチェーンデータを生成する資格を有しているか否かを判定するブロック生成条件確認手段と、ブロック生成条件確認手段が資格を有していると判定した場合、共有データを参照して、新たなブロックチェーンの生成を試みるブロックチェーン生成手段とを備える。
【００１６】
ここで、取引パターン量は、生成者の信用の指標である。
【００１７】
取引パターン量は、生成者の識別子に関連するトランザクションデータにおける、取引相手の識別子の各組み合わせにおける、取引相手の識別子の合計であっても良い。
【００１８】
取引パターン量は、生成者の識別子に関連するトランザクションデータにおける、取引相手の識別子のユニーク数であっても良い。
【００１９】
本発明の第２の特徴は、複数のトランザクション生成装置によって生成されたトランザクションデータを含むブロックを連結したブロックチェーンデータに、新たなブロックを連結して、新たなブロックチェーンデータを生成するブロックチェーン生成方法に関する。本発明の第２の特徴に係るブロックチェーン生成方法は、コンピュータが、ブロックチェーンデータと、ブロックチェーンに含まれていないトランザクションデータとを含む共有データを取得するステップと、コンピュータが、ブロックチェーンデータのトランザクションデータのうち、当該コンピュータを用いる生成者の識別子に関連するトランザクションデータから、生成者の取引パターン量を算出すステップと、コンピュータが、生成者の取引パターン量に基づいて、生成者が、新たなブロックチェーデータンを生成する資格を有しているか否かを判定するステップと、コンピュータが、生成者が、新たなブロックチェーンデータを生成する資格を有していると判定した場合、共有データを参照して、新たなブロックチェーンの生成を試みるステップとを備える。
【００２０】
本発明の第３の特徴は、複数のトランザクション生成装置によって生成されたトランザクションデータを含むブロックを連結したブロックチェーンデータを検証するブロックチェーン検証装置に関する。本発明の第３の特徴に係るブロックチェーン検証装置は、ブロックチェーンデータを含む共有データを取得する同期手段と、ブロックチェーンデータのトランザクションデータのうち、ブロックチェーンデータを生成した装置を用いる生成者の識別子に関連するトランザクションデータから、生成者の取引パターン量を算出する取引パターン量算出手段と、取引パターン量算出手段が算出した取引パターン量に基づいて、生成者が、ブロックチェーンデータを生成する資格を有しているか否かを判定するブロック生成条件検証手段と、ブロック生成条件検証手段が資格を有していると判定した場合、ブロックチェーンデータを承認するブロックチェーン検証手段とを備える。
【００２１】
本発明の第４の特徴は。複数のトランザクション生成装置によって生成されたトランザクションデータを含むブロックを連結したブロックチェーンデータを検証するブロックチェーン検証方法に関する。本発明の第４の特徴に係るブロックチェーン検証方法は、コンピュータが、ブロックチェーンデータを含む共有データを取得するステップと、コンピュータが、ブロックチェーンデータのトランザクションデータのうち、ブロックチェーンデータを生成した装置を用いる生成者の識別子に関連するトランザクションデータから、生成者の取引パターン量を算出するステップと、コンピュータが、生成者の取引パターン量に基づいて、生成者が、ブロックチェーンデータを生成する資格を有しているか否かを判定するステップと、コンピュータが、生成者が、ブロックチェーンデータを生成する資格を有していると判定した場合、ブロックチェーンデータを承認するステップとを備える。
【００２２】
本発明の第５の特徴は、コンピュータを、本発明の第１の特徴および第３の特徴に記載の各手段として機能させるためのプログラムに関する。
【発明の効果】
【００２３】
本発明によれば、より安全で信頼性の高いデジタル仮想通貨のブロックチェーンデータを生成可能な、ブロックチェーンデータを生成するブロックチェーン生成装置およびブロックチェーン生成方法、ブロックチェーンデータを検証するブロックチェーン検証装置およびブロックチェーン検証方法、ならびにプログラムを提供することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態に係る取引支援システムのシステム構成を説明する図である。
【図２】一般的な仮想通貨における署名を説明する図である。
【図３】一般的な仮想通貨におけるブロックチェーンを説明する図である。
【図４】本発明の実施の形態に係るトランザクション生成装置のハードウエア構成と機能ブロックを説明する図である。
【図５】本発明の実施の形態に係るブロックチェーン生成装置のハードウエア構成と機能ブロックを説明する図である。
【図６】本発明の実施の形態に係るブロックチェーン生成装置によるブロックチェーン生成処理を説明するフローチャートである。
【図７】本発明の実施の形態に係るブロックチェーン検証装置のハードウエア構成と機能ブロックを説明する図である。
【図８】本発明の実施の形態に係るブロックチェーン検証装置によるブロックチェーン検証処理を説明するフローチャートである。
【図９】本発明の実施の形態に係る取引支援システムにおいて用いられるブロック承認方法データのブレンドパターンの一例を説明する図である。
【図１０】本発明の実施の形態に係る取引支援システムにおける、取引パターン量の算出の一例を説明する図である。
【図１１】本発明の実施の形態に係る取引支援システムにおける、取引パターン量算出手段による取引パターン量算出処理を説明するフローチャートである。
【発明を実施するための形態】
【００２５】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
【００２６】
（取引支援システム）
図１を参照して、本発明の実施の形態に係る取引支援システム５を説明する。取引支援システム５は、複数のコンピュータを備え、各コンピュータは、各コンピュータに設けられた通信制御装置およびＰ２Ｐネットワーク４を介して、自律分散的に接続されている。なお、図１に示す取引支援システム５において接続されるコンピュータの数は、一例であって、これに限るものではない。
【００２７】
取引支援システム５を構成する各コンピュータに、デジタル仮想通貨における取引を実現するためのプログラムがインストールされる。各コンピュータは、それぞれ、Ｐ２Ｐネットワーク４を介して、ブロックチェーンデータとトランザクションデータを取得し、ネットワークに参加する端末群全体が、不正を監視し、唯一のブロックチェーンを共有する。
【００２８】
各コンピュータは、取引支援システム５における各場面における役割に応じて、ブロックチェーン生成装置１として機能したり、ブロックチェーン検証装置２として機能したり、トランザクション生成装置３として機能したりする。
【００２９】
本発明の実施の形態において、取引支援システム５における仮想通貨を利用する者を、「参加者」と記載する。ブロックチェーン生成装置を用いる参加者を、「生成者」と記載する。
【００３０】
ブロックチェーン生成装置１は、所定の条件を満たした場合、複数のトランザクション生成装置３によって生成されたトランザクションデータを含むブロックを連結した既存のブロックチェーンデータに、新たなブロックを連結して、新たなブロックチェーンデータを生成する。新たなブロックは、既存のブロックチェーンの生成後に発生したトランザクションのデータを含む。ブロックチェーン生成装置１が生成した新たなブロックチェーンデータは、Ｐ２Ｐネットワーク４を介して、他の端末に共有される。
【００３１】
ブロックチェーン検証装置２は、ブロックチェーン生成装置１が生成したブロックチェーンデータを検証する。ブロックチェーン検証装置２は、複数のトランザクション生成装置３によって生成されたトランザクションデータを含むブロックを連結したブロックチェーンデータを検証する。ブロックチェーン検証装置２が検証した結果は、Ｐ２Ｐネットワーク４を介して、他の端末に共有される。
【００３２】
本発明の実施の形態に係る取引支援システム５において、所定のブロックの完全な取引の完了には、所定のブロックが連結され承認された後に一定数のブロックが続き、これらの各ブロックが連結され検証されることを要する。例えば、あるブロックＡが承認されブロックチェーンに連結された後、５つの連続するブロックが認証され連結された場合、すなわち、６個の連続するブロックが認証され連結された場合、この６個の先頭ブロックであるブロックＡについて完全に取引が終了したと見なされる。ここで、完全な取引終了が認められるブロック数「６」は、「承認ブロック数」と称される。これは、攻撃の成功確率はブロック差が拡がるほど指数関数的に下がることが証明されていることに基づく（Satoshi Nakamoto, “Bitocoin: A Peer-to-Peer Electronic Cash System,”、［online］、２００８年、２０１５年１０月２０日検索、インターネット＜URL:
https://bitcoin.org/bitcoin.pdf＞）。最終的に攻撃によって作られたチェーンがネットワークに受け入れられるためには、正規のチェーンの長さを追い抜く必要があり、攻撃者がブロックを生成している間にも、正規のチェーンの長さは伸びていくため、攻撃者はシステムにおける過半数以上（すなわち正規のチェーン以上）のブロック生成速度がなければ差を縮めることができないからである。
【００３３】
トランザクション生成装置３は、仮想通貨や契約などの取引によって、各ブロックに含まれるトランザクションデータを生成する。トランザクション生成装置３が生成したトランザクションデータは、Ｐ２Ｐネットワーク４を介して、他の端末に共有される。
【００３４】
図２を参照して、本発明の実施の形態における取引支援システム５において、第２の参加者が、第３の参加者にコインを支払う場合の取引（トランザクション）を説明する。トランザクション生成装置３は、最新のトランザクション（第１のトランザクションＴ１）のデータと第３の参加者の公開鍵を合わせたデータに対して暗号学的ハッシュ関数を適用し、第２の参加者の秘密鍵を用いて署名を施して、第２のトランザクションＴ２のデータを生成する。コインを受け取る第３の参加者は、そのひとつ手前の取引（第１のトランザクションＴ１）における受け手（第２の参加者）の公開鍵を用いて、第２のトランザクションＴ２の署名を検証するとともに、ハッシュ値を再計算することで、コインが正当な所有者から渡されたことを確かめる。また各トランザクションのデータには、取引された仮想通貨の値などのトランザクションの内容や、トランザクションを生成する参加者の公開鍵に対応するアドレスが含まれる。
【００３５】
図２に示すように生成された複数のトランザクションのデータは、所定条件下で、図３に示すように、ブロックチェーン生成装置１によってブロックにまとめられ、既存のブロックチェーンに連結され、各コンピュータで共有される。このとき、ブロックチェーン生成装置１は、新たなブロック（第ｎ＋１のブロック）を生成する際、ブロックチェーンに含まれていないトランザクションのデータを収集し、新たなブロック（第ｎ＋１のブロック）に、収集したトランザクションのデータと、現在のブロックチェーンの末尾のブロック（第ｎのブロック）のハッシュ値（２５６ビット）を含める。さらに現在生成中のブロック（第ｎ＋１のブロック）に対して、暗号学的ハッシュ関数（ＳＨＡ−２５６）を適用した場合のハッシュ値の先頭のｋビットがすべて“０”になるように、ブロックチェーン生成装置１は、現在生成中のブロック（第ｎ＋１のブロック）に含める適切値を探索する。適切値が見つかると、その適切値を含むブロック（第ｎ＋１のブロック）を、現在のブロックチェーンの末尾に連結して、ブロードキャストする。ここで、適切値の算出条件となる「ｋビット」のｋの数値を変更することにより、適切値を求める難易度が適宜決定される。
【００３６】
その後、ブロックチェーン検証装置２は、ブロックチェーン生成装置１から送信されたブロックチェーンデータを検証し、その検証結果を他の端末と共有する。
【００３７】
（トランザクション生成装置）
図４を参照して、トランザクション生成装置３を説明する。トランザクション生成装置３は、記憶装置３１０、処理装置３２０および通信制御装置３３０を備える一般的なコンピュータである。一般的なコンピュータが所定の機能を実現するためのプログラムを実行することによって、トランザクション生成装置３は、図４に示す各機能を実現する。
【００３８】
記憶装置３１０は、共有データ３１１を記憶する。共有データ３１１は、ブロックチェーンデータ３１２と、ブロックチェーンに含まれていないトランザクションデータ３１３とを含む。共有データ３１１は、図１に示す取引支援システム５において共有されるデータである。
【００３９】
処理装置３２０は、同期手段３２１およびトランザクション生成手段３２２を備える。
【００４０】
同期手段３２１は、Ｐ２Ｐネットワーク４を介して、ブロックチェーンデータ３１２と、ブロックチェーンに含まれていないトランザクションデータ３１３とを含む共有データ３１１を取得する。同期手段３２１は、Ｐ２Ｐネットワーク４を介して他の装置と通信して共有データ３１１を取得し、最新のデータに同期して共有する。
【００４１】
同期手段３２１はさらに、当該コンピュータ内でブロックチェーンデータ３１２やトランザクションデータ３１３が更新された場合、Ｐ２Ｐネットワーク４を介して、他の装置に更新後のデータをブロードキャストする。これにより、当該コンピュータ内で生成された最新のデータが、他のコンピュータとの間で共有される。
【００４２】
トランザクション生成手段３２２は、仮想通貨や契約に関するトランザクションを遂行し、このトランザクションに関するトランザクションデータを生成する。生成されたトランザクションデータは、Ｐ２Ｐネットワーク４を介して他のコンピュータにも送信され、共有される。
【００４３】
（ブロックチェーン生成装置）
図５を参照して、ブロックチェーン生成装置１を説明する。ブロックチェーン生成装置１は、記憶装置１１０、処理装置１２０および通信制御装置１３０を備える一般的なコンピュータである。一般的なコンピュータが所定の機能を実現するためのプログラムを実行することによって、ブロックチェーン生成装置１は、図４に示す各機能を実現する。
【００４４】
記憶装置１１０は、共有データ１１１、ブロック承認方法データ１１４およびパラメータデータ１１５を記憶する。共有データ１１１は、図４を参照して説明したトランザクション生成装置３の共有データ３１１と同様であって、ブロックチェーンデータ１１２およびトランザクションデータ１１３を含む。
【００４５】
ブロック承認方法データ１１４は、ブロックチェーンデータ１１２において複数のブロックを連結する資格の有無を判定する際に用いられる複数のパラメータ種別のブレンドパターンを特定する。ブロック承認方法データ１１４は、ブロックチェーンデータ１１２において連続する複数のブロックのそれぞれと、各ブロックの連結に用いられるパラメータ種別を対応づけることを可能とする。本発明の実施の形態において、ブロック承認方法データで特定される複数のパラメータ種別は、互いに相反する。
【００４６】
ブロック承認方法データ１１４は、例えば、本発明の実施の形態に係るブロックチェーン生成装置１およびブロックチェーン検証装置２を実現するために用いられるプログラムに記載されるなどにより、ブロックチェーン生成装置１およびブロックチェーン検証装置２間で共有される。
【００４７】
本発明の実施の形態において、ブロックを生成し連結する際のブロックチェーン生成装置１における生成者の資格の有無は、単一のパラメータ種別によって判定されるものではなく、複数のパラメータ種別のいずれかによって判定されるのが好ましい。本発明の実施の形態において、連続するブロックにおける各ブロックの承認方法は、複数のパラメータ種別がブレンドされており、ブロック承認方法データ１１４は、各ブロックを生成する際に、いずれのパラメータ種別を用いるかを特定する。
【００４８】
本発明の実施の形態において、複数のブロックの承認方法で用いられる「複数のパラメータ種別」は、相反するパラメータ種別である。「相反するパラメータ種別」は、片方のリソースを独占したとしても、もう片方のリソースの独占に影響を及ぼさない関係を有するパラメータ種別である。例えば、「コインの貯蓄量」と「コインの消費量」は、両方の条件を満たすことは困難であるので、相反するパラメータ種別となる。
【００４９】
またＰｏＷとＰｏＳとは、ＰｏＷが外的リソースに関するパラメータであるのに対し、ＰｏＳが内的リソースに関するパラメータである。従って、ＰｏＷとＰｏＳは、一人のブロック生成者が両方の条件を満たすことは困難であり、相反するパラメータ種別となる。
【００５０】
なお、本発明の実施の形態において、相反するパラメータ種別が２種類である場合を説明したが、３種類のパラメータ種別間で、互いに相反する関係が成り立つ場合、相反するパラメータ種別が３種類であっても良い。
【００５１】
また本発明の実施の形態において、相反するパラメータ種別として、「コインの貯蓄量」と「取引経路パターンの量」が考えられる。「取引経路パターンの量」は、コインを使用することによって、生成者が、どれだけ多様な取引を行ったかを示す指標である。これに対し「コインの貯蓄量」はコインを保有することによって得られる。従って、「コインの貯蓄量」と「取引経路パターンの量」は、コインの保有と使用の相反する性質を有するので、一人のブロック生成者がこれらの二つのパラメータを同時に独占することは難しい。従って、「コインの貯蓄量」と「取引経路パターンの量」の各パラメータ種別は、相反する。
【００５２】
ブロック承認方法データ１１４の具体例は、後に詳述される。
【００５３】
パラメータデータ１１５は、ブロックチェーン生成装置１が新たに生成するブロックを承認するためのパラメータ種別の値が設定される。パラメータデータ１１５は、パラメータ算出手段１２２により算出され、記憶装置１１０に記憶される。
【００５４】
処理装置１２０は、同期手段１２１、パラメータ算出手段１２２、ブロック生成条件確認手段１２５およびブロックチェーン生成手段１２６を備える。同期手段１２１は、図４を参照して説明したトランザクション生成装置３の同期手段３２１と同様である。
【００５５】
パラメータ算出手段１２２は、ブロックチェーンデータ１１２およびブロック承認方法データ１１４に基づいて、新たなブロックを連結する際に用いられるパラメータ種別を特定する。パラメータ算出手段１２２は、ブロック承認方法データ１１４を参照して、ブロックチェーンデータ１１２における各ブロックの承認方法および新たに連結するブロックの承認方法が、ブロック承認方法データ１１４で特定されるブレンドパターンにあうように、新たに連結するブロックの承認方法（パラメータ種別）を特定する。このときパラメータ算出手段１２２は、既に連結されたブロックのうち、新たにブロックを連結する際にパラメータ種別を特定することが必要な各ブロックの所定ビットのデータを参酌して、各ブロックの連結時に用いられたパラメータ種別を特定する。
【００５６】
パラメータ算出手段１２２は、さらに、ブロックチェーンデータ１１２のトランザクションデータのうち、当該ブロックチェーン生成装置１を用いる生成者の識別子に関連するトランザクションデータから、特定されたパラメータ種別の値を算出する。
【００５７】
パラメータ算出手段１２２において、ブロックを新たに追加する生成者の資格の承認に用いるパラメータ種別を特定する方法は、後に詳述される。
【００５８】
ここでパラメータ算出手段１２２は、ブレンドパターンで特定される各パラメータ種別について算出するための各算出手段を有する。例えば、ブロック承認方法データ１１４のブレンドパターンが、相反するパラメータ種別として、コイン貯蓄量と取引パターン量を設定する場合、パラメータ算出手段１２２は、コイン貯蓄量を算出するコイン貯蓄量算出手段１２３と、取引パターン量算出手段１２４を備える。ブロック承認方法データ１１４のブレンドパターンが指定するパラメータ種別によっては、他のパラメータ種別を算出するための算出手段を備えても良い。
【００５９】
ブロック生成条件確認手段１２５は、パラメータ算出手段１２２が算出した値に基づいて、新たなブロックチェーンの生成者が、新たなブロックチェーンデータを生成する資格を有しているか否かを判定する。パラメータ算出手段１２２が、コインの貯蓄量、コインの消費量、ＰｏＷ、ＰｏＳなどの一般的なパラメータ種別の値を算出した場合、ブロック生成条件確認手段１２５は、一般的な方法で、新たなブロックチェーンデータを生成する資格を有しているか否かを判定する。
【００６０】
ここで、取引パターン量算出手段１２４の処理や、取引パターン量に基づいて新たなブロックチェーンデータを生成する資格を有しているか否かを判定する処理は、後に詳述される。
【００６１】
ブロックチェーン生成手段１２６は、ブロック生成条件確認手段１２５が資格を有していると判定した場合、共有データ１１１を参照して、新たなブロックチェーンの生成を試みる。具体的には、ブロックチェーン生成手段１２６は、パラメータデータ１１５で設定された値を用いて、図３に示す「適切値」の探索を試みる。適切値が見つかった場合、その適切値を用いて新たなブロックを生成する。このときブロックチェーン生成手段１２６は、生成した新たなブロックの所定ビットに、このブロックを生成する際に用いられたパラメータ種別の識別子を設定する。ブロックチェーン生成手段１２６は、既存のブロックチェーンデータ１１２の末尾に、生成した新たなブロックを連結して、新たなブロックチェーンデータを生成し、共有データ１１１を更新する。新たなブロックチェーンの生成に成功した場合、他の端末と共有するために、新たなブロックチェーンのデータは、Ｐ２Ｐネットワークにブロードキャストされる。
【００６２】
ブロックチェーン生成手段１２６が、適切値を探索している間に、他の装置によってブロックが生成され新たなブロックチェーンが共有される場合もある。この場合、ブロックチェーン生成手段１２６は、古いブロックチェーンにおける適切値の探索を中止し、新たに共有されたブロックチェーンについて、適切値の探索を繰り返す。
【００６３】
図６を参照して、ブロックチェーン生成装置１によるブロックチェーン生成方法を説明する。
【００６４】
まずステップＳ１０１においてブロックチェーン生成装置１は、ブロック承認方法データ１１４を参照して、新たにブロックを生成する際の承認に用いるパラメータ種別を特定する。ステップＳ１０２においてブロックチェーン生成装置１は、共有データ１１１を参照して、ステップＳ１０１で特定されたパラメータ種別に対応する値を算出する。
【００６５】
ステップＳ１０３においてブロックチェーン生成装置１は、ステップＳ１０２で算出された値に基づいて、当該ブロックチェーン生成装置１の生成者がブロックを生成する資格を有しているか否かを判定する。ブロックの生成資格がないと判定された場合、そのまま処理を終了する。
【００６６】
一方、ステップＳ１０３においてブロックの生成資格があると判定された場合、ステップＳ１０４においてブロックチェーン生成装置１は、ステップＳ１０３で算出されたパラメータに基づいて、適切値の算出を開始する。適切値の算出に成功した場合、ブロックチェーン生成装置１は、算出した適切値を用いて、新たなブロックを生成し、既存のブロックチェーンに連結した新たなブロックチェーンデータを記憶する。
【００６７】
（ブロックチェーン検証装置）
図７を参照して、ブロックチェーン検証装置２を説明する。ブロックチェーン検証装置２は、記憶装置２１０、処理装置２２０および通信制御装置２３０を備える一般的なコンピュータである。一般的なコンピュータが所定の機能を実現するためのプログラムを実行することによって、ブロックチェーン生成装置１は、図４に示す各機能を実現する。
【００６８】
記憶装置２１０は、共有データ２１１、ブロック承認方法データ２１４およびパラメータデータ２１５を記憶する。共有データ２１１は、図４を参照して説明したトランザクション生成装置３の共有データ３１１と同様であって、ブロックチェーンデータ２１２およびトランザクションデータ２１３を含む。なお、ブロックチェーン検証装置２は、既存のブロックチェーンデータ２１２を検証するものであるので、トランザクションデータ２１３の有無は問わない。
【００６９】
ブロック承認方法データ２１４およびパラメータデータ２１５は、図５を参照して説明したブロック承認方法データ１１４およびパラメータデータ１１５と同様である。
【００７０】
処理装置２２０は、同期手段２２１、ブロック承認方法検証手段２２２、パラメータ算出手段２２３、ブロック生成条件検証手段２２６およびブロックチェーン検証手段２２７を備える。同期手段２２１は、図４を参照して説明したトランザクション生成装置３の同期手段３２１と同様である。
【００７１】
ブロック承認方法検証手段２２２は、ブロック承認方法データ２１４に基づいて、ブロックを連結する際に用いられるパラメータ種別を特定し、ブロックチェーンデータ２１２が、特定されたパラメータ種別に基づいて生成されているか否かを判定する。ブロック承認方法検証手段２２２は、ブロックチェーンデータ２１２における各ブロックの承認方法が、ブロック承認方法データ２１４で特定されるブレンドパターンに適合するか否かを判定する。このときブロック承認方法検証手段２２２は、検証対象のブロックチェーンデータ２１２において、ブレンドパターンの適合性を確認するために必要な各ブロックの所定ビットのデータを参酌して、各ブロックの連結時に用いられたパラメータ種別を特定する。
【００７２】
ブロックチェーンデータ２１２のブロックの生成に用いるパラメータ種別が、ブロック承認方法データ２１４で特定されるパラメータ種別であるか否かを判定する処理は、後に詳述される。
【００７３】
パラメータ算出手段２２３は、ブロックチェーンデータ２１２のトランザクションデータのうち、ブロックチェーンデータ２１２を生成した装置を用いる生成者の識別子に関連するトランザクションデータから、ブロック承認方法検証手段２２２で特定されたパラメータ種別の値を算出する。算出した値は、パラメータデータ２１５として記憶装置２１０に記憶される。
【００７４】
パラメータ算出手段２２３は、図５を参照して説明したブロックチェーン生成装置１のパラメータ算出手段１２２と同様に、コイン貯蓄量算出手段２２４、取引パターン量算出手段２２５などの、各パラメータ種別の値を算出するための算出手段を備える。
【００７５】
ブロック生成条件検証手段２２６は、パラメータ算出手段２２３が算出した値に基づいて、ブロックチェーンの生成者が、ブロックチェーンデータ２１２を生成する資格を有しているか否かを判定する。
【００７６】
パラメータ算出手段２２３が、コインの貯蓄量、コインの消費量、ＰｏＷ、ＰｏＳなどの一般的なパラメータ種別の値を算出した場合、ブロック生成条件検証手段２２６は、一般的な方法で、新たなブロックチェーンデータを生成する資格を有しているか否かを判定する。
【００７７】
ここで、取引パターン量算出手段２２５の処理や、取引パターン量に基づいて新たなブロックチェーンデータを生成する資格を有しているか否かを判定する処理は、後に詳述される。
【００７８】
ブロックチェーン検証手段２２７は、ブロック承認方法検証手段２２２、ブロック生成条件検証手段２２６の結果に基づいて、ブロックを検証する。具体的にはブロックチェーン検証手段２２７は、ブロック承認方法検証手段２２２が、ブロックチェーンデータ２１２が特定されたパラメータ種別に基づいて生成されていると判定し、かつブロック生成条件検証手段２２６が、生成者がブロックチェーンデータ２１２を生成する資格を有していると判定した場合、ブロックチェーンデータ２１２を承認する。ブロックチェーン検証手段２２７は、検証結果を他の端末に通達する。ここで承認されなかった旨の検証結果を受けた端末は、不正なブロックチェーンとして、周囲の端末に通達するなどの処理を行う。
【００７９】
図８を参照して、ブロックチェーン検証装置２によるブロックチェーン検証方法を説明する。
【００８０】
まずステップＳ２０１においてブロックチェーン検証装置２は、ブロック承認方法データ２１４を参照して、新たにブロックを生成する際に用いるパラメータ種別を特定する。
ステップＳ２０２においてブロックチェーン検証装置２は、ブロックチェーンデータ２１２におけるブロックが、ステップＳ２０１で特定されたパラメータ種別で承認されているか否かを判定する。特定されたパラメータ種別で承認されていないと判定された場合、ステップＳ２０６においてブロックチェーン検証装置２は、当該ブロックチェーンデータを承認しないことを決定する。
【００８１】
一方、特定されたパラメータ種別で承認されていると判定された場合、ステップＳ２０３においてブロックチェーン検証装置２は、共有データ１１１を参照して、ステップＳ２０１で特定されたパラメータ種別に対応する値を算出する。
【００８２】
ステップＳ２０４においてブロックチェーン生成装置１は、ステップＳ２０３で算出された値に基づいて、ブロックチェーンデータ２１２のブロックが生成された端末の生成者がブロックを生成する資格を有しているか否かを判定する。ブロックの生成資格がないと判定された場合、ステップＳ２０６においてブロックチェーン検証装置２は、当該ブロックチェーンデータを承認しないことを決定する。
【００８３】
一方、ブロックの生成資格があると判定された場合、ステップＳ２０５においてブロックチェーン検証装置２は、当該ブロックチェーンデータを承認することを決定する。さらにステップＳ２０７においてブロックチェーン検証装置２は、検証結果を他の端末に通知する。
【００８４】
（ブレンドパターン）
ブロックチェーン生成装置１が参照するブロック承認方法データ１１４と、ブロックチェーン検証装置２が参照するブロック承認方法データ２１４は、同様のデータである。このブロック承認方法データは、例えば、図６に示すいずれかの承認方法のブレンドパターンを特定する。
【００８５】
図９に示す例における四角の連結は、ブロックチェーンデータにおいて連続するブロックの連結を表している。白抜きの四角は、各ブロックを生成し連結される際に用いられるパラメータ種別が、「第１のパラメータ種別」であることを示し、斜線ハッチの四角は、「第２のパラメータ種別」であることを示す。ここで、第１のパラメータ種別と第２のパラメータ種別は、互いに相反する関係を有する。
【００８６】
図９を参照して、ブロック承認方法データ１１４が特定するブレンドパターンについて詳述する。図９に示す各ブレンドパターンの例は、下記に大別される。
ブレンドパターンＡ：第１のパラメータ種別を第１の数だけ繰り返した後、第２のパラメータ種別を第２の数だけ繰り返す（図９（ａ）ないし（ｃ））
ブレンドパターンＢ：連続する所定の数のパラメータ種別の繰り返しにおいて、少なくとも、第１のパラメータ種別および第２のパラメータ種別をそれぞれ１つずつ含む（図９（ｄ）および（ｅ））
【００８７】
図９（ａ）のブレンドパターンは、第１のパラメータ種別を第１の数（１）だけ繰り返した後、第２のパラメータ種別を第２の数（１）だけ繰り返す。この場合、ブロック承認方法データ１１４に、図９（ａ）のブレンドパターンの識別子を含む。ブロックチェーンにおける各ブロックは、第１のパラメータ種別による承認と第２のパラメータ種別による承認を交互に繰り返しながら、それぞれの新たなブロックが生成されブロックチェーンに連結される。
【００８８】
図９（ａ）に示すブロック承認方法が設定された場合、ブロックチェーン生成装置１は、最後尾のブロックの生成で用いられたパラメータ種別とは異なるパラメータ種別を用いて、ブロックの生成資格の有無を判定する。またブロックチェーン検証装置２は、直近の２個のブロックが、図９（ａ）のブレンドパターンに一致する場合、最後尾のブロックが、ブロック承認方法データ２１４に基づいて承認されていると判定する。
【００８９】
図９（ｂ）のブレンドパターンは、第１のパラメータ種別を第１の数（Ｎ＝３）だけ繰り返した後、第２のパラメータ種別を第２の数（１）だけ繰り返す。この場合、ブロック承認方法データ１１４に、図９（ｂ）のブレンドパターンの識別子のほか、第１の数（Ｎ）も含む。ブロックチェーンにおける各ブロックは、第１のパラメータ種別による承認をＮ回繰り返した後、第２のパラメータ種別による承認を経て、それぞれ新たなブロックが生成されブロックチェーンに連結される。
【００９０】
図９（ｂ）に示すブロック承認方法が設定された場合、ブロックチェーン生成装置１は、直近のＮ個のブロックの生成で用いられたパラメータ種別が、全て第１のパラメータ種別の場合、新たなブロックの生成において、第２のパラメータ種別を用いる。ブロックチェーン生成装置１は、それ以外の場合、すなわち最後尾のブロックの生成で用いられたパラメータ種別が、第２のパラメータ種別の場合、または、直近のＮ個のブロックの生成で用いられたパラメータ種別に第２のパラメータ種別が含まれる場合、新たなブロックの生成において、第１のパラメータ種別を用いる。またブロックチェーン検証装置２は、直近のＮ＋１個のブロックが、図９（ｂ）のブレンドパターンに一致する場合、最後尾のブロックがブロック承認方法データ２１４に基づいて承認されていると判定する。
【００９１】
図９（ｃ）のブレンドパターンは、第１のパラメータ種別を第１の数（Ｎ＝３）だけ繰り返した後、第２のパラメータ種別を第２の数（Ｍ＝２）だけ繰り返す。この場合、ブロック承認方法データ１１４に、図９（ｃ）のブレンドパターンの識別子のほか、第１の数（Ｎ）および第２の数（Ｍ）も含む。ブロックチェーンにおける各ブロックは、第１のパラメータ種別による承認をＮ回繰り返した後、第２のパラメータ種別による承認をＭ回繰り返して、それぞれ新たなブロックが生成されブロックチェーンに連結される。
【００９２】
図９（ｃ）に示すブロック承認方法が設定された場合、ブロックチェーン生成装置１は、直近のＭ個のブロックの生成で用いられたパラメータ種別が、全て第２のパラメータ種別の場合、新たなブロックの生成において、第１のパラメータ種別を用いる。ブロックチェーン生成装置１は、直近のＮ個のブロックの生成で用いられたパラメータ種別が、全て第１のパラメータ種別の場合、新たなブロックの生成において、第２のパラメータ種別を用いる。それ以外の場合、ブロックチェーン生成装置１は、直近のブロックの生成で用いられたパラメータ種別を用いる。またブロックチェーン検証装置２は、直近のＮ＋Ｍ個のブロックが、図９（ｃ）のブレンドパターンに一致する場合、最後尾のブロックがブロック承認方法データ２１４に基づいて承認されていると判定する。
【００９３】
図９（ｄ）のブレンドパターンは、連続する所定の数（Ｎ＝６）のパラメータ種別の繰り返しにおいて、少なくとも、第１のパラメータ種別および第２のパラメータ種別をそれぞれ１つずつ含む。この場合、ブロック承認方法データ１１４に、図９（ｄ）のブレンドパターンの識別子のほか、所定の数（Ｎ）も含む。ブロックチェーンにおける各ブロックは、直近のＮ−１個の各ブロックの生成時に用いられたパラメータ種別を参酌してパラメータ種別が決定され、決定されたパラメータ種別で生成された新たなブロックがブロックチェーンに連結される。
【００９４】
図９（ｄ）に示すブロック承認方法が設定された場合、ブロックチェーン生成装置１は、直近のＮ−１個のブロックの生成で用いられたパラメータ種別が、全て第１のパラメータ種別の場合、新たなブロックの生成において、第２のパラメータ種別を用いる。ブロックチェーン生成装置１は、直近のＮ−１個のブロックの生成で用いられたパラメータ種別が、全て第２のパラメータ種別の場合、新たなブロックの生成において、第１のパラメータ種別を用いる。それ以外の場合、ブロックチェーン生成装置１は、乱数による抽選などの所定のアルゴリズムに基づいて、第１のパラメータ種別および第２のパラメータ種別のうちのいずれかを選択して、選択したパラメータ種別で、新たなブロックの生成しブロックチェーンに連結する。またブロックチェーン検証装置２は、直近のＮ個のブロックにおいて、相反するパラメータ種別を少なくとも一つずつ含む場合、最後尾のブロックがブロック承認方法データ２１４に基づいて承認されていると判定する。
【００９５】
図９（ｅ）は、図９（ｄ）に示す例の変形例であって、連続する所定の数（Ｎ）に、承認ブロック数を設定する方法である。承認ブロック数は、あるブロックの完全な取引終了が認められるための、連続するブロックの生成数である。すなわち、あるブロックＡが生成され連結された後、５個のブロックがそれぞれ連結された際にブロックＡについて完全な取引終了が認められる場合、承認ブロック数は「６」となる。連続する所定の数（Ｎ）に、承認ブロック数を設定する場合、ブロックＡが完全に取引終了したと認められるために、互いに相反する複数のパラメータ種別による承認が必ずブレンドされていることが保証されるので、悪意のある参加者による攻撃をさらに適切に回避することができる。
【００９６】
なお、ブロックチェーンデータ１１２における各ブロックを生成する際に用いられたパラメータ種別は、ブロックチェーン内の各ブロックにおいて特定されることが好ましい。例えば、ブロック内の所定ビットに、このブロックを生成する際に用いられたパラメータ種別の識別子が設定される。ブロックチェーン生成装置１は、既に連結されたブロックのうち、新たにブロックを連結する際にパラメータ種別を特定することが必要な各ブロックの所定ビットのデータを参酌して、各ブロックの連結時に用いられたパラメータ種別を特定する。ここで、「新たにブロックを連結する際にパラメータ種別を特定することが必要な各ブロック」は、ブロック承認方法データにおいて指定されるブレンドパターンの識別子やＮ、Ｍなどの設定情報などによって異なる。またブロックチェーン検証装置２は、検証対象のブロックチェーンデータ２１２において、ブレンドパターンの適合性を確認するために必要な各ブロックの所定ビットのデータを参酌して、各ブロックの連結時に用いられたパラメータ種別を特定して、ブレンドパターンに適合しているか否かを判定する。ここで、「ブレンドパターンの適合性を確認するために必要な各ブロック」は、ブロック承認方法データにおいて指定されるブレンドパターンの識別子やＮ、Ｍなどの設定情報などによって異なる。
【００９７】
（取引パターン量算出手段）
図５のブロックチェーン生成装置１の取引パターン量算出手段１２４および図６のブロックチェーン検証装置２の取引パターン量算出手段２２５を説明する。
【００９８】
取引パターン量算出手段１２４（取引パターン量算出手段２２５）は、ブロックチェーンデータ１１２のトランザクションデータのうち、ブロックチェーン生成装置１を用いる生成者の識別子に関連するトランザクションデータから、生成者の取引パターン量を算出する。ここで、「取引パターン量」は、生成者の信用の指標である。
【００９９】
取引パターン量は、取引は互いに素性を明らかにし、相手がどういった人物であるかを把握した上で相手を信用して取引することに着目して算出された、信用スコアに相当する。多様なノードと取引を行った参加者は、多くのノードから信用を受けて取引していると推定され、その信用の大きい承認者が５１％攻撃を実施すれば、その人物は特定され社会的にも信用を失うこととなる。従ってこのような参加者は、信用の暴落が攻撃の抑止力となると考えられる。「取引経路パターンの量」は、ブロックチェーンデータ１１２を参照して、どれだけ多様なノードと取引を行ったのかをスコアリングすることで得られる。また「取引経路パターンの量」は、取引においてコインを使用することにより得られる値であるので、「コインの貯蓄量」に相反するパラメータ種別として採用される。
【０１００】
ここで、「取引」は、トランザクション生成装置３が生成するトランザクションデータによって特定され、仮想通貨の譲渡はもちろん、複数者間で契約書を交わす際の証跡としてブロックチェーンを応用する場合の契約も含まれる。証跡としてのブロックチェーンを応用する際の契約は、物品や役務等の売買契約、譲渡、申込書、使用許諾などを指し、二者間以上の個人または機関において交わされる。
【０１０１】
ＰｏＳの場合、「コインの貯蓄量」がコストになる。従って、ブロックチェーンで証跡が残された契約の価値が、ブロックの生成者のコインの貯蓄量以上の価値がある状況において、ＰｏＳでブロックを生成する生成者が承認される場合、コストの貯蓄量を無駄にしても攻撃を挑む動機付けが生じる。そこで本発明の実施の形態において、取引経路パターンの量を、ブロックを生成する生成者を承認するためのパラメータ種別として採用する。これにより、取引パターンの量を増加させるためには、コインを使用して多様な取引を行なって信用を得なければならないので、このような信用を得たブロックの生成者が、攻撃することの抑止力につながる。
【０１０２】
図１０を参照して、本発明の実施の形態に係る取引パターン量を説明する。図１０（ａ）に示すように、ある参加者が過去に発行した経路パターンの集合をａとし、このａに含まれる経路パターンｐに含まれるノード数をｎｐ，ａとする場合、ａの全ての経路パターのノー度数の和（取引パターン量：スコア）は、式（１）で表現される。
【０１０３】
この場合、取引パターン量は、ブロックの生成者（ブロックチェーン生成装置１を用いる生成者）の識別子に関連するトランザクションデータにおける、取引相手の識別子の各組み合わせにおける、取引相手の識別子の合計である。具体的には、図１０（ｂ）に示すように、参加者Ａが過去に、Ｂのみを相手とする取引と、Ｃのみを相手とする取引と、ＢおよびＣのみを相手とする取引を行った場合を考える。各取引におけるノード数（取引相手の識別子の合計）は、それぞれ、１、１、２であるので、この場合の取引パターン量は、「４」となる。
【０１０４】
また他の方法として、取引パターン量が、ブロックの生成者の識別子に関連するトランザクションデータにおける、取引相手の識別子のユニーク数であっても良い。具体的には、図１０（ｂ）に示すように、参加者Ａが過去に、Ｂのみを相手とする取引と、Ｃのみを相手とする取引と、ＢおよびＣのみを相手とする取引を行った場合、参加者Ａの取引相手は、Ａ、ＢおよびＣであるので、この場合の取引パターン量は、「３」となる。
【０１０５】
なお、取引パターン量を算出する場合、同じ取引相手、または同じ取引相手の組み合わせで、数度取引があったとしても、取引パターン量が増えないように算出される。これにより、悪意のある複数の参加者が協力して、取引パターン量を増やすような不正を回避することができる。
【０１０６】
図１０（ｃ）は、このように算出された取引パターン量（ｓｃｏｒｅ（ａ））に基づいて、ブロックの生成者となりうるアドレスの条件式の一例を示す。図１０（ｃ）は、ＰｏＳに基づいてブロックの生成者となりうるアドレスの条件式において、コインの貯蓄量を、取引パターン量に変換したものである。
【０１０７】
図１１を参照して、取引パターン量算出手段１２４の処理を算出する取引パターン量算出処理を説明する。なお、取引パターン量算出手段２２５の処理も同様である。
【０１０８】
まずステップＳ１５１においてブロックチェーン生成装置１は、ブロックチェーンデータ１１２の過去のトランザクションから、ブロックの生成者（ブロックチェーン生成装置１を用いる参加者）に関連するトランザクションを抽出する。
【０１０９】
ステップＳ１５２においてブロックチェーン生成装置１は、ステップＳ１５１で抽出したトランザクションから、取引相手の識別子を特定する。ステップＳ１５３において、ステップＳ１５２において特定された取引相手の識別子に基づいて、ブロックの生成者の取引パターン量を算出する。
【０１１０】
上述したように、本発明の実施の形態に係るブロックチェーン生成装置１は、複数の相反するパラメータ種別のうちの一つのパラメータ種別に基づいて、ブロックチェーンに新たなブロックを連結する資格があるか否かを判定する。本発明の実施の形態において、複数の相反するパラメータ種別がブレンドされるブレンドパターンに基づいて各ブロックが生成され、ブロックチェーンが生成される。この「複数の相反するパラメータ種別」は、片方のリソースを独占したとしても、もう片方のリソースの独占に影響を及ぼさない関係、同一人が両立して条件を満たすことが難しい関係を有する。
【０１１１】
さらに、本発明の実施の形態に係るブロックチェーン検証装置２は、ブロックチェーンでの複数のブロックの生成で用いられた各パラメータ種別が、複数の相反するパラメータ種別をブレンドするブレンドパターンに合致する場合に、このブロックチェーンデータを承認する。
【０１１２】
これにより、本発明の実施の形態は、悪意のある生成者が連続してブロックを連結して、攻撃することを回避することができる。
【０１１３】
また、ブロックチェーンにおいて、連続する承認ブロック数のブロックが、複数の相反するパラメータ種別に基づいて生成されることにより、悪意のある生成者が連続してブロックを連結した状態で、完全な取引の完了が保証されることを回避することができる。
【０１１４】
さらに、本発明の実施の形態において、新たなブロックを連結する資格があるか否かを判断するために、生成者の信用スコアに対応する取引パターン量を用いる。取引パターン量は、長い時間をかけて積み上げた実績に基づくものであるので、この信用の暴落が攻撃の抑止力となる。さらに、取引パターン量によるブロック生成の承認は、仮想通貨の譲渡はもちろん、複数者間で契約書を交わす際の証跡としてブロックチェーンを応用する場合にも適用することができる。
【０１１５】
また、相反するパラメータ種別として、取引パターン量と、取引パターン量に相反するコインの貯蓄量を設定することにより、悪意のある生成者が連続してブロックを連結して、攻撃することを回避することができる。
【０１１６】
（その他の実施の形態）
上記のように、本発明の実施の形態によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
【０１１７】
例えば、本発明の実施の形態に記載したブロックチェーン生成装置１およびブロックチェーン検証装置２は、図５および図７にそれぞれ示すように一つのハードウエア上に構成されても良いし、その機能や処理数に応じて複数のハードウエア上に構成されても良い。また、既存の情報処理システム上に実現されても良い。
【０１１８】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【符号の説明】
【０１１９】
１  ブロックチェーン生成装置
２  ブロックチェーン検証装置
３  トランザクション生成装置
４  Ｐ２Ｐネットワーク
５  取引支援システム
１１０、２１０、３１０  記憶装置
１１１、２１１、３１１  共有データ
１１２、２１２、３１２  ブロックチェーンデータ
１１３、２１３、３１３  トランザクションデータ
１１４、２１４  ブロック承認方法データ
１１５、２１５  パラメータデータ
１２０、２２０、３２０  処理装置
１２１、２２１、３２１  同期手段
１２２、２２３  パターン算出手段
１２３、２２４  コイン貯蓄量算出手段
１２４、２２５  取引パターン量算出手段
１２５  ブロック生成条件確認手段
１２６  ブロックチェーン生成手段
１３０、２３０、３３０  通信制御装置
２２２  ブロック承認方法検証手段
２２６  ブロック生成条件検証手段
２２７  ブロックチェーン検証手段
【図１】
0006358658.tif 000002
【図２】
0006358658.tif 000003
【図３】
0006358658.tif 000004
【図４】
0006358658.tif 000005
【図５】
0006358658.tif 000006
【図６】
0006358658.tif 000007
【図７】
0006358658.tif 000008
【図８】
0006358658.tif 000009
【図９】
0006358658.tif 000010
【図１０】
0006358658.tif 000011
【図１１】
0006358658.tif 000012