JP7025365B2 - データ連携管理方法、データ連携管理システム、およびノード - Google Patents

データ連携管理方法、データ連携管理システム、およびノード Download PDF

Info

Publication number
JP7025365B2
JP7025365B2 JP2019056283A JP2019056283A JP7025365B2 JP 7025365 B2 JP7025365 B2 JP 7025365B2 JP 2019056283 A JP2019056283 A JP 2019056283A JP 2019056283 A JP2019056283 A JP 2019056283A JP 7025365 B2 JP7025365 B2 JP 7025365B2
Authority
JP
Japan
Prior art keywords
data
distributed ledger
linkage
data linkage
node
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
JP2019056283A
Other languages
English (en)
Other versions
JP2020160526A (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.)
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 JP2019056283A priority Critical patent/JP7025365B2/ja
Priority to US16/575,538 priority patent/US11151122B2/en
Publication of JP2020160526A publication Critical patent/JP2020160526A/ja
Application granted granted Critical
Publication of JP7025365B2 publication Critical patent/JP7025365B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Security & Cryptography (AREA)
  • Game Theory and Decision Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データ連携管理方法、データ連携管理システム、およびノードに関するものである。
従来、金融機関や政府などの信頼できる中央集権機関を経由して実施されてきた取引を、利用者間のP2P(Peer to Peer)によって直接的な取引に代替する技術として、分散台帳技術が登場している。
例えば非特許文献1には、仮想通貨を用いて、銀行などの中央集権機関を必要とせずに決済取引を行う技術について開示されている。本仮想通貨の仕組みでは、P2Pネットワーク上でマイナーと呼ばれるノードによる取引データ(以下、トランザクションとも称する)の正当性判定後、プルーフオブワークと呼ばれる特定のハッシュ値算出作業で確定処理を行っている。確定されたトランザクションは1つのブロックにまとめられ、ブロックチェーン(以下、BCとも称する)と呼ばれる分散台帳に記載される。
また近年では、上記の非特許文献1の技術に基づき実装されたBCをベースにして、BCおよび分散台帳に関して様々な派生技術が提案され、進化を続けている。
現状のBCの主な特徴としては、(1)分散台帳ネットワーク上の参加者間の取引において中央集権機関ではなく(任意ないしは特定の)参加者による合意形成や承認によって取引を確定させること、(2)複数のトランザクションをブロックとしてまとめ、数珠つなぎに分散台帳に記録し、連続するブロックにハッシュ計算を施すことにより、改ざんを実質不可能にすること、(3)参加者全員が同一の台帳データを共有することにより、参加者全員での取引の確認を可能とすること、などが挙げられる。
このようなBCをはじめとした分散台帳技術は、以上のような特徴から、信頼できるデータの管理/共有や、契約に基づく取引の執行/管理を行う仕組みとして、金融分野やIoT(Internet of Thing)等、幅広い分野での応用が検討されている。
分散台帳を提供する基盤(以下、分散台帳基盤)を用いることで、中央集権機関による管理がなくとも、複数の主体間で情報共有や取引を行うことができる(例えば、特定業界のコンソーシアムやサプライチェーンに関係する複数企業等)。
以降では分散台帳に参加する参加者(およびそのノード)によって構成されるネットワークのことを分散台帳ネットワークと呼ぶ。
分散台帳は非特許文献1のような単純な仮想通貨の取引だけでなく、複雑な取引条件や多様なアプリケーションにも適用可能とするために、分散台帳の中で(取引)データだけでなくロジックも管理可能となってきている。このロジックはスマートコントラクト(以下、SCとも称する)と呼ばれる。
例えば、非特許文献2および3には、こうしたSCの実行機能を有する分散台帳基盤に関する技術について開示されている。これらの分散台帳基盤では、ノード間で所定の合意水準で合意形成しながらトランザクション(以下、TXとも称する)を受け入れて、各ノードでTXを実行することにより、複数ノード上で情報(台帳)を共有する。
また、TXに対して予め決めたロジックを実行するスマートコントラクト(SC)実行
機能を備える。
分散台帳技術の典型的な利用形態として、上述の非特許文献1に基づくBCのような不特定多数の計算リソース(ノード)が分散台帳ネットワークを形成するパブリック型に加えて、特定企業/組織間のノードで分散台帳ネットワークを形成するコンソーシアム型が、特にエンタープライズで有望視されている。
そうしたコンソーシアムに参加する複数の組織間で各ノードが分散合意プロトコルに基づき同期/連動しながら、事前に取り決められ、かつ、コード化された契約内容(SC)に従って取引を自動実行することができるようになる。
分散台帳技術を用いて構築したシステム(以下、分散台帳システム)では、その実用の一形態として、外部システム(特に非分散台帳システム)を介在してデータを入出力するユースケースが想定される。
例えば、外部システムで生成/管理されるデータを分散台帳システムに流し込み、複数組織内で共有するケースがあげられる(データの流れ:外部データ取得→分散台帳)。
この具体例としては、外部生成される、温度などのIoTセンサデータや自動車の走行データを分散台帳に取り込んで、その値に応じて契約執行(温度や速度超過の罰金)を行うケースなどが想定できる。
また別の例としては、ある目的に対して、コンソーシアムの参加者が外部システムで分析した結果を分散台帳システムに登録し、当該コンソーシアムの複数組織内でそのデータに基づいて、何らかの処理や判断を行うケースもあげられる。
この具体例としては、分散台帳上に蓄積された取引データや決済データを入力に、顧客や企業の優良スコアを分析する場合に、分析処理用の外部システムを用いてAI(人工知能)などを用いた複雑な分析を行い(非分散台帳での処理)、その結果を再び分散台帳に格納するケースがあげられる(データの流れ:分散台帳→外部データ処理→分散台帳)。
あるいは、優良スコア問合せのみを分散台帳を介して行い、個々の組織の持つ外部システムに蓄積されたデータと分析機構を用いて分析処理を行って、その結果を分散台帳システムに格納するケースなども想定される(データの流れ:外部データ処理→→分散台帳)。
"A Peer-to-Peer Electronic Cash System",[online]、[平成29年3月31日検索]、インターネット<URL:https://bitcoin.org/bitcoin.pdf> "Ethereum White Paper",[online]、[平成29年3月31日検索]、インターネット<URL:https://github.com/ethereum/wiki/wiki/[English]-White-Paper> "Hyperledger Fabric",[online]、[平成29年3月31日検索]、インターネット<URL:http://hyperledger-fabric.readthedocs.io/en/latest/>
特開2017-204707号公報
上述のような、非分散台帳システムとの連携を伴う分散台帳システムにおけるユースケースでは、非中央集権での処理機構によって信頼性/安全性を担保する分散台帳システムの外側で処理が行われる。
そのため、外部システムを介在して処理/登録されるデータに関する安全性が低下する(信頼性低下、不正リスク発生)。例えば、単一組織によって外部システムを介したデータ処理や入力が発生する場合、その組織が単一信頼点になる。
これに対して、データ生成方法自体を組織間で共通化し、データ生成時にデータのハッシュ値と、データに付随するメタデータ(GPS,端末情報など)を分散台帳に登録することで、データの真正性を保証する技術が提案されている(特許文献1参照)。この例では、データ生成方法に手を加えられる前提であれば真正性を保証可能である。
しかし、必ずしも外部システムのデータ生成部に手を加えられるとは限らない。そのため、適用範囲が限られるという問題がある。また、この例では、共通化したデータ生成方法/データ分析方法を管理する中央組織を必要とする。これは分散台帳システムの非中央集権の特徴を十分に生かしきれないという問題につながる。
また別の方法として、既に述べた非特許文献2および3などのような従来の分散台帳/SCの仕組みを応用し、複数組織がそれぞれ外部システムに接続するパスを用意し、複数組織がそれぞれ外部システムからデータを取得して、その合意形成ができれば、単一組織による不正を防止可能である。
しかしながら、非特許文献2および3などの現行の分散台帳では、非決定的な処理を含むTXを扱うことができない。ここで非決定的な処理とは、ノードや実行タイミングによって結果が異なる処理のことである。
この場合、分散台帳では複数のノードが並列して共通処理を行うために、非決定的なTXがあるとノード間で状態/計算結果がずれてしまい、大きな問題となる。
つまり、各組織が取得するデータが完全一致していなければ、個々の計算結果がずれて合意に失敗(非決定的処理と呼ばれる)する。そのため、複数組織が取得できたとしても、外部システムデータの取得タイミング/手段/権限などによって、ズレやばらつきが発生し得る。そのため適用困難という問題がある。
そこで本発明の目的は、分散台帳システムと非分散台帳システムとの間の効率的なデータ連携を、単一組織に依存せず、かつ客観性をもって実施可能とする技術を提供することにある。
上記課題を解決する本発明のデータ連携管理方法は、複数のノードで構成される分散台帳システムにおいて、前記複数のノードのうち少なくとも所定の複数組織の各ノードは、前記各ノードにおいて所定の外部システムから取得されるデータの間の相違に関して、許容範囲を規定した許容範囲ルールを保持し、前記各ノードが前記データに関して発行したトランザクションについて、前記許容範囲ルールに従った当該データの間の相違に関する許容可否の判定を経ることで、前記データの間の相違を許容して合意形成する、ことを特
徴とする。
また、本発明のデータ連携管理システムは、複数のノードで構成される分散台帳システムであって、前記複数のノードのうち少なくとも所定の複数組織の各ノードは、前記各ノードにおいて所定の外部システムから取得されるデータの間の相違に関して、許容範囲を規定した許容範囲ルールを保持し、前記各ノードが前記データに関して発行したトランザクションについて、前記許容範囲ルールに従った当該データの間の相違に関する許容可否の判定を経ることで、前記データの間の相違を許容して合意形成するものである、ことを特徴とする。
また、本発明のノードは、分散台帳システムを構成する複数のノードのいずれかであって、前記複数のノードにおいて所定の外部システムから取得されるデータの間の相違に関して、許容範囲を規定した許容範囲ルールを保持し、前記各ノードが前記データに関して発行したトランザクションについて、前記許容範囲ルールに従った当該データの間の相違に関する許容可否の判定を経ることで、前記データの間の相違を許容して合意形成するものである、ことを特徴とする。
本発明によれば、分散台帳システムと非分散台帳システムとの間の効率的なデータ連携が、単一組織に依存せず、かつ客観性をもって実施可能となる。
実施例1におけるコンピュータシステムの構成例を示す図である。 実施例1におけるノードの物理的な構成例を示すブロック図である。 分散台帳上のブロックチェーンのデータ構造例を示す図である。 分散台帳上のステート情報のデータ構造例を示す図である。 構成情報のデータ構造例を示す図である。 データ連携SCのデータ構造および処理内容を示す図である。 データ連携SCのステート情報として管理されるデータ連携調整/収束ルールを示す図である。 データ連携調整/収束ルールのデータ取得処理の例1を示す図である。 データ連携調整/収束ルールのデータ取得処理の例2を示す図である。 データ連携SCのステート情報として管理される登録データを示す図である。 データ連携SCのイベントとして発行される連携処理イベントを示す図である。 分散台帳ネットワークに参加するメンバーの新規登録処理例を示すフロー図である。 SCのトランザクション処理例を示すフロ図である。 実施例1における、システム全体としてのデータ連携SCに従ったデータ連携処理の例1を示すシーケンス図である。 実施例1における、システム全体としてのデータ連携SCに従ったデータ連携処理の例2を示すシーケンス図である。 データ連携SCの内部処理例を示すフロー図である。 外部連携エージェントの処理例を示すフローチャートである。 実施例2におけるコンピュータシステムの構成例を示す図である。 実施例3における、データ連携SCのステート情報として管理されるデータ連携成否結果を示す図である。 実施例3における、データ連携SCのステート情報として管理されるデータ連携信用分析結果を示す図である。 実施例3におけるデータ連携信用分析処理の例を示すフロー図である。
<実施例1>
図1に、実施例1におけるコンピュータシステムとして、分散台帳システム10と外部システム5を含む構成例を示す。実施例1においては、分散台帳システム10が、外部システム5(主には非分散台帳システム)とのデータ連携が必要な場合を前提とする。また、そのデータ連携に際し、分散台帳システム10と外部システム5との接続パスを単一組織に依存しないように複数用意するものとする。
さらに、複数組織による、外部システム5を介したデータ入出力結果に対するデータの許容範囲(データ間での値のぶれの許容範囲)とその収束方法(データ連携調整/収束ルールと呼ぶ)をデータ連携SC(共通フレームワーク)として規定する。
また、分散台帳システム10を構成するノード(以下、分散台帳ノード3)に対して、データ連携要求としてデータ連携SCの実行TXが発行されると、当該分散台帳システム10を介して、このデータ連携SC_D12にて定義されたデータ連携調整/収束ルールに従って、外部システム5を介するデータ取得/処理が実施される。そして、その結果がある一定の幅の中で一意なデータとして収束する。
上述の収束等の各処理は、複数の分散台帳ノード3上でのSC機能で管理されるため、コンソーシアム(分散台帳ノード3をそれぞれ運用する複数の組織から構成)の取り決めに従って、単一組織に寄らず外部データを連携でき、業務(SC)レイヤでの合意形成に基づいた非決定的なデータの取り扱いを実現することができる。
ここで、本実施例における処理概要は以下の通りとなる。
1.データ連携SCを(業務やデータごとに)定義し、分散台帳D1上に配置する。データ連携SCは以下を含む。
-外部連携処理組織の選定(と各データ取得)方法の定義。
-処理結果に対する許容範囲と収束方法(例:集約ロジック)の定義。
2.データ連携SCに対する要求TXが発行されると、当該データ連携SCは、当該要求TXを受けて複数組織に対する連携処理を依頼する。またデータ連携SCは、当該複数組織が外部システムを介して取得/処理した結果を仮のデータエントリとして分散台帳D1に登録する。それらの複数の仮のデータエントリについて、合意組織数が所定の合意基準を満たし、かつ、当該データの値が許容範囲内であるかを判定し、各基準を満たした場合に複数エントリを収束させた一意な値を計算し、確定データとして分散台帳D1に登録する。
また、分散台帳システム10と外部システム5との間でのデータ連携を行うパターンとしては主に以下が想定される。
・データの流れ:外部データ取得→分散台帳。
-例1:外部生成されるメータリングデータ(IoTセンサデータや自動車の走行データ)を分散台帳D1に取り込んで、その値に応じて契約執行(温度や速度超過の罰金)を行う。
なお、メータリングAPIのコンソーシアム公開、同一観測対象に対する複数個のセンサ配置、周辺自動車からのモニタリングなどによって、複数参加者からのデータ取得パスを用意可能である。この場合にもAPI経由の取得タイミングによるズレやセンサーが異なることによるズレやばらつきが発生し得る。
-例2:クラウドサービスのメータリングデータを分散台帳に取り込んで、その値に応じて課金額やSLA(Service Level Agreement)順守状況を管理する。メータリングAP
Iやサービス利用履歴API、ログ参照APIを公開することで、複数参加者のデータ取得パスを用意可能である。この場合にもAPI経由の取得タイミング、権限、取得手段によってズレやばらつきが発生し得る。
・データの流れ:分散台帳→外部データ処理→分散台帳。
-例:分散台帳D1上に蓄積された取引データや決済データを入力として、分析処理用の外部システム5(例:AI)など顧客や企業の優良スコアを分析する。単一組織が分析するだけでは正しい入出力がされたか不明なため、複数組織によって分析を行うことが望ましい。一方、AIなどを用いた複雑な分析処理は、学習や実行時の乱数のズレなどにより、同一の入力データを用いても結果が若干ずれることがある。
・データの流れ:外部データ処理→分散台帳。
-例:優良スコア問合せのみを分散台帳D1を介して行い、個々の組織の持つ外部システム5に蓄積されたデータと分析機構を用いて分析処理を行って、その結果を分散台帳システム10に格納するケースなども想定される。この場合には、各組織で用いるデータや処理内容はブラックボックス化されているため、結果がずれたり、ばらついたりすることが想定される。
本実施例におけるデータ連携管理技術は上記いずれのケースでも適用可能である。なお、本実施例の技術は以下のすべてが該当するケースで特に有効に活用することができる。・適用条件1:外部システム5を経由(してデータ処理)した結果を、分散台帳システム10に登録する
・適用条件2:各組織によって処理/取得された複数データエントリを1エントリとして登録したい。
・適用条件3:データが厳密に完全一致しなくてもある程度の範囲内で決まれば支障がない(重要度が安全性(不正防止/信頼性)>>誤差である)。
---ネットワーク構成例---
以下、図1に基づき実施例1で想定するコンピュータシステムの構成について例示する。図1で示すコンピュータシステムは、1台以上の分散台帳ノード3、1台以上のクライアントノード4、および外部システム5(非分散台帳)によって構成される。また、これらの機器は、物理的な通信回線2を通してネットワーク1に接続される。
このうち分散台帳ノード3は、コンセンサス管理部31、スマートコントラクト実行/管理部32(以下、SC実行/管理部32とも称する)、メンバー管理部33、トランザクション管理部34、トランザクション発行部35、承認済トランザクション配信部36、ネットワークプロトコル部37、分散台帳D1、構成情報D2、および参加メンバー管理情報D3によって構成される。
また分散台帳ノード3は、トランザクション管理部34の機能によりTXを受け付けて、コンセンサス管理部31の機能によって、他のノードとの間でTXを受け入れてよいかの合意形成を行う。この結果、合意形成がなされた場合、分散台帳ノード3は、SC実行/管理部32の機能を介して、SCのデプロイ、デプロイ済みのSCに対する実行を行い、TXの履歴とその実行結果を分散台帳D1に記録する。
ここで、合意形成やSC実行は、必ずしも全ての分散台帳ノード3が行う必要はなく、一部の分散台帳ノード間で行ってその結果を他ノードに配信してもよい(その取り決めは
合意形成アルゴリズムにも依存する)。
そのため、承認済トランザクション配信部36は、上述の合意形成やSC実行に参加しなかった分散台帳ノード3に対してその結果(具体的には、TXの履歴と実行結果)を配信する機能を提供する。
ここで、分散台帳ノード3の間での合意形成や承認済TXの配信といった分散台帳ノード3間の通信は、ネットワークプロトコル部37の機能によって行う。
また、分散台帳ノード3のトランザクション管理部34は、クライアントノード4等の各ノードからの要求に対して、TXを受け付ける機能/インターフェイスや、TXの履歴情報を取得・閲覧する機能/インターフェイスを提供する。
なお、本実施例では分散台帳ノード3がTX発行可能であることとし、トランザクション発行部35を介して各種TXを発行する。
また、分散台帳ノード3のメンバー管理部33は、分散台帳ネットワーク(分散台帳システム)に参加するメンバーの新規発行や認証機能を提供する。メンバー管理部33では、秘密鍵と公開鍵のペアを用いて、参加組織ならびにその組織に所属するメンバーの認証やTXへの署名、SC実行権限の制御等を行うことを想定する。こうしたメンバー管理に関する鍵情報は、参加メンバー管理情報D3上に格納・管理される。
また、トランザクション管理部34は、TXを受け付けた際に、適宜、メンバー管理部33の機能を介して、TXの発行者が権限を持った正しい参加者かどうかを確認するものである。ただし、こうした機能等は公知技術であるため、詳細説明を省略する。
なお、構成情報D2では、分散台帳ネットワークを構成する組織やその組織に属するメンバー(ノード、管理者、ユーザなどを含む)の情報を格納・管理する。本実施例では本情報が分散台帳ノード3の機能の中で(例えば、メンバー管理部33やネットワークプロトコル部37)管理され、各ノードが互いに保持していることを想定する。
また、分散台帳上D1では、業務に関するSC(以下、業務SC_D11)、外部システム5とのデータ連携に関するSC(以下、データ連携SC_D12)に関わる台帳情報を格納・管理する。
そのデータ構造としては、本実施例では、TXの履歴をBCとして、TXの実行結果に基づくステート情報をテーブル上で保持することを想定する。その内部テーブルではKey-Valueの組として値を保持する想定である。
一方、クライアントノード4は、トランザクション発行部35、業務アプリ41、外部システム連携部42、外部連携エージェント43、およびイベント受信部44によって構成される。
SCの利用者もしくは提供者は、クライアントノード4のトランザクション発行部35を介して、各種TXを発行して分散台帳ノード3に対して送信する。なお、TXには発行者情報を付与するが、この情報としては参加メンバー管理情報D3によって発行された認証情報(秘密鍵)を利用する。
また、業務アプリ41は、トランザクション発行部35を介して、業務SC_D11に関するTXを発行することで、業務処理を実行/管理するアプリである。
また、外部システム連携部42は、外部システム5に外部システムAPI51を介してアクセスして、外部システム5を用いた処理やデータ取得を行う。また、外部システム連
携部42は、トランザクション発行部35を介して、上述の処理やデータ取得等の結果を用いて、データ連携SC_D12に関するTXを発行する。このことで、外部システム5と分散台帳システム10との間のデータ連携を実現する。
また、外部システム連携部42は、業務アプリ41や外部連携エージェント43によって利用される。外部連携エージェント43は、イベント受信部44を介して分散台帳ノード3からの連携処理イベントを受信して、そのイベントに従って外部システム連携部42を介したデータ連携を行う。なお、組織の役割によっては、クライアントノード4が外部システム5に関する機能(外部システム連携部42、外部連携エージェント43、イベント受信部44)を備えずともよい。
本実施例では、分散台帳ノード3が複数台存在し、複数の主体(例えば、複数の事業者/複数の組織/複数のベンダ)によって分散台帳ノード3がそれぞれ管理されることを想定する。
同様に、クライアントノード4も複数台存在し、複数のSC利用者がそれぞれ別のクライアントノード4を利用することを想定する。なお、クライアントノード4に関しては、TXに付与する認証情報をユーザ毎に切り替えることにより、複数のSC利用者が共用することも可能である。
---ハードウェア構成---
図2は、実施例1における分散台帳ノード3あるいはクライアントノード4の物理的な構成を示すブロック図である。ここでは分散台帳ノード3を例に挙げて説明するものとする。
分散台帳ノード3は、インターフェイス(I/F)100、プロセッサ101、およびメモリ102を備える計算機である。これらI/F100、プロセッサ101、メモリ102はデータバス103によって接続される。
分散台帳ノード3は、I/F100を介して、ネットワーク1と通信する。また、プロセッサ101は、CPU等の演算装置である。また、メモリ102は、プログラムおよびデータを保持するための記憶領域である。
また、プロセッサ101は、メモリ102からデータバス34を介してプログラムを読み出して実行し、必要な機能を実装する。この機能とは、上述のコンセンサス管理部31~ネットワークプロトコル部37等が該当する。
---データ構成例---
図3および図4は、分散台帳D1に格納するデータ構造の一例である。図3は、分散台帳D1上で管理するデータ構造の一つであるBCの例である。
BCを用いた分散台帳管理では、複数のTXをブロックとしてまとめて、各ブロックが前のブロックのハッシュ値を持つことでデータを数珠つなぎにして管理する。前段のブロックの値が1ビットでも変わると後続の全ブロックのハッシュ値が変わるため、改ざんを困難にすることができる。
なお、本実施例では説明をシンプルにするために、1つのTXにつき、1ブロックとするが、本発明は、複数TXをまとめて1ブロックに格納した場合にも適用可能である。
また、本実施例では各SC(D11~D12)が単一のBCとして連なっているが、参加組織がそれぞれ管理/参照可能であればBC自体は別々であっても構わない。逆に、各
SCを別々にしているが同等の機能セットがあれば同一のSC内で定義されていてもよい。
図3におけるD1000~D1006は一連のブロックの連なりとなる。各ブロックは、それぞれ業務SCのデプロイ、実行、データ連携SCのデプロイ、実行、いずれかのTX情報を含む。各ブロックは前ブロックのハッシュ値を含み、後述のステート情報から生成したハッシュ値を含む。
上記のようなデータ構造により、業務SCのデプロイ、実行、データ連携SCのデプロイ、実行のTX履歴がBC中でデータの連鎖として管理される。
上述のブロックのうちD1000は、業務SCのデプロイTXを格納したブロックの一例である。この例では、「業務B」として複数企業/組織間での商取引(仮想通貨取引)に関するビジネスコントラクトの例を示している。
本実施例のデプロイTXは、TXが発行されたタイムスタンプ、SCが業務かデータ連携かを特定するSC種別、SCを一意に識別するSC_ID、TXがデプロイか実行か参照かを特定するTX種別、SCの実体(例えば実行可能なバイナリ)を含む。また、SCが持つ関数名やその引数を利用者が把握するためのSC入力仕様を含む。
さらに、デプロイ時に指定した入力引数にしたがって決めたパラメータ(例えばこのSCの実行時における合意形成条件(例:3組織以上の承認を持ってTXを受け入れる)や各種定義情報等)であるSCメタ定義を含む。
また、こうしたTXは当該TXの発行者の情報を含む。TX発行者の情報は、発行者のメンバーID情報と発行元とデータに改ざんが無いことを検証するために用いる電子署名情報とを含む。
この電子署名は、メンバー管理部33が発行した各ネットワーク参加メンバー(すなわちSC提供者や利用者)の秘密鍵を用いて生成され、そのペアとなる公開鍵によって検証をすることが可能である。
TX発行者の情報と同様に、TX実行/承認者(言い換えると、コンセンサス管理部31、SC管理/実行部32を用いた合意形成ならびにSC実行処理に関わった参加者の情報)の情報や承認済TX配信者(言い換えると、承認済TX配信部36による配信処理に関わった参加者の情報)の情報も含む。
さらに本TXで参照/更新を行ったステート情報であるRead-Write(RW)セットの情報も含む。RWセットについては後述の実行TXの説明にて詳細に述べる。ここで、以降では、SCが持つ関数のことをSC関数とも称する。
図3のBCのうちD1000でデプロイされているSCは、SC_ID「業務B」として組織“Org1”の「管理者」によって提供され、少なくとも以下のSC関数が定義されている。
・関数名:取引()、入力引数:差出顧客ID,差出顧客ID,送金額、戻り値:成否。・関数名:全取引参照()、入力引数:顧客ID、戻り値:指定顧客の全取引リスト。
一方、図3のBCのうちD1004は、業務SCの実行TXを格納したブロックの一例である。本実施例の実行TXは、基本的にデプロイTXと同様であるが、SCの実体やSC入力仕様はなく、その代わりに呼び出すSC関数名と入力する引数の情報とを含む。
なお、本実施例では、TX種別については、分散台帳D1の更新を含むTX実行の場合には「実行」、分散台帳D1の更新を行わない参照処理の場合には「参照」を指定することとする。
上述のD1004のTXでは、SC_IDに「業務B」を指定し、SC関数「取引()」に入力引数「顧客a,顧客b,¥1M」を指定した実行要求を行う例を示す。すなわち、D1000に示したSCを呼び出している例である。
RWセットでは、SC(の関数)のデプロイや実行にて、参照/更新されたステート情報を示し、SC_ID、参照(Read)か更新(Write)かを識別する「RW区分」、対象となるステート情報のKey、Valueの情報を含む。
さらにこのValueの更新バージョン番号の情報を示す。このバージョン番号はSC_IDのKey毎に管理されて、更新のたびに1ずつインクリメントされることとする。
D1005の例では、関数呼び出し「登録(顧客a,顧客b,¥1M)」の実行処理の中で、Key「顧客a」を参照しバージョン番号「4」のValue「¥100M」を取得し(1行目)、Value「¥99M」で更新して、その結果、バージョン番号が「5」に更新されたことを示す。
このようにTXの実行結果をRWセットとして管理/保持することで、SCを実行せずともその実行結果を把握することができ、これによりSCを実行しなかったノードに対してもSC実行結果を共有できるため、処理が効率的である。
なお、ブロックD1001およびブロックD1005は、データ連携SCのデプロイTXおよび実行TXを格納したブロックの一例である。本実施例のデータ連携SCのデプロイTXおよび実行TXは、大枠のデータ構造としては、業務SCの同TXと同様の情報を含む。
単純に業務に関わるSCが記述されているか、外部システム5とのデータ連携処理に関するSCが記述されているかの違いしかない想定である。これにより分散台帳システム10の内部(具体的には分散台帳ノード3の31~37の各機能)に手を加えなくとも、外側の機能として本発明を実装することが可能である。
続いて図4は、分散台帳D1上で管理するステート情報の構成例である。BCを用いた分散台帳管理では、通常、(最新の)ステート(例えば、仮想通貨の場合にはアカウントの残高)を取得するためには、BCを辿らなければならない。これでは処理効率が悪いため、BCとは別に、最新のステート情報をキャッシュしておく方法が存在する(非特許文献3等)。
本実施例でも最新のステート情報を保持することを想定する。本実施例では、SC毎にステートのデータ領域が用意されることとする。ステート情報はSC_IDとそのSCの実態を保持する。これにより、SC実行/管理部32は、SC_IDをキーにして、SCの実体を取得して実行することができる。
また、ステート情報はSCの実行結果を保持するための内部テーブルD1104を備える。TXが実行される度にこの内部テーブルD1104の内容は更新される。本ステート情報に関しても業務SC、データ連携SCなどの各SCの情報が格納される。
ここで、D1110の内部テーブルD1104に着目すると、図3の説明で述べたRW
セットと対応づいており、RWセットをすべて反映した最新の状態が保持されている。なお、典型的な実装例では、このようにKey-value形式でデータを保持するが、ValueにJavaScript Object Notation (JSON)形式などの構造化されたデータも格納できる。そうすれば、任意のデータスキーマのテーブルを保持できることになる。
またKeyの設計を工夫すれば、内部テーブル内で複数のテーブル(スキーマの異なる情報)を仮想的に管理することができる。後述のデータ連携SCに関する内部テーブルは、説明をシンプルにするために、Valueに構造化されたデータを格納するケースで、Key-Value-バージョンの記載などを省略した表現をしている。
また、分散台帳システムでは、分散台帳D1にTXが追加されたことを契機にしてイベントを発行して、各参加組織(の分散台帳ノード3やクライアントノード4)に通知する機能も提供可能である。各参加組織はこのようなイベントに従った振る舞いを行うことも可能である。
図3のTX情報に含まれるSCイベントは、そのような分散台帳のイベント管理機能を用いた場合に発行されるイベント情報である。
続いて図5は、構成情報D2のデータ構造例を示す図である。この構成情報D2は、分散台帳ネットワークを構成する組織やその組織に属するメンバー(分散台帳ノード3、クライアント4、管理者、ユーザなどを含む)の情報を格納する。
このうち業務D2000は、分散台帳ネットワーク中で特定業務を行うグループである。組織ID_D2001は、分散台帳ネットワーク(ならびに業務)に参加する組織を示す。また、メンバーID_D2002は、参加組織中のメンバーを識別する情報である。具体的には、管理者、分散台帳ノード3、クライアントノード4、ユーザを識別する情報である。
この構成情報の例では、業務として“業務A”と“業務B”が存在し、“業務B”には“組織1”,“組織2”,“組織3”,“組織a”が、“業務A”には“組織3”,“組織4”が少なくとも参加しているネットワークの状態を示している。
なお、組織は必ずしも分散台帳ノード3を持つ必要はなく、クライアントノード4を介して分散台帳システム10を利用するだけの場合もある。
また、外部システムアクセス権限D2003は、外部システム5との間でのデータ連携をするうえでのアクセス権限である。
この例では、“業務B”において“組織1”と“組織2”は、管理者としてのアクセス権限、“組織3”は一般ユーザとしてのアクセス権限があり、一方、“組織a”は権限がない。そのため、“組織a”は外部データに直接アクセスすることはできない。そのため、外部システム5を介在させたデータが必要な場合、この“組織a”は他組織にデータ連携を依頼する必要がある。
図6は、データ連携SC_D12のデータ構造およびSC関数の例を示す図である。このデータ構造は、ステート情報として管理・保持される。また、データ連携SC_D12内のデータ構造では、データ連携に関するルールとして、データ連携調整/収束ルールD120が記述されている。
また、外部システム5を介した登録データとして登録データD121が管理される。登録データD121内には、調整/収束処理前の各組織による仮データと、調整/収束処理によって一意な値が確定した確定データが管理される。
また、データ連携成否結果D122およびデータ連携信用分析結果D123は、実施例3でのみ利用するため、詳細は後述する。
また、連携処理イベントD124は、データ連携SC_D12内で連携要求時に発行されるSCイベントである。この連携処理イベントD124は、外部連携エージェント経由で外部システム連携処理を行う場合に、外部連携エージェント43に連携処理を通知するために利用する。それぞれのデータ構造の詳細については後述する。
また、SC関数としては、本発明の主要な機能として、外部データ連携処理を要求するための「データ連携要求」と、当該データ連携要求に対して各組織が外部システム5との連携処理を行った結果を登録してデータ連携調整/収束ルールに従って複数組織からのデータエントリを収束させ、単一エントリに確定させる「データ連携調整/収束」が定義されることとする。
実装方法や連携方法によっては、「データ連携要求」と「データ調整/収束」は単一のSC関数に統合してもよい。
さらに、データ連携調整/収束ルールD120を定義するための「データ連携定義」、各種データを取得/参照するための参照関数を備えることとする。
なお、「仮データ削除」は、登録データが確定した後に不要になった仮データを削除するための関数であり、実施例2でのみ利用する。
また、「データ連携信用分析」は、データ連携処理に関する各組織の信用度を計算するための関するであり、実施例3でのみ利用する。
また、SC関数「データ連携要求」および「データ調整/収束」の具体的な流れについてはフローチャートを用いて後述する。
続いて図7Aは、データ連携SC内で管理されるデータ連携調整/収束ルールD120のデータ構造例を示す図である。図中に示すデータ連携調整/収束ルールD120のデータ構造は、D1111(図4のステート情報)の内部テーブルD1104内で管理された状態を想定したものである。
本実施例ではデータ連携調整/収束ルールD120が、業務(業務SC)に紐づくものとし、業務SCおよびそのステート種別に応じて複数定義されることとする。
なお、本実施例では、同一の業務SCとデータ連携SCのステートは、相互に参照/利用可能であることとする。また、テーブルの説明をしやすくするために、複数業務SC(複数連携SC)に対応するデータを単一テーブル上に記載するが、実際にはSCごとに分かれていてもよい。これらは以降の図におけるデータ構造についても同様である。
SC_ID(D12000)列は、対象となるSCを識別する情報である。本実施例では、この指定が業務の指定も兼ねている。この指定としては、例えば、「業務SC_ID+アンダバー+外部システムでの処理名称」の形式で記述することとする。
また、ステート種別D12001は、対象となるステート情報を示す情報である。また、合意水準D12003は、各組織から取得される外部システム処理結果(仮データ)をコンソーシアムで受け入れて確定させるための条件である。この合意水準D12003は、本実施例では組織数D12004と許容範囲D12005を含む。
また組織数D12004は、合意をするうえで必要となる外部システム連携処理を行う組織数を示す。この条件を満たす組織から連携処理結果が登録されていれば組織数の合意水準を満たすものとする。
また、許容範囲D12005は、複数組織によってエントリされた外部連携データの幅の許容範囲である。全ての仮データがこの条件を満たした場合に許容範囲の合意水準を満たす。
また、収束方法D12006は、複数組織からエントリされた外部連携データを単一エントリに確定させるための値の計算/集約方法である。
なお、上述のD12004~D12006の各列は、本実施例では説明を簡便化するためテキストベースで記載をしているが、実際にはJSONなどのデータ構造で記載されることを想定する。より複雑な処理が必要な場合には、SCの記述に用いるプログラミング言語もしくはDomain Specific Language (DSL)に従ったプログラムコードによって記述されていてもよい。
また、処理組織選択方法D12007は、データ連携要求に対して、実際に外部システム5との連携処理の実施を依頼する処理組織の選択方法である。本実施例では、構成情報D2を参照して、業務D2000や外部システムアクセス権限D2003に基づいて、外部システム5との連携処理可能な組織を抽出し、処理組織選択方法D12007に記載の方法でその中から組織を選び出す。
この場合の選択方法としては、連携処理可能な組織からの「ランダム選択」、「順次選択」、「全組織選択」あるいは信頼度の高い組織からを優先した「信頼度優先選択」などがあげられる。
なお、処理組織選択方法D12007は、実行TXの合意形成を依頼する実行/承認者組織と同一でよい場合には利用しなくてもよい。
また、データ取得方法D12008は、外部システム5を介した処理を行い、その処理結果を取得する方法を示す。本実施例のデータ取得方法D12008では、SC内からデータ取得を行うか、エージェント経由で行うかを示す情報D12009と、具体的なデータ取得処理内容D12010を含む。このうち情報D12009は、文字通り、外部システム5を介した処理およびデータ取得を、SC内で行うか、それとも外部連携エージェント経由で行うかを示す情報である。
また、データ取得処理D12010は、具体的な処理内容を参照情報として記述した情報であり、その詳細は図7B、図7Cに記載している。
この場合、ステップID(D12011)は外部システム5上での処理が複数手順ある場合の番号である。
また、外部処理ID(D12012)は、その外部処理の名称のラベルである。
また、対象D12013は、処理対象となるシステムを示す情報であり、単一連携処理内で処理/参照するべき(外部)システムが複数ある場合に活用する。
また、区分D12014は、外部システム5からデータアクセスする手段を識別する情報である。この情報をもとに外部連携エージェント43はデータアクセス手段を切り替える。
また、入力D12015は、本ステップの処理の入力となる情報である。
また、処理D12016は、本ステップの具体的な外部システム5を用いた処理であり、出力D12017は、取得するべきその出力である。
処理D12016はアクセス先のAPIのURLやコマンドライクな表現をしており、{}で囲まれた記述は入力や環境変数によって代入されるパラメータ(引数)を表している。なお、処理D12016の記述についても、エージェント側やSC内処理で取り扱えるのであれば、コマンド列/シェルスクリプト、DSL、プログラミング言語を用いて複雑に表現されていても構わない。
また、本実施例では、外部連携処理を入力、処理、出力などこと細かに記載する例を示しているが、データ連携調整/収束ルールD120にはこのような詳細は持たせずに、外部連携エージェント43側で管理してもよい。
本実施例のように具体的なデータ取得処理を記載することで、複数組織の間で連携処理を均一化しやすくなるというメリットがある。一方、詳細をエージェント側で管理すればより柔軟な外部システム連携処理を行いやすくなるというメリットがある。
ここで、データ連携調整/収束ルールD120について具体例を用いて説明する。図7AのD12020行、および図7BのD12020-1は、ある業務(SC)「業務A」の外部システム連携処理「メータリング」におけるステート情報「ユーザ利用」のデータ連携方法を記載したルールである。
この例では、データ連携要求に対して「合計3組織以上」から外部システム連携結果となるデータが登録されて、かつその複数エントリデータの範囲が「時刻が±3秒以内」かつ「値が±5%以内」に収まるのであれば合意水準を満たすものとしている。その合意水準を満たしたデータの収束方法としては、「時刻に関してはエントリされたデータの最大値」、「値に関してはエントリされたデータの平均値」によってデータを確定させるという調整/収束方法が記載されている。
また、処理組織選択方法D12007は「順次選択」によって行い、「エージェント」経由で各処理組織に依頼をする。データ取得処理は、D12020-1行に記載の通り、単一のステップから成り、外部処理「データ取得」として外部システム5の対象「サービス1」に「REST」でアクセスして、要求TXから得られた「ユーザID」情報を入力として、URL「{API_URL}/meter/user/{ユーザ名}」にアクセスしてデータを取得し、その出力結果をデータ連携SCに登録(各組織からのデータ調整/収束依頼)することを表している。
もう一つの例として、D12021およびD12021-1,2は、前述した業務(SC)「業務B」の外部システム連携処理「優良顧客分析」におけるステート情報「顧客スコア」のデータ連携方法を記載したルールである。
この例では、データ連携要求に対して「合計3組織以上」から外部システム連携結果となるデータが登録されて、かつその複数エントリデータの範囲が「時刻が±10秒以内」かつ「値が±3%以内」に収まるのであれば合意水準を満たすものとしている。また、合意水準を満たしたデータの収束方法としては、「時刻に関してはエントリされたデータの最大値」、「値に関してはエントリされたデータの最小値」によってデータを確定させるという調整/収束方法が記載されている。
また、処理組織選択方法は「ランダム選択」によって行い、「エージェント」経由で各処理組織に依頼をする。データ取得処理は、D12020-1,2行に記載の通り、二つのステップから成る。
まずステップ1として処理「データロード」として外部連携エージェント43側で分散台帳システム10にアクセスして業務B(SC)の全取引参照関数を顧客IDをキーに呼び出し、分析用のデータである、顧客の全取引リストを各処理組織のローカルにロードする。
さらにステップ2として、処理「顧客分析コマンド実行」として、外部システム「分析
アプリ」をステップ1の出力結果を引数として、コマンド「customer_analysis」を呼び出すことで分析を行い、その結果をデータ連携SCに登録(各組織からのデータ調整/収束依頼)することを表している。
なお収束方法については「平均」「最大」「最小」などの簡易的な統計処理内容を例示したが、収束処理実行時に一意データに変換できるのであれば、より複雑な集約関数や変換処理を用いてもかまわない。これは許容範囲の判定条件に関しても同様である。
これらのデータ連携調整/収束ルールD120は、分散台帳ネットワークの参加者によって予め合議されて、定義(デプロイ)されていることを想定する。なお、データ連携調整/収束ルールD120は、参加者による合議の上で随時更新されても構わない。これらのデータ連携調整/収束ルールD120を用いた具体的な処理については後述のフローチャートの説明にて詳細に述べる。
続いて図8に、データ連携SC_D12内で管理される登録データD121のデータ構造例を示す。図中に示すデータ構造例は、D1111(図4参照)の内部テーブルD1104内で管理された状態を想定したものである。
ここで、データ連携要求に対して、収束処理前の複数組織による仮データと、収束処理後の確定データの両方が登録/管理される想定である。
列D12100~D12101はデータ連携対象を識別するSC_IDとステート種別であり、データ連携調整/収束ルールD120の列D12000とD12001に対応する。
ステートID_D12102は、ステート種別D12101に対応する具体的なキーである。例えば、行D12124では「顧客b」の「顧客スコア」のデータであることを示す。
また、リクエストID_D12103は、データ連携調整/収束ルールD120に対するデータ連携要求を一意に識別するための識別子である。このリクエストID_D12103は、本実施例ではクライアントあるいはSC内部処理によって採番される想定である(例えば分散台帳ノード3が発行するTX_IDが兼ねてもよい)。
また、管理状態D12104は、このデータが仮データか確定データかを識別する情報である。
また、登録組織D12106は、このデータを登録した組織の情報である。確定データの場合には、仮データを登録した複数組織の情報が記載される。
また、時刻D12105と値D12107は、このデータの時刻と値の情報である。
また、外部処理エビデンスD12108は、各組織による外部システム連携処理の結果であり、具体的には、処理方法D12010に従った各組織の各ステップの外部処理呼び出し履歴および実行結果履歴などを想定する。
エビデンスの登録は行わなくても構わないが、各組織による外部システム5を介した処理が期待した通りに実施されたかを検証/確認するうえで役立つ。
なお、行D12120~D12123は、行D12020に従ってデータ連携を行った登録データの一例であり、行D12120~D12122は各組織からの仮データ、行D12123は確定データである。
同様に行D12124~D12127は、行D12021に従ってデータ連携を行った登録データの一例であり、行D12124~D12126は各組織からの仮データ、行D
12127は確定データである。
続いて図9に、データ連携SC_D12内で発行される連携処理イベントD124のデータ構造例を示す。本データは外部連携エージェント経由で外部システム連携処理を行う場合にのみ利用する。
なお、図中では説明の冗長性を防ぐため、連携処理イベントD124をテーブル形式で記載しているが、実際にはデータ連携要求ごとに各行が単一のSCイベントとしてブロックに埋め込まれて各組織に通知される想定である。
図中において列D12400~D12403は、それぞれ列D12100~D12103と同様である。
また、処理担当組織D12404は、データ連携要求の結果、処理担当に選ばれた組織であり、この情報を参照することで各エージェントは自組織が処理を実行する必要があるか否かを判別できる。
また、入力D12405は、本データ連携要求に対する入力情報であり、行D12421の例では変数「顧客ID」に「顧客b」を入力する例を表している。データ取得処理D12406列はD12010と同様の情報であり、D12010を参照して埋め込む。
---メンバー登録---
以下、本実施形態におけるデータ連携管理方法の実際手順について図に基づき説明する。以下で説明するデータ連携管理方法に対応する各種動作は、データ連携管理システム10を構成するノード(分散台帳ノード3、クライアントノード4)らがメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
以降では、実施例1における処理のフローについて説明する。図10は、分散台帳ネットワークに参加するメンバーの新規登録処理の例を示すフロー図である。
この場合、分散台帳ノード3のメンバー管理部33は、クライアントノード4等の他ノードからメンバー登録要求を受け付ける(S101)。ここで、上述のメンバー登録要求には、要求メンバーを一意に識別するメンバーIDが含まれることとする。
続いてメンバー管理部33は、既知の一般的手法により秘密鍵D31と公開鍵D32の組を生成し、これを、S101で受け付けたメンバーIDと紐付ける(S102)。
次に、メンバー管理部33は、新規登録対象となるメンバーIDとS102で生成した公開鍵D32とを、他のノードにブロードキャストする(S103)。
なお、ブロードキャストされたメンバーIDおよび公開鍵D32の情報は、各ノード上で参加メンバー管理情報D3として保管される。
さらに、メンバー管理部33は、メンバー登録要求を行ったノードに対し、S102で生成した秘密鍵D31を返す(S104)。この秘密鍵D31を受け取った該当ノードは、参加メンバー管理情報D3に、自身の秘密鍵D31として保管する。
本実施例では、以上のようにして生成した秘密鍵と公開鍵のペアを用いて、ネットワーク参加メンバーの認証やTXへの署名、SC実行権限の制御等を行うことを想定する。
具体的には、例えば、クライアントノード4の側では、発行された秘密鍵で電子署名したTXを発行し、分散台帳ノード3などの検証ノードの側が公開鍵を用いて電子署名を検証することで、本人確認を実現できる。
なお、公開鍵と秘密鍵の組を生成する手法や署名検証をする手法、鍵とIDを紐付ける手法については、公知または周知の技術を適用すれば良い。そのため本実施例1では詳述しない。
また、本実施例ではメンバー管理部33の機能を分散台帳ノード3中に機能として示したが、外部にメンバー管理専用のノードを立て、そのノードがメンバー管理部33と同等の機能を提供するとしてもよい。
---トランザクション処理---
図11は、TX実行処理、すなわち、SCのデプロイ、実行処理の例を示すフロー図である。SCの種別としては、業務、データ連携等があるが、本実施例では、これらのSC種別による処理の違いは、SC内部処理の違いとして表現可能であり、SCにおけるTX実行処理の流れ自体は共通であることとする。
ここで、分散台帳ノード3のトランザクション管理部34が、クライアントノード4等のTX発行元からTXを受け取る(S201)。そして、このTXをコンセンサス管理部31に渡し、当該TXの種別に応じてSCのデプロイ、実行処理を行う。
コンセンサス管理部31が受け取った上述のTXが、SCのデプロイTXの場合(S202の判定が「YES」の場合)について説明する。この場合には、まずコンセンサス管理部31は、他の分散台帳ノード3との間で、受け取ったTXを実行してよいか、ブロックとして、BCの末尾に追加してよいかの合意形成処理を行う(S203)。具体的な合意形成処理方式としては、公知または周知の技術を適用すれば良い。
例えば、Plactical Byzantine Fault Torerance(以後、PBFT)と呼ばれるアルゴリズム等を採用することが考えられる。このPBFTは、合意形成に参加するすべてのノード(すなわち検証ノード)の間で一定(3分の2)以上のノードによる合意を条件とするアルゴリズムである。
また別の例として、非特許文献3に記載の分散台帳システムでは、Endorser-Ordererモデルと呼ばれる合意形成アルゴリズムが用いられる。Endorser-Ordererモデルでは、分散台帳ノード3の中から、承認権限のある一部の分散台帳ノード3を選定/TXを送信し、それらの選択された分散台帳ノードのみが問題がないかの検証を行い、問題がなければ承認を返す。
予め決めた合意形成条件(例えば、2組織以上の承認)を満たした場合、そのTXを受け入れる。さらに、その承認済TXを全分散台帳ノード3に配信する。Endorser-Ordererモデルでは、全分散台帳ノード3がTX検証を行う必要が無いため、PBFTに比べて効率的である。
ここではEndorser-Ordererモデルをベースとした合意形成以降の流れを簡単に説明する。分散台帳ノード3は、受け取ったTXを分散台帳ネットワークに参加しており、TXの承認権限のある分散台帳ノード3に対して送信する。一方、このTXを受け取った各分散台帳ノード3は、当該TXに対する署名検証を行い、改ざんがされていないこと、および当該TXの内容の正当性を確認する。また、当該分散台帳ノード3は、上述のTXを送信した分散台帳ノード3に対して確認結果を返却する。予め決めた合意形成条件が満たされた場合にTXの承認完了したこととし、確認できたことをもって合意形成が完了する。
コンセンサス管理部31は、承認済TX配信部36の機能を用いて、全ての分散台帳ノ
ード3に対し、承認済TXをブロードキャストする。
この承認済TXを受け取ったコンセンサス管理部31は、SC実行/管理部32を介して、当該TXに含まれるSCを分散台帳D1に登録する(S204)。具体的には、TXの内容に基づき、SC_IDやSC実態を分散台帳D1上のステート情報として登録し、BCの末尾に、このデプロイTXを含むブロックを追加する。
最後に、コンセンサス管理部31は、デプロイTXの実行結果をTX発行元に返す(S205)。
受け取ったTXがSCの実行TXの場合(S202の判定が「NO」の場合)について説明する。この場合にもデプロイTXと同様に合意形成処理を行う(S206)。この合意形成処理はS207と同様である。
上述の合意形成が完了した場合、コンセンサス管理部31は、SC実行/管理部32を介して、SCを実行して分散台帳D1の内容を更新する(S207)。具体的には、実行TX内で指定されたSC_IDを持つSC(登録済みであることを前提とする)に対して、実行TX内で指定された呼び出し関数と入力引数を与えて実行する。
そして、コンセンサス管理部31は、その実行結果に基づき、分散台帳D1の内容を更新する。実行結果に基づいて、本SCに関するステート情報D12を更新し、BCの末尾のブロックとして実行TXを追加する。最後に、コンセンサス管理部31は、この実行TXの実行結果(例えば、関数の戻り値)をTX発行元に返す(S209)。
---外部システム連携処理---
図12Aおよび図12Bに、実施例1における、システム全体としてのデータ連携SCに従った外部システム連携処理の流れを示す。なお、以降の説明では、実行/参照される各種SCは既に分散台帳D1上にデプロイ済みであることとする。
図12Aには、外部システム連携処理のパターン例1として、要求組織が外部システム5のデータにアクセス可能、かつ外部連携エージェント43によるエージェント連携によって連携処理を行う例を示す。
この場合、要求組織となるクライアントノード4が、データ連携要求を開始する。このクライアントノード4は、要求時点で外部システム5との連携処理を事前に行い、その連携処理結果を、データ連携SCに対する実行TXに同梱してもしなくてもよい。外部システム5との連携処理を事前に実行すると実行TX数を1つ減らすことができるが、実行タイミングのズレが発生しやすくなる可能性がある。
また、要求組織となるクライアントノード4は、分散台帳ノード3に対して、データ連携SCの実行TX「データ連携要求」を発行する。
一方、各分散台帳ノード3は、上述の実行TXを受け取ると、他ノード間で合意形成をしながら、受け取った実行TXに従ってデータ連携要求処理S3を実施する。
本処理における分散台帳ノード3は、上述の実行TXに含まれる要求情報、および既に要求組織によって連携処理が済んでいる場合には仮データを、分散台帳D1に登録する。そしてデータ連携調整/収束ルールD120に従って組織選定を行い、本要求に対する連携処理イベントを発行する。
各組織のクライアントノード4の外部連携エージェント43は、上述の連携処理イベントを受け取ると、自身が処理担当組織だった場合には外部システム5にアクセスして連携
処理を実行する。そして当該外部連携エージェント43は、その連携処理結果を含む、データ連携SCの実行TX「データ連携調整/収束」を、分散台帳ノード3に対して発行する。
一方、各分散台帳ノード3は上述の実行TXを外部連携エージェント43から受け取ると、他ノード間で合意形成をしながら、受け取った実行TXに従ってデータ連携調整/収束処理S4を実施する。この場合、分散台帳ノード3は、上述の実行TXに含まれる各組織からの処理実行結果を仮データとして分散台帳D1に登録する。また、分散台帳ノード3は、データ連携調整/収束ルールD120に従って組織数合意判定とデータ許容範囲判定を行い、両方の判定に関する合意水準を満たした場合、上述の仮データの調整/収束処理を行う。また、分散台帳ノード3は、仮データの調整/収束処理の結果を確定データとして分散台帳D1に登録する。
他方、図12Bには、外部システム連携処理のパターン例2として、要求組織が外部システム5のデータにアクセス不可かつSC内での外部システムアクセスによって連携処理を行う例を示す。ただし、基本的な流れはパターン例1と同様である。
パターン例1との相違点は、SC内部処理によって外部システムアクセスが行われるため外部連携エージェント43が登場しない点、実行TXの合意形成を依頼する実行/承認者組織がデータ連携の処理組織を兼ねるため組織選定が不要な点、および単一のTX処理の中でデータ連携要求と調整/収束処理を行っている点、である。
SC内部処理で外部システム5にアクセスする場合には、外部システムAPI_51に直接アクセスする想定である。
なお、外部システム連携は、これらパターン例1,2で示した方法に限定されるものではなく、要求組織による外部データアクセス可否や連携方法は任意の組み合わせが可能である。
---データ連携SCの内部処理---
図13は、データ連携SCの内部処理(データ連携要求およびデータ連携調整/収束)の例を示すフロー図である。以降の説明では、これまでに述べた「業務B」の「優良顧客分析」を対象に具体的に説明している。
この場合、各分散台帳ノード3は、実行TXとして、データ連携SC_D12のSC関数「データ連携要求」呼び出しを受け取る(S301)と、SC実行/管理部32の機能によって、本実行TXに従ったデータ連携処理の実行を行う。ここではSC関数の引数として「顧客ID」に対する入力「顧客b」が含まれていることとする。
続いて、各分散台帳ノード3は、データ連携SC_D12のステート情報「データ連携調整/収束ルール」を取得する(S302)。図8に示したデータ連携調整/収束ルールを具体例に説明すると、行D12021が「業務B」の「優良顧客分析」に関するデータ連携調整/収束ルールである。
次にデータ連携SC_D12では、本データ連携要求を一意に特定するリクエストIDを発行する(S303)。
次に、データ連携SC_D12は、上述の実行TXが引数として要求組織による仮データを含むかどうかを判定する(S304)。
上述の判定の結果、引数として仮データが含まれる場合(s304:YES)、データ連携SC_D12は、ステート情報「登録データ」に対して、仮データを追記・更新する(S305)。
他方、上述の判定の結果、引数として仮データが含まれない場合(s304:NO)、データ連携SC_D12は、S305をスキップする。
その後、データ連携SC_D12は、取得したデータ連携調整/収束ルールD120のD12009を参照し、本データ連携処理が、SC内からデータ取得なのか連携エージェント経由で実施されるのかを判定する(S306)。
上述の判定の結果、エージェント経由の実施の場合(s306:エージェント)、データ連携SC_D12は、データ連携調整/収束ルールD120の処理組織選択方法D12007と構成情報D2に従って、処理組織を選定する(S307)。
そしてデータ連携SC_D12は、データ連携調整/収束ルールD120に記載の情報、SC関数の引数から入力およびその情報から生成し対象となるステートID、S307で選定した処理組織の情報に基づき、連携処理イベントを生成し、SCイベントとして設定する(S308)。
これにより、本TXによるブロック確定時にSCイベントが発行されて、各組織の外部連携エージェント43に通知される。その後、データ連携SC_D12は、SCの実行結果を返し(S309)、処理を終了する。
一方、各組織のクライアントノード4の外部連携エージェント43は、上述の連携処理イベントを受け取ると、自身が処理担当組織だった場合には外部システム5にアクセスして連携処理を行う。そして外部連携エージェント43は、その連携処理結果を含む、データ連携SC_D12の実行TX「データ連携調整/収束」を分散台帳ノード3に対して発行する。
他方、各分散台帳ノード3は、実行TXとして、データ連携SC_D12のSC関数「データ連携調整/収束」呼び出しを受け取る(S401-1)と、SC実行/管理部32の機能によって、本TXに従った後続のデータ連携調整/収束処理を実行する。
ここではSC関数の引数には、各組織で外部システム連携処理を行った仮データ(外部処理エビデンスを含んでもよい)を含むこととする。
各分散台帳ノード3は、TXを受け取ると、S302と同様にデータ連携SC_D12のステート情報「データ連携調整/収束ルール」を取得する(S402)。そして、データ連携SC_D12のステート情報「登録データ」に対して引数に含まれる仮データを追記・更新する(S403)。
次に、各分散台帳ノード3は、データ連携SC_D12のステート情報「登録データ」から本データ連携要求に関する仮データをすべて取得する(S404)。例えば、リクエストIDが「2001」の例では、行D12124~D12126が該当する。
そして各分散台帳ノード3は、上述のS404で取得した仮データとデータ連携調整/収束ルールの合意水準D12003とに基づき、組織数合意判定(S405)およびデータの許容範囲判定(S406)を行う。
各分散台帳ノード3は、上述の各判定とも当該判定における所定基準を満たす結果(S405:YES、S406:YES)とならない限り、後続の処理をスキップして、SCの実行結果を返し(S409)、処理を終了する。
他方、上述のS405およびS406の両判定で所定基準を満たす場合(S405:Y
ES、S406:YES)、各分散台帳ノード3は、データ連携調整/収束ルールの収束方法D12006に基づいてデータ収束処理を行う(S407)。
また、各分散台帳ノード3は、S407のデータ収束処理結果をデータ連携SC_D12のステート情報「登録データ」の確定データとして追記、更新する(S408)。
また、各分散台帳ノード3は、S408の確定データをSCの実行結果として返し(S409)、処理を終了する。
例えば、リクエストIDが「2001」の例では、行D12124~D12126より、組織数3以上、値と時刻が許容範囲内である。そして収束処理により、時刻の最大値をとった(略):35、値の最小値をとった「89」が確定データとなる。この例の確定データの格納結果は行D12127に示すとおりである。
上述のS306の処理結果が「SC内」の場合には、各分散台帳ノード3は、データ連携要求の後続で、SC内から外部連携処理を実行して連携処理結果を取得し(S401-2)、その後は上記と同様にS403以降を実行する。
---外部連携エージェントの処理---
図14は、外部連携エージェント43の処理例を示すフロー図である。各組織のクライアントノード4の外部連携エージェント43は、連携処理イベントを受け付ける(S501)と、自身が処理組織かどうかを確認する(S502)。
上述のS502の結果、自身が処理組織でない場合(S502:NO)、外部連携エージェント43は後続の処理をスキップし、処理を終了する。
一方、上述のS502の結果、自身が処理組織である場合(S502:YES)、外部連携エージェント43は、連携処理イベントに従いながら、処理対象となる外部システム5にアクセスし、順次外部処理を行う(S503)。
また、外部連携エージェント43は、S503の処理結果に基づき、データ連携SC_D12のSC関数「データ連携調整/収束」の実行TXを生成する(S504)。
また、外部連携エージェント43は、上述のS504で生成した実行TXを分散台帳ノード3に対して発行し(S505)、処理を終了する。
以上で示したとおり、外部システム5(非分散台帳システム)との接続パスを単一組織に依存しないように複数用意し、複数組織による、外部システム5を介したデータ入出力結果に対するデータの許容範囲(幅)とその収束方法(データ連携調整/収束ルール)をデータ連携SC(共通フレームワーク)として規定すること、また、このデータ連携SCにて定義されたデータ連携調整/収束ルールに従ってデータ連携処理を行うことで、複数組織による、外部システム5を介したデータ取得/処理の結果を、ある一定の幅の中で一意なデータとして収束させることができる。
このような特徴を持つ本技術を用いれば、複数組織による外部システム5(非分散台帳システム)とのデータ入出力タイミングや手段、権限などにより、上述のデータ取得/処理の結果の間にばらつきが発生したとしても、分散台帳システム10で処理可能となり、分散台帳システム10と外部システム5(非分散台帳システム)との間で安全にデータのやり取りを行うことが可能となる。
また、複数の分散台帳ノード3の上でのSC機能で管理されるため、コンソーシアムの取り決めに従って単一組織に寄らず外部データを連携できる。また、業務(SC)レイヤでの合意形成に基づいた非決定的なデータの取り扱いを実現することができる効果がある
。また、外部システム5の側に手を加えることなく、単一組織に依存せずに客観性をもってデータ連携が実施可能となる効果がある。
なお、本実施例では、簡単のために1ブロックあたり1トランザクションを格納する例を示しているが、複数トランザクションを格納しても構わない。本発明はその場合にも適用可能である。
また、構成情報D2は分散台帳ノード3の機能の中で管理するデータとして記載しているが、SC上で管理してもよい。複数の組織で構成情報が確認できればそのような方法でも構わない。
また、データ連携調整/収束ルールD120における計算ロジックは、メタ言語やDomain Specific Language(DSL)として、引数の中で定義しても良い。或いは、予め、SC関数の中に埋め込んでもよい。上述のようにメタ言語化することで外部定義が可能となり、柔軟性が高まるメリットがある。一方、SC関数の中で埋め込むと管理が容易になるというメリットがある。
<実施例2>
以降では、本発明の実施例の様々なバリエーションを示す。基本的には実施例1をベースとするため、共通部分の説明は省略する。
実施例2は、上述の実施例1に対して、データ確定までの一時データである仮データをプライベート用の分散台帳で管理し、不要になれば削除を行う例について示す。なお、実施例1とは、仮データをプライベート用分散台帳D4上で管理し、さらに図6中のSC関数「仮データ削除」を利用する点が異なる。それ以外の処理は基本的に共通である。
図15は、実施例2で想定するコンピュータシステムを模式的に示す。本コンピュータシステムは、基本的に実施例1と同じであるが、プライベート用分散台帳D4が追加されている点が異なる。
この場合、登録データD121の仮データは、分散台帳D1ではなくプライベート用分散台帳D4に格納する。また、当該仮データの収束等の各処理が完了し確定した後は、SC関数「仮データ削除」を呼び出し、確定済みのデータに対する仮データ削除を実行する。
この仮データ削除は、プライベート用分散台帳D4の空き容量の大小など、適宜な条件に応じて実行するとしてもよい。
こうした実施例2の形態を採用すれば、仮データという一時的な中間データで分散台帳D1を汚染せずに済む。また、プライベート用分散台帳D4からは適宜データを削除することでデータ容量を削減できる効果がある。
<実施例3>
また実施例3は、上述の実施例1に対して、データ連携処理に関する各組織の登録内容(成否)に基づき、当該組織の信用度を計算して、その結果をコンソーシアムや各組織にフィードバックする例を示す。
図16は、データ連携SC_D12のステート情報として管理されるデータ連携成否結果を示す図である。これはデータ連携調整/収束処理S4において、データの許容範囲判定(S406)の判定結果を管理する情報である。
このデータ連携成否結果は、実施例1の処理S406の後続で、データ連携SC_D1
2のステート情報「データ連携成否結果122」に追記・更新されることとする。
図16における列D12200~D12203は、それぞれ列D12100~D12103と同様であり、組織D12204は本処理を行った組織である。
また、判定結果D12205は、このデータの許容範囲判定結果であり、判定に従って「成功」または「却下」が記録される。理由D12206は、判定結果が「却下」だった場合の理由を示す情報である。
また図17は、データ連携SC_D12のステート情報として管理されるデータ連携信用分析結果D123を示す図である。
データ連携信用分析結果D123は、あるデータ連携SC_D12の対象となるステート種別に対する各組織の信頼度を示す情報である。D12300、D12301は、データ連携SC_D12のSC_ID、ステート種別を示す。また、このD12300、D12301は、D12000とD12001と同様である。
組織D12302は、このデータ連携SC_D12のステート種別に対する信頼度の対象となる組織を、また信用度D12303は、当該組織の信頼度をスコアリングした結果である。
図18は、実施例3におけるデータ連携信用分析処理の例を示すフローチャートである。本実施例では、あるデータ連携SC_D12の対象となるステート種別に対する各組織の信頼度を、(対象組織のデータ連携成功件数/全データ連携リクエスト件数)×100で計算することとする。
この場合、各分散台帳ノード3は、実行TXとして、データ連携SC_D12のSC関数「データ連携信用分析」呼び出しを受け取る(S601)。
続いて各分散台帳ノード3は、SC実行/管理部32の機能によって、本実行TXに従ったデータ連携処理を実行する。ここではSC関数の引数として対象組織の情報が含まれていることとする。
各分散台帳ノード3は、上述の実行TXで指定された情報に関係する、データ連携SC_D12のステート情報「データ連携成否結果122」をすべて取得する(S602)。
そして、各分散台帳ノード3は、上述のS602で取得したデータ連携成否結果122を用いて、データ連携信用分析を行う(S603)。この分析は、上述のように、(対象組織のデータ連携成功件数/全データ連携リクエスト件数)×100、と信用度を計算することが該当する。
続いて、各分散台帳ノード3は、上述のS603の計算結果を用いてステート情報「データ連携信用分析結果123」を追記、更新する(S604)。
また、各分散台帳ノード3は、上述のS604で得たデータ連携信用分析結果123に基づいてSC実行結果を返し(S605)、処理を終了する。
こうした実施例3では、各組織が問い合わせによって、上記組織のデータ連携成否結果とデータ連携信用分析結果を参照することで、自身や各組織の信頼度やデータ連携精度を把握できる効果がある。さらに信用度に応じてデータ連携処理組織を選択することで、データ連携の成功率を向上させることが期待できる効果がある。
なお、上述の各実施例では、説明の簡便化のため、業務SCとデータ連携SCとを分けて記載した例を示したが、業務SC内にデータ連携SCを同梱していてもかまわない。その場合には、単一のSC内で処理が完結するメリットがある。
また各実施例では、数値や時刻を例に記載しているが、これらに限定されない。例えば、OK/NG判定や文字列の収束に適用してもよい。この場合にはOK/NGの一致率や文字列の部分一致率によって判定と収束する方法が考えられる。
また全データを幅を持たせた処理の対象とするのではなく、データのうちの一部分のみを幅を持たせる対象として、それ以外の部分は完全一致のみを受け入れてもかまわない。
また、分散台帳システムと非分散台帳システムとの間でのデータ連携を例に記載したが、本発明は単一分散台帳システム内のデータ連携や複数分断台帳システム間でのデータ連携にも適用可能である。分散台帳間の場合には、標準でデータを安全にやり取りする手段が別途確保されていると期待されるが、仮にそのような手段が提供されていない場合や、やむを得ず例外的な利用が必要な場合であっても本発明を適用することで安全なやり取りを実施可能となる。
また、外部データ連携の許容範囲判定処理や単一エントリに収束させる処理はSCの機能として示したが、この実装方法には限定されない。具体的には、例えば、分散台帳ノードの備える (機能部31~37と同様の)基盤機能として実装してもかまわない。この場合には、基盤としてのより強制力の高い機能として本発明を利用できるメリットがある。
以上、本発明の実施例について図面を参照して詳述してきたが、具体的な構成はこの実施例に限られるものではなく、この発明の要旨を逸脱しない範囲の設計なども含まれる。
こうした本実施形態によれば、分散台帳システムにおける複数組織による非分散台帳システムとのデータ入出力タイミングや手段、権限などにより、取り扱いデータの値にばらつきが発生したとしても、所定ルールに沿って好適に処理可能となる。また、分散台帳システムと非分散台帳システムとの間で安全にデータのやり取りを行うことが可能となる効果も有する。また、非分散台帳システム側に手を加えることなく、当該非分散台帳システムを介したデータ処理/登録を、単一組織に依存せず客観性をもって実施可能となる効果もある。
すなわち、分散台帳システムと非分散台帳システムとの間の効率的なデータ連携が、単一組織に依存せず、かつ客観性をもって実施可能となる。
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態のデータ連携管理方法において、前記各ノードは、前記各ノードにより取得された前記データを、単一の一意なデータである単一データに収束させる収束方法ルールを更に保持し、前記相違を許容するに際し、前記収束方法ルールに従って、前記トランザクションが示す前記データを前記単一データに確定させる収束処理を行い、前記確定した単一データを分散台帳に格納する、としてもよい。
これによれば、各ノードが外部システムから得たデータの間における相違を、効率的に収束し、ひいては、分散台帳システムと非分散台帳システムとの間のより効率的なデータ連携が、単一組織に依存せず、かつ客観性をもって実施可能となる。
また、本実施形態のデータ連携管理方法において、前記各ノードは、前記分散台帳システムと前記外部システムとの間のデータ連携方法に関して、前記許容範囲ルールと前記収束方法ルールとを少なくとも規定したデータ連携スマートコントラクトとして管理する、としてもよい。
これによれば、許容範囲ルールに基づく判定や収束方法ルールに基づく単一データ化が
効率的なものとなり、ひいては、分散台帳システムと非分散台帳システムとの間のより効率的なデータ連携が、単一組織に依存せず、かつ客観性をもって実施可能となる。
また、本実施形態のデータ連携管理方法において、前記各ノードは、前記各ノードにより取得された前記データを仮データとして前記分散台帳に格納し、前記判定および前記収束処理に際し、前記仮データを前記分散台帳から取得して前記判定および前記収束処理の処理対象とする、としてもよい。
これによれば、確定前のデータについて簡易な取り扱いとして分散台帳の利用効率を向上させ、ひいては、分散台帳システムと非分散台帳システムとの間のより効率的なデータ連携が、単一組織に依存せず、かつ客観性をもって実施可能となる。
また、本実施形態のデータ連携管理方法において、前記各ノードは、第2の分散台帳を備え、前記仮データを前記第2の分散台帳に格納し、前記判定および前記収束処理を経た確定済みの仮データについては前記第2の分散台帳から削除する処理を更に実行する、としてもよい。
これによれば、確定前のデータについて簡易な取り扱いとするとともに、収束方法ルールに沿って収束させ確定した仮データについては削除することで、分散台帳の利用効率を向上させ、ひいては、分散台帳システムと非分散台帳システムとの間のより効率的なデータ連携が、単一組織に依存せず、かつ客観性をもって実施可能となる。
また、本実施形態のデータ連携管理方法において、前記各ノードは、前記データ連携スマートコントラクトにおいて、前記外部システムに接続する組織を前記複数組織の内から選択する組織選択ルールを更に備え、当該組織選択ルールを、前記複数組織に関して予め保持する所定の構成情報に適用し、前記外部システムに接続する組織を選定する処理を更に実行する、としてもよい。
これによれば、外部システムからデータを得る組織をその権限等に応じて効率的に選択し、ひいては、分散台帳システムと非分散台帳システムとの間のより効率的なデータ連携が、単一組織に依存せず、かつ客観性をもって実施可能となる。
また、本実施形態のデータ連携管理方法において、前記データ連携スマートコントラクトにおける所定イベントの発行に伴い、前記複数組織の組織それぞれの情報処理装置に備わる所定の外部連携エージェントが、当該イベントを受け取り、前記外部システムに関する処理を実行し、当該処理の結果を前記データ連携スマートコントラクトに通知する、としてもよい。
これによれば、具体的なデータ取得処理の詳細を外部連携エージェントで管理することで、より柔軟な外部システム連携処理を行いやすくなる。ひいては、分散台帳システムと非分散台帳システムとの間のより効率的なデータ連携が、単一組織に依存せず、かつ客観性をもって実施可能となる。
また、本実施形態のデータ連携管理方法において、前記各ノードは、前記データ連携スマートコントラクトにおいて、前記外部システムに関する処理内容を、前記発行する所定イベントに埋め込み、前記外部連携エージェントは、前記埋め込まれた処理内容に従って前記外部システムに関する処理を実行する、としてもよい。
これによれば、より柔軟な外部システム連携処理を更に効率良く行うこととなり、ひいては、分散台帳システムと非分散台帳システムとの間のより効率的なデータ連携が、単一
組織に依存せず、かつ客観性をもって実施可能となる。
また、本実施形態のデータ連携管理方法において、前記各ノードは、前記許容範囲ルールに従った前記許容可否の判定結果を保持し、前記判定結果に基づき前記複数組織のそれぞれの信頼度を算出する、としてもよい。
これによれば、組織それぞれにおけるデータの信頼性を明示的に提示し、それに応じた当該組織の取扱等を考慮可能となる。ひいては、分散台帳システムと非分散台帳システムとの間のより効率的なデータ連携が、単一組織に依存せず、かつ客観性をもって実施可能となる。
1 ネットワーク
2 物理的な通信回線
3 分散台帳ノード
10 分散台帳システム(データ連携管理システム)
100 I/F
101 プロセッサ
102 メモリ
103 データバス
31 コンセンサス管理部
32 スマートコントラクト実行/管理部(SC実行/管理部)
33 メンバー管理部
34 トランザクション管理部
35 トランザクション発行部
36 承認済トランザクション配信部
37 ネットワークプロトコル部
4 クライアントノード
41 業務アプリ
42 外部システム連携部
43 外部連携エージェント
44 イベント受信部
5 外部システム(非分散台帳)
51 外部システムAPI
D1 分散台帳
D11 業務スマートコントラクト(業務SC)
D12 データ連携スマートコントラクト(データ連携SC)
D2 構成情報
D3 参加メンバー管理情報
D4 プライベート用分散台帳

Claims (11)

  1. 複数のノードで構成される分散台帳システムにおいて、前記複数のノードのうち少なくとも所定の複数組織の各ノードは、
    前記各ノードにおいて所定の外部システムから取得されるデータの間の相違に関して、許容範囲を規定した許容範囲ルールを保持し、前記各ノードが前記データに関して発行したトランザクションについて、前記許容範囲ルールに従った当該データの間の相違に関する許容可否の判定を経ることで、前記データの間の相違を許容して合意形成する、
    ことを特徴とするデータ連携管理方法。
  2. 前記各ノードは、
    前記各ノードにより取得された前記データを、単一の一意なデータである単一データに収束させる収束方法ルールを更に保持し、
    前記相違を許容するに際し、前記収束方法ルールに従って、前記トランザクションが示す前記データを前記単一データに確定させる収束処理を行い、前記確定した単一データを分散台帳に格納する、
    ことを特徴とする請求項1に記載のデータ連携管理方法。
  3. 前記各ノードは、
    前記分散台帳システムと前記外部システムとの間のデータ連携方法に関して、前記許容範囲ルールと前記収束方法ルールとを少なくとも規定したデータ連携スマートコントラクトとして管理する、
    ことを特徴とする請求項2に記載のデータ連携管理方法。
  4. 前記各ノードは、
    前記各ノードにより取得された前記データを仮データとして前記分散台帳に格納し、前記判定および前記収束処理に際し、前記仮データを前記分散台帳から取得して前記判定および前記収束処理の処理対象とする、
    ことを特徴とする請求項3に記載のデータ連携管理方法。
  5. 前記各ノードは、
    第2の分散台帳を備え、前記仮データを前記第2の分散台帳に格納し、前記判定および前記収束処理を経た確定済みの仮データについては前記第2の分散台帳から削除する処理を更に実行する、
    ことを特徴とする請求項4に記載のデータ連携管理方法。
  6. 前記各ノードは、
    前記データ連携スマートコントラクトにおいて、前記外部システムに接続する組織を前記複数組織の内から選択する組織選択ルールを更に備え、当該組織選択ルールを、前記複数組織に関して予め保持する所定の構成情報に適用し、前記外部システムに接続する組織を選定する処理を更に実行する、
    ことを特徴とする請求項3に記載のデータ連携管理方法。
  7. 前記データ連携スマートコントラクトにおける所定イベントの発行に伴い、前記複数組織の組織それぞれの情報処理装置に備わる所定の外部連携エージェントが、当該イベントを受け取り、前記外部システムに関する処理を実行し、当該処理の結果を前記データ連携スマートコントラクトに通知する、
    ことを特徴とする請求項3に記載のデータ連携管理方法。
  8. 前記各ノードは、
    前記データ連携スマートコントラクトにおいて、前記外部システムに関する処理内容を、前記発行する所定イベントに埋め込み、前記外部連携エージェントは、前記埋め込まれた処理内容に従って前記外部システムに関する処理を実行する、
    ことを特徴とする請求項7に記載のデータ連携管理方法。
  9. 前記各ノードは、
    前記許容範囲ルールに従った前記許容可否の判定結果を保持し、前記判定結果に基づき前記複数組織のそれぞれの信頼度を算出する、
    ことを特徴とする請求項1に記載のデータ連携管理方法。
  10. 複数のノードで構成される分散台帳システムであって、
    前記複数のノードのうち少なくとも所定の複数組織の各ノードは、前記各ノードにおいて所定の外部システムから取得されるデータの間の相違に関して、許容範囲を規定した許容範囲ルールを保持し、前記各ノードが前記データに関して発行したトランザクションについて、前記許容範囲ルールに従った当該データの間の相違に関する許容可否の判定を経ることで、前記データの間の相違を許容して合意形成するものである、
    ことを特徴とするデータ連携管理システム。
  11. 分散台帳システムを構成する複数のノードのいずれかであって、
    前記複数のノードにおいて所定の外部システムから取得されるデータの間の相違に関して、許容範囲を規定した許容範囲ルールを保持し、前記各ノードが前記データに関して発行したトランザクションについて、前記許容範囲ルールに従った当該データの間の相違に関する許容可否の判定を経ることで、前記データの間の相違を許容して合意形成するものである、
    ことを特徴とするノード。
JP2019056283A 2019-03-25 2019-03-25 データ連携管理方法、データ連携管理システム、およびノード Active JP7025365B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019056283A JP7025365B2 (ja) 2019-03-25 2019-03-25 データ連携管理方法、データ連携管理システム、およびノード
US16/575,538 US11151122B2 (en) 2019-03-25 2019-09-19 Distributed ledger data linkage management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019056283A JP7025365B2 (ja) 2019-03-25 2019-03-25 データ連携管理方法、データ連携管理システム、およびノード

Publications (2)

Publication Number Publication Date
JP2020160526A JP2020160526A (ja) 2020-10-01
JP7025365B2 true JP7025365B2 (ja) 2022-02-24

Family

ID=72607913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019056283A Active JP7025365B2 (ja) 2019-03-25 2019-03-25 データ連携管理方法、データ連携管理システム、およびノード

Country Status (2)

Country Link
US (1) US11151122B2 (ja)
JP (1) JP7025365B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11409734B2 (en) * 2018-10-29 2022-08-09 Electronics And Telecommunications Research Institute Blockchain system and operation method thereof
CN112565395B (zh) * 2020-12-01 2022-05-13 浙商银行股份有限公司 一种广播收敛的联盟链p2p组网方法、设备及可读存储介质
US11915011B2 (en) * 2021-07-30 2024-02-27 Nasdaq, Inc. Systems and methods of distributed processing
CN113791955A (zh) * 2021-09-17 2021-12-14 济南浪潮数据技术有限公司 一种用于监控***的数据汇聚装置、方法及服务器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160357550A1 (en) 2015-06-08 2016-12-08 402 Technologies S.A. System and method for executing software
WO2018111295A1 (en) 2016-12-16 2018-06-21 Hitachi, Ltd. Blockchain monitoring and management
US20180356236A1 (en) 2017-06-12 2018-12-13 Panasonic Intellectual Property Management Co., Ltd. System and method for dynamically authenticating map data using blockchains

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3424177B1 (en) * 2016-02-29 2021-10-13 SecureKey Technologies Inc. Systems and methods for distributed identity verification
JP6601624B2 (ja) 2016-05-10 2019-11-06 日本電信電話株式会社 コンテンツ流通システム、コンテンツ流通方法、コンテンツ生成装置及びコンテンツ生成プログラム
US20180225661A1 (en) * 2017-02-07 2018-08-09 Microsoft Technology Licensing, Llc Consortium blockchain network with verified blockchain and consensus protocols
US20190073244A1 (en) * 2017-09-04 2019-03-07 Vicktor Capital (Asia) Limited Computer network-based event management
US9967238B1 (en) * 2017-11-09 2018-05-08 Broadridge Financial Solutions, Inc. Database-centered computer network systems and computer-implemented methods for cryptographically-secured distributed data management
US11283673B2 (en) * 2019-01-07 2022-03-22 International Business Machines Corporation Blockchain endorsement verification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160357550A1 (en) 2015-06-08 2016-12-08 402 Technologies S.A. System and method for executing software
WO2018111295A1 (en) 2016-12-16 2018-06-21 Hitachi, Ltd. Blockchain monitoring and management
US20180356236A1 (en) 2017-06-12 2018-12-13 Panasonic Intellectual Property Management Co., Ltd. System and method for dynamically authenticating map data using blockchains

Also Published As

Publication number Publication date
US11151122B2 (en) 2021-10-19
JP2020160526A (ja) 2020-10-01
US20200311051A1 (en) 2020-10-01

Similar Documents

Publication Publication Date Title
JP7025365B2 (ja) データ連携管理方法、データ連携管理システム、およびノード
EP3704620B1 (en) System and method for blockchain-based notification
JP7362654B2 (ja) 分割されたブロックチェーンネットワークにおけるブロックチェーンのブロックの維持管理
JP6730369B2 (ja) 利用管理方法、利用管理システム、および、ノード
JP6900266B2 (ja) 運用管理方法、運用管理システム、および、運用管理プログラム
JP6931999B2 (ja) 信用度管理システムおよび信用度管理方法
EP3438903B1 (en) Hierarchical network system, and node and program used in same
WO2018020944A1 (ja) 掲示板情報管理システム
KR101994455B1 (ko) 시스템에 포함되는 노드들에 대하여 그룹을 운영하는 분산 네트워크 시스템
CN102170440B (zh) 适用于存储云间数据安全迁移的方法
Ferrer-Gomila et al. A fair contract signing protocol with blockchain support
CN110275891A (zh) 人工智能软件市场
CN111291060A (zh) 一种管理区块链节点的方法、装置及计算机可读介质
JP2020204898A (ja) 分散台帳システムの運用管理方法、分散台帳システムの運用管理システム、および分散台帳システムの運用管理プログラム
JP7432443B2 (ja) 移行支援システム、移行支援方法、およびノード
JP7181455B2 (ja) ブロックチェーンシステム、承認端末、利用者端末、履歴管理方法、および、履歴管理プログラム
JP2020060821A (ja) 組織管理支援システム、組織管理支援方法、および、組織管理支援装置
KR20200114324A (ko) 블록체인 기반의 암호화폐를 이용한 송금 처리 시스템
US11522995B2 (en) Number management system, number management method, and number management device
KR102176128B1 (ko) 블록체인에 기반한, 분산형 컴퓨팅 자원 공유 시스템 상에서의 보안 통신 제공 방법
KR102193890B1 (ko) 블록체인에 기반한, 분산형 컴퓨팅 자원 공유 시스템 상에서의 워킹 그룹별 동일한 키를 사용하는 보안 통신 제공 방법
Shariar et al. A decentralized computational system built on blockchain for educational institutions
US20220247570A1 (en) Content use system, permission terminal, browsing terminal, distribution terminal, and content use program
US11880372B2 (en) Distributed metadata definition and storage in a database system for public trust ledger smart contracts
US20230368185A1 (en) Public trust ledger smart contract token transfer in a database system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210506

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220114

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220210

R150 Certificate of patent or registration of utility model

Ref document number: 7025365

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150