JP6798604B2 - 情報検証システム、情報検証装置、方法およびプログラム - Google Patents

情報検証システム、情報検証装置、方法およびプログラム Download PDF

Info

Publication number
JP6798604B2
JP6798604B2 JP2019500954A JP2019500954A JP6798604B2 JP 6798604 B2 JP6798604 B2 JP 6798604B2 JP 2019500954 A JP2019500954 A JP 2019500954A JP 2019500954 A JP2019500954 A JP 2019500954A JP 6798604 B2 JP6798604 B2 JP 6798604B2
Authority
JP
Japan
Prior art keywords
information
verification
node
block
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019500954A
Other languages
English (en)
Other versions
JPWO2018154713A1 (ja
Inventor
真樹 井ノ口
真樹 井ノ口
智彦 柳生
智彦 柳生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2018154713A1 publication Critical patent/JPWO2018154713A1/ja
Application granted granted Critical
Publication of JP6798604B2 publication Critical patent/JP6798604B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Description

本発明は、他の装置が保持する情報の信頼性を評価する情報検証システム、情報検証装置、情報検証方法および情報検証プログラムに関する。
PoW(Proof of Work)と呼ばれるコンセンサスアルゴリズムがある。PoWでは、あるデータについて、そのデータを一方向性関数により処理したときに得られる値が予め決められた規則を満たすように、当該データ内に含まれるノンスと呼ばれる領域に設定する値を探す処理(以降、単にノンスを探す処理と呼ぶ)が行われる。
このとき、一方向性関数として、例えば、ハッシュ関数を用いることができる。また、そのときの規則を、「ハッシュ値が閾値(ターゲット値)以下であること」とすることができる。一般に、ノンスを探す処理は一方向性関数の性質から効率の良く行うことができないため、当該処理を行う装置は、実際にはノンスに適当な値を設定して規則を満たすか否かを確認する作業を繰り返すこととなる。このような設定と確認の作業を多くのノードに並列して行わせ、最も早く規則を満たすノンスを見つけたノードが他のノードに情報を発信することにより、当該情報に基づいて全ノードに当該ノンスの値を含むデータの状態を確定させる(コンセンサスをとる)。
PoWを利用したシステムの例として、分散台帳システムがある。特に、ブロックと呼ばれる所定のデータ構造を備えたデータをつなげた構成のデータ群(ブロックチェーン)を台帳とし、該ブロックチェーンを複数のノードが共有して管理する分散台帳システムがある。
このような分散台帳システムでは、管理対象とする情報が発生すると、ブロックチェーンにその情報を記録したブロックを随時追加していく。このブロック追加の際に、PoWを用いて複数のノードでコンセンサスをとることにより、当該情報が信頼性の高い情報であることを示しながら複数のノード間で情報を共有させることができる。
ブロックチェーンを構成する各ブロックは、自ブロックが予め定められた規則を満たすように値が設定されるノンスと、当該ブロックチェーンにおいて自ブロックより前に位置する一つ以上のブロックに基づく情報とを格納する領域(以下、前ブロック管理領域という)を持つ。以下、ブロックチェーンにおいて自ブロックより前に位置する一つ以上のブロックをまとめて前ブロックといい、そのうち直前に位置するブロックを直前ブロックという場合がある。なお、前ブロックは、より具体的には、自ブロックより前に情報が記録されたブロックであり、直前ブロックは、自ブロックの直前に情報が記録されたブロックである。
各ブロックは、前ブロックに基づく情報として、例えば、直前ブロックに記録されている情報のハッシュ値を格納することができる。さらに、各ブロックは、自ブロックに関連づけられる何らかの情報、例えば、自ブロックにおいて管理対象とされる任意の情報を格納する領域(以下、自ブロックデータ領域という)を持つ。この場合、ノンスを探す処理では、前ブロック管理領域と自ブロックデータ領域とノンスとを含む自ブロックの領域に格納された情報が、予め所定の規則を満たすように、ノンスに設定する値が探索される。以下、ノンスを探す処理において規則が適用される領域であってノンス以外の領域を、そのブロックのデータ領域という場合がある。上記の例では、前ブロック管理領域と自ブロックデータ領域とを併せたものが、データ領域とされる。
以下、台帳分散システムにおいて、PoWを行うノードを台帳管理ノードという。台帳管理ノードは各々、ブロックチェーンのコピーを保持する。
あるノードがなんらかの情報をブロックチェーン(台帳)に記録させたい場合、そのノードが当該情報を台帳管理ノードに通知する。すると、台帳管理システムが備える台帳管理ノードによるPoWを経て、ブロックチェーンにブロックが追加される。
具体的には、台帳管理ノードは、情報が通知されると、当該情報をデータ領域(より具体的には自ブロックデータ領域)に格納したブロックを作成する。また、当該ブロックのデータ領域(より具体的には前ブロック管理領域)に、追加後に前ブロックとなる1つ以上のブロックに格納されている情報を基に生成したハッシュ値を格納する。その後、当該ブロックのハッシュ値がターゲット値以下となるノンスを探索する。
各台帳管理ノードが上記処理を同時並列的に行い、最も早くPoWを終えた台帳管理ノードが、ノンスが設定された当該ブロックを他の台帳管理ノードに通知する。PoWを終えた台帳管理ノードおよび、PoWを終えた台帳管理ノードからブロックを通知された各台帳管理ノードは、現在行っているPoWの処理を終了し、保持しているブロックチェーンの末尾に当該ブロックを追加する。
PoWを終えるタイミングは台帳管理ノードによって異なるため、多くの場合、PoWを終えたある1つの台帳管理ノードが作成したブロックが、全ての台帳管理ノードのブロックチェーンに追加される。したがって、全台帳管理ノードが同一のチェーンを持つこととなる。
また、台帳管理ノードは、上記に加えて、ブロック作成時やPoWを終えた台帳管理ノードからブロックが通知された際に、当該ブロックに含まれる情報を何らかの方法で検証することが可能である。検証した結果、問題がある場合には当該情報を含まずにブロックを作成することや、問題がある情報を含むブロックをブロックチェーンに追加しないといった処理が行われる。
このようなPoWを活用した分散台帳システムは、全ての台帳管理ノードに同じ情報を持たすことが可能となるだけでなく、台帳を改ざんすることが困難であるという特徴がある。一例として、悪意あるノードがブロックチェーン中のあるブロックの改ざんを試みた場合を考える。改ざんを検出されないようにするためには、改ざんを試みたブロック以降の全てのブロックのノンスを再設定しなければならない。上記の例でいえば、改ざんを試みたブロック以降の全てのブロックについて、ハッシュ値がターゲット値以下となるようなノンスを探索して設定しなければならない。この計算は一般に膨大な計算量を要する。また、探索している最中にも新たなブロックの追加が行われ得る。そのことから、悪意あるノードが改ざんを検出されないようにするためには、正常な台帳管理ノード群を上回る速さでノンスの再設定を行なわなければならず、悪意あるノードが仮に性能面で個々の台帳管理ノードを上回っていたとしても正規の台帳管理ノード群の数的有利さにより、現実にはそのような再設定は困難となる。
ところで、あるノードから情報を取得するにあたって、当該情報が正規のものかといった情報の信頼性を評価する方法が求められている。そのような評価方法の一例として、送信側で情報に認証情報を付加して送信し、受信側がその認証情報の正当性を検証する方法が挙げられる。しかし、この方法は、通信経路上における改ざんの有無は検証できるが、送信側が悪意あるノードであった場合、そのノードによって改ざんされた情報の正当性を評価することはできない。
情報の信頼性を評価する技術に関して、例えば、特許文献1には、複数のノード装置のうち一のノード装置の認証情報の正当性を、他の複数のノード装置が記憶している検証情報に基づいて検証する認証システムの一例が記載されている。特許文献1に記載の認証システムでは、第1のノードの認証情報の検証を依頼された第2のノードが、当該認証情報の検証を複数の第3のノードに依頼する。第3のノードの各々は、受信した認証情報と、自身で記憶している該認証情報の正当性の検証に用いる検証情報とに基づいて、該認証情報を検証し、その結果を第2のノードに返す。第2のノードは、第3のノードの各々からの検証結果と、該第3のノードの各々に対する信頼性を示す加重値とに、第1のノードを認証する。
特開2009−169861号公報
しかし、上記のような装置に対する認証情報を用いた方法は、情報を受け取る側の装置が、情報の送信元の装置の認証情報を検証する機能を持たなければならないという問題がある。
仮に、特許文献1に記載された方法のように検証処理を代行する装置を別途設けたとしても、その代行装置の正当性を検証しなければならないといった新たな問題が生じる。認証情報の検証には、予め相手側装置に対応づけられる情報を保持しておくことが多く、相手側装置が予め特定されないようなケースには対応できない。
課題は、取得先となる相手側装置に関して、事前に認証に用いる情報の対応づけなしに、取得した情報の信頼性が評価するのは困難であるという点である。
相手側装置に関する情報の対応づけを要せずに情報の信頼性を評価する方法に関し、例えば、取得したい情報が複数の装置に共有されていれば、そのうちの一つの装置から情報を取得した際に、同じ内容の情報を保持している他の複数の装置に該情報を検証させることにより、該情報が多くの装置により承認されたものであって、一定の信頼性を有する情報であることを確認できる。
しかし、情報を取得する装置がそのような多くの装置に対して、情報の検証を依頼してその結果を受信する方法では、情報を取得する装置と検証を行う装置との間の通信負荷が大きくなるという問題がある。例えば、ある第1のノード群が管理している情報を当該第1のノード群に属さない第2のノードが取得することを考える。この場合、当該第2のノードが、取得した情報が第1のノード群の多くのノードにより検証され、承認されたものであるかを少ない通信負荷で判断することは困難である。なお、ここでの通信負荷は、第1のノード群と第2のノードとの間の通信負荷を指す。
なお、上記の問題は、第2のノードが、第1のノード群の各々に検証を依頼する場合だけでなく、以下のような場合にもあてはまる。例えば、複数の装置間で情報を安全に共有する仕組みとして、上述したような台帳管理システムのブロックチェーンが利用されていたとする。その場合、台帳管理ノードにより行われるPoWを、ある情報が多くのノードに検証され、承認されたものかの判断の根拠に用いることができる。上述したとおり、台帳管理ノードはブロックの作成時やブロックの追加時に当該ブロックに含まれる情報を検証することができる。検証の結果、承認できない情報が当該ブロックから除外されたり、ブロック自体が破棄される。すなわち、悪意あるノードが、正常な台帳管理ノードに承認されないような不正な情報を含むブロックをブロックチェーンにつなげようとした場合、当該ブロックは正常な台帳管理ノードからは承認されないため、悪意あるノード(この場合、悪意ある台帳管理ノード)のみでPoWを行うことになる。すると、ネットワーク中に、正常な台帳管理ノードによるPoWを経た正常なブロックチェーンと、悪意ある台帳管理ノードのみによるPoWを経た不正なブロックを含む不正なブロックチェーンの、2通りのブロックチェーンが存在することとなる。
このとき、悪意ある台帳管理ノードの総計算能力に比べ、正常な台帳管理ノードの総計算能力が高ければ、正常な台帳管理ノードの管理する正常なブロックチェーンの方が不正なブロックチェーンに比べてブロックの追加頻度が高くなる。これは、正常な台帳管理ノード群の方が不正な台帳管理ノード群に比べてPoWに要する時間が平均して短いためである。したがって、あるノードが、それらの台帳管理ノードが管理しているブロックチェーンに含まれている情報の信頼性を評価しようとした場合、より長いブロックチェーンに含まれる情報がより多くの台帳管理ノードに承認された情報であると判断することができる。言い換えると、より長いブロックチェーンに含まれる情報はより多くの台帳管理ノードによって承認されたものであることが期待できる。
ところが、このようなブロックチェーンの特徴を利用して、情報の信頼性を評価しようとした場合、情報を受け取るノードも、ブロックチェーン全体を取得して全てのブロックのハッシュ値を確認する必要がある。しかも、信頼性の高い情報であればあるほど、当該ノードはより長いブロックチェーンを取得しなければならず、ブロックチェーン内の一部の情報の取得のために大きな通信負荷が生じる。
なお、本発明が解決する課題はこれに限られない。本明細書中では、本発明が解決する他の課題についても明らかにされる。
本発明は、上述した課題に鑑みてなされたものであり、他の装置が保持する情報の信頼性を、通信負荷を増加させずに、かつ取得先となる相手側装置に関する事前の情報の対応づけなしに、評価できる情報検証システム、情報検証装置、情報検証方法および情報検証プログラムを提供することを目的とする。
本発明による情報検証システムは、複数のノードを含む第1のノード群と、少なくとも1つのノードを含む第2のノード群とを備え、第2のノード群に含まれるノードの少なくとも1つは、第1のノード群に含まれるノードの少なくともいずれかに、情報を要求する要求信号であって、要求信号を送信するごとに生成される検証用の情報である検証情報を含む要求信号を送信する要求手段と、要求信号に対して第1のノード群に含まれるノードのいずれかから送られてきた情報である応答情報を検証する検証手段とを有し、検証手段は、応答情報に関し、要求信号で要求した情報である所望情報もしくはそのダイジェストが含まれているか否か、正しい検証情報が含まれているか否か、当該応答情報に対して一方向性関数を適用して得られる値が、第1のノード群と第2のノード群との間で共通に定められる所定の規則を満たすか否か、および、要求信号を送信してから所望情報を得るまでにかかった時間である応答時間を判定し、それらの判定結果に基づいて、所望情報の信頼性の有無または信頼度を判断することを特徴とする。
また、本発明による情報検証装置は、複数のノードを含む第1のノード群が管理する情報の信頼性を判断するための情報検証装置であって、第1のノード群に含まれるノードの少なくともいずれかに送信した、情報を要求する要求信号であって、要求信号を送信するごとに生成される検証用の情報である検証情報を含む要求信号に対して、第1のノード群に含まれるノードのいずれかから送られてきた情報である応答情報を検証する検証手段を有し、検証手段は、応答情報に関し、要求信号で要求した情報である所望情報もしくはそのダイジェストが含まれているか否か、正しい検証情報が含まれているか否か、当該応答情報に対して一方向性関数を適用して得られる値が、第1のノード群と少なくとも情報検証装置との間で共通に定められる所定の規則を満たすか否か、および、要求信号を送信してから所望情報を得るまでにかかった時間である応答時間を判定し、それらの判定結果に基づいて、所望情報の信頼性の有無または信頼度を判断することを特徴とする。
また、本発明による情報検証方法は、複数のノードを含む第1のノード群が管理する情報の信頼性を、第1のノード群とは異なる第2のノード群に含まれるノードが判断するための情報検証方法であって、第2のノード群に含まれるノードが、第1のノード群に含まれるノードの少なくともいずれかに送信した、情報を要求する要求信号であって、要求信号を送信するごとに生成される検証用の情報である検証情報を含む要求信号に対して、第1のノード群に含まれるノードのいずれから送られてきた情報である応答情報を検証し、応答情報を検証する処理で、応答情報に関し、要求信号で要求した情報である所望情報もしくはそのダイジェストが含まれているか否か、正しい検証情報が含まれているか否か、当該応答情報に対して一方向性関数を適用して得られる値が、第1のノード群と第2のノード群との間で共通に定められる所定の規則を満たすか否か、および、要求信号を送信してから所望情報を得るまでにかかった時間である応答時間を判定し、それらの判定結果に基づいて、所望情報の信頼性の有無または信頼度を判断することを特徴とする。
また、本発明による情報検証プログラムは、複数のノードを含む第1のノード群が管理する情報の信頼性を、第1のノード群とは異なる第2のノード群に含まれるノードが判断するための情報検証プログラムであって、第2のノード群に含まれるノードが備えるコンピュータに、第1のノード群に含まれるノードの少なくともいずれかに送信した、情報を要求する要求信号であって、要求信号を送信するごとに生成される検証用の情報である検証情報を含む要求信号に対して、第1のノード群に含まれるノードのいずれかから送られてきた情報である応答情報を検証する検証処理を実行させ、検証処理で、応答情報に関し、要求信号で要求した情報である所望情報もしくはそのダイジェストが含まれているか否か、正しい検証情報が含まれているか否か、当該応答情報に対して一方向性関数を適用して得られる値が、第1のノード群と第2のノード群との間で共通に定められる所定の規則を満たすか否か、および、要求信号を送信してから所望情報を得るまでにかかった時間である応答時間を判定させ、それらの判定結果に基づいて、所望情報の信頼性の有無または信頼度を判断させることを特徴とする。
本発明によれば、他の装置が保持する情報の信頼性を、通信負荷を増加させずに、かつ取得先となる相手側装置に関する事前の情報の対応づけなしに、評価できる。
第1の実施形態の情報検証システムの構成の概要を示す説明図である。 第1の実施形態の情報取得ノード2の構成例を示すブロック図である。 ブロックのデータ構造を示す説明図である。 第1の実施形態の検証ノード1の構成例を示すブロック図である。 第1の実施形態の情報検証システムの全体の動作例を示すフローチャートである。 第1の実施形態の情報取得ノード2の動作例を示すフローチャートである。 第1の実施形態のGW検証ノード1’の動作例を示すフローチャートである。 第1の実施形態の他の検証ノード1の動作例を示すフローチャートである。 第2の実施形態の情報検証システムの構成の概要を示す説明図である。 第2の実施形態の情報取得ノード2の構成例を示すブロック図である。 情報取得ノードグループ20が管理するブロックチェーンと検証情報の関係を示す説明図である。 第2の実施形態のGW情報取得ノード2’の動作例を示すフローチャートである。 第2の実施形態の他の情報取得ノード2の動作例を示すフローチャートである。 本発明の各実施形態にかかるコンピュータの構成例を示す概略ブロック図である。 本発明の情報検証システムの概要を示すブロック図である。 本発明の情報検証システムの他の例を示すブロック図である。
以下、本発明の実施形態について図面を参照して説明する。なお、以下の説明における各実施形態は例示であり、単独で実施することもできるし、適宜組み合わせて実施することもできる。
[第1の実施形態]
図1は、第1の実施形態の情報検証システムの構成の概要を示す説明図である。本実施形態の情報検証システム100は、複数の検証ノード1を含む検証ノードグループ10と、少なくとも1つの情報取得ノード2とを備える。本実施形態では、検証ノードグループ10は、情報取得ノード2が所望する情報を共有で管理しているノードからなるグループであるとする。なお、検証ノードグループ10を、当該グループで管理対象とされる情報の正当性を検証する機能を少なくとも提供するノードからなるグループと捉えることも可能である。
本例において、検証ノード1の各々と情報取得ノード2はそれぞれ通信手段を有しており、通信ネットワークを介して相互に通信可能に接続されている。また、検証ノードグループ10内では、検証ノード1の各々が、互いに、直接または他の検証ノード1を介して間接的に通信可能に接続されている。なお、情報取得ノード2は、少なくとも1つの検証ノード1と通信可能であればよい。なお、図1はあくまで例示であり、検証ノードや情報取得ノードの数はこれに限定されない。また、以下では、情報取得ノード2から情報取得要求を受け付けた検証ノード1を、ゲートウェイ(GW)検証ノード1’と呼ぶ場合がある。
本実施形態では、検証ノードグループ10内で検証ノード1が共有して管理している情報を情報取得ノード2が取得し、該情報取得ノード2において、取得した情報が信頼性評価に関する所定の条件を満たした情報であるか否かを判断する方法について説明する。以下では、情報取得ノード2が検証ノード1に対して要求する情報を所望情報と呼ぶ。また、信頼性評価に関する所定の条件を満たした情報のことを高信頼情報と呼ぶ。当該所定の条件は、例えば、一定数以上の検証ノード1に承認されたことが示されるような条件であってもよい。
図2は、情報取得ノード2の構成例を示すブロック図である。図2に示すように、情報取得ノード2は、情報要求部201と、検証情報生成部202と、情報検証部203と、情報記憶部204とを含んでいてもよい。
情報要求部201は、検証ノード1のいずれかに情報を要求するとともに、検証ノード1のいずれかから、要求した情報(所望情報)を含むブロックを受信する。
図3は、ブロックのデータ構造を示す説明図である。本実施形態では、図3に示されるようなノンスと呼ばれる領域と任意のデータを格納する領域(データ領域)とを少なくとも含むデータ構造を「ブロック」と呼ぶ。ブロックの生成方法は後述するが、ブロックのデータ領域には所望情報を含ませることができる。
情報要求部201は、より具体的に、所望情報を検証するための情報である検証情報と、所望情報を特定可能な情報(所望情報の識別子など)とを少なくとも含む情報取得要求信号を、検証ノード1のいずれかに送信する。また、情報要求部201は、情報取得要求信号を送信した時刻を示す送信時刻情報と、情報取得要求信号に含ませた検証情報とを情報記憶部204に記憶させる。また、情報要求部201は、検証ノード1のいずれかから所望情報を含むブロックを受信すると、該ブロックを情報検証部203に通知する。
検証情報は、より具体的には、検証ノード1から送られるブロックにおけるノンスの抽選作業が情報取得要求を送信して以降に行われたことを確認するための情報である。
検証情報生成部202は、情報取得要求信号に含ませる検証情報を生成する。検証情報生成部202は、検証情報として、情報取得要求信号ごとに異なり、かつその変化が不規則である情報を生成することが好ましい。検証情報生成部202は、例えば、情報取得ノード2内の時刻をシードとして生成した乱数に基づいて検証情報を生成してもよい。なお、検証情報は乱数に基づいて生成される情報に限定されない。例えば、後述する第2の実施形態において、検証情報の他の例が示される。
情報検証部203は、検証ノード1から受信したブロックに含まれる所望情報の検証を行う。情報検証部203は、受信したブロックおよび情報記憶部204に記憶された情報に基づいて、所望情報の検証を行う。情報検証部203は、より具体的に、以下に示す判定条件に基づいて、所望情報の検証を行う。
・(A1)ブロック内に、情報取得要求で指定した所望情報が存在していること
・(A2)ブロック内に、情報記憶部204に記憶されている検証情報と一致する情報が含まれていること
・(A3)ブロックが、検証ノードグループ10との間で共通に定められている所定の規則を満たすこと
・(A4)ブロックの受信が、情報取得要求信号を送信してから一定時間内に行われていること
情報検証部203は、上記の項目をそれぞれ確認し、これらの全ての項目が満たされている場合に受信した所望情報が高信頼情報であると判断する。なお、上記の各項目については後述する。
情報記憶部204は、各種情報を記憶する。例えば、情報記憶部204は、情報取得要求信号の内容と、送信時刻情報と、検証情報とを記憶する。情報記憶部204は、例えば、所望情報を特定可能な情報と対応づけて、送信時刻情報と、検証情報とを記憶してもよい。
また、図4は、検証ノード1の構成例を示すブロック図である。図4に示すように、検証ノード1は、外部向け情報共有部101と、検証ノード間情報共有部102と、ブロック生成部103と、抽選実行部104と、情報検証部105と、情報記憶部106とを含んでいてもよい。なお、機能部間の関係を実線で示しているが、これは例示であり、これに限定されない。
外部向け情報共有部101は、情報取得ノード2との情報交換を担う。より具体的には、外部向け情報共有部101は、情報取得ノード2からの情報取得要求の受け付けを行う。
外部向け情報共有部101は、情報取得要求を受け付けると、当該要求の内容をグループ内の検証ノード間で共有させるために、当該要求の内容がわかる情報を、検証ノード間情報共有部102に通知する。以下、簡単のため、検証ノード間で共有させる当該情報のことも、情報取得要求という。なお、情報取得ノード2から受信した情報取得要求をそのまま検証ノード1間で共有してもよいし、情報取得ノード2から受信した情報取得要求の一部の情報を変更、削除等したものや新たな情報を付加したものを検証ノード間で共有することも可能である。
また、外部向け情報共有部101は、検証ノード間情報共有部102より応答ブロックを受信すると、当該応答ブロックを情報取得ノード2に送信する。ここで、応答ブロックとは、情報取得要求に対応したブロックであり、ノンスに適切な値が設定され、かつ情報検証部105による検証用の条件を満たしたブロックをいう。
検証ノード間情報共有部102は、自ノードが属する検証ノードグループ10内の検証ノード間での情報交換を担う。より具体的には、検証ノード間情報共有部102は、外部向け情報共有部101より通知された情報取得要求や、後述する抽選実行部104より通知された抽選完了済みのブロックや、他の検証ノードから受信したこれら情報を、適宜他の検証ノードに送信する。
なお、検証ノード間情報共有部102は、これらの情報を適宜、他の検証ノードに転送することによって、可能な限りグループ内の全ての検証ノードでこれらの情報を共有する。具体的な情報共有のアルゴリズムは多数存在するが、単純な方法としてはフラッディングにより情報を共有することができる。例えば、ある検証ノード1−Aの検証ノード間情報共有部102は、他の検証ノード1−Bから信号を受信すると、その信号がそれまで転送したことがない信号であれば、隣接する検証ノード1−Cに転送する。これを検証ノード1の各々が行うことで、全ての検証ノード1に当該信号を通知することが可能となる。なお、情報取得要求や応答ブロックといった情報の共有は、必ずしも検証ノードグループ10内の全ての検証ノードを対象としなくてもよい。高信頼度を証明するという観点では全ての検証ノードに転送されることが好ましいが、より多くの検証ノード1に転送される方法であれば、転送方法は特に問わない。
このとき、転送先となる検証ノード1の情報は、例えば、次のような方法により取得可能である。すなわち、所望情報を取得している全ての検証ノード1の情報を、特定のサーバなどで公開しておき、情報取得ノード2や検証ノード1の各々は、そのサーバにアクセスすることにより必要な情報を得てもよい。また、例えば、情報取得ノード2や検証ノード1の各々に、予め設定情報として、情報取得ノード2やGW検証ノード、他の検証ノード1のアドレス情報といった、情報検証システム100のトポロジ情報を与えておいてもよい。また、検証ノード1間は、既存のP2P(Peer to Peer)ネットワークで使用されている技術と同様の方法で認識することも可能である。
典型的には、このような転送先ノードの情報取得は、検証ノード1の各々に、検証ノードグループ10内の他の全ての検証ノード1の情報(検証ノードリスト)を持たせることで実現可能である。この場合には、ある検証ノードが新たに検証ノードグループに加わる場合には、既にグループに加わっている検証ノードからリストを取得するとともに、当該リストに記載されている全ての検証ノードへと自ノードの情報を送信し、リストに加えてもらうことで、検証ノードリストを管理すればよい。また、検証ノードの各々は、必ずしも他の全ての検証ノードの情報を保持していなくてもよい。単純な例としては、各検証ノードは、転送経路における次ノードの情報を保持していればよい。また、他の例としては、各検証ノードは、隣接する1つ以上の検証ノードの情報(アドレス)を保持していればよい。また、上記の方法と同様の方法で、情報取得ノード2は、要求先の検証ノードの情報を取得することができる。
また、検証ノード間情報共有部102は、情報取得ノード2または他の検証ノード1から送信される情報取得要求に対して、自ノード内での処理を開始させる。より具体的には、検証ノード間情報共有部102は、外部向け情報共有部101を介して情報取得ノード2から、または他の検証ノード1から情報取得要求を受信すると、ブロック生成部103に当該要求を通知して、当該要求に対応するブロックを生成させる。また、検証ノード間情報共有部102は、要求内容を、情報記憶部106に格納する。
詳細は動作の説明で述べるが、ここで通知された情報取得要求を基に、ブロック生成部103によってブロックが生成され、抽選実行部104によってノンスを探す作業が、検証ノード1の各々において同時並列的に行われる。また、情報記憶部106に格納された情報取得要求の内容は、情報検証部105においてブロックの検証に用いられる。
さらに、検証ノード間情報共有部102は、他の検証ノード1から、情報取得要求に対応するブロックであってノンスが設定済みのブロック(以下、応答候補ブロックという)を受信すると、当該応答候補ブロックを情報検証部105で検証させ、承認するか拒絶するかの判断をさせる。検証ノード間情報共有部102は、承認すると判断された場合、抽選実行部104に抽選終了を通知する。一方、検証ノード間情報共有部102は、拒絶すると判断された場合、当該応答候補ブロックを破棄する。また、その場合において、検証ノード間情報共有部102は、当該応答候補ブロックを他の検証ノード1に転送しないようにしてもよい。情報検証部105で承認された応答候補ブロックは自ノードにおいて正式な応答ブロックとされる。
また、検証ノード間情報共有部102は、他の検証ノード1から受信した応答候補ブロックが情報検証部105で承認されて応答ブロックとなった場合、自ノードがGW検証ノード1’であれば、外部向け情報共有部101に当該応答ブロックを通知する。当該応答ブロックは、その後、外部向け情報共有部101により、情報取得ノード2に送信される。
なお、検証ノード間情報共有部102は、他の検証ノード1から受信した応答候補ブロックに限らず、自ノードで生成され、ノンスが設定された応答候補ブロックが情報検証部105で承認されて応答ブロックとなった場合にも同様の処理を行う。なお、この場合において、検証ノード間情報共有部102は、当該応答候補ブロックに対する情報検証部105による検証処理を省略してもよい。
ブロック生成部103は、検証ノード間情報共有部102から通知される情報取得要求に基づいて、当該要求に対応するブロックを生成する。より具体的には、ブロック生成部103は、情報取得要求の内容と、情報記憶部106に格納されている所望情報とを少なくともデータ領域に含むブロックを生成する。また、ブロック生成部103は、生成したブロックを、検証ノード間情報共有部102を介して抽選実行部104に通知する。なお、ブロック生成部103が直接、抽選実行部104に通知してもよい。
ブロック生成部103が、このようにブロックを生成することにより、検証ノード1の各々が所持するブロックには、情報取得要求の内容と、所望情報とが必ず含まれることになる。
抽選実行部104は、ブロック生成部103で生成された、情報取得要求に対応するブロックに、適切にノンスを設定する作業を行う。ここでノンスは、ブロックが予め決められた規則を満たすように設定される。
例えば、ブロック全体をある決められたハッシュ関数、例えばSHA−256(Secure Hash Algorithm 256-bit)などで処理した値が予め決められた範囲内となるようなノンスを設定することができる。ここで、ブロックのデータ領域に変更が加えられた場合、ブロックのハッシュ値が大きく変化することに注意されたい。すなわち、一度ブロックにノンスが設定されると、以降悪意あるノードがデータ領域の改ざんを検出されないように行うためには当該ブロックのノンスを再設定する必要がある。このことが、ブロック内のデータの改ざんされ難さに寄与している。
また、ブロック全体をハッシュ関数で処理した値が予め決められた範囲内となるようなノンスを探す作業は、一般に効率的に行うことができないため、ノンスの値を変えながら実際にハッシュ値を計算して規則を満たしているか否かを確認する作業が繰り返される。この処理は、計算処理を伴う抽選とみなすことができる。本実施形態では、抽選実行部104によるこのようなノンスを探す作業を、抽選作業を呼ぶ。
抽選実行部104におけるノンスの設定方法は、計算処理を伴う抽選としての特徴を有する方法であれば、上述した例に限られない。つまり、規則を満たすノンスを効率的に見つけることが困難であり膨大な計算量を要し(典型的には総当たりと同程度の効率でしか見つけられない)、かつ、あるノンスを設定したブロックが規則を満たしていることを少ない計算量で確認できる(典型的には一定時間内に確認できる)方法であればよい。例えば、ブロックをハッシュ関数以外の一方向性関数で処理することや、ある一方向性関数で処理した値に予め決められたビット列が含まれることとすることもできる。なお、規則の決め方によって、当該規則を満たすようなノンスの値を発見することができる確率(抽選に成功する確率)を変えることができる。すると、その結果として、規則を満たすノンスを探す作業時間を変えることができる。
同一内容のブロックに対して抽選が成功するまでの時間は、ノンスを探す作業を並行して行うノード数と当該規則に依存して決まる。したがって、抽選に要した時間からその作業を行っているノード数を推測できる。上述した情報取得ノード2における所望情報の検証は、このことを利用して、取得した所望情報が高信頼情報であることを判断している(上記の判定条件の項目(A4)参照)。
また、抽選実行部104は、予め決められた規則を満たすノンスの値を発見すると、ブロック生成部103によって生成されたブロックに当該ノンスの値を設定し、応答候補ブロックとして検証ノード間情報共有部102に通知する。そして、抽選作業を終了する。また、抽選実行部104は、自身がノンスを発見していない場合でも、検証ノード間情報共有部102から抽選終了(または応答ブロックの受領)が通知された場合には、抽選作業を終了する。
情報検証部105は、情報記憶部106に記憶された情報に基づいて、検証ノード間情報共有部102から通知されたブロック(応答候補ブロック)内の情報の検証を行う。情報検証部105は、より具体的には、以下に示す判定条件に基づいて、応答候補ブロックの検証を行う。
・(B1)ブロック内の所望情報が自ノードの情報記憶部106内に格納されている所望情報と一致すること
・(B2)ブロック内に含まれる情報取得要求が自ノードの情報記憶部106に格納されている情報と一致すること
・(B3)ブロック内に情報取得要求に対応する所望情報が格納されていること
・(B4)ブロックに、決められた規則を満たすノンスが設定されていること
情報検証部105は、上記の項目(B1)〜(B4)をそれぞれ確認し、これら全ての項目が満たされている場合には当該ブロックを承認し、一つ以上満たされていない場合には当該ブロックの承認を拒絶する。情報検証部105による検証結果は、検証ノード間情報共有部102に通知される。
情報記憶部106は、各種情報を記憶する。例えば、情報記憶部106は、情報取得ノード2からの要求対象とされる情報(所望情報)と、情報取得要求内容とを記憶する。
なお、所望情報は全ての検証ノードが共通して保持しているものとする。情報記憶部106に記憶された所望情報は、ブロック生成部103におけるブロック生成処理や情報検証部105におけるブロック検証処理で参照される。なお、所望情報の格納タイミングは特に問わない。また、情報取得要求内容は、検証ノード間情報共有部102によって情報記憶部106に記憶され、情報検証部105のブロック検証処理で参照される。
以下、情報検証部203における所望情報の検証処理について、検証ノード1の動作との関連を示しつつ補足する。
情報検証部203は、上記の項目(A1)に示したように、受信したブロック内に、情報取得要求で指定した所望情報が存在していることを確認する。これは、例えば、受信したブロックに、情報記憶部204に格納されている情報取得要求で指定されている所望情報を特定する情報により特定される所望情報が含まれているか否かを判定することにより行ってもよい。また、例えば、所望情報自体に、当該所望情報の識別子といった所望情報を特定する情報が含まれている場合には、受信したブロックの所望情報が格納される領域に、情報記憶部204に格納されている情報取得要求で指定されている識別子と同じ識別子を有する情報が含まれているか否かを判定することにより行ってもよい。なお、情報検証部105は、上記の項目(B3)で同様の判定を行う。この場合、「受信したブロック」を「応答候補ブロック」と読み替え、「情報記憶部204」を「情報記憶部106」と読み替えればよい。
また、情報検証部203は、上記の項目(A2)に示したように、受信したブロック内の検証情報と情報記憶部204内の検証情報とが一致することを確認する。上述したように、検証情報生成部202で生成された検証情報は、情報要求部201を介して情報取得要求の一部として検証ノード1(より具体的にはGW検証ノード1’)に送られると同時に、情報記憶部204に格納される。そして、GW検証ノード1’に送信された情報取得要求の内容は、GW検証ノード1’が生成したブロックに所望情報とともに格納され、検証ノード1間で共有される。その後、いずれかの検証ノード1が該ブロックに対してノンスの抽選に成功し、ブロックの検証処理を経て承認を得ると、当該ブロックが応答ブロックとして情報取得ノード2に通知される。したがって、通常、情報取得ノード2が受信するブロックに含まれる検証情報と、情報記憶部204に格納されている検証情報とは一致することになる。この情報が一致しない場合、検証ノード1群による抽選作業が情報取得要求を送信して以降に行われたことが保証されなくなる。このため、そのような場合には、受信ブロック内に格納された所望情報を高信頼情報であるとの判断はできない。
また、情報検証部203は、上記の項目(A3)に示したように、受信したブロックが、検証ノードグループ10との間で共通に定められている所定の規則を満たすことを確認する。ここで、所定の規則は、より具体的には、検証ノード1の抽選実行部104において抽選成功と判断される規則である。すなわち、上記の項目(A3)として、上記の項目(B4)と同じ確認を行えばよい。より具体的には、情報検証部203は、受信したブロックに対して一方向性関数を適用して得られた値が、決められた規則を満たしていることを確認すればよい。ブロック内のどの領域のデータに対して一方向性関数を適用するかは予め検証ノードグループ10と情報取得ノード2との間で定められているものとするが、少なくとも所望情報が格納される領域と検証情報が格納される領域とノンスとが含まれるものとする。
また、情報検証部203は、上記の項目(A4)に示したように、ブロックの受信が情報取得要求信号を送信してから一定時間内に行われているか否かを確認する。既に説明したように、情報要求部201は、情報記憶部204に情報取得要求の送信時刻情報を格納する。このため、情報検証部203は、ブロックの受信時に当該送信時刻情報を参照し、現在時刻すなわちブロックの受信時刻との差を求めることで、ブロックの受信が情報取得要求信号を送信してから一定時間内に行われていることが確認可能である。
上記の一定時間は、所望情報の性質に基づいて決めることも可能である。例えば、所望情報が改ざんされた場合の影響度が大きいほど、上記の一定時間を短く設定してもよい。これにより、より短い時間でブロックが得られた場合のみ高信頼情報と判断できる。ここで、所望情報が改ざんされた場合の影響度は、情報取得ノード2のユーザにより設定されてもよいし、所望情報の所有者や所望情報を利用するアプリケーションに基づいて決定することも可能である。
また、上記の影響度を、より具体的に所望情報の属性情報と言い換えてもよい。所望情報の属性情報の例としては、以下のものが挙げられる。
・情報のサイズ
・情報の作成日時(新しいほど重要度が高い等)
・ユーザが情報の内容ごとに指定する属性値(キーワード等)
・ユーザが情報のカテゴリごとに指定する属性値(分類コード等)
・情報の作成者、所有者または要求者の情報
・要求するアプリケーションごとに指定される属性値
・データであるか制御情報であるか(データプレーン情報であるか制御プレーン情報であるか等)
なお、情報の作成者、所有者または要求者の情報に関して、例えば、別途ユーザ情報のデータベースを用意し、ユーザの地位(優先度や役職等)が高いほど取得対象とされる情報の重要度が高いとしてもよい。また、ユーザのアクセス制御情報を利用して、より多くの情報にアクセス可能なユーザほど取得対象とされる情報の重要度が高いとしてもよい。
本実施形態において、GW検証ノード1’で生成されたブロックは、各々の検証ノード1の抽選実行部104により、予め決められた規則を満たすようなノンスを探す処理が行われる。すなわち、当該ブロックのノンスを探す処理が、当該ブロックに含まれる情報を承認する複数の検証ノード1によって同時並行的に行われる。そのため、多くの検証ノード1が承認する情報ほど早く抽選が終わることが期待される。そのことから、検証ノード1に情報取得要求を送信してから、より短い時間で得られたブロックに含まれる所望情報ほど多くの検証ノード1群に検証されたものであることが期待できる。
なお、上述した説明では、情報検証部203による所望情報の検証処理を、高信頼情報であるか否かの2状態を返す判断としているが、他の方法も考えられる。例えば、情報検証部203は、他の条件が全て満たされている場合において、項目(A4)に代えて、情報取得要求を送信してからブロックが得られるまでにかかった時間を、得られた所望情報の信頼度とみなし、その時間が短いほど当該情報が信頼できると判定することも可能である。その場合は、情報検証部203は、得られた所望情報とともに信頼度を出力してもよい。
本実施形態において、情報要求部201、検証情報生成部202および情報検証部203は、例えば、情報取得ノード2として動作するコンピュータが備えるCPU等のプログラムに従って動作する情報処理装置により実現される。また、情報記憶部204は、例えば、情報取得ノード2として動作するコンピュータが備える記憶装置により実現される。また、外部向け情報共有部101、検証ノード間情報共有部102、ブロック生成部103、抽選実行部104および情報検証部105は、例えば、検証ノード1として動作するコンピュータが備えるCPU等のプログラムに従って動作する情報処理装置により実現される。また、情報記憶部106は、例えば、検証ノード1として動作するコンピュータが備える記憶装置により実現される。
次に、図5〜図8を参照して、本実施形態の動作を説明する。
まず、図5を参照して、本実施形態の情報検証システム全体の動作を説明する。図5は、本実施形態の情報検証システム100の全体の動作の一例を示すシーケンス図である。図5に示す例は、検証ノード1−AがGW検証ノード1’として動作し、検証ノード1−Bが抽選を成功させた場合の例である。
図5に示す例では、まず情報取得ノード2が、情報取得要求M11をGW検証ノード1’とされる検証ノード1−Aに送信する(ステップS11)。検証ノード1−Aは、情報取得要求M11を他の検証ノード1に転送し、検証ノードグループ10内で共有させる(ステップS12)。
検証ノード1の各々は、情報取得要求M11を受信すると、情報取得要求M11の内容と、要求された所望情報とを含むブロックを作成する(ステップS13)。
次いで、検証ノード1の各々は、作成したブロックに対してノンスを探す処理(抽選作業)を行う(ステップS14)。本例では、検証ノード1−Bが抽選に成功したとする(ステップS15)。検証ノード1−Bは、抽選作業を終了し、抽選に成功したブロックM12すなわちステップS13で作成された後、ノンスが適切に設定されたブロックM12(応答候補ブロック)を他の検証ノード1に転送し、検証ノードグループ10内で共有させる(ステップS16)。
ステップS16で、検証ノード1の各々は、他の検証ノード1からブロックM12を受信すると、ブロックの検証を行った上で承認する場合には、抽選作業を終了する。
GW検証ノード1’である検証ノード1−Aは、抽選作業を終了すると、検証済みのブロックM12を情報取得ノード2に送信する(ステップS17)。
情報取得ノード2は、ブロックM12を受信すると、ブロックM12に含まれる所望情報が高信頼情報であるかを検証する(ステップS18)。
次に、各ノードの動作をより詳細に説明する。図6は、情報取得ノード2の動作の一例を示すフローチャートである。本実施形態の情報検証動作は、情報取得ノード2が、検証ノードグループ10に属する検証ノード1のいずれかに情報取得要求を送信することで開始される。
情報取得ノード2は、まず情報取得要求送信処理(ステップS101)を行う。この処理において、まず、検証情報生成部202が、検証情報を生成する。次いで、情報要求部201が、生成された検証情報と、所望情報を特定可能な情報とを含む情報取得要求M11を生成し、検証ノードグループ10に含まれるいずれかの検証ノード1に送信する。また、情報要求部201は、この時、情報取得要求M11を送信した時刻を示す送信時刻情報と、情報取得要求M11に含ませた検証情報とを情報記憶部204に記憶させる。
その後、情報取得ノード2は応答待ち処理(ステップS102)を行う。この処理で、情報取得ノード2は、検証ノードグループ10に含まれるいずれかの検証ノード1から、ステップS101で送信した情報取得要求の応答とされるブロックM12を受信するまで待つ。
ブロックM12を受信すると、情報取得ノード2の情報検証部203が、所望情報の検証処理(ステップS103)を行う。この処理において、情報検証部203は、受信したブロックM12に含まれる所望情報が高信頼情報であるかの検証を行い、結果を出力する。検証方法の詳細は上述したとおりである。
次に、検証ノード1の動作を説明する。図7は、情報取得ノード2から情報取得要求を受信するGW検証ノード1’の動作の一例を示すフローチャートである。また、図8は、GW検証ノード1’以外の検証ノード1の動作の一例を示すフローチャートである。図8中のステップS301〜ステップS306の動作は、図7中のステップS202〜ステップS207の動作と同様であるため、簡単な説明にとどめる。
図7に示すように、GW検証ノード1’は、まず情報取得要求受信処理(ステップS201)を行う。この処理では、外部向け情報共有部101が、情報取得ノード2から送信される情報取得要求M11を受信する。また、外部向け情報共有部101は、受信した情報取得要求M11を検証ノード間情報共有部102に通知する。
情報取得要求M11の通知を受けると、検証ノード間情報共有部102が、情報取得要求共有処理(ステップS202)を行う。この処理では、検証ノード間情報共有部102が、情報取得要求M11を他の検証ノード1に転送するとともに、当該情報取得要求M11を情報記憶部106に記憶させる。また、検証ノード間情報共有部102は、情報取得要求M11を受信した旨を、ブロック生成部103に通知する。
情報取得要求M11の受信が通知されると、ブロック生成部103は、ブロック生成処理(ステップS203)を行う。この処理では、ブロック生成部103が、通知された情報取得要求M11の内容を基にブロックを生成する。また、ブロック生成部103は、生成されたブロックを、抽選実行部104に通知する。
ブロックが通知された抽選実行部104は、抽選実行処理(ステップS204)を行う。この処理では、抽選実行部104が、予め決められた規則を満たすノンスを探す作業(抽選作業)を行う。抽選実行部104は、決められた規則を満たすノンスを発見した場合、すなわち抽選が成功した場合には(ステップS205のYes)、抽選作業を終了し、ブロックの転送処理(ステップS206)に移る。
ステップS206では、検証ノード間情報共有部102が、ノンスが設定されたブロックM12を検証ノードグループ10内で共有する処理が行われる。なお、情報共有の方法は、ステップS202と同様でよい。この処理によってノンスが設定済みのブロックM12が他の検証ノード1に通知されると、当該ブロックM12を受信した検証ノードはステップS207に移る。
ステップS207では、情報検証部105が、受信したブロックM12を検証する検証処理を行う。そして、当該ブロックM12が承認された場合には、他ノードが抽選を成功したものと判断し、抽選作業を終える(ステップS207のYes)。このとき、自ノードがGW検証ノード1’であれば、要求元への応答処理(ステップS208)に移る。
ステップS208では、外部向け情報共有部101が、自ノードで抽選を終えたブロックM12または他のノードから通知され自ノードが承認したブロックM12を、情報取得ノード2に送信する。このブロックM12は、所望情報と情報取得要求がデータ領域に格納され、かつ、決められた規則を満たすようなノンスが設定されたブロックである。
なお、抽選実行部104は、決められた規則を満たすノンスを発見するまで、または他のノードが抽選を成功するまで、抽選作業を繰り返し行う。より具体的には、抽選実行部104は、設定したノンスが規則を満たさない場合すなわち抽選が失敗した場合(ステップS205のNo)であって、他のノードが抽選を成功してない場合(ステップS207のNo)には、ステップS204に戻り、抽選実行処理を再度行う。
なお、GW検証ノード1’以外の検証ノード1では、GW検証ノード1’による情報取得要求共有処理で転送された情報取得要求M11を直接または間接的に受信することにより処理が開始される。図8に示すように、GW検証ノード1’以外の検証ノード1は、情報取得要求M11を受信すると、情報取得要求共有処理(ステップS301)〜抽選実行処理(ステップS303)を行う。なお、これらの処理は上述したステップS202〜ステップS204と同様である。これにより、全ての検証ノード1で情報取得要求M11が共有されて、GW検証ノード1’以外の検証ノード1の各々において、同様のブロックが生成され、抽選作業が行われる。
ここで、GW検証ノード1’以外の検証ノード1が、抽選実行処理中に、決められた規則を満たすノンスを発見した場合には(ステップS304のYes)、抽選作業を終了し、ブロックの転送処理(ステップS305)に移る。
また、GW検証ノード1’以外の検証ノード1が、抽選が成功していない状態で他の検証ノード1からブロックM12を受信した場合には、受信したブロックM12を検証する検証処理を行い、当該ブロックM12が承認された場合には、他ノードが抽選を成功したものと判断し、抽選作業を終える(ステップS306のYes)。このようにして、GW検証ノード1’以外の検証ノード1は、決められた規則を満たすノンスを発見するまで、または他のノードが抽選を成功するまで、抽選作業を繰り返し行う。
以上のように、本実施形態では、ノンスを探す作業が、多くの検証ノード1が並行して行わない限り短時間で終えることが困難であるという性質を利用して、取得した情報の信頼性を評価する。より具体的には、情報取得ノード2が、情報取得要求を送ってから、抽選が実行され適切にノンスが設定されたブロックが返されるまでの時間に基づいて、取得した情報が多くの検証ノードに承認された情報であるか否かを判断する。また、情報取得要求に対する応答として送信されるブロックに、情報取得ノード2が生成した検証情報を含ませることで、当該ブロックの抽選が情報取得要求を情報取得ノード2が送信して以降に行われたことを確認可能とする。このような特徴的要素を有することにより、情報取得ノード2において、取得先となる相手側装置に関して、事前に認証に用いる情報の対応づけなしに、取得される情報の信頼性を評価することができる。
仮に、所望情報を管理している検証ノードグループ10の中に、悪意ある検証ノード1が含まれていた場合、悪意ある一部の検証ノード1が改ざんした情報を情報取得ノード2に通知するためには、悪意ある一部の検証ノード1だけで抽選を成功させる必要がある。悪意ある一部の検証ノード1の総計算量が小さければ、それだけ応答までにかかる時間が長くなることから、応答までにかかる時間に基づいて信頼性を評価することで、悪意ある一部の検証ノード1によって改ざんされた情報を高信頼情報として受領するのを防止することが可能となる。
ここで、悪意ある一部の検証ノード1が偶然短時間で抽選を成功させる可能性がある。この場合、これまでに説明した第1の実施形態では、悪意ある検証ノード1にしか承認されていない情報が情報取得ノード2に通知されることがあり得る。
なお、このような悪意ある検証ノード1が含まれている可能性を考慮して、さらに、上述した第1の実施形態を次のように拡張してもよい。すなわち、情報取得ノード2が、情報取得要求を送信し、応答としてブロックを受信する一連の処理を所定の回数、繰り返し行う。その上で、情報取得ノード2が、毎回同じ結果、すなわち一定の時間以内でかつ同程度の応答時間でブロックが得られることを、高信頼情報であるかの判断基準に加えてもよい。このようにすることで、悪意ある検証ノード1が改ざんした所望情報を情報取得ノード2に高信頼情報として受領させるためには、悪意ある検証ノード1のみによる抽選を、毎回、短時間で終える必要がある。したがって、繰り返し回数を多くするほど、より判断の精度を向上させることが可能である。この繰り返し回数は、取得する情報の種別や重要度などの性質に基づいて決めることができる。すなわち、より正確であることが求められる情報ほど繰り返し回数を増やすようにすることができる。
[第1の実施形態の変形例]
第1の実施形態には上記以外にも、様々な変形例が存在する。ここでその一部について説明する。
[変形例1]
第1の実施形態で述べた検証ノード1の構成および動作は、PoWを活用してブロックチェーンを管理する分散台帳システムの台帳管理ノードと共通する部分が多く、当該台帳管理ノードを検証ノード1とすることができる。このとき、検証ノード1の各々は、情報取得ノード2から送信された情報取得要求を受けて生成した所望情報等を含むブロックについてPoWを行い、ブロックチェーンへ当該ブロックを追加してもよい。その場合、検証ノード1のいずれかが、当該ブロックがブロックチェーンに追加された場合に、追加されたブロックまたはそのようなブロックが追加された旨を情報取得ノード2に通知することができる。この場合において、情報取得ノード2は、情報取得要求に対する応答ブロックに相当する当該ブロックが分散台帳システムが管理するブロックチェーンに追加されるための所要時間に基づいて、当該ブロックに含まれる所望情報が高信頼情報であるか否かを判断してもよい。
このような構成により、分散台帳システムに参加していないノード(情報取得ノード2)が台帳全体を取得することなく、多くの台帳管理ノード(検証ノード1)が承認したことを確認しながら、台帳の情報の一部を取得することが可能となる。第1の実施形態の効果は、分散台帳システムの観点からこのように言い換えることもできる。
さらに、検証ノード1がPoWを活用してブロックチェーンを管理する分散台帳システムの台帳管理ノードである場合において、第1の実施形態を次のように変形してもよい。すなわち、検証ノード1を、情報取得要求を受信してから一定時間たってから応答ブロックに相当するブロックが追加された旨、または、当該ブロックを含むそれ以降に追加された全てのブロックを情報取得ノード2に通知する構成としてもよい。この場合、情報取得ノード2は、該一定時間内に、検証ノードが参加する台帳管理システムが管理するブロックチェーンに、応答ブロックに相当するブロック以降に追加されたブロックの数に基づいて、応答ブロックに相当するブロックに含まれる所望情報が高信頼情報であるかを判断することができる。
PoWを活用してブロックチェーンを管理する分散台帳システムにおいて、台帳管理ノードは、他の台帳管理ノードから通知された情報やブロックを検証し、ブロックチェーンに追加するかを判断することができる。そのため、多くの台帳管理ノードが承認する情報しか存在しないような状況では、ブロックチェーンにブロックが追加される頻度が高くなる。言い換えると、少数の台帳管理ノードにしか承認されていないようなブロックを含むブロックチェーンは、それら少数の台帳管理ノードのみがブロックを追加することとなり、ブロックの追加頻度が遅くなる。このことを利用して、分散台帳システムが管理するブロックチェーンにおいて、応答ブロックに相当するブロックが追加されて以降に追加されたブロックの数が多いほど、応答ブロックに相当するブロックに含まれる所望情報は多くの検証ノードによって承認された情報であると期待できる。
[変形例2]
第2の変形例では、ブロックに含ませるデータ量を削減し、通信負荷を軽減する。ここまでの第1の実施形態の説明では、ブロック生成部103が所望情報自体を生成したブロックのデータ領域に格納していた。所望情報そのものをブロック内に含ませるのではなく、その代替として所望情報のダイジェストを格納することが可能である。ここでは、ある情報をハッシュ関数などの一方向性関数で処理した値をダイジェストと呼ぶ。ある情報Xのダイジェストは、当該情報Xとは異なる情報Yのダイジェストと一致する可能性が極めて低いことから、情報Xの検証に用いることができる。例えば、情報Xを持つノードは、自身が有する情報XのダイジェストDと、ブロック内の情報Xのダイジェストとされる値D’とを比較することで、ダイジェストの元となった2つの情報が同一の情報であるかを検証することができる。
このような場合に、情報検証部105は、上記の項目(B1)および項目(B3)に代えて、ブロックに含まれる所望情報のダイジェストと、情報記憶部106に記憶されている、情報取得要求に対応する所望情報を同じ方法でダイジェスト化したものとを比較して一致するか否かを確認してもよい。一般にダイジェストは元の情報よりデータサイズが少ないことから、このような構成とすることで、検証ノード1間のブロック共有時の通信負荷を軽減しうる。
なお、この場合、ブロック内に所望情報そのものを含まないため、外部向け情報共有部101は情報取得ノード2にブロックを送信する際に、併せて所望情報自体を送信する処理を追加することができる。また、その場合において、情報取得ノード2の情報検証部203は、所望情報の検証処理において、送られたブロック内の所望情報のダイジェストと、ブロックと併せて送られた所望情報のダイジェストとが一致するかを確認する処理を追加することができる。
[変形例3]
一つのブロック内に、複数の情報取得要求と所望情報のペアを含ませてもよい。この場合、検証ノード1の情報検証部105は、上述した項目(B1)〜項目(B3)の判定を、ブロック内の全ての情報取得要求と所望情報について行えばよい。また、情報取得ノード2の情報検証部203は、上述した項目(A1)および項目(B2)の判定を、ブロック内の全ての情報取得要求と所望情報について行えばよい。
[変形例4]
上記の説明では、簡単化のため、情報取得ノード2から情報取得要求を受信したGW検証ノード1’が、情報取得ノード2にブロックの送信を行うものとしたが、一般には情報取得ノード2から情報取得要求を受信する検証ノード1(GW検証ノード1’)と情報取得ノード2にブロックを送信する検証ノード1とは異なっていてもよい。例えば、抽選に成功した検証ノード1が直接、ブロック内の情報取得要求の内容に基づいて情報取得ノード2にブロックを送信してもよい。
[変形例5]
また、上記の説明では、全てのノードが所望情報を予め保持しているものとしたが、これに限定されない。例えば、少なくとも1つの検証ノード1が所望情報を保持しており、他の検証ノード1が当該所望情報を検証可能な情報を保持していてもよい。検証可能な情報としては、例えば、所望情報のダイジェストや、所望情報が満たすべき条件(値の範囲等)などが挙げられる。このような場合、検証ノード1の各々は、所望情報に代えて、検証可能な情報を含むブロックを生成してもよい。その上で、いずれかの検証ノード1で抽選が成功したブロックが検証ノード1間で共有される過程で、所望情報を保持する検証ノード1が当該ブロックと所望情報とを併せて情報取得ノード2に送信してもよい。なお、検証ノード1の各々は、情報取得要求を他の検証ノード1と共有する処理で、情報取得要求とともに、所望情報を保持する検証ノード1が生成したブロックを共有してもよい。この場合、情報取得要求が所望情報を保持する検証ノード1へと転送され、そこでブロックが生成される。その上で、該検証ノード1により生成されたブロックを、他の検証ノードへと転送する。そのようにして所望情報を含むブロックを受信した複数の検証ノード1が、同時並列的に抽選作業を行ってもよい。その場合、情報検証部105は、上記の項目(B1)に代えて、自ノードが保持している、当該所望情報を検証可能な情報を基に、ブロック内の所望情報が正しい情報であるか否かを確認してもよい。
別のバリエーションとして、所望情報を保持する専用ノード(クラウド上のストレージなど)を用意してもよい。そのような場合、全ての検証ノード1は、所望情報を保持していなくてもよい。なお、本例の場合も、全ての検証ノード1が、当該所望情報を検証可能な情報を保持しているものとする。本例では、例えば、検証ノード1の各々が、ブロック生成部103におけるブロックの生成処理で、上記の専用ノードから所望情報を取得してブロックを生成してもよい。
[変形例6]
ノンスを探すための規則に関しても様々な変形例が存在する。例えば、所望情報の性質に基づいて当該規則を決めることができる。例えば、所望情報が改ざんされた場合の影響度が大きいほど、抽選実行部104で規則を満たすノンスを探すことが困難になるように当該規則を定めることができる。一例として、ブロックのハッシュ値がターゲット値以下であるという規則に基づいて抽選が実行される場合、所望情報が改ざんされた場合の影響度が大きいほど当該ターゲット値を低く定めることができる。このとき、所望情報が改ざんされた場合の影響度は、ユーザが設定することもできるし、所望情報の所有者や所望情報を利用するアプリケーションに基づいて決めることもできる。
[変形例7]
さらに、ノンスを探すための規則は、検証情報を用いて決定されてもよい。例えば、情報取得要求に含ませる検証情報に、当該規則の情報を含ませてもよい。このようにして、抽選実行部104において適切なノンスが設定されているかの判断基準となる規則を検証情報に基づいて定める。この場合、抽選実行部104は、情報記憶部106に格納されている情報取得要求に含まれる検証情報により示される規則を基に、設定したノンスを確認してもよい。また、情報検証部105は、情報記憶部106に格納されている情報取得要求に含まれる検証情報により示される規則を基に、他の検証ノードから送られてきたブロックを検証してもよい。同様に、情報検証部203は、情報記憶部204に格納されている検証情報により示される規則を基に、検証ノード1から取得したブロックに含まれる所望情報を検証してもよい。
具体例として、検証情報に、ブロックのハッシュ値の上限と下限の情報を含ませることができる。
[第2の実施形態]
次に、本発明の第2の実施形態を説明する。第2の実施形態では、複数の情報取得ノード2が存在し、それらすべての情報取得ノード2において、検証ノード1から取得した情報が高信頼情報であることを確認する方法を説明する。なお、第1の実施形態と同じ構成および動作については適宜説明を省略する。
本実施形態は、情報取得ノード2が複数存在する場合であって、情報取得ノード2間の通信資源と比較して、情報取得ノード2と検証ノード1間の通信資源が限られているような場合に、特に効果がある。例えば、検証ノード1と情報取得ノード2とを接続するネットワークの通信帯域が狭い場合、全ての情報取得ノード2が第1の実施形態で示した方法により個別に検証ノード1から情報を取得しようとすることは、通信負荷の観点で好ましくない。そこで、本実施形態では、一部の情報取得ノードが検証ノードから情報を得た後で、当該情報を他の情報取得ノードと共有する。
しかし、ある情報取得ノードが検証ノードから取得した情報を、他の情報取得ノードに転送して単純に共有させる方法では、次のような問題がある。すなわち、所望情報を取得した情報取得ノードが悪意あるノードであった場合に、他の情報取得ノードは、該所望情報が多くの検証ノード1に承認されたものであるかを判断ができない。
例えば、検証ノードから情報を直接取得する情報取得ノードと一部の検証ノードとが結託すると、改ざんされた情報を高信頼情報として他の情報取得ノードに通知することができる。具体例として、悪意ある情報取得ノードが、予め自ノード内で生成した情報取得要求を、結託している検証ノードに通知する。当該検証ノードは結託している検証ノードのみからなるグループ内で当該情報取得要求を共有し、当該グループ内の各検証ノードで抽選を実行させる。この抽選は、一部の結託した検証ノードのみで行うため、一般には成功するまで長い時間がかかる。しかし、情報取得要求を送信した情報取得ノード以外の情報取得ノードは、抽選が長い時間をかけて行われたことを、情報取得要求を送信した情報取得ノードから転送される応答ブロックのみからでは判断できない。このため、一部の悪意ある検証ノードと悪意ある情報取得ノードとが結託すると、悪意ある検証ノードによる承認のみを経た改ざんされた情報であっても、高信頼情報であるかのように他の情報取得ノード2に通知することが可能となる。
そこで、仮に悪意ある情報取得ノードが悪意ある検証ノードと結託して所望情報を取得した場合であっても、他の情報取得ノードがそれを検証できる仕組みを本実施形態では導入する。すなわち、本実施形態では、検証ノードから直接所望情報を得ていない情報取得ノード2においても、得られた所望情報が高信頼情報であるかを判断する手段を提供する。
図9は、第2の実施形態の情報検証システムの構成の概要を示す説明図である。図9に示す情報検証システム200は、検証ノードグループ10と、情報取得ノードグループ20とを備える。検証ノードグループ10は、複数の検証ノード1を含む。また、情報取得ノードグループ20は、複数の情報取得ノード2を含む。ここで、情報取得ノードグループ20は、検証ノードグループ10が管理している情報を所望するノードのグループである。なお、検証ノードグループ10および検証ノード1は第1の実施形態と同様である。
このような構成において、情報取得ノードグループ20のうちの一の情報取得ノード2(図中のGW情報取得ノード2’)が検証ノード1から直接、所望情報を取得し、取得した所望情報を他の情報取得ノード2と共有する。以下、検証ノード1に対して情報取得要求を送信する情報取得ノード2をゲートウェイ(GW)情報取得ノード2’と呼ぶ場合がある。
本実施形態において、情報取得ノード2の各々は、全ての情報取得ノード2で共有される情報であって、かつその情報が記録された時刻を推測可能な情報をもつ。このような情報を持たせるために、情報取得ノード2の各々を、分散台帳システムの一部として構成する。すなわち、情報取得ノード2の各々は、分散台帳システムによって共有される台帳の情報を参照可能であるものとする。また、情報取得ノードグループ20により構成される分散台帳システムは、台帳に情報が記録された時刻が推測可能であるように構成されるものとする。
例えば、PoWを利用してブロックチェーンが管理、共有される分散台帳システムであれば、PoWにおいて抽選が成功する平均時刻を基に、ブロックおよびブロック内の情報の記録時刻を推測可能である。情報取得ノード2の各々は、そのような分散台帳システムにおける台帳管理ノードでもよいし、単に台帳を共有、参照する機能のみを持つノードであってもよい。また、図9には図示省略しているが、情報取得ノード2以外のノードが台帳管理ノードとして存在してもよい。
また、図10は、第2の実施形態の情報取得ノード2の構成例を示すブロック図である。図10に示すように、情報取得ノード2は、情報要求部201と、検証情報生成部202と、情報検証部203と、情報記憶部204と、分散台帳処理部205とを含んでいてもよい。以下では、第1の実施形態と異なる部分を中心に説明する。
情報要求部201は、概ね第1の実施形態と同様である。ただし、第1の実施形態とは異なり、情報取得要求を送信する際に、情報記憶部204に送信時刻情報を格納する処理は省略される。
検証情報生成部202は、第1の実施形態と同様、情報取得要求に含ませる検証情報の生成を行う。本実施形態の検証情報生成部202は、分散台帳システムが管理する台帳(以下、分散台帳という)の情報に基づいて検証情報を生成する。詳細は後述するが、分散台帳の情報は、各々の情報取得ノード2の情報記憶部204に格納されているか、他の情報取得ノード2と共有され、自由に参照が可能な所定の記憶装置に格納されているものとする。以下、分散台帳といった場合、より具体的には、そのような台帳分散システムが管理する情報を実際に記憶する記憶部(例えば、情報記憶部204や上記の所定の記憶装置等)を表す。
検証情報生成部202は、分散台帳に記録され、全ての情報取得ノード2に共有されている、時刻が推測可能な情報を基に検証情報を生成し、情報要求部201に通知する。一例として、検証情報生成部202は、分散台帳システムが管理するブロックチェーンの最新のブロックから予め決められた数であるN1だけ遡った位置のブロックのダイジェストを検証情報として生成することができる。なお、N1=0とし、最新のブロックのダイジェストを検証情報としてもよい。
検証情報は、分散台帳に記録された情報に基づいていればよく、上述した例には限られない。例えば、最新のブロックから遡った数N1を固定とせず、情報取得要求を送るたびに決定してもよい。その場合には、最新のブロックからN1ブロック遡ったブロックのダイジェストとN1のペアを検証情報とする。また、複数のブロックを組み合わせてダイジェストを計算した結果を、検証情報とすることもできる。なお、検証情報生成部202は、第1の実施形態とは異なり、必ずしも生成した検証情報を情報記憶部204に格納する必要はない。
情報検証部203は、自ノードが応答ブロックを受信した場合に加えて、他の情報取得ノード2から応答ブロックが転送された場合にも、当該ブロック内の所望情報の検証を行う。このとき、情報検証部203は、所望情報の検証を、分散台帳の情報に基づいて行う。第2の実施形態における情報検証部203は、より具体的には、以下に示す判定条件に基づいて、応答ブロックの検証を行う。
・(C1)ブロック内に、情報取得要求で指定した所望情報が存在していること
・(C2)ブロックが、検証ノードグループ10と情報取得ノードグループ20との間で共通に定められている所定の規則を満たすこと
・(C3)ブロック内に含まれる検証情報が、分散台帳内の予め決められた基準よりも新しい情報を基に生成された情報であること
情報検証部203は、上記の項目(C1)〜(C3)をそれぞれ確認し、これらの全ての項目が満たされている場合に受信した所望情報が、高信頼情報であると判断してもよい。ここで、項目(C1)および項目(C2)は、第1の実施形態の項目(A1)および項目(A3)と同様であることから、項目(C3)についてのみ説明する。
本実施形態では、情報取得ノード2の各々は、分散台帳の情報を参照可能に構成されている。また、台帳に記録される情報は、記録された時刻を推測可能な情報である。そのため、情報取得ノード2の各々は、検証情報が当該分散台帳内の予め決められた基準よりも新しい情報から生成されたか否かを判断することが可能となる。
以下では、さらに分散台帳システムがブロックチェーンを管理するようなシステムである場合であって、情報取得ノード2の各々が台帳管理ノードとして構成される場合に、項目(C3)の条件のより具体的な判断方法を説明する。項目(C3)で示した条件「ブロック内に含まれる検証情報が、分散台帳内の予め決められた基準よりも新しい情報を基に生成された情報であること」は、ブロックチェーンを管理するような分散台帳システムにおける台帳管理ノードにおいては、「ブロック内に含まれる検証情報が、情報記憶部204にて保持されるブロックチェーンの最新のブロックからN3ブロック以内のブロックを基に生成された情報であること」とすることができる。なお、台帳管理ノードでない場合であっても、情報取得ノードの各々が、該ブロックチェーンを参照可能であればよく、ブロックチェーンの格納先は情報記憶部204に限定されない。
図11は、情報取得ノードグループ20が管理するブロックチェーンと検証情報との関係を示す説明図である。各時点における、情報取得ノードグループ20が属する分散台帳システムが管理するブロックチェーンと検証情報との関係を整理すると、図11のようになる。図11に示す例では、GW情報取得ノード2’が、情報取得要求を送信する時点におけるブロックチェーンの最新ブロック(図中のブロックb)からN1ブロック遡ったブロック(図中のブロックb)のダイジェストを含む検証情報を生成して、該情報取得要求に含ませる。ここで、当該情報取得要求を送信したのち、ある情報取得ノード2の情報検証部203において所望情報の検証が行われるまでの時間で、ブロックチェーンに数ブロック(図中のN2)のブロックが追加されたとする。その場合、当該情報取得ノード2の情報検証部203は、所望情報の検証を行う際に、その時点でのブロックチェーンの最新ブロック(図中のブロックb)から、応答ブロックに含まれる検証情報とダイジェストが一致するブロック(図中のブロックb)を探索し、その間の追加ブロック数(N1+N2)を数える。すると、情報取得要求を送信した後、情報取得ノード2が応答ブロックを得るまでにかかったおおよその時間を推定できる。なお、上記の追加ブロック数(N1+N2)からN1を引いたN2が、情報取得要求を送信した後、応答ブロックを得るまでにブロックチェーンに追加されたブロック数(以下、実追加ブロック数という)に相当する。
情報検証部203は、この追加ブロック数に当該ブロックチェーンにおけるブロックの平均追加時間Tを乗算した値を、情報取得要求を送信してから所望情報が得られるまでに要した大まかな時間とみなして、所望情報の信頼性を判断する。
そのことから、上記の項目(A4)の一定時間に対応する追加ブロック数の上限N3を規定することにより、応答ブロックの受信が、検証情報により特定されるブロックが最新ブロックであった時点で送信された情報取得要求信号にかかるものであり、かつ該情報取得要求を送信してから一定時間以内に行われたことを確認できる。したがって、情報検証部203は、上記の項目(C3)の判断方法の具体例として、所望情報の検証を行う時点での最新ブロックから遡って、検証情報とダイジェストが一致するブロックが予め決められた数N3以内にあることを確認してもよい。当該ブロックがN3以内にある場合には、GW情報取得ノード2’が情報取得要求を送信してから自ノードで所望情報が得られるまでの時間が、(N3−N1)×T以内であると推測することができる。よって、第1の実施形態で示したような「一定時間以内に抽選が成功しているため多くの検証ノードが承認した」という判断が、第2の実施形態においても可能となる。N3は、N1とTに基づいて決めることができる。
なお、情報取得ノードグループ20のブロックの平均追加時間Tが、検証ノードグループ10の抽選成功にかかる平均時間に比べて圧倒的に大きいケースでは、N2が常に0となる可能性がある。このような場合には、各グループのノード数に合わせて規則を設定(場合によっては動的に変更)することで、そのようなケースを回避することができる。なお、本実施形態では、情報取得ノードが属する分散台帳システムの台帳管理ノード数(もしくは総計算量)と検証ノード群の抽選成功にかかる平均時間とに基づいて規則が適切に設定されているものとする。以下に、設定方法の一例を示す。例えば、検証ノード群の抽選成功にかかる平均時間の目標値T objと、情報取得ノードが属する分散台帳システムの台帳管理ノード群の抽選成功にかかる平均時間の目標値T objを定めておく。このとき、情報取得ノードグループ20のブロックの平均追加時間Tが、検証ノードグループ10の抽選成功にかかる平均時間に比べて圧倒的に大きい状況とならないように、T obj<K*T objとなるような定数Kを定める。その上で、検証ノード群の平均抽選成功時間の実測値がT objを超えるならば、検証ノード群で使用される規則を緩め、台帳管理ノード群の平均抽選成功時間の実測値がT objを超えるならば、台帳管理ノード群で使用される規則を緩めるといった調整を行う。このようにすることで、上記のようなケースを回避することができる。
さらに、本実施形態の情報検証部203は、自身が取得した所望情報やブロックを他の情報取得ノード2に転送することができる。情報検証部203は、例えば、第1の実施形態の検証ノード間の情報共有方法と同様の方法を用いて、情報取得ノード間での情報共有を行うことができる。また、上記方法以外に、例えば、分散台帳システムのブロックチェーン共有アルゴリズムに従って、ブロックチェーンに参加する全てのノード間で情報を共有することが可能である。例えば、検証ノード1からブロックを受信した情報取得ノード2の情報検証部203が、ブロックチェーンへの当該ブロックの追加を宣言することにより、PoWを経て他の情報取得ノード2との間で情報共有を行うことができる。各々の情報取得ノード2の情報検証部203は、追加対象とされるブロックを受信すると、分散台帳システムにおけるPoWを用いた検証とともにまたは該検証とは独立して、上述した方法により当該ブロック内の所望情報の検証を行ってもよい。このとき、情報検証部203は、検証を行う時点での最新のブロックからではなく、所望情報を含むブロックから探索を開始して、N3を得ればよい。なお、分散台帳システムにおけるPoWを用いた検証は、後述する分散台帳処理部205により行われる。
情報記憶部204は、例えば、分散台帳部によって記録される分散台帳の情報を保持する。既に説明したように、分散台帳の情報は、検証情報生成部202において検証情報を生成する際、および情報検証部203において所望情報を検証する際に参照される。なお、分散台帳の情報を自ノードで保持しない場合には、情報記憶部204は省略されてもよい。
分散台帳処理部205は、自ノードを分散台帳システムの一部として構成するための機能を提供する。すなわち、分散台帳処理部205は、少なくとも分散台帳システムが管理する台帳を、他のノードから取得する機能を持つ。ここで、他のノードには、当該分散台帳システムの他のノード(他の情報取得ノード2を含む)や、他の分散台帳システムを構成しているノードが含まれ得る。また、分散台帳処理部205は、取得した台帳を他のノードに転送する機能を持っていてもよい。さらに、分散台帳処理部205は、分散台帳システムの台帳管理ノードとしての機能を有していてもよい。
ここで、本実施形態の情報取得ノード2が備える分散台帳システムの機能について、より具体的に説明する。情報取得ノード2は、分散台帳システムの台帳管理ノードとして、以下の機能を備えることが好ましい。
・1)分散台帳を基に生成される検証情報が正しいかを検証できる
・2)上記1)の検証情報が正しいかを検証するための情報を、時刻(絶対時刻でも相対時刻でもよい)と対応づけることができる
なお、分散台帳システムがブロックチェーンを用いて台帳を管理するシステムである場合、典型的には、台帳管理ノードとしての情報取得ノード2は、以下のような性質をもつ。
・a)全ての台帳管理ノードが同じ情報(台帳)を保持する
・b)保持する情報はブロックと呼ばれるデータ構造の集合である
・c)各ブロックは他の1つ以上のブロックのハッシュ値を持つ
・d)ブロックを頂点とし、各ブロックについてそのブロックがハッシュ値を持つブロックに対して有向辺を置いた時Directed acyclic graphを形成する
・e)各ブロックはノンスと呼ばれる一方向性関数の性質を用いた抽選作業によって設定される領域を持つ
・f)時間経過に伴いブロックは順次追加される
なお、上記c)およびd)のハッシュ値は、一方向性関数により得られるハッシュ値相当の値であればよい。
上記a)の性質を有することにより、各ノードが同じ検証情報を生成可能となるため、上記1)の条件が満たされる。また、上記f)の性質を有することにより、時間経過に伴いブロックが追加されるため、ブロックの数に基づいて相対時刻を計算可能となり、上記2)の条件が満たされる。
本実施形態において、分散台帳処理部205は、例えば、情報取得ノード2として動作するコンピュータが備えるCPU等のプログラムに従って動作する情報処理装置により実現される。
次に、本実施形態の動作を説明する。図12は、GW情報取得ノード2’の動作の一例を示すフローチャートである。また、図13は、GW情報取得ノード2’以外の情報取得ノード2の動作の一例を示すフローチャートである。なお、検証ノード1の動作は第1の実施形態と同様であるため、説明を省略する。
まず、図12を参照して、GW情報取得ノード2’の動作を説明する。図12のステップS111〜S113は、第1の実施形態のステップS101〜S103と基本的に同様である。すなわち、GW情報取得ノード2’の動作は、第1の実施形態の情報取得ノード2の動作と比べて、ステップS114の情報の共有処理が追加されている点が大きく異なる。なお、他の点については各ステップの動作の説明において都度説明する。
本例では、GW情報取得ノード2’が、まず情報取得要求送信処理(ステップS111)を行う。この処理において、まずGW情報取得ノード2’の検証情報生成部202が、分散台帳の情報を基に、検証情報を生成する。次いで、GW情報取得ノード2’の情報要求部201が、生成された検証情報と、所望情報を特定可能な情報とを含む情報取得要求M11を生成し、検証ノードグループ10に含まれるいずれかの検証ノード1に送信する。当該処理では、分散台帳の情報を基に、検証情報を生成する点および送信時刻情報を記憶しない点が第1の実施形態の情報取得要求送信処理(ステップS101)と異なる。
その後、GW情報取得ノード2’は、応答待ち処理(ステップS112)を行う。当該処理は、第1の実施形態の応答待ち処理(ステップS102)と同様である。
検証ノードグループ10に含まれるいずれかの検証ノード1から、ステップS101で送信した情報取得要求の応答とされるブロックM12を受信すると、GW情報取得ノード2’の情報検証部203が、所望情報の検証処理(ステップS113)を行う。当該処理では、情報検証部203が、分散台帳の情報に基づいて、受信したブロックに含まれる所望情報の検証を行う。なお、検証方法の詳細は上述したとおりであるが、分散台帳の情報を基に検証を行う点が、第1の実施形態の所望情報の検証処理(ステップS103)と異なる。
最後に、GW情報取得ノード2’は、情報の共有処理(ステップS114)を行う。当該処理では、情報検証部203または分散台帳処理部205が、検証ノード1から受信したブロックを、他の情報取得ノード2に転送する。なお、GW情報取得ノード2’は、所望情報の検証処理(ステップS113)の検証の結果、所望情報が高信頼情報と判断されなかった場合には、情報の共有処理を行わないようにしてもよい。
次に、図13を参照して、他の情報取得ノード2の動作を説明する。図13に示すように、本実施形態のGW情報取得ノード2’以外の情報取得ノード2は、GW情報取得ノード2’や他の情報取得ノード2から、所望情報を含むブロックM12(応答ブロック)を受信すると、情報の共有処理(ステップS411)を行う。この処理は、図12に示したGW情報取得ノード2’における情報の共有処理(ステップS114)と同様でよい。
その後、情報取得ノード2は、所望情報の検証処理(ステップS412)を行う。この処理は、図12に示したGW情報取得ノード2’における所望情報の検証処理(ステップS113)と同様でよい。
なお、図12および図13では図示省略しているが、情報取得ノード2の各々(GW情報取得ノード2’を含む)は、これらの動作とは独立して分散台帳システムの一部としての動作を行う。
以上のように、本実施形態によれば、単一の情報取得ノード2が検証ノード1から所望情報を得て、他の情報取得ノード2と共有する場合であっても、全ての情報取得ノード2において、他の情報取得ノード2に対して事前に認証に用いる情報の対応づけなしに、当該所望情報の信頼性を評価することが可能となる。仮にGW情報取得ノード2’が悪意あるノードであったとしても、他の情報取得ノード2で所望情報の信頼性を評価できることから、所望情報を検知されないように改ざんすることが困難となる。
また、第1の実施形態の変形例として示した通り、検証ノード1の各々も、分散台帳システムの台帳管理ノードとして動作することが可能である。この場合、独立して動作する2つの分散台帳システムの間のデータ通信に、本実施形態の情報検証方法を利用することができる。すなわち、第1の分散台帳システムの情報を、第2の分散台帳システムの台帳管理ノードが取得する際に、第2の分散台帳システムの台帳管理ノードが、取得された情報が第1の分散台帳システムの多くの台帳管理ノードに承認された情報であるか、すなわち高信頼情報であるかを、他のノードとの間で認証情報のやりとりを要せずに、また分散台帳システム間の通信負荷を増加させずに、確認できる。
なお、第2の実施形態にもさまざまな変形例が存在する。以下ではその一部を示す。
[変形例1]
第2の実施形態では、検証情報に、分散台帳システムが管理するブロックチェーンの一部のブロックのハッシュ値を用いることができることを述べた。検証情報は、このようなハッシュ値に限定されない。GW情報取得ノード2’以外の情報取得ノード2が、検証ノード1から送られたブロックに基づいて所望情報を検証するためには、検証情報が、全ての情報取得ノード2が参照可能であり、時刻と対応づけることが可能な情報であればよい。例えば、ブロックチェーン内に記録された情報を検証情報とすることができる。
一例として、検証情報は、第1の実施形態と同様、情報取得要求を送信するノードが生成した乱数であってもよい。その場合、情報取得要求を送信する情報取得ノード2は、生成した検証情報を、分散台帳システムを用いて共有する。例えば、当該情報取得ノード2は、自ノードが属する分散台帳システムが管理するブロックチェーンに該検証情報を記録したブロックを追加した後に、情報取得要求を送信する。なお、本例において、情報取得要求の送信は、検証情報を生成した情報取得ノード2が行ってもよいし、GW情報取得ノード2’として特に定めた情報取得ノード2が、ブロックチェーンに検証情報が記録されたブロックが追加されたことを受けて、行ってもよい。
ブロックチェーンの性質より、ブロックチェーンに記録された情報は、全ての台帳管理ノード(情報取得ノード2)に共有され、かつ、改ざんすることが困難である。その性質を利用して、全ての台帳管理ノードが、所望情報を検証する際に、ブロックチェーンに記録された検証情報を含むブロック以後、応答ブロックを受信するまでの間の追加ブロック数に応じて、所望情報が高信頼情報であるか否かを判定できる。
なお、当該検証情報(乱数等)を含む情報取得要求が、ブロックチェーンに記録された後に送信されたものであることを示すために、検証情報にさらに、PoW後に得られる情報(該当ブロックのノンスの値等)を含めてもよい。
[変形例2]
第2の実施形態では、情報取得ノード2の各々を、ブロックチェーンを管理するような分散台帳システムの一部として構成できることを述べた。ここで、当該分散台帳システムにおけるコンセンサスアルゴリズムは、PoWに限られない。例えば、情報取得ノード2が属する分散台帳システムは、PBFT(Practical Byzantine Fault Tolerance)などの他のコンセンサスアルゴリズムを用いたシステムであってもよい。
次に、本発明の各実施形態にかかるコンピュータの構成例を示す。図14は、本発明の各実施形態にかかるコンピュータの構成例を示す概略ブロック図である。コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004と、ディスプレイ装置1005とを備える。
上述の各実施形態の情報検証システムの各ノードは、コンピュータ1000に実装されてもよい。その場合、各ノードの動作は、プログラムの形式で補助記憶装置1003に記憶されていてもよい。CPU1001は、プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、そのプログラムに従って各実施形態における所定の処理を実施する。
補助記憶装置1003は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータは1000がそのプログラムを主記憶装置1002に展開し、各実施形態における所定の処理を実行してもよい。
また、プログラムは、各実施形態における所定の処理の一部を実現するためのものであってもよい。さらに、プログラムは、補助記憶装置1003に既に記憶されている他のプログラムとの組み合わせで各実施形態における所定の処理を実現する差分プログラムであってもよい。
また、実施形態における処理内容によっては、コンピュータ1000の一部の要素は省略可能である。例えば、ノードがユーザに情報を提示しないのであれば、ディスプレイ装置1005は省略可能である。また、図14には図示省略しているが、実施形態における処理内容によっては、コンピュータ1000は、入力デバイスを備えていてもよい。例えば、情報取得指示や所望情報の属性情報を入力するための入力デバイスを備えていてもよい。
また、各装置の各構成要素の一部または全部は、汎用または専用の回路(Circuitry)、プロセッサ等やこれらの組み合わせによって実施される。これらは単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。また、各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
各装置の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本発明の概要を説明する。図15は、本発明の情報検証システムの概要を示すブロック図である。図15に示す情報検証システム500は、複数のノード51を含む第1のノード群510と、少なくとも1つのノード52を含む第2のノード群520とを備える。また、ノード52の少なくとも1つが、要求手段521と、検証手段522とを含む。
要求手段521(例えば、情報要求部201)は、第1のノード群510に含まれるノード51の少なくともいずれかに、情報を要求する要求信号であって、要求信号を送信するごとに生成される検証用の情報である検証情報を含む要求信号を送信する。
検証手段522(例えば、情報検証部203)は、要求信号に対して第1のノード群510に含まれるノード51のいずれかから送られてきた情報である応答情報を検証する。このとき、検証手段522は、応答情報に関し、要求信号で要求した情報である所望情報もしくはそのダイジェストが含まれているか否か、正しい検証情報が含まれているか否か、当該応答情報に対して一方向性関数を適用して得られる値が、第1のノード群510と第2のノード群520との間で共通に定められる所定の規則を満たすか否か、および、要求信号を送信してから所望情報を得るまでにかかった時間である応答時間を判定し、それらの判定結果に基づいて、所望情報の信頼性の有無または信頼度を判断する。
このような構成により、応答情報の送信元のノード自体を特に認証しなくても、所望情報の信頼性を評価できる。
ここで、応答時間の判定は、応答時間の実測値に基づく判定だけでなく、例えば、検証情報に対応づけられておりかつ応答時間が推定可能な情報に基づいて推定される応答時間に基づく判定も含まれる。また、応答情報の返信が一定時間経過後に行われる場合は、応答時間により示される、所望情報が第1のノード群に含まれるいずれかのノードに承認された以降に該ノードにおいて所定の方法により処理された情報量に基づいて、判定することも可能である。この場合、より具体的には、応答時間およびその間における第1のノード群での共有情報の増加量に基づく判定といえるが、広義には、応答時間に基づく判定といえる。
また、図16は、本発明の情報検証システムの他の例を示すブロック図である。図16に示すように、情報検証システム500において、第2のノード群520は、複数のノード52を含んでいてもよく、そのような場合、ノード52の各々は、分散台帳システムにおける台帳管理ノードまたは台帳管理ノードが管理する分散台帳を参照可能なノードとして実装されていてもよい。なお、図16では、1つのノード52が要求手段521と検証手段522とを含む例が示されているが、あるノード52が要求手段521を含み、他のノード52が検証手段522を含んでいてもよい。
また、図16に示すように、情報検証システム500において、ノード51の少なくとも1つは、応答手段511と、探索手段512とを含んでいてもよい。なお、図16では、1つのノード51が応答手段511と探索手段512とを含む例が示されているが、あるノード51が応答手段511を含み、他のノード51が探索手段512を含んでいてもよい。
応答手段511(例えば、外部向け情報共有部101)は、第2のノード群520に含まれるノード52のいずれかから送信された要求信号に対する応答情報として、当該応答情報が規則を満たすように設定されるノンスと、所望情報またはそのダイジェストと、要求信号に含まれていた検証情報とを含む情報を、要求元のノード52に送信する。
探索手段512(例えば、抽選実行部104)は、一方向性関数を用いて規則を満たすノンスの値を探索する。
なお、上記の各実施形態は以下の付記のようにも記載できる。
(付記1)複数のノードを含む第1のノード群が管理する情報の信頼性を判断するための情報検証装置であって、第1のノード群に含まれるノードの少なくともいずれかに送信された、情報を要求する要求信号であって、要求信号を送信するごとに生成される検証用の情報である検証情報を含む要求信号に対して、第1のノード群に含まれるノードのいずれかから送られてきた情報である応答情報を検証する検証手段を有し、検証手段は、応答情報に関し、要求信号で要求した情報である所望情報もしくはそのダイジェストが含まれているか否か、正しい検証情報が含まれているか否か、当該応答情報に対して一方向性関数を適用して得られる値が、第1のノード群と少なくとも情報検証装置との間で共通に定められる所定の規則を満たすか否か、および、要求信号を送信してから所望情報を得るまでにかかった時間である応答時間を判定し、それらの判定結果に基づいて、所望情報の信頼性の有無または信頼度を判断することを特徴とする情報検証装置。
(付記2)要求手段は、同じ情報を要求する要求信号を複数回、第1のノード群に含まれるノードの少なくともいずれかに送信し、検証手段は、複数回分の判定結果に基づいて、所望情報の信頼性の有無または信頼度を判断する付記1に記載の情報検証装置。
(付記3)分散台帳システムにおける台帳管理ノードまたは台帳管理ノードが管理する分散台帳を参照可能なノードの1つとして実装され、要求手段は、分散台帳に含まれる情報に基づいて生成される検証情報を含む要求信号を送信し、検証手段は、第1のノード群に含まれるノードから直接または第2のノード群に含まれる他のノードを介して間接的に得られる応答情報に関し、当該応答情報に含まれる検証情報の正しさを、当該検証情報が分散台帳に含まれる情報に基づいて生成されているか否かにより判定し、応答時間を、当該応答情報に含まれる検証情報が分散台帳のどの時点の情報に基づいて生成されているかおよびその時点から少なくとも当該応答情報を得た時点までの間に分散台帳に追加された台帳の数に基づいて判定する付記1または付記2に記載の情報検証装置。
(付記4)複数のノードを含む第1のノード群が管理する情報の信頼性を、第1のノード群とは異なる第2のノード群に含まれるノードが判断するための情報検証方法であって、第2のノード群に含まれるノードが、第1のノード群に含まれるノードの少なくともいずれかに送信された、情報を要求する要求信号であって、要求信号を送信するごとに生成される検証用の情報である検証情報を含む要求信号に対して、第1のノード群に含まれるノードのいずれかから送られてきた情報である応答情報を検証し、応答情報を検証する処理で、応答情報に関し、要求信号で要求した情報である所望情報もしくはそのダイジェストが含まれているか否か、正しい検証情報が含まれているか否か、当該応答情報に対して一方向性関数を適用して得られる値が、第1のノード群と第2のノード群との間で共通に定められる所定の規則を満たすか否か、および、要求信号を送信してから所望情報を得るまでにかかった時間である応答時間を判定し、それらの判定結果に基づいて、所望情報の信頼性の有無または信頼度を判断することを特徴とする情報検証方法。
(付記5)第2のノード群に含まれるノードが、同じ情報を要求する要求信号を複数回、第1のノード群に含まれるノードの少なくともいずれかに送信し、複数回分の判定結果に基づいて、所望情報の信頼性の有無または信頼度を判断する付記4に記載の情報検証方法。
(付記6)分散台帳システムにおける台帳管理ノードまたは台帳管理ノードが管理する分散台帳を参照可能なノードとして実装される複数のノードを含む第2のノード群に含まれるノードが、分散台帳に含まれる情報に基づいて生成される検証情報を含む要求信号を送信し、第1のノード群に含まれるノードから直接または第2のノード群に含まれる他のノードを介して間接的に得られる応答情報に関し、当該応答情報に含まれる検証情報の正しさを、当該検証情報が分散台帳に含まれる情報に基づいて生成されているか否かにより判定し、応答時間を、当該応答情報に含まれる検証情報が分散台帳のどの時点の情報に基づいて生成されているかおよびその時点から少なくとも当該応答情報を得た時点までの間に分散台帳に追加された台帳の数に基づいて判定する付記4または付記5に記載の情報検証方法。
(付記7)複数のノードを含む第1のノード群が管理する情報の信頼性を、第1のノード群とは異なる第2のノード群に含まれるノードが判断するための情報検証プログラムであって、第2のノード群に含まれるノードが備えるコンピュータに、第1のノード群に含まれるノードの少なくともいずれかに送信された、情報を要求する要求信号であって、要求信号を送信するごとに生成される検証用の情報である検証情報を含む要求信号に対して、第1のノード群に含まれるノードのいずれかから送られてきた情報である応答情報を検証する検証処理を実行させ、検証処理で、応答情報に関し、要求信号で要求した情報である所望情報もしくはそのダイジェストが含まれているか否か、正しい検証情報が含まれているか否か、当該応答情報に対して一方向性関数を適用して得られる値が、第1のノード群と第2のノード群との間で共通に定められる所定の規則を満たすか否か、および、要求信号を送信してから所望情報を得るまでにかかった時間である応答時間を判定させ、それらの判定結果に基づいて、所望情報の信頼性の有無または信頼度を判断させるための情報検証プログラム。
(付記8)コンピュータに、第1のノード群に含まれるノードの少なくともいずれかに、要求信号を送信する要求処理を実行させる付記7に記載の情報検証プログラム。
(付記9)コンピュータに、要求処理で、同じ情報を要求する要求信号を複数回、第1のノード群に含まれるノードの少なくともいずれかに送信させ、検証処理で、複数回分の判定結果に基づいて、所望情報の信頼性の有無または信頼度を判断させる付記8に記載の情報検証プログラム。
(付記10)分散台帳システムにおける台帳管理ノードまたは台帳管理ノードが管理する分散台帳を参照可能なノードとして実装される複数のノードを含む第2のノード群に含まれるノードが備えるコンピュータに、要求処理で、分散台帳に含まれる情報に基づいて生成される検証情報を含む要求信号を送信させ、判定処理で、第1のノード群に含まれるノードから直接または第2のノード群に含まれる他のノードを介して間接的に得られる応答情報に関し、当該応答情報に含まれる検証情報の正しさを、当該検証情報が分散台帳に含まれる情報に基づいて生成されているか否かにより判定させ、応答時間を、当該応答情報に含まれる検証情報が分散台帳のどの時点の情報に基づいて生成されているかおよびその時点から少なくとも当該応答情報を得た時点までの間に分散台帳に追加された台帳の数に基づいて判定させる付記8または付記9に記載の情報検証プログラム。
以上、本実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
本発明は、あるノード群が持つ情報を当該ノード群に属さないノードが取得する場合に、その情報の信頼性を評価する用途に好適に適用可能である。
100、200、500 情報検証システム
10 検証ノードグループ
1 検証ノード
1’ GW検証ノード
101 外部向け情報共有部
102 検証ノード間情報共有部
103 ブロック生成部
104 抽選実行部
105 情報検証部
106 情報記憶部
2 情報取得ノード
2’ GW情報取得ノード
201 情報要求部
202 検証情報生成部
203 情報検証部
204 情報記憶部
205 分散台帳処理部
20 情報取得ノードグループ
510 第1のノード群
511 応答手段
512 探索手段
520 第2のノード群
521 要求手段
522 検証手段
51、52 ノード
1000 コンピュータ
1001 CPU
1002 主記憶装置
1003 補助記憶装置
1004 インタフェース
1005 ディスプレイ装置

Claims (10)

  1. 複数のノードを含む第1のノード群と、少なくとも1つのノードを含む第2のノード群とを備え、
    前記第2のノード群に含まれるノードの少なくとも1つは、
    前記第1のノード群に含まれるノードの少なくともいずれかに、情報を要求する要求信号であって、前記要求信号を送信するごとに生成される検証用の情報である検証情報を含む要求信号を送信する要求手段と、
    前記要求信号に対して前記第1のノード群に含まれるノードのいずれかから送られてきた情報である応答情報を検証する検証手段とを有し、
    前記検証手段は、
    前記応答情報に関し、前記要求信号で要求した情報である所望情報もしくはそのダイジェストが含まれているか否か、正しい検証情報が含まれているか否か、当該応答情報に対して一方向性関数を適用して得られる値が、前記第1のノード群と前記第2のノード群との間で共通に定められる所定の規則を満たすか否か、および、前記要求信号を送信してから前記所望情報を得るまでにかかった時間である応答時間を判定し、それらの判定結果に基づいて、前記所望情報の信頼性の有無または信頼度を判断する
    ことを特徴とする情報検証システム。
  2. 前記第1のノード群に含まれるノードの少なくとも1つは、
    前記第2のノード群に含まれるノードのいずれかから送信された前記要求信号に対する前記応答情報として、当該応答情報が前記規則を満たすように設定されるノンスと、前記所望情報またはそのダイジェストと、前記要求信号に含まれていた前記検証情報とを含む情報を、要求元のノードに送信する応答手段と、
    一方向性関数を用いて前記規則を満たす前記ノンスの値を探索する探索手段とを有する
    請求項1に記載の情報検証システム。
  3. 前記要求手段は、同じ情報を要求する要求信号を複数回、前記第1のノード群に含まれるノードの少なくともいずれかに送信し、
    前記検証手段は、複数回分の前記判定結果に基づいて、前記所望情報の信頼性の有無または信頼度を判断する
    請求項1または請求項2に記載の情報検証システム。
  4. 前記規則が、前記要求信号に含まれる前記検証情報によって指定される
    請求項1から請求項3のうちのいずれか1項に記載の情報検証システム。
  5. 前記所望情報の属性情報に基づいて、前記規則が定められている
    請求項1から請求項4のうちのいずれか1項に記載の情報検証システム。
  6. 前記検証手段は、前記所望情報の属性情報に基づいて、前記応答時間の判定を行う
    請求項1から請求項5のうちのいずれか1項に記載の情報検証システム。
  7. 前記第2のノード群は、分散台帳システムにおける台帳管理ノードまたは前記台帳管理ノードが管理する分散台帳を参照可能なノードとして実装される複数のノードを含み、
    前記要求手段は、前記分散台帳に含まれる情報に基づいて生成される検証情報を含む要求信号を送信し、
    前記検証手段は、第1のノード群に含まれるノードから直接または前記第2のノード群に含まれる他のノードを介して間接的に得られる応答情報に関し、当該応答情報に含まれる検証情報の正しさを、当該検証情報が前記分散台帳に含まれる情報に基づいて生成されているか否かにより判定し、前記応答時間を、当該応答情報に含まれる検証情報が前記分散台帳のどの時点の情報に基づいて生成されているかおよびその時点から少なくとも当該応答情報を得た時点までの間に前記分散台帳に追加された台帳の数に基づいて判定する
    請求項1から請求項6のうちのいずれか1項に記載の情報検証システム。
  8. 複数のノードを含む第1のノード群が管理する情報の信頼性を判断するための情報検証装置であって、
    前記第1のノード群に含まれるノードの少なくともいずれかに送信された、前記情報を要求する要求信号であって、前記要求信号を送信するごとに生成される検証用の情報である検証情報を含む要求信号に対して、前記第1のノード群に含まれるノードのいずれかから送られてきた情報である応答情報を検証する検証手段を有し、
    前記検証手段は、
    前記応答情報に関し、前記要求信号で要求した情報である所望情報もしくはそのダイジェストが含まれているか否か、正しい検証情報が含まれているか否か、当該応答情報に対して一方向性関数を適用して得られる値が、前記第1のノード群と少なくとも前記情報検証装置との間で共通に定められる所定の規則を満たすか否か、および、前記要求信号を送信してから前記所望情報を得るまでにかかった時間である応答時間を判定し、それらの判定結果に基づいて、前記所望情報の信頼性の有無または信頼度を判断する
    ことを特徴とする情報検証装置。
  9. 複数のノードを含む第1のノード群が管理する情報の信頼性を、前記第1のノード群とは異なる第2のノード群に含まれるノードが判断するための情報検証方法であって、
    第2のノード群に含まれるノードが、
    前記第1のノード群に含まれるノードの少なくともいずれかに送信された、前記情報を要求する要求信号であって、前記要求信号を送信するごとに生成される検証用の情報である検証情報を含む要求信号に対して、前記第1のノード群に含まれるノードのいずれかから送られてきた情報である応答情報を検証し、
    前記応答情報を検証する処理で、前記応答情報に関し、前記要求信号で要求した情報である所望情報もしくはそのダイジェストが含まれているか否か、正しい検証情報が含まれているか否か、当該応答情報に対して一方向性関数を適用して得られる値が、前記第1のノード群と前記第2のノード群との間で共通に定められる所定の規則を満たすか否か、および、前記要求信号を送信してから前記所望情報を得るまでにかかった時間である応答時間を判定し、それらの判定結果に基づいて、前記所望情報の信頼性の有無または信頼度を判断する
    ことを特徴とする情報検証方法。
  10. 複数のノードを含む第1のノード群が管理する情報の信頼性を、前記第1のノード群とは異なる第2のノード群に含まれるノードが判断するための情報検証プログラムであって、
    前記第2のノード群に含まれるノードが備えるコンピュータに、
    前記第1のノード群に含まれるノードの少なくともいずれかに送信された、前記情報を要求する要求信号であって、前記要求信号を送信するごとに生成される検証用の情報である検証情報を含む要求信号に対して、前記第1のノード群に含まれるノードのいずれかから送られてきた情報である応答情報を検証する検証処理を実行させ、
    前記検証処理で、前記応答情報に関し、前記要求信号で要求した情報である所望情報もしくはそのダイジェストが含まれているか否か、正しい検証情報が含まれているか否か、当該応答情報に対して一方向性関数を適用して得られる値が、前記第1のノード群と前記第2のノード群との間で共通に定められる所定の規則を満たすか否か、および、前記要求信号を送信してから前記所望情報を得るまでにかかった時間である応答時間を判定させ、それらの判定結果に基づいて、前記所望情報の信頼性の有無または信頼度を判断させる
    ための情報検証プログラム。
JP2019500954A 2017-02-24 2017-02-24 情報検証システム、情報検証装置、方法およびプログラム Active JP6798604B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/007122 WO2018154713A1 (ja) 2017-02-24 2017-02-24 情報検証システム、情報検証装置、方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2018154713A1 JPWO2018154713A1 (ja) 2019-11-21
JP6798604B2 true JP6798604B2 (ja) 2020-12-09

Family

ID=63253619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019500954A Active JP6798604B2 (ja) 2017-02-24 2017-02-24 情報検証システム、情報検証装置、方法およびプログラム

Country Status (3)

Country Link
US (1) US11316868B2 (ja)
JP (1) JP6798604B2 (ja)
WO (1) WO2018154713A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10560270B2 (en) * 2017-05-03 2020-02-11 International Business Machines Corporation Optimal data storage configuration in a blockchain
WO2018217804A1 (en) * 2017-05-22 2018-11-29 Visa International Service Association Network for improved verification speed with tamper resistant data
CN107360248B (zh) * 2017-07-31 2020-08-25 众安信息技术服务有限公司 用于配置局部共识的方法和装置及计算机可读存储介质
US10880070B1 (en) * 2018-02-08 2020-12-29 Rockwell Collins, Inc. Distributed blockchain ledger for vehicular systems
US10972479B2 (en) * 2018-08-02 2021-04-06 Balanced Media Technology, LLC Task completion using a blockchain network
CN109361734B (zh) * 2018-09-18 2021-04-20 百度在线网络技术(北京)有限公司 一种区块链的数据处理方法、装置、设备及介质
CN109598504B (zh) * 2018-10-25 2020-09-01 阿里巴巴集团控股有限公司 基于区块链的交易处理方法及装置、电子设备
US11409734B2 (en) * 2018-10-29 2022-08-09 Electronics And Telecommunications Research Institute Blockchain system and operation method thereof
US11048689B2 (en) * 2018-11-08 2021-06-29 International Business Machines Corporation Consensus transaction scheduler
WO2020144729A1 (ja) * 2019-01-07 2020-07-16 日本電気株式会社 情報処理装置、検証システムおよび情報処理方法
CN113287110A (zh) * 2019-01-23 2021-08-20 株式会社斯凯拉 具有篡改检测性的数据管理系统
CN110086780B (zh) 2019-03-26 2021-11-02 北京百度网讯科技有限公司 基于以太坊的被篡改交易的处理方法、装置及存储介质
KR102258987B1 (ko) * 2019-11-20 2021-05-31 주식회사피플카 블록체인 네트워크의 트랜잭션 처리 방법
EP4096150A1 (en) 2021-05-24 2022-11-30 Billon Sp. z o.o. A computer-implemented method for improving security of a communication between a dlt network nodes and an external computer system
WO2024013904A1 (ja) * 2022-07-13 2024-01-18 富士通株式会社 情報処理プログラム、情報処理方法、および情報処理装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005045757A (ja) 2003-07-04 2005-02-17 Field System Inc 動画生成配信システム
JP4647903B2 (ja) 2003-07-09 2011-03-09 株式会社東芝 情報通信装置、通信システム及びデータ伝送制御プログラム
JP2007153021A (ja) 2005-12-01 2007-06-21 Jtekt Corp 通信方法
JP5188189B2 (ja) 2008-01-18 2013-04-24 富士通株式会社 認証システム、認証装置及びコンピュータプログラム
US20160283939A1 (en) 2015-03-25 2016-09-29 Qualcomm Incorporated System and method to prevent loss of bitcoins due to address errors
US10068397B2 (en) * 2016-04-06 2018-09-04 Guardtime IP Holdings, Ltd. System and method for access control using context-based proof
US10460118B2 (en) * 2016-08-30 2019-10-29 Workday, Inc. Secure storage audit verification system

Also Published As

Publication number Publication date
US11316868B2 (en) 2022-04-26
JPWO2018154713A1 (ja) 2019-11-21
WO2018154713A1 (ja) 2018-08-30
US20200007558A1 (en) 2020-01-02

Similar Documents

Publication Publication Date Title
JP6798604B2 (ja) 情報検証システム、情報検証装置、方法およびプログラム
US11075757B2 (en) Shielded interoperability of distributed ledgers
US11102001B2 (en) Trust management system and trust management method
US11734260B2 (en) Methods and apparatus for a distributed database within a network
US20190386834A1 (en) Blockchain management apparatus, blockchain management method, and program
TWI727467B (zh) 聯盟鏈的可信度驗證方法、系統、裝置及設備
JP7329540B2 (ja) 準安定ビザンチン合意
CN111971931B (zh) 在区块链网络中验证交易的方法以及构成该网络的节点
JP5801482B2 (ja) キーバリューストレージに対するデータの保存および読み出しを行う方法およびシステム
CN112907369B (zh) 基于区块链的数据共识方法及装置、电子设备、存储介质
WO2022217807A1 (zh) 区块链共识节点选择方法、装置、计算机设备和存储介质
US20080082831A1 (en) Information processing system, information processing apparatus, information processing method, and storage medium
TWI712972B (zh) 聯盟鏈的可信度驗證方法、系統、裝置及設備
US20210158353A1 (en) Methods, systems, apparatuses, and devices for processing request in consortium blockchain
US11651335B2 (en) Methods and devices for controlling a mining pool for multiple blockchain networks
CN110599144B (zh) 一种区块链节点的入网方法以及装置
CN112184436B (zh) 数据同步方法、电子设备及可读存储介质
KR20210087552A (ko) 분산 리소스 할당을 위한 시스템 및 방법
US20200394162A1 (en) Operation management method for distributed ledger system, operation management system for distributed ledger system, and operation management program for distributed ledger system
WO2023040453A1 (zh) 一种交易信息处理方法及装置
CN112181599B (zh) 模型训练方法、装置及存储介质
US11831749B1 (en) Method and system for utilizing the infrastructure of a blockchain to enhance the degree of reliability of another blockchain
KR102179078B1 (ko) 블록체인 기반 시스템에서의 비결정적 데이터 생성 방법
JP2023513951A (ja) 階層化ネットワークの接続の適応
CN111242778A (zh) 数据处理方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190809

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201020

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201102

R150 Certificate of patent or registration of utility model

Ref document number: 6798604

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150