(57)【要約】ネットワーク間における資産移動の安全性を確保する。上位ネットワークＡから下位ネットワークＢへの資産移動は制限なく許容する一方、下位ネットワークＢから上位ネットワークＡへの資産移動は、上位ネットワークＡに引き渡す資産の総量Σbaが上位ネットワークＡより受け取った資産の総量Σabを超えないことを条件として許容される。
2017170997.tif 000002
【特許請求の範囲】
【請求項１】
上位ネットワーク及び前記上位ネットワークの下位に位置する１又は複数の下位ネットワークを有するネットワークにおいて前記１又は複数の下位ネットワークのいずれかを構成するノードにおける処理方法であって、
前記ノードが、前記ノードが含まれる下位ネットワークから前記上位ネットワークへの資産の移動を生じさせるトランザクションを含むブロックを生成するステップと、
前記ノードが、前記ノードが含まれる下位ネットワークを構成するノードのうちの所定の数により承認が得られたことを条件に前記ブロックを確定させて、前記ノードが含まれる下位ネットワークと自己以外のネットワークとの間の取引履歴に前記ブロックを追加するステップと
を含み、
前記上位ネットワークへの資産の移動は、前記ブロックの確定に応じて、前記トランザクションを含む前記上位ネットワークへの資産の移動の総量が前記上位ネットワークからの資産の移動の総量を超えないことを条件に許容されることを特徴とする処理方法。
【請求項２】
前記トランザクションは、前記下位ネットワークにおける資産の消滅として取り扱われ、
前記上位ネットワークへの資産の移動は、前記下位ネットワークから消滅する前記資産と同等の価値を有する資産を発生させる前記上位ネットワーク内のトランザクションにより行われることを特徴とする請求項１に記載の処理方法。
【請求項３】
前記下位ネットワークのトランザクションは、前記下位ネットワークのアドレスを資産の移動元とし、その秘密鍵を誰も知らないアドレスを資産の移動先とすることを特徴とする請求項１又は２に記載の処理方法。
【請求項４】
前記下位ネットワークのトランザクションは、前記上位ネットワークのブロックチェーンを指定するチェーン識別子を有することを特徴とする請求項１乃至３のいずれかに記載の処理方法。
【請求項５】
コンピュータに、上位ネットワーク及び前記上位ネットワークの下位に位置する１又は複数の下位ネットワークを有するネットワークにおいて前記１又は複数の下位ネットワークのいずれかを構成するノードにおける処理方法を実行させるためのプログラムであって、前記処理方法は、
前記ノードが、前記ノードが含まれる下位ネットワークから前記上位ネットワークへの資産の移動を生じさせるトランザクションを含むブロックを生成するステップと、
前記ノードが、前記ノードが含まれる下位ネットワークを構成するノードのうちの所定の数により承認が得られたことを条件に前記ブロックを確定させて、前記ノードが含まれる下位ネットワークと自己以外のネットワークとの間の取引履歴に前記ブロックを追加するステップと
を含み、
前記上位ネットワークへの資産の移動は、前記ブロックの確定に応じて、前記トランザクションを含む前記上位ネットワークへの資産の移動の総量が前記上位ネットワークからの資産の移動の総量を超えないことを条件に許容されることを特徴とするプログラム。
【請求項６】
上位ネットワーク及び前記上位ネットワークの下位に位置する１又は複数の下位ネットワークを有するネットワークにおいて前記１又は複数の下位ネットワークのいずれかを構成するノードであって、
前記ノードが含まれる下位ネットワークから前記上位ネットワークへの資産の移動を生じさせるトランザクションを含むブロックを生成し、
前記ノードが含まれる下位ネットワークを構成するノードのうちの所定の数により承認が得られたことを条件に前記ブロックを確定させて、前記ノードが含まれる下位ネットワークと自己以外のネットワークとの間の取引履歴に前記ブロックを追加し、
前記上位ネットワークへの資産の移動は、前記ブロックの確定に応じて、前記トランザクションを含む前記上位ネットワークへの資産の移動の総量が前記上位ネットワークからの資産の移動の総量を超えないことを条件に許容されることを特徴とするノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層型ネットワークシステム、これに用いられるノード装置およびコンピュータプログラムに係り、特に、ネットワーク間で資産を移動する仕組みに関する。
【背景技術】
【０００２】
従来、ブロックチェーンと称される技術が知られている。この技術は、ネットワーク上の多数のノード間で同一の記録を同期させる仕組みであって、既存の記録に新しい記録を追加する場合、記録単位となるブロックが、直前のブロックの内容（ハッシュ）を引き継ぎながら、チェーン状に次々と追加されていくことから、このように称されている。一般に、ブロックチェーンという用語は、ブロックがチェーン状に繋がったデータベースの構造を指すこともあるが、Ｐ２Ｐネットワークとして稼働する仕組みや、トランザクションの承認の仕組みなども含めた広義の意味で用いられることもあり、現時点において、その定義は定かではない。そこで、本明細書では、両者の混同を防ぐために、前者の狭義の意味で用いる場合は「ブロックチェーン」、後者の広義の意味で用いる場合は「ブロックチェーン技術」とそれぞれ称することとする。【０００３】
ブロックチェーン技術は、ゼロダウンタイム、改ざんの困難性、低コストといった多くの利点を有しているため、ビットコイン（bitcoin）やその派生通貨を含む仮想通貨にとどまらず、様々な資産（asset）に関する情報をトランザクションとして管理する手法としても注目され始めている。例えば、非特許文献１には、信頼性確立のために重要な役割を果たし得るブロックチェーンを、様々な文書の存在証明やアイデンティティ証明に使うことが記載されている。【０００４】
また、非特許文献２には、図１４に示すように、サイドチェーンを導入して、従来複数の暗号通貨が持っていた独自のブロックチェーンを相互に結び、暗号通貨全体の資産をひとつのブロックチェーンとして転送することが記載されている。このサイドチェーンについて、非特許文献２には、パブリックな分散型取引元帳データベースであるブロックチェーンの側鎖となる概念であること、および、ビットコインのブロックチェ−ンをメインチェ−ンとし、双方向連動(two-ways peg)させることで、暗号技術や新技術の研究開発やβ版のテスト、およびスマートコントラクトや現実資産のレジストリとして、様々な資源の効率的な活用が可能であることが記載されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ブロックチェーンはサイバー空間での信頼関係を築く――「存在証明」や「アイデンティティ証明」が持つ重要な意味、［online］、［平成２８年３月２８日検索］、インターネット＜URL：http://diamond.jp/articles/-/53050＞
【非特許文献２】ビットコインは「サイドチェイン」にインターネット興隆の夢を見るか？、［online］、［平成２８年２月１８日検索］、インターネット＜http://btcnews.jp/blockstream-released-sidechains-whitepaper/＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、ブロックチェーン技術では、その仕組み上、Ｐ２Ｐネットワーク上のすべてのノードが膨大なトランザクションのコピーを保持している。そのため、一つのネットワークが単位時間当たりに処理できるトランザクションの数には、自ずと限界がある。その結果、トランザクション処理のスケーラビリティを確保できず、各ノードの処理能力やネットワーク帯域によって、十分な処理速度を確保できないといった問題がある。【０００７】
スケーラビリティを高めるためには、サイドチェーン技術を用いて、一つの大きなネットワークを複数の小さなネットワークに分割し、トランザクションの管理単位を細分化することが有効であり、その一つとして、ハブ型のトポロジーが考えられる。しかしながら、ハブ型の場合、それぞれのネットワークが互いに対等であり、その信頼性に優劣はない。そのため、あるネットワークから他のネットワークへ資産移動の安全性が問題となる。【０００８】
本発明は、かかる事情に鑑みてなされたもので、その目的は、ネットワーク間における資産移動の安全性を確保することである。
【課題を解決するための手段】
【０００９】
第１の発明は、階層構造において上下に接続されたネットワーク間で資産の移動が行われる階層型ネットワークシステムを提供する。この階層型ネットワークシステムは、上位ネットワークと、下位ネットワークとを有する。上位ネットワークは、自己のネットワーク内で行われた取引と、自己以外のネットワークとの間で行われた資産の移動とを第１の取引履歴として管理する。また、上位ネットワークは、自己のネットワークよりも下位に位置するネットワークに対して、資産の移動が許容される。一方、下位ネットワークは、上位ネットワークよりも下位に位置するネットワークであって、自己のネットワーク内で行われた取引と、自己以外のネットワークとの間で行われた資産の移動とを第２の取引履歴として管理する。また、下位ネットワークは、第２の取引履歴を参照して、上位ネットワークに引き渡す資産の総量が上位ネットワークより受け取った資産の総量を超えないことを条件として、上位ネットワークに対する資産の移動が許容される。【００１０】
ここで、第１の発明において、資産の移動元となるネットワークから資産の移動先となるネットワークに至る資産の移動経路上に、少なくとも一つのネットワークが介在する場合、階層構造において上下に接続されたネットワーク間での資産の移動が繰り返されることが好ましい。【００１１】
第２の発明は、上記第１の発明に係る階層型ネットワークシステムにおける上位ネットワーク用のノード装置を提供する。このノード装置は、ブロック生成部と、トランザクション処理部とを有する。ブロック生成部は、上位ネットワークのアドレスを資産の移動元とし、下位ネットワークのアドレスを資産の移動先とし、かつ、上位ネットワーク内における資産の消滅として取り扱われる第１のトランザクションを含むブロックを生成する。トランザクション処理部は、上位ネットワークにおいて、所定の承認プロトコルにしたがい、ブロックの承認が得られたことを条件として、下位ネットワークに対して、第１のトランザクションに係る資産の発生を許可する。【００１２】
第３の発明は、上記第１の発明に係る階層型ネットワークシステムにおける下位ネットワーク用のノード装置を提供する。このノード装置は、ブロック生成部と、トランザクション処理部とを有する。ブロック生成部は、下位ネットワークのアドレスを資産の移動元とし、上位ネットワークのアドレスを資産の移動先とし、かつ、下位ネットワーク内における資産の消滅として取り扱われる第２のトランザクションを含むブロックを生成する。トランザクション処理部は、下位ネットワークにおいて、所定の承認プロトコルにしたがい、ブロックの承認が得られたこと、および、第２の取引履歴を参照して、上位ネットワークに引き渡す資産の総量が上位ネットワークより受け取った資産の総量を超えないことを条件として、上位ネットワークに対して、第２のトランザクションに係る資産の発生を許可する。【００１３】
ここで、第２または第３の発明において、上記トランザクション処理部は、承認依頼部と、ブロック確定部とを有することが好ましい。承認依頼部は、ブロックに自ノードの秘密鍵による署名を付した上で、自己のネットワーク内のｍ（ｍ≧２）個のノード群に対して、ブロックの承認依頼を送信する。ブロック確定部は、承認の依頼先となるノードよりブロックの承認結果を受信した場合、この承認結果に付された署名の正当性を承認の依頼先の公開鍵を用いて検証した上で、ｍ個のノードのうちのｎ（ｍ≧ｎ≧１）個以上の承認が得られたことを条件として、第１の取引履歴または第２の取引履歴にブロックを追加する。【００１４】
第２または第３の発明において、上記第１の取引履歴または上記第２の取引履歴は、上位ネットワーク内のそれぞれのノード、または、下位ネットワーク内のそれぞれのノードが、同一の記録内容を同期して保持し、かつ、記録単位となるブロックが記録順序にしたがい繋がった分散データベースによって管理されていることが好ましい。【００１５】
第４の発明は、上記第１の発明に係る階層型ネットワークシステムにおける上位ネットワーク用のコンピュータプログラムを提供する。このコンピュータプログラムは、上位ネットワークのアドレスを資産の移動元とし、下位ネットワークのアドレスを資産の移動先とし、かつ、上位ネットワーク内における資産の消滅として取り扱われる第１のトランザクションを含むブロックを生成する第１のステップと、上位ネットワークにおいて、所定の承認プロトコルにしたがい、ブロックの承認が得られたことを条件として、下位ネットワークに対して、第１のトランザクションに係る資産の発生を許可する第２のステップとを有する処理をコンピュータに実行させる。【００１６】
第５の発明は、上記第１の発明に係る階層型ネットワークシステムにおける下位ネットワーク用のコンピュータプログラムを提供する。このコンピュータプログラムは、下位ネットワークのアドレスを資産の移動元とし、上位ネットワークのアドレスを資産の移動先とし、かつ、下位ネットワーク内における資産の消滅として取り扱われる第２のトランザクションを含むブロックを生成する第１のステップと、下位ネットワークにおいて、所定の承認プロトコルにしたがい、ブロックの承認が得られたこと、および、第２の取引履歴を参照して、上位ネットワークに引き渡す資産の総量が上位ネットワークより受け取った資産の総量を超えないことを条件として、上位ネットワークに対して、第２のトランザクションに係る資産の発生を許可する第２のステップとを有する処理をコンピュータに実行させる。【００１７】
ここで、第４または第５の発明において、上記第２のステップは、ブロックに自ノードの秘密鍵による署名を付した上で、自己のネットワーク内のｍ（ｍ≧２）個のノードに対して、ブロックの承認依頼を送信するステップと、承認の依頼先となるノードよりブロックの承認結果を受信した場合、この承認結果に付された署名の正当性を承認の依頼先の公開鍵を用いて検証した上で、ｍ個のノードのうちのｎ（ｍ≧ｎ≧１）個以上の承認が得られたことを条件として、第１の取引履歴または第２の取引履歴にブロックを追加するステップとを有することが好ましい。【００１８】
また、第４または第５の発明において、上記第１の取引履歴または上記第２の取引履歴は、上位ネットワーク内のそれぞれのノード、または、下位ネットワーク内のそれぞれのノードが、同一の記録内容を同期して保持し、かつ、記録単位となるブロックが記録順序にしたがい繋がった分散データベースによって管理されていることが好ましい。
【発明の効果】
【００１９】
本発明によれば、下位ネットワークから上位ネットワークへの資産移動は、上位ネットワークに引き渡す資産の総量が上位ネットワークより受け取った資産の総量を超えないことを条件として許容される。このように、階層構造において、下位ネットワークよりも上位ネットワークの方を信頼し、信頼性の低い下位ネットワークからの資産移動については総量を規制することで、ネットワーク相互の高度な承認プロセスを経なくとも、ネットワーク間における資産移動を安全に行うことができる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態に係る階層型ネットワークシステムの構成図
【図２】ネットワーク間の資産移動の説明図
【図３】階層構造におけるネットワークを跨いだ資産移動の説明図
【図４】ネットワークの物理的な構成図
【図５】ネットワークの論理的な構成図
【図６】プライベートノードにおける公開鍵の設定方法の説明図
【図７】通常トランザクションおよび引渡トランザクションの説明図
【図８】パブリックノード用のノード装置の機能的なブロック図
【図９】プライベートノード用のノード装置の機能的なブロック図
【図１０】トランザクションの記録処理のフローを示す図
【図１１】トランザクションの処理待ち状態を示す図
【図１２】多重署名によるブロック承認の説明図
【図１３】データベース構造の説明図
【図１４】従来技術におけるサイドチェーン概要図
【発明を実施するための形態】
【００２１】
図１は、本実施形態に係る階層型ネットワークシステムの構成図である。この階層型ネットワークシステム１００は、上下に階層化された複数のネットワーク１よりなり、頂点となる最上位のネットワーク１から下位の階層に向かって、枝分かれしながら多数のネットワーク１が連なったツリー構造を有している。それぞれのネットワーク１は、自己のネットワーク１内で行われた取引と、他のネットワーク１との間で行われた資産の移動とを取引履歴として管理している。それぞれのネットワーク１において、どのような取引を管理の対象とするかは、その用途に応じて、システムの仕様として予め決められている。例えば、銀行システムであれば、実通貨の取引が対象となり、証券システムであれば証券の取引が対象となる。本明細書において、「取引」とは、実通貨、仮想通貨、証券、不動産等の資産ないしこの資産の状態の保持（ストック）、資産の移転（フロー）はもとより、契約も含む概念をいい、契約は、資産にも負債にもなり得る。また、デリバティブの概念を導入することで、より広い範囲の取引を定義できる。なお、それぞれのネットワーク１が取り扱う資産は、同種のものであってもよいが、例えば、あるネットワーク１では円、別のネットワーク１でドルといった如く、ネットワーク１毎に異種の資産を取り扱ってもよい。
【００２２】
例えば、「ＡからＢへ１億円を送金する」や「ＡからＢへ特定株を５００株受け取る」といったことは、資産の移転（フロー）と同義であり、１方向の取引として捉えることができる。「Ａは１億円の預金を保有している」や「Ａは特定株を５００株持っている」といったことは、資産そのものとも捉えることができるし、資産の状態の保持（ストック）という概念としても捉えることができる。「ＡはＢから米ドルを１億円分購入する」や「ＡはＢから特定株を５００株分、１株１０００円で購入する」といったことは、資産の移転（フロー）が２つ同時に起こる２方向の取引として捉えることができる。
【００２３】
図２は、ネットワーク１間における資産移動の説明図である。この資産移動は、階層構造において上下に接続されたネットワーク１間で行われる。ただし、資産を物理的に移動するわけではなく、移動元のネットワークＡ（またはＢ）における資産の「消滅」、および、移動先のネットワークＢ（またはＡ）における等価な資産の「発生」といった一対の処理によって、資産移動が実現される。例えば、上位ネットワークＡから下位ネットワークＢに１００円を移動する場合（以下、「下り資産移動」という）、上位ネットワークＡにおいて１００円を「消滅」させ、下位ネットワークＢにおいて１００円を「発生」させる。また、下位ネットワークＢから上位ネットワークＡに５０円を移動する場合（以下、「上り資産移動」という）、下位ネットワークＢにおいて５０円を「消滅」させ、上位ネットワークＡにおいて５０円を「発生」させる。
【００２４】
ネットワークＡ，Ｂ間の資産移動は、ネットワークＡ，Ｂのそれぞれが備えるデータベース４において取引履歴として記録・管理される。上位ネットワークＡのデータベース４は、自己のネットワークＡ内の取引を管理すると共に、自己のネットワークＡが移動元／移動先となる資産移動についても管理する。同様に、下位ネットワークＢのデータベース４は、自己のネットワークＢ内の取引を管理すると共に、自己のネットワークＢが移動元／移動先となる資産移動についても管理する。
【００２５】
また、ネットワークＡ，Ｂ間の資産移動については、下位側よりも上位側の方を信頼するものとする。したがって、最上位のネットワーク１が最も信頼性が高く、以下、第２階層、第３階層の順に信頼性が低下していく。そして、信頼性の高い上位ネットワークＡを移動元とする下り資産移動については、原則として、移動する資産の総量を制限することなく、無制限に許容される。これに対して、信頼性が低い下位ネットワークＢを移動元とする上り資産移動については、上位ネットワークＡに引き渡す資産の総量Σbaが、上位ネットワークＡより受け取った資産の総量Σabを超えない範囲で、条件付きで許容される。図２の例では、上位ネットワークＡから下位ネットワークＢへの１００円の移動は、無制限に許容されるが、下位ネットワークＢから上位ネットワークＡへの５０円の移動は、Σab−Σba≧５０を満たすことが条件となる。以上のことから、資産移動の制限を一切受けないのは、最上位のネットワーク１だけであり、それ以外のネットワーク１については、資産移動の制限を受けることになる。
【００２６】
このように、信頼性の低い下位ネットワークＢを移動元とした上り資産移動の総量を規制することで、上位ネットワークＡからみた場合、下位ネットワークＢに渡した資産の総量Σabの範囲内でしか資産が戻り得ないことが、システム上保証される。これにより、ネットワークシステム１００の一部において、不正な資産移動が生じたとしても、その悪影響を最低限に抑えることができ、ネットワークシステム１００の安全性の向上に寄与する。
【００２７】
なお、資産移動の総量は、データベース４に記録された取引履歴のうち、ネットワーク間の資産移動に関するものを検索し、それぞれの量を加算することによって求めることができる。ただし、資産移動が生じる度に、このような検索・加算を実行することは処理速度の低下を招くので、資産移動の総量については、取引履歴の一部として、インデックスにて管理しておくことが好ましい。
【００２８】
図３は、階層構造におけるネットワークを跨いだ資産移動の説明図である。ネットワークＤからネットワークＢに資産（例えば１００円）を移動する場合、その移動経路上にはネットワークＣ，Ａが介在する。このような移動形態では、階層構造において上下に接続されたネットワーク間（Ｄ→Ｃ，Ｃ→Ａ，Ａ→Ｂ）での資産の移動が繰り返される。その際、上り資産移動（Ｄ→Ｃ）では条件（Σcd−Σdc≧１００）、上り資産移動（Ｃ→Ａ）では条件（Σac−Σca≧１００）をそれぞれ満たす必要がある。このように、資産の移動元と移動先とが離れていても、上下に接続されたネットワーク間での資産移動を繰り返すことによって、資産を移動することができる。
【００２９】
図４は、階層型ネットワークシステム１００を構成するネットワーク１の物理的な構成図である。それぞれのネットワーク１は、Ｐ２Ｐ（Peer to Peer）型のネットワークであり、純粋なＰ２Ｐのみならず、いわゆるハイブリッド型（一部にクライアントサーバ型の構成を含むもの）も含まれる。ネットワーク１に参加（接続）するノード２は、１対１の対等の関係で通信（Ｐ２Ｐ通信）を行う。それぞれのノード２は、ノード装置として、コンピュータ３と、データベース４ａとを有している。同一ネットワーク内の取引および上下に接続されたネットワーク間の資産移動に関する情報は、ネットワーク１上の分散データベース４、すなわち、ノード２毎に設けられたデータベース４ａの集合体によって管理される。ネットワーク１上に存在するすべてのデータベース４ａは、ブロックチェーン技術によって同期しており、基本的に、同一の記録内容を保持している。権限を有するノード２が分散データベース４を更新する場合、自ノード２に接続されている他ノード２にその旨が通知され、以後、ノード間のＰ２Ｐ通信が繰り返されることによって、最終的に、ネットワーク１の全体に通知が行き渡る。これにより、すべてのノード２のデータベース４ａが更新され、同一の記録内容として共有されることになる。
【００３０】
ネットワーク１におけるＰ２Ｐ通信は、セキュリティを確保すべく、ＳＳＬ通信にて行われる。また、ノード２間で受け渡しされるトランザクションの正当性については、公開鍵暗号を用いた電子署名によって検証される。その前提として、それぞれのノード２は、自己が管理するアドレスの秘密鍵（暗証番号）を保持している（ネットワークアドレスの所有者＝秘密鍵の保有者）。公開鍵は、秘密鍵より一義的に特定される。ネットワークアドレスは、公開鍵そのものを用いてもよいし、ビットコイン等と同様、公開鍵をハッシュしてチェックサムを加えたものを用いてもよい。トランザクションの送り手（資産の移動元）は、送ろうとするトランザクションに自己が管理するアドレスの秘密鍵による署名を付した上で送信する。トランザクションの受け手は、受け取ったトランザクションに付された署名の正当性を、この秘密鍵に対応する公開鍵にて検証する。なお、ここで用いられる公開鍵暗号は、後述するブロックの承認に関する多重署名（マルチシグ）の公開鍵暗号とは別個のものである。マルチシグの秘密鍵は、上記のネットワークアドレスとは関係なく、プライベートノード２ｂのみが保有する。
【００３１】
なお、図４は、個々のノード２が他の全ノード２に接続されたフルコネクト型を示しているが、これは一例であって、どのようなトポロジーを採用してもよい。また、特定のノード２に情報を送信する場合、Ｐ２Ｐ通信による間接的な送信ではなく、アドレスを指定して送信先に直接送信できるようなプロトコルを導入してもよい。また、ネットワーク１間で資産移動を行う場合、すべてのノード２が他のネットワーク１にアクセスできるようにしてもよいが、安全性の確保の観点でいえば、アクセス可能なノード２を制限することが好ましい。
【００３２】
図５は、ネットワーク１の論理的な構成図である。本実施形態において、ネットワーク１を構成するノード２には、パブリックノード２ａと、プライベートノード２ｂとが存在する。パブリックノード２ａは、取引の主体となるアプリケーションノードである（信頼できないノードを含み得る）。パブリックノード２ａは、取引に関する情報を記したトランザクションを生成し、これに署名した上で、プライベートノード２ｂ群に直接的または間接的に送信する。パブリックノード２ａは、プライベートノード２ｂ群へのトランザクションの記録依頼のみ行い、自身では、分散データベース４への記録処理は行わない。パブリックノード２ａにとって重要なことは、（最新でなくてもいいので）クエリーができること、新規に作成したトランザクションに署名すること、および、トランザクションの承認をプライベートノード２ｂ群に依頼することである。
【００３３】
なお、例えば、あるアドレスの残高を算出するといった検索時に、処理の高速化を図るべく、複数のパブリックノード２ａの一部において、データベース４ａの記録内容をインデックス付きで管理してもよい。分散データベース４のデータは基本的にKey-Value型なので、条件付の照会に非常に時間がかかるという欠点がある。その解決のために検索用の独自のインデックス（上述した資産移動の総量を含む。）を持ったノードを設けることで、応用範囲を拡張できる。
【００３４】
プライベートノード２ｂは、ノード数が制限された信頼できるノードであって、パブリックノード２ａより依頼されたトランザクションについて、分散データベース４への記録処理を行う。この記録処理は、後述するように、プライベートノード２ｂ群が協働することによって行われる。記録処理が完了した場合、処理結果が依頼元のパブリックノード２ａに通知される。プライベートノード２ｂにとって重要なことは、トランザクションを承認してブロック化した上で、分散データベース４に追加することであって、ビットコインなどの仮想通貨で採用されているマイニングや手数料といった報酬（インセンティブ）は、必ずしも必要ではない。
【００３５】
複数のプライベートノード２ｂは、公開鍵暗号を用いて、ブロックの承認に関する多重署名（マルチシグ）によるブロックの承認を行う。そのため、図６に示すように、それぞれのプライベートノード２ｂは、自ノードの秘密鍵を有している。それとともに、公開鍵が記述されたコンフィグファイルをシステムの起動時に読み込むことによって、プライベートノード２ｂの間で公開鍵が共有されている。また、プライベートノード２ｂの公開鍵を追加または失効させるプロトコルが用意されており、このプロトコルを実行することで、コンフィグファイルを書き換えなくても、公開鍵を追加または失効させることができる。この公開鍵に関する情報は、厳密な管理が要求されるので、安全性を確保すべく、ＳＳＬ等によってやり取りされる。
【００３６】
図７は、通常トランザクションおよび引渡トランザクションの説明図である。それぞれのネットワーク１が取り扱うトランザクションには、通常トランザクションと、引渡トランザクション（および受取トランザクション）とが存在する。２つのタイプのトランザクションは、どちらもシステム処理上は同じ一つのトランザクションとして取り扱われるが、そこに記される資産の移動先又は移動元が相違する。
【００３７】
同図（ａ）に示すように、通常トランザクションは、「移転元ａ１から移転先ａ２へ１００円を移動する」といった如く、同一のネットワークＡにおけるアドレスａ１，ａ２間の取引内容が、移動元ａ１の秘密鍵による署名付で記されている。このトランザクションに係る資産は、後述するブロックの確定をもって、引き続きネットワークＡ内で使用可能である。すなわち、通常トランザクションにおける資産の移動先（TxOut）に該当するアドレスａ２は、このトランザクションの確定をもって、自己を移動元（TxIn）とした新たなトランザクションの作成、換言すれば、新たな資産の移動を行うことができる。
【００３８】
一方、同図（ｂ）に示すように、引渡トランザクションは、「（ネットワークＡの）アドレスａ１から（ネットワークＢの）アドレスｂ２へ１００円を移動する」といった如く、異なるネットワークＡ，Ｂ間の資産移動の内容が、移動元ａ１の秘密鍵による署名付で記されている。引渡トランザクションについては、ビットコイン等で用いられているプルーフ・オブ・バーン（Proof of Burn）と同様、その秘密鍵を誰も知らないアドレスに送ることによって、以後、ネットワークＡ内で使用不可なもの（資産の消滅）として取り扱われる。その秘密鍵を誰も知らないアドレスは、たとえば、ネットワークBのアドレスｂ２の場合、ネットワークBのチェーン識別子とアドレスｂ２とのビット列の加算、結合等の演算によって定めることができるが、後述するように、簡便には、Pegフラグの存在によって秘密鍵を誰も知らないアドレスとして扱うことができる。その代わりに、ネットワークＢ内において、同等の価値を有する受取トランザクションを生成する。受取トランザクションは、引渡トランザクションと一対一に一意に生成されることが望ましい。これにより、資産の移動先（TxOut）に該当する受取トランザクションのアドレスｂ２は、このトランザクションの確定をもって、自己を移動元（TxIn）とした新たなトランザクションの作成、換言すれば、新たな資産の移動を行うことができる。
【００３９】
それぞれのネットワーク１が有するブロックチェーン同士を繋ぐ具体的な仕組みとしては、例えば、双方向連動(two-ways peg)を用いることができる。下り資産移動の場合（下位チェーンへのPeg）、引渡トランザクションの移動先（TxOut）にＰｅｇフラグを付け、移動先のチェーンを指定するチェーン識別子を設定する。このチェーン識別子は、例えば、そのチェーンのジェネシスブロック（先頭ブロック）に書き込まれ、後から変更することはできない。Ｐｅｇフラグが付いた引渡トランザクションは、そのチェーン内ではプルーフ・オブ・バーン（Proof of Burn）と同様の効果があり、二度と使用することはできない。移動先のチェーンで、受け取った資産を使用する場合、移動元のチェーン識別子を指定する。
【００４０】
また、上り資産移動の場合（下位チェーンからのPegBack）、下り資産と全く同様の手法を採用すると、上位チェーンにとって無価値な資産が戻されてしまうおそれがある（下位チェーンは上位チェーンよりも権威または信頼性が低いとみなしているため）。そこで、PegBackの際は、上述したように、上位チェーンから下位チェーンへのPegによって引き渡した総額分の範囲でのみ資産の戻りを可能としている。
【００４１】
資産の移動先における受取トランザクションの生成条件としては、第１に、引渡トランザクション係るブロックについて、移動元のネットワーク内において、所定の承認プロトコルにしたがい承認が得られたこと、換言すれば、このブロックが確定したことである。第２に、上り資産移動に関する引渡トランザクションの場合、上位ネットワークに引き渡す資産の総量が上位ネットワークより受け取った資産の総量を超えないことである。
【００４２】
図８は、パブリックノード２ａ用のノード装置（以下、「パブリックノード装置２０」という。）の機能的なブロック図である。このパブリックノード装置２０は、トランザクション生成部２０ａと、記録依頼部２０ｂと、結果受領部２０ｃとを有する。トランザクション生成部２０ａは、所定のフォーマットにしたがい、取引に関する情報が記されたトランザクション（通常トランザクション／引渡トランザクション）を生成する。取引に関する情報は、例えば、表示画面の指示にしたがいユーザが入力した入力情報より、あるいは、別のネットワークを通じて受信した受信情報より取得される。記録依頼部２０ｂは、トランザクション生成部２０ａによって生成されたトランザクションに、自己が管理するアドレスの秘密鍵による署名を付した上で、ノード２間のＰ２Ｐ通信を介してプライベートノード２ｂ群に送信し、トランザクションを記録すべき旨をプライベートノード２ｂ群に依頼する。結果受領部２０ｃは、いずれかのプライベートノード２ｂより送信されたトランザクションの処理結果を受領し、これをユーザに提示する。
【００４３】
図９は、プライベートノード２ｂ用のノード装置（以下、「プライベートノード装置２１」という。）の機能的なブロック図である。このプライベートノード装置２１は、署名検証部２２と、トランザクション処理部２３とを有する。署名検証部２２は、パブリックノード２ａより記録依頼として受け付けたトランザクションに付された署名の正当性を、秘密鍵に対応する公開鍵を用いて検証する。なお、署名の他に、その資産が二重使用されていないことなども併せて検証される。
【００４４】
トランザクション処理部２３は、署名が正当であると検証できたことを前提として、所定の条件を満たす場合に、トランザクションを分散データベース４に記録する。このトランザクション処理部２３は、ブロック生成部２３ａと、承認依頼部２３ｂと、ブロック確定部２３ｃと、承認応答部２３ｄとを有する。
【００４５】
ここで、プライベートノード装置２１は、２つの役割を担っている。一つは、自ノード２ｂがブロックを生成し、他ノード２ｂにブロックの承認を依頼する役割であり、そのための構成として、ブロック生成部２３ａと、承認依頼部２３ｂと、ブロック確定部２３ｃとが存在する。そして、もう一つは、他ノード２ｂが生成したブロックを承認する役割であり、そのための構成として、承認応答部２３ｄが存在する。このように、プライベートノード２ｂは、自ノード２ｂが生成したブロックの承認を他ノード２ｂに依頼する依頼方、および、他ノード２ｂによって生成されたブロックの承認を自ノード２ｂが行う承認方のどちらにもなり得る。
【００４６】
ブロック生成部２３ａは、トランザクションの記録の依頼元となるパブリックノード２ａより記録処理の依頼を受けたトランザクションを複数まとめることによって、ブロックを生成する。その際、上り資産移動に係る引渡トランザクションについては、上位ネットワーク１に引き渡す資産の総量が上位ネットワーク１より受け取った資産の総量を超えないか否かが判定され、超える場合には、不適切なトランザクションとしてブロック化は行われない（処理結果＝ＮＧ）。承認依頼部２３ｂは、ブロック生成部２３ａによって生成されたブロックに自ノード２ｂの秘密鍵による署名を付した上で、システムのコンフィグとして予め設定されたｍ（ｍ≧２）個の他のプライベートノード２ｂに対して、ブロックの承認依頼を送信する。承認の依頼先のノードには、自ノードを含めてもよい。ブロック確定部２３ｃは、承認の依頼先となるプライベートノード２ｂよりブロックの承認結果を受信した場合、この承認結果に付された署名の正当性を、承認の依頼先の秘密鍵に対応する公開鍵を用いて検証した上で、以下のブロック確定条件を満たすか否かを判定する。
【００４７】
［ブロック確定条件］
承認を依頼したｍ（ｍ≧２）個のプライベートノード２ｂのうち、
ｎ（ｍ≧ｎ≧１）個以上の承認が得られたこと
【００４８】
このブロック確定条件において、ｎはｍの過半数であることが好ましい。これにより、合理的かつ現実的な範囲で承認の信頼性を確保することができる。例えば、図５に示した４つのプライベートノード２ｂが存在するケースでは、３個（ｍ＝３）のプライベートノード２ｂに承認を依頼し、そのうちの２個（ｎ＝２）以上の承認が得られたことをもって、ブロック確定条件が満たされることになる。
【００４９】
ｍは、一桁、二桁等の限られた数以下であることが好ましく、ブロック確定条件に応じて、５個、９個等の奇数個であることが好ましいことがある。ｎは、ｍの過半数であることに加えて、過半数以上の指定された所定の数であることが好ましいことがある。
【００５０】
ブロック確定条件としては、上述の説明では一ノード一票の承認が可能とされているところ、各ノードに任意の正の実数の票を与え、その過半数によって承認が得られたことと判定することもできる。この場合、「過半数」とは、総票数に対する半数を超える数であることを付言する。
【００５１】
承認依頼に係るブロックがブロック確定条件を満たす場合には、このブロックを分散データベース４に追加することが確定し、これを満たさない場合には、分散データベース４へのブロックの追加は行われない。ブロック確定部２３ｃは、トランザクションの記録の依頼元となるパブリックノード２ａに対して、トランザクションの処理結果（ＯＫ／ＮＧ）を通知する。分散データベース４へのブロックの追加が確定した場合、自ノード２ｂのデータベース４ａにブロックが追加されると共に、ブロックの確定に伴い新たなブロックを追加する旨が、トランザクション処理ネットワーク１の全ノード２に通知される。この通知によって、すべてのノード２のデータベース４ａ、すなわち、分散データベース４が更新される。
【００５２】
全ノード２に直接的又は間接的に通知されることが求められるが、ブロックの確定に伴い新たなブロックを追加する旨が全ノード２に直接的に通知される場合のほか、プライベートノード２ｂの全て及びパブリックノード２ａの一部、プライベートノード２ｂの全て、プライベートノード２ｂの一部及びパブリックノード２ａの一部、又はプライベートノード２ｂの一部に通知される場合も考えられる。
【００５３】
一方、承認応答部２３ｄは、承認の依頼元となるプライベートノード２ｂよりブロックの承認依頼を受信した場合、この承認依頼に付された署名の正当性を、公開鍵（承認の依頼元の秘密鍵に対応するもの）を用いて検証する。また、承認応答部２３ｄは、自ノード２ｂに記録されているトランザクションに関するデータを参照して、承認依頼に係るブロックの内容(ブロック中のトランザクションの整合性を含む。)を検証する。そして、内容が正当であるとの検証結果が得られた場合、承認応答部２３ｄは、自ノード２ｂの秘密鍵による署名を付した承認結果を承認の依頼元となるプライベートノード２ｂに送信する。
【００５４】
引渡トランザクションの処理の観点でいえば、承認依頼部２３ｂ、ブロック確定部２３ｃおよび承認応答部２３ｄは、資産の移動先となる上位／下位ネットワーク１に対して、引渡トランザクションに係る資産の発生を許可するトランザクション処理部として機能する。具体的には、下り資産移動の場合には、ブロックの承認が得られたこと（すなわち、ブロックの確定）を条件として、下位ネットワーク１に対して、引渡トランザクションに係る資産の発生が許可される。また、上り資産移動の場合には、ブロックの承認が得られたこと、および、上位ネットワーク１に引き渡す資産の総量が上位ネットワーク１より受け取った資産の総量を超えないことを条件として、上位ネットワーク１に対して、引渡トランザクションに係る資産の発生が許可される。この許可を受けた資産の移動先となる上位／下位のネットワーク１は、移動する資産相当の取引内容を記した受取トランザクションを生成し、これによって、移動元から移動先に資産が移動する。
【００５５】
なお、ブロック生成部２３ａは、プライベートノード２ｂのハッキング対策として、すなわち、プライベートノード２ｂがハッキングされたときのために、自ノード２ｂで一のブロックを生成した場合、少なくとも、他ノード２ｂによって生成された他のブロックを分散データベース４に追加することが確定するまで、新たなブロックの承認依頼を連続して送信することなく待機する。すなわち、同一のプライベートノード２ｂにおいて、ブロック確定の処理を連続して行うことは禁止されている。
【００５６】
つぎに、図１０を参照しながら、トランザクションの記録処理のフローについて説明する。まず、あるパブリックノード２ａにおいて、取引に関する情報が記されたトランザクションＴｒが生成され（ステップ１）、このトランザクションＴｒに自己が管理するアドレスの秘密鍵による署名を付した上で、プライベートノード２ｂ群にトランザクションＴｒの記録依頼が送信される（ステップ２）。例えば、図１１に示すように、資産の移動元ａに関するトランザクションＴｒ１については、移動元ａが管理するアドレスの秘密鍵による署名「ａ」が付され、トランザクションＴｒ２，Ｔｒ３についても同様に署名される。
【００５７】
トランザクションＴｒの記録依頼を受信したプライベートノード２ｂのそれぞれは、記録依頼に付された署名を、移動元の秘密鍵に対応する公開鍵を用いて検証する（ステップ３）。図１１に示したように、トランザクションＴｒ１に付された署名「ａ」については、移転元ａの公開鍵を用いて検証され、トランザクションＴｒ２，Ｔｒ３についても同様に検証される。なお、署名の他に、その資産が二重使用されていないことなども併せて検証されることは上述したとおりである。それぞれのプライベートノード２ｂにおいて、署名の正当性などが確認できた場合、トランザクションＴｒ１〜Ｔｒ３は、自ノード２ｂの記憶装置における所定の記憶領域（処理待ち領域）に一時的に格納される（ステップ４）。また、このステップ４において、資産の移動元が正当でないとされた場合、依頼元となるパブリックノード２ａに対して、その旨が通知される。
【００５８】
ステップ５では、いずれかのプライベートノード２ｂにおいて、ブロックが生成される。このブロックは、自ノード２ｂの処理待ち領域に格納されている複数のトランザクションＴｒをまとめたものである。そして、ステップ６において、図１２（ａ）に示すようなデータ構造を有する署名付の承認依頼が生成される。このデータ構造は、ブロックの承認を依頼する依頼元の署名欄と、複数のトランザクションＴｒをまとめたブロック本体と、ブロックの承認先の署名欄とを有する。ただし、同図の構成は、説明の便宜上のものであって、実際には、依頼元／承認先の署名欄を別ける必要はない。図５に示した４つのプライベートノード２ｂ群（ノード名をＡ〜Ｄとする。）のうち、ノードＡがブロックを生成した場合、図１２（ａ）の依頼元署名欄には、ノードＡの秘密鍵による署名「Ａ」が記入され、承認先署名欄（ノードＢ〜Ｄの署名が記入される欄）はブランクとされる。ノードＡにて生成された承認依頼は、他のプライベートノード２ｂ、すなわち、３つのノードＢ〜Ｄに送信される。
【００５９】
ステップ７〜９は、ブロックの承認依頼を受信したプライベートノード２ｂ、すなわち、承認の依頼先Ｂ〜Ｄの処理である。まず、ステップ７において、承認依頼に付された署名「Ａ」等の正当性が、承認の依頼元であるノードＡ等の公開鍵を用いて検証される（ステップ７）。このステップ７では、ノードＡだけでなく、その検証時点で付されている他の署名も一緒に検証される。基本的に、ノードＡ→Ｂ→Ｃ→Ｄのように順番に署名していき、過半数（ｎ）の署名が得られた時点で確定する。どのようにして順番を保つかについては、様々な実装方法が考えられる。なお、ブロックの署名の検証自体は、ハッキングされたブロックを信用することがないように、プライベートノード２ｂのみならず、すべてのパブリックノード２ａでも行われる。承認の依頼元が正当であるとされた場合には、ステップ８に進み、正当でないとされた場合には、ステップ８以降の処理は行われない。
【００６０】
ステップ８において、承認依頼に係るブロックの内容が検証される。具体的には、自ノード２ｂの処理待ち領域に格納されたトランザクションを参照して、ブロックの内容が少なくとも以下の承認条件を満たす場合に、ブロックを承認する。ブロックの内容が正当であるとされた場合には、ステップ９に進み、正当でないとされた場合には、ステップ９の処理は行われない（処理結果＝ＮＧ）。
【００６１】
［ブロックの承認条件］
（１）ブロック中のすべてのトランザクションＴｒが自ノード２ｂにおいて未処理であること（重複記録の防止）
（２）ブロック中のすべてのトランザクションＴｒの内容が、自ノード２ｂの処理待ち領域に格納されたトランザクションＴｒの内容と一致すること（データの改ざん防止）
（３）個々のトランザクションＴｒの資産が未使用であること（資産の二重使用の禁止）
【００６２】
ステップ９において、署名付の承認結果が生成される。承認可の場合には、図１２（ｂ）に示すように、承認先署名欄のうちの自ノード２ｂに割り当てられた欄に自己の秘密鍵による署名が記入される。署名が付された承認結果は、承認の依頼元Ａに送信される。
【００６３】
ステップ１０〜１２は、ブロックの承認結果を受信したプライベートノード２ｂ、すなわち、承認の依頼元Ａの処理である。まず、ステップ１０において、承認結果に付された署名の正当性が、承認の依頼元Ｂ〜Ｄの公開鍵を用いて検証される（ステップ１０）。承認の依頼先が正当であるとされた場合には、ステップ１１に進み、正当でないとされた場合には、ステップ１２以降の処理は行われない。
【００６４】
ステップ１１において、ｍ個のプライベートノードのうちのｎ（ｍ≧ｎ≧１）個以上の承認が得られた場合、ブロック確定条件が満たされて、分散データベース４にブロックを追加することが確定する。図１２（ｂ）の例では、承認を依頼した３つのノードＢ〜Ｄのうち、２つのノードＢ，Ｃの承認は得られたが、ノードＤの承認は得られなかったことを意味している。この場合、ブロック確定条件が過半数以上の承認であるならば、ｎ／ｍ＝２／３となって条件を満たすことになる。逆に、ｎ＝０，１の場合には、ブロック確定条件は満たされない。
【００６５】
ブロック確定条件が満たされた場合、承認の依頼元Ａによって、確定したブロックを分散データベース４に記録する処理が行われる。具体的には、まず、自ノードＡにおいて、処理待ち領域から確定ブロックに含まれるトランザクションＴｒが削除され、自己のデータベース４に確定したブロックが追加される。また、自ノードＡに接続されている他ノードＢ〜Ｄを含めて、ネットワーク１の全体に、確定したブロックを新規に追加する旨の通知が送信される。ネットワーク１内のすべてのノード２は、この確定ブロックの通知を受けた時点で、通知元の署名の検証を行った上で、自己のデータベース４ａに確定ブロックを追加する。また、処理待ち領域に未処理トランザクションＴｒを保持しているすべてのノード２（ノードＢ〜Ｄを含む。）は、この通知をもって、確定ブロックに含まれるトランザクションＴｒを処理待ち領域から削除する（ステップ１３）。これに対して、ブロック確定条件が満たされない場合、今回生成したブロックはキャンセルされる。これによって、処理待ち領域の未処理トランザクションＴｒは引き続き保持され、次回以降のブロックの生成機会を待つことになる。
【００６６】
図１３は、データベース４ａの構造の説明図である。この構造において、記録単位となるブロックは記録順序にしたがいチェーン状に繋がっている。それぞれのブロック（確定ブロック）は、複数のトランザクションと、直前のブロックのハッシュとを有している。具体的には、あるブロック２には、その前のブロック１から引き継いだ前ブロック１のハッシュＨ１が含まれている。そして、ブロック２のハッシュＨ２は、自ブロック２のトランザクション群と、前ブロック１から引き継がれたハッシュＨ１とを含めた形で算出され、このハッシュＨ２は、その次のブロックに引き継がれる。このように、直前のブロックの内容をハッシュとして引き継ぎながら（Ｈ０，Ｈ１，・・・）、記録順序にしたがい個々のブロックをチェーン状に繋げ、記録内容に一貫した連続性を持たせることで、記録内容の改ざんを有効に防止する。過去の記録内容が変更された場合、ブロックのハッシュが変更前と異なる値になり、改ざんしたブロックを正しいものとみせかけるには、それ以降のブロックすべてを作り直さなければならず、この作業は現実的には非常に困難である。
【００６７】
そして、ステップ１２において、いずれかのプライベートノード２ｂ（承認の依頼元Ａ）から、トランザクションＴｒの記録の依頼元となるパブリックノード２ａに、記録依頼に係るトランザクションＴｒの処理結果（ＯＫ／ＮＧ）が通知される。このパブリックノード２ａは、処理結果を受領し、ユーザに対して処理結果を提示する（ステップ１４）。以上の一連のプロセスを経て、トランザクションの記録処理が完了する。
【００６８】
なお、以上のようなトランザクションの記録処理では、複数のプライベートノード２ｂが同一のトランザクションを含む別個のブロックを同時に生成してしまう可能性、すなわち、プライベートノード２ｂ同士の処理の競合が生じる可能性がある。かかる問題は、例えば、ラウンドロビン（round robin）のように、プライベートノード２ｂ間でブロック生成の順番を割り当てて排他制御を行うことで、解決することができる。また、プライベートノード２ｂ群に優先順位を割り当てて、上記競合が生じた場合には、優先順位の高いプライベートノード２ｂのみに、競合したトランザクションの再処理を認めてもよい。
【００６９】
このように、本実施形態によれば、ネットワークシステム１００の全体で単一のブロックチェーンを形成するのではなく、複数のネットワーク１に分割し、ネットワーク単位でブロックチェーンを形成する。これにより、それぞれのネットワーク１の各ノード２は、自己のネットワーク１におけるトランザクションのコピーのみを保持すればよく、それ以外のネットワーク１のそれを保持する必要はない。これにより、ネットワークシステム１００全体において、単位時間当たりに処理できるトランザクションの数が飛躍的に向上する。その結果、トランザクション処理のスケーラビリティを有効に確保でき、各ノードの処理能力やネットワーク帯域に関わらず、十分な処理速度を確保することが可能になる
【００７０】
また、本実施形態によれば、上位ネットワーク１から下位ネットワーク１への資産移動は制限なく許容する一方、下位ネットワーク１から上位ネットワーク１への資産移動は、上位ネットワーク１に引き渡す資産の総量が上位ネットワーク１より受け取った資産の総量を超えないことを条件として許容する。このように、階層構造において、下位ネットワーク１よりも上位ネットワーク１の方を信頼し、信頼性の低い下位ネットワーク１からの資産移動については総量を規制することで、ネットワーク１相互の高度な承認プロセスを経なくとも、ネットワーク１間における資産移動を安全に行うことができる。
【００７１】
また、本実施形態によれば、ネットワーク１を構成するノード２を、パブリックノード２ａと、プライベートノード２ｂとに区分している。パブリックノード２ａは、記録すべきトランザクションを生成する役割を担い、その後の分散データベース４への記録処理は、プライベートノード２ｂ群が協働することによって行われる。トランザクションの生成については、信頼できないノードを含み得るパブリックノード２ａとして広く認めつつ、分散データベース４への記録処理については信頼できるプライベートノード２ｂに限定する。このように、パブリックノード２ａの役割と、プライベートノード２ｂの役割とを別けることで、パブリックノード方式の利点である応用分野の拡張性と、プライベートノード方式の利点である記録の信頼性との両立を図ることができる。
【００７２】
さらに、本実施形態によれば、信頼できるプライベートノード２ｂ相互の認証手法として、ＰＯＷやＰＯＳといった高コストで遅いコンセンサスアルゴリズムではなく、公開鍵暗号を用いた多重署名（マルチシグ）という比較的簡素なコンセンサスアルゴリズムを用いている。これにより、記録の信頼性を損なうことなく、大量のトランザクションを高速かつ確実に処理することが可能になる。
【００７３】
なお、本発明は、上述したパブリックノード装置２０またはプライベートノード装置２１を実現するコンピュータプログラムとしても捉えることができる。
【符号の説明】
【００７４】
１  ネットワーク
２  ノード
２ａ  パブリックノード
２ｂ  プライベートノード
３  コンピュータ
４ａ  データベース
４  データベース（分散データベース）
２０  パブリックノード装置
２０ａ  トランザクション生成部
２０ｂ  記録依頼部
２０ｃ  結果受領部
２１  プライベートノード装置
２２  署名検証部
２３  トランザクション処理部
２３ａ  ブロック生成部
２３ｂ  承認依頼部
２３ｃ  ブロック確定部
２３ｄ  承認応答部
１００  階層型ネットワークシステム
【図１】
2017170997.tif 000003
【図２】
2017170997.tif 000004
【図３】
2017170997.tif 000005
【図４】
2017170997.tif 000006
【図５】
2017170997.tif 000007
【図６】
2017170997.tif 000008
【図７】
2017170997.tif 000009
【図８】
2017170997.tif 000010
【図９】
2017170997.tif 000011
【図１０】
2017170997.tif 000012
【図１１】
2017170997.tif 000013
【図１２】
2017170997.tif 000014
【図１３】
2017170997.tif 000015
【図１４】
2017170997.tif 000016
【国際調査報告】
2017170997.tif 000017
2017170997.tif 000018