JP2020170342A - 分散台帳装置、分散台帳システム、及び分散台帳管理方法 - Google Patents

分散台帳装置、分散台帳システム、及び分散台帳管理方法 Download PDF

Info

Publication number
JP2020170342A
JP2020170342A JP2019071362A JP2019071362A JP2020170342A JP 2020170342 A JP2020170342 A JP 2020170342A JP 2019071362 A JP2019071362 A JP 2019071362A JP 2019071362 A JP2019071362 A JP 2019071362A JP 2020170342 A JP2020170342 A JP 2020170342A
Authority
JP
Japan
Prior art keywords
distributed ledger
processing
program
node
log
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.)
Granted
Application number
JP2019071362A
Other languages
English (en)
Other versions
JP7316081B2 (ja
Inventor
鎮平 野村
Shimpei Nomura
鎮平 野村
光雄 早坂
Mitsuo Hayasaka
光雄 早坂
潤 根本
Jun Nemoto
潤 根本
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2019071362A priority Critical patent/JP7316081B2/ja
Priority to US16/811,044 priority patent/US11483158B2/en
Publication of JP2020170342A publication Critical patent/JP2020170342A/ja
Application granted granted Critical
Publication of JP7316081B2 publication Critical patent/JP7316081B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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
    • 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/3247Cryptographic 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 involving digital 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

Abstract

【課題】或る分散台帳装置における分散台帳に対する運用処理の状況を、他の分散台帳装置で容易且つ適切に確認できるようにする。【解決手段】所定の対象のトランザクションについての分散台帳700を管理する複数のBCノード300を備えるBCシステムにおけるBCノード300において、BCノード300は、記憶デバイス330と、プロセッサ310とを備え、記憶デバイス330は、分散台帳700を記憶し、プロセッサ310を、分散台帳700に関わる処理を実行した場合に、処理の内容を示す内容情報を、分散台帳700を管理する他のBCノードで管理させるために送信するように構成する。プロセッサ310を、分散台帳700を管理する複数のBCノードが管理する他の分散台帳に内容情報を登録させる指示を送信するようにしてもよい。【選択図】図3

Description

本発明は、分散台帳を管理する技術に関する。
ブロックチェーン(BC)は、複数の主体者間で共有される分散システムを実現する技術である。BCシステム上では、主体者間で合意のとられたトランザクションのみを受領し、トランザクションにより生成・更新されたデータを主体者間で複製・保持し、またトランザクションの履歴をブロックチェーンと呼ばれる改竄困難なデータ構造に格納する。BC技術の適用により,利用者は中央集権機関の介在なしに、利用者間での取り引きやデータの共有を可能とするシステムが構築可能となるため、取り引きの迅速化やコスト低減が見込まれ、金融や産業などの多くの分野での活用が期待される。
BCシステムでは、参加する主体者がそれぞれにシステムを構成するノード(分散台帳装置)を提供するために、ノードにより管理者が異なってくる。そのため、こうした複数主体者間で共有されるシステムでは、システム全体でのデータの保有状況を管理することが難しい。例えば、システムに参加するノードからデータバックアップを行うケースでは、参加ノードに対し管理者がそれぞれにバックアップを実施するため、全バックアップデータから個人情報を削除することが難しくなる。近年では、法制度により利用者にシステム上からの個人情報の削除を請求する権利が認められているため、BCシステムにおいても確実にデータ削除を遂行できる仕組みが必要になる。
BCシステムの参加ノード間でポリシーやタイミングを揃えて運用処理を実施する技術が特許文献1に開示されている。特許文献1に記載の技術では、運用オペレーションをBCシステムのトランザクションとして扱うことで、ノード間で合意形成しながら統一的なポリシーやタイミングでのオペレーション実行を可能とする。
特開2019−28525号公報
例えば、特許文献1に記載の技術をデータ削除の処理へ適用することで、複数の主体者がそれぞれに管理するノードでタイミングをそろえたデータ削除の実施要求が可能となる。しかしながら、特許文献1の技術においては、BCシステムの参加ノードに対して統一的なポリシーでのデータ削除要求が可能だが、例えば、参加ノードにおいて、すべてのバックアップデータが確実に削除されたかを他のノードにおいて確認することは困難である。また、データ削除の処理に限らず、参加ノードが個別に行った処理について、他のノードが確認等することは困難である。
本発明は、上記事情に鑑みなされたものであり、その目的は、或る分散台帳装置における分散台帳に対する運用処理の状況を、他の分散台帳装置で容易且つ適切に確認できるようにする技術を提供することにある。
上記目的を達成するため、一観点に係る分散台帳装置は、所定の対象のトランザクションについての第1分散台帳を管理する複数の分散台帳装置を備える分散台帳システムにおける分散台帳装置であって、分散台帳装置は、記憶デバイスと、プロセッサ部とを備え、記憶デバイスは、第1分散台帳を記憶し、プロセッサ部は、第1分散台帳に関わる処理を実行した場合に、処理の内容を示す内容情報を、第1分散台帳を管理する他の分散台帳装置で管理させるために送信する。
本発明によれば、或る分散台帳装置における分散台帳に対する運用処理の状況を、他の分散台帳装置で容易且つ適切に確認できるようになる。
図1は、一実施形態の概要を説明する図である。 図2は、一実施形態に係るブロックチェーン(BC)システムの全体構成図である。 図3は、一実施形態に係るBCノードと、ストレージとの構成図である。 図4は、一実施形態に係る分散台帳の第1の構成例を示す図である。 図5は、一実施形態に係る分散台帳の第2の構成例を示す図である。 図6は、一実施形態に係るスマートコントラクト管理テーブルの構成図である。 図7は、一実施形態に係るシステム構成管理テーブルの構成図である。 図8は、一実施形態に係る周辺コンポーネント管理テーブルの構成図である。 図9は、一実施形態に係る運用処理ステップ管理テーブルの構成図である。 図10は、一実施形態に運用処理ステップ遷移管理テーブルの構成図である。 図11は、一実施形態に係る運用トランザクション管理テーブルの構成図である。 図12は、一実施形態に係る運用ログテーブルの構成図である。 図13は、一実施形態に係る運用管理処理のフローチャートである。 図14は、一実施形態に係るトランザクション処理のフローチャートである。 図15は、一実施形態に運用処理実行要求に対応する運用SCプログラムによる処理のフローチャートである。 図16は、一実施形態に係る運用処理のフローチャートである。 図17は、一実施形態に係るログ登録処理のフローチャートである。 図18は、一実施形態に係る運用処理実行完了確認要求に対応する運用SCプログラムによる処理のフローチャートである。
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
以下の説明では、「AAAテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」を「AAA情報」と呼ぶことができる。
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサである。1以上のプロセッサの各々は、シングルコアでもよいしマルチコアでもよい。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
また、以下の説明では、「プログラム」を動作の主体として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜に記憶部及びインターフェース部のうちの少なくとも1つを用いながら行うため、処理の主語が、プロセッサ部(或いは、プロセッサ部を有する装置又はシステム)とされてもよい。プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記録媒体であってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
まず、一実施形態の概要について説明する。
図1は、一実施形態の概要を説明する図である。
本実施形態に係る分散台帳システムの一例であるブロックチェーンシステム(BCシステム)100においては、BCシステム100を構成しているBCノード300は、分散台帳のバックアップのデータを削除するデータ削除処理を含む運用処理を実施した場合に、運用処理についてのログ(内容情報の一例)を生成し、生成したログに対して、バックアップデータを格納していたストレージ400(周辺コンポーネントの一例)が有する秘密鍵425による署名を付与して、BCシステム100に登録し、保管する。
BCノード300は、システム構成情報として、例えば、BCシステム100の構成情報を管理するシステム構成管理テーブル900(図7参照)と、BCシステム100のストレージ400の構成情報を管理する周辺コンポーネント管理テーブル1000(図8参照)を格納する。また、BCノード300は、運用処理の処理内容を示す運用ログを管理する運用ログテーブル1400(図12参照)を格納する。BCノード300では、運用処理を実行する運用エージェント321が稼働する。運用エージェント321は、ストレージ400が関わる運用処理の実行後に、ストレージ400から秘密鍵425による署名が付与された運用ログを取得する。次いで、運用エージェント321は、BCプログラム600を介して、運用ログを複製して他の全てのBCノード300に送信し、運用ログテーブル1400に登録させて保管させ、自BCノード300においても、運用ログを運用ログテーブル1400に登録する。
[BCシステム構成]
次に、一実施形態に係るブロックチェーン(BC)システムについて詳細に説明する。
図2は、一実施形態に係るブロックチェーン(BC)システムの全体構成図である。
BCシステム100は、1つ以上のクライアント200と、複数のBCノード300と、1以上のストレージ400と、1以上の管理端末500とを備える。クライアント200と、BCノード300と、ストレージ400と、管理端末500は、ネットワーク120等を介して相互に接続されている。ネットワーク120は、例えばWAN(Wide Area Network)、LAN(Local Area Network)、インターネット等を含む通信回線により構成することができる。
BCシステム100においては、例えば、クライアント200、BCノード300、ストレージ400、及び管理端末500は、複数の組織110(図2の例えは、組織110−0、110−1、110−2の3つの組織)により分散されて管理されている。
[クライアント200]
クライアント200は、例えば、プロセッサ、メモリ、入出力装置、ネットワークインタフェース等を有する計算機により構成される。クライアント200では、トランザクションを分散台帳で管理するためのBCサービスを活用する業務アプリケーションプログラムなどが実行される。クライアント200は、アプリケーションプログラムをプロセッサにより実行することにより、トランザクションを生成し、BCノード300へ発行する。なお、アプリケーションプログラムをBCノード300で実行させるようにして、BCノード300をクライアント200として機能させるようにしてもよい。
[管理端末500]
管理端末500は、例えばプロセッサ、メモリ、キーボード及びディスプレイ等の入出力装置、ネットワークインタフェース等を有する計算機により構成される。管理端末500では、BCサービスの管理を行うための運用管理アプリケーションプログラムが実行される。管理端末500は、入出力装置を介して、管理者からのBCノード300、ストレージ400に対する設定の指示を受け付ける。また、管理端末500は、入出力装置を介して、BCノード300やストレージ400の状態を示す情報を表示する。なお、管理端末500の機能を、クライアント200やBCノード300を構成する計算機に内蔵するようにしてもよい。
[BCノード300]
図3は、一実施形態に係るBCノードと、ストレージとの構成図である。
BCノード300は、分散台帳装置の一例であり、クライアント200に対してBCサービスを提供する計算機である。BCノード300は、プロセッサ310と、メモリ320と、 記憶デバイス330と、ネットワークインタフェース340とを有する。これら構成要素310,320,330,340は、バス350により相互接続されている。
プロセッサ310は、プロセッサ部の一例であり、CPU(Central Processing Unit)などを含む演算処理装置として構成されており、メモリ320に格納されているプログラム、演算パラメータ等に従って、BCノード300の動作を制御する。
ネットワークインタフェース340は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、ネットワークを介して、他の装置(例えば、クライアント200、ストレージ400、他のBCサーバ300等)と通信する。
メモリ320は、例えば、RAM(Random Access Memory)等であり、BCノード300がクライアント200にBCサービスを提供するためのBCプログラム600と、運用エージェント321と、運用処理プログラム323等を記憶する。また、メモリ320は、記憶デバイス330から読み出された各種情報を記憶するための記憶領域や、プロセッサ310のワークメモリとして用いられる。
記憶デバイス330は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などであり、各種プログラムや管理情報などのデータを格納する。なお、BCプログラム600、運用エージェント321、運用処理プログラム323などのプログラムを記憶デバイス330に格納しておき,これらのプログラムをプロセッサ310によって実行する際に記憶デバイス330からメモリ320に読み出すようにしてもよい。
また、記憶デバイス330は、BCサービスで管理する各種データとして、データベース332と、分散台帳700と、BC管理情報331とを格納する。データベース332は、BCサービスが受領したトランザクションの実行の結果として得られた最新状態を保持するデータベースである。データベース332は、後述するスマートコントラクト管理テーブル800と、システム構成管理テーブル900と、周辺コンポーネント管理テーブル1000と、運用処理ステップ管理テーブル1100と、運用処理ステップ遷移管理テーブル1200と、運用トランザクション管理テーブル1300と、運用ログテーブル1400と、を含む。
分散台帳700は、BCサービスが受領したトランザクションのログについて、改竄が困難な構造で格納したデータである。分散台帳700としては、業務用(業務処理用)の分散台帳(第1分散台帳)と、運用用(運用処理用)の分散台帳(第2分散台帳)とがある。
BC管理情報331は、BCサービスの管理情報であり、登録されたSC、各データベース332や分散台帳700のBCノード300間での共有範囲、ユーザの認証情報やアクセス権等を管理する。データベース332、分散台帳700、BC管理情報331は、記憶デバイス330に格納し、BCプログラム600が参照する際に必要に応じてメモリ320にロールインしてもよい。
次に、BCノード300で実行されるプログラムについて説明する。
BCプログラム600は、SCプログラム610を含み、クライアント200から取引データであるトランザクションを受領し、BCシステム100に参加する他のBCノード300とトランザクションの受領に関する合意形成を行い、トランザクションの指定するスマートコントラクト(SC)の実行し、トランザクションの結果をデータベース332へコミットし、またトランザクションのログを分散台帳700に登録し、クライアント200へトランザクションの処理結果を通知する。
SCプログラム610は、各SCの動作が記述されたプログラムである。BCプログラム600は、トランザクションのSC指定から複数のSCプログラム610の中から適切なプログラムを選択して実行し、その結果に基づきデータベース332の値を更新する。
SCプログラム610は、業務用のSCプログラムである業務SCプログラム611と、運用用のSCプログラムである運用SCプログラム612との2種類を含む。業務SCプログラム611は、クライアント200における業務アプリケーションからのトランザクションで指定されるSCプログラム610である。運用SCプログラム612は、クライアント200における運用管理アプリケーションからのトランザクションで指定されるSCプログラム610である。
運用エージェント321は運用SCプログラム612より実行通知を受領し、通知内容に基づき運用処理プログラム323を選択して実行する。また、運用エージェント321は、運用処理の実行状況を示す運用ログを随時BCサービスに登録する。なお、運用エージェント321に対して、運用SCプログラム612以外からの運用処理の実行通知を許容してもよい。例えば、組織110−1の管理端末500が、組織110−1内でのみ行う運用処理の実行通知を発行してもよい。この場合、各組織110固有の運用処理の運用ログが、証跡としてBCサービスに登録される。運用エージェント321は、秘密鍵322を保持し、運用ログに対して秘密鍵322による署名を付与する。
運用処理プログラム323は、運用エージェント321が実行する運用処理内容を記述したプログラムである。運用処理プログラム323としては、例えば、ストレージ400と連携して記憶デバイス330のデータをバックアップするバックアッププログラムや、ストレージ400の記憶デバイス430のバックアップデータ431を削除するバックアップデータ削除プログラムや、ストレージ400に格納したデータをリストアするリストアプログラム、ストレージ400のバックアップデータ431から個人情報などのデータを削除する削除プログラムなどがある。
[ストレージ400]
ストレージ400は、BCノード300のバックアップデータ431を格納する。ストレージ400は、プロセッサ410と、メモリ420と、記憶デバイス430と、ネットワークインタフェース440とを有する。これら構成要素410,420,430,440は、バス450を介して相互接続されている。
プロセッサ410は、CPUなどを含む演算装置として構成されており、メモリ420に記憶されているプログラム、演算パラメータに従ってストレージ400を制御する。
メモリ420は、例えば、RAM(Random Access Memory)等であり、BCノード300の運用処理プログラム323と連携して動作するバックアッププログラム421、リストアプログラム422、データ削除プログラム423とを記憶する。また、メモリ420は、記憶デバイス430から読み出された各種情報を記憶するための領域や、プロセッサ410のワークメモリとして用いられる。
また、メモリ420は、ログ提供プログラム424を記憶する。ログ提供プログラム424は、バックアップ、リストア、データ削除の処理の実行時のログを出力し、BCノード300に提供する。また、ログ提供プログラム424は、秘密鍵425を有し、これを用いてログへの署名付与を行う。
記憶デバイス430は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などであり、各種プログラム、管理情報、バックアップデータ431などのデータを格納する。なお、記憶デバイス430に、バックアッププログラム421、リストアプログラム422、データ削除プログラム423を格納しておき、これらのプログラムをプロセッサ410が実行する際に記憶デバイス430からメモリ420に読み出すようにしてもよい。
[分散台帳700]
図4は、一実施形態に係る分散台帳の第1の構成例を示す図である。
分散台帳700は、BCサービスのトランザクションのログデータを、ログデータの改竄を困難とするデータ構造により管理する。分散台帳700は、ログデータを含む複数のブロック720を接続したチェーン状のデータ構造となっている。ブロック720は、1以上のトランザクション721と、同一の分散台帳700内の一つ前(直前)に生成されたブロック720から算出されたハッシュ722とを含む。ハッシュ722は、ハッシュ関数によって算出される固定長の値である。ハッシュ関数は、出力であるハッシュから入力値を推定することが困難であり、また衝突耐性によって同一の出力値を得る異なる入力値を得ることが困難であるという特性を持つ関数である。
ブロック720間はハッシュ722により依存関係を持っており、分散台帳700内の1つのブロック720のトランザクション721が改竄されると、そのブロック720から算出されるハッシュ722は、次のブロック720のハッシュ722と一致しなくなり、不整合が生じる。ハッシュ関数の特性上、同一のハッシュ722を得る改竄データを生成することは難しく、ブロック720内の情報の変更には同一の分散台帳700内の以降の全ブロック720に変更が必要となり、改竄が困難となる。
例えば、ブロック720からトランザクション721における個人情報を削除することがある場合においては、分散台帳700を図4に示すデータ構造とすると、データの不整合を防ぐことが困難である。このため、ブロック720からトランザクション721における個人情報を削除することがある場合においては、分散台帳700を、例えば、図5に示すようなデータ構造としてもよい。
図5は、一実施形態に係る分散台帳の第2の構成例を示す図である。
図5に示す分散台帳700では、依存関係を持つブロック720に直接トランザクション721を格納せずに、1以上のトランザクション721を含むデータブロック730から算出されたハッシュ731を格納するようにする。そして、ブロック720には、ハッシュ731と、直前のブロック720から算出されるハッシュ722とを格納する。この分散台帳700では、データ削除時にデータブロック730を削除し、フラグによりブロック720内のハッシュ731に対応するデータブロック730が削除されたことを管理することで、分散台帳700に不整合を生じることなくデータの削除が可能となる。一方で、データブロック730の改竄時には、データブロック730から算出されるハッシュ721と、対応するブロック720内のハッシュ731が一致せず,改竄検知が可能である。
なお、分散台帳700のデータ構成は、図4及び図5の例に限らず、例えば、トランザクション721に対して改竄が発生した時に、不整合を生じさせるデータ構造であればよい。例えば、図4の分散台帳700において、各トランザクション721の代わりに、各トランザクション721から算出するハッシュ値をブロック720に格納するようにしたデータ構造としてもよい。
[データベース332]
次に、本実施形態におけるデータベース332に含まれる各種テーブルの構成例を説明する。
[スマートコントラクト管理テーブル800]
図6は、一実施形態に係るスマートコントラクト管理テーブルの構成図である。
スマートコントラクト管理テーブル800は、BCサービスに登録されたSCを管理するテーブルであり、SCごとのエントリを有する。スマートコントラクト管理テーブル800のエントリは、ID801、種別802、及び実行プログラム803の項目を有する。
ID801には、エントリに対応するSCの識別子が格納される。SCの識別子としては、数値であってもよく、“backup_sc”、“restore_sc”などの文字列であってもよい。種別802には、エントリに対応するSCの種類が格納される。種類としては、例えば、業務アプリケーションにより使用される業務SCと、運用管理アプリケーションにより使用される運用SCとがある。実行プログラム803には、エントリに対応するSCの内容が記述されたプログラムを特定する情報が格納される。プログラムを特定する情報としては、例えば、エントリに対応するSCを実行する際に使用されるプログラムの格納パスがある。
[システム構成管理テーブル900]
図7は、一実施形態に係るシステム構成管理テーブルの構成図である。
システム構成管理テーブル900は、運用処理を実行するBCノード300の構成を管理するためのテーブルである。システム構成管理テーブル900は、運用処理を実施するBCノード300に対応するエントリを格納する。システム構成管理テーブル900のエントリは、組織ID901、ノードID902、及び公開鍵903の項目を有する。
組織ID901には、エントリに対応するBCノード300を管理する組織の識別子(組織ID)が格納される。ノードID902には、エントリに対応するBCノード300の識別子(ノードID)が格納される。例えば、組織IDと、ノードIDとは、それぞれ数値によって表現してもよいし、組織IDとして“org01”、ノードIDとして“svr01”のような文字列を割り当ててもよい。また、組織IDとノードIDとの組を、“svr01.org01”のような単一の識別子としてもよい。本実施形態では、BCノード300は、組織ID及びノードIDの値によって一意に識別可能となっている。公開鍵903には、エントリに対応するBCノード300内の運用エージェント321が保有する秘密鍵322に対応する公開鍵が格納される。公開鍵は、運用エージェント321により運用処理の運用ログに付与される署名を検証するために使われる。
[周辺コンポーネント管理テーブル1000]
図8は、一実施形態に係る周辺コンポーネント管理テーブルの構成図である。
周辺コンポーネント管理テーブル1000は、運用処理でBCノード300が連携する周辺コンポーネントを管理するためのテーブルである。周辺コンポーネント管理テーブル1000は、BCノード300と連携する周辺コンポーネントごとのエントリを格納する。周辺コンポーネント管理テーブル1000のエントリは、組織ID1001、コンポーネントID1002、種別1003、及び公開鍵1004の項目を有する。
組織ID1001には、エントリに対応する周辺コンポーネントを管理する組織の識別子(組織ID)が格納される。組織IDは、システム構成管理テーブル900の組織ID901の組織IDと共通した値をとる。コンポーネントID1002には、エントリに対応する周辺コンポーネントの識別子(コンポーネントID)が格納される。組織IDと、コンポーネントIDとは、数値であってもよく、2つのIDを組合わせた“storage0.org0”のような単一の文字列としてもよい。本実施形態では、周辺コンポーネントは、組織ID及びコンポーネントIDの値によって一意に識別可能となっている。種別1003には、エントリに対応する周辺コンポーネントの種類が格納される。種類としては、例えば“ストレージ”などの値がある。公開鍵1004には、エントリに対応する周辺コンポーネントが保有する秘密鍵425に対応する公開鍵が格納される。公開鍵は、周辺コンポーネントにより運用処理の運用ログに付与される署名を検証するために使われる。
[運用処理ステップ管理テーブル1100]
図9は、一実施形態に係る運用処理ステップ管理テーブルの構成図である。
運用処理ステップ管理テーブル1100は、運用SCに基づき実施する各運用処理の工程(処理ステップ)を管理するテーブルである。運用処理ステップ管理テーブル1100は、運用処理を構成する工程(処理ステップ)ごとのエントリを格納する。運用処理ステップ管理テーブル1100のエントリは、SCID1101、組織ID1102、ノードID1103、ステップID1104、実行プログラム1105、ログ登録要否1106、ログ形式1107、連携先ID1108、連携先ログ取得1109、及び署名発行者1110の項目を有する。
SCID1101には、エントリに対応する処理ステップが実行契機となるSCの識別子(SCID)が格納される。SCID1101のSCIDは、スマートコントラクト管理テーブル800のID801のIDと対応する。組織ID1102には、エントリに対応する処理ステップを実行するBCノード300が属する組織IDが格納される。ノードID1103には、エントリに対応する処理ステップを実行するBCノード300のノードIDが格納される。組織ID1102及びノードID1103の値は、システム構成管理テーブル900の組織ID901とノードID902の値に対応する。例えば、組織ID1102が1であり、ノードID1103が1であるエントリは、システム構成管理テーブル900の組織ID901が1であり、ノードID902が1であるエントリに対応するBCノード300が実行する処理ステップを示す。なお、組織ID1102と、ノードID1103との値が指定されていないエントリは、処理を実行するBCノード300が任意であるデフォルトの処理を記述しているとしてもよい。ステップID1104には、エントリに対応する処理ステップの識別子(処理ステップID)が格納される。運用処理ステップ管理テーブル1100のエントリに対応する処理ステップは、SCコントラクトID1101、組織ID1102、ノードID1103、及びステップID1104の値によって一意に識別される。
実行プログラム1105には、エントリに対応する処理ステップで実行する処理内容が格納される。処理内容としては、例えば、エントリに対応する処理ステップで実行されるコマンドと、その引数とを含んでもよい。ログ登録要否1106には、エントリに対応する処理ステップの実施後にBCサービスへログを登録するか否かの要否(ログ登録要否)が格納される。ログ形式1107には、エントリに対応する処理ステップで出力される運用ログの出力フォーマットが格納される。例えば、出力フォーマットは、フォーマット指定子による記述であってもよい。連携先ID1108には、エントリに対応する処理ステップで連携する周辺コンポーネントの識別子(コンポーネントID)が格納される。コンポーネントIDは、周辺コンポーネント管理テーブル1000のコンポーネントID1002の値と対応する。連携先ログ取得1109には、BCサービスに登録する運用ログを、周辺コンポーネントが発行するか否かを示す情報が格納される。署名発行者1110には、運用ログに付与する署名の発行者が格納される。例えば、発行者としては、BCノード300や連携先を指定してもよいし、空欄としてもよい。ここで、空欄は、署名を付与しないことを示す。
[運用処理ステップ遷移管理テーブル1200]
図10は、一実施形態に運用処理ステップ遷移管理テーブルの構成図である。
運用処理ステップ遷移管理テーブル1200は、処理ステップ間の遷移条件に関する情報を管理するテーブルである。運用処理ステップ遷移管理テーブル1200は、処理ステップから別の処理ステップへの遷移(処理ステップ間遷移)に対応するエントリを含む。運用処理ステップ遷移管理テーブル1200のエントリは、SCID1201、組織ID1202、ノードID1203、ステップID1204、遷移条件1205、次ステップID1206、及び登録状態1207の項目を有する。
SCID1201には、エントリに対応する処理ステップが実行契機となるSCの識別子(SCID)が格納される。SCID1201の値は、スマートコントラクト管理テーブル800のID801の値と対応する。組織ID1202には、エントリに対応する処理ステップを実行するBCノードが属する組織IDが格納される。ノードID1203には、エントリに対応する処理ステップを実行するBCノードのノードIDが格納される。組織ID1202及びノードID1203の値は、システム構成管理テーブル900の組織ID901とノードID902の値に対応する。ステップID1204には、エントリに対応する処理ステップの識別子(処理ステップID)が格納される。SCID1201、組織ID1202、ノードID1203、及びステップID1204の値の組と対応する、運用処理ステップ管理テーブル1100のSCID1101、組織ID1102、ノードID1103、及びステップID1104の値の組を持つエントリを参照することにより、運用処理ステップ遷移管理テーブル1200のエントリに対応するステップ間遷移の遷移元処理ステップを特定できる。
遷移条件1205には、エントリに対応する処理ステップの遷移条件が格納される。運用処理ステップ遷移管理テーブル1200の各エントリは、SDID1201、組織ID1202、ノードID1203、ステップID1204、及び遷移条件1205の値によって識別される。次ステップID1206には、エントリに対応するステップ間遷移での遷移先処理ステップの識別子が格納される。次ステップID1206の値は、運用処理ステップ管理テーブル1100のステップID1104と対応し、エントリに対応する処理ステップ間遷移における遷移先処理ステップを特定できる。登録状態1207には、エントリに対応する遷移条件に該当した時に、BCサービスに登録する運用処理の実行状態が格納される。実行状態としては、例えば、実行中、異常終了、実行完了等がある。
[運用トランザクション管理テーブル1300]
図11は、一実施形態に係る運用トランザクション管理テーブルの構成図である。
運用トランザクション管理テーブル1300は、運用処理実行要求をしたトランザクションの情報を管理するテーブルである。運用トランザクション管理テーブル1300は、運用処理実行要求をしたトランザクション毎のエントリを格納する。運用トランザクション管理テーブル1300のエントリは、ID1301、SCID1302、状態1303、パラメータ1304、発行者1305、登録時タイムスタンプ1306、及び最終更新時タイムスタンプ1307の項目を有する。
ID1301には、エントリに対応する運用処理実行要求をしたトランザクションの識別子が格納される。SCID1302には、エントリに対応する運用処理実行要求をしたトランザクションが指定したSCの識別子(SCID)が格納される。SCID1302のSCIDは、スマートコントラクト管理テーブル800のID801の値に対応する。状態1303には、エントリに対応するトランザクションが要求した運用処理の実行状態が格納さえる。実行状態としては、“実行開始”や“実行終了”などがある。パラメータ1304には、エントリに対応するトランザクションが指定したパラメータが格納される。パラメータとしては、例えばバックアップの対象データなどの情報がある。発行者1305には、エントリに対応するトランザクションを発行したユーザが格納される。登録時タイムスタンプ1306には、エントリに対応するトランザクションの受領時のタイムスタンプが格納される。最終更新時タイムスタンプ1307には、エントリに対応するトランザクションが要求した運用処理の実行状態の最終更新時のタイムスタンプが格納される。
[運用ログテーブル1400]
図12は、一実施形態に係る運用ログテーブルの構成図である。
運用ログテーブル1400は、各BCノード300の運用エージェント321が登録する運用処理の運用ログ(内容情報の一例)を管理するためのテーブルである。運用ログテーブル1400は、運用エージェント321が登録する運用処理の各処理ステップでの運用ログに対応するエントリを格納する。運用ログテーブル1400のエントリは、トランザクション(Tx)ID1401、組織ID1402、ノードID1403、状態1404、タイムスタンプ1405、完了ステップID1406、ログ1407、署名1408、及び次ステップID1409の項目を有する。
TxID1401には、エントリに対応する運用ログの運用処理を要求したトランザクションの識別子が格納される。TxID1401のトランザクションIDは、運用トランザクション管理テーブル1300のID1301の値と対応する。組織ID1402には、エントリに対応する運用ログの処理ステップを実行するBCノードが属する組織IDが格納される。ノードID1403には、エントリに対応するログの処理ステップを実行するBSCノードのノードIDが格納される。組織ID1402及びノードID1403の値は、システム構成管理テーブル900の組織ID901とノードID902の値に対応する。
状態1404には、エントリに対応する運用ログの登録時のトランザクションに要求された運用処理の実行状態が格納される。状態1404の実行状態は、運用処理ステップ遷移管理テーブル1200の登録状態1207の値に対応する。タイムスタンプ1405には、エントリに対応する運用ログの登録時のタイムスタンプが格納される。完了ステップID1406には、エントリに対応する運用ログを出力した処理ステップの識別子が格納される。完了ステップID1406の処理ステップIDは、運用処理ステップ管理テーブル1100のステップID1104の値と対応する。ログ1407には、エントリに対応する運用エージェント321により登録された運用ログが格納される。署名1408には、エントリに対応する運用ログに付与された電子署名が格納される。次ステップID1409には、エントリに対応する運用ログの処理ステップの次に実行する処理ステップの識別子が格納される。次ステップID1409の処理ステップIDは、運用処理ステップ管理テーブル1100のステップID1104の値と対応する。
次に、本実施形態に係るBCシステム100における処理について説明する。
図13は、一実施形態に係る運用管理処理のフローチャートである。
運用管理処理は、大別すると、運用処理の実行要求を行う工程(ステップS001)と、運用処理を実行する工程(ステップS002)と、運用処理の実行完了の確認を行う工程(ステップS005)との3つの工程から構成される。
クライアント200又は管理端末500は、BCプログラム600を介して各BCノード300へ業務用の分散台帳700に対する運用処理の実行要求処理を行う(ステップS001)。運用処理実行要求は、トランザクションの実行要求の一例である。次いで、運用処理実行要求に起因して、通知を受けた各BCノード300の運用エージェント321が運用処理を実行する(ステップS002)。
次いで、運用エージェント321は、処理の中断や中止の要求が発生したか否かを判定し(ステップS003)、中断や中止の要求が発生していない場合(ステップS003;No)には、処理をステップS005に進める。
一方、中断や中止の供給が発生している場合(ステップS003:Yes)には、運用エージェント321は、再開要求があったか否かを判定し(ステップS004)、再開要求があれば(ステップS004:Yes)、処理をステップS001に進める一方、再開要求がなければ(ステップS004:No)、運用管理処理を中止する。
ステップS005では、運用エージェント321は、運用管理処理の実行完了の確認処理(運用処理実行完了確認処理)を行い、処理を終了する。運用処理実行完了確認処理では、運用エージェント321が各BCノード300での運用処理の実行状況から、BCシステム100全体で運用処理が完了したことを確認する。
[トランザクション処理]
図13の示す運用管理処理の各処理を説明する前に、BCシステム100でのトランザクション処理について説明する。
図14は、一実施形態に係るトランザクション処理のフローチャートである。
トランザクション処理は、BCシステム100を構成するBCノード300のBCプログラム600によって実行される。トランザクション処理は、BCシステム100を構成する全てのBCノード300で実施してもよいし、一部のBCノード300で実施して、実施した処理結果を他のBCノード300へ配信するようにしてもよい。
トランザクション処理は、クライアント200や管理端末500から発行されるトランザクションを、BCノード300のBCプログラム600が受領することを契機として開始される。ここで、トランザクションには、例えば、実行するSCを特定するための識別子や、SC実行時に指定する引数、ユーザ認証のための署名などが含まれる。
まず、BCプログラム600は、トランザクションが指定しているSCプログラムを特定する(ステップS101)。具体的には、BCプログラム600は、スマートコントラクト管理テーブル800を参照し、受領したトランザクションに含まれるSCの識別子と一致する値がID801に格納されているエントリを取得し、このエントリからトランザクションの指定するSCプログラムを特定する。
次に、BCプログラム600は、受領したトランザクションの内容を検証する(ステップS102)。具体的には、BCプログラム600は、例えば、トランザクションに含まれる署名の検証、トランザクションの処理内容とデータベース332との整合性確認、BCノード300間でのトランザクションの処理結果の一致確認などである。この検証結果に問題ない場合(ステップS102:Yes)には、BCプログラム600は、トランザクションを分散台帳700とデータベース332へと反映するために処理をステップS103に進める一方、検証結果に問題がある場合(ステップS102:No)には、トランザクションの結果を反映せずに、トランザクション処理を完了する。
ステップS103では、BCプログラム600は、ステップS101で受領したトランザクションを含むブロック729を生成する。なお、受領したトランザクションの数が、ブロック729に格納するトランザクションの数に満たない場合には、トランザクションをメモリに格納等してこれ以降の処理を行わない。ブロック729の生成においては、BCノード300のBCプログラム600は、ステップS101で受領したトランザクションであって、分散台帳700のブロック720に組み込まれていない所定数(ブロック729への格納数)のトランザクション721を選択するとともに、分散台帳700の末尾に位置するブロック720に基づいて、ブロック720に対応するハッシュ722を算出し、所定数のトランザクション721と、ハッシュ722とを含むブロック720を生成する。
次に、ステップS104では、BCプログラム600は、SCプログラム610を実行することにより、生成したブロック720を分散台帳700へ登録するとともに、登録したブロック720に含まれるトランザクション721を実行し、その結果をデータベース332に反映する。このステップにおいて、登録するブロック720の整合性を確認してもよい。整合性の確認は、例えばブロック720に含まれるハッシュ722が分散台帳700の末尾のブロック720から算出したハッシュ722と一致するか否かにより確認することができる。整合しないと判定した場合には、例えば、他のBCノード300により、分散台帳700に新たなブロック720が追加されていた等が考えられるので、BCブロック600は、SCプログラム610の実行、分散台帳700とデータベース332の更新はせずに処理をステップS103に進め、受領したトランザクションを含む別のブロック720を新たに生成して、後続の処理を実行する。なお、ステップS103と、ステップS104で実施するブロック720の生成と検証との方法は、BCシステム100が採用する合意形成アルゴリズムにより異なる。合意形成アルゴリズムには、例えばPoW(Proof of Work)やPBFT(Practical Byzantine Fault Tolerance)などがある。
ステップS104の実行が終了すると、BCプログラム600は、処理をステップS105に進める。
ステップS105では、BCプログラム600は、完了した処理の結果を、トランザクションを発行したクライアント200や管理端末500に返送し,トランザクション処理を完了する。返送する内容は、例えば実行したトランザクションの識別子や、トランザクションの実行により更新されたデータベース332の値などである。
[運用処理実行要求処理]
次に、運用処理実行要求処理(図13のS001)について説明する。運用処理実行要求処理においては、クライアント200や管理端末500から運用処理の開始要求(実行要求:トランザクション)の通知を受領したBCプログラム600は、各ノード300へ運用処理実行要求を送信する。運用処理実行要求のトランザクションを受領したBCプログラム600は、図14に示すトランザクション処理により、受領した運用処理実行要求のトランザクションを処理する。この場合におけるトランザクション処理では、ステップS101では、BCプログラム600は、運用処理実行要求に対応する運用SCプログラム612を選択し、ステップS104では、運用SCプログラム612が処理を実行する。
図15は、一実施形態に運用処理実行要求に対応する運用SCプログラムによる処理のフローチャートである。
運用処理実行要求に対応する運用SCプログラム612は、運用処理実行要求のトランザクションを運用トランザクション管理テーブル1300へ登録する(ステップS201)。具体的には、運用SCプログラム612は、トランザクションに関する情報を設定し、状態1303を“実行要求”に設定したエントリを運用トランザクション管理テーブル1300へ新規登録する。運用トランザクション管理テーブル1300のエントリのID1301は、運用処理の実行要求ごとに異なる値であり、BCプログラム600がトランザクションごとに与える分散台帳700内で固有の識別子としてもよく、運用SCプログラム612が管理する固有の値としてもよい。
次に、運用SCプログラム612は、運用エージェント321へ運用処理の要求(処理要求)を通知する(ステップS202)。運用エージェント321へ処理要求を通知する方法としては、例えばシグナルを運用エージェント321に送信してもよく、運用エージェント321が監視するフラグを更新するようにしてもよい。
この通知が完了した後、運用SCプログラム612は、処理を終了する。
この運用SCプログラム612による処理によると、運用処理実行要求がBCプログラム600を介して全BCノード300に反映され、各BCノード300の運用エージェント321へ実行要求が通知される。
[運用処理中断処理・再開要求処理]
ステップS003で判断される中断の要求を行う運用処理中断処理や、ステップS004で判断される再開要求を行う再開要求処理についても、運用処理要求処理と同様な流れで実行される。なお、運用処理中断処理や再開要求処理においては、ステップS201においては、中断や再開の対象のトランザクションのエントリの状態1303を、中断や再開に更新し、また、ステップS202においては、運用エージェント321へ運用処理の中断や再開に関する要求を通知する。
[運用処理]
ステップS002における運用処理について説明する。運用処理では、BCシステム100内の全BCノード300の運用エージェント321が、BCプログラム600からの通知内容に対応する運用処理プログラム323を選択して実行する。
図16は、一実施形態に係る運用処理のフローチャートである。
運用エージェント321は、BCプログラム600から運用処理要求が通知されたことを契機に運用処理の実行を開始する。ここで、運用処理要求の通知には、運用処理要求の契機となったトランザクションの識別子や通知を発行したSCプログラムの識別子、処理実行に必要な引数などが含まれる。
まず、運用エージェント321は、通知のあった運用処理に関する処理ステップについての情報を取得する(ステップS301)。例えば、運用エージェント321は、運用処理ステップ管理テーブル1100から、通知元のSCプログラム610の識別子とSC IDの値が一致し、且つBCノード300のもつ識別子が組織ID1102やノードID1103の値と一致するエントリを取得する。このときBCノード300の識別子がノードID1103の値と一致するエントリがなければ、デフォルトの処理ステップを表すノードID1103の指定がないエントリを取得する。
また、運用エージェント321は、運用処理ステップ遷移管理テーブル1200から通知元のSCプログラム610の識別子と、SC ID1201のIDとが一致し、且つBCノード300の識別子がノードID1203に含まれるエントリを取得する。このとき、BCノード300の識別子がノードID1203のIDと一致するエントリがなければ、デフォルトの処理ステップ間の遷移条件を表すノードID1203の指定がないエントリを取得する。このステップS301の処理による情報取得により、運用エージェント321は運用SCプログラム612により通知された運用処理の各工程(処理ステップ)を把握することができる。
次に、運用エージェント321は、通知された運用処理で実行する最初の処理ステップを設定する(ステップS302)。具体的には、エージェント321は、ステップS301で取得したエントリのうち、ステップID1104の値が最初の実行処理ステップを表す1となっているエントリを選択し、このエントリに対応する処理ステップを対象処理ステップとして設定する。
次に、運用エージェント321は、運用処理の実行開始の情報をBCプログラム600へ通知する(ステップS303)。具体的には、運用エージェント321は、運用処理の実行契機となった運用処理実行要求で受領したトランザクションの識別子やBCノード300の識別子、及び運用処理が実行開始状態に遷移する内容をエントリに記載し、BCプログラム600に運用ログテーブル1400へのエントリの登録のためのトランザクションを発行する。但し、運用処理開始時には、エントリ内のログ1407や署名1408を空欄として登録してよい。なお、ステップS302で取得した処理ステップに関する情報から、BCノード300にて実施すべき処理がない場合には、状態1404には、実行完了状態を登録する。これに対して、トランザクションを受領したBCプログラム600は、受領したトランザクションについての応答として、エントリ登録の成否と、運用処理の実行契機のトランザクションの実行状態を示す運用トランザクション管理テーブル1300の状態1303の値に基づいた以降の運用処理の実施可否を返送する。
次に、運用エージェント321は、運用処理を終了するか否かを確認する(ステップS304)。この結果、ステップS301において取得した次の処理ステップの識別子に関して値が取得できていれば、次の処理ステップがあり、運用処理を終了しないので(ステップS304:No)、運用エージェント321は、処理をステップS305に進める一方、値が取得できていなければ、次の処理ステップがなく、運用処理を終了することを意味しているので(ステップS304:Yes)、運用処理を完了する。
ステップS305では、運用エージェント321は、実行中の運用処理の以降の処理ステップを継続して実行してよいか否かを判定する。具体的には、運用エージェント321は、ステップS303や、後述するステップS308におけるトランザクションに対するBCプログラム600からの応答として、処理実行中断の通知を受けた場合や、運用トランザクション管理テーブル1300を参照して、運用処理の契機となったトランザクションの実行状態1303の値が中止となっていることを確認した場合には、運用処理中止要求があったと把握して、運用処理の継続を実行しないと判定する。また、運用エージェント321は、運用トランザクション管理テーブル1300に実行中の処理の契機となったトランザクションのエントリが存在しない場合には、正常に実行されている処理ステップではないと考えられるので、運用処理を中止する、すなわち、運用処理の継続を実行しないと判定してもよい。
この結果、運用処理継続と判定した場合(ステップS305:No)には、運用エージェント321は、処理をステップS306に進める一方、運用処理中止と判定した場合(ステップS305:Yes)には、運用処理を終了する。
ステップS306では、運用エージェント321は、対象処理ステップの処理を実行する。具体的には、運用エージェント321は、運用処理ステップ管理テーブル1100の対象処理ステップのエントリの実行プログラム1105の値を対象処理ステップの実行コマンドとして取得し、この実行コマンドを実行する。また、運用エージェント321は、運用処理の実行要求に引数の指定がある場合には、指定に準じて実行コマンドに引数を付与し、対象処理ステップの処理を実行する。
次に、運用エージェント321は、次に実行する処理ステップを確認する(ステップS307)。具体的には、運用エージェント321は、ステップS301で取得した運用処理ステップ遷移管理テーブル1200からステップID1204の値が対象処理ステップのステップIDと一致するエントリを選択する。そして、運用エージェント321は、選択したエントリの中から遷移条件1205の値が対象処理ステップの実行結果と一致するエントリを選択する。選択されたエントリの次ステップID1206の値を次の処理ステップの識別子として取得する。
次に、運用エージェント321は、対象処理ステップ実行時のログの登録要求をBCプログラム600に発行することで、運用ログをデータベース332へ登録するログ登録処理(図17参照)を実行する(ステップS308)。ログ登録処理により、運用処理結果のログ(運用ログ)がデータベース332と分散台帳700に登録される。
次に、運用エージェント321は、次の処理ステップを対象処理ステップに設定し、処理をステップS304に進める(ステップS309)。具体的には、運用エージェント321は、ステップS301で取得した運用処理ステップ管理テーブル1100のエントリの中から、ステップID1104の値がステップS307で取得した次の処理ステップの識別子と一致するエントリを選択し、このエントリの処理ステップを対象処理ステップとして設定する。
上記したように、運用処理によると、BCシステム100を構成するBCノード300で運用処理が実行され、運用処理結果のログがデータベース332と分散台帳700へ登録される。これにより、各BCノード300の管理者は、管理対象のBCノード300から運用処理結果を容易且つ適切に把握することができる。
[ログ登録処理]
次に、ログ登録処理(図16のステップS308)について説明する。
図17は、一実施形態に係るログ登録処理のフローチャートである。
まず、運用エージェント321は、対象処理ステップでのログ登録が必要かを確認する(ステップS401)。具体的には、運用エージェント321は、運用処理ステップ管理テーブル1100の対象処理ステップに対応するエントリのログ登録要否1106の値を確認する。ここで、ログ登録要否1106が“必要”であれば、ログ登録が必要であることを示し、”不要”であれば、ログ登録が不要であることを示す。
この結果、ログ登録が必要である場合(ステップS401:Yes)には、運用エージェント321は、処理をステップS403に進める一方、ログ登録が不要である場合(ステップS401:No)には、処理を終了する。
ステップS402では、運用エージェント321は、登録するログの取得先が、BCノード300か、周辺コンポーネント(周辺機器)であるかを判定する。ここで、運用エージェント321は、運用処理ステップ管理テーブル1100の対象処理ステップのエントリの連携先ログ取得1109の値が“−”である場合には、BCノード300からログを取得すると判定し、連携先ログ取得1109の値が“ON”である場合には、周辺コンポーネントからログを取得すると判定する。
この結果、BCノード300からログを取得すると判定された場合(ステップS402:No)には、運用エージェント321は、処理をステップS403に進める一方、周辺コンポーネントからログを取得すると判定された場合(ステップS402:Yes)には、処理をステップS404に進める。
ステップS403では、運用エージェント321は、対象処理ステップにより生成されるログを取得する。運用エージェント321によるログの取得方法としては、例えば、対象処理ステップのコマンド実行時の出力から取得してもよく、対象処理ステップのコマンドが生成するログファイルを参照して取得してもよい。
次に、運用エージェント321は、登録するログへの署名が必要であるか否かを判定する(ステップS405)。具体的には、運用エージェント321は、運用処理ステップ管理テーブル1100の対象処理ステップのエントリの署名発行者1110に、署名の発行者が設定してあれば、署名が必要であると判定し、署名の発行者が設定していなければ、署名が不要であると判定する。
この結果、署名が必要であると判定した場合(ステップS405:Yes)には、運用エージェント321は、処理をステップS408に進める一方、署名が不要であると判定した場合(ステップS405:No)には、処理をステップS410に進める。
一方、ステップS404では、運用エージェント321は、対象処理ステップにより生成されるログを周辺コンポーネント(例えば、ストレージ400)から取得する。運用エージェント321によるログ取得方法としては、例えばストレージ400のログ提供プログラム424にコマンドを発行してログを取得してもよく、また、コマンド実行時に出力されるテキストをログとして取得してもよい。
次に、運用エージェント321は、登録するログへの署名が必要であるか否かを判定する(ステップS406)。具体的には、運用エージェント321は、運用処理ステップ管理テーブル1100の対象処理ステップに対応するエントリの署名発行者1110に署名の発行者が設定してあれば、署名が必要であると判定し、署名の発行者が設定していなければ、署名が不要であると判定する。
この結果、署名が必要であると判定した場合(ステップS406:Yes)には、運用エージェント321は、処理をステップS407に進める一方、署名が不要であると判定した場合(ステップS406:No)には、処理をステップS410に進める。
ステップS407では、運用エージェント321は、ログへの署名を生成するのが、BCノード300であるか、周辺コンポーネントであるのかを判定する。具体的には、運用エージェント321は、運用処理ステップ管理テーブル1100の対象処理ステップのエントリの署名発行者1110の値を確認し、署名発行者1110の値がBCノードである場合(ステップS407:No)には、BCノード300が署名を生成するとして処理をステップS408に進める一方、署名発行者1110の値が連携先である場合(ステップS407:Yes)には、周辺コンポーネントが署名を生成するとして処理をステップS409に進める。
ステップS408では、運用エージェント321は、登録するログに対して署名を生成する。具体的には、運用エージェント321は、登録するログに対して、保持している秘密鍵322を用いて署名を作成する。
ステップS409では、運用エージェント321は、周辺コンポーネントから署名を取得する。具体的には、運用エージェント321は、例えばコマンドを発行するなどの方法で、ストレージ400のログ提供プログラム424に署名の生成を依頼する。この結果、ログ提供プログラム424は保持する秘密鍵425を用いて、対象処理ステップ実行時のログに対する署名を生成して、運用エージェント321に返送する。運用エージェント321は生成された署名をストレージ400から受領する。このように、周辺コンポーネント側で署名を生成するようにすると、運用ログに対するBCノード300側での不正改変を適切に発見することができる。
ステップS410では、運用エージェント321がデータベース332へ登録するエントリを作成する。具体的には、運用エージェント321は、ステップS403またはステップS404で取得したログと、ステップS408又はステップS409で取得した署名(このステップを実施した場合)と、運用ログテーブル1400のエントリに必要な値とを含むテーブル用のエントリを作成する。例えば、ステップS309で取得した次ステップID1206のステップIDと、登録状態1207の状態とを、エントリにおける次ステップID1409や状態1404に設定する。
次に、運用エージェント321は、データベース332(運用ログテーブル1400)及び分散台帳700へ運用ログを登録する(ステップS411)。具体的には、運用エージェント321は、ステップS410で作成したエントリをデータベース332及び分散台帳700に登録するためのトランザクションを生成して、BCプログラム600に送付する。この結果、BCプログラム600は、運用ログをデータベース332に登録するとともに、分散台帳700に登録し、トランザクションに対する完了通知を運用エージェントに返す。
この後、運用エージェント321は、BCプログラム600からトランザクションに対する完了通知を受け取ると、ログ登録処理を完了する。
このログ登録処理によると、BCシステム100を構成する各BCノード300のデータベース332と分散台帳700とに運用ログが格納される。これにより、各BCノード300の管理者は、管理対象のBCノード300から運用ログを容易且つ適切に把握することができる。また、運用ログに対して署名を付している場合には、署名により運用ログが改竄されていないかを適切に把握することができる。
[運用処理実行完了確認処理]
次に、運用処理実行完了確認処理(図13のS005)について説明する。この運用処理実行完了確認処理では、BCプログラム600は、各BCノード300での運用処理の実行完了を確認する。具体的には、クライアント200や管理端末500から運用処理の実行完了確認要求(運用処理実行確認要求:トランザクション)の通知を受領したBCプログラム600は、各ノード300へ運用処理の実行完了確認要求を送信する。運用処理実行完了確認要求のトランザクションには、実行完了を確認したい運用処理実行要求処理のトランザクションの識別子などの情報を含む。実行完了確認要求のトランザクションを受領したBCプログラム600は、図14に示すトランザクション処理により、受領した運用処理実行完了確認要求のトランザクションを処理する。この場合におけるトランザクション処理では、ステップS101では、BCプログラム600は、運用処理実行完了確認要求に対応する運用SCプログラム612を選択し、ステップS104では、運用SCプログラム612が処理を実行する。
図18は、一実施形態に係る運用処理実行完了確認要求に対応する運用SCプログラムによる処理のフローチャートである。
運用処理実行完了確認要求に対応する運用SCプログラム612は、BCシステム100を構成するBCノード300の情報と、完了確認するトランザクションの情報とを取得する(ステップS501)。具体的には、運用SCプログラム612は、システム構成管理テーブル900を参照して、BCシステム100に参加するBCノード300のリストを生成する。加えて、運用SCプログラム612は、運用トランザクション管理テーブル1300からID1301の値が、運用処理実行完了確認要求のトランザクションで完了確認対象として指定されるトランザクションの識別子と一致するエントリを取得する。
次に、運用SCプログラム612は、運用ログを確認する対象とするBCノード300(対象BCノード)を1台選択する(ステップS502)。具体的には、運用SCプログラム612は、ステップS501で生成したBCノード300のリストから、処理中のトランザクションにおいてログを確認していないBCノード300の1台を、対象BCノードとして選択する。
次に、運用SCプログラム612は、対象BCノードでの運用処理の完了を確認し(ステップS503)、実行完了である場合(ステップS503:Yes)には、処理をステップS505に進め、実行完了でない場合(ステップS503:No)には、処理をステップS504に進める。具体的には、運用プログラム612は、運用ログテーブル1400から、実行完了確認対象のトランザクションの識別子とTxID1401の値とが一致し、且つ対象BCノードと、組織ID1402の値及びノードID1403の値が一致するエントリを取得し、それらエントリの中でタイムスタンプ1405の値に基づいて最新のログのエントリを選択し、選択したエントリの状態1404の値により、実行完了であるか否かを確認する。加えて、運用プログラム612は、運用処理完了として、運用処理ステップ管理テーブル1100のログ形式1107の値に基づいて運用ログテーブル1400のログ1407の値を解釈し、運用処理に対する運用ログの内容の正しさや、参加ノード間でのログ内容の一致を確認するようにしてもよい。
ステップS504では、運用SCプログラム612は、運用処理の未完了フラグを立てる。なお、未完了フラグはBCノード300ごとに管理してもよく、参加BCノード300全体で1つのフラグを管理してもよい。その後、運用SCプログラム612は、処理をステップS503に進める。
ステップS505では、運用SCプログラム612は、署名確認の対象処理ログを設定する。具体的には、運用SCプログラム612は、ステップS503で運用ログテーブル1400から取得したエントリから、署名未検証のエントリを選択し、これを対象処理ログとして設定する。
次に、運用SCプログラム612は、ログの署名確認が必要か否かを判定する(ステップS506)。具体的には、運用SCプログラム612は、運用処理ステップ管理テーブル1100から、ステップS501で取得した完了確認対象のトランザクションのSCIDがSCID1100の値と一致し、BCノード300の識別子が、組織ID1102の値及びノードID1103の値と一致し、さらに、ステップS505で取得した対象ログのエントリの完了ステップID1406の値と、ステップID1104の値が一致するエントリを、対象処理ステップの情報として取得する。次に、運用SCプログラム612は、取得したエントリから署名発行者1110の値に基づき署名確認の要否を判断する。
この結果、署名確認が必要な場合(ステップS506:Yes)には、運用SCプログラム612は、処理をステップS507に進める一方、署名確認が不要な場合(ステップS)には処理をステップS513に進める。
ステップS507では、運用SCプログラム612は、対象ログの署名発行者がBCノード300であるか、連携先であるかを判定する。具体的には、運用SCプログラム612は、ステップS506で取得した対象処理ステップのエントリの署名発行者1110の値を確認し、その値がBCノード300であるか、周辺コンポーネントであるかを判定する。
この結果、署名発行者がBCノード300である場合(ステップS507:No)には、運用SCプログラム612は、処理をステップS508に進める一方、署名発行者が周辺コンポーネントである場合(ステップS507:Yes)には、処理をステップS509に進める。
ステップS508では、運用SCプログラム612は、署名を検証するための対象BCノード300の秘密鍵に対応する公開鍵を取得する。具体的には、運用SCプログラム612は、システム構成管理テーブル900から対象BCノード300に対応する組織ID901の値及びノードID902の値を持つエントリを選択し、選択したエントリの公開鍵903に設定されている公開鍵を取得する。ステップS508の終了後、運用SCプログラム612は、処理をステップS511に進める。
ステップS509では、運用SCプログラム612は、署名を生成した周辺コンポーネントを特定する。具体的には、運用エージェント612は、ステップS507で運用処理ステップ管理テーブル1100から取得した対象処理ステップのエントリの連携先ID1108の識別子を取得することにより、署名を生成した周辺コンポーネントを特定する。
次に、運用SCプログラム612は、署名を生成した周辺コンポーネントの秘密鍵に対応する公開鍵を取得し(ステップS510)、処理をステップS511に進める。具体的には、運用SCプログラム612は、周辺コンポーネント管理テーブル1000から、対象BCノード300が所属する組織の識別子と組織ID1001の値が一致し、ステップS510で取得した周辺コンポーネントの識別子とコンポーネントID1002の値とが一致するエントリを選択し、このエントリの公開鍵1004から公開鍵を取得する。
ステップS511では、運用SCプログラム612は、対象ログに付与される署名の検証を行う。具体的には、運用SCプログラム612は、ステップS508又はステップS510で取得した公開鍵を用いて、署名の検証を行う。署名の検証方法は、署名の生成方式に依存し、例えば署名を公開鍵で復号した値が、ログのハッシュ値と一致することを確認して行うなどの方法である。
この結果、署名が正しければ(ステップS511:Yes)、運用SCプログラム612は、処理をステップS513に進める一方、署名が正しくなければ(ステップS511:No)、処理をステップS512に進める。
ステップS512では、運用SCプログラム612は、運用処理の署名の改竄フラグを立てる。フラグは、BCノード300ごとに管理してもよく、参加BCノード300全体で1つのフラグを管理してもよい。ステップS512の後、運用SCプログラム612は、処理をステップS514に進める。
ステップS513では、運用SCプログラム612は、全てのログの署名の検証が完了したか否かを確認する。具体的には、運用SCプログラム612は、ステップS503で運用ログテーブル1400から取得した各エントリを対象処理ステップとして設定して、署名の検証処理を実施したか否かを確認する。この結果、全てのエントリが処理済みであれば(ステップS513:Yes)、運用SCプログラム612は、処理をステップS514に進める一方、未処理のエントリがあれば(ステップS513:No)、処理をステップS503に進める。
ステップS514では、運用SCプログラム612は、全てのBCノード300に対して処理が完了したか否かを確認する。具体的には、運用SCプログラム612は、ステップS501で生成したリストの全エントリに対応するBCノードを対象BCノードに設定して運用処理の実行状態を確認したか否かを判定する。
この結果、全BCノード300での実行状態確認済みでない場合、すなわち、未確認のBCノード300がある場合(ステップS514、No)、運用SCプログラム612は、処理をステップS501に進める一方、未確認のBCノード300が存在しない(ステップS514:Yes)場合には、処理をステップS515に進める。
ステップS515では、運用SCプログラム612は、運用処理の実行状況確認結果をまとめて、データベース332を更新する。具体的には、運用SCプログラム612は、未完了フラグと改竄フラグとに基づいて、トランザクションの実行状況を決定する。例えば、未完了フラグや改竄フラグが立っている場合には、トランザクションの実行状況は、実行中又は未完了となる。そして、運用SCプログラム612は、決定した実行状況に基づき、ステップS501で運用トランザクション管理テーブル1300から取得した完了確認対象のトランザクションのエントリの実行状態1303を更新する。その後、運用SCプログラム612は、処理を終了する。
上記した処理によると、全ての組織110での運用処理の実行時の運用ログのチェックと、ログに付与された署名の検証を行って、運用ログに改竄がないかを確認でき、運用処理の実行状況を確認できる。
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
例えば、上記実施形態では、運用ログを、データベース323(運用ログテーブル1400)と、運用用の分散台帳700との両方で管理するようにしていたが、本発明はこれに限られず、データベース323と、分散台帳700との少なくともいずれか一方で管理するようにしてもよい。
また、上記実施形態において、プロセッサが行っていた処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。
100:BCシステム、200:クライアント、300:BCノード、321:運用エージェント、331:BC管理情報、332:データベース、400:ストレージ、500:管理端末、600:BCプログラム、700:分散台帳

Claims (11)

  1. 所定の対象のトランザクションについての第1分散台帳を管理する複数の分散台帳装置を備える分散台帳システムにおける分散台帳装置であって、
    前記分散台帳装置は、
    記憶デバイスと、プロセッサ部とを備え、
    前記記憶デバイスは、前記第1分散台帳を記憶し、
    前記プロセッサ部は、前記第1分散台帳に関わる処理を実行した場合に、前記処理の内容を示す内容情報を、前記第1分散台帳を管理する他の分散台帳装置で管理させるために送信する
    分散台帳装置。
  2. 前記プロセッサ部は、
    前記内容情報を、前記第1分散台帳を管理する複数の分散台帳装置が管理する第2分散台帳に登録させる指示を送信する
    請求項1に記載の分散台帳装置。
  3. 前記プロセッサ部は、
    前記内容情報を、前記第1分散台帳を管理する複数の分散台帳装置のそれぞれの前記記憶デバイスにおけるデータベースに登録させる指示を送信する
    請求項1又は請求項2に記載の分散台帳装置。
  4. 前記プロセッサ部は、
    前記内容情報に対して前記分散台帳装置の秘密鍵を用いた署名を付して送信する
    請求項1から請求項3のいずれか一項に記載の分散台帳装置。
  5. 前記分散台帳装置は、前記第1分散台帳の処理に関与可能な周辺コンポーネントと接続されており、
    前記プロセッサ部は、前記内容情報を、前記処理に関与した前記周辺コンポーネントから取得する、
    請求項1から請求項3のいずれか一項に記載の分散台帳装置。
  6. 前記プロセッサ部は、
    前記周辺コンポーネントから、前記内容情報に対する、前記周辺コンポーネントの秘密鍵を用いた署名を取得し、
    前記内容情報に対して、取得した署名を付して送信する
    請求項5に記載の分散台帳装置。
  7. 前記プロセッサ部は、
    前記内容情報に付された署名に使用した秘密鍵に対応する公開鍵を取得し、前記公開鍵を用いて前記署名が正しいか否かを判定し、
    判定の結果に基づいた前記内容情報に対応する処理の実行状態を、前記他の分散台帳装置で管理させるために送信する
    請求項4又は請求項6に記載の分散台帳装置。
  8. 前記プロセッサ部は、
    前記第1分散台帳に関わる処理の実行要求を受け取った場合に、前記実行要求をデータベースに登録するとともに、前記実行要求に対応する前記第1分散台帳に関わる処理を実行させるための処理要求を発行し、
    処理要求に対応する処理を実行する場合には、前記データベースに、前記処理要求の基となる実行要求が存在するか否かを判定し、
    前記データベースに、処理要求の基となる実行要求が存在していない場合に、前記処理要求に対応する処理の実行を行わないようにする
    請求項1から請求項7のいずれか一項に記載の分散台帳装置。
  9. 前記第1分散台帳に関わる処理は、前記第1分散台帳のバックアップデータを削除する処理である
    請求項1から請求項8のいずれか一項に記載の分散台帳装置。
  10. 所定の対象のトランザクションについての第1分散台帳を管理する複数の分散台帳装置を備える分散台帳システムであって、
    前記分散台帳装置は、
    記憶デバイスと、プロセッサ部とを備え、
    前記記憶デバイスは、前記第1分散台帳を記憶し、
    前記プロセッサ部は、前記第1分散台帳に関わる処理を実行した場合に、前記処理の内容を示す内容情報を、前記第1分散台帳を管理する他の分散台帳装置に対して送信する
    分散台帳システム。
  11. 所定の対象のトランザクションについての第1分散台帳を管理する複数の分散台帳装置を備える分散台帳システムにおける分散台帳装置による分散台帳管理方法であって、
    記憶デバイスに記憶された前記第1分散台帳に関わる運用処理を実行し、
    前記第1分散台帳に関わる運用処理の内容を示す内容情報を、前記第1分散台帳を管理する他の分散台帳装置に対して送信する
    分散台帳管理方法。
JP2019071362A 2019-04-03 2019-04-03 分散台帳装置、分散台帳システム、及び分散台帳管理方法 Active JP7316081B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019071362A JP7316081B2 (ja) 2019-04-03 2019-04-03 分散台帳装置、分散台帳システム、及び分散台帳管理方法
US16/811,044 US11483158B2 (en) 2019-04-03 2020-03-06 Distributed ledger device, distributed ledger system, and distributed ledger management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019071362A JP7316081B2 (ja) 2019-04-03 2019-04-03 分散台帳装置、分散台帳システム、及び分散台帳管理方法

Publications (2)

Publication Number Publication Date
JP2020170342A true JP2020170342A (ja) 2020-10-15
JP7316081B2 JP7316081B2 (ja) 2023-07-27

Family

ID=72663251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019071362A Active JP7316081B2 (ja) 2019-04-03 2019-04-03 分散台帳装置、分散台帳システム、及び分散台帳管理方法

Country Status (2)

Country Link
US (1) US11483158B2 (ja)
JP (1) JP7316081B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022091308A (ja) * 2020-12-09 2022-06-21 株式会社日立製作所 ストレージシステム及びデータ削除方法
US20220343018A1 (en) * 2021-04-21 2022-10-27 SafePorter LLC Method for providing a privacy-enabled service to users

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180113752A1 (en) * 2016-10-20 2018-04-26 International Business Machines Corporation Inter-ledger messaging in a blockchain
JP2018081464A (ja) * 2016-11-15 2018-05-24 富士通株式会社 通信方法、装置、及びプログラム
WO2018105038A1 (ja) * 2016-12-06 2018-06-14 三菱電機株式会社 通信装置及び分散型元帳システム
JP2018128723A (ja) * 2017-02-06 2018-08-16 株式会社日立製作所 信用度管理システムおよび信用度管理方法
JP2018156464A (ja) * 2017-03-17 2018-10-04 Kddi株式会社 分散型コンテナ配置の最適化方法およびシステム
JP2019028525A (ja) * 2017-07-26 2019-02-21 株式会社日立製作所 運用管理方法、運用管理システム、および、運用管理プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180293557A1 (en) 2017-04-05 2018-10-11 Samsung Sds Co., Ltd. Method of charging electronic currency automatically based on blockchain and system thereof
US10958436B2 (en) * 2017-12-28 2021-03-23 Industrial Technology Research Institute Methods contract generator and validation server for access control of contract data in a distributed system with distributed consensus
US20210136042A1 (en) * 2018-05-07 2021-05-06 Convida Wireless, Llc Interworking between iot service layer systems and distributed ledger systems
JP6684850B2 (ja) * 2018-05-16 2020-04-22 株式会社日立製作所 分散台帳システム、分散台帳サブシステム、および、分散台帳ノード
US11108559B2 (en) * 2019-01-02 2021-08-31 International Business Machines Corporation Producing proof of receipt, existence and other data provenance evidence

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180113752A1 (en) * 2016-10-20 2018-04-26 International Business Machines Corporation Inter-ledger messaging in a blockchain
JP2018081464A (ja) * 2016-11-15 2018-05-24 富士通株式会社 通信方法、装置、及びプログラム
WO2018105038A1 (ja) * 2016-12-06 2018-06-14 三菱電機株式会社 通信装置及び分散型元帳システム
JP2018128723A (ja) * 2017-02-06 2018-08-16 株式会社日立製作所 信用度管理システムおよび信用度管理方法
JP2018156464A (ja) * 2017-03-17 2018-10-04 Kddi株式会社 分散型コンテナ配置の最適化方法およびシステム
JP2019028525A (ja) * 2017-07-26 2019-02-21 株式会社日立製作所 運用管理方法、運用管理システム、および、運用管理プログラム

Also Published As

Publication number Publication date
US11483158B2 (en) 2022-10-25
US20200322165A1 (en) 2020-10-08
JP7316081B2 (ja) 2023-07-27

Similar Documents

Publication Publication Date Title
CN110620810B (zh) 在区块链上的连续资产转移的非链接所有权
CN110417844B (zh) 使用区块链分散管理多所有者节点的系统和方法
US11070360B2 (en) Parallel transaction validation and block generation in a blockchain
US11240001B2 (en) Selective access to asset transfer data
CN108898390B (zh) 基于区块链的智能合约调用方法及装置、电子设备
US11227057B2 (en) Membership access management of a database
US11196568B2 (en) Identity protection
US11341121B2 (en) Peer partitioning
WO2018111295A1 (en) Blockchain monitoring and management
US10833845B2 (en) Guarantee of ledger immutability
JP7254585B2 (ja) システム間連携方法およびノード
US11263059B2 (en) Load leveler
US11240000B2 (en) Preservation of uniqueness and integrity of a digital asset
JP2022504353A (ja) ブロックチェーン・タイムスタンプ協定
US20200076608A1 (en) Guarantee of ledger immutability
US11487741B2 (en) Preservation of uniqueness and integrity of a digital asset
US11176093B2 (en) Defensible disposition of data
US11354278B2 (en) Linking of tokens
US20200143365A1 (en) Real-time monitoring of objects in blockchain networks
US20200145190A1 (en) Management of a size of a ledger
US11138188B2 (en) Performance optimization
JP7316081B2 (ja) 分散台帳装置、分散台帳システム、及び分散台帳管理方法
US20200242593A1 (en) Value optimizing data store
US11379316B2 (en) Snapshot restoration
JP6477073B2 (ja) ライセンス管理システム、プログラム及びライセンス管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230306

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230714

R150 Certificate of patent or registration of utility model

Ref document number: 7316081

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150