(57)【要約】【課題】安全かつ効率的にブロックチェーンを更新する。【解決手段】サーバ装置１は探索空間を並列計算可能な形式に分割し、分割後探索空間を依頼計算可能な形式に変換する。クライアント装置２はトランザクションをサーバ装置１へ要求する。サーバ装置１は変換後探索空間のいずれか一つをクライアント装置２へ送信する。クライアント装置２はサーバ装置１から受信した変換後探索空間を用いて一方向性関数を計算し、依頼計算結果とトランザクションの確認に必要な情報とをサーバ装置１へ送信する。サーバ装置１は依頼計算結果とトランザクションの確認に必要な情報とをクライアント装置２から受信し、依頼計算結果を逆変換した一方向性関数の計算結果とトランザクションの確認に必要な情報とが正しいか否かを検証し、所定の条件を満たす計算結果を用いてブロックチェーンを更新する。【選択図】図４
2018197832.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１台のサーバ装置と複数台のクライアント装置とを含むブロックチェーン更新システムであって、
上記サーバ装置は、
ブロックチェーンのプルーフオブワークの探索空間を並列計算可能な形式に分割して複数の分割後探索空間を生成する探索空間分割部と、
上記分割後探索空間それぞれを依頼計算可能な形式に変換して複数の変換後探索空間を生成する探索空間変換部と、
上記変換後探索空間のいずれか一つを、トランザクションを要求した上記クライアント装置へ送信する依頼計算要求部と、
上記変換後探索空間に対するブロックチェーンの一方向関数の依頼計算結果と上記トランザクションの確認に必要な情報とを、上記トランザクションを要求した上記クライアント装置から受信する計算結果受信部と、
上記依頼計算結果を逆変換した上記一方向性関数の計算結果と上記トランザクションの確認に必要な情報とが正しいか否かを検証する計算結果検証部と、
上記計算結果に所定の条件を満たすものがあれば、その計算結果を用いて上記ブロックチェーンを更新するブロックチェーン更新部と、
を含み、
上記クライアント装置は、
上記トランザクションを上記サーバ装置へ要求するトランザクション要求送信部と、
上記サーバ装置から受信した上記変換後探索空間を用いて上記一方向性関数を計算して上記依頼計算結果を求める依頼計算実行部と、
上記依頼計算結果と上記トランザクションの確認に必要な情報とを上記サーバ装置へ送信する計算結果送信部と、
を含むブロックチェーン更新システム。
【請求項２】
請求項１に記載のブロックチェーン更新システムであって、
上記トランザクションは、上記サーバ装置が上記クライアント装置の正当性を検証するクライアント認証である、
ブロックチェーン更新システム。
【請求項３】
請求項１または２に記載のブロックチェーン更新システムであって、
上記一方向性関数は、楕円曲線上のペアリング演算である、
ブロックチェーン更新システム。
【請求項４】
請求項３に記載のブロックチェーン更新システムであって、
m, rを所定の整数とし、kを1以上m以下の各整数とし、jを1以上m以下の整数とし、G1, G2, GTを位数がnビットの群とし、eをe:G1×G2→Gtのペアリングとし、a, b←{0, 1}nとし、c=(ab)-1とし、Pを上記ブロックチェーンの最後のブロックに対応する上記一方向性関数の出力である楕円曲線G1上の点とし、Qを上記ブロックチェーンのプルーフオブワークの探索空間である楕円曲線G2上の点の集合とし、
上記探索空間分割部は、上記探索空間Qをm個に分割して、上記分割後探索空間Q1, Q2, …, Qmを生成するものであり、
上記探索空間変換部は、各kについてP':=aP, Q'k:=bQkを計算して、上記変換後探索空間Q'1, Q'2, …, Q'mおよび変換後一方向性関数出力P'を生成するものであり、
上記依頼計算要求部は、上記変換後探索空間Q'1, Q'2, …, Q'mに含まれる変換後探索空間Q'jと上記変換後一方向性関数出力P'とを上記クライアント装置へ送信するものであり、
上記依頼計算実行部は、上記変換後探索空間Q'jと上記変換後一方向性関数出力P'とを用いてe(P', Q'j)を計算して、上記依頼計算結果を求めるものであり、
上記計算結果検証部は、e(P', Q'j)c=e(P, Qj)を計算して、上記計算結果e(P, Qj)を求めるものであり、
上記ブロックチェーン更新部は、e(P, Qj)≦2n-r-1を満たす上記計算結果e(P, Qj)を用いて上記ブロックチェーンを更新するものである、
ブロックチェーン更新システム。
【請求項５】
ブロックチェーンのプルーフオブワークの探索空間を並列計算可能な形式に分割して複数の分割後探索空間を生成する探索空間分割部と、
上記分割後探索空間それぞれを依頼計算可能な形式に変換して複数の変換後探索空間を生成する探索空間変換部と、
上記変換後探索空間のいずれか一つを、トランザクションを要求したクライアント装置へ送信する依頼計算要求部と、
上記変換後探索空間に対するブロックチェーンの一方向関数の依頼計算結果と上記トランザクションの確認に必要な情報とを、上記トランザクションを要求した上記クライアント装置から受信する計算結果受信部と、
上記依頼計算結果を逆変換した上記一方向性関数の計算結果と上記トランザクションの確認に必要な情報とが正しいか否かを検証する計算結果検証部と、
上記計算結果に所定の条件を満たすものがあればその計算結果を用いて上記ブロックチェーンを更新するブロックチェーン更新部と、
を含むサーバ装置。
【請求項６】
トランザクションをサーバ装置へ要求するトランザクション要求送信部と、
上記サーバ装置から受信した変換後探索空間を用いてブロックチェーンの一方向性関数を計算して上記一方向関数の依頼計算結果を求める依頼計算実行部と、
上記依頼計算結果と上記トランザクションの確認に必要な情報とを上記サーバ装置へ送信する計算結果送信部と、
を含み、
上記変換後探索空間は、上記ブロックチェーンのプルーフオブワークの探索空間を並列計算可能な形式に分割した複数の分割後探索空間それぞれを依頼計算可能な形式に変換した複数の変換後探索空間のいずれか一つである、
クライアント装置。
【請求項７】
少なくとも１台のサーバ装置と複数台のクライアント装置とを含むブロックチェーン更新システムが実行するブロックチェーン更新方法であって、
上記サーバ装置は、ブロックチェーンのプルーフオブワークの探索空間を並列計算可能な形式に分割して複数の分割後探索空間を生成し、
上記サーバ装置は、上記分割後探索空間それぞれを依頼計算可能な形式に変換して複数の変換後探索空間を生成し、
上記クライアント装置は、トランザクションを上記サーバ装置へ要求し、
上記サーバ装置は、上記変換後探索空間のいずれか一つを、上記トランザクションを要求した上記クライアント装置へ送信し、
上記クライアント装置は、上記サーバ装置から受信した上記変換後探索空間を用いて上記ブロックチェーンの一方向性関数を計算して上記ブロックチェーンの一方向性関数の依頼計算結果を求め、
上記クライアント装置は、上記依頼計算結果と上記トランザクションの確認に必要な情報とを上記サーバ装置へ送信し、
上記サーバ装置は、上記依頼計算結果と上記トランザクションの確認に必要な情報とを、上記トランザクションを要求した上記クライアント装置から受信し、
上記サーバ装置は、上記依頼計算結果を逆変換した上記一方向性関数の計算結果と上記トランザクションの確認に必要な情報とが正しいか否かを検証し、
上記サーバ装置は、上記計算結果に所定の条件を満たすものがあればその計算結果を用いて上記ブロックチェーンを更新する、
ブロックチェーン更新方法。
【請求項８】
請求項５に記載のサーバ装置もしくは請求項６に記載のクライアント装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、改ざん防止を目的とするブロックチェーン技術に関し、特に、ブロックチェーンの更新にクライアントサーバモデルの依頼計算を用いる技術に関する。
【背景技術】
【０００２】
インターネットのようなオンラインネットワークにおいて他者に安全に計算を依頼する技術として、依頼計算（Server-aided Computation）が挙げられる（例えば、非特許文献１参照）。非特許文献１には、依頼計算の技術として、楕円曲線上のペアリング代理計算（Outsourcing Pairing Computation）が記載されている。
【０００３】
改ざん防止を目的とするブロックチェーンを用いた技術として、ビットコイン（例えば、非特許文献２参照）やイーサリアム（例えば、非特許文献３参照）が挙げられる。ビットコインやイーサリアムでは、一方向性関数の実装としてハッシュ関数を用いている。ビットコインではハッシュ関数としてSHA-256を用い、イーサリアムではハッシュ関数としてKeccak-256やKeccak-512（いわゆるSHA-3）などを用いている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Aurora Guillevic and Damien Vergnaud、「Algorithms for Outsourcing Pairing Computation」、[online]、[平成29年5月15日検索]、インターネット<URL: https://www.cardis.org/proceedings/cardis_2014/pdf/CARDIS2014_12.pdf>
【非特許文献２】Satoshi Nakamoto、「Bitcoin: A Peer-to-Peer Electronic Cash System」、[online]、[平成29年5月15日検索]、インターネット<URL: https://bitcoin.org/bitcoin.pdf>
【非特許文献３】DR. GAVIN WOOD、「ETHEREUM: A SECURE DECENTRALISED GENERALISED TRANSACTION LEDGER」、[online]、[平成29年5月15日検索]、インターネット<URL: http://gavwood.com/Paper.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ビットコインやイーサリアムでは、マイニングの成功報酬としてマイナー（採掘者）に仮想通貨を提供している。つまり、ブロックチェーンの更新を進めるために、マイナーに積極的なインセンティブを与える施策が必要である。この成功報酬がマイナー間での自由なマイニング競争を生み出しているが、結果としてシステム全体で見た場合には計算の重複部分が増えてしまうという課題も生じている。
【０００６】
計算の重複部分をなくすために、中央集権的なサーバ装置を作成し、そのサーバ装置がマイニングを行うことが考えられる。しかしながら、この場合、サーバ装置にマイニングの負荷が集中する点が課題となる。また、サーバ装置に負荷が集中しないように、マイニング探索空間を分割してクライアント装置に再配布する仕組みが考えられる。しかしながら、この場合、クライアント装置がマイニングの結果をサーバ装置よりも先に知ってしまう点が課題になる。
【０００７】
この発明の目的は、上記のような点に鑑みて、安全かつ効率的にブロックチェーンを更新することができるブロックチェーン更新技術を実現することである。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、この発明のブロックチェーン更新システムは、少なくとも１台のサーバ装置と複数台のクライアント装置とを含む。サーバ装置は、ブロックチェーンのプルーフオブワークの探索空間を並列計算可能な形式に分割して複数の分割後探索空間を生成する探索空間分割部と、分割後探索空間それぞれを依頼計算可能な形式に変換して複数の変換後探索空間を生成する探索空間変換部と、変換後探索空間のいずれか一つを、トランザクションを要求したクライアント装置へ送信する依頼計算要求部と、変換後探索空間に対するブロックチェーンの一方向関数の依頼計算結果とトランザクションの確認に必要な情報とを、トランザクションを要求したクライアント装置から受信する計算結果受信部と、依頼計算結果を逆変換した一方向性関数の計算結果とトランザクションの確認に必要な情報とが正しいか否かを検証する計算結果検証部と、計算結果に所定の条件を満たすものがあれば、その計算結果を用いてブロックチェーンを更新するブロックチェーン更新部と、を含む。クライアント装置は、トランザクションをサーバ装置へ要求するトランザクション要求送信部と、サーバ装置から受信した変換後探索空間を用いて一方向性関数を計算して依頼計算結果を求める依頼計算実行部と、依頼計算結果とトランザクションの確認に必要な情報とをサーバ装置へ送信する計算結果送信部と、を含む。
【発明の効果】
【０００９】
この発明では、サーバ装置がクライアント装置に依頼計算を要求することで、クライアント装置から計算リソースを得られるため、サーバ装置のみがマイニングを行う場合と比較してサーバ装置の負荷が低減する。また、サーバ装置は依頼計算が正しく行われたことを検証できない限りトランザクションを提供しないため、クライアント装置からのトランザクションに関するカジュアルアタックや総当たり攻撃の試みを減らすことができる。また、サーバ装置が依頼計算を用いて元の情報が漏れない形式に変換するため、クライアント装置にはマイニングに関する情報が漏れない。さらに、サーバ装置がマイニング空間を並列に分割してクライアント装置に割り振ることで、自由競争のマイニングの場合と比較して計算の重複部分を減らすことができるため、システム全体の計算リソースをより効率的に利用できる。したがって、この発明によれば、安全かつ効率的にブロックチェーンを更新することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、ブロックチェーン更新システムの機能構成を例示する図である。
【図２】図２は、サーバ装置の機能構成を例示する図である。
【図３】図３は、クライアント装置の機能構成を例示する図である。
【図４】図４は、ブロックチェーン更新方法の処理手続きを例示する図である。
【図５】図５は、ブロックチェーンのデータ構造を説明するための図である。
【図６】図６は、プルーフオブワーク（PoW: Proof of Work）探索空間の分割と変換について説明するための図である。
【発明を実施するための形態】
【００１１】
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００１２】
この発明の実施形態は、インターネットのようなオンラインネットワークにおいて、改ざん防止を目的としたブロックチェーンを、依頼計算を用いて更新するブロックチェーン更新システムおよび方法である。実施形態のブロックチェーン更新システムおよび方法では、ブロックチェーンにおける一方向性関数の実装方式として、例えば、楕円曲線上のペアリング演算を用いる。また、依頼計算の契機となるトランザクション要求として、例えば、サーバ装置がクライアント装置の正当性を検証するクライアント認証を用いる。また、依頼計算として、例えば、ペアリング代理計算を用いる。
【００１３】
図１を参照して、実施形態のブロックチェーン更新システムの構成例を説明する。ブロックチェーン更新システムは、少なくとも１台のサーバ装置１と複数台のクライアント装置２1, …, ２N（N≧2）とを含む。この実施形態では、サーバ装置１とクライアント装置２1, …, ２Nとはそれぞれ通信網３へ接続される。通信網３は、接続される各装置が相互に通信可能なように構成された回線交換方式もしくはパケット交換方式の通信網であり、例えばインターネットやLAN（Local Area Network）、WAN（Wide Area Network）などを用いることができる。
【００１４】
ブロックチェーン更新システムに含まれるサーバ装置１は、例えば、図２に示すように、ブロックチェーン記憶部１０、探索空間分割部１１、探索空間変換部１２、トランザクション要求受信部１３、依頼計算要求部１４、計算結果受信部１５、計算結果検証部１６、およびブロックチェーン更新部１７を含む。ブロックチェーン更新システムに含まれるクライアント装置２i（i=1, …, N）は、例えば、図３に示すように、トランザクション要求送信部２１、依頼計算実行部２２、および計算結果送信部２３を含む。このサーバ装置１がクライアント装置２iと協調しながら図４に示す各ステップの処理を行うことにより実施形態のブロックチェーン更新方法が実現される。
【００１５】
サーバ装置１およびクライアント装置２iは、例えば、中央演算処理装置（CPU: Central Processing Unit）、主記憶装置（RAM: Random Access Memory）などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。サーバ装置１およびクライアント装置２iは、例えば、中央演算処理装置の制御のもとで各処理を実行する。サーバ装置１およびクライアント装置２iに入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。サーバ装置１およびクライアント装置２iの各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
【００１６】
以下、図４を参照して、実施形態のブロックチェーン更新システムが実行するブロックチェーン更新方法の処理手続きを説明する。
【００１７】
サーバ装置１のブロックチェーン記憶部１０には、更新対象となるブロックチェーンが記憶されている。このブロックチェーンは、図５に示すように、１つ前のブロックの一方向性関数の出力結果と今回のブロック（block）で追加された値（item）とから求められた楕円曲線G1上の点Pと、ナンス（nonce）の代替として用いられる楕円曲線G2上の点Qとを用いて一方向性関数を計算する。点Pはブロックチェーンの更新のたびに一意に固定される。マイナーは点Qの値を任意に変更しながら、一方向性関数であるペアリング演算e(P, Q)の計算結果が所定の条件を満たす点Qを探索する。所定の条件は、例えば、先頭rビットが0（rは所定の整数）などである。なお、以下の説明では、G1, G2, GTを位数がnビットの群とし、e:G1×G2→Gtをペアリング演算とする。
【００１８】
ステップＳ１１において、サーバ装置１の探索空間分割部１１は、ブロックチェーン記憶部１０に記憶されているブロックチェーンにおけるプルーフオブワーク（PoW: Proof of Work）の探索空間Qを、並列計算可能な形式となるようにm個に分割する（図６参照）。以降の説明では、分割された探索空間（分割後探索空間とも呼ぶ）をQ1, Q2, …, Qmとする。すなわち、Q:={Q1, Q2, …, Qm}である。mは所定の整数であり、例えば、クライアント装置２iの台数N、クライアント装置２iの計算リソース等を鑑みて適宜設定すればよい。探索空間Qは楕円曲線G2上の点の集合であるため、探索空間の分割は、各分割後探索空間Q1, Q2, …, Qmに含まれる点の数に基づいて行ってもよいし、楕円曲線G2上の範囲に基づいて行ってもよい。探索空間分割部１１は、分割後探索空間Q1, Q2, …, Qmを探索空間変換部１２へ入力する。
【００１９】
ステップＳ１２において、サーバ装置１の探索空間変換部１２は、探索空間分割部１１から分割後探索空間Q1, Q2, …, Qmを受け取り、分割後探索空間Q1, Q2, …, Qmそれぞれを依頼計算可能な形式となるように変換する（図６参照）。また、ブロックチェーンの最後のブロックに対応する一方向性関数の出力Pを依頼計算可能な形式となるように変換する。以降の説明では、変換された分割後探索空間（変換後探索空間とも呼ぶ）をQ'1, Q'2, …, Q'mとし、変換された一方向性関数の出力（変換後一方向性関数出力とも呼ぶ）をP'とする。具体的には、kを1以上m以下の各整数とし、各kについて、P':=aP, Q'k:=bQkを計算する。ただし、a, bはあらかじめ定めた値a, b←{0, 1}nである。さらに、探索空間変換部１２は、a, bを用いて、c:=(ab)-1を計算し、計算結果cを記憶しておく。a, bはセキュリティパラメータ長程度の長さで構わないため、通常の楕円スカラー倍算よりも平均的に高速に計算することができる。探索空間変換部１２は、変換後探索空間Q'1, Q'2, …, Q'mおよび変換後一方向性関数出力P'を依頼計算要求部１４へ入力する。
【００２０】
ステップＳ２１において、クライアント装置２iのトランザクション要求送信部２１は、所定のトランザクション要求をサーバ装置１へ送信する。このトランザクションはブロックチェーンの更新処理の契機として利用するものであり、ブロックチェーンとは無関係なものでよいが、定期的に発生するものであることが望ましい。ここでは、クライアント装置２iの正当性を検証するクライアント認証の要求をサーバ装置１へ送信するものとする。
【００２１】
ステップＳ１３において、サーバ装置１のトランザクション要求受信部１３は、クライアント装置２iが送信したトランザクション要求を受信する。トランザクション要求受信部１３は、トランザクション要求を送信してきたクライアント装置２iを示す情報を依頼計算要求部１４へ入力する。
【００２２】
ステップＳ１４において、サーバ装置１の依頼計算要求部１４は、探索空間変換部１２から変換後探索空間Q'1, Q'2, …, Q'mおよび変換後一方向性関数出力P'を受け取り、変換後探索空間Q'1, Q'2, …, Q'mのいずれか一つである変換後探索空間Q'j（1≦j≦m）と変換後一方向性関数出力P'とを、トランザクション要求を送信してきたクライアント装置２iへ送信する。通常、変換後探索空間Q'jには楕円曲線G2上の点を変換した点が複数含まれるが、そのすべての点をクライアント装置２iへ送信する。
【００２３】
ステップＳ２２において、クライアント装置２iの依頼計算実行部２２は、サーバ装置１から変換後探索空間Q'jと変換後一方向性関数出力P'とを受信し、変換後探索空間Q'jと変換後一方向性関数出力P'とを用いてブロックチェーンの一方向性関数であるペアリング演算を計算して、依頼計算結果e(P', Q'j)を求める。変換後探索空間Q'jに楕円曲線G2上の点を変換した点が複数含まれる場合、そのすべての点についてペアリング演算を計算する。すなわち、依頼計算結果e(P', Q'j)は変換後探索空間Q'jに含まれる点の数だけ存在することになる。依頼計算要求部１４は、依頼計算結果e(P', Q'j)を計算結果送信部２３へ入力する。
【００２４】
ステップＳ２３において、クライアント装置２iの計算結果送信部２３は、依頼計算要求部１４から依頼計算結果e(P', Q'j)を受け取り、依頼計算結果e(P', Q'j)とトランザクションの確認に必要な情報とをサーバ装置１へ送信する。トランザクションの確認に必要な情報は、トランザクションの種類に基づいて決定される。この実施形態ではトランザクションとしてクライアント認証を用いるため、トランザクションの確認に必要な情報は、例えば、ワンタイムパスワードの値などのクライアント装置２iに固有の認証情報とする。
【００２５】
ステップＳ１５において、サーバ装置１の計算結果受信部１５は、クライアント装置２iから依頼計算結果e(P', Q'j)とトランザクションの確認に必要な情報とを受信する。計算結果受信部１５は、依頼計算結果e(P', Q'j)とトランザクションの確認に必要な情報とを計算結果検証部１６へ入力する。
【００２６】
ステップＳ１６において、サーバ装置１の計算結果検証部１６は、計算結果受信部１５から依頼計算結果e(P', Q'j)とトランザクションの確認に必要な情報とを受け取り、依頼計算結果e(P', Q'j)を逆変換した一方向性関数の計算結果e(P, Qj)とトランザクションの確認に必要な情報とが正しいか否かを検証する。依頼計算結果e(P', Q'j)が複数存在する場合は、そのすべての依頼計算結果e(P', Q'j)について正しいか否かを検証する。依頼計算結果e(P', Q'j)の逆変換は、ペアリング演算の双線形性を利用して、以下のように計算する。なお、「^」は上付き添え字中の上付き添え字を表す。すなわち、「(ab)^-1」は「ab-1」である。
【００２７】
e(P', Q'j)c = e(aP, bQj)(ab)^-1= e(P, Qj)(ab)(ab)^-1 = e(P, Qj)
トランザクションの確認に必要な情報が正しいか否かの判断は、認証情報の種類に応じて一般的な認証手段を用いて行えばよい。ペアリング演算の計算結果e(P, Qj)が正しいか否かの判断は、下記参考文献１の「5.1 双線形関数に対する自己訂正器」に記載された手順により実現できる。
〔参考文献１〕山本剛、小林鉄太郎、「準同型写像に対する自己訂正について」、The 2010 Symposium on Cryptography and Information Security (SCIS2010)、2D2-3
【００２８】
計算結果検証部１６は、依頼計算結果e(P', Q'j)を逆変換した計算結果e(P, Qj)とトランザクションの確認に必要な情報との検証がいずれも正しい場合は、クライアント装置２iへアクセスを許可する。いずれかが正しくない場合は、クライアント装置２iのアクセスを拒否する。アクセスを許可する場合、計算結果検証部１６は、計算結果e(P, Qj)をブロックチェーン更新部１７へ入力する。
【００２９】
ステップＳ１７において、サーバ装置１のブロックチェーン更新部１７は、計算結果検証部１６から計算結果e(P, Qj)を受け取り、その計算結果e(P, Qj)に所定の条件を満たすものが存在するか否かを検証する。所定の条件を満たすものが存在する場合、その計算結果e(P, Qj)を用いてブロックチェーンを更新する。具体的には、e(P, Qj)≦2n-r-1を満たす点Qjが存在すれば、その点Qjを用いてブロックチェーンを更新する。ブロックチェーンを更新することで次のブロックへ引き渡す一方向性関数の出力結果が定まる。
【００３０】
上記の実施形態では、トランザクションとしてワンタイムパスワードによるクライアント認証を挙げたが、下記参考文献２に記載されたM-Pinを用いてもよい。M-Pinでは、クライアント装置２iはサーバ装置１から得た値yを元に楕円曲線上のスカラー倍算を行い、その計算結果Vをサーバ装置１へ返却する。M-Pinは、クライアント装置２iがすでに楕円曲線上における計算処理能力を持っており、かつ、それを認証時に利用しているため、上記の実施形態と親和性が高いクライアント認証方式である。
〔参考文献２〕Michael Scott、「M-Pin Full Technology (Version 3.1)」、[online]、[平成29年5月15日検索]、インターネット<URL: https://www.miracl.com/hubfs/mpinfull_3.1.pdf>
【００３１】
上記のように構成することにより、実施形態のブロックチェーン更新システムによれば、以下の効果が得られる。まず、サーバ装置１がクライアント装置２iから計算リソースを得られるため、サーバ装置１のみがマイニングを行う場合と比較してサーバ装置１の負荷が低減する。また、サーバ装置１は依頼計算が正しく行われたことを検証できない限りトランザクションを提供しないため、クライアント装置２i側からのトランザクションに関するカジュアルアタックや総当たり攻撃の試みを減らすことができる。また、サーバ装置１が依頼計算を用いて元の情報が漏れない形式に変換するため、クライアント装置２iにはマイニングに関する情報が漏れない。さらに、サーバ装置１がマイニング空間を並列に分割してクライアント装置２iに割り振ることで、自由競争のマイニングの場合と比較して計算の重複部分を減らすことができるため、システム全体の計算リソースをより効率的に利用できる。したがって、この実施形態によれば、安全かつ効率的にブロックチェーンを更新することができる。
【００３２】
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【００３３】
［プログラム、記録媒体］
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００３４】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００３５】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００３６】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００３７】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【００３８】
１  サーバ装置
２  クライアント装置
３  通信網
１０  ブロックチェーン記憶部
１１  探索空間分割部
１２  探索空間変換部
１３  トランザクション要求受信部
１４  依頼計算要求部
１５  計算結果受信部
１６  計算結果検証部
１７  ブロックチェーン更新部
２１  トランザクション要求送信部
２２  依頼計算実行部
２３  計算結果送信部
【図１】
2018197832.tif 000003
【図２】
2018197832.tif 000004
【図３】
2018197832.tif 000005
【図４】
2018197832.tif 000006
【図５】
2018197832.tif 000007
【図６】
2018197832.tif 000008