(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023014079
(43)【公開日】2023-01-26
(54)【発明の名称】情報処理装置及びプログラム
(51)【国際特許分類】
H04L 67/10 20220101AFI20230119BHJP
H04L 67/141 20220101ALI20230119BHJP
H04L 9/32 20060101ALI20230119BHJP
【FI】
H04L67/10
H04L67/141
H04L9/32 200Z
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022174839
(22)【出願日】2022-10-31
(62)【分割の表示】P 2020179480の分割
【原出願日】2020-10-27
(31)【優先権主張番号】P 2019204717
(32)【優先日】2019-11-12
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】519173048
【氏名又は名称】株式会社アーリーワークス
(74)【代理人】
【識別番号】100207619
【弁理士】
【氏名又は名称】渡辺 知晴
(72)【発明者】
【氏名】山本 浩貴
(57)【要約】
【課題】高い処理能力およびスケーラビリティを有する分散情報処理システムを提供すること。
【解決手段】所定の規則に従って設定された役割に応じた階層型のノード構造の特徴と併せて、役割毎のノード間の接続を環状構造に設定することで、役割毎に環状構造のネットワークを自己相似的に構築する環状型構造により、ネットワーク内のノードの台数の多寡に関わらず、ネットワークの更新を柔軟とする。構築したネットワーク内では、承認の役割を担うノードは承認作業を同時並列的に実行することができ、承認の役割を担うノードの台数に応じた、情報処理におけるスケーラビリティを確保する。また、前記ネットワークにおいて、ノード間における情報の伝達を効率化し、参照する承認済みトランザクションを高速に同期し、承認作業を高速化することができ、さらには、ネットワーク全体で送受信されるトランザクションの送受信回数、およびトラフィックを低減する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
n(nは1以上の任意の整数値)台の他情報処理装置により構成されるネットワークの管理に用いられる情報処理装置であって、
前記n台の他情報処理装置の夫々に対して役割を設定する役割設定手段と、
設定された前記役割に基づいて、前記n台の他情報処理装置の夫々の接続先を決定する接続先決定手段と、
を備え、
前記役割設定手段は、前記n台の他情報処理装置の夫々に対して、
前記所定の単位情報の承認に関する役割を少なくとも含む第1の役割と、
当該所定の単位情報の生成に関する役割を少なくとも含む第2の役割と、
前記第1の役割が割り当てられた前記他情報処理装置と前記第2の役割が割り当てられた前記他情報処理装置との間でやり取りする役割を含む第3の役割と、
のうち少なくとも1つを設定する、
を備える情報処理装置。
【請求項2】
前記第1の役割における承認を行う他の情報処理装置の選択および順序は、当該他の情報処理装置毎に付与された時間情報に基づいて決定する、
請求項1に記載の情報処理装置。
【請求項3】
前記ネットワークを構成する前記n台の他情報処理装置の夫々を、前記役割設定手段により設定された前記役割に応じた階層構造を決定する階層構造決定手段をさらに備え、
前記接続先決定手段は、前記階層構造決定手段により決定された前記階層構造を含み、前記接続先を決定する
請求項1又は2に記載の情報処理装置。
【請求項4】
前記接続先決定手段は、前記n台の情報処理装置の夫々を環状型に配置して、前記接続先を決定する、
請求項1乃至3のうちいずれか1項に記載の情報処理装置。
【請求項5】
前記役割設定手段は、前記n台の他情報処理装置の夫々に対して、前記時間情報の配信にかかる第4の役割を、さらに設定する、
請求項1乃至4のうちいずれか1項に記載の情報処理装置。
【請求項6】
n(nは1以上の任意の整数値)台の他情報処理装置により構成されるネットワークの管理に用いられる情報処理装置にかかる情報処理方法であって、
前記n台の他情報処理装置の夫々に対して役割を設定する役割設定ステップと、
設定された前記役割に基づいて、前記n台の他情報処理装置の夫々の接続先を決定する接続先決定ステップと、
を含み、
前記役割設定ステップは、前記n台の他情報処理装置の夫々に対して、
前記所定の単位情報の承認に関する役割を少なくとも含む第1の役割と、
当該所定の単位情報の生成に関する役割を少なくとも含む第2の役割と、
前記第1の役割が割り当てられた前記他情報処理装置と前記第2の役割が割り当てられた前記他情報処理装置との間でやり取りする役割を含む第3の役割と、
のうち少なくとも1つを設定する、
情報処理方法。
【請求項7】
n(nは1以上の任意の整数値)台の他情報処理装置により構成されるネットワークの管理に用いられる情報処理装置により実行されるプログラムであって、
前記n台の他情報処理装置の夫々に対して役割を設定する役割設定ステップと、
設定された前記役割に基づいて、前記n台の他情報処理装置の夫々の接続先を決定する接続先決定ステップと、
を含み、
前記役割設定ステップは、前記n台の他情報処理装置の夫々に対して、
前記所定の単位情報の承認に関する役割を少なくとも含む第1の役割と、
当該所定の単位情報の生成に関する役割を少なくとも含む第2の役割と、
前記第1の役割が割り当てられた前記他情報処理装置と前記第2の役割が割り当てられた前記他情報処理装置との間でやり取りする役割を含む第3の役割と、
のうち少なくとも1つを設定する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【0002】
近年、分散型台帳技術をはじめとする分散情報システムが、暗号通貨や各種情報の記録、資産の流通等において利用され始めている。
ここで、分散型台帳技術とは、電子署名とハッシュポインタを使用し改ざん検出が容易なデータ構造を持ち、且つ、当該データをネットワーク上に分散する多数のノードに保持させることで、高可用性及びデータ同一性等を実現する技術である。
そして、参加者が保有する記録を電子的に管理する帳簿を分散型台帳と呼ぶ。
このような分散情報システムの一例として、例えば、暗号通貨送金システムのような分散情報システム(非特許文献1を参照)が提案されている。非特許文献1には、分散型台帳技術によって金融機関などの中央管理機関を介することなく、P2Pネットワーク上で、二重支払の危険性を排除し、安全に個人間での通貨の送金を実行する技術が提案されている。
また、データの信憑性を担保するために分散情報システムを用いており、例えば、権利の変動などのデータを管理するための技術が提案されている(特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【非特許文献1】Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system, 2008.
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、一般的に分散型台帳技術等で行われるトランザクション(取引記録)の承認は、ネットワークの維持に参加する全ての参加者によって実施されるのではなく、ネットワークの維持に参加する参加者のうち、所定の条件を満たす参加者(以下、「承認者」と呼ぶ)のみが実行する。
しかしながら、上述の文献に記載された技術を含む従来技術では、承認者を選出する上で多くの時間や消費電力を必要とする、セキュリティ上のリスクが多く存在する等の問題があった。
【0006】
本発明は、このような状況に鑑みてなされたものであり、セキュリティに係る分散情報処理システムにおける処理時間を短縮し、かつ実行すべき処理の大幅な増加にも耐え得る技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明の一態様の情報処理装置は、
n(nは1以上の任意の整数値)台の他情報処理装置により構成されるネットワークの管理に用いられる情報処理装置であって、
前記n台の他情報処理装置の夫々に対して役割を設定する役割設定手段と、
設定された前記役割に基づいて、前記n台の他情報処理装置の夫々の接続先を決定する接続先決定手段と、
を備える。
【0008】
本発明の一態様の情報処理装置に対応するプログラムも、本発明の一態様の情報処理方法として提供される。
【発明の効果】
【0009】
本発明によれば、セキュリティに係る分散情報処理システムにおける処理時間を短縮し、かつ実行すべき処理の大幅な増加にも耐え得る技術を提供することができる。
【図面の簡単な説明】
【0010】
【
図1】本発明の一実施形態の情報処理装置を含むGLSシステムに係る階層型ネットワーク構造の概念を示す図である。
【
図2】GLSシステムにおけるSNの機能の一例を説明するための図である。
【
図3】GLSシステムにかかる環状型ネットワーク構造の一例を示す図である。
【
図4】GLSシステムにおけるトランザクションの生成から各種処理の終了までの一連の処理の流れの一例を示す図である。
【
図5】GLSシステムにおけるシグナルノードの機能の一例を説明するための図である。
【
図6】GLSシステムにおけるシグナルノードの機能の一例を説明するための図であり、
図5の例とは異なる例を示す図である。
【
図7】GLSシステムの構成の一例を示す図である。
【
図8】
図7のGLSシステムのうちRTNのハードウェア構成の一例を示すブロック図である。
【
図9】
図7のGLSシステムのうち、NN、SN、MNおよびRNの機能的構成の一例を示す機能ブロック図である。
【
図10】GLSシステムにおけるトランザクション処理の流れの一例を示すアローチャートである。
【
図11】GLSシステムにおけるノードのネットワークへの参加処理の流れの一例を示すアローチャートである。
【
図12】GLSシステムにコンシステントハッシング法を適用する方法の一例を説明する図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について、図面を用いて説明する。
【0012】
ここで、
図1の説明をするに先立ち、本発明の一実施形態に係る情報処理装置にかかる各種技術や用語などについて説明する。
【0013】
従来より、多くの分散型台帳に関するシステムにおいて利用されている技術の一つにブロックチェーンと呼ばれる技術が存在する。この技術は、新規の情報を新たに記録する場合に、データの単位を構成するブロックが直前のブロックと紐づけられたハッシュを引き継ぎながら、鎖(チェーン)のように連結し、各種情報を保管することができる。
具体的には、ブロックチェーンは、各ブロックがハッシュポインタを用いて一方向に連結している、各ブロックには電子署名が付与されている、トランザクションが多数含まれており、トランザクション同士もインデックスなどのポインタで連結されているなどの要素を含み得ることが知られている。
すなわち、ブロックチェーンとは、電子署名やハッシュポインタなどを利用し改ざん検出が容易なデータ構造を保持し、かつ当該データをネットワーク上に分散して保持させることで、データの高可用性および同一性などを実現する技術である。
ブロックチェーンは、通常、P2P(Peer to Peer)などの分散型のネットワークにより管理され、後続のすべてのブロックを変更しない限り遡及的に変更することができない。すなわち、ブロックチェーンとして記憶された情報の改ざんは、不可能ではないものの、現実的には極めて困難であると考えられている。このような理由から、ブロックチェーンは、ビットコインなどの仮想通貨を始め、様々な資産や取引の管理に利用されている。
しかしながら、従来の分散情報システムにおいて、トランザクションの承認者を選出する際の時間や消費電力、そしてセキュリティ上のリスクについて、問題点が指摘されていた。
また、ビットコイン等で採用されるプルーフオブワークという手法においては、承認者に関する情報を各サーバが送受信するための時間を要したり、いわゆる51%攻撃と呼ばれる確定したトランザクションが悪意の攻撃者により覆されるような、悪意を持った第三者により不正なトランザクションが承認されてしまうというセキュリティ上の危険性が指摘されていた。さらに、トランザクションの承認時にトランザクションの承認と同時に覆らない情報として確定した状態(以下、「ファイナリティ」とも呼ぶ)を付与できないという問題もあった。
さらに言えばこれらの分散型台帳に関するシステムにおいては、中央集権的にデータを一元管理する者が存在しない中で、多くの参加者がネットワークに接続したコンピュータを稼働させ、情報(例えば、ブロックチェーン)を共有し、多くの演算を行うことで各取引を承認し、情報の偽造等を防ぐ。そのため、結果的に膨大な演算が行われるため、消費される電力も膨大となるという問題も存在する。
【0014】
ここで、トランザクションとは、例えば、取引の内容や各種処理の結果などを記録した所定単位の情報に電子署名が付与されたデータである。電子署名とは、トランザクション作成者の秘密鍵によって、上述の情報の所定単位の情報を署名したデータと、秘密鍵と対となる公開鍵の情報が付与されたデータのことである。
すなわち、トランザクションとは、例えば、いつ、誰から、誰に、いくら、送金したなどの取引の内容や各種処理の結果に電子署名が付与された情報である。
また、トランザクションは、所定の規則に従って承認されることで、承認と同時、あるいは将来、そのトランザクションは改ざんの検出が容易な情報として確定する。
【0015】
つまり、分散型台帳に関するシステムにおけるネットワーク(以下、「分散型台帳ネットワーク」、または単に「ネットワーク」と呼ぶ)に参加する参加者(各ノード)が、分散型台帳ネットワークにより生成された各トランザクションを検証し、承認を行った後、複数のトランザクションを単体あるいはブロック単位等で連結することで「ブロックチェーン」を構成する。
なお、ノードとは、ネットワークを構成する情報処理装置の夫々である。
すなわち、ブロックチェーンを構成する承認済みのトランザクションは、トランザクションが格納されたブロックがハッシュ値などにより連結されることで、改ざんの検出が容易なものとなり、また、過去から現在に至るまでのトランザクションの履歴を追跡することができる。
【0016】
この点、本発明の一実施形態の情報処理装置を含む情報処理システム(以下、「GLSシステム」と呼ぶ)は、このような分散情報システムやブロックチェーンなどの各種技術を利用した、ネットワークを介した資産の管理等に利用される情報処理ステムである。
GLSシステムでは、後述する各種構造(例えば、階層型ネットワーク構造)を採用し、各階層に存在するノードの役割(例えば、トランザクションの承認等)が予め決定されている。そして、承認の実行対象であるトランザクションには、後述するシグナル(システム内時間を付与されたデータ)により、信頼できるシステム内時間を付与することができる。このような正確なシステム内時間を参照して承認が行われることで、GLSシステムは、承認するノードの優先順位などを容易に決定することができる。なお、システム内時間とは、GLSシステムにおいて、各ノードが参照する時間情報である。
以上をまとめると、GLSシステムは、各種構造(例えば、階層型ネットワーク構造)に沿って、承認に関する各種役割を設定する。そして、GLSシステムは、夫々に設定された役割に対して、正確に付与されたシステム内時間を利用することで、序列や順番を一意に確定する。これにより、GLSシステムでは、トランザクションの承認処理において、夫々のノードに対して序列や順番などを含めた明確な役割を与え、従前の分散型台帳に関するシステムで問題となっている二重承認などのリスクを大幅に低減することができる。
【0017】
ここで、本実施形態におけるトランザクションの承認は、各ノード(特に後述するRN)による整合性の検証の結果に基づいて実行される。この整合性の検証とは、具体的に例えば、以下のような観点で行うことができる。
(1)電子署名の作成者がトランザクションの作成者と一致すること。すなわち、トランザクションに付与されている電子署名が作成者によるものであり、かつ不正ではないこと。
(2)トランザクションデータの改ざんが行われていないこと(電子署名による確認)。
(3)対象のトランザクションが、検証するノードにおいて未処理であること。
(4)トランザクションに含まれる資産(データ)が未使用であり、正しく保有されていること。
(5)トランザクションの内容が不正ではないこと。例えば、金融資産の送金の場合保有する資産以上の金額が送金されていないこと。
すなわち、GLSシステムでは、各ノード(特に後述するRN)がトランザクションに対して、上記のような観点における整合性の検証を行うことで、トランザクションの承認を実現する。
【0018】
続いて、GLSシステムの目的について、さらに詳細に説明する。
まず、分散型台帳ネットワークにおけるトランザクションの生成には、所定の条件が設けられることがある。
例えば、プルーフオブワークにおいて、参加者は分散型台帳ネットワークに参加するサーバによる演算処理競争を行い、定められた条件を満たす解データ(以下、「ナンス」と呼ぶ)を探す。そして、条件を満たすナンスを探索できた参加者のみが、見つけたナンスをもとに承認済みのトランザクションを生成し、他の参加者にそれを送信するとともに、自身の分散型台帳に承認済みのトランザクションを記録する。さらに、承認済みのトランザクションを受け取った参加者の夫々が承認済みのトランザクションに格納されているトランザクションの検証や生成条件の検証等を行うことで、不正がないことを確認して、自身が持つ分散型台帳に記録することになる。
なお、トランザクションの偽造及び改ざんの防止を目的とする分散型台帳を用いた技術の一例としては、例えば、ビットコイン(例えば、非特許文献1を参照)やイーサリアムがある。これらの手法で利用されている各種技術(例えば、プルーフオブワーク)は本発明において、応用することもできる。
【0019】
これに対して、GLSシステムでは、「トランザクションの承認時間が一定時間必要であり、最終的な決済処理が遅いこと」、「ビジネスユースにおいて求められる1秒間当たりのトランザクション処理数(以下、「TPS(Transaction Per Second)」と呼ぶ)を実現できないこと」、「ネットワークの拡張に耐え得るスケーラビリティを欠くこと」等の課題に対して、その解決を実現することを目的の一つとしている。
【0020】
GLSシステムでは、「権力の非集中化」、「管理の中央集権化」、「追及された利便
性」という3つの観点でアプローチを行うことで、上述の中央集権による課題および分散による課題の双方の解決を目指すものである。以下、具体的に説明する。
権力の非集中化とは、情報が一極集中化することによって問題となった、中央管理者による悪意をもったデータの作成、或いは改ざんによるユーザの不利益を解消し、公平かつ安心なシステムを実現することを指す。
GLSシステムにおいては、ユーザが参加者として、全データの整合性を常に検証することによって、悪意を持ったデータの有無、或いは改ざんなどを常に監視することができる。
管理の中央集権化とは、従来の分散型台帳の課題である「参加者の自己責任性」及び「資産やデータ管理における危険性」を低減したシステムを実現することを指す。具体的には一例として、従来、ユーザは資産を管理する上で必須となる秘密鍵などの紛失による資産全凍結の危険性がある。ユーザの秘密鍵を中央管理者によってバックアップとして保有することができ、秘密鍵の管理の責任を中央管理者でも負うことができる。
追及された利便性とは、GLSシステムが実社会に要求される「速い処理速度」、「高いスケーラビリティ」を実現することによって、中央集権システムと同等のユーザビリティを実現することを指す。
【0021】
すなわち、GLSシステムの目的の一つは、例えば、上述の分散型台帳技術が有する情報システムによる耐改ざん性及び所定の当事者に要求される信頼及び責任を軽減する特性に加えて、併せて、消費電力問題を解消し、トランザクションの確定までに要する時間を短縮化し、確定すべきトランザクションの大幅な増加にも適応する処理能力を保持する技術を提供することと言い換えることができる。
そして、このような目的を達成すべくGLSシステムでは、例えば「階層型ネットワーク構造」、「環状型ネットワーク構造」をはじめとする、様々な構造や機能を採用する。
【0022】
まず、GLSシステムの特徴の一つである「階層型ネットワーク構造」について説明する。
図1は、GLSシステムおける階層型ネットワーク構造の概念を説明するための図である。
GLSシステムでは、ネットワークを構成するノードの夫々に4種の役割を設定し、各ノードをレイヤー毎に振り分けることで、トランザクションに関する各種処理を最適化する。
ここで、役割が設定されたノードとは、例えば、「ルートノード(以下、「RN」と呼ぶ)」、「マスターノード(以下、「MN」と呼ぶ)」、「スーパーノード(以下、「SN」と呼ぶ)」、「ノーマルノード(以下、「NN」と呼ぶ)」の4種である。続いて、各ノードが果たす役割の詳細について、説明する。
【0023】
RNの役割は、GLSシステムにおけるトランザクションの承認プロセスにおいて最終的な承認を行うことである。このRNは、後述するMNのうちから1のノードが選出される。なお、RNに選出される対象となるMNの集合をルートノード候補(以下、「RN候補」と呼ぶ)と呼ぶ。
これにより、GLSシステムは、承認するノードの数を限定することでトランザクションの承認プロセスを全体として高速化することができる。また、1のRNのみを選出することになるため、複数台が同一のトランザクションを承認するといった事態を防止することができる。ただし、設計によっては同時に複数台のRNが夫々同時に互いに異なるトランザクションの承認処理を実行してもよい。
【0024】
ここで、RN選出のルールは特に規定はなく任意であるが、例えば、順列によるRNの選出方式があげられる。
以下、順列によるRNの選出方法について簡単に説明する。RNは候補である各MNから例えば、以下のような方法により選出される。
例えば、RN候補である各MNは、各RN候補のMNの公開鍵と対応する承認を担当する期間を含む情報(以下、「トークン」と呼ぶ)を、一定期間毎に他のMNへ送信する。各MNは、トークンを受信して、自身の公開鍵とトークンを照らし合わせて、自身が承認を担当する期間内である場合には、RNとなり承認を実行する。
このようにMNがRNの選出候補となる利点の一つは、例えばトランザクションを承認するに際して、事前に信頼できるノード(RN)が選出されていることにより、所定のプロトコルに従った高速な承認処理を実現できる点にある。換言すれば、従来の分散型台帳技術で使われるナンスに基づいたハッシュ値の算出を省略することができ、RNが一時的に中央サーバのように振舞うことで高速にトランザクションを承認できると考えることができる。
【0025】
また、RNの選出に用いられるMNの優先順位付けは、上述のとおり改ざん不可能である過去のトランザクションからのみ行うことで、不正なRNの選出を困難とし、透明性のある公平なRN選出として機能する。
さらに言えば、GLSシステムは、例えば、各ノードによるトランザクションの整合性の徹底的な検証、MNによる相互監視によって不正なトランザクションの承認を防止するシステム制御、MNの厳しい設置条件などを、RN選出のルールに追加して採用することもでき、これにより、さらに効率よく悪意の改ざん等を排除し、セキュリティを担保しつつ高い処理速度を実現することができる。
【0026】
MNの役割は、RNに選出される候補となること、SNや他のMNへのトランザクションの送信、MNやRNの監視等である。以下、詳細に説明する。
また、MNのうちRNに選出されなかったMNは、RNの承認行動の監視を行う役割を担っている。換言すれば、RNにより承認されたトランザクションの整合性は、トランザクションを受け取った各ノードによって必ず確認され、不整合なトランザクションが検知された場合は、そのトランザクションは破棄される。そのため、不整合なトランザクションが送信された場合であっても、それはネットワーク全体へは波及しないため、整合性がとれたトランザクションのみがチェーンとして繋がり、その結果、信憑性があるデータのみが分散型台帳に保存される。
その上で、例えば、悪意を持って不正なトランザクションを承認し、送信しようとするRNは、MNが管理するブラックリストに登録され、RNの候補から排除される仕組みが、GLSシステムに採用されてもよい。
【0027】
また例えば、GLSシステムは、例えば、一定時間ごとに選出するRNを切り替える制御を実行してもよい。これにより、RNやMNへの各種攻撃等によって、ノードがダウンした場合にも、他のRN候補が各ノードのダウンを検知し、RNとしてトランザクションの承認とRNの選出を続けることで、攻撃によりGLSシステム全体が停止するような事態を避けることができる。そのため、それまでサーバの弱点であった単一障害点を分散型台帳技術の使用により解消することで、GLSシステムにおけるシステム負荷の分散やシステムのゼロダウンタイムの実現が期待できる。
【0028】
SNの役割は、トランザクション発行の役割を持つNNと、トランザクションを承認する役割を持つMNとの間をとり持つように接続することで、通信量の増大により各MNへ集中する負荷を緩和し、各MNの情報処理を補助することである。以下、具体的に説明する。
詳細は後述するが、NNはトランザクションを生成する役割を有し、NNが生成したトランザクションは、当該NNが接続している他のNN及びSNに送信される。そして、トランザクションを受け取ったNNは、デジタル署名の整合性等を確認した後、そのトランザクションの情報を自身のデータベース等に格納し、接続しているNN及びSNにも転送される。このようなやり取りが各ノードによって同様に繰り返されることで、ネットワーク全体にトランザクションが波及されていく。
この点、従来の一般的な分散型台帳ネットワークなどでは、各々が保有している最新のトランザクションの有無を確認する工程を経て、各々が保有する最新のトランザクションを送受信する。これにより、ノード間でトランザクションを送受信する回数が最低限になるため、不必要で過剰な同一のトランザクションが、氾濫することを防いでいる。
これに対して、GLSシステムにおいて、各ノード(SNやNN)は、自身が受け取ったトランザクションと同一の内容の情報が既に自身のデータベース等に格納されていた場合、転送を行わずに、当該トランザクションを破棄することができる。これにより、GLSシステムでは、ネットワークにおいて不必要で過剰な同一のトランザクションが氾濫することを防ぐことできる。加えて、最新のトランザクションの有無を確認せずに送受信するため、可能な限り少ない時間で、MNまでトランザクションを送信する役割を担っている。
図2を参照しつつ、SNの役割について、簡単に説明する。
【0029】
図2は、GLSシステムにおけるSNの役割の詳細を説明するための図である。
図2の例では、ネットワークに存在するx個のNNに対して、トランザクションが送信される場合の例、すなわち、1のSNに対してx個の同一のトランザクションが送信される場合の例が示されている。
この例では、NNの夫々はyのSNに接続しているので、単純計算でx×yの同一のトランザクションが複数のSNの夫々に送信されることになる。仮に、GLSシステムのネットワーク上にSNが存在しないとすれば、大量の同一のトランザクションがMNへ送信され、それらの処理には大きな負荷が生じ、MNの承認作業の遅延が引き起こされることになる。
これに対して、SNは、自身がx個の同一のトランザクションを取得した段階で、x-1個の同一のトランザクションを破棄し、残存した1のトランザクションのみをMNに送信するため、MNが受け取ることになるトランザクションは最低限のもののみとなり、MNは自身の役割にのみ注力することができ、単一時間当たりのトランザクションの処理数を向上することが期待できる。
【0030】
また、上述のように、SNをNNとMNの間に配置することにより、NNという攻撃者となり得るノードからのMNへの接続をリバースプロキシのように防御することで、特定のMNへの高負荷攻撃や、特定のノードを取り囲み情報を遮断する等の攻撃を回避することができる。これにより、GLSシステムは、さらにセキュリティ上のリスクを低減し、トランザクションの処理を実現することができる。
具体的に例えば、NNは悪意を持って接続先のノードに大量の不正なトランザクションを送信することができ、この不正なトランザクションをMNがすべて受信してしまうことが挙げられる。これによって不正なトランザクションの整合性の検証処理を実行することにCPUのリソースが充てられ、MNのトランザクションの承認処理速度が低下するという事態が起こる場合があるが、上述のSNを採用することによって、これを回避することができる。
【0031】
続いて、NNの役割を説明する。NNの役割は、GLSシステムにおけるトランザクションの生成と、自身と接続しているNNとSNに対してトランザクションを波及させる役割を担っている。
なお、GLSシステムにおけるNN及びSNは、任意に設計した複数の同位(同種)ノード及び複数の上位ノードと接続されていてもよい。そのため、例えば、特定のノードが正常に機能しなくなった場合であっても、一度NNからネットワークに転送されたトランザクションは、他のノードを迂回経路とすることができるため、結果としてMNまで到達することができる。
【0032】
続いて、
図3及び
図4を参照しつつ、GLSシステムの特徴の一つである「環状型ネットワーク構造」について説明する。
図3は、GLSシステムにかかる環状型ネットワーク構造の一例を示す図である。
図3の例では、中心にMN及びRNが配置され、その外側に円を描くようにSNが配置され、さらにその外側にNNが配置されている。このような環状型ネットワーク構造は、中心から末端までの(ネットワーク的な)距離が均一であることにより、情報交換を迅速に、広範囲かつ効率的に行うことが期待できる。
【0033】
ここで、各ノードは、GLSシステムへの参加を希望する場合、図示せぬ記憶部に保存されている公開鍵と秘密鍵とを用いて生成する電子署名を付与した参加申請を、後述するRTN(ルーターノード)へ送信する。RTNは、任意の規則に基づいて、送信元であるノードの役割、及び役割に基づいて決定された接続先ノードを決定し、送信元の各ノードに、決定された各種情報を送信する。
なお、例えば、RTNは、MN乃至SNとして機能する役割を有する公開鍵の一覧を保有しており、各参加要求元であるノードの電子署名に付与されている公開鍵と照合する。夫々の役割として登録されている公開鍵と合致した場合には所定の役割を、そうでない場合はNNの役割を決定することにより、各ノードの役割等を決定してもよい。ただし、RTNが各ノードの役割を決定する方法や役割の詳細、また、接続先を決定する基準や方法は、任意であり、限定されない。
【0034】
続いて、
図4を参照しながら、NNにおけるトランザクションの生成から各種処理の終了までの流れについて簡単に説明する。
図4は、GLSシステムにおけるトランザクションの生成から各種処理の終了までの流れの一例を示す図である。
ステップSS1において、NNは、実施された取引の内容に応じたトランザクションを生成し、そのトランザクションを、他の複数のNN及び複数のSNの夫々へ送信する。ここでトランザクションを受信した他の複数のNNはステップSS1の処理を同様に実行する。
【0035】
ステップSS2において、SNは、ステップSS1でNNから送信されたトランザクションを取得して、そのトランザクションの整合性を検証する。
ステップSS2において、SNは、トランザクションの整合性に問題がなければ、そのトランザクションを、他の複数のSNおよび複数のMNの夫々へ送信する。ここでトランザクションを受信した他の複数のSNは夫々ステップSS2の処理を同様に実行する。
【0036】
ステップSS3において、MNは、ステップSS2でSNから送信されたトランザクションを取得して、そのトランザクションの整合性を検証する。ステップSS3において、MNは、トランザクションの整合性に問題がなければ、そのトランザクションを他の複数のMNおよびRNの夫々へ送信する。ここでトランザクションを受信した他の複数のMNは夫々ステップSS3の処理を同様に実行する。
【0037】
ステップSS4において、RNは、ステップSS3で取得したトランザクションの整合性を検証する。ステップSS4において、RNは、トランザクションの整合性に問題がなければ、そのトランザクションを承認し、承認済みトランザクションを生成する。
ステップSS5において、RNは、ステップSS4で生成した承認済みトランザクションを、MNの夫々へ送信する。
【0038】
ステップSS6において、MNは、ステップSS5で送信された承認済みトランザクションを取得して、承認済みトランザクションの整合性を検証する。ステップSS6において、MNは、承認済みトランザクションの整合性に問題がなければ、当該承認済みトランザクションをSNへ送信する。ここでトランザクションを受信した他の複数のMNは夫々ステップSS6の処理を同様に実行する。
【0039】
ステップSS7において、SNは、ステップSS6でMNから送信された承認済みトランザクションを取得して、承認済みトランザクションの整合性を検証する。ステップSS7において、SNは、承認済みトランザクションの整合性に問題がなければ、その承認済みトランザクションをNNに送信する。
【0040】
ステップSS8において、NNは、ステップSS7でSNから送信されてきた承認済みのトランザクションを取得する。これにより、トランザクションの生成から各種処理の終了までの流れは終了する。なお、各ノードによる処理の詳細については、
図10および
図11等を参照しつつ、後述する。
【0041】
ここで重要な点は、この環状型ネットワーク構造を採用したGLSシステムでは、MN、SN、NNの順という中心から末端まで並びは変わらず、常に一定の転送回数で各ノードへの情報伝達が完了する点である。また、情報を受信するタイミングの位置関係による格差が最小限となることでノード毎の情報に対する不公平さが排除され、かつ処理時間を短縮・適正化することが期待できる点である。
具体的には、
図3の例では、所定のNNによって作成されたトランザクションAは、SN、MNの順に送信される。MNがRNになった時、受信したトランザクションAを承認し、MN、SN、NNの順に送信され、全NNは承認されたトランザクションを受け取ることができる。
つまり、これらをまとめると、階層型ネットワーク構造により各役割が割り当てられた各ノードの夫々は、環状構造により各役割の各ノードの円形の自己相似的な構造を実現することができる。
なお、ここで言う環状構造とは、各ノードのネットワーク的な距離を均等にしてネットワーク上に配置する構造を意味する。具体的に例えば、環状構造は、1以上の複数階層によって構成され、またはネットワーク全体を構成するノードに関する情報を有するサーバなどが存在し、接続要求元のノードのリクエストに対して接続先のノードの情報を返却する構造などを備えていれば足りる。
このような構造を実現することで各ノードの位置関係が均等となるため距離の問題による同期のタイミングの誤差や情報の格差を防ぐことができ、結果としてトランザクションの送信、承認、そして受信に至るまでのレイテンシが最小化されることになる。また、環状型ネットワーク構造を実現することで、ネットワークに参加する複数台のMNが並列的に同時に承認処理を実行することが容易となり、トランザクションの承認処理を高速化し、スケーラビリティを確保することができる。
【0042】
また、この環状型ネットワーク構造を採用したGLSシステムでは、ネットワークに流れる情報の量に応じてMNやSNの台数を増減させてもよい。例えば、ネットワークに流れるトランザクションの量に対してMNが過剰な場合、余剰と見なされるMN群が自動でスリープし、ネットワーク内の転送やトラフィックを最適化してもよい。一方、トランザクションに対してMNの供給が不足している場合、スリープ状態のMNを起動させることで、トランザクションの処理に充当することもできる。なお、SNについても同様である。このような仕組みは、ネットワークの規模を調整し、ノード同士で交換されるトランザクションの転送回数を削減し処理速度の向上やTPSの向上、ネットワーク全体の消費電力の適正化等の利点が存在する。
【0043】
さらに、GLSシステムにおいて採用され得る特徴的なデータ構造の詳細について説明する。具体的に例えば、(1)MNの管理を行うヘッダー、(2)システム内時間を管理するシグナル、(3)取引の記録として機能するDAG(Directed-Acyclic-Graph)を採用したトランザクションについて説明する。
【0044】
<MNの管理を行うヘッダー>
まず、MNの管理を行うヘッダーについて説明する。
ヘッダーとは、RNの候補の一覧が記録されているデータ構造を持つ情報である。そして、ヘッダーへの追記は、新たにRN候補としてMNの参加若しくは脱退毎に、その時に稼働している全RN候補で行われる。つまり、GLSシステムのネットワークに参加する全ノードの夫々は、このヘッダーの情報を受け取ることで、現状承認作業を行っているMNの一覧を確認することができる。また、ネットワークに参加する全ノードの夫々は、過去の各MNのRN候補への全参加履歴を確認し、かつ所定の承認済トランザクションと照合することで、トランザクションの整合性の検証が可能となり、信頼性を担保することができる。
さらに言えば、GLSシステムでは、RN候補を管理する分散型台帳をトランザクションとは別で用意し、ヘッダーという形で、新規参入するMNを管理している。RN候補の管理においては、時間をかけて新規参入する予定のMNを参加条件と照らして、厳格に承認の審査をすることでより脆弱性を排除できる。
【0045】
<システム内時間を管理するシグナル>
次に、システム内時間の管理に利用されるシグナルについて説明する。
シグナルとは、GLSシステムにおけるネットワーク内部のシステム内時間を記録しているデータ構造であり、後述するシグナルノードにより送信が行われる。
ここで、分散型台帳に限らず、従来の分散コンピューティングと呼ばれる領域においては、ネットワーク上に存在する各ノードにおけるクロック値の誤差、また通信によるタイムラグが存在し、絶対的な時間の共有は極めて困難であった。
そこで、GLSシステムにおいては、予めシステム内時間を決定し、そのシステム内時間の情報を含むシグナルを、送信するシグナルノード(以下、「SGN(Signal Node)」と呼ぶ)をネットワーク上に配置して、配置されたSGNが任意の単位時間毎にシグナルを送信することで、絶対的な時間情報の共有を実現する。
これにより、GLSシステムでは、従来の中央集権型のデータベースと同様に時間軸でのデータ制御が可能となり、ファイナリティを付与することが可能となる。
なお、このシグナルは、システム内時間の情報が付与された後、所定のSGNによって電子署名が付与され、任意に定められた単位時間ごとにネットワークに送信される。悪意を持って意図的に不正な時刻を生成してトランザクションに付与される場合、シグナルに付与される電子署名を検証することによって、検知することができる。検証方法の一例として、各ノードは、正式なシグナルの公開鍵の一覧を保有し、シグナルに付与されている公開鍵と比較することで、正しいシグナルの検証が行われてもよい。
【0046】
図5を参照しつつ、さらに詳細に説明する。
図5は、シグナルを軸とした承認担当領域の違いを示した模式図である。
図5の例では、N1は、MN-AからMN-Bへの承認権限が切り替わる任意のタイミングを示している。このように、GLSシステムにおいては、例えばN1という任意のタイミングにおいてMNの担当時間とトランザクションの状況を時間軸に沿って区分することができるため、スムーズで高速な担当の交代とトランザクションの承認作業を実行することができる。このシグナルは、既存の分散型台帳に関するサービス等では使用されていない。そのため、トランザクションの承認をどの承認者(ノード)が担当するのか等に明確な基準がなく、複数の承認者による多重承認やいわゆるフォークが発生するリスクが残存していた。この点、本発明に係るGLSシステムでは、シグナルという時間軸を採用して、ネットワークを制御することにより、各トランザクションの承認を担当するMNが一義的に決定される。そのため、例えば、時間軸において先に承認されたトランザクションを優先し、残りのトランザクションを破棄するといった判断が可能となる。さらに、結果として、上述の二重承認のような事態を防止し、トランザクションにおけるファイナリティを得ることができる。
ただし、
図5に示すトランザクションの承認権限に関する方法は、必ずしも採用される必要はない。さらに言えば、
図5に示すトランザクションの承認権限に関する方法はあくまでも例示であり、限定されない。
【0047】
<取引の記録として機能するDAG>
続いて、トランザクションの管理に利用されるDAG(Directed Acyclic Graph)について説明する。DAGとは、例えば、グラフ理論における閉路のない有向グラフであり、データベースなどの分野において応用し得る技術の一つである。GLSシステムにおいても、例えば、DAGを採用し、トランザクション間をハッシュなどで連結することによりトランザクションの承認の順番待ちによる待機時間を軽減できる可能性がある。
【0048】
GLSシステムでは、このような特徴を、適宜、採用することができるため、これまでのブロックチェーン等と同等以上のセキュリティを担保しつつも、超高速での処理を実現することが期待できる。
以上のことから、ヘッダーによりRN候補に参加するMNを事前に審査することで、悪意を持った承認者の参加を防ぐことができ、高いセキュリティを実現することができる。
また、従来、分散型台帳技術では、トランザクションの承認毎に信頼できるノードを決定するために合意処理が必要であったが、GLSシステムにおいては、予めMNが承認ノードとして選出することにより、トランザクションの承認毎に選出する必要性がないため、高速な承認が可能となる。
【0049】
さらに、GLSシステムでは、トランザクションの管理にDAGを応用することで、トランザクションの承認処理を並列で行い、これによりスケーラビリティの確保を実現する。
そして、シグナルを導入することで、承認にファイナリティを与える。つまり、トランザクションに対し、時間軸を含めた複数の判断基準を設けることにより、二重承認等を防止する。これらの特徴を有するGLSシステムでは、「改ざん耐性・ゼロダウンタイム・透明性や公平性の確保」といったブロックチェーンの利点を生かしつつ、高速にトランザクションを処理し、かつスケーラビリティのあるシステムとして機能することが期待できる。
ここで、改ざん耐性とは一度確定したトランザクションを、悪意を持って書き換えることに対する困難性を意味し、ゼロダウンタイムとはGLSシステムに関する各種システムやサービスが機能停止に陥る時間が限りなくゼロであることを意味する。また、透明性や公平性の確保は、GLSシステムにおいて、過去履歴をネットワークに参加する全ノードが参照し、常に検証することができる。これにより、どの参加者もトランザクションの承認権限を有し得るMNになり得ることで実現される特徴の一つである。
ただし、GLSシステムは、これら全ての特徴を常に備えている必要はない。即ち、上述の各種特徴のうち全てを採用するのか、一部のみを採用するのかは特に限定されず、GLSシステムの提供者等により任意で決定されてもよい。
【0050】
<他の役割を持つノード>
ここで、上述の役割が設定されたノードと異なる他のノードについて説明する。
(1)トポロジーサーバ(以下、「ルーターノード」または「RTN」と呼ぶ)
RTNとは、上述の各種ノード(例えば、RN、MN、SN、NN)のようにトランザクションの作成や承認には、一切関与せず、ネットワーク全体のノード接続先を管理するサーバとして動作するノードである。つまり、MN,SN、NNの台数比率に応じたMNとSNの台数調整をし、GLSシステムにおけるネットワーク全体を円滑に制御する。
通常の分散型台帳技術に採用されるP2P(Peer to Peer)ネットワーク等の場合は、柔軟なネットワーク管理を行えないため、ネットワークの規模を調整することが極めて困難である。そのため、例えばネットワーク内でのノード台数の増減によるトラフィックの過剰な転送回数の増加が引きおこることがある。換言すれば、ネットワーク全体において不必要なリソースの消費が発生し、電力消費の増加やTPSの低下を生じる恐れがある。これに対して、GLSシステムでは、このような仕組みを採用することにより、ネットワーク全体のトラフィック調整と最適化を実現することができる。
【0051】
なお、従来の中央集権型のサーバでは、DoS攻撃などによってレイテンシが増加するなどの問題がある。これに対して、GLSシステムにおいて中央集権型のサーバの要素を有するRTNへの直接攻撃によって、サーバの負荷増加を引き起こされる場合も、トランザクションの承認などの情報処理システムの中核となる処理は、全てMNが実行するため、RTNへのサーバの負荷の増加は実質のところ、レイテンシの低下を引き起こさず、安定してデータの処理を実行できる。
また、RTNの運用方法について、上述の通りGLSシステムでは、重要度の高いノード(例えば、RNやMN等)は、原則分散化されている。RTNは、この原則の例外に該当する。
すなわち、RTNは、(1)GLSシステムの運営上のメンテナンス、(2)ネットワークのリカバリー、(3)ロールバックの実行等を行う場合のネットワーク全体の起点としてGLSシステムの提供者等が操作することができる。これにより、GLSシステムの提供者等は、例えば必要に応じて全ネットワークを停止し、運営・管理上必要な作業を実行することができる。
【0052】
(2)シグナルノード(SGN)
SGNとは、上述の通り、GLSシステムにおけるシステム内時間が付与されたシグナルを発行するノードである。従来の中央集権的なネットワークの場合、このような時間軸は、サーバを元に決定される。しかしながら、分散型台帳等の分散コンピューティングと呼ばれる領域においては、ネットワーク上に存在する各ノードにおけるクロックの値の誤差や通信によるタイムラグ等が存在するため、絶対的な意味での時間の共有は極めて困難である。GLSシステムでは、このような問題を解決するために、SGNをネットワーク上に動作させて、シグナルによりネットワーク全体の制御を行うこととしている。
なお、ネットワークに存在するSGNが一つであった場合、ネットワークの肥大化に合わせてシグナルの伝達に遅延が生じ、ネットワークの同期に問題が生じる可能性がある。そのため、GLSシステムでは、複数のSGNをネットワークに配置して、並列的にシグナルを発行することができる。以下、
図6を参照しつつ、ネットワークにおけるSGNの配置の一例を具体的に説明する。
【0053】
図6は、ネットワークにおけるSGNの配置の一例を示す図である。
図6の例では、GLSシステムのネットワーク内にSGN(A)乃至SGN(C)の複数のSGNが配置された場合の例が示されている。即ち、SGN(A)乃至SGN(C)の夫々のノードが他のノードに対してシグナルを送信することになる。これにより、SGNの位置関係によるネットワーク全体の同期誤差が軽減される。しかしながら、
図6の例において、SGN(A)乃至SGN(C)から送信されたシグナルに含まれるクロック値自体に誤差が生じている状態でシグナルが送信されたとしても、夫々のノードは、受信したシグナルのうち、時間情報がもっとも新しいシグナルを最新のものとして採用する。加えて、シグナルを受信した直後から任意の時間内に受信したシグナルの標準偏差を取ることで、同期誤差を軽減してもよい。
【0054】
続いて、
図7を参照しつつGLSシステムの構成の一例について説明する。
図7は、本発明の一実施形態の情報処理装置を含むGLSシステムの構成の一例を示すブロック図である。
【0055】
本発明の情報処理システムは、RN1と、n台のMN2-1乃至2-n(nは1以上の任意の整数値)と、p台のSN3-1乃至3-p(pは1以上の任意の整数値)と、q台のNN4-1乃至4-q(qは1以上の任意の整数値)を含み構成されるネットワーク(以下、「GLSネットワーク」と呼ぶ)と、RTN(サーバ)5とを含む情報処理システムである。GLSネットワークと、RTN5とは、インターネット等の所定のネットワーク(NW)を介して相互に接続されることで構成されている。また、GLSネットワークに含まれる各ノードの夫々は、例えば、P2P等の所定の方法により接続されている。 そして、以下、MN2-1乃至2-nと、SN3-1乃至3-pと、NN4-1乃至4-qと、を特に区別する必要がない場合、これらをまとめて、夫々を「RN1」、「MN2」、「SN3」、「NN4」と呼ぶ。
なお、
図7の例においては、GLSネットワークに接続する各ノードの夫々は、RTN5へ事前にGLSネットワークへの参加を申請しており、各ノードの夫々において果たすべき役割の決定及び接続先が指定され、GLSネットワークが構築されているものとする。
即ち、RTN5は、GLSネットワークを構築する事前において、GLSネットワークに参加を希望するノードに関する情報を取得する。RTN5は、その内容に基づいて、各ノードの夫々の役割及び接続先を決定する。そして、RTN5は、各ノードの夫々に対して、自身の役割及び接続先に関する情報を送信する。これにより、上述のGLSネットワークが構築される。
なお、GLSネットワークには、RN1、MN2、SN3、NN4だけでなく、例えば、図示せぬSGN等を含む、その他の役割を有するノードが、適宜、含まれていてもよい。
【0056】
続いて、
図8を参照しつつGLSネットワークに含まれる各ノードの夫々のハードウェア構成の一例について説明する。
図8は、
図7に示す情報処理システムのうちRTNのハードウェア構成の一例を示すブロック図である。
【0057】
RTN5は、例えば、コンピュータ等で構成され、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、バス14と、入出力インターフェース15と、出力部16と、入力部17と、記憶部18と、通信部19と、ドライブ20とを備えている。
【0058】
CPU11は、ROM12に記録されているプログラム、又は、記憶部18からRAM13にロードされたプログラムに従って各種の処理を実行する。
RAM13には、CPU11が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【0059】
CPU11、ROM12及びRAM13は、バス14を介して相互に接続されている。このバス14にはまた、入出力インターフェース15も接続されている。入出力インターフェース15には、出力部16、入力部17、記憶部18、通信部19及びドライブ20が接続されている。
【0060】
出力部16は、例えば、液晶等のディスプレイやスピーカ等により構成され、各種情報を画像や音声として出力する。
入力部17は、例えば、キーボード等により構成され、使用者の指示操作に応じて、各種情報を入力する。
記憶部18は、ハードディスクやDRAM(Dynamic Random Access Memory)等で構成され、各種情報を記憶する。
通信部19は、インターネットを含むGLSネットワークを介して他の装置(例えば、RN1、MN2、SN3、NN4等)との間で通信を制御する。
【0061】
ドライブ20は、必要に応じて設けられる。ドライブ20には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなる、リムーバブルメディア31が適宜装着される。ドライブ20によってリムーバブルメディア31から読み出されたプログラムは、必要に応じて記憶部18にインストールされる。
また、リムーバブルメディア31は、記憶部18に記憶されている各種データも、記憶部18と同様に記憶することができる。
【0062】
なお、RN1、MN2、SN3およびNN4等のハードウェア構成は、サーバRTN5のハードウェア構成の一例と、同様とすることができるので、ここでは説明を省略する。
【0063】
図9は、
図7のGLSシステムのうち、NN、SN、MNおよびRNの機能的構成の一例を示す機能ブロック図である。まずは、NN4の機能的構成の一例を説明する。
図9に示すように、NN4のCPU60は、各種プログラム等を実行することにより、トランザクション生成部80と、未承認トランザクション管理部81と、承認済トランザクション管理部82と、整合性検証部83と、シグナル管理部84として機能する。
トランザクション生成部80は、実施された取引の内容に応じたトランザクションを生成する。
【0064】
未承認トランザクション管理部81は、トランザクション生成部80で生成したトランザクションを、他の複数のNN4および複数のSN3の夫々へ送信する。
【0065】
承認済トランザクション管理部82は、後述するSN3から送信されてくる承認済みトランザクションを、取得する。
【0066】
整合性検証部83は、承認済トランザクション管理部82で取得された承認済みトランザクションの整合性を検証する。
【0067】
シグナル管理部84は、図示せぬSGNから送信されてきたシグナルを取得し、これを管理する。すなわち、シグナル管理部84は、NN4の夫々のシステム内時間を管理する。
【0068】
続いて、SN3の機能的構成の一例を説明する。
図9に示すように、SN3のCPU100は、各種プログラム等を実行することにより、未承認トランザクション管理部120と、承認済トランザクション管理部121と、整合性検証部122と、シグナル管理部123として機能する。
未承認トランザクション管理部120は、NN4から送信されてきたトランザクションを取得する。また、未承認トランザクション管理部120は、取得したトランザクションについて、整合性の検証に問題がないと判断された場合、そのトランザクションを、他の複数のSN3および複数のMN2の夫々へ送信する。
【0069】
承認済トランザクション管理部121は、後述するMN2から送信されてくる承認済みトランザクションを、取得する。
【0070】
整合性検証部122は、未承認トランザクション管理部120で取得されたトランザクションおよび承認済トランザクション管理部121で取得された承認済みトランザクションの整合性を検証する。
【0071】
シグナル管理部123は、図示せぬSGNから送信されてきたシグナルを取得し、これを管理する。すなわち、シグナル管理部123は、SN3の夫々のシステム内時間を管理する。
【0072】
続いて、MN2の機能的構成の一例を説明する。
図9に示すように、MN2のCPU140は、各種プログラム等を実行することにより、未承認トランザクション管理部160と、承認済トランザクション管理部161と、整合性検証部162と、シグナル管理部163と、RN処理部164として機能する。
未承認トランザクション管理部160は、SN3から送信されてきたトランザクションを取得する。また、未承認トランザクション管理部160は、取得したトランザクションについて、整合性の検証に問題がないと判断された場合、そのトランザクションを、他の複数のMN2およびRN1の夫々へ送信する。
【0073】
承認済トランザクション管理部161は、後述するRN1から送信されてくる承認済みトランザクションを、取得する。
【0074】
整合性検証部162は、未承認トランザクション管理部160で取得されたトランザクションおよび承認済トランザクション管理部161で取得された承認済みトランザクションの整合性を検証する。
すなわち、整合性検証部162は、RNの承認行動の監視を実行する。
なお、RNの承認行動の監視とは、具体的に例えば、作成されたブロック番号は一致しているか、作成されたブロックに埋め込まれた公開鍵は正しいRNのものか、ブロックにシグナルが埋め込まれている場合に1つ前のブロックより過去の時刻を示していないか、後述するシャードが存在する場合シャード番号と承認したRNの所属するシャードは同一か、ブロック作成者のデジタル署名は本人を示しているか、ブロックに格納されているトランザクションの整合性に問題はないかなどである。
【0075】
シグナル管理部163は、図示せぬSGNから送信されてきたシグナルを取得し、これを管理する。すなわち、シグナル管理部163は、MN2の夫々のシステム内時間を管理する。
【0076】
RN処理部164は、RN5の選出に関する各種処理を実行する。
【0077】
最後に、RN1の機能的構成の一例を説明する。
図9に示すように、RN1のCPU180は、各種プログラム等を実行することにより、未承認トランザクション取得部200と、承認済トランザクション生成部201と、承認済トランザクション管理部202として機能する。
未承認トランザクション取得部200は、MN2から送信されてきたトランザクションを取得する。
【0078】
承認済トランザクション生成部201は、未承認トランザクション取得部200で取得されたトランザクションについて整合性を検証する。整合性の検証に問題がないと判断された場合、承認済みトランザクション生成部201は、そのトランザクションを承認し、承認済みトランザクションを生成する。
【0079】
承認済トランザクション管理部202は、承認済トランザクション生成部201で生成された承認済みトランザクションを、複数のMN2の夫々へ送信する。
【0080】
シグナル管理部203は、図示せぬSGNから送信されてきたシグナルを取得し、これを管理する。すなわち、シグナル管理部203は、RN1の夫々のシステム内時間を管理する。
【0081】
続いて、
図10を参照しつつ、NN4、SN3及びMN2において実行されるトランザクション処理の流れの一例について説明する。
図10は、NN、SN及びMNに係るトランザクション処理の流れの一例を示すアローチャート図である。
なお、
図10の例では、NN4、SN3及びMN2においてトランザクションに関連して実行される一連の処理を合わせてトランザクション処理と呼ぶこととし、NN、SN、MN、RNの夫々で行われるトランザクションに関連して実行される各種処理を、夫々、NN側トランザクション処理、SN側トランザクション処理、MN側トランザクション処理、RN側トランザクション処理と呼ぶこととする。
【0082】
ステップS1において、NN4のトランザクション生成部80は、実施された取引の内容に応じたトランザクションの生成を行う。
ここで、NN4は、過去の承認済みトランザクションの情報に基づいて、新しくデータを作成し、これに電子署名を付与することによって、未承認のトランザクションを生成してもよい。また、ここで言う未承認のトランザクションとは、RN1によって承認される前のトランザクションを指す。
【0083】
ステップS2において、NN4の未承認トランザクション管理部81は、ステップS1で生成されたトランザクションを他の複数のNN4および複数のSN3の夫々へ送信する。
【0084】
ステップS21において、SN3の未承認トランザクション管理部120は、ステップS2でNN4から送信されたトランザクションを取得する。
【0085】
ステップS22において、SN3の整合性検証部122は、ステップS21で取得されたトランザクションの整合性を検証する。なお、整合性の検証に問題がある場合、そのトランザクションは、破棄される。
【0086】
ステップS23において、SN3の未承認トランザクション管理部120は、ステップS22で整合性が認められたトランザクションを、他の複数のSN3および複数のMN2の夫々へ送信する。
【0087】
ステップS41において、MN2の未承認トランザクション管理部160は、ステップS23でSN3から送信された未承認のトランザクションを取得する。
【0088】
ステップS42において、MN2の整合性検証部162は、ステップS41で取得されたトランザクションの整合性を検証する。なお、整合性の検証に問題がある場合、そのトランザクションは、破棄される。
【0089】
ステップS43において、MN2の未承認トランザクション管理部160は、ステップS42で整合性の検証に問題がないと判断されたトランザクションを、他の複数のMN2およびRN1の夫々へ送信する。
【0090】
ステップS61において、RN1の未承認トランザクション取得部200は、ステップS43でMN2から送信されたトランザクションを取得する。
【0091】
ステップS62において、RN1の承認済トランザクション生成部201は、ステップS61で取得されたトランザクションの整合性を検証する。なお、整合性の検証に問題がある場合、そのトランザクションは、破棄される。
【0092】
ステップS63において、RN1の承認済トランザクション生成部201は、ステップS62でトランザクションの整合性の検証に問題がないと判断された場合、そのトランザクションを承認し、承認済みトランザクションを生成する。
【0093】
ステップS64において、RN1の承認済トランザクション管理部202は、ステップS63で生成された承認済みトランザクションを、複数のMN2の夫々へ送信する。
またステップS65において、RN1の承認済トランザクション管理部202は、生成した承認済みトランザクションを、図示せぬデータベース等に保存する。
【0094】
ステップS44において、MN2の承認済トランザクション管理部161は、ステップS64でRN1から送信された承認済みトランザクションを取得する。
【0095】
ステップS45において、MN2の整合性検証部162は、ステップS44で取得された承認済みトランザクションの整合性を検証する。なお、整合性の検証に問題がある場合、そのトランザクションは、破棄される。
【0096】
ステップS46において、MN2の承認済トランザクション管理部161は、ステップS45で整合性が認められた承認済みトランザクションを、他の複数のMN2および複数のSN3の夫々へ送信する。
またステップS47において、MN2の承認済トランザクション管理部161は、整合性が認められた承認済みトランザクションを、図示せぬデータベース等に保存する。
【0097】
ステップS24において、SN3の承認済トランザクション管理部121は、ステップS46でMN2から送信された承認済みトランザクションを取得する。
【0098】
ステップS25において、SN3の整合性検証部122は、ステップS24で取得された承認済みトランザクションの整合性を検証する。なお、整合性の検証に問題がある場合、そのトランザクションは、破棄される。
【0099】
ステップS26において、SN3の承認済トランザクション管理部121は、ステップS25で整合性が認められた承認済みトランザクションを、他の複数のSN3および複数のNNの夫々へ送信する。
ここで、承認済みトランザクション管理部121は、例えば、任意の基準に基づいて送信先のノードを決定してもよい。すなわち、例えば、承認済みトランザクション管理部121は、特に優先順位などを決定せず各ノードに承認済みトランザクションを送信してもよいし、例えば、任意の基準により優先的に送信すべきノードがあれば優先的に承認済みトランザクションを送信してもよい。
またステップS27において、SN3の承認済トランザクション管理部121は、整合性の検証で問題がないと判断された承認済みトランザクションを、図示せぬデータベース等に保存する。
【0100】
ステップS3において、NN4の承認済トランザクション管理部82は、ステップS26でSN3から送信された承認済みトランザクションを取得する。
【0101】
ステップS4において、NN4の整合性検証部83は、ステップS3で取得された承認済みトランザクションの整合性を検証する。なお、整合性の検証に問題がある場合、そのトランザクションは、破棄される。
【0102】
ステップS5において、NN4の承認済トランザクション管理部82は、ステップS4で整合性の検証で問題がないと判断された承認済みトランザクションを、他のNN4の夫々へ送信する。
また、ステップS6において、NN4の承認済トランザクション管理部82は、整合性の検証で問題がないと判断された承認済みトランザクションを、図示せぬデータベース等に保存する。これによりトランザクション処理は終了する。
【0103】
以上、本発明の一実施形態について説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものとみなす。
【0104】
ここで、上述の実施形態では説明を省略したが、GLSネットワークは常に固定化されているわけではなく、新たにGLSネットワークに参加を希望するノード(以下、「参加希望ノード」と呼ぶ)が存在する場合もある。そこで、
図11を参照しつつ、参加希望ノードが存在する場合の各種処理の詳細について、簡単に説明する。
【0105】
ステップS81において、RTN5は、現在GLSネットワークを構成する全てのノードの情報を含む、全ノードの登録一覧に関する情報(以下、「全ノード情報」と呼ぶ)を取得する。
なお、RTN5が全ノード情報を取得する方法については、特に限定されないが、例えば、GLSネットワークの全体を管理するRTN5は、現在GLSネットワークに関する情報が常に格納されたDBを有しており、そこから全ノード情報を取得してもよい。
【0106】
ここで、ステップS61において、参加希望ノードは、RTN5に対して、自身がGLSネットワークへの参加を希望する旨の情報(以下、「参加希望情報」と呼ぶ)を送信する。
そこで、ステップS82おいて、RTN5は、ステップS61で参加希望ノードから送信されてきた参加希望情報を取得する。
【0107】
ステップS83において、RTN5は、ステップS81で取得した全ノード情報及びステップS82で取得した参加希望情報に基づいて、参加希望ノードの役割を選定する。
さらに、ステップS84において、RTN5は、ステップS81で取得した全ノード情報及びステップS82で取得した参加希望情報に基づいて、参加希望ノードのGLSネットワークにおける具体的な接続先を決定する。
【0108】
ステップS85において、RTN5は、ステップS83で選定された役割及びステップS84で決定された接続先に関する情報を参加希望ノードに送信する。
【0109】
そこで、ステップS62において、参加希望ノードは、ステップS85で送信された役割及び接続先に関する情報を取得する。さらに、ステップS63において、参加希望ノードは、ステップS62で取得された役割及び接続先に関する情報を参照し、GLSネットワークへの接続を実行する。
そして、ステップS86において、RTN5は、全ノード情報に参加希望ノードに関する情報を追加して、新たな全ノード情報として図示せぬデータベース等に情報を格納する。
【0110】
ここで、上述の実施形態では説明を省略したが、GLSシステムにおけるMNやRNと既存のシステムに言う「マイナー」との相違点について、詳細に説明する。
既存のシステムにおいて広く利用されるマイナーは、特定の条件に合致するハッシュ値などを検索することで、トランザクションの承認におけるマイニングを実行する。なお、マイニングとは、トランザクションの承認を行う一連の処理のうち、特にトランザクションの承認におけるハッシュ値の探索を意味する。
これにより、承認を担当するノードにランダム性を持たせることで、システム全体の公平性や安全性を担保するという思想である。
これに対して、GLSシステムでは、特定のトリガ(例えば、ユーザの操作)によって承認を担当するノード(特にRN)を変動させることが可能となる。
例えば、一つの方法では、GLSシステムは、MN同士またはMNとRNで任意のトークンなどを受け渡していくことにより、ユーザが操作するタイミングにおける承認担当ノード担当をランダムに決定してもよい。これによりGLSシステムは、疑似的に承認担当ノードの決定にランダム性を持たせ、特定のノードのみが承認者となることを避けることができる。
また例えば、一つの方法では、GLSシステムでは、既存のシステムなどと異なり、ユーザの各種操作に基づいて生成されたトランザクションの内容、トランザクションの生成に際して付与された時間情報(シグナル)、そしてネットワーク全体の構成などに応じて、承認担当ノードを決定してもよい。
具体的に例えば、GLSシステムは、ユーザの各種操作に基づいて生成されたトランザクションの内容、生成したタイミングなどに応じて、生成するハッシュ値を変動させ、これらのハッシュ値を組み合わせて参照することで承認担当するノード(例えば、RN)を決定してもよい。また、その時点でのネットワーク全体の構成に応じて、特定のハッシュ値に該当する承認担当するノード(例えば、RN)を決定してもよい。
なお、これらの要素は、トランザクションの生成の事前においては予測と恣意的な操作が困難な要素である。すなわち、GLSシステムは、このようなランダム性を持った異なる要素を掛け合わせることにより、承認担当するノードの決定に高いランダム性を付与することで、公平性と安全性を確保する(情報が改ざんされるリスクを低減する)ことができる。
【0111】
また、上述の実施形態では説明を省略したが、GLSシステムにおけるシグナル(シグナルノード)の意義について、詳細に補足する。
従来の分散型台帳システムなどでは、任意のノード視点で見た場合に、受け取った情報の順番と、情報が処理された順番が異なる場合がある、受け取った情報に付与されている時間情報(タイムスタンプ)が必ずしも正確とは限らないという問題が指摘されることが多かった。
この点、従来も例えば、情報を処理した際に付与するタイムスタンプを、情報を処理したサーバではなく専用のサーバから情報を受け取ることで正確な時間情報を取得しようという試みがなされていた。また、例えば、ブルーフオブワークスのブロックチェーンでは、タイムスタンプの代わりに「ブロック番号」を用いることで、上述の課題を解決しようという試みもなされていた。しかし例えば、「ブロック番号」を用いる場合などでも、ブロックの生成間隔(合意のとれた時間)よりも細かい時間を算出することは困難であった。
これに対して、GLSシステムにおけるシグナルノードは、以下のような要素を有している。
(1)従来の時間情報の取得が、専用サーバにリクエストを送信するという能動的な方法により行われていたのに対して、シグナルノードは、任意時間毎に時間情報をP2Pにより配信しているため、各ノード(サーバ)は受動的に時間情報を受け取ることができる。
(2)従来の専用サーバを用いる方法では、専用サーバへの攻撃のリスクが存在するのに対して、シグナルノードは、GLSシステム内の任意のノードと兼任することが可能であるため、外部から時間情報を配信しているノード(サーバ)であることの特定を困難にする。
そのため、シグナルノードを採用したGLSシステムでは、例えば、以下のような利点(特徴)が存在する。
(a)専用サーバを設置する場合には設置台数に応じて負荷が増大するのに対して、GLSシステムは、シグナルノードをP2Pで運用することができるため、システムの規模の増加に対してシグナルノードへの負荷が増大することがない。
(b)GLSシステムは、シグナルノードの配置場所を秘匿することが容易である。また、万が一、配置場所が発見されてシステムがダウンした(攻撃を受けた)場合であっても、シグナルノードのIPアドレスやドメインを他のノード(例えばRTN)に接続先として登録するだけで、再設置が完了するため、容易にGLSシステムの復旧を行うことができる。
(c)上述の通りシグナルノードから送信される時間情報は、デジタル署名を付与することが可能であるので、他のノードなどが時間情報を受け取る際に正規の送信元から受信した時間情報か否かを容易に識別することができる。さらに言えば、デジタル署名付きの時間情報はシグナルノードのみで発行することができるという性質上、例えば、未来の日付で情報を送信するなどの攻撃を防ぐこともできる。
このような方法により、GLSシステムでは、従来の分散型台帳システムでは、応用することが困難であった「時間情報を送信するサーバの設置」を実現し、ブロック生成間隔よりも小さい間隔であっても、正確な時間情報を取得することが可能となる。
このような利点を具体的に説明すると、例えば、従来の分散型台帳システムでは、任意のサーバ視点で見た場合に、正確な時間情報を取得できないことから、情報の処理の有無などの確認が困難なことから同じ内容の処理を行わなければならないような場合があった。しかし、GLSシステムでは、正確な時間情報を前提として処理すべきノードを任意の時間毎に割り当てるといった手法を採用することができる。そのため、同一の内容を処理するような処理の重複を大幅に削減することができ、システム全体のスケーラビリティを大幅に向上させることができる。
ここで、時刻を取得する上で「ブロック番号」を採用した技術の例において、例えば、ブロックの生成間隔を短くするという解決策が考えられる。
しかし、プルーフオブワークにおけるブロックチェーンの承認者はランダムに決定され、かつ、同一のトランザクションを複数の承認者が処理することがある。そのため、夫々のノードは、同一の内容のトランザクションを含んだ複数ブロックの検証に注力する必要がある。また、検証を終えたブロックのみを他のノードに配信するという特性と相まって、結果的にシステム全体でのブロックの伸長もしくは同一のブロックの共有に偏りが出てしまうという問題が生じる。
これにより、夫々のノードが受信する時間情報にも偏りが出てしまい、ブロックの同期および共有を前提としたプルーフオブワークでは、システム全体の処理祖速度が低下する。なお、このような問題はGLSシステムにおいても残存するものの、上述の「シグナル」を採用することで処理速度の向上を図っている。
具体的に例えば、シグナルの情報量は、ブロックやトランザクションと比較して少なく、また含まれる情報の種別も少ない。そのため、各ノードが、複数のシグナルを受信したとしても、少ない負荷で円滑に検証や配信を行うことができる。加えて、GLSシステムでは、円環状のネットワーク構成により一方向にのみ流れるようにすることで、意図しない情報の共有などを減らすこともできる。そのため、ネットワーク内における時刻の共有の偏りが解消される。また、GLSシステムは、承認者と時間情報配信者を分離し、かつ、各情報の検証工程および配信ルートを分離することによりさらなる効率化を図っている。
一方で、ブロックもしくはトランザクションの処理速度の向上のために、例えば、送金元と送金先のように、トランザクション(またはブロック)の送信を優先的に行うことが望ましいようなノードが存在する場合、それらのノードに優先的にトランザクションが配信される仕組みを採用することもできる。
【0112】
また例えば、上述の実施形態ではトランザクションの内容が確定するタイミングは、RNによる承認がなされた時点で行われるものとして説明したが特にこれに限定されない。
例えば、複数のノードの整合性の検証を持って確定とした場合、システムとしての冗長性を向上できるが処理性能は低下する。他方、1台のノードの承認を持って確定とした場合、システムとしての冗長性は損なわれるが、処理性能は向上するため、確定するタイミングは提供者の任意である。
すなわち、GLSシステムは、対象となる全てのノードで整合性が検証された(問題ないと判断された)時点で確定してもよいし、例えば、トランザクションが各ブロックに格納された時点またはトランザクションが一つ前のトランザクションに連結された時点で確定してもよい。
【0113】
また例えば、上述の実施形態では説明を省略したが、GLSシステムにおいて採用され得るノードは、接続先である同位の(同じ役割を有する)ノードにもトランザクションを送信してもよい。さらに、この場合、接続先である同位の各ノードは同様に受信したのち、上記のステップに従いトランザクション処理の流れを実行してもよい。
【0114】
また例えば、上述の実施形態において、ブロックチェーンという用語は、ブロックにより構成されたデータベースの構造を指すものとして説明したが、特にこれに限定されない。例えば、各種分散情報システムや、P2Pネットワーク、トランザクションの承認の仕組みなど、より広義な意味として「ブロックチェーン」という用語を使用してもよい。
【0115】
また例えば、上述の実施形態では説明を省略したが、GLSシステムは、新たなMNがネットワークに参加を希望する際に、RN候補であるMNにより参加の可否を決める投票を行い、その結果として参加可能となったMNのみがRN候補になるような仕組みを採用してもよい。
既存のパブリック型の分散型台帳では、匿名の第三者による承認作業が許可されていたため、いわゆる51%攻撃に効果的な対策をとることが困難であったが、GLSシステムでは、上述のようなMNという承認権限を持ったノードに設置条件を付加することで、MNの所有について有責性のある主体(例えば、GLSシステムの提供者等)が常時正常なMNを50%以上保有することで、いわゆる51%攻撃に効果的な対策をとることができる。
【0116】
また例えば、上述の実施形態において、GLSネットワークを構成する各ノードの夫々は、P2P等の方式により接続されているものとして説明したが、さらに補足する。
すなわち、上述の通り、上述の実施形態におけるGLSネットワークの接続は、例えば、いわゆるハイブリッドP2Pの技術を採用することができる。これにより、ネットワーク構造の自由な制御が可能となり、中央から末端までのトランザクションの通信経路の制御を容易にすることができる。
他方、既存のブロックチェーン技術に関するサービスでは、一般的なP2Pが採用されるため、トランザクションの通信経路がランダムになり、任意のノードから特定のノードへの通信経路の制御が困難である。そのため、一般的に最適に近い経路を選択し通信を行うが、トランザクションの高速な承認が実現した場合でも、レイテンシの平均値の改善には限界がある。
これに対して、上述の実施形態におけるGLSシステムでは、経路選択が容易なハイブリッドP2Pを採用することにより、最適な通信経路を選択できるため、一般的なP2Pよりもレイテンシの平均値を低減することが可能となる。
また、ネットワーク規模の拡大により、レイテンシの増加は避けられないが、GLSシステムにおいては、例えば、GLSネットワークが複数の国家間をまたぐような場合に、ノード間のレイテンシが少ないノード同士を優先させる接続や、ネットワークのシャーディング等の実装で上述のレイテンシの増加速度が低減可能なこと、加えて、5G等の外的なインフラ変更への対応も構造上容易となる。このようなシステム自体の柔軟性は、ブロックチェーン等を利用した既存のサービスには見られない固有な特徴と言える。
【0117】
ここで、上述の実施形態におけるGLSシステムの「階層型ネットワーク構造」及び「環状型ネットワーク構造」の利点と相乗効果について、簡単に補足する。
GLSシステムでは、階層型ネットワーク構造により各ノードの役割の設定に加えて、ノード間の接続を役割毎に円形のネットワーク構造として構築することで、階層ごとのネットワークを自己相似的に接続することができる。
すなわち、GLSシステムの実施形態によるノードの台数の多寡に関わらず、効率的にトランザクションを波及する構造を有するネットワークの構築が容易となる。そのため、GLSシステムでは、MN間における情報の伝達が効率化され、承認時に参照するべき承認済みトランザクションが高速に同期される。これにより、GLSシステムでは、さらにトランザクションの承認にかかる処理速度の向上が期待できる。
さらに言えば、GLSシステムは、未承認のトランザクションの生成から承認、また、同期処理の速度等の向上等も可能である。また、ネットワーク構造の自由な制御が可能であるため、中央から末端までのトランザクションの通信経路の制御を容易にすることができ、レイテンシの平均値を低減することができる。
GLSシステムでは、「階層型ネットワーク構造」及び「環状型ネットワーク構造」の夫々の利点、およびこれらの相乗効果を組み合わせて享受することにより、極めて高速かつ効率的なトランザクションの処理が実現する。
【0118】
ここで、上述の実施形態におけるシグナルおよびシグナルノード(SGN)について、さらに補足する。
上述の通り、GLSシステムにおいて、シグナルは、トランザクションの改ざんを防止する重要な機能である。つまり、GLSシステムにおけるトランザクションには常にシグナルが埋め込まれており、各ノードは、これを参照することによってトランザクションの作成承認された時刻等を把握することができる。
そこで、GLSシステムは、シグナルの精度を高めるべく、例えば、以下のような方法を合わせて採用してもよい。
(1)トランザクション等にシグナルが埋め込まれた時刻が、最後に受信したシグナルよりも古い場合には、古いシグナルを破棄することができる。これにより、各トランザクションは、常に最新のシグナルを保有することができてもよい。
(2)シグナルノードを複数台設置して、各シグナルノードにシグナルを配信させる。これにより、効率的にシグナルを付与することができてもよい。
(3)各シグナルが埋め込まれた時刻を統計的に処理し(例えば、標準偏差を計算し)、それを基準にシステム内時間を決定することができてもよい。
(4)各ノードは、トランザクションに埋め込まれたシグナルが、夫々どのシグナルノードにより生成されたシグナルかを、公開鍵等を検証して、判別することができてもよい。
なお、シグナルノードは、トランザクションが処理の順番に意味を有していない場合、もしくはトランザクションにすでに別のシグナルが付与されている場合は、必ずしもシグナルをトランザクションに付与しなくてもよい。
【0119】
また例えば、トランザクションに埋め込まれたシグナルによって、作成・承認されたトランザクションを時系列順に管理することもできるので、各トランザクションに対して時間による優劣を付加することもできる。
具体的に例えば、新たなマスターノード(MN)の選出や脱退を決定する際の各マスターノード(MN)の投票において、シグナルの時刻を参照することで、整合性のある正しい投票かどうかを判別することができる。これにより、より正確にマスターノード(MN)の選出を行うことができるため、システム全体のセキュリティリスクをさらに低減することができる。
具体的には、MNの選出や脱退における、立候補、投票、開票、当選、継続、MN一覧に変化、立候補など、夫々のタイミングにおいてシグナルの時刻を検証することで、整合性のあるプロセスが実現しているか否かを検討することができる。
【0120】
また例えば、上述の実施形態では説明を省略したが、GLSシステムは、コンシステントハッシングと呼ばれる手法等を応用し、さらにネットワークトラフィックを低減することができる。以下、
図12を参照してGLSシステムにおける具体的な応用の方法について説明する。
ここで、コンシステントハッシングという手法は、多くのデータを任意のノードに分散して保有させる方法として知られている。GLSシステムにおいても、このコンシステントハッシングの手法を応用した工夫が実装され得る。
すなわち、GLSシステムにおける各種情報(例えば、トランザクションの持ち方や、どのRNがどのトランザクションの承認をするかなど)を、各ノードが分散して保有することで、システム全体の通信量などを低減することができる。
図12の例を見ると、MN-A乃至Cの夫々は、2以上(
図12の例では4つ)のブロックのハッシュ値を格納している。この2以上のブロックとは、コンシステントハッシング法の分散保有の思想に基づく、各ノードの担当する情報(以下、「担当シャード」と呼ぶ)の1つ前のブロックと、担当シャードと異なる情報のブロックである。
図12の例では、トランザクションの検証に際して、MN-Aは、ブロックAを生成し、ブロックAのハッシュ値を算出する。そして、算出されたハッシュ値の値に応じて、参照する対象(情報)を選定する。
図12の例では、MN-Bである。MN-Bは、自身が検証を担当するトランザクションBの検証を行った上で、トランザクションBを格納したブロックBを生成した後に、ブロックAまたは同一シャード内の前のブロックと連結する。すなわち、
図12の例では、単にトランザクションが検証されるだけでなく、関連する次のブロックに連結して初めて、承認され、ファイナリティが付与される。
このように、GLSシステムでは、各MNが分散して保有する担当シャードにまたがって、トランザクションが連結される。そのため、GLSシステムは、複数台のノードにより重複してトランザクションの検証を行うことができるので、単にシステム全体の通信量などを低減することができるだけでなく、任意のノードによる検証が欠損した場合であっても、システム全体を容易に復旧することができる。
なお、未検証のトランザクションが存在せず、ブロックに未確定なトランザクションが存在する場合、MNは、トランザクションを格納しないブロックを生成し、連結することで、未承認のブロックを承認することができる。
また、ブロックAのトランザクションなどの情報は、任意のSNを経由して、MN-Bへ送信される。これによりMN-Bは、トランザクションを検証することができる。
【0121】
ここで、例えば、不整合なトランザクションを意図的に承認するなどの攻撃も想定される。そこで、GLSシステムにおいては、MNと連結する他のMNなどにより整合性の検証に異常が認められた場合、例えば、承認直前における連結先候補のブロックに異常なトランザクションが含まれていた場合、それより以前の正常なブロックに連結されてもよい。これにより、異常なトランザクションにはファイナリティが付与されず、上記のような攻撃にも有効に対応することができる。
また例えば、GLSシステムは、任意のMN(例えば、MN-B)が障害により機能を停止した場合、他のMN(例えば、MN-C)が処理を代替し、ブロックの生成などを行ってもよい。
以上まとめると、コンシステントハッシングの手法を応用したGLSシステムにおいては、ノードの夫々は、一般的な分散型台帳ネットワークなどのように全ての情報を保有するのではなく、自身が担当する担当シャードおよび自身が関与する(参照対象である)情報の2つを最低限保有していれば足り、ネットワーク全体の情報量を大きく低減することが可能となる。一方で、悪意のあるトランザクションが検知された場合であっても、異常なトランザクションを含むブロックには一切のブロックが連結されないため、最終的なファイナリティを得ることはできない。これにより、コンシステントハッシングの手法を応用したGLSシステムでは、セキュリティの精度を下げることなく、ネットワーク全体の情報量を低減して各ノードの処理能力を維持しながら処理を実現することができる。
【0122】
ここで、上述の実施形態におけるGLSシステムにおけるDAGの応用について、さらに補足する。
DAGは、指向性を有しているという点でブロックチェーンと同様だが、いわゆるブロックチェーンと異なり並列に承認処理を実行することができる。これは、DAGがトランザクションをブロックに纏めることなく、トランザクション単体で承認作業を実行できるためであり、これによりTPS及びシステム全体のレイテンシの飛躍的な改善が期待できる。
一方で、DAGを単純に利用した場合、例えば、任意のノードから派生したトランザクションを受信するには、自身が保有するトランザクションの一覧を送信する必要がある。換言すれば、派生したトランザクションを同期しようとする度に、都度トランザクションの一覧を送信しなければならない。加えて、トランザクションの一覧を受信したノードは、トランザクション毎に派生したか、確認あるいは検索する必要があり、同期に時間を要する。なお、従来の分散型台帳技術では、ブロック単位で同期することにより、どこまで「同期」したかを識別する。これにより、複数のトランザクションをまとめて確認し、情報の同期速度を向上させている。一方で、GLSシステムでは、シャード毎にブロックチェーンを伸張させることで、情報の同期速度を向上させている。加えて、ブロック毎に他シャードのブロックとのハッシュポインタを追加することで、ブロック単位でのDAGを採用している。さらに、他シャードとブロックを連結する際に検証を実施することで、異なるシャード同士での相互監視が実現できる。これにより、改ざん耐性を維持しつつ、シャーディングによるスケーラビリティを享受できる。
【0123】
また例えば、上述の実施形態(特に
図7のGLSネットワーク)では説明を省略したが、GLSネットワークに含まれ得る図示せぬGWN(Gateway Node)について説明する。
GWNは、GLSシステムのネットワーク及び外部の他のサービス乃至ネットワークと接続を行い、取得する所定のデータに基づいた変換処理を実行する機能を有するノードである。
具体的に例えば、GLSシステムを金融資産取引システムとして利用する場合、金融資産の管理を行い、金融資産などの重要度が高いデータの管理、変換処理を行う際などに利用できる。
これまでの、従来の中央管理システムでは、データを取得する場合に、インターネットを経由してサーバに直接アクセスすることができるため、悪意のある攻撃者によってハッキングされる危険性があった。さらに、悪意のある攻撃者によってデータが改ざんされている危険性があった。
上記問題を解決するために、GWNにおいては、ファイアウォールによりポートを閉じる等の対策を講じることで、GLSネットワークを構成する各ノードからGWNへの一方向的な接続を遮断し、また外部からGWNへのアクセスを禁止する。一方で、GWNからGLSネットワークを構成する各ノードへの一方向の通信は許可されるようにする。
すなわち、GLSシステムは、GWNの配置場所を秘匿することが容易である。また、万が一、配置場所が発見されてシステムがダウンした(攻撃を受けた)場合であっても、GWNのIPアドレスやドメインを他のノード(例えばRTN)に接続先として登録するだけで、再設置が完了するため、容易にGLSシステムの復旧を行うことができる。
ここで、GLSシステムで送受信される各トランザクションは、整合性の検証を通過したもののみが保存されるという特徴から、GWNからGLSネットワークへの一方向の接続による情報の要求によって改ざんされておらず、かつ信ぴょう性が担保されたデータを送受信することができ、正常にデータの同期を実行することができる。
次に、GWNにおける処理について具体的に説明する。まず、GWNが、外部の他のサービス乃至ネットワークから取得する情報に基づいた処理を実行する場合、GWNから一方向的に接続し、データを取得し、読み取った内容に基づいて、GLSシステムにおけるトランザクションを作成する。作成されたトランザクションは、自身乃至MNなどによって承認され、GLSネットワークを構成する各ノードへ一方向的に送信される。これを、受信した各ノードは各接続先に送信することによって、GLSネットワーク全体での同期を実行する。次に、GWNがGLSシステム内のトランザクションを取得し、読み取った内容に基づいて処理を実行する場合、GWNから一方向的にGLSネットワークを構成する各ノードへ接続してトランザクションを取得する。そして、GWNは、取得したトランザクションに基づいて、外部の他のサービス乃至ネットワークに対して所定の処理を実行する。このように、GWNは、取得したトランザクションに基づいて、承認処理を実行し、GLSネットワークを構成する各ノードへ一方向的に接続して、承認済みトランザクションを送信する。
【0124】
また例えば、上述の実施形態では簡易的な説明にのみ留めたが、GLSシステムにおけるトランザクションの構造について、さらに詳細に説明する。GLSシステムにおけるトランザクションの構造は、取り扱いデータの異なるプロダクト毎に自由に設計されてもよいが、例えば、トランザクションの構造の一例について詳細に説明する。
GLSシステムにおけるトランザクションモデルは、UTXO(Unspent Transaction Output)ベースとアカウントベースのいずれでも開発が可能であるが、例えば、UTXOベースのアカウントモデルとしては、例えば、既存のビットコインに関するサービスにおけるトランザクション構造を採用することができる。したがって、UTXOの所有者を特定し、Txin(Transaction Input)と元となったTxOut(Transaction Output)の存在を確認した上で、金額等の整合性の検証を行う。
また例えば、トランザクションの承認作業は、例えば、以下のような手順に従いRNのデジタル署名を付与することで行われてもよい。即ち、RNは、新規の承認対象トランザクション(X)と、(X)の直前のトランザクションを比較し、双方のデータのUTXOの整合性を確認する。これによりトランザクションの整合性が検証される。
【0125】
また例えば、上述の実施形態では説明を省略したが、GLSシステムを暗号資産交換所等のシステムに応用する場合、GLSシステムにおいて複数の種類の異なるトランザクションを採用してもよい。
具体的に例えば、GLSシステムは、オーダートランザクション及びトレードトランザクションの2種類のトランザクションを採用してもよい。
例えば、オーダートランザクションは、NNによって自身の所有するTxIn(通貨ID、金額、デジタル署名、作成者の公開鍵等)が埋め込まれ、資産売買の申請書としてGLSネットワーク等に送信される。これに対して、例えば、RNは、送信されてきたオーダートランザクションを取得し、条件に合った複数のオーダートランザクションに基づき、承認という形でトレードトランザクションを生成し、NNへ送信する。NNは、送信されてきたトレードトランザクションを取得し、取得したトレードトランザクションのTxOut(送金先アドレス、通貨ID、金額等)から、再びオーダートランザクションを生成する。このフローが繰り返され、かつトランザクション同士をハッシュ値等で繋げることで、資産取引の履歴を記載した分散型台帳としてチェーンが伸長されることになる。
【0126】
また例えば、上述の実施形態では説明を省略したが、GLSシステムに関連する全て、または一部の手法(各ノードに設定される役割、特にRNの承認方式など)は、いわゆるプライベート型やコンソーシアム型の分散型台帳だけでなく、パブリック型の分散型台帳においても応用可能である。
【0127】
また例えば、
図7に示すシステム構成、
図8に示すサーバ5のハードウェア構成は、本発明の目的を達成するための例示に過ぎず、特に限定されない。
即ち例えば、本発明の一実施形態に係る情報処理システムの各サーバの夫々は、一つのハードウェア上に構成されてもよいし、その機能や処理数に応じて複数のハードウェア上に構成されてもよい、また、既存の情報処理装置上に実現されてもよい。
【0128】
また例えば、機能を有するノードも
図1等の例に限定されず任意でよい。
即ち例えば、所定の機能について、RNが備える構成となっているが、これは例示に過ぎない。例えば、RNが備える機能の少なくとも一部を他の情報処理装置(例えば、MNやSN等)が備える構成としてもよい。
さらに換言すれば、上述した一連の処理を全体として実行できる機能が情報処理システムに備えられていれば足り、この機能を実現するためにどのような機能を用いるのかは、特に
図1の例に限定されない。
【0129】
また例えば、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
また、1つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
【0130】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータ等は、専用のハードウェアに組み込まれているコンピュータであってもよい。
また、コンピュータ等は、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えばサーバの他汎用のスマートフォンやパーソナルコンピュータであってもよい。
【0131】
このようなプログラムを含む記録媒体は、ユーザにプログラムを提供するために装置本体とは別に配布される図示せぬリムーバブルメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成されてもよい。
【0132】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0133】
さらに言えば、上述の実施形態(特に
図4および
図10)に示すステップの内容は例示であり、特に限定されない。
具体的に例えば、
図4のステップSS1において、NNは、生成したトランザクションを、他の複数のNN及び複数のSNの夫々へ送信するものとしたが、他の複数のNNに送信せずSNのみにトランザクションを送信するものとしてもよい。
また例えば、
図4のステップSS2において、SNは、整合性の検証を行ったトランザクションを他の複数のSNおよび複数のMNの夫々へ送信せず、例えば、RNに直接送信してもよい。なお、このようなステップが採用された場合、
図4のステップの一部のステップは、適宜、変更もしくは省略されてもよい。
【0134】
また、本明細書において、システムの用語は、複数の装置や複数の手段等より構成される全体的な装置を意味するものとする。
【0135】
以上を換言すると、本発明が適用される情報処理装置は、次のような構成を有していれば足り、各種各様な実施の形態を取ることができる。
即ち、本発明が適用される情報処理装置は、
n(nは1以上の任意の整数値)台の他情報処理装置により構成されるネットワークの管理に用いられる情報処理装置であって、
前記n台の他情報処理装置の夫々に対して役割を設定する役割設定手段と、
設定された前記役割に基づいて、前記n台の他情報処理装置の夫々の接続先を決定する接続先決定手段と、
を備える。
これにより、セキュリティに係る分散情報処理システムにおける処理時間を短縮し、かつ実行すべき処理の大幅な増加にも耐え得る技術を提供することができる。
【0136】
また、前記n台の他情報処理装置は、所定の単位情報を単位として、前記役割設定手段により設定された前記役割に従った処理を夫々実行し、
前記役割設定手段は、前記n台の他情報処理装置の夫々に対して、
前記所定の単位情報の承認に関する役割を少なくとも含む第1の役割と、
当該所定の単位情報の生成に関する役割を少なくとも含む第2の役割と、
前記第1の役割が割り当てられた前記他情報処理装置と前記第2の役割が割り当てられた前記他情報処理装置との間でやり取りする役割を含む第3の役割と、
のうち少なくとも1つを設定することができる。
【0137】
また、前記ネットワークを構成する前記n台の他情報処理装置の夫々を、前記役割設定手段により設定された前記役割に応じた階層構造を決定する階層構造決定手段をさらに備え、
前記接続先決定手段は、前記階層構造決定手段により決定された前記階層構造を含み、前記接続先を決定することができる。
【0138】
また、前記第1の役割における承認を行う他の情報処理装置の選択および順序は、当該他の情報処理装置毎に付与された時間情報に基づいて決定することができる。
【0139】
また、前記接続先決定手段は、前記n台の情報処理装置の夫々を環状型に配置して、前記接続先を決定することができる。
【符号の説明】
【0140】
1・・・ルートノード(RN)
180・・・CPU
200・・・未承認トランザクション取得部
201・・・承認済トランザクション生成部
202・・・承認済トランザクション管理部
203・・・シグナル管理部
2・・・マスターノード(MN)
140・・・CPU
160・・・未承認トランザクション管理部
161・・・承認済トランザクション管理部
162・・・整合性検証部
163・・・シグナル管理部
164・・・RN処理部
3・・・スーパーノード(SN)
100・・・CPU
120・・・未承認トランザクション管理部
121・・・承認済トランザクション管理部
122・・・整合性検証部
123・・・シグナル管理部
4・・・ノーマルノード(NM)
60・・・CPU
80・・・トランザクション生成部
81・・・未承認トランザクション管理部
82・・・承認済トランザクション管理部
83・・・整合性検証部
84・・・シグナル管理部
5・・・トポロジーサーバ(RTN)