JP6900680B2 - ブロックチェーン管理方法、ブロックチェーン管理プログラム、ブロックチェーン管理装置、及びブロックチェーン管理システム - Google Patents

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

Info

Publication number
JP6900680B2
JP6900680B2 JP2017007089A JP2017007089A JP6900680B2 JP 6900680 B2 JP6900680 B2 JP 6900680B2 JP 2017007089 A JP2017007089 A JP 2017007089A JP 2017007089 A JP2017007089 A JP 2017007089A JP 6900680 B2 JP6900680 B2 JP 6900680B2
Authority
JP
Japan
Prior art keywords
block
data
hash
area
change
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
JP2017007089A
Other languages
English (en)
Other versions
JP2018116509A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017007089A priority Critical patent/JP6900680B2/ja
Priority to PCT/JP2018/000122 priority patent/WO2018135328A1/ja
Priority to ES18742135T priority patent/ES2905932T3/es
Priority to EP18742135.9A priority patent/EP3572966B1/en
Publication of JP2018116509A publication Critical patent/JP2018116509A/ja
Priority to US16/511,084 priority patent/US20190340169A1/en
Application granted granted Critical
Publication of JP6900680B2 publication Critical patent/JP6900680B2/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
    • 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
    • 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/2365Ensuring data consistency and integrity
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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/2379Updates performed during online database operations; commit processing
    • 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
    • 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

Landscapes

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

Description

本件は、ブロックチェーン管理方法、ブロックチェーン管理プログラム、ブロックチェーン管理装置、及びブロックチェーン管理システムに関する。
ブロックチェーンと呼ばれる技術が知られている(例えば特許文献1参照)。ブロックチェーンでは複数のブロックが時系列に並べられており、各ブロックには1つ前のブロックのハッシュ値(以下、単にハッシュという)とトランザクションと呼ばれる取引に関するデータが格納されている。
特許第5858506号公報
ところで、ブロックチェーンにおいて過去のデータに個人情報や企業情報といったプライバシーに関するデータが含まれていた場合、プライバシー保護の観点から、データの一部を後から変更したいときがある。
そこで、1つの側面では、データの一部を変更した際に変更箇所以外は改ざんされていないことを判別できるブロックチェーン管理方法、ブロックチェーン管理プログラム、ブロックチェーン管理装置、及びブロックチェーン管理システムを提供することを目的とする。
1つの実施態様では、データの変更を禁止する第1領域及びデータの更新を許容する第2領域を含む第1ブロックと、前記第1領域に格納されたデータ及び前記第2領域に格納されたデータの双方を含むデータから生成された第1ハッシュを格納するとともに、前記第1領域に格納されたデータを含み、かつ、前記第2領域に格納されたデータを含まないデータから生成された第2ハッシュを格納する第2ブロックと、を含むブロックチェーンのデータ変更を評価する際に、前記第2ブロックに格納された前記第1ハッシュに基づき、前記第1ブロックに格納されたデータが前記第1ハッシュに対応しないことを検知すると、前記第1ブロックを参照して、前記第1ブロックの前記第1領域に格納されたデータを含み、かつ、前記第2領域に格納されたデータを含まないデータの第3ハッシュを生成し、前記第2ブロックに格納された前記第2ハッシュと、生成した前記第3ハッシュとの比較結果に基づき、前記第1ブロックに格納されたデータの変更に関する評価を行う、処理をコンピュータが実行することを特徴とするブロックチェーン管理方法である。
データの一部を変更した際に変更箇所以外は改ざんされていないことを判別することができる。
図1はブロックチェーン管理システムの一例を説明するための図である。 図2はノードのハードウェア構成の一例である。 図3はノードの機能ブロック図の一例である。 図4は比較例に係るブロックチェーンの一例を説明する図である。 図5は本実施形態に係るブロックチェーンの一例を説明する図である。 図6はユーザの動作の一例を示すフローチャートである。 図7はマイナーのブロック生成に関する動作の一例を示すフローチャートである。 図8はブロック処理の一例を示すフローチャートである。 図9は新たなブロックの生成例について説明する図である。 図10はブロックに含まれるデータの変更例について説明する図である。 図11はマイナーのブロック検証及びブロック更新に関する動作の一例を示すフローチャートである。 図12は第2検証処理の一例を示すフローチャートである。 図13はブロックの検証例について説明する図である。 図14はn番目のブロックのデータ構造の例を示す図である。
以下、本件を実施するための形態について図面を参照して説明する。
図1はブロックチェーン管理システムSの一例を説明するための図である。ブロックチェーン管理システムSはいずれも端末装置としての複数のノード100,150,200,250を含んでいる。図1では、ノード100の一例としてスマートフォンが示されている。ノード150の一例としてラップトップ型のPersonal Computer(PC)が示されている。尚、ノード100,150はスマートフォンやPCに限定されず、例えばタブレット端末やウェアラブル端末であってもよい。ウェアラブル端末としては例えばスマートウォッチなどがある。一方、ノード200,250の例としてデスクトップ型のPCやサーバが示されている。
ノード100,150,200,250は互いに通信ネットワークNWを介して接続されている。具体的には、ノード100,150,200,250はいわゆるPeer to Peer(P2P)ネットワークを利用して互いに接続されている。通信ネットワークNWとしては例えばLocal Area Network(LAN)やインターネットといった有線ネットワークがある。また、ノード100,150,200,250間の通信の一部に無線が利用されていてもよい。例えば、図1に示すように、ノード100とノード150,200,250との通信に無線が利用されていてもよい。この場合、無線通信可能な領域AR内にノード100が含まれていれば、ノード100は携帯基地局BSを介してノード150,200,250と通信することができる。
次に、図2を参照して、ノード200のハードウェア構成について説明する。尚、上述したノード100,150,250については基本的にノード200と同様のハードウェア構成であるため説明を省略する。
図2はノード200のハードウェア構成の一例である。図2に示すように、ノード200は、少なくともCentral Processing Unit(CPU)200A、Random Access Memory(RAM)200B、Read Only Memory(ROM)200C及びネットワークI/F(インタフェース)200Dを含んでいる。ノード200は、必要に応じて、Hard Disk Drive(HDD)200E、入力I/F200F、出力I/F200G、入出力I/F200H、ドライブ装置200Iの少なくとも1つを含んでいてもよい。CPU200Aからドライブ装置200Iまでは、内部バス200Jによって互いに接続されている。少なくともCPU200AとRAM200Bとが協働することによってコンピュータが実現される。
入力I/F200Fには、入力装置710が接続される。入力装置710としては、例えばキーボードやマウスなどがある。
出力I/F200Gには、表示装置720が接続される。表示装置720としては、例えば液晶ディスプレイがある。
入出力I/F200Hには、半導体メモリ730が接続される。半導体メモリ730としては、例えばUniversal Serial Bus(USB)メモリやフラッシュメモリなどがある。入出力I/F200Hは、半導体メモリ730に記憶されたプログラムやデータを読み取る。
入力I/F200F及び入出力I/F200Hは、例えばUSBポートを備えている。出力I/F200Gは、例えばディスプレイポートを備えている。
ドライブ装置200Iには、可搬型記録媒体740が挿入される。可搬型記録媒体740としては、例えばCompact Disc(CD)−ROM、Digital Versatile Disc(DVD)といったリムーバブルディスクがある。ドライブ装置200Iは、可搬型記録媒体740に記録されたプログラムやデータを読み込む。
ネットワークI/F200Dは、例えばLANポートを備えている。ネットワークI/F200Dは通信ネットワークNWと接続される。
上述したRAM200Bには、ROM200CやHDD200Eに記憶されたプログラムがCPU200Aによって格納される。RAM200Bには、可搬型記録媒体740に記録されたプログラムがCPU200Aによって格納される。格納されたプログラムをCPU200Aが実行することにより、後述する各種の機能が実現され、また、後述する各種の処理が実行される。尚、プログラムは後述するフローチャートに応じたものとすればよい。
次に、図3を参照して、ノード100,150,200,250の各機能について説明する。
図3はノード100,200の機能ブロック図の一例である。尚、ノード150については基本的にノード100と同様の機能を備え、ノード250については基本的にノード200と同様の機能を備えるため説明を省略する。
図3に示すように、ノード100はウォレットツールWTを備えており、ノード200はウォレットツールWTとマイニングツールMTを備えている。ここで、ウォレットツールWTはブロックチェーン(具体的にはビットコイン(登録商標)など)を用いた取引を行うために要するツールをいう。一方、マイニングツールMTはブロックチェーンを用いた取引の完全性や整合性を検証し、取引を承認するために要するツールをいう。
ここで、マイニングツールMTを備えずにウォレットツールWTを備えたノード100はユーザと呼ばれることがある。このため、以下の説明では、ノード100,150をユーザ100,150と言い換えて説明する。一方、ウォレットツールWTとマイニングツールMTの両方を備えたノード200はマイナー(発掘者)と呼ばれることがある。このため、以下の説明では、ノード200,250をマイナー200,250と言い換えて説明する。
ユーザ100及びマイナー200の各ウォレットツールWTはいずれも依頼受付部WT1と依頼送信部WT2とを備えている。例えば、データ登録依頼がユーザ100に入力されると、ユーザ100の依頼受付部WT1は入力されたデータ登録依頼を受け付ける。データ登録依頼は取引のデータの登録を依頼(リクエスト)する情報であり、登録対象のデータを備えている。例えば、データ変更依頼がユーザ100に入力されると、ユーザ100の依頼受付部WT1は入力されたデータ変更依頼を受け付ける。データ変更依頼は取引のデータの変更を依頼(リクエスト)する情報であり、変更対象のデータを特定する情報と変更後の情報(例えば、プライバシーに関する部分を秘匿する情報)を備えている。また、依頼受付部WT1がデータ登録依頼やデータ変更依頼を受け付けると、依頼送信部WT2は依頼受付部WT1が受け付けたデータ登録依頼やデータ変更依頼をP2Pで送信する。すなわち、本実施形態ではP2Pネットワークが利用されているため、ユーザ100の依頼送信部WT2がデータ登録依頼やデータ変更依頼を送信すると、データ登録依頼やデータ変更依頼はユーザ150,マイナー200,マイナー250に送信される。
次いで、マイナー200のマイニングツールMTはブロック生成部MT1、ブロック検証部MT2、及びブロック更新部MT3を備えている。例えば、ユーザ100の依頼送信部WT2がデータ登録依頼を送信すると、マイナー200のブロック生成部MT1はデータ登録依頼を受信する。ブロック生成部MT1はデータ登録依頼を受信すると、ブロックを生成してデータ登録依頼が有するデータをそのブロックに格納する。例えば、ユーザ100の依頼送信部WT2がデータ変更依頼を送信すると、マイナー200のブロック生成部MT1はデータ変更依頼を受信する。ブロック生成部MT1はデータ変更依頼を受信すると、ブロックチェーンが管理するブロックの中の特定のブロックに含まれるデータの一部をデータ変更依頼が有するデータに変更する。尚、ブロックを生成することを、ブロックを発掘するということもある。
ブロック検証部MT2はブロック生成部MT1が生成又は変更したブロックの正当性を検証する。より詳しくは、ブロック検証部MT2はブロック生成部MT1が生成又は変更したブロックに含まれるデータの正当性を検証する。尚、ブロック検証部MT2が実行する検証処理の詳細については後述する。
ブロック更新部MT3はブロック検証部MT2による検証が肯定的である場合、ブロックチェーンの最後尾にブロックを追加したり、ブロックチェーンが管理する変更対象のブロックを、データを変更した後のブロックに変更したりする。尚、ブロックチェーンはユーザ100,150及びマイナー200,250のそれぞれに分散して共有される。ユーザ100,150はブロックチェーンの中で自己が関心をもつ部分を記憶していればよいが、マイナー200,250はブロックチェーンの全体を記憶していることが望ましい。尚、このような分散共有に代えて、1つのDatabase(DB)がブロックチェーンを集中管理する形式であってもよい。
次に、図4、図5及び図14を参照して、本実施形態に係るブロックチェーンを比較例に係るブロックチェーンと対比して説明する。
図4は比較例に係るブロックチェーン10の一例を説明する図である。図5は本実施形態に係るブロックチェーン20の一例を説明する図である。図14はn番目のブロックのデータ構造の例を示す図である。
まず、図4に示すように、ブロックチェーン10はn−1番目のブロック11と、n番目のブロック12と、n+1番目のブロック13を含んでいる。n−1番目のブロック11は、直前に並べられたn−2番目のブロック(不図示)のハッシュh(n−2)とデータd0を含む領域と、データd1を含む領域とを含んでいる。同様に、n番目のブロック12は、直前に並べられたn−1番目のブロック11のハッシュh(n−1)とデータd2を含む領域とデータd3を含む領域とを含んでいる。n+1番目のブロック13は、直前に並べられたn番目のブロック12のハッシュh(n)とデータd4を含む領域と,データd5を含む領域とを含んでいる。尚、データd0〜d5を含む各領域はいずれもデータの変更が禁止されている。
また、ブロック11の下側に示すように、ハッシュh(n−1)はn−1番目のブロック11に含まれるハッシュh(n−2)とデータd0,d1と関数H()とに基づいて生成される。同様に、ハッシュh(n)はn番目のブロック12に含まれるハッシュh(n−1)とデータd2,d3と関数H()とに基づいて生成される。関数H()はブロックに含まれる要素からハッシュを生成するハッシュ関数である。例えばハッシュh(n)であれば、n番目のブロック12の全要素であるハッシュh(n−1)とデータd2,d3に対し関数H()を利用することでハッシュh(n)が生成される。ハッシュh(n−1)についてもハッシュh(n)の生成と同じである。
ここで、図4に示すブロックチェーン10において、例えばブロック11に含まれるデータd1を削除してハッシュh(n−1)を新たに生成すると、ハッシュh(n−1)はデータd1を除外したハッシュh(n−2)とデータd0と関数H()とに基づいて生成される。一方、n番目のブロック12には既に生成されたハッシュh(n−1)が含まれている。データd1を削除した後に生成されたハッシュh(n−1)とデータd1を削除する前に生成されたブロック12のハッシュh(n−1)とを比較すると、両者は一致しない。このように、2つのハッシュh(n−1)が相違することによりブロック11に対して何等かの変更が加えられたと判断することができる。言い換えれば、2つの(n−1)ハッシュが相違しなければ、ブロック11に対して何の変更も加えられていないと判断することができる。すなわち、ブロック11の正当性を検証することができる。
このように、比較例に係るブロックチェーン10では仮にデータが変更されると変更されたデータを含むブロック11が検出される仕組みが採用されている。したがって、仮にデータに対して改ざんといった不正な変更があっても、そのデータを含むブロック11が容易に検出される。このため、データを不正に変更する利点はほとんどなく、データの変更が抑止される。しかしながら、データに対して正当な変更が求められる場合には、変更されたデータを含むブロックが検出される必要はなく、この比較例の仕組みを採用することはできない。
そこで、本実施形態に係るブロックチェーン20は、図5に示すように、n−1番目のブロック21と、n番目のブロック22と、n+1番目のブロック23を含んでいる。n−1番目のブロック21は、直前に並べられたn−2番目のブロック(不図示)が含む全要素のハッシュh(n−2)とn−2番目のブロックが含む一部要素のハッシュh(n−2)´と変更禁止領域AR0と変更許容領域AR1とを含んでいる。同様に、n番目のブロック22は、直前に並べられたn−1番目のブロック21が含む全要素のハッシュh(n−1)とn−1番目のブロック21が含む一部要素のハッシュh(n−1)´と変更禁止領域AR2と変更許容領域AR3とを含んでいる。n+1番目のブロック23は、直前に並べられたn番目のブロック22が含む全要素のハッシュh(n)とn番目のブロック22が含む一部要素のハッシュh(n)´と変更禁止領域AR4と変更許容領域AR5とを含んでいる。
ここで、全要素とは例えばn番目のブロック22であれば、ハッシュh(n−1)とハッシュh(n−1)´と変更禁止領域AR2に格納されたデータと変更許容領域AR3に格納されたデータとをいう。一部要素とは全要素から変更許容領域AR3に格納されたデータを除いた要素をいう。n−1番目のブロック21及びn+1番目のブロック23についてもn番目のブロック22と同じである。また、上述した変更禁止領域AR0,AR2,AR4は変更を禁止するデータを格納する領域であり、変更許容領域AR1,AR3,AR5は変更を許容するデータを格納する領域である。例えば、変更禁止領域AR0,AR2,AR4にはプライバシーに関しない非プライバシーデータが格納され、変更許容領域AR1,AR3,AR5にはプライバシーに関するプライバシーデータが格納される。一例としてn番目のブロック22について図14を参照して説明すると、変更禁止領域AR2としての変更禁止フィールドには非プライバシーデータが格納され、変更許容領域AR3としての変更許容フィールドにはプライバシーデータが格納される。一方で、上述した2つのハッシュh(n−1)及びハッシュh(n−1)´はハッシュフィールドに格納される。n−1番目のブロック21及びn+1番目のブロック23についてもn番目のブロック22と同じである。尚、変更許容領域AR1,AR3,AR5はそれぞれブロック21,22,23内に予め設けておく。
ハッシュh(n−1)はn−1番目のブロック21に含まれるハッシュh(n−2)とブロック21に含まれるハッシュh(n−2)´と変更禁止領域AR0に格納されたデータと変更許容領域AR1に格納されたデータと関数H()とに基づいて生成される。すなわち、ハッシュh(n−1)はn−1番目のブロック21の全要素と関数H()とに基づいて生成される。一方、ハッシュh(n−1)´はn−1番目のブロック21に含まれるハッシュh(n−2)とブロック21に含まれるハッシュh(n−2)´と変更禁止領域AR0に格納されたデータと関数H()とに基づいて生成される。すなわち、ハッシュh(n−1)´はn−1番目のブロック21の全要素から変更許容領域AR1に格納されたデータを除いた一部要素と関数H()とに基づいて生成される。同様に、ハッシュh(n)はn番目のブロック22に含まれるハッシュh(n−1)とブロック22に含まれるハッシュh(n−1)´と変更禁止領域AR2に格納されたデータと変更許容領域AR3に格納されたデータと関数H()とに基づいて生成される。すなわち、ハッシュh(n)はn番目のブロック22の全要素と関数H()とに基づいて生成される。ハッシュh(n)´はn−1番目のブロック22に含まれるハッシュh(n−1)とブロック22に含まれるハッシュh(n−1)´と変更禁止領域AR2に格納されたデータと関数H()とに基づいて生成される。すなわち、ハッシュh(n)´はn番目のブロック22の全要素から変更許容領域AR3に格納されたデータを除いた一部要素と関数H()とに基づいて生成される。
本実施形態の仕組みによれば、データが変更されなければ比較例と同様の手法によりデータが変更されていないことを検証することができる。一方、正当な変更によりデータが変更された場合には、変更されたデータを含むブロックの全要素から、変更されたデータを除いた一部の要素を利用してハッシュ(例えばh(n−1)´やh(n)´)が生成される。したがって、一部の要素を利用して生成されたハッシュと変更されたデータを含むブロックの直後に並べられたブロックが含む対応するハッシュが一致すれば、変更されたデータ以外のデータが変更されていないことを検証することができる。すなわち、データの一部を変更しても、ブロックの正当性を確保することができ、正当なブロックチェーンが維持される。
以下、図6から図12までを参照して、本実施形態に係るブロックチェーン20を利用した処理の詳細を説明する。
まず、図6を参照して、ユーザ100の動作について説明する。尚、ユーザ150の動作はユーザ100の動作と基本的に同じであるため、その説明を省略する。図6はユーザ100の動作の一例を示すフローチャートである。まず、依頼受付部WT1は依頼があるまで待機する(ステップS101:NO)。より詳しくは、依頼受付部WT1はデータ登録依頼やデータ変更依頼があるまで待機する。依頼受付部WT1は依頼があると(ステップS101:YES)、依頼を受け付け(ステップS102)、依頼送信部WT2は依頼受付部WT1が受け付けた依頼を通信ネットワークNWに送信する(ステップS103)。依頼送信部WT2は依頼を送信すると、処理を終える。
次に、図7を参照して、マイナー200のブロック生成に関する動作について説明する。尚、マイナー250の動作はマイナー200の動作と基本的に同じであるため、その説明を省略する。図7はマイナー200のブロック生成に関する動作の一例を示すフローチャートである。まず、ブロック生成部MT1は依頼を受信するまで待機する(ステップS201:NO)。ブロック生成部MT1は依頼を受信すると(ステップS201:YES)、ブロック処理を実行する(ステップS202)。ここで、ブロック処理はブロックに対し依頼の種別に応じて行われる処理である。詳細は後述するが、ブロック生成部MT1がデータ登録依頼を受信した場合には、ブロック生成部MT1は新たなブロックを生成してそのブロックにデータを追加する。ブロック生成部MT1がデータ変更依頼を受信した場合には、変更対象のブロックの変更許容領域に格納されたデータをデータ変更依頼のデータに変更する。
また、ステップS202の処理と並行して、ブロック生成部MT1はマイナー200とは異なる他のマイナー250から所定の通知があるかを監視する(ステップS203)。ここで、所定の通知とは他のマイナー250がブロックを生成した旨の通知やブロックを変更した旨の通知をいう。本実施形態ではP2Pネットワークが利用されているため、依頼送信部WT2が送信するデータ登録依頼やデータ変更依頼はマイナー200だけでなくマイナー250にも到達する。したがって、マイナー250がデータ登録依頼やデータ変更依頼に基づいて、ブロックを生成したりブロックを変更したりすれば、マイナー250は所定の通知を送信する。これにより、マイナー200には所定の通知が到達する。
ここで、所定の通知がなかった場合(ステップS203:NO)、ブロック生成部MT1は生成又は変更したブロックを送信する(ステップS204)。より詳しくは、ブロック生成部MT1は生成又は変更したブロックをブロードキャストする。これにより、ブロック生成部MT1が生成又は変更したブロックはユーザ100,150及びマイナー250に到達する。
一方、所定の通知があった場合(ステップS203:YES)、ブロック生成部MT1はマイナー250が生成又は変更したブロックを受信する(ステップS205)。ステップS204又はステップS205の処理が完了すると、ブロック生成部MT1は処理を終える。
次に、図8から図10までを参照して、上述したブロック処理について説明する。
図8はブロック処理の一例を示すフローチャートである。図9は新たなブロックの生成例について説明する図である。図10はブロックに含まれるデータの変更例について説明する図である。
まず、上述したステップS201の処理において、ブロック生成部MT1が依頼を受信すると、図8に示すように、依頼がデータ変更依頼であるか否かを判断する(ステップS301)。依頼がデータ変更依頼でない場合(ステップS301:NO)、ブロック生成部MT1はハッシュh(n)´を生成する(ステップS302)。言い換えれば、依頼がデータ登録依頼である場合、ブロック生成部MT1はハッシュh(n)´を生成する。
具体的には、図9に示すように、まず、ブロック生成部MT1はブロックチェーンの最後尾に並べられたn番目のブロック32を特定する。次に、ブロック生成部MT1は特定したブロック32からハッシュh(n−1)´とハッシュh(n−1)と変更禁止領域AR2に格納された送金日を表すデータ「2016/3/6」と送金額を表すデータ「500」を抽出する。さらに、ブロック生成部MT1は文字列を結合する関数combine()を利用して、ハッシュh(n−1)´とハッシュh(n−1)と2つのデータ「2016/3/6」、「500」とを結合して結合文字列を生成する。そして、ブロック生成部MT1はハッシュ関数の1つである関数sha512を利用して、結合文字列からハッシュh(n)´を生成する。
図8に戻り、ステップS302の処理が完了すると、次いで、ブロック生成部MT1はハッシュh(n)を生成する(ステップS303)。具体的には、図9に示すように、ブロック生成部MT1はブロック32からハッシュh(n−1)´とハッシュh(n−1)と変更禁止領域AR2に格納された送金日を表すデータ「2016/3/6」と送金額を表すデータ「500」と変更許容領域AR3に格納された送金元口座を表すデータ「A」と送金先口座を表すデータ「C」を抽出する。さらに、ブロック生成部MT1は関数combine()を利用して、ハッシュh(n−1)´とハッシュh(n−1)と4つのデータ「A」、「C」、「2016/3/6」、「500」とを結合して結合文字列を生成する。そして、ブロック生成部MT1は関数sha512を利用して、結合文字列からハッシュh(n)を生成する。尚、ステップS302とS303の処理順序は逆であってもよい。
図8に戻り、ステップS303の処理が完了すると、次いで、ブロック生成部MT1はハッシュh(n)´とハッシュh(n)とをn+1番目のブロックに追加する(ステップS304)。具体的には、図9に示すように、ブロック生成部MT1はブロックチェーンの最後尾に並べられたn番目のブロック32に繋げるn+1番目のブロック33を生成し、ハッシュh(n)´とハッシュh(n)をn+1番目のブロック33に追加する。尚、生成されたn+1番目のブロック33は予め変更禁止領域AR4と変更許容領域AR5を備えているが、n+1番目のブロック33の生成直後には変更禁止領域AR4と変更許容領域AR5のいずれにもまだデータ登録依頼のデータが格納されていない。また、n+1番目のブロック33の生成については例えばステップS301のS302の間で行われてもよい。
図8に戻り、ステップS304の処理が完了すると、次いで、ブロック生成部MT1はデータを分割する(ステップS305)。より詳しくは、ブロック生成部MT1はデータ登録依頼が有するデータを非プライバシーデータとプライバシーデータとに分割する。尚、データ登録依頼はデータを非プライバシーデータとプライバシーデータに分割するための情報を有しており、ブロック生成部MT1は当該情報に基づいてデータを分割する。
ステップS305の処理が完了すると、次いで、ブロック生成部MT1は変更禁止領域AR4に非プライバシーデータを追加する(ステップS306)。例えば、データ登録依頼が有するデータ「A」、「D」、「2016/3/9」、「300」の中で送金日及び送金額に関する部分が非プライバシーデータに相当する場合、図9に示すように、ブロック生成部MT1は変更禁止領域AR4に送金日のデータ「2016/3/9」及び送金額のデータ「300」を追加する。
ステップS306の処理が完了すると、次いで、ブロック生成部MT1は変更許容領域AR5にプライバシーデータを追加する(ステップS307)。例えば、データ登録依頼が有するデータ「A」、「D」、「2016/3/9」、「300」の中で送金元口座及び送金先口座に関する部分がプライバシーデータに相当する場合、図9に示すように、ブロック生成部MT1は変更許容領域AR5に送金元口座のデータ「A」及び送金先口座のデータ「D」を追加する。ステップS307の処理が完了すると、ブロック生成部MT1は処理を終える。尚、ステップS306とS307の処理順序は逆であってもよい。
一方、ステップS301の処理において、依頼がデータ変更依頼である場合(ステップS301:YES)、ブロック生成部MT1は変更対象ブロックを取得する(ステップS308)。尚、データ変更依頼は変更対象のデータを有するため、ブロック生成部MT1は変更対象のデータに基づいて、そのデータを含むブロックを特定し、特定したブロックを変更対象ブロックとして取得する。
ステップS308の処理が完了すると、次いで、ブロック生成部MT1は変更許容領域AR5のデータを変更する(ステップS309)データ変更依頼が変更対象のデータを特定する情報を備えているため、ブロック生成部MT1は当該情報に基づいて変更対象のデータを特定し、プライバシーデータに相当する部分(具体的には送金元口座及び送金先口座)のデータを特定の記号(例えば「*」など)に変更する。したがって、図10に示すように、ブロック生成部MT1がn番目のブロック32を取得した場合、ブロック32における変更許容領域AR5の送金元口座のデータ及び送金先口座のデータを特定の記号に変更する。これにより、プライバシーに関する部分が秘匿され、プライバシーが確保される。ステップS309の処理が完了すると、ブロック生成部MT1は変更後のデータを含むブロック32に含まれる全要素のハッシュを生成し、変更後のデータを含むブロック32の次に追加される、ブロック33に一部要素のハッシュと生成した全要素のハッシュを追加して処理を終える。
次に、図11を参照して、マイナー200のブロック検証及びブロック更新に関する動作について説明する。尚、マイナー250の動作はマイナー200の動作と基本的に同じであるため、その説明を省略する。図11はマイナー200のブロック検証及びブロック更新に関する動作の一例を示すフローチャートである。
ブロック生成部MT1が処理を終えると、ブロック検証部MT2は検証対象のブロックがデータ変更に関するブロックであるか否かを判断する(ステップS401)。図7のステップS204及びS205を参照して説明したように、ブロック生成部MT1自身がブロックを生成したり変更したりする一方で、ブロック生成部MT1はマイナー250が生成したブロックを受信したり、マイナー250が変更したブロックを受信したりする。ブロック検証部MT2はブロック生成部MT1から入力されたブロックの処理過程を特定し、検証対象のブロックがデータ変更に関するブロックであるか否かを判断する。
検証対象のブロックがデータ変更に関するブロックでない場合(ステップS401:NO)、ブロック検証部MT2は第1検証処理を実行する(ステップS402)。第1検証処理は生成されたブロックの正当性を検証する処理である。特に、第1検証処理は、検証対象のブロックの直前に連鎖したブロックから計算されるハッシュと、検証対象のブロックに記録された、検証対象のブロックの直前に連鎖したブロックのハッシュとが一致するか否かを確認することにより行われる。
ステップS402の処理が完了すると、次いで、ブロック検証部MT2は検証OKであるか否かを判断する(ステップS403)。すなわち、ブロック検証部MT2は検証が肯定的であるか否かを判断する。例えば、ブロック検証部MT2は検証対象のブロックの直前に連鎖したブロックから計算されるハッシュと、検証対象のブロックに記録された、検証対象のブロックの直前に連鎖したブロックのハッシュとを比較し、一致した場合は、ブロック検証部MT2は検証OKであると判断する。逆に、検証対象のブロックの直前に連鎖したブロックから計算されるハッシュと、検証対象のブロックに記録された、検証対象のブロックの直前に連鎖したブロックのハッシュとを比較し、一致しない場合は、ブロック検証部MT2は検証NGであると判断する。
ここで、検証OKである場合(ステップS403:YES)、ブロック更新部MT3はブロックチェーンにブロックを追加し(ステップS404)、ステップS401の処理に戻って待機する。一方、検証NGである場合(ステップS403:NO)、ブロック更新部MT3はステップS404の処理をスキップし、ステップS401の処理に戻って待機する。これにより、データ登録依頼が有するデータを含む新たなブロックが既存のブロックチェーンの最後尾に追加されて、新たなブロックチェーンに更新される。
一方、検証対象のブロックがデータ変更に関するブロックである場合(ステップS401:YES)、ブロック検証部MT2は第2検証処理を実行する(ステップS405)。具体的には、検証対象のブロックがブロック生成部MT1によって変更されたブロックであったり、マイナー250によって変更されたブロックであったりする場合、ブロック検証部MT2は第2検証処理を実行する。すなわち、第2検証処理は変更されたブロックの正当性を検証する処理である。尚、第2検証処理の詳細については後述する。
ステップS405の処理が完了すると、次いで、ブロック検証部MT2は検証OKであるか否かを判断する(ステップS406)。すなわち、ブロック検証部MT2は検証が肯定的であるか否かを判断する。ここで、検証OKである場合(ステップS406:YES)、ブロック更新部MT3はブロックチェーンのブロックを変更し(ステップS407)、ステップS401の処理に戻って待機する。これにより、変更前のデータを含むブロックが、変更後のデータを含むブロックに更新される。一方、検証NGである場合(ステップS406:NO)、ブロック更新部MT3はステップS407の処理をスキップし、ステップS401の処理に戻って待機する。
次に、図12及び図13を参照して、上述した第2検証処理について説明する。
図12は第2検証処理の一例を示すフローチャートである。図13はブロックの検証例について説明する図である。
まず、上述したステップS401の処理において、検証対象のブロックがデータ変更に関するブロックである場合、図12に示すように、ブロック検証部MT2はハッシュh^(n)を生成する(ステップS501)。具体的には、図13の下側に示すように、まず、ブロック検証部MT2は変更対象であるn番目のブロック32を特定する。次に、ブロック検証部MT2は特定したブロック32からハッシュh(n−1)´とハッシュh(n−1)と変更禁止領域AR2に格納された送金日を表すデータ「2016/3/6」と送金額を表すデータ「500」と変更許容領域AR3に格納された変更後の2つのデータ「****」、「****」を抽出する。さらに、ブロック検証部MT2は関数combine()を利用して、ハッシュh(n−1)´とハッシュh(n−1)と4つのデータ「2016/3/6」、「500」、「****」、「****」とを結合して結合文字列を生成する。そして、ブロック検証部MT2は関数sha512を利用して、結合文字列からハッシュh^(n)を生成する。
ステップS501の処理が完了すると、次いで、ブロック検証部MT2はn+1番目のブロックからハッシュh(n)を取得し(ステップS502)、ハッシュh^(n)とハッシュh(n)を比較して一致するか否かを判断する(ステップS503)。本実施形態では、ハッシュh^(n)は変更後のデータを利用して生成されている一方、ハッシュh(n)は変更前のデータを利用して生成されているため、ハッシュh^(n)とハッシュh(n)は相違する。例えば、変更前のデータと変更後のデータが同じである場合、すなわち、単に同じデータに更新されたにすぎない場合には、ハッシュh^(n)とハッシュh(n)は一致する。
ここで、ハッシュh^(n)とハッシュh(n)が一致しない場合(ステップS503:NO)、ブロック検証部MT2はハッシュh^(n)´を生成する(ステップS504)。具体的には、図13の上側に示すように、まず、ブロック検証部MT2は変更対象であるn番目のブロック32を特定する。次に、ブロック検証部MT2は特定したブロック32からハッシュh(n−1)´とハッシュh(n−1)と変更禁止領域AR2に格納された送金日を表すデータ「2016/3/6」と送金額を表すデータ「500」を抽出する。さらに、ブロック検証部MT2は関数combine()を利用して、ハッシュh(n−1)´とハッシュh(n−1)と2つのデータ「2016/3/6」、「500」とを結合して結合文字列を生成する。そして、ブロック検証部MT2は関数sha512を利用して、結合文字列からハッシュh^(n)´を生成する。
ステップS504の処理が完了すると、次いで、ブロック検証部MT2はn+1番目のブロックからハッシュh(n)´を取得し(ステップS505)、ハッシュh^(n)´とハッシュh(n)´を比較して一致するか否かを判断する(ステップS506)。本実施形態では、ハッシュh^(n)´は変更されていないデータを利用して生成されているため、ハッシュh^(n)´とハッシュh(n)´は一致する。例えば、変更禁止領域AR2に格納されたデータが改ざんなどにより変更されていると、ハッシュh^(n)´とハッシュh(n)´は相違する。
ここで、ハッシュh^(n)´とハッシュh(n)´が一致する場合(ステップS506:YES)、ブロック検証部MT2は変更禁止領域AR2に格納されたデータが変更されていないと判断し、検証結果に検証OKを格納する(ステップS507)。尚、上述したステップS503の処理において、ハッシュh^(n)とハッシュh(n)が一致する場合(ステップS503:YES)も同様に、ブロック検証部MT2はステップS507の処理を実行する。一方、ハッシュh^(n)´とハッシュh(n)´が一致しない場合(ステップS506:NO)、ブロック検証部MT2は変更禁止領域AR2に格納されたデータが変更されていると判断し、検証結果に検証NGを格納する(ステップS508)。これにより、後続するステップS406の処理(図11参照)において、ブロック検証部MT2は検証OKであるか否かを判断することができる。
以上、本実施形態によれば、ブロックチェーン管理装置としてのマイナー200はブロック生成部MT1とブロック検証部MT2とブロック更新部MT3を備えている。ブロック生成部MT1は、変更禁止領域AR2と変更許容領域AR3を含むn番目のブロック32から変更許容領域AR3を除いた部分に含まれるデータのハッシュh(n)´と、ブロック32に含まれるデータのハッシュh(n)を生成する。さらに、ブロック生成部MT1は、ブロック32の次に追加される、変更禁止領域AR4と変更許容領域AR5を含むn+1番目のブロック33にハッシュh(n)´とハッシュh(n)を追加する。例えば、ブロック生成部MT1は、ブロック32直後に連鎖する、変更禁止領域AR4と変更許容領域AR5を含むn+1番目のブロック33にハッシュh(n)´とハッシュh(n)を追加する。ハッシュh(n)´とハッシュh(n)が追加されたブロック33をマイナー200が管理することによりデータの一部を正当な理由で変更することができる。
また、ブロック検証部MT2はブロック32に含まれるデータのハッシュh^(n)と、ブロック32の次に追加され、変更禁止領域AR4と変更許容領域AR5をブロック33に含まれるデータのハッシュh(n)が一致するか否かを判断する。例えば、ブロック検証部MT2はブロック32に含まれるデータのハッシュh^(n)と、ブロック32直後に連鎖し、変更禁止領域AR4と変更許容領域AR5をブロック33に含まれるデータのハッシュh(n)が一致するか否かを判断する。また、ブロック検証部MT2はハッシュh^(n)とハッシュh(n)が一致しない場合、ブロック32から変更許容領域AR3を除いた部分に含まれるデータのハッシュh^(n)´を生成し、ブロック33から変更許容領域AR5を除いた部分に含まれるデータのハッシュh(n)´を取得する。そして、ブロック検証部MT2はハッシュh^(n)´とハッシュh(n)´が一致する場合に、ブロック32の変更禁止領域AR4に格納されたデータが変更されていないと判断する。ブロック更新部MT3はブロック32の変更禁止領域AR4に格納されたデータが変更されていないと判断した場合に、ブロック32を、ブロック32の変更許容領域AR3に格納されたデータが変更されたブロックに変更する。これにより、変更禁止領域AR2に格納されたデータが変更されていないことを検証することができる。
以上、本発明の好ましい実施形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
特に、本実施形態では1つの変更禁止領域に2つのデータを格納し、1つの変更許容領域に2つのデータを格納した実施形態を説明したが、このような実施形態に特に限定されない。例えば格納するデータ毎に複数の変更禁止領域と複数の変更許容領域を1つのブロックに設けるようにしてもよい。この場合、ブロックの全要素のハッシュを生成するとともに、ブロックの全要素から複数の変更許容領域のそれぞれに格納されたデータを除いた一部の要素のハッシュを生成することにより、本実施形態の効果と同様の効果を得ることができる。尚、複数の変更許容領域については例えばプライバシーの重要度を関連付けるようにしてもよい。
なお、以上の説明に関して更に以下の付記を開示する。
(付記1)データの変更を禁止する第1領域とデータの変更を許容する第2領域を含む第1ブロックから前記第2領域を除いた部分ブロックに含まれるデータの第1ハッシュを生成し、前記第1ブロックに含まれるデータの第2ハッシュを生成し、前記第1ブロックの次に追加される、データの変更を禁止する第1領域とデータの変更を許容する第2領域を含む第2ブロックに前記第1ハッシュと前記第2ハッシュを追加する、処理をコンピュータが実行するブロックチェーン管理方法。
(付記2)受信したリクエストがデータの登録リクエストである場合に、前記登録リクエストのデータを、変更が禁止されたデータと変更が許容されたデータに分割して前記第2ブロックにおける前記第1領域と前記第2領域のそれぞれに格納する、処理を含むことを特徴とする付記1に記載のブロックチェーン管理方法。
(付記3)受信したリクエストがデータの変更リクエストである場合に、前記第1ブロックの前記第2領域に格納されたデータを前記変更リクエストのデータに変更する、処理を含むことを特徴とする付記1又は2に記載のブロックチェーン管理方法。
(付記4)前記第1ブロックにおける前記第2領域のデータを変更した場合に、変更後のデータを含む前記第1ブロックに含まれるデータの第3ハッシュを生成し、前記変更後のデータを含む前記第1ブロックの次に追加される、前記第2ブロックに前記第1ハッシュと前記第3ハッシュを追加する、処理を含むことを特徴とする付記1から3のいずれか1項に記載のブロックチェーン管理方法。
(付記5)データの変更を禁止する第1領域とデータの変更を許容する第2領域を含む第1ブロックに含まれるデータの第1ハッシュと、前記第1ブロックの次に追加され、データの変更を禁止する第1領域とデータの変更を許容する第2領域を含む第2ブロックに含まれるデータの第2ハッシュが一致するか否かを判断し、前記第1ハッシュと前記第2ハッシュが一致しない場合に、前記第1ブロックから前記第2領域を除いた第1部分ブロックに含まれるデータの第3ハッシュを生成し、前記第2ブロックから前記第2領域を除いた第2部分ブロックに含まれるデータの第4ハッシュを取得し、前記第3ハッシュと前記第4ハッシュが一致する場合に、前記第1ブロックの前記第1領域に格納されたデータが変更されていないと判断する、処理をコンピュータが実行するブロックチェーン管理方法。
(付記6)前記第1ブロックの前記第1領域に格納されたデータが変更されていないと判断した場合に、前記第1ブロックを、前記第1ブロックの前記第2領域に格納されたデータが変更された第3ブロックに変更する、処理を含むことを特徴とする付記5に記載のブロックチェーン管理方法。
(付記7)データの変更を禁止する第1領域とデータの変更を許容する第2領域を含む第1ブロックから前記第2領域を除いた部分ブロックに含まれるデータの第1ハッシュを生成し、前記第1ブロックに含まれるデータの第2ハッシュを生成し、前記第1ブロックの次に追加される、データの変更を禁止する第1領域とデータの変更を許容する第2領域を含む第2ブロックに前記第1ハッシュと前記第2ハッシュを追加する、処理をコンピュータに実行させるブロックチェーン管理プログラム。
(付記8)データの変更を禁止する第1領域とデータの変更を許容する第2領域を含む第1ブロックに含まれるデータの第1ハッシュと、前記第1ブロックの次に追加され、データの変更を禁止する第1領域とデータの変更を許容する第2領域を含む第2ブロックに含まれるデータの第2ハッシュが一致するか否かを判断し、前記第1ハッシュと前記第2ハッシュが一致しない場合に、前記第1ブロックから前記第2領域を除いた第1部分ブロックに含まれるデータの第3ハッシュを生成し、前記第2ブロックから前記第2領域を除いた第2部分ブロックに含まれるデータの第4ハッシュを取得し、前記第3ハッシュと前記第4ハッシュが一致する場合に、前記第1ブロックの前記第1領域に格納されたデータが変更されていないと判断する、処理をコンピュータに実行させるブロックチェーン管理プログラム。
(付記9)データの変更を禁止する第1領域とデータの変更を許容する第2領域を含む第1ブロックから前記第2領域を除いた部分ブロックに含まれるデータの第1ハッシュを生成し、前記第1ブロックに含まれるデータの第2ハッシュを生成し、前記第1ブロックの次に追加される、データの変更を禁止する第1領域とデータの変更を許容する第2領域を含む第2ブロックに前記第1ハッシュと前記第2ハッシュを追加する、処理を実行する処理部を有するブロックチェーン管理装置。
(付記10)前記処理部は、受信したリクエストがデータの登録リクエストである場合に、前記登録リクエストのデータを、変更が禁止されたデータと変更が許容されたデータに分割して前記第2ブロックにおける前記第1領域と前記第2領域のそれぞれに格納する、ことを特徴とする付記8に記載のブロックチェーン管理装置。
(付記11)前記処理部は、受信したリクエストがデータの変更リクエストである場合に、前記第1ブロックの前記第2領域に格納されたデータを前記変更リクエストのデータに変更する、ことを特徴とする付記8又は9に記載のブロックチェーン管理装置。
(付記12)前記処理部は、前記第1ブロックにおける前記第2領域のデータを変更した場合に、変更後のデータを含む前記第1ブロックに含まれるデータの第3ハッシュを生成し、前記変更後のデータを含む前記第1ブロックの次に追加される、前記第2ブロックに前記第1ハッシュと前記第3ハッシュを追加する、ことを特徴とする付記9から11のいずれか1項に記載のブロックチェーン管理装置。
(付記13)データの変更を禁止する第1領域とデータの変更を許容する第2領域を含む第1ブロックに含まれるデータの第1ハッシュと、前記第1ブロックの次に追加され、データの変更を禁止する第1領域とデータの変更を許容する第2領域を含む第2ブロックに含まれるデータの第2ハッシュが一致するか否かを判断し、前記第1ハッシュと前記第2ハッシュが一致しない場合に、前記第1ブロックから前記第2領域を除いた第1部分ブロックに含まれるデータの第3ハッシュを生成し、前記第2ブロックから前記第2領域を除いた第2部分ブロックに含まれるデータの第4ハッシュを取得し、前記第3ハッシュと前記第4ハッシュが一致する場合に、前記第1ブロックの前記第1領域に格納されたデータが変更されていないと判断する、処理を実行する処理部を有するブロックチェーン管理装置。
(付記14)前記処理部は、前記第1ブロックの前記第1領域に格納されたデータが変更されていないと判断した場合に、前記第1ブロックを、前記第1ブロックの前記第2領域に格納されたデータが変更された第3ブロックに変更する、ことを特徴とする付記13に記載のブロックチェーン管理装置。
(付記15)複数のノードを含むブロックチェーン管理システムであって、データの登録リクエストを送信する第1のノードと、前記登録リクエストを受信した場合に、データの変更を禁止する第1領域とデータの変更を許容する第2領域を含む第1ブロックから前記第1領域を除いた部分ブロックに含まれるデータの第1ハッシュを生成し、前記第1ブロックに含まれるデータの第2ハッシュを生成し、前記第1ブロックの次に追加される、データの変更を禁止する第1領域とデータの変更を許容する第2領域を含む第2ブロックに前記第1ハッシュと前記第2ハッシュを追加し、前記登録リクエストのデータを、変更が禁止されたデータと変更が許容されたデータに分割して前記第2ブロックにおける前記第1領域と前記第2領域のそれぞれに格納する第2のノードと、を有するブロックチェーン管理システム。
(付記16)複数のノードを含むブロックチェーン管理システムであって、データの変更リクエストを送信する第1のノードと、前記変更リクエストを受信した場合に、データの変更を禁止する第1領域とデータの変更を許容する第2領域を含む第1ブロックに含まれるデータの第1ハッシュと、前記第1ブロックの次に追加され、データの変更を禁止する第1領域とデータの変更を許容する第2領域を含む第2ブロックに含まれるデータの第2ハッシュが一致するか否かを判断し、前記第1ハッシュと前記第2ハッシュが一致しない場合に、前記第1ブロックから前記第2領域を除いた第1部分ブロックに含まれるデータの第3ハッシュを生成し、前記第2ブロックから前記第2領域を除いた第2部分ブロックに含まれるデータの第4ハッシュを取得し、前記第3ハッシュと前記第4ハッシュが一致する場合に、前記第1ブロックの前記第1領域に格納されたデータが変更されていないと判断し、前記第1ブロックの前記第2領域に格納されたデータを前記変更リクエストのデータに変更する第2のノードと、を有するブロックチェーン管理システム。
S ブロックチェーン管理システム
100,150 ノード(ユーザ)
WT ウォレットツール
WT1 依頼受付部
WT2 依頼送信部
200,250 ノード(マイナー)
MT マイニングツール
MT1 ブロック生成部
MT2 ブロック検証部
MT3 ブロック更新部

Claims (5)

  1. データの変更を禁止する第1領域及びデータの更新を許容する第2領域を含む第1ブロックと、前記第1領域に格納されたデータ及び前記第2領域に格納されたデータの双方を含むデータから生成された第1ハッシュを格納するとともに、前記第1領域に格納されたデータを含み、かつ、前記第2領域に格納されたデータを含まないデータから生成された第2ハッシュを格納する第2ブロックと、を含むブロックチェーンのデータ変更を評価する際に、前記第2ブロックに格納された前記第1ハッシュに基づき、前記第1ブロックに格納されたデータが前記第1ハッシュに対応しないことを検知すると、前記第1ブロックを参照して、前記第1ブロックの前記第1領域に格納されたデータを含み、かつ、前記第2領域に格納されたデータを含まないデータの第3ハッシュを生成し、前記第2ブロックに格納された前記第2ハッシュと、生成した前記第3ハッシュとの比較結果に基づき、前記第1ブロックに格納されたデータの変更に関する評価を行う、
    処理をコンピュータが実行することを特徴とするブロックチェーン管理方法。
  2. 前記第1ブロックに格納されたデータが変更されていないとの評価を行った場合に、前記第1ブロックを、前記第1ブロックの前記第2領域に格納されたデータが変更されたブロックに変更する、
    処理を含むことを特徴とする請求項に記載のブロックチェーン管理方法。
  3. データの変更を禁止する第1領域及びデータの変更を許容する第2領域を含む第1ブロックと、前記第1領域に格納されたデータ及び前記第2領域に格納されたデータの双方を含むデータから生成された第1ハッシュを格納するとともに、前記第1領域に格納されたデータを含み、かつ、前記第2領域に格納されたデータを含まないデータから生成された第2ハッシュを格納する第2ブロックと、を含むブロックチェーンのデータ変更を評価する際に、前記第2ブロックに格納された前記第1ハッシュに基づき、前記第1ブロックに格納されたデータが前記第1ハッシュに対応しないことを検知すると、前記第1ブロックを参照して、前記第1ブロックの前記第1領域に格納されたデータを含み、かつ、前記第2領域に格納されたデータを含まないデータの第3ハッシュを生成し、前記第2ブロックに格納された前記第2ハッシュと、生成した前記第3ハッシュとの比較結果に基づき、前記第1ブロックに格納されたデータの変更に関する評価を行う、
    処理をコンピュータに実行させるブロックチェーン管理プログラム。
  4. データの変更を禁止する第1領域及びデータの変更を許容する第2領域を含む第1ブロックと、前記第1領域に格納されたデータ及び前記第2領域に格納されたデータの双方を含むデータから生成された第1ハッシュを格納するとともに、前記第1領域に格納されたデータを含み、かつ、前記第2領域に格納されたデータを含まないデータから生成された第2ハッシュを格納する第2ブロックと、を含むブロックチェーンのデータ変更を評価する際に、前記第2ブロックに格納された前記第1ハッシュに基づき、前記第1ブロックに格納されたデータが前記第1ハッシュに対応しないことを検知すると、前記第1ブロックを参照して、前記第1ブロックの前記第1領域に格納されたデータを含み、かつ、前記第2領域に格納されたデータを含まないデータの第3ハッシュを生成し、前記第2ブロックに格納された前記第2ハッシュと、生成した前記第3ハッシュとの比較結果に基づき、前記第1ブロックに格納されたデータの変更に関する評価を行う、
    処理を実行する処理部を有するブロックチェーン管理装置。
  5. 複数のノードを含むブロックチェーン管理システムであって、
    データの変更リクエストを送信する第1のノードと、
    前記変更リクエストを受信した場合に、データの変更を禁止する第1領域及びデータの変更を許容する第2領域を含む第1ブロックと、前記第1領域に格納されたデータ及び前記第2領域に格納されたデータの双方を含むデータから生成された第1ハッシュを格納するとともに、前記第1領域に格納されたデータを含み、かつ、前記第2領域に格納されたデータを含まないデータから生成された第2ハッシュを格納する第2ブロックと、を含むブロックチェーンのデータ変更を評価する際に、前記第2ブロックに格納された前記第1ハッシュに基づき、前記第1ブロックに格納されたデータが前記第1ハッシュに対応しないことを検知すると、前記第1ブロックを参照して、前記第1ブロックの前記第1領域に格納されたデータを含み、かつ、前記第2領域に格納されたデータを含まないデータの第3ハッシュを生成し、前記第2ブロックに格納された前記第2ハッシュと、生成した前記第3ハッシュとの比較結果に基づき、前記第1ブロックに格納されたデータの変更に関する評価を行う第2のノードと、
    を有するブロックチェーン管理システム。
JP2017007089A 2017-01-18 2017-01-18 ブロックチェーン管理方法、ブロックチェーン管理プログラム、ブロックチェーン管理装置、及びブロックチェーン管理システム Active JP6900680B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2017007089A JP6900680B2 (ja) 2017-01-18 2017-01-18 ブロックチェーン管理方法、ブロックチェーン管理プログラム、ブロックチェーン管理装置、及びブロックチェーン管理システム
PCT/JP2018/000122 WO2018135328A1 (ja) 2017-01-18 2018-01-05 ブロックチェーン管理方法、ブロックチェーン管理プログラム、ブロックチェーン管理装置、及びブロックチェーン管理システム
ES18742135T ES2905932T3 (es) 2017-01-18 2018-01-05 Método de gestión de cadena de bloques, programa de gestión de cadena de bloques, dispositivo de gestión de cadena de bloques y sistema de gestión de cadena de bloques
EP18742135.9A EP3572966B1 (en) 2017-01-18 2018-01-05 Blockchain management method, blockchain management program, blockchain management device, and blockchain management system
US16/511,084 US20190340169A1 (en) 2017-01-18 2019-07-15 Blockchain management method and blockchain management system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017007089A JP6900680B2 (ja) 2017-01-18 2017-01-18 ブロックチェーン管理方法、ブロックチェーン管理プログラム、ブロックチェーン管理装置、及びブロックチェーン管理システム

Publications (2)

Publication Number Publication Date
JP2018116509A JP2018116509A (ja) 2018-07-26
JP6900680B2 true JP6900680B2 (ja) 2021-07-07

Family

ID=62908024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017007089A Active JP6900680B2 (ja) 2017-01-18 2017-01-18 ブロックチェーン管理方法、ブロックチェーン管理プログラム、ブロックチェーン管理装置、及びブロックチェーン管理システム

Country Status (5)

Country Link
US (1) US20190340169A1 (ja)
EP (1) EP3572966B1 (ja)
JP (1) JP6900680B2 (ja)
ES (1) ES2905932T3 (ja)
WO (1) WO2018135328A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6923946B2 (ja) * 2015-12-21 2021-08-25 コチャバ インコーポレイテッドKochava Inc. 自己規制取引システム、その方法、プログラム、データ処理デバイスシステム、コンピュータ読み取り可能な記憶媒体システム、コンピュータプログラム製品およびコンピュータプログラム製品
EP3531333B1 (de) * 2018-02-23 2020-04-15 VEGA Grieshaber KG Manipulationsgeschützte speicherung beweiserheblicher daten
JP2020028052A (ja) * 2018-08-14 2020-02-20 株式会社Skill データ管理方法
JP7112944B2 (ja) * 2018-11-16 2022-08-04 株式会社エヌ・ティ・ティ・データ 情報処理装置、情報処理方法およびプログラム
CN109784944B (zh) * 2018-12-26 2022-09-20 成都健数科技有限公司 一种药品信息采集首营审批方法
US20220012727A1 (en) * 2019-03-14 2022-01-13 Hitachi, Ltd. Personal information management system, personal information management apparatus, personal information management method
GB2588812A (en) * 2019-11-08 2021-05-12 Jitsuin Ltd Data block modification
WO2021145606A1 (en) 2020-01-17 2021-07-22 Samsung Electronics Co., Ltd. User apparatus and manager apparatus included in blockchain network and controlling method thereof
JP2021182350A (ja) * 2020-05-19 2021-11-25 琢磨 臼崎 分散台帳及びランダムマイニングによる個人情報管理システム、及びプログラム
EP4022872B1 (en) * 2020-11-11 2023-06-07 Deutsche Post AG Distributed ledger system
WO2023188039A1 (ja) * 2022-03-29 2023-10-05 三菱電機株式会社 データ検証装置、クライアントアプリケーション、ブロックチェーンシステム、データ検証方法、及びデータ検証プログラム
CN114579581B (zh) * 2022-05-05 2022-08-30 武汉北大高科软件股份有限公司 一种基于区块链的数据监管方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5858506B2 (ja) 1981-01-26 1983-12-26 タキロン株式会社 雨樋部材
JP2008305035A (ja) * 2007-06-06 2008-12-18 Hitachi Ltd 装置、更新方法、および制御ソフト。
CN106251144A (zh) * 2015-06-05 2016-12-21 地气股份有限公司 电子货币管理方法及电子货币节点装置

Also Published As

Publication number Publication date
JP2018116509A (ja) 2018-07-26
WO2018135328A1 (ja) 2018-07-26
ES2905932T3 (es) 2022-04-12
EP3572966B1 (en) 2021-11-24
EP3572966A4 (en) 2020-01-15
EP3572966A1 (en) 2019-11-27
US20190340169A1 (en) 2019-11-07

Similar Documents

Publication Publication Date Title
JP6900680B2 (ja) ブロックチェーン管理方法、ブロックチェーン管理プログラム、ブロックチェーン管理装置、及びブロックチェーン管理システム
JP7012730B2 (ja) スマートコントラクトホワイトリストに基づくブロックチェーンネットワークにおけるトランザクションの並列実行
AU2019204735B2 (en) Field-programmable gate array based trusted execution environment for use in a blockchain network
KR101897032B1 (ko) 블록체인을 이용한 저작권 보호 장치 및 저작권 보호 방법
JP6856772B2 (ja) 信頼できる実行環境において実行されるスマートコントラクト動作に基づくブロックチェーンデータの処理
JP6821053B2 (ja) ブロックチェーンネットワークにおけるデータ隔離
CN108885672B (zh) 访问管理方法、信息处理装置、程序及记录介质
KR102222612B1 (ko) 스마트 계약 화이트리스트
AU2014367176B2 (en) Pre-authorizing a client application to access a user account on a content management system
US11489660B2 (en) Re-encrypting data on a hash chain
KR101937188B1 (ko) 블록체인 기반의 머클트리를 이용한 정보 관리 방법, 이를 이용한 서버 및 단말
WO2020258858A1 (zh) 块链式账本中的授权方法、系统、装置及设备
EP4002786B1 (en) Distributed ledger system
US11314885B2 (en) Cryptographic data entry blockchain data structure
TW202046143A (zh) 資料儲存方法、裝置及設備
US20200195448A1 (en) Blockchain ledger authentication
US20160330030A1 (en) User Terminal For Detecting Forgery Of Application Program Based On Hash Value And Method Of Detecting Forgery Of Application Program Using The Same
JP2024507908A (ja) Ssiを用いたブロックチェーンネットワークアイデンティティ管理
CN111597567A (zh) 数据处理方法、装置、节点设备及存储介质
JP2023520632A (ja) データの保護のためのノイズ・トランザクション
KR20190095067A (ko) 블록체인 기반의 머클트리를 이용한 정보 관리 방법, 이를 이용한 서버 및 단말
WO2021198750A1 (en) System and method to manage information and documents on a native blockchain network system including permissioned blockchain, storage, sharing, organisation, porting and various applications
JPWO2019163040A1 (ja) アクセス管理システム、及びそのプログラム
US20220114276A1 (en) Controlling a data network with respect to a use of a distributed database
JP6939313B2 (ja) 分散認証システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191008

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200827

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210407

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20210407

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20210420

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20210427

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210531

R150 Certificate of patent or registration of utility model

Ref document number: 6900680

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150