JP7486689B2 - データ検証装置、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラム - Google Patents

データ検証装置、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラム Download PDF

Info

Publication number
JP7486689B2
JP7486689B2 JP2024502548A JP2024502548A JP7486689B2 JP 7486689 B2 JP7486689 B2 JP 7486689B2 JP 2024502548 A JP2024502548 A JP 2024502548A JP 2024502548 A JP2024502548 A JP 2024502548A JP 7486689 B2 JP7486689 B2 JP 7486689B2
Authority
JP
Japan
Prior art keywords
data
verification
registration
unit
distributed ledger
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
JP2024502548A
Other languages
English (en)
Other versions
JPWO2023188039A1 (ja
JPWO2023188039A5 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2023188039A1 publication Critical patent/JPWO2023188039A1/ja
Publication of JPWO2023188039A5 publication Critical patent/JPWO2023188039A5/ja
Application granted granted Critical
Publication of JP7486689B2 publication Critical patent/JP7486689B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Description

本開示は、データ検証装置、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラムに関する。
ブロックチェーン(BC)技術では、システム内においてやり取りされる情報の信頼性が分散ネットワーク内の合意形成のプロセスによって担保され、かつ、改ざん等の不正をシステム全体で防ぐことができる。そこで、トレーサビリティの担保を目的としてブロックチェーン技術を活用することが検討されている。BC技術を活用したシステムにおいて、登録されたデータは、BCネットワークの参加者に共有され、かつ、正当なデータであると判断される。そのため、ルールに基づいた入力データであるか否かをシステムにデータを登録する前に検証する必要がある。そこで、データ検証SC(Smart Contract)の信頼性を高めるため、BC内においてデータ検証SCを自動的に生成し、生成されたデータ検証SCを用いてデータを検証することにより、検証結果の正当性を担保する技術がある(例えば、非特許文献1)。データ検証SCは、データを検証するためのSCである。なお、SCは、BC内において、規定のルールに従ってトランザクション又は外部情報等をトリガーとして実行されるプログラムである。データの検証とデータの登録とデータの参照等をSCによって実現することができる。
Ethereum,"Contracts-Solidity 0.5.4 ドキュメント",[online],2019年7月12日,Solidity,[2021年11月9日検索]インターネット<URL:https://solidity-jp.readthedocs.io/ja/latest/contracts.html>
非特許文献1が開示している技術では、BC内においてデータ検証SCが生成され、データ登録SCはデータ検証SCによって検証された登録データを分散型台帳に登録する。データ登録SCは、データを登録するためのSCである。しかしながら、当該技術において、登録データを検証する際に用いられるデータ検証SCがBC内において生成されたデータ検証SCであることは担保されていないという課題がある。
本開示は、分散型台帳に登録することを要求された登録データをBC内において生成されたデータ検証SCを用いて検証する技術において、登録データを検証する際に用いられるデータ検証SCがBC内において生成されたデータ検証SCであることを担保することを目的とする。
本開示に係るデータ検証装置は、
ブロックチェーンを構成するサーバに格納されている分散型台帳に登録する電子データを検証するデータ検証装置であって、
前記分散型台帳に登録することを要求された電子データである登録データが、前記分散型台帳に登録する電子データを検証するためのルールである検証ルールに従うか否かを判定するデータ検証処理を実行するデータ検証部と、
前記データ検証処理に対応するプログラムが前記ブロックチェーン内において生成されたか否かを判定するデータコントロール部と、
前記データ検証処理に対応するプログラムが前記ブロックチェーン内において生成されたと判定された場合に検証登録処理を実行するデータ登録部と
を備え、
前記検証登録処理は、前記データ検証処理によって前記登録データが前記検証ルールに従うと判定された場合に、前記登録データを前記分散型台帳に登録する処理である。
本開示によれば、データコントロール部は、データ検証処理に対応するプログラムがBC内において生成されたか否かを判定する。また、データ登録部は、データ検証処理に対応するプログラムがBC内において生成されたと判定された場合に検証登録処理を実行する。ここで、データ検証処理に対応するプログラムはデータ検証SCに相当する。従って、本開示によれば、分散型台帳に登録することを要求された登録データをBC内において生成されたデータ検証SCを用いて検証する技術において、登録データを検証する際に用いられるデータ検証SCがBC内において生成されたデータ検証SCであることを担保することができる。
実施の形態1に係るBCシステム90の構成例を示す図。 実施の形態1に係るBCシステム90のハードウェア構成例を示す図。 実施の形態1に係るデプロイ処理を示すフローチャート。 実施の形態1に係るデータ登録処理を示すフローチャート。 実施の形態1に係るデータ参照処理を示すフローチャート。 実施の形態1の変形例に係るデータ検証装置1のハードウェア構成例を示す図。 実施の形態2に係るBCシステム90の構成例を示す図。 実施の形態2に係るデプロイ処理を示すフローチャート。 実施の形態2に係るデータ登録処理を示すフローチャート。 実施の形態2に係るデータ参照処理を示すフローチャート。 実施の形態3に係るBCシステム90の構成例を示す図。 実施の形態3に係るデータ登録処理を示すフローチャート。 実施の形態3に係るデータ参照処理を示すフローチャート。 実施の形態4に係るBCシステム90の構成例を示す図。 実施の形態4に係るデータ登録処理を示すフローチャート。 実施の形態4に係るデータ登録処理を示すフローチャート。 実施の形態4に係るデータ参照処理を示すフローチャート。 実施の形態4に係るデータ参照処理を示すフローチャート。
実施の形態の説明及び図面において、同じ要素及び対応する要素には同じ符号を付している。同じ符号が付された要素の説明は、適宜に省略又は簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。また、「部」を、「回路」、「工程」、「手順」、「処理」、「サーキットリー」又は「スマートコントラクト」に適宜読み替えてもよい。
実施の形態1.
以下、本実施の形態について、図面を参照しながら詳細に説明する。
***構成の説明***
図1は、本実施の形態に係るBC(Blockchain)システム90のシステム構成例を示している。BCシステム90はブロックチェーンを実現するシステムである。図1に示すように、BCシステム90は、データ検証装置1と、BCネットワーク3と、クライアントアプリケーション4と、BCサーバ101とを備える。
データ検証装置1は、BCサーバ2を備える装置であり、分散型台帳5に登録する電子データを検証する装置であり、データ登録参照検証装置とも呼ばれる。
BCサーバ2は、BCを構成するサーバであり、SC(Smart Contract)自動生成部6と、データコントロール部7と、データ検証部8と、データ登録参照部9と、分散型台帳5とを備える。
SC自動生成部6は、クライアントアプリケーション4から検証ルールを示すデータを受信し、受信したデータに基づいてデータ検証部8を生成し、生成したデータ検証部8をデプロイする。検証ルールは、分散型台帳5に登録する電子データを検証するためのルールであり、分散型台帳5に登録される電子データが従うべきルールである。
データコントロール部7は、クライアントアプリケーション4からデータを受信し、受信したデータに基づいてデータ登録部10とデータ参照部11とデータ検証部8との各々を検証する。データ検証部8を検証する処理は、データ検証部8がSC自動生成部6によって生成されたか否かを判定する処理であり、データ検証処理に対応するプログラムがBC内において生成されたか否かを判定する処理である。データ検証処理に対応するプログラムはデータ検証部8を実現するプログラムである。データ検証処理は、登録データが検証ルールに従うか否かを判定する処理である。
また、データコントロール部7は、データ登録部10に登録データを送信し、データ参照部11に参照事項データを送信し、データ参照部11から参照データを受信する。登録データは、分散型台帳5に登録することを要求された電子データであり、分散型台帳5に登録される可能性がある電子データである。参照事項データは、分散型台帳5において参照すべき事項を示す電子データであり、分散型台帳5に登録されている電子データを参照する指示を示す電子データである。参照データは、データ参照部11が参照した電子データであり、参照事項データに対応する電子データであり、分散型台帳5に登録されている電子データである。
データコントロール部7は、登録指示処理を実行し、登録指示処理が示す電子データのみが分散型台帳に登録される場合、かつ、検証登録処理によって分散型台帳5に電子データが登録される場合に、参照データが検証登録処理によって分散型台帳5に登録されたと判定する。登録指示処理は、電子データを分散型台帳5に登録するよう指示する処理である。検証登録処理は、データ検証部8を用いて登録データを検証し、かつ、登録データに対応する検証結果データに基づいて登録データを分散型台帳5に登録する処理である。即ち、検証登録処理は、データ検証処理によって登録データが検証ルールに従うと判定された場合に、登録データを分散型台帳5に登録する処理である。検証結果データは、データ検証部8による検証結果を示すデータである。登録データに対応する検証結果データは、データ検証部8が登録データを検証した結果を示すデータである。
データコントロール部7は、登録指示処理が示す電子データのみが分散型台帳5に登録される場合、検証登録処理によって分散型台帳5に電子データが登録される場合、かつ、参照データの送信元アドレスが検証登録処理に対応するプログラムに対応するアドレスである場合に、参照データが検証登録処理によって分散型台帳5に登録されたと判定する。検証登録処理に対応するプログラムは、データ登録部10を実現するプログラムである。検証登録処理に対応するプログラムに対応するアドレスは、データ登録部10を示すデータのアドレスである。
データ検証部8は、データ登録部10から登録データを受信し、受信した登録データに対してデータ検証処理を実行する。
データ登録参照部9は、データ登録部10とデータ参照部11とを備える。
データ登録部10は、データコントロール部7から登録データを受信し、受信した登録データを検証するために登録データをデータ検証部8に送信し、データ検証部8から登録データを検証した結果を示すデータを受信し、データ検証部8によって検証された登録データを分散型台帳5に登録する。データ登録部10は、データ検証処理に対応するプログラムがBC内において生成されたと判定された場合に検証登録処理を実行する。
データ参照部11は、データコントロール部7から参照事項データを受信し、受信した参照事項データに基づいて分散型台帳5から参照データを取得し、取得した参照データをデータコントロール部7に送信する。この際、データ参照部11は、データ検証処理に対応するするプログラムがBC内において生成されたと判定された場合、かつ、参照データが検証登録処理によって分散型台帳5に登録されたと判定された場合にデータ参照処理を実行する。データ参照処理は、参照事項データに基づいて分散型台帳5に登録されている電子データを参照する処理である。なお、データ検証部8がBC内において生成された場合、かつ、データ登録部10が検証登録処理及び限定登録処理を実行する場合に、参照データが検証登録処理によって分散型台帳5に登録されたと判定される。限定登録処理は、登録データがデータコントロール部7から送信されたデータである場合においてのみ分散型台帳5に登録データを登録する処理である。データ登録部10が限定登録処理を実行する場合、登録指示処理が示す電子データのみが分散型台帳5に登録される。
分散型台帳5は、BCサーバ2に格納されており、データ登録部10によってデータを登録される。分散型台帳5に登録されているデータは、データ参照部11によって参照される。
なお、SC自動生成部6と、データコントロール部7と、データ検証部8と、データ登録参照部9と、データ登録部10と、データ参照部11との各々はSCである。SCは、BCシステム90において、規定のルールに従ってトランザクション又は外部情報等をトリガーとして実行されるプログラムである。プログラムは、典型的にはコンピュータの実行ファイルを指す。
BCネットワーク3は、BCサーバ2及びBCサーバ101等のBCサーバと接続しているネットワークである。BCネットワーク3は、単数もしくは複数のBCサーバと接続している。
BCサーバ101は、BCサーバ2と同等の機能を有していなくてもよい。BCサーバ101の個数は複数であってもよい。
クライアントアプリケーション4は、検証ルール送受信部12と、登録データ送受信部13と、参照事項データ送受信部14と、参照データ受信部15とを備えるアプリケーションである。クライアントアプリケーション4は、BCを構成するサーバと通信する装置であり、アプリケーションプログラムを実行する装置である。なお、クライアントアプリケーション4が備える各部がデータ検証装置1に対して送信するデータは、クライアントアプリケーション4がユーザから受信したデータであってもよく、クライアントアプリケーション4に対してユーザが入力したデータであってもよい。ユーザはBCシステム90の利用者である。ユーザは人間に限らずコンピュータ等であってもよい。
検証ルール送受信部12は、検証ルールを示すデータをSC自動生成部6に送信する。
登録データ送受信部13は、使用するデータ登録参照部9を指定し、指定したデータ登録参照部9に対応するデータコントロール部7に登録データを送信する。なお、登録データ送受信部13は使用するデータ登録部10を指定してもよい。
参照事項データ送受信部14は、使用するデータ登録参照部9を指定し、指定したデータ登録参照部9に対応するデータコントロール部7に参照事項データを送信する。なお、参照事項データ送受信部14は使用するデータ参照部11を指定してもよい。
参照データ受信部15は、データコントロール部7から参照データを受信する。
なお、BCシステム90がクライアントアプリケーション4を備えず、ユーザがBCサーバ2にアクセスしてBCサーバ2を制御することにより、クライアントアプリケーション4が備える機能と同等の機能が実現されてもよい。
図2は、BCシステム90のハードウェア構成例を示している。
図2は、BCサーバ2と、クライアントアプリケーション4と、BCサーバ101との各々が独立した装置において動作する場合における具体例を示している。各装置は、プロセッサ51とメモリ52と補助記憶装置53と通信インタフェース54等のハードウェアを備える。各装置が備えるハードウェアはバスにより適宜接続されている。
バスは、ハードウェア間を電気的に接続し、データのやり取りが行われる信号経路である。装置間及び機器間は通信経路を介して接続されている。通信経路は、有線通信の経路であってもよく、無線通信の経路であってもよい。
プロセッサ51は、補助記憶装置53に格納されているプログラムを読み込み、読み込んだプログラムをメモリ52に展開して実行する。プロセッサ51は、バスを介して他のハードウェアと接続しており、各ハードウェアを制御する。プロセッサ51は、プロセッシングを行うIC(Integrated Circuit)であればよく、具体例として、マイクロプロセッサ又はDSP(Digital Signal Processor)であってもよい。各装置は複数のプロセッサを備えてもよい。
メモリ52には、プロセッサ51が補助記憶装置53から呼び出したプログラムが展開される。メモリ52は、メインメモリとも呼ばれ、具体例として、RAM(Random Access Memory)等の揮発性の半導体メモリ等である。
補助記憶装置53は、ソフトウェア、ファームウェア、又はソフトウェアとファームウェアの組み合わせが記述されたプログラムと、OS(Operating System)等を記憶する。また、補助記憶装置53は各種情報等を記憶する。なお、データと情報とは同等の意味を有することもある。補助記憶装置53は、具体例として、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、HDD(Hard Disk Drive)等の不揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD(Digital Versatile Disc)等の可搬記録媒体等である。なお、各装置は外部の記憶装置を適宜利用してもよい。
通信インタフェース54は、ハードウェア間において情報の授受を行う接続部である。
なお、BCシステム90の各機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせにより実現することができる。BCシステム90の各機能について、一部を専用のハードウェアにより実現し、残りをソフトウェア又はファームウェアにより実現してもよい。ソフトウェア、ファームウェア、又はソフトウェアとファームウェアの組み合わせはプログラムとして記述されていればよい。
BCサーバ2を実現する装置において、プロセッサ51はBCサーバ2が備える各部の制御を担当し、メモリ52には、プロセッサ51が補助記憶装置53から呼び出したプログラムであって、BCサーバ2が備える各部を実現するプログラムが展開される。BCサーバ2を実現する装置において、補助記憶装置53は、BCサーバ2が備える各部の機能を実現するプログラムと、分散型台帳5に登録された情報とを記憶する。BCサーバ2を実現する装置において、SC自動生成部6及びデータコントロール部7の各々は、通信インタフェース54を用いてクライアントアプリケーション4及びBCサーバ101等に接続する。
クライアントアプリケーション4を実現する装置において、プロセッサ51はクライアントアプリケーション4が備える各部の制御を担当し、メモリ52には、プロセッサ51が補助記憶装置53から呼び出したプログラムであって、クライアントアプリケーション4が備える各部の機能を実現するプログラムが展開される。クライアントアプリケーション4を実現する装置において、補助記憶装置53は、クライアントアプリケーション4が備える各部の機能を実現するプログラムを記憶する。クライアントアプリケーション4を実現する装置において、クライアントアプリケーション4が備える各部は、通信インタフェース54を用いてBCサーバ2等に接続する。
各装置はネットワークを経由して接続される。図2では各装置が1つのネットワークに接続している具体例を示されているが、BCサーバ2及びクライアントアプリケーション4と、BCサーバ2及びBCサーバ101との各々の間において通信可能であれば、ネットワークは複数に分割されていてもよい。また、BCサーバ2とクライアントアプリケーション4とBCサーバ101との少なくとも一部は、1つの装置によって実現されてもよい。また、各装置は、物理的に実体を有する装置に限られず、仮想化技術によって仮想化された装置であってもよい。
本明細書に記載されているいずれのプログラムも、コンピュータが読み取り可能な不揮発性の記録媒体に記録されていてもよい。不揮発性の記録媒体は、具体例として、光ディスク又はフラッシュメモリである。本明細書に記載されているいずれのプログラムも、プログラムプロダクトとして提供されてもよい。
***動作の説明***
データ検証装置1の動作手順はデータ検証方法に相当する。また、データ検証装置1の動作を実現するプログラムはデータ検証プログラムに相当する。
図3は、デプロイ処理の一例を示すフローチャートである。デプロイ処理は、データ検証部8を生成し、生成したデータ検証部8をBCサーバ2にデプロイする処理であり、データ検証部生成及びデプロイ処理とも呼ばれる。
(ステップS001)
検証ルール送受信部12は、ユーザが入力した検証ルールを示すデータをSC自動生成部6に送信する。
(ステップS002)
SC自動生成部6は、検証ルール送受信部12から検証ルールを示すデータを受信し、受信したデータが示す検証ルールに基づいてデータ検証部8を生成する。具体例として、データ検証部8は、SC自動生成部6があらかじめ保持しているSCの原型であるテンプレートに対して受信したデータが示す検証ルールを埋め込むことにより生成される。
(ステップS003)
SC自動生成部6は、生成したデータ検証部8をBCサーバ2にデプロイする。
以上のデプロイ処理によって、BCネットワーク3に接続したBCサーバにおいてデータ検証部8が使用可能となる。なお、BCネットワーク3に接続したBCサーバの内、一部のBCサーバにおいてのみデータ検証部8が使用可能となってもよい。
図4は、データ登録処理の一例を示すフローチャートである。図4を参照してデータ登録処理を説明する。
(ステップS011)
登録データ送受信部13は、使用するデータ登録参照部9を指定し、ユーザが入力した登録データを、指定したデータ登録参照部9に対応するデータコントロール部7に送信する。
(ステップS012)
データコントロール部7は、指定されたデータ登録参照部9が備えるデータ登録部10を検証する。ステップS013及びステップS014において、データコントロール部7が検証する事項を説明する。
(ステップS013)
データコントロール部7は、データ登録部10が検証登録処理を実行するか否かを判定する。
具体的には、データコントロール部7は、データ登録部10を実現するプログラムの構造について以下の3点の各々が満たされているか否かを確認する。3点全てが満たされている場合、データコントロール部7は、データ登録部10が検証登録処理を実行すると判定する。
1点目は、データ登録部10の構造が、データ登録部10が受信した登録データをデータ検証部8に送信する構造であることである。
2点目は、データ登録部10の構造が、登録データに対応する検証結果データをデータ検証部8から受信する構造であることである。
3点目は、データ登録部10の構造が、データ検証部8から受信した検証結果データであって、登録データに対応する検証結果データに基づいて、分散型台帳5に登録データを登録するか否かを判断する構造であることである。
データ登録部10が検証登録処理を実行する場合、データ検証装置1はステップS014に遷移する。データ登録部10がデータ検証部8を用いて登録データを検証しない場合、又は、データ登録部10が登録データに対応する検証結果データに基づいて登録データを分散型台帳5に登録しない場合、データ検証装置1は、以降の全ての処理をスキップし、データ登録処理を終了する。
(ステップS014)
データコントロール部7は、データ登録部10が限定登録処理を実行するか否かを判定する。
具体的には、データコントロール部7は、データ登録部10を実現するプログラムの構造について以下の2点の各々が満たされているか否かを確認する。2点全てが満たされている場合、データコントロール部7は、データ登録部10が限定登録処理を実行すると判定する。
1点目は、データ登録部10の構造が、データ登録部10が受信した登録データがデータコントロール部7から送信されたデータであるか否かを確認する構造であることである。
2点目は、データ登録部10の構造が、データコントロール部7から送信されていないと判断した登録データについては、分散型台帳5に登録せずにプログラムの処理を終了する構造であることである。
データ登録部10が限定登録処理を実行する場合、データ検証装置1はステップS015に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ登録処理を終了する。
(ステップS015)
データコントロール部7は、データ登録部10が用いるデータ検証部8を検証する。ステップS016において、データコントロール部7が検証する事項を説明する。
(ステップS016)
データコントロール部7は、データ検証部8が真正データ検証部である否かを判定する。本実施の形態に係る真正データ検証部は、SC自動生成部6によって生成され、かつ、SC自動生成部6によってデプロイされたデータ検証部である。データ検証部8が真正データ検証部であるか否かは、データ検証部8の送信元アドレスがSC自動生成部6を示すアドレスであるか否かによって判定される。
データ検証部8が真正データ検証部である場合、データ検証装置1はステップS017に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ登録処理を終了する。
(ステップS017)
データコントロール部7は、指定されたデータ登録参照部9が備えるデータ登録部10に登録データを送信する。
(ステップS018)
データ登録部10は、登録データを受信し、受信した登録データをデータ検証部8に送信する。
(ステップS019)
データ検証部8は、登録データを受信し、受信した登録データを検証する。具体的には、データ検証部8は、受信した登録データが、データ検証部8を生成する際に入力された検証ルールに則っているか否かを検証する。
(ステップS020)
データ検証部8は、受信した登録データを検証した結果を示す検証結果データをデータ登録部10に送信する。データ検証部8は、検証ルールに則っている登録データを受信した場合に検証結果が正であることを示す検証結果データをデータ登録部10に送信し、それ以外の場合に検証結果が否であることを示す検証結果データをデータ登録部10に送信する。
(ステップS021)
データ登録部10は、検証結果データを受信し、受信した検証結果データを確認する。受信した検証結果データが示す検証結果が正を示す場合、データ検証装置1はステップS022に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ登録処理を終了する。
(ステップS022)
データ登録部10は、登録データを分散型台帳5に送信し、登録データを分散型台帳5に登録する。
図5は、データ参照処理の一例を示すフローチャートである。図5を参照してデータ参照処理を説明する。
(ステップS031)
参照事項データ送受信部14は、使用するデータ登録参照部9を指定し、ユーザが入力した参照事項データを、指定したデータ登録参照部9に対応するデータコントロール部7に送信する。
(ステップS032)
データコントロール部7は、指定されたデータ登録参照部9が備えるデータ参照部11を検証する。ステップS033及びステップS034において、データコントロール部7が検証する事項を説明する。
(ステップS033)
データコントロール部7は、データ参照部11を備えるデータ登録参照部9がデータ登録部10を備えるか否かを確認する。具体的には、データコントロール部7は、データ登録参照部9を実現するプログラムにデータ登録部10を実現する部分及びデータ参照部11を実現する部分が含まれているか否かを確認する。データ登録参照部9を実現するプログラムにデータ登録部10を実現する部分及びデータ参照部11を実現する部分が含まれている場合、データコントロール部7は、データ参照部11を備えるデータ登録参照部9がデータ登録部10を備えると判定する。
データ参照部11を備えるデータ登録参照部9がデータ登録部10を備える場合、データ検証装置1はステップS034に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS034)
データコントロール部7は、データ参照部11が限定参照処理を実行するか否かを判定する。限定参照処理は、受信した参照事項データがデータコントロール部7から送信されたデータである場合においてのみ分散型台帳5に登録されているデータを参照する処理である。具体的には、データコントロール部7は、データ参照部11を実現するプログラムの構造について以下の2点の各々が満たされているか否かを確認する。2点全てが満たされている場合、データコントロール部7は、データ参照部11が限定参照処理を実行すると判定する。
1点目は、データ参照部11の構造が、データ参照部11が参照事項データを受信したときに、データ参照部11が受信した参照事項データがデータコントロール部7から送信されたか否かを確認する構造であることである。
2点目は、データ参照部11の構造が、データ参照部11が受信した参照事項データがデータコントロール部7から送信されたデータではない場合、データ参照部11が分散型台帳5に登録されているデータを参照せずに処理を終了する構造であることである。
データ参照部11が限定参照処理を実行する場合、データ検証装置1はステップS035に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS035)
データコントロール部7は、データ参照部11を備えるデータ登録参照部9が備えるデータ登録部10を検証する。ステップS036及びステップS037において、データコントロール部7が検証する事項を説明する。
(ステップS036)
本ステップはステップS013と同様である。
データ登録部10が検証登録処理を実行する場合、データ検証装置1はステップS037に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS037)
本ステップはステップS014と同様である。
データ登録部10が限定登録処理を実行する場合、データ検証装置1はステップS038に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS038)
データコントロール部7は、データ登録部10が用いるデータ検証部8を検証する。ステップS039において、データコントロール部7が検証する事項を説明する。
(ステップS039)
本ステップはステップS016と同様である。
データ検証部8が真正データ検証部である場合、データ検証装置1はステップS040に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS040)
データコントロール部7は、指定されたデータ登録参照部9が備えるデータ参照部11に参照事項データを送信する。
(ステップS041)
データ参照部11は、受信した参照事項データを用いて分散型台帳5から参照データを取得する。
(ステップS042)
データ参照部11は、取得した参照データをデータコントロール部7に送信する。
(ステップS043)
データコントロール部7は、受信した参照データを参照データ受信部15に送信する。
***実施の形態1の効果の説明***
以上のように、本実施の形態によれば、データ登録部10は、分散型台帳5に登録データを登録する際に正当性が担保されたデータ検証部8を用いて登録データを検証し、検証結果に基づいて登録データを分散型台帳5に登録するか否かを決定する。そのため、データ登録部10によって分散型台帳5に登録されたデータの正当性が担保される。
また、データ登録部10は、データコントロール部7から送信された登録データのみを分散型台帳5に登録する。従って、本実施の形態によれば、データ登録部10の不当な使用を防ぐことができるため、データ登録部10によって分散型台帳5に登録されたデータの信頼性を高めることができる。
また、データコントロール部7は、分散型台帳5に登録されているデータを参照する際に、データ参照部11を備えるデータ登録参照部9が備えるデータ登録部10と、データ登録部10が使用するデータ検証部8との各々を検証する。そのため、データ参照部11が参照するデータが、正当性のあるデータ登録部10によって登録されたデータであることが担保される。
また、データ参照部11は、データコントロール部7から参照事項データが送信された場合においてのみ分散型台帳5からデータを取得する。そのため、データコントロール部7によってデータ登録部10及びデータ検証部8の検証が行われた上でデータ参照部11が分散型台帳5のデータを参照することが担保される。また、データ参照部11が取得したデータの正当性が担保される。
***他の構成***
<変形例1>
図6は、本変形例に係るデータ検証装置1のハードウェア構成例を示している。
データ検証装置1は、プロセッサ51、プロセッサ51とメモリ52、プロセッサ51と補助記憶装置53、あるいはプロセッサ51とメモリ52と補助記憶装置53とに代えて、処理回路58を備える。
処理回路58は、データ検証装置1が備える各部の少なくとも一部を実現するハードウェアである。
処理回路58は、専用のハードウェアであってもよく、また、メモリ52に格納されるプログラムを実行するプロセッサであってもよい。
処理回路58が専用のハードウェアである場合、処理回路58は、具体例として、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)又はこれらの組み合わせである。
データ検証装置1は、処理回路58を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路58の役割を分担する。
データ検証装置1において、一部の機能が専用のハードウェアによって実現されて、残りの機能がソフトウェア又はファームウェアによって実現されてもよい。
処理回路58は、具体例として、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせにより実現される。
プロセッサ51とメモリ52と補助記憶装置53と処理回路58とを、総称して「プロセッシングサーキットリー」という。つまり、データ検証装置1の各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
本明細書に記載されている他の装置についても、本変形例と同様の構成であってもよい。
実施の形態2.
以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
***構成の説明***
実施の形態1において、SC自動生成部6が生成したSCをBCサーバ2にデプロイすることができるBC基盤を利用する。
本実施の形態では、SC自動生成部6が生成したSCをBCサーバにデプロイすることができないBC基盤を利用する。本実施の形態において、BCサーバ2外からBCサーバ2にSCがデプロイされた場合においても、デプロイされたSCがSC自動生成部6によって生成されたSCであることを確認することができる。
図7は、本実施の形態に係るBCシステム90のシステム構成例を示している。
BCサーバ2は、SC自動生成部6と、データコントロール部7と、データ検証部8と、データ登録参照部9と、分散型台帳5とを備える。
本実施の形態に係るSC自動生成部6は、入力された検証ルールを示すデータに基づいてデータ検証部8を生成し、生成したデータ検証部8を示すデータを生成SCデプロイ部16に送信し、生成したSCを示すデータに対応するデータを分散型台帳5に登録する。SCを示すデータに対応するデータは、2つのSCが同一であるか否かを検証することに用いることができるデータであればどのようなデータであってもよく、具体例としてSCを示すデータのハッシュ値を示すデータである。ハッシュ値を算出するアルゴリズムは、具体例として、MD5、SHA-256、SHA-512、又はRIPEMD-160である。以下、SCを示すデータに対応するデータは、SCを示すデータのハッシュ値を示すデータであるものとする。
本実施の形態に係る分散型台帳5は、実施の形態1に係る分散型台帳5に登録されるデータに加え、SC自動生成部6によって登録されるデータを記録する。
本実施の形態に係るクライアントアプリケーション4は、実施の形態1に係るクライアントアプリケーション4が備える構成要素に加え、生成SCデプロイ部16を備える。
生成SCデプロイ部16は、SC自動生成部6からデータ検証部8を示すデータを受信し、受信したデータに対応するデータ検証部8をBCサーバ2にデプロイする。即ち、生成SCデプロイ部16は、データ検証処理に対応するプログラムを示すデータをBCサーバ2から受信し、受信したデータに対応するスマートコントラクトをサーバにデプロイする。
BCネットワーク3は実施の形態1のものと同様である。
なお、前述の通り、BCシステム90の構成はクライアントアプリケーション4を備えない構成であってもよい。
実施の形態2に係るBCシステム90のハードウェア構成例は、実施の形態1に係るBCシステム90のハードウェア構成例と同様である。
***動作の説明***
図8はデプロイ処理の一例を示すフローチャートである。図8を参照してデプロイ処理を説明する。
(ステップS051)
本ステップはステップS001と同様である。
(ステップS052)
本ステップはステップS002と同様である。
(ステップS053)
SC自動生成部6は、生成したデータ検証部8を示すデータのハッシュ値を算出する。
(ステップS054)
SC自動生成部6は、算出したハッシュ値を分散型台帳5に登録する。
(ステップS055)
SC自動生成部6は、生成したデータ検証部8を示すデータを生成SCデプロイ部16に送信する。
(ステップS056)
生成SCデプロイ部16は、受信したデータに対応するデータ検証部8をBCサーバ2にデプロイする。
以上のデプロイ処理によって、BCネットワーク3に接続したBCサーバにおいてデータ検証部8が使用可能になる。なお、BCネットワーク3に接続したBCサーバの内、一部のBCサーバにおいてのみデータ検証部8が使用可能になってもよい。
図9は、データ登録処理の一例を示すフローチャートである。図9を参照してデータ登録処理を説明する。なお、ステップS011からステップS015と、ステップS017からステップS022とは実施の形態1のものと同様である。
(ステップS023)
データコントロール部7は、データ検証部8が真正データ検証部であるか否かを確認する。本実施の形態に係る真正データ検証部は、SC自動生成部6によって生成され、生成SCデプロイ部16によってデプロイされたデータ検証部である。具体的には、データコントロール部7は、SC自動生成部6がデータ検証部8を生成した際に分散型台帳5に登録したハッシュ値と、検証するデータ検証部8を示すデータのハッシュ値とが一致する場合、データ検証部8が真正データ検証部であると判定する。
データ検証部8が真正データ検証部である場合、データ検証装置1はステップS017に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ登録処理を終了する。
図10は、データ参照処理の一例を示すフローチャートである。図10を参照してデータ参照処理を説明する。なお、ステップS031からステップS038と、ステップS040からステップS043とは実施の形態1のものと同様である。
(ステップS044)
本ステップはステップS023と同様である。
データ検証部8が真正データ検証部である場合、データ検証装置1はステップS040に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
***実施の形態2の効果の説明***
以上のように、本実施の形態によれば、SC自動生成部6が、生成したデータ検証部8を示すデータに対応するデータを分散型台帳5に登録する。そのため、データ検証部8がSC自動生成部6以外によってBCサーバ2にデプロイされた場合であっても、分散型台帳5に登録されているハッシュ値を用いることによって当該データ検証部8がSC自動生成部6によって生成されたSCであるか否かを検証することができる。従って、本実施の形態によれば、SC自動生成部6が生成したSCをBCサーバ2にデプロイすることができないようなBC基盤を利用した場合であっても、実施の形態1の効果と同様の効果を得ることができる。
実施の形態3.
以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
***構成の説明***
実施の形態1及び実施の形態2では、データ登録部10とデータ参照部11とがデータ登録参照部9に属している。
本実施の形態では、データ登録部10とデータ参照部11との各々が独立している。本実施の形態において、データ登録部10とデータ参照部11との各々が独立している場合においても、データ参照部11が参照したデータが正当性のあるデータ登録部10によって登録されたデータであることを確認することができる。
図11は、本実施の形態3に係るBCシステム90のシステム構成例を示している。
BCサーバ2は、SC自動生成部6と、データコントロール部7と、データ検証部8と、データ登録部10と、データ参照部11と、分散型台帳5とを備える。
データコントロール部7の機能は、基本的には前述のデータコントロール部7の機能と同様である。データコントロール部7は、データ登録部10及びデータ参照部11が同一のデータ登録参照部9に含まれているか否かを考慮しない。
クライアントアプリケーション4及びBCネットワーク3の各々は、実施の形態1のものと同様である。
なお、図11は、実施の形態1に係るデータ検証装置1においてデータ登録部10及びデータ参照部11を独立させた構成を示している。しかしながら、本実施の形態に係るデータ検証装置1の構成は、実施の形態2に係るデータ検証装置1においてデータ登録部10及びデータ参照部11を独立させた構成であってもよい。
以下、データ検証装置1の構成は図11に示す構成であるものとする。
実施の形態3に係るハードウェア構成例は、前述の実施の形態に係るハードウェア構成例と同様である。
***動作の説明***
本実施の形態に係るデプロイ処理は、前述の実施の形態に係るデプロイ処理と同様である。
図12は、データ登録処理の一例を示すフローチャートである。図12を参照してデータ登録処理を説明する。なお、ステップS015からステップS016は実施の形態1のものと同様である。
(ステップS061)
登録データ送受信部13は、使用するデータ登録部10を指定し、ユーザが入力した登録データを、指定したデータ登録部10に対応するデータコントロール部7に送信する。
(ステップS062)
データコントロール部7は、指定されたデータ登録部10を検証する。ステップS063及びステップS064において、データコントロール部7が検証する事項を説明する。
(ステップS063)
本ステップはステップS013と同様である。
データ登録部10が検証登録処理を実行する場合、データ検証装置1はステップS064に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ登録処理を終了する。
(ステップS064)
本ステップはステップS014と同様である。
(ステップS065)
データコントロール部7は、指定されたデータ登録部10に登録データを送信する。
(ステップS066)
本ステップはステップS018と同様である。
(ステップS067)
本ステップはステップS019と同様である。
(ステップS068)
本ステップはステップS020と同様である。
(ステップS069)
本ステップはステップS021と同様である。
受信した検証結果データが示す検証結果が正を示す場合、データ検証装置1はステップS070に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ登録処理を終了する。
(ステップS070)
本ステップはステップS022と同様である。
図13は、データ参照処理の一例を示すフローチャートである。図13を参照してデータ参照処理を説明する。
(ステップS081)
参照事項データ送受信部14は、使用するデータ参照部11を指定し、ユーザが入力した参照事項データを、指定したデータ参照部11に対応するデータコントロール部7に送信する。
(ステップS082)
データコントロール部7は、指定されたデータ参照部11を検証する。ステップS083及びステップS084において、データコントロール部7が検証する事項を説明する。
(ステップS083)
データコントロール部7は、データ参照部11がアドレス送信処理を実行するか否かを確認する。アドレス送信処理は、分散型台帳5から取得したデータとともに、取得したデータの送信元アドレスを示すデータをデータコントロール部7に送信する処理である。送信元アドレスを示すデータは、送信元アドレスそのものを示すデータであってもよく、送信元アドレスを示すデータのハッシュ値又は送信元アドレスを示すデータを暗号化したデータ等、送信元アドレスそのものを示すデータを変換したデータであってもよい。具体的には、データコントロール部7は、データ参照部11を実現するプログラムの構造について以下の2点の各々が満たされているか否かを確認する。2点全てが満たされている場合、データコントロール部7は、データ参照部11がアドレス送信処理を実行すると判定する。
1点目は、データ参照部11の構造が、データ参照部11が分散型台帳5からデータを取得する際に、取得したデータの送信元アドレスを示すデータも取得する構造であることである。
2点目は、データ参照部11の構造が、データ参照部11が取得したデータと共に、取得したデータの送信元アドレスを示すデータもデータコントロール部7に送信する構造であることである。
データ参照部11がアドレス送信処理を実行する場合、データ検証装置1はステップS084に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS084)
本ステップはステップS034と同様である。
データ参照部11が限定参照処理を実行する場合、データ検証装置1はステップS085に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS085)
データコントロール部7は、指定されたデータ参照部11に参照事項データを送信する。
(ステップS086)
本ステップはステップS041と同様である。
(ステップS087)
データ参照部11は、取得した参照データの送信元アドレスを示すデータをデータコントロール部7に送信する。
(ステップS088)
データコントロール部7は、受信したデータに対応するデータ登録部10を検証する。ここで、具体例として、データ登録部10を示すデータのアドレスと、受信したデータが示すアドレスとが一致する場合、又は、データ登録部10を示すデータのアドレスのハッシュ値と、受信したデータが示すハッシュ値とが一致する場合において、データ登録部10は受信したデータに対応する。ステップS089及びステップS090において、データコントロール部7が検証する事項を説明する。
(ステップS089)
本ステップはステップS013と同様である。
データ登録部10が検証登録処理を実行する場合、データ検証装置1はステップS090に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。なお、受信したデータに対応するデータ登録部10が存在しない場合も、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS090)
本ステップはステップS014と同様である。
データ登録部10が限定登録処理を実行する場合、データ検証装置1はステップS091に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS091)
本ステップはステップS015と同様である。ステップS092において、データコントロール部7が検証する事項を説明する。
(ステップS092)
本ステップはステップS016と同様である。
データ検証部8が真正データ検証部である場合、データ検証装置1はステップS093に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS093)
本ステップはステップS043と同様である。
***実施の形態3の効果の説明***
以上のように、本実施の形態によれば、データコントロール部7が、データ参照部11が取得したデータと共に、取得したデータの送信元アドレスを示すデータを受信し、受信したデータに基づいて参照データを登録したデータ登録部10を特定し、特定したデータ登録部10を検証することができる。そのため、参照データが、正当性のあるデータ登録部10によって登録された正当性のあるデータであることが担保される。従って、本実施の形態によれば、データ登録部10とデータ参照部11との各々が独立している場合であっても、データ参照時において、実施の形態1の効果と同様の効果を得ることができる。
実施の形態4.
以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
***構成の説明***
実施の形態1、実施の形態2、及び実施の形態3では、データ登録時又はデータ参照時に、データ登録部10及びデータ参照部11の各々を逐次検証する。
本実施の形態では、データ登録部10及びデータ参照部11の各々を検証した結果を示す検証結果データを分散型台帳5に登録し、分散型台帳5に登録されている検証結果データを次回以降の検証実行時に適宜利用する。
図14は、本実施の形態に係るBCシステムのシステム構成例を示している。
BCサーバ2は、SC自動生成部6と、データコントロール部7と、データ検証部8と、データ登録参照部9と、分散型台帳5とを備える。
データコントロール部7は、前述の機能に加え、データ登録部10とデータ参照部11とデータ検証部8との各々を検証し、検証した結果を示す検証結果データを分散型台帳5に登録する機能を備える。また、データコントロール部7は、分散型台帳5に登録されている検証結果データを参照してデータ登録部10とデータ参照部11とデータ検証部8との各々を検証する機能を備える。つまり、データコントロール部7は、第1検証結果データ及び第2検証結果データを分散型台帳5に登録する。第1検証結果データは、検証登録処理に対応するプログラムを検証した結果を示す。第2検証結果データは、データ参照処理に対応するプログラムを検証した結果を示す。データ参照処理に対応するプログラムは、データ参照部11を実現するプログラムである。また、データコントロール部7は、分散型台帳5に登録されている第1検証結果データを参照して検証登録処理に対応するプログラムを検証し、分散型台帳5に登録されている第2検証結果データを参照してデータ参照処理に対応するプログラムを検証する。データコントロール部7は各部を特定する際にどのようなデータを用いてもよいが、以下ではデータコントロール部7が各部を特定する際にハッシュ値を用いるものとする。
クライアントアプリケーション4及びBCネットワーク3の各々は、実施の形態1のものと同様である。
なお、図14は、実施の形態1に係るデータ検証装置1に対して、データ登録部10とデータ参照部11とデータ検証部8との各々に対応する検証結果データを分散型台帳5に登録する機能と、分散型台帳5に登録されている検証結果データであって、データ登録部10とデータ参照部11とデータ検証部8との各々に対応する検証結果データを参照する機能とを追加した構成を示している。本実施の形態に係るデータ検証装置1は、実施の形態2及び実施の形態3のいずれかに係るデータ検証装置1に対してこれらの機能を追加した構成であってもよい。
以下、データ検証装置1の構成は図14に示す構成であるものとする。
実施の形態4に係るハードウェア構成例は、前述の実施の形態に係るハードウェア構成例と同様である。
***動作の説明***
本実施の形態に係るデプロイ処理は、前述の実施の形態に係るデプロイ処理と同様である。
図15及び図16はデータ登録処理の一例を示すフローチャートである。図15及び図16を参照してデータ登録処理を説明する。なお、ステップS017からステップS022は実施の形態1のものと同様である。
(ステップS101)
本ステップはステップS011と同様である。以下、本フローチャートの説明において、データ登録部10は、本ステップにおいて指定されたデータ登録参照部9が備えるデータ登録部10を指す。
(ステップS102)
本ステップはステップS012と同様である。ステップS103及びステップS104において、データコントロール部7が検証する事項を説明する。
(ステップS103)
データコントロール部7は、データ登録部10を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されているか否かを確認する。具体的には、データコントロール部7は、分散型台帳5に登録されているデータについて以下の2点の各々が満たされているか否かを確認する。2点全てが満たされている場合、データコントロール部7は、データ登録部10を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されていると判定する。
1点目は、データ登録部10を示すデータのハッシュ値が分散型台帳5に登録されていることである。
2点目は、データ登録部10を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されていることである。
データ登録部10を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されている場合、データ検証装置1はステップS104に遷移する。それ以外の場合、データ検証装置1はステップS105に遷移する。
(ステップS104)
データ登録部10を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されている場合、データコントロール部7は、当該検証結果データが示す検証結果が正を示すか否かを確認する。なお、データ登録部10を示すデータのハッシュ値と、当該ハッシュ値に対応する検証結果データとは、ステップS109又はステップS110において分散型台帳5に登録される。
分散型台帳5に登録されている検証結果データであって、データ登録部10を示すデータのハッシュ値に対応する検証結果データが示す検証結果が正を示す場合、データ検証装置1はステップS017に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ登録処理を終了する。
(ステップS105)
データ登録部10を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されていない場合、データコントロール部7は、ステップS013に示す処理を実行することにより、データ登録部10が検証登録処理を実行するか否かを確認する。
データ登録部10が検証登録処理を実行する場合、データ検証装置1はステップS106に遷移する。それ以外の場合、データ検証装置1はステップS110に遷移する。
(ステップS106)
データ登録部10が検証登録処理を実行する場合、データコントロール部7は、ステップS014に示す処理を実行することにより、データ登録部10が限定登録処理を実行するか否かを確認する。
データ登録部10が限定登録処理を実行する場合、データ検証装置1はステップS107に遷移する。それ以外の場合、データ検証装置1はステップS110に遷移する。
(ステップS107)
データ登録部10が限定登録処理を実行する場合、データコントロール部7は、データ登録部10が用いるデータ検証部8を検証する。ステップS108において、データコントロール部7が検証する事項を説明する。
(ステップS108)
本ステップはステップS016と同様である。
データ検証部8が真正データ検証部である場合、データ検証装置1はステップS109に遷移する。それ以外の場合、データ検証装置1はステップS110に遷移する。
(ステップS109)
データ検証部8が真正データ検証部である場合、データコントロール部7は、データ登録部10を示すデータのハッシュ値と、データ登録部10の検証結果が正であることを示す検証結果データとを対応させて分散型台帳5に登録する。
(ステップS110)
データ登録部10が検証登録処理を実行しない場合、データ登録部10が限定登録処理を実行しない場合、又は、データ検証部8が真正データ検証部ではない場合、データコントロール部7は、データ登録部10を示すデータのハッシュ値と、データ登録部10の検証結果が否であることを示す検証結果データとを対応させて分散型台帳5に登録する。
図17及び図18は、データ参照処理の一例を示すフローチャートである。図17及び図18を参照してデータ参照処理を説明する。なお、ステップS040からステップS043は実施の形態1のものと同様である。
(ステップS121)
本ステップはステップS031と同様である。以下、本フローチャートの説明において、データ参照部11は本ステップにおいて指定されたデータ登録参照部9が備えるデータ参照部11を指す。
(ステップS122)
本ステップはステップS032と同様である。ステップS123からステップS126において、データコントロール部7が検証する事項を説明する。
(ステップS123)
データコントロール部7は、データ参照部11を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されているか否かを確認する。データコントロール部7は、分散型台帳5に登録されているデータについて、以下の2点の各々が満たされているか否かを確認する。2点全てが満たされている場合、データ参照部11を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されていると判定する。
1点目は、データ参照部11を示すデータのハッシュ値が分散型台帳5に登録されていることである。
2点目は、データ参照部11を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されていることである。
データ参照部11を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されている場合、データ検証装置1はステップS124に遷移する。それ以外の場合、データ検証装置1はステップS125に遷移する。
(ステップS124)
データ参照部11を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されている場合、データコントロール部7は、当該検証結果データが示す検証結果が正を示すか否かを確認する。なお、データ参照部11を示すデータのハッシュ値と、当該ハッシュ値に対応する検証結果データとは、ステップS130又はステップS131において分散型台帳5に登録される。
分散型台帳5に登録されている検証結果データであって、データ参照部11を示すデータのハッシュ値に対応する検証結果データが示す検証結果が正を示す場合、データ検証装置1はステップS040に遷移する。それ以外の場合、データ検証装置1は、以降の全ての処理をスキップし、データ参照処理を終了する。
(ステップS125)
データ参照部11を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されていない場合、データコントロール部7は、ステップS033に示す処理を実行することにより、データ参照部11を備えるデータ登録参照部9がデータ登録部10を備えるか否かを確認する。
データ参照部11を備えるデータ登録参照部9がデータ登録部10を備える場合、データ検証装置1はステップS126に遷移する。それ以外の場合、データ検証装置1はステップS131に遷移する。
(ステップS126)
データ参照部11を備えるデータ登録参照部9がデータ登録部10を備える場合、データコントロール部7は、ステップS034に示す処理を実行することにより、データ参照部11が限定参照処理を実行するか否かを確認する。
データ参照部11が限定参照処理を実行する場合、データ検証装置1はステップS127に遷移する。それ以外の場合、データ検証装置1はステップS131に遷移する。
(ステップS127)
データ参照部11が限定参照処理を実行する場合、データコントロール部7は、データ参照部11を備えるデータ登録参照部9が備えるデータ登録部10を検証する。ステップS128とステップS129とステップS105とステップS106とにおいて、データコントロール部7が検証する事項を説明する。
(ステップS128)
本ステップはステップS103と同様である。
データ登録部10を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されている場合、データ検証装置1はステップS129に遷移する。それ以外の場合、データ検証装置1はステップS105に遷移する。
(ステップS129)
本ステップはステップS104と同様である。なお、データ登録部10を示すデータのハッシュ値と、当該ハッシュ値に対応する検証結果データとは、ステップS109又はステップS110において分散型台帳5に登録される。
分散型台帳5に登録されている検証結果データであって、データ登録部10を示すデータのハッシュ値に対応する検証結果データが示す検証結果が正を示す場合、データ検証装置1はステップS130に遷移する。それ以外の場合、データ検証装置1はステップS131に遷移する。
(ステップS130)
分散型台帳5に登録されているデータ登録部10を示すデータのハッシュ値に対応する検証結果データが示す検証結果が正を示す場合、データコントロール部7は、データ参照部11を示すデータのハッシュ値と、検証結果が正であることを示す検証結果データとを対応させて分散型台帳5に登録する。
なお、データ登録部10を示すデータのハッシュ値に対応する検証結果データが分散型台帳5に登録されていない場合、データ登録処理において説明した通り、ステップS105からステップS108と、ステップS109又はステップS110とに示す処理が実行される。また、データコントロール部7は、ステップS109に示す処理を実行した後に、データ参照部11を示すデータのハッシュ値と、検証結果が正であることを示す検証結果データとを対応させて分散型台帳5に登録する。
(ステップS131)
データコントロール部7は、ステップS110に示す処理を実行した後に、データ参照部11を示すデータのハッシュ値と、検証結果が否であることを示す検証結果データとを対応させて分散型台帳5に登録する。
***実施の形態4の効果の説明***
以上のように、本実施の形態によれば、データコントロール部7が検証実行時に検証結果データを分散型台帳5に登録する。ここで、データコントロール部7は、分散型台帳5に登録されている検証結果データを検証実行時に利用することができる。従って、本実施の形態によれば、実施の形態1の効果と同様の効果が得られ、さらに、各部の検証に要する時間を短縮することができる。
***他の実施の形態***
前述した各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
また、実施の形態は、実施の形態1から4で示したものに限定されるものではなく、必要に応じて種々の変更が可能である。フローチャート等を用いて説明した手順は適宜変更されてもよい。
1 データ検証装置、2,101 BCサーバ、3 BCネットワーク、4 クライアントアプリケーション、5 分散型台帳、6 SC自動生成部、7 データコントロール部、8 データ検証部、9 データ登録参照部、10 データ登録部、11 データ参照部、12 検証ルール送受信部、13 登録データ送受信部、14 参照事項データ送受信部、15 参照データ受信部、16 生成SCデプロイ部、51 プロセッサ、52 メモリ、53 補助記憶装置、54 通信インタフェース、58 処理回路、90 BCシステム。

Claims (9)

  1. ブロックチェーンを構成するサーバに格納されている分散型台帳に登録する電子データを検証するデータ検証装置であって、
    前記分散型台帳に登録することを要求された電子データである登録データが、前記分散型台帳に登録する電子データを検証するためのルールである検証ルールに従うか否かを判定するデータ検証処理を実行するデータ検証部と、
    前記データ検証処理に対応するプログラムが前記ブロックチェーン内において生成されたか否かを判定するデータコントロール部と、
    前記データ検証処理に対応するプログラムが前記ブロックチェーン内において生成されたと判定された場合に検証登録処理を実行するデータ登録部と
    を備え、
    前記検証登録処理は、前記データ検証処理によって前記登録データが前記検証ルールに従うと判定された場合に、前記登録データを前記分散型台帳に登録する処理であるデータ検証装置。
  2. 前記データ検証装置は、さらに、
    前記データ検証処理に対応するするプログラムが前記ブロックチェーン内において生成されたと判定された場合、かつ、前記分散型台帳に登録されている電子データを参照する指示を示す参照事項データに対応する電子データであって、前記分散型台帳に登録されている電子データである参照データが前記検証登録処理によって前記分散型台帳に登録されたと判定された場合に、前記参照事項データに基づいて前記分散型台帳に登録されている電子データを参照する処理であるデータ参照処理を実行するデータ参照部
    を備える請求項1に記載のデータ検証装置。
  3. 前記データコントロール部は、電子データを前記分散型台帳に登録するよう指示する登録指示処理を実行し、前記登録指示処理が示す電子データのみが前記分散型台帳に登録される場合、かつ、前記検証登録処理によって前記分散型台帳に電子データが登録される場合に、前記参照データが前記検証登録処理によって前記分散型台帳に登録されたと判定する請求項2に記載のデータ検証装置。
  4. 前記データコントロール部は、電子データを前記分散型台帳に登録するよう指示する登録指示処理を実行し、前記登録指示処理が示す電子データのみが前記分散型台帳に登録される場合、前記検証登録処理によって前記分散型台帳に電子データが登録される場合、かつ、前記参照データの送信元アドレスが前記検証登録処理に対応するプログラムに対応するアドレスである場合に、前記参照データが前記検証登録処理によって前記分散型台帳に登録されたと判定する請求項2に記載のデータ検証装置。
  5. 前記データコントロール部は、前記検証登録処理に対応するプログラムを検証した結果を示す第1検証結果データを前記分散型台帳に登録し、前記分散型台帳に登録されている第1検証結果データを参照して前記検証登録処理に対応するプログラムを検証する請求項1に記載のデータ検証装置。
  6. 前記データコントロール部は、前記データ参照処理に対応するプログラムを検証した結果を示す第2検証結果データを前記分散型台帳に登録し、前記分散型台帳に登録されている第2検証結果データを参照して前記データ参照処理に対応するプログラムを検証する請求項2に記載のデータ検証装置。
  7. 請求項1から6のいずれか1項に記載のデータ検証装置と、
    ブロックチェーンを構成するサーバと通信するクライアントアプリケーションであって、
    前記サーバに格納されている分散型台帳に登録することを要求された電子データである登録データが、前記分散型台帳に登録する電子データを検証するためのルールである検証ルールに従うか否かを判定するデータ検証処理に対応するプログラムを示すデータを前記サーバから受信し、受信したデータに対応するスマートコントラクトを前記サーバにデプロイする生成スマートコントラクトデプロイ部
    を備えるクライアントアプリケーションと
    を備えるブロックチェーンシステム。
  8. ブロックチェーンを構成するサーバに格納されている分散型台帳に登録する電子データを検証するデータ検証装置であるコンピュータが実行するデータ検証方法であって、
    前記コンピュータが、前記分散型台帳に登録することを要求された電子データである登録データが、前記分散型台帳に登録する電子データを検証するためのルールである検証ルールに従うか否かを判定するデータ検証処理を実行し、
    前記コンピュータが、前記データ検証処理に対応するプログラムが前記ブロックチェーン内において生成されたか否かを判定するデータコントロール処理を実行し、
    前記コンピュータが、前記データ検証処理に対応するプログラムが前記ブロックチェーン内において生成されたと判定された場合に検証登録処理を実行するデータ検証方法であって、
    前記検証登録処理は、前記データ検証処理によって前記登録データが前記検証ルールに従うと判定された場合に、前記登録データを前記分散型台帳に登録する処理であるデータ検証方法。
  9. ブロックチェーンを構成するサーバに格納されている分散型台帳に登録する電子データを検証するデータ検証装置であるコンピュータが実行するデータ検証プログラムであって、
    前記分散型台帳に登録することを要求された電子データである登録データが、前記分散型台帳に登録する電子データを検証するためのルールである検証ルールに従うか否かを判定するデータ検証処理と、
    前記データ検証処理に対応するプログラムが前記ブロックチェーン内において生成されたか否かを判定するデータコントロール処理と
    を前記データ検証装置に実行させ、
    前記データ検証処理に対応するプログラムが前記ブロックチェーン内において生成されたと判定された場合に検証登録処理を前記データ検証装置に実行させるデータ検証プログラムであって、
    前記検証登録処理は、前記データ検証処理によって前記登録データが前記検証ルールに従うと判定された場合に、前記登録データを前記分散型台帳に登録する処理であるデータ検証プログラム。
JP2024502548A 2022-03-29 2022-03-29 データ検証装置、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラム Active JP7486689B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/015699 WO2023188039A1 (ja) 2022-03-29 2022-03-29 データ検証装置、クライアントアプリケーション、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラム

Publications (3)

Publication Number Publication Date
JPWO2023188039A1 JPWO2023188039A1 (ja) 2023-10-05
JPWO2023188039A5 JPWO2023188039A5 (ja) 2024-03-11
JP7486689B2 true JP7486689B2 (ja) 2024-05-17

Family

ID=88200190

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024502548A Active JP7486689B2 (ja) 2022-03-29 2022-03-29 データ検証装置、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラム

Country Status (3)

Country Link
JP (1) JP7486689B2 (ja)
KR (1) KR20240146072A (ja)
WO (1) WO2023188039A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018116509A (ja) 2017-01-18 2018-07-26 富士通株式会社 ブロックチェーン管理方法、ブロックチェーン管理プログラム、ブロックチェーン管理装置、及びブロックチェーン管理システム
JP2020170296A (ja) 2019-04-02 2020-10-15 日本電信電話株式会社 ブロックチェーンシステム、承認端末、利用者端末、履歴管理方法、および、履歴管理プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200100438A (ko) * 2019-02-18 2020-08-26 (주)제니엘 블록체인 기반의 채용 추천 서비스 제공 시스템 및 그 구동방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018116509A (ja) 2017-01-18 2018-07-26 富士通株式会社 ブロックチェーン管理方法、ブロックチェーン管理プログラム、ブロックチェーン管理装置、及びブロックチェーン管理システム
JP2020170296A (ja) 2019-04-02 2020-10-15 日本電信電話株式会社 ブロックチェーンシステム、承認端末、利用者端末、履歴管理方法、および、履歴管理プログラム

Also Published As

Publication number Publication date
TW202338641A (zh) 2023-10-01
JPWO2023188039A1 (ja) 2023-10-05
WO2023188039A1 (ja) 2023-10-05
KR20240146072A (ko) 2024-10-07

Similar Documents

Publication Publication Date Title
JP6943356B2 (ja) Utxo基盤プロトコルを利用したブロックチェーン基盤の文書管理方法及びこれを利用した文書管理サーバ{method for managing document on basis of blockchain by using utxo−based protocol,and document management server using same}
CN100533451C (zh) 用于使文件系统免于恶意程序的增强安全层的系统和方法
JP7060362B2 (ja) 電子デバイスのためのイベント証明書
CN106168899B (zh) 用于更新嵌入式控制设备的方法和更新网关
EP3966997B1 (en) Methods and devices for public key management using a blockchain
WO2018224635A1 (en) Cryptographically verifiable data structure having multi-hop forward and backwards links and associated systems and methods
JP4598857B2 (ja) Icカード、およびそのアクセス制御方法
US11455643B2 (en) Blockchain with transaction cancellation
US20050166041A1 (en) Authentication in a distributed computing environment
CN111133435B (zh) 用于证实电子文档的方法和服务器
US11251975B1 (en) Block chain based trusted security infrastructure
US20210391991A1 (en) Linking identities in a distributed database
JP7493582B2 (ja) ブロックチェーン・ネットワーク間でのトークンの転送
CN112037058B (zh) 数据验证方法、装置及存储介质
US20120216037A1 (en) Methods and systems for access security for dataloading
CN111367877B (zh) 基于区块链的文件处理方法、装置及终端
Konashevych Cross-blockchain protocol for public registries
KR101849920B1 (ko) 머클 트리 구조를 사용하여 m of n 다중 서명에 의한 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
JP2008305035A (ja) 装置、更新方法、および制御ソフト。
US20200117439A1 (en) Systems and Methods for Reinforced Update Package Authenticity
CN110266681A (zh) 基于区块链的数据安全处理系统及数据安全处理方法
US11625385B2 (en) Method and apparatus for managing data based on blockchain
JP2023525576A (ja) ソフトウェア更新のための認証キーの制御範囲
KR20190045754A (ko) 블록체인 기반의 소프트웨어 라이센스 관리 방법 및 이를 이용한 라이센스 관리 서버
JP6813442B2 (ja) 検証装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240116

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240116

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20240116

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: 20240409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240507

R150 Certificate of patent or registration of utility model

Ref document number: 7486689

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150