JP7421443B2 - データ移行方法、データ移行システム、およびノード - Google Patents

データ移行方法、データ移行システム、およびノード Download PDF

Info

Publication number
JP7421443B2
JP7421443B2 JP2020135623A JP2020135623A JP7421443B2 JP 7421443 B2 JP7421443 B2 JP 7421443B2 JP 2020135623 A JP2020135623 A JP 2020135623A JP 2020135623 A JP2020135623 A JP 2020135623A JP 7421443 B2 JP7421443 B2 JP 7421443B2
Authority
JP
Japan
Prior art keywords
transaction
data
distributed ledger
migration
data migration
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
JP2020135623A
Other languages
English (en)
Other versions
JP2022032116A (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 JP2020135623A priority Critical patent/JP7421443B2/ja
Priority to US17/185,350 priority patent/US11573975B2/en
Publication of JP2022032116A publication Critical patent/JP2022032116A/ja
Application granted granted Critical
Publication of JP7421443B2 publication Critical patent/JP7421443B2/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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

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

Description

本発明は、データ移行方法、データ移行システム、およびノードに関する。
従来、金融機関や政府などの信頼できる中央集権機関を経由して実施されてきた取引を、利用者間のP2P(Peer to Peer)による直接的な取引で代替する技術として、ブロックチェーン(以下、BCとも称する)を用いた分散台帳技術が登場している。
分散台帳技術に関しては、様々な派生技術が提案され、進化を続けている。現状の主な特徴としては、(1)分散台帳への参加者間の取引において、中央集権機関ではなく(任意ないしは特定の)参加者による合意形成や承認によって取引を確定させること、(2)複数のトランザクションをブロックとしてまとめ、数珠つなぎにブロックチェーンと呼ばれる分散台帳に記録し、連続するブロックにハッシュ計算を施すことにより、改ざんを実質不可能にすること、(3)参加者全員が同一の台帳データを共有することにより、参加者全員での取引の確認を可能とすることが挙げられる。
このようなBCを用いた分散台帳技術は、以上のような特徴から、信頼できるデータの管理/共有や、契約に基づく取引の執行/管理を行う仕組みとして、金融や製造業等、幅広い分野での応用が検討されている。
分散台帳を提供する基盤(以下、分散台帳基盤)を用いることで、中央集権機関による管理がなくとも、複数の主体間で情報共有や取引を行うことができる(例えば、特定業界のコンソーシアムやサプライチェーンに関係する複数企業等)。
なお、特定の複数または一つの団体・人により許可されたコンピュータのみが取引の参加者となるブロックチェーンまたは分散台帳を、「コンソーシアム型」と呼ぶ。
このコンソーシアム型では、参加者を認証する管理主体が存在するため、取引承認のスピードを早くすることができるメリットがある。そのため、分散台帳技術を、特定業界のコンソーシアム内で利用する場合、一般的にコンソーシアム型の分散台帳基盤が用いられる。
また、一部の分散台帳基盤においては、複雑な取引条件や多様なアプリケーションにも適用可能とするために、分散台帳の中で取引データだけでなく取引条件を記載したロジックも管理できるようになってきている。このロジックはスマートコントラクト(以下、SCとも称する)と呼ばれる。上述のようなSCの実行機能を有する分散台帳基盤に関する技術について、非特許文献1にて開示されている。
こうした分散台帳基盤では、当該分散台帳基盤を構成するノード間で所定の合意水準で合意形成しながらトランザクション(以下、TXとも称する)を受け入れて、各ノードでTXを実行し、TXの結果を保持することにより、複数ノード上で情報(台帳)を共有する。また、TXに対して予め決めたロジックを実行するSC実行機能を備える。
一方、コンソーシアム型BCをPaaS(Platform as a Servic
e)の形態で提供するクラウドベンダが複数出現しつつある。このようなサービスは、ブ
ロックチェーン(BC)プラットフォームと呼称される。
特開2005-208757号公報
"Hyperledger Fabric", [online]、[2020年5月7日検索]、インターネット<URL:http://hyperledger-fabric.readthedocs.io/en/latest/>
上述のBCプラットフォームのユーザにおいて、当該BCプラットフォーム(旧環境)を活用したアプリケーションもしくはサービスの運用開始後、他ベンダのBCプラットフォーム(新環境)に移行したいというニーズが生じうる。
その理由としては、当該ユーザの利用中のサービスが終了した、あるいはアプリケーションもしくはサービスが前提とする、BC基盤のバージョンもしくは種類が、BCプラットフォーム側と合致しなくなった、等が考えられる。
しかし、一般的なBCプラットフォームにおいては、分散台帳の生データや、参加組織の認証やTXへの署名に用いる秘密鍵と公開鍵のペア、といった情報をプラットフォーム外に持ち出すことは許容されないケースが一般的である。そうした場合、移行手法は非常に限定され、ユーザのニーズに応えられないケースが殆どになる。
つまり、BCプラットフォームにおける制約で、サーバ機能による移行不可となるケースが多く見込まれる。その場合、移行後の環境で移行前の環境を再現できず、クライアント側の機能を用いて旧環境の分散台帳データを読み込み、新環境で書き込みを再実行して移行するしかない。
しかし、旧環境におけるSCが、IoTなどの外部システムの情報を参照し、その結果を踏まえてBCへの書き込みを行っていた場合、そうしたクライアント側の機能を用いた移行手法も有効とはなり難い。
例えば、新環境におけるクライアントが旧環境下での過去のTXを再実行する場合、外部システムから得られる情報が旧環境時(旧環境での当該TXの実行時)と同一とは限らず、同じ実行結果を導出できない、すなわち同じデータを新環境のBCに書き込むことができない可能性がある。つまり、新環境でのTX再実行による旧環境再現は確立できないことになる。
そこで本発明の目的は、新旧PaaS間でのクライアントによるデータ移行に際し、実行対象のTXが外部システムに連携するものであっても、旧環境での過去の状態を再現して好適な移行を実現可能とする技術を提供することにある。
上記課題を解決する本発明のデータ移行方法は、ブロックチェーンプラットフォーム間でのデータ移行を担う管理用サーバが、データ移行元のブロックチェーンプラットフォームの分散台帳からトランザクション情報を取得する処理と、データ移行先のブロックチェーンプラットフォームにおける分散台帳ノードに対し、前記取得したトランザクション情報が示すトランザクションIDを指定した移行トランザクションを送信する処理を実行し、前記分散台帳ノードが、前記移行トランザクションを受信し、前記トランザクションI
Dに基づき、前記データ移行元の分散台帳のトランザクション情報を取得する処理と、前記取得したトランザクション情報から外部システム由来のデータを抽出し、当該データを引数として前記トランザクション情報に基づくトランザクションを実行する処理と、前記実行したトランザクションの結果を、前記データ移行先のトランザクション配信ノードに送信する処理を実行する、ことを特徴とする。
また、本発明のデータ移行システムは、ブロックチェーンプラットフォーム間でのデータ移行を担う管理用サーバであって、ブロックチェーンプラットフォームの各装置とネットワークを介して通信する通信装置と、データ移行元のブロックチェーンプラットフォームの分散台帳からトランザクション情報を取得し、データ移行先のブロックチェーンプラットフォームにおける分散台帳ノードに対し、前記取得したトランザクション情報が示すトランザクションIDを指定した移行トランザクションを送信する演算装置を備える管理用サーバと、ブロックチェーンプラットフォームの各装置と通信する通信装置と、分散台帳を保持する記憶装置と、前記移行トランザクションを前記管理用サーバから受信し、前記トランザクションIDに基づき、前記データ移行元の分散台帳のトランザクション情報を取得し、前記取得したトランザクション情報から外部システム由来のデータを抽出し、当該データを引数として前記トランザクション情報に基づくトランザクションを実行し、前記実行したトランザクションの結果を、前記データ移行先のトランザクション配信ノードに送信する演算装置を備える分散台帳ノードと、を含むことを特徴とする。
また、本発明のノードは、ブロックチェーンプラットフォームの各装置と通信する通信装置と、分散台帳を保持する記憶装置と、ブロックチェーンプラットフォーム間でのデータ移行を担う管理用サーバが送信してくる移行トランザクションを受信し、当該移行トランザクションが示す、データ移行元のブロックチェーンプラットフォームの分散台帳から取得されたトランザクションIDに基づき、前記データ移行元の分散台帳のトランザクション情報を取得し、前記取得したトランザクション情報から外部システム由来のデータを抽出し、当該データを引数として前記トランザクション情報に基づくトランザクションを実行し、前記実行したトランザクションの結果を、データ移行先のトランザクション配信ノードに送信する演算装置と、を備えることを特徴とする。
本発明によれば、新旧PaaS間でのクライアントによるデータ移行に際し、実行対象のTXが外部システムに連携するものであっても、旧環境での過去の状態を再現して好適な移行を実現可能とする 。
本実施形態のデータ移行環境の概要を示す図である。 本実施形態のデータ移行システムを含むネットワーク構成図である。 本実施形態における分散台帳ノードのハードウェア構成例を示す図である。 本実施形態における管理サーバのハードウェア構成例を示す図である。 本実施形態におけるトランザクション配信ノードのハードウェア構成例を示す図である。 本実施形態におけるデータ移行方法の概要シーケンス例を示す図である。 本実施形態におけるデータ移行方法のフロー例を示す図である。 本実施形態におけるブロックチェーンデータの構成例を示す図である。 本実施形態における旧環境ブロックの構成例を示す図である。 本実施形態における移行プログラムテーブルの構成例を示す図である。 本実施形態におけるデータ移行方法のフロー例を示す図である。 本実施形態における新環境ブロック(書き込み実行前)の構成例を示す図である。 本実施形態におけるデータ移行方法のフロー例を示す図である。 本実施形態におけるデータ移行方法のフロー例を示す図である。 本実施形態におけるデータ移行方法のフロー例を示す図である。 本実施形態における出力例を示す図である。 本実施形態における出力例を示す図である。 本実施形態における出力例を示す図である。
<<ネットワーク構成>>
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態のデータ移行環境の概要を示す図であり、また図2は、本実施形態のデータ移行システム10を含むネットワーク構成図である。
こうして示すデータ移行システム10は、新旧のPaaS間でのクライアントによるデータ移行に際し、実行対象のTXが外部システムに連携するものであっても、旧環境での過去の状態を再現して好適な移行を実現可能とするコンピュータシステムである。
より具体的には、Hyperledger Fabricと呼ばれる、オープンソースのブロックチェーン基盤をベースに運用される、ブロックチェーンプラットフォームのサービスにおいて、そのユーザの分散台帳で保持するブロックチェーンのデータを移行するためのシステムとなる。
ここで、データ移行元つまり旧環境のブロックチェーンプラットフォームを、移行元ブロックチェーンプラットフォーム5、データ移行先つまり新環境のブロックチェーンプラットフォームを、移行先ブロックチェーンプラットフォーム7と称する。
本実施形態では、図1で例示するように、上述の旧環境たる移行元ブロックチェーンプラットフォーム5を利用する組織“Org1”が、分散台帳ノード100Aの分散台帳125Aで格納するブロックチェーンを、新環境たる移行先ブロックチェーンプラットフォーム7の分散台帳ノード100Bの分散台帳125Bに移行する状況を想定する。
ただし、新旧環境の区別なく分散台帳ノードについて説明する場合、分散台帳ノード100と称する。ここで、分散台帳ノード100の一般的な機能、構成について説明しておく。分散台帳ノード100は、スマートコントラクト実行管理プログラム111(以後、SC実行管理プログラムとも呼ぶ)の機能を介して、スマートコントラクト(以降、SC
、スマコンとも呼ぶ)のデプロイを実施した上で、トランザクション実行管理プログラム
112の機能によりネットワーク2を介してトランザクション(以降、TXとも記載する)を受け付けて、コンセンサス管理プログラム110の機能によって、他の分散台帳ノードとの間で当該TXを受け入れてよいかの合意形成を行う。
また、分散台帳ノード100は、当該TXに関する合意形成がなされたら、SC実行管理プログラム111の機能を介して、デプロイ済みのSCに対する実行を行い、当該TXの履歴を分散台帳125のブロックチェーンデータ126に、その実行結果に基づくステート情報を共有情報テーブル127に記録する。
こうした環境下において、移行元ブロックチェーンプラットフォーム5の分散台帳ノード100Aは、Readスマコン114を有している。このReadスマコン114は、旧環境側で、分散台帳125Aのブロックチェーンに登録済みのトランザクション情報及びブロック情報を参照するためのスマコンである。
また、Readスマコン114は、トランザクションIDからトランザクションを取得する、トランザクションIDから当該トランザクションが含まれるブロック情報を取得する、などの関数を保持している。
一方、管理サーバ20は、例えば、上述の組織“Org1”が運用するサーバ装置である。この管理サーバ20は、少なくとも移行プログラム22を有している。この移行プログラム22は、例えば、 ユーザからの移行開始要求を契機に、或いは、他組織の移行プ
ログラムからの移行実施要求を契機に、本発明のデータ移行方法をキックし、主導するプログラムとなる。
また、移行先ブロックチェーンプラットフォーム7の分散台帳ノード100Bは、移行スマコン113を有している。この移行スマコン113は、上述の管理サーバ20から配信された移行トランザクションに基づき、旧環境の分散台帳125Aでの該当トランザクションからRead Set、Write Setの各値を抽出し、これを引数にして新環境でのトランザクション実行(シミュレーション)を行うスマートコントラクトである。また、移行スマコン113は、その結果を管理サーバ20に応答する。
なお、上述のトランザクションが含むRead Set、Write Setの各値は、クライアントノード200のトランザクション発行部210が、業務アプリ220のリクエスト等に基づき発行したトランザクションに関して、旧環境の分散台帳ノード100Aが、例えば、図2で示す業務サーバ8の業務プログラム81と通信し、取得した値である。
上述の業務サーバ8は、ブロックチェーンプラットフォームから見た外部システムであり、インターネットなどのネットワーク1を介して各ブロックチェーンプラットフォームと通信可能に接続される。
こうした外部システムの具体例としては、例えば、MES(Manufacturing Execution System)やPLM(Product LifeCycle Management)等のIoTシステム、EDI(Electronic Date Exchange)等の商流システム、WMS(Warehouse Management System)やTMS(Transport Management System)等の物流システム、CMS(Cash Management System)、勘定系の基幹システム、別のブロックチェーンプラットフォーム、ストレージシステム、サーバ上に配置されたCSV、TEXTなどのファイルなどを想定しうる。いずれにしても、ブロックチェーンプラットフォームにおける分散台帳ノード100からアクセス可能なシステムであればよい。
他方、管理サーバ20では、上述のトランザクション実行結果を分散台帳ノード100Bから受信し、これをトランザクション配信ノード300に送信することとなる。このトランザクション配信ノード300は、Hyperledger Fabricにおいて、いわゆるOrdererと呼ばれるノードである。
Ordererであるトランザクション配信ノード300は、管理サーバ20から受信したトランザクション実行結果から合意形成要求のトランザクションを生成し、これをトランザクション配信部310によって、当該組織における各分散台帳ノードに配信する。これにより、当該組織における各分散台帳125に格納させるべきトランザクションの順序を確定し、新しいブロックを配信するノードとなる。
したがって、旧環境の分散台帳125AのトランザクションIDに基づく、新環境の分
散台帳ノード100Bでのトランザクション実行(シミュレーション)とその結果は、トランザクション配信ノード300により、組織“Org1”における合意形成用のノード(Endorsing Peer)に配信され、その合意形成を経て分散台帳への格納に至る。
<<ハードウェア構成>>
続いて、データ移行システム10を構成する各装置のハードウェア構成例について説明する。図3は、本実施形態の分散台帳ノード100のハードウェア構成例を示す図である。
分散台帳ノード100は、記憶装置101、メモリ103、演算装置104、および通信装置105を備えている。
このうち記憶装置101は、SSD(Solid State Drive)やハードディスクドライブなど適宜な不揮発性記憶素子で構成される。
また、メモリ103は、RAMなど揮発性記憶素子で構成される。
また、演算装置104は、記憶装置101に保持されるプログラム102をメモリ103に読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうCPUである。
プログラム102は、既に述べたコンセンサス管理プログラム110、スマートコントラクト実行管理プログラム111、およびトランザクション実行管理プログラム112を含んでいる。
また、通信装置105は、ネットワーク1、2と接続して他装置との通信処理を担うネットワークインターフェイスカードである。
なお、記憶装置101内には、本実施形態の分散台帳ノード100として必要な機能を実装する為のプログラム102に加えて、移行スマコン113、Readスマコン114、検証スマコン115、および分散台帳125が少なくとも記憶されている。
このうち移行スマコン113、Readスマコン114、および検証スマコン115の詳細については後述する。
また、分散台帳125は、ブロックチェーンデータ126および共有情報テーブル127を含んでいる。こうした分散台帳125の構成自体は一般的な分散台帳と同様である。或る。
続いて図4に、本実施形態の管理サーバ20のハードウェア構成例を示す。本実施形態の管理サーバ20は、記憶装置21、メモリ23、演算装置24、および通信装置25を備えている。
このうち記憶装置21は、SSD(Solid State Drive)やハードディスクドライブなど適宜な不揮発性記憶素子で構成される。
また、メモリ23は、RAMなど揮発性記憶素子で構成される。
また、演算装置24は、記憶装置21に保持されるプログラム22をメモリ23に読み
出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうCPUである。
プログラム22は、既に述べた移行プログラム22を少なくとも含んでいる。また、記憶装置21は、このプログラム22に加えて、移行プログラムテーブル26を保持しているものとする。移行プログラムテーブル26の詳細は後述する。
また、通信装置25は、ネットワーク1、2と接続して他装置との通信処理を担うネットワークインターフェイスカードである。
続いて図5に、本実施形態のトランザクション配信ノード300のハードウェア構成例を示す。本実施形態のトランザクション配信ノード300は、記憶装置301、メモリ302、演算装置304、および通信装置305を備えている。
このうち記憶装置301は、SSD(Solid State Drive)やハードディスクドライブなど適宜な不揮発性記憶素子で構成される。
また、メモリ303は、RAMなど揮発性記憶素子で構成される。
また、演算装置304は、記憶装置301に保持されるプログラム302をメモリ303に読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうCPUである。
プログラム302は、既に述べたトランザクション配信部310を実装するためのプログラムである。
また、通信装置305は、ネットワーク1、2と接続して他装置との通信処理を担うネットワークインターフェイスカードである。
<<フロー例:メインフロー>>
以下、本実施形態におけるデータ移行方法の実際手順について図に基づき説明する。以下で説明するデータ移行方法に対応する各種動作は、データ移行システム10を構成する、主として管理サーバ20および分散台帳ノード100がメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
図6は本実施形態におけるデータ移行方法の概要シーケンス例を示す図であり、また、図7は、本実施形態におけるデータ移行方法のフロー例を示す図である。図6に示すシーケンスを全体フローとして、以後、各フローについて説明するものとする。
なお、このフローは、例えば、以下の二つの契機でスタートするものとする。1つは、クライアントノード200を介してユーザから受けた移行開始要求を契機とするケースである。また、もう1つは、別の組織の移行プログラムからの移行実施要求を受けたことを契機とするケースである。
本フローにおいて、管理サーバ20の移行プログラム22は、移行元ブロックチェーンプラットフォーム5(以下、旧環境)における分散台帳125のブロックチェーンデータに格納されているトランザクション情報を取得する(s1)。
分散台帳125のブロックチェーンデータ70の例を図8に、また、そうしたブロック
チェーンデータ70に含まれるブロックデータ80を図9に示す。図8に示すように、ブロックチェーンデータ70は、前ブロックのハッシュ値をブロックヘッダに含む一連のブロックの連なりとなっている。
また、各ブロックのブロックデータは、一般的には複数のトランザクション90を含んでいる(1つのトランザクションのみのケースもありうる)。また、トランザクション90は、トランザクションID、トランザクション発行者ID、トランザクション発行者署名、スマートコントラクト名、スマートコントラクト引数、エンドーサーID、エンドーサー署名、Read Set、およびWrite Set、の各値を含みうる。
図9に例示する、旧環境におけるブロックデータ80が含む実行トランザクション90は、組織“Org1”の“Client1”が、外部システムである業務サーバ8からIoTデータを取得し、これを分散台帳125に格納するスマートコントラクトに関するトランザクション例である。IoTデータは、Read Set、Write Setの各値に示すように、“M1”なる事象についての、日付“20200306”の観測値“100”、なる値を示している。
ここで取得するトランザクション情報は、移行対象のトランザクションの情報であって、例えば、トランザクションID、タイムスタンプ、発行者ID (1つ)、及びEndorserID (複数)、といった値になる。
また、上述の移行対象のトランザクションとしては、例えば旧環境の分散台帳125が保持する全ブロックのトランザクションが対象となる場合、移行プログラム22は、旧環境の分散台帳125におけるブロック番号1番から順番に全てのブロック情報を取得し、
当該ブロックの中のトランザクションの情報を一つずつ抽出して、ループを回すことで実行する。
なお、ブロックの中のトランザクション毎に発行者が異なることもあるため、こうしたトランザクション情報の取得は、ブロック単位ではなくトランザクション単位で実行を進めるものとする。
また、特定のトランザクションのみを移行対象とする場合、移行プログラム22は、例えば、クライアントノード200を介してTXIDの指定をユーザから受け付けて、当該TXIDのトランザクションを移行対象として、旧環境の分散台帳125から該当トランザクションを検索・抽出する。
なお、こうしたTXIDをキーにしたトランザクションの検索・抽出に代えて、トランザクション情報のタイムスタンプ情報に基づき、ユーザ指定の特定期間のトランザクションのみを移行対象として抽出するなどとしても良い。
続いて、組織“Org1”の管理サーバ20の移行プログラム22は、s1で取得したトランザクション情報から発行者IDを取得し、この発行者IDの所属組織を特定する(s2)。
この所属組織特定の手法としては、例えば、当該発行者IDで示されるクライアントが、どの組織のCA(Certification Authority:認証局)から証明書を発行してもらっているかをチェックし、そのCAの所属組織を当該クライアントの所属組織とする、といったものを想定しうる。
続いて、管理サーバ20の移行プログラム22は、s2での結果を受けて、s1でトラ
ンザクション情報を取得したトランザクションが、自身の所属組織“Org1”が実行したトランザクションか判定する(s3)。
この判定の結果、当該トランザクションは自組織“Org1”の発行によるものでなかった場合(s3:No)、管理サーバ20の移行プログラム22は、s2で特定した所属組織(この場合、他組織)の管理サーバ20の移行プログラム22にアクセスするための情報を、移行プログラムテーブル26(図10参照)から取得する(s4)。
この移行プログラムテーブル26は、組織ごとの管理サーバ20における移行プログラム22へのアクセス情報を規定したテーブルである。
続いて、組織“Org1”の管理サーバ20の移行プログラム22は、s4でアクセス先を取得した他組織の管理サーバ20の移行プログラム22に対して、s1で得ているトランザクション情報を含む移行実施要求を送信する(s5)。
また、組織“Org1”の管理サーバ20の移行プログラム22は、上述の他組織の管理サーバ20から、当該組織に関して得られたトランザクション実行結果を取得し(s6)、本フローを終了する。
一方、上述のs3での判定の結果、当該トランザクションは自組織“Org1”の発行によるものであった場合(s3:Yes)、組織“Org1”の管理サーバ20の移行プログラム22は、s1で取得しているトランザクション情報から、EndorserIDを取得し、当該EndorserIDの所属組織を特定する(s7)。
また、組織“Org1”の管理サーバ20の移行プログラム22は、新環境下における、同組織の分散台帳ノード100の移行スマコン113に対し、s1で取得しているトランザクション情報のトランザクションIDを指定して、移行トランザクションを送る(s8)。
この処理においては、移行トランザクションそのもののトランザクションIDを、移行しようとしているトランザクションの(旧環境での)IDと合わせる場合と、移行トランザクションそのもののトランザクションIDは新しく割り振ったIDとして、移行トランザクションの実行関数の引数として、移行しようとしている(旧環境での)トランザクションのIDを指定する場合の、両方が考えられる。
前者の運用を採用するためには、ブロックチェーンプラットフォームとして、トランザクション発行者がトランザクションIDを指定できる機能を持っている必要がある。
また、ここでの「所属組織」は、前のステップで特定した所属組織の場合が基本となるが、ブロックチェーンに参加している全ての組織、特定の一組織、どの組織からの合意が必要かをあらかじめ規定したポリシ情報に基づき特定した所属組織なども想定しうる。すなわち限定されない。
また、組織“Org1”の管理サーバ20の移行プログラム22は、上述の移行スマコン113から、上述の移行トランザクションに応じたシミュレーション結果を受け取る(s9)。こうした移行スマコン113における、移行トランザクションに応じたシミュレーションの内容については後述する。
また、組織“Org1”の管理サーバ20の移行プログラム22は、s9で受信したシミュレーション結果をトランザクション配信ノードに送信し(s10)、所定の合意形成
を経た結果を受信する(s11)。
続いて、組織“Org1”の管理サーバ20の移行プログラム22は、s1の契機となったのが他の組織の移行プログラム22からの移行実施要求か判定する(s12)。この判定の結果、他の組織の移行プログラム22からの移行実施要求である場合(s12:Yes)、組織“Org1”の管理サーバ20の移行プログラム22は、該当トランザクションの実行結果を、移行実施要求をしてきた他組織の移行プログラム22に返信し(s13)、処理を終了する。
他方、上述の判定の結果、他の組織の移行プログラム22からの移行実施要求ではない場合(s12:No)、組織“Org1”の管理サーバ20の移行プログラム22は、処理を終了する。
<<フロー例:移行スマコンの処理>>
続いて、分散台帳ノード100の移行スマコン113における処理について、図11のフローに基づき説明する。ここでは、図7のフローにおける移行トランザクションの送信(s8)に伴って、移行スマコン113で実行する処理を示す。
この場合、分散台帳ノード100の移行スマコン113は、上述のs8で管理サーバ20の移行プログラム22が送信した移行トランザクションを受信する(s20)。
この移行トランザクションでは、移行対象のトランザクションの(旧環境での)トランザクション情報が指定されているものとする。また、指定されているトランザクション情報は、トランザクションID (引数指定されている、或いは移行トランザクションのTXID)として設定されている。
そこで、上述の移行スマコン113は、上述の移行トランザクションからトランザクションIDを抽出する(s21)。
また、移行スマコン113は、上述のs21で抽出したトランザクションIDに基づき、旧環境における分散台帳125のブロックチェーンデータに格納されているトランザクション情報を取得する(s22)。ここで取得するトランザクション情報は、例えば、発行者ID (1つ)、タイムスタンプ、トランザクション実行提案応答情報(Read/Wr
ite set)といったものを想定しうる。
また、移行スマコン113は、移行のための事前検証処理を実行し(s23)、処理をs24に遷移させる。この事前検証処理については後述する。
また、移行スマコン113は、s23での検証を経ている、s22で取得済みのトランザクション情報の中から、トランザクション実行提案応答情報を取得する(s24)。このトランザクション実行提案応答情報は、上述のように、業務サーバ8由来のIoTデータの値であり、トランザクションが含むRead Set、Write Setの値となる。このとき、移行スマコン113は、例えば、Readスマコン114により、当該値をトランザクションから取得するものとできる。
なお、上述のように業務サーバ8由来のIoTデータの値といった、外部システム由来のデータの他にも、例えば自システムにおける過去の状態での実行結果を取得とするしてもよい。その場合、移行スマコン113は、取得した実行結果を新環境で書き込むことで、移行元の旧環境を移行先の新環境に再現可能となる。
続いて、スマコン113は、s24で得たトランザクション実行提案応答情報に基づき、トランザクション実行提案を作成する(s25)。具体的には、Read Set、Write Setの各値を引数としたトランザクション(s21で得たトランザクションIDで指定されるもの)を、新環境下で再実行することを指示するトランザクションとなる。
また、スマコン113は、s25で作成したトランザクション実行提案に基づいて、新環境下で対応するトランザクションを実行、すなわちシミュレーションを実行し(s26)、そのシミュレーション結果を、上述の管理サーバ20の移行プログラム22に返信する(s27)。このシミュレーション結果は、管理サーバ20の移行プログラム22により、トランザクション配信ノード300に送信され、合意形成対象のトランザクションとして分散台帳ノード100に配信されることになる。
続いて、分散台帳ノード100のスマコン113は、上述のようにトランザクション配信ノード300から配信されたトランザクションを実行して、他の分散台帳ノード100との間での合意形成を経て、自身の分散台帳125を、図12のブロック1100のトランザクション1101の状態(書き込み実行前でRead/Write Setの各値が空欄)から更新する(s28,s29)。
また、上述のスマコン113は、s29のトランザクション実行結果を移行プログラムに返し(s30)、処理を終了する。
<<フロー例:移行のための事前検証>>
続いて、上述のフローにおける、移行のための事前検証処理(s23)の詳細について図13に基づき説明する。このフローは、TXの発行組織をチェックするための処理である。移行プログラム22で当該チェックは既に実行しているが(正しい組織の移行プログ
ラムから実行されるようにしている)、何らかの不正が発生した場合に備え、ここで再チ
ェックを行う運用となっている。
この場合、移行スマコン113は、s22で取得しているトランザクション情報の中から、発行者IDを取得し、当該発行者IDの所属組織を特定する(s40)。
また、移行スマコン113は、上述の移行トランザクションの発行者IDの所属組織を特定する(s41)。
続いて、移行スマコン113は、s40およびs41でそれぞれ特定した組織が同一か、すなわち移行トランザクションが、移行対象のトランザクションと同一の組織により実行されているか判定する(s42)。
上述の判定の結果、同一組織によるトランザクションではない場合(s42:No)、移行スマコン113は、移行プログラム22にエラーを返し(s43)、処理を終了する。
一方、上述の判定の結果、同一組織によるトランザクションである場合(s42:Yes)、移行スマコン113は、s41で移行トランザクションから抽出したトランザクションIDに基づき、旧環境の分散台帳125におけるブロックチェーンデータに格納されているブロックの情報を取得する(s44)。
なお、ここから以降の処理は、トランザクションの順序が正しく実行されるかをチェックするための処理となる。概要としては、ブロックのブロック番号に基づき、ブロック単
位でのトランザクションの順序を特定し、ブロック内のトランザクション順序はブロックの情報を参照することで特定する。
ただし、移行のための事前検証処理は、このステップs44からスタートしても良く、また、この前のステップs43までで終了しても良い。
続いて、移行スマコン113は、s44で取得したブロック内で、該当のトランザクションよりも前に、旧環境において実行されたトランザクションの情報を抽出する(s45)。
また、移行スマコン113は、s45で抽出したトランザクション情報から、トランザクションIDを抽出し、当該トランザクションID(のトランザクション)が、新環境における分散台帳125のブロックチェーンデータに格納されているかを確認する(s46)。
また、移行スマコン113は、対象となるトランザクションを全て実行済みとなるまで、上述のs46を繰り返し(s47:No→s46)、処理を終了する。
<<フロー例:移行後検証処理>>
続いて、新旧環境間でのデータ移行後の検証処理について図14に基づき説明する。このフローは、分散台帳ノード100の検証スマコン115により実行され、新環境における、移行したすべてのトランザクションが旧環境のトランザクションと同一で同じ順番で書き込まれているかを検証することを目的としたフローである。
また、本フローは、ユーザの指示、または、移行スマコン113あるいは移行プログラム22からの指示を契機にスタートすることを想定できる。また、旧環境の全トランザクション (ブロック)の移行が完了した後に、自動でスタートする運用としても良い。或い
は、移行後の任意のタイミング(例:ユーザ指定の検証タイミング)で実行するとしても良い。
ここで、検証スマコン115は、新環境用の検証用データ格納処理を実行する(s50)。この処理の詳細は後述するが、基本的には、新環境における、移行した全てのトランザクションについてループすることになる。この結果、検証対象のトランザクションの情報が格納された検証テーブルが生成されるものとする。
新環境において移行前にトランザクションが存在していた場合に対応するために、移行を開始した最初のトランザクションのトランザクションIDを記録しておくなどしても良い。また、初期ブロックやスマコンデプロイ用のブロック等の、特殊ブロックがある場合は、検証対象から除くものとする。なお、トランザクションに含まれるトランザクションの型情報を用いるなどして、特殊ブロックかどうかは判断できる。
続いて、検証スマコン115は、検証テーブルにおいて新環境の検証用データとして登録されている、最初のトランザクションのTXIDを取得する(s51)。
また、検証スマコン115は、上述のs51で取得したTXIDと同一のTXIDを持つトランザクションが含まれるブロックを、旧環境における分散台帳125のブロックチェーンデータから取得する(s52)。
また、検証スマコン115は、s52で取得したブロックを指定して、旧環境用の検証用データ格納処理を呼び出す(s53)。この処理は、対象が旧環境となったのみで、処
理内容自体は、s50と同処理となる。
続いて、検証スマコン115は、上述のs50およびs53で得られた、検証用テーブル内の新環境用データと旧環境データで、トランザクション毎にTXIDの値とその登録順序、及びReadWriteSetの値を比較する(s54)。
上述の比較の結果、検証用テーブル内の新環境用データと旧環境データで上述の各値が同一でなかった場合(s55:No)、検証スマコン115は、移行失敗である旨と、移行失敗したトランザクションの情報を、例えば、クライアントノード200に出力してユーザに提示するとともに、移行再実行を提案し(s56)、処理を終了する。
なお、登録順序は異なっているものの、Read/Write Setがすべてのトランザクションで同一の場合、その旨を上述のようにユーザに提示し、当該ユーザがOKとの応答をクライアントノード200から返してくれば、移行成功と判定してもよい。
一方、上述の比較の結果、検証用テーブル内の新環境用データと旧環境データで上述の各値が同一であった場合(s55:Yes)、検証スマコン115は、移行成功の旨をクライアントノード200に出力してユーザに提示し(s57)、処理を終了する。
なお、ここでは、単独の組織の検証スマコン115において、単独に検証を実行する処理ステップを記載しており、検証スマコン115での比較の結果を、そのまま移行成否結果としているが、これに限定されない。
例えば、比較の結果を分散台帳125に格納することとし、各組織の検証スマコン115において、同一の比較の処理を実行し、シミュレーション、合意形成処理、トランザクション配信ノード300経由で分散台帳125への書き込み実施、と一連のブロックチェーンの処理を実行した上で、その結果を移行成否結果とするなどしても良い。この場合、処理自体は通常のブロックチェーンにおける書き込み処理と同様のため省略する。
<<検証用データ格納処理>>
続いて、上述のフローにおける検証用データ格納処理(s50、s53)の詳細について、図15に基づき説明する。
この場合、検証スマコン115は、分散台帳125におけるブロックチェーンデータから、本検証スマコン115がまだ読み込んでいない最初のブロックの情報、または指定されたブロックの情報を取得する(s60)。
また、検証スマコン115は、s60で取得したブロック内において、本検証スマコン115がまだ読み込んでいない、最初のトランザクションを読み込む(s61)。
また、検証スマコン115は、s61で読み込んだトランザクションから、TXIDとRead/Write Setの各値を抽出し、これらをトランザクション情報として、検証テーブルに格納する(s62)。この検証テーブルは、特に図示しないが、分散台帳100のメモリ103に一時的に生成するテーブルを想定する。
なお、移行成功条件としたいその他のトランザクション情報を抽出し、これを検証テーブルに格納しても良い。いずれにしても、抽出および格納の対象はこれに限定されない。
続いて、検証スマコン115は、s60で得ているブロック内に、本検証スマコン115が読み込んでいない次のトランザクションが存在するか判定する(s63)。
上述の判定の結果、未だ読み込んでいないトランザクションが存在する場合(s63:Yes)、検証スマコン115は、処理をs61に戻す。
他方、上述の判定の結果、未だ読み込んでいないトランザクションが存在しない場合(s63:No)、検証スマコン115は、本検証スマコン115がまだ読み込んでいない次のブロックが存在するか判定する(s64)。
上述の判定の結果、まだ読み込んでいないブロックが存在する場合(s64:Yes)、検証スマコン115は、処理をs60に戻す。
他方、上述の判定の結果、まだ読み込んでいないブロックが存在しない場合(s64:No)、検証スマコン115は、処理を終了する。
<<出力画面の例>>
図16に、本実施形態における移行実行画面1000の例を示す。この移行実行画面1000は、例えば、クライアントノード200を操作するユーザ向けに、移行元および移行先に関する情報を指定させるべく、管理サーバ20の移行プログラム22が配信し表示させる画面である。
ここで例示するように、移行元ブロックチェーンプラットフォームのCA(認証局)に予め登録されたユーザの証明書を取得するため、上記ユーザは本画面にて認証情報1001の入力を行うこととなる。
一方、管理サーバ20の移行プログラム22は、上述の認証情報1001に基づき移行元ブロックチェーンプラットフォームのCAから取得した証明書を(内部で)指定し、接続先情報1002で示した分散台帳ノードにアクセスする。これにより、必要な情報を取得、設定可能となる。こうした点は移行先情報1010についても同様である。
また、移行タスク名1003は、ユーザが移行処理を管理するために設定するタスク名である。勿論、通し番号など他の値で管理するとしても良い。
また、移行対象の指定UI1004は、「全て」と「範囲指定」のいずれかの形態をユーザが選択しうるインターフェイスである。例えば、ユーザが旧環境の全てのブロックを移行したい場合、「全て」を選択する。その場合、ブロック番号1番から順番に、全てのブロック情報(の中のすべてのトランザクション情報)が移行対象となる(但し、初期設定に関するものなどの特殊ブロックは除く)。
一方、ユーザが特定のトランザクションのみを移行したい場合、「範囲指定」を選択し、ブロック番号、トランザクション番号、タイムスタンプ、トランザクションIDのいずれかの範囲(一つのトランザクションでもよい)を、移行対象として指定することになる。ユーザがこうした指定の後、移行開始ボタン1006をクリックした場合、これを受けたクライアントノード200を介し、管理サーバ20の移行プログラム22が上述のフローに基づくデータ移行処理を開始する。
なお、本図での例のように、トランザクションリスト1005を表示し、選択できるようにする(選択するとFromとToが自動で入力されるなど)といった運用形態を想定できるが、これに限定されない。
また、キャンセルボタン1007がユーザにクリックされると、移行処理を停止する。
その場合、移行進捗画面(後述)において、当該移行タスクの移行状況は“失敗”となる。勿論、「失敗」なる表記は一例であって、他の形態を採用してもよい。いずれにしても、ユーザ操作により処理停止したことにより移行失敗となったことがわかる表現であれば良い。
また、移行開始からキャンセルまでの間に移行したトランザクションを、移行先において削除するために、キャンセルボタン押下により、移行先で初期設定実施コマンド(デー
タ共有分散台帳範囲の設定等)の再実行を行うなどしても良い。
図17に、移行進捗・移行検証実行画面1100の例を示す。この移行進捗・移行検証実行画面1100は、ユーザに向けて移行処理の実行状況と時刻の情報を提示すべく、管理サーバ20の移行プログラム22ないし分散台帳ノード100の移行スマコン113または検証スマコン115が、例えば、クライアントノード200に配信する画面である。
本画面においては、移行検証実行に関わる項目(この図における、検証対象、検証状況、検証タスク名、検証条件)はオプションであり、最小構成を、移行処理タスクに関する項目(移行タスク名、移行状況、開始時刻、終了時刻)とする。
本画面1100において、ユーザが移行タスク名1101を押下すると、管理サーバ20の移行プログラム22は、当該移行タスクの内容(移行したトランザクションのリストなど)を表示するものとする。ユーザは、このリストから、移行の成否検証の対象とする移行タスクを選択し、検証タスク名1102及び検証条件1103を指定の上、検証開始ボタン1104を押下する。管理サーバ20の移行プログラム22ないし分散台帳ノード100の移行スマコン113または検証スマコン115は、これを受けて、上述の各フローのうち必要なものを実行する。
なお、検証対象となるのは、移行が完了しているタスクのみとなる。よって、移行状況が進行中となっている移行タスクについては、検証対象として選択できない例を示している。また、過去に検証済みかどうかを確認可能とするため、検証処理の実行状況を検証状況カラム1105において検証タスク名として参照可能とする例を示している。
また、検証条件1103として、トランザクションの順序が同一である、及びブロック内のトランザクション構成が同一である、という条件を示しているが、条件としてそのほかのものを採用しても良く、これに限定されない。
上述の、ブロック内のトランザクション構成が同一である、という条件では、各ブロック内に含まれるトランザクションが、移行元と移行先で同一かどうかも検証する。これは、同じ順序でトランザクションが書き込まれる場合でも、片方では同じブロック内にトランザクションが入り、もう片方では別のブロックにトランザクションが分かれてしまう場合も存在するためである。勿論、どのレベルまで同一を求めるかはユーザ次第で、限定はしない。
図18に、移行検証結果画面1200の例を示す。この移行検証結果画面1200は、ユーザに向けた移行検証結果を提示すべく、管理サーバ20の移行プログラム22ないし分散台帳ノード100の検証スマコン115が、例えば、クライアントノード200に配信する画面である。
この移行検証結果画面1200は、検証タスクの情報1210、および検証結果詳細の情報1220とから構成される。
このうち検証タスクの情報1210は、ユーザが検証処理タスクを管理するための画面であり、検証処理の実行状況と時刻が表示される。
また、検証結果詳細の情報1220は、ユーザが検証処理タスクの実行詳細を管理するための画面であり、上記の検証タスクの情報1210で示すリストにおいてタスクが選択された場合に、その検証タスクの内容について、トランザクション毎に表示する。
ここでは、ブロック番号、トランザクション番号、トランザクションIDを比較する例を示しているが、ブロックまたはトランザクションに含まれる情報であればこれに限定されない。
なお、移行実行画面1000、移行進捗・移行検証実行画面1100、移行検証結果画面1200の3つの画面を例示したが、同様の画面要素が含まれていればよく、これに限定されない。例えば、全てを同じ画面内で示しても良い。
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
こうした本実施形態によれば、新旧PaaS間でのクライアントによるデータ移行に際し、実行対象のTXが外部システムに連携するものであっても、旧環境での過去の状態を再現して好適な移行を実現可能となる。
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態におけるデータ移行方法において、前記分散台帳ノードが、前記取得したトランザクション情報から、前記所定処理結果のデータとして、外部システム由来のデータ又は特定処理の実行結果のデータを抽出する、としてもよい。
これによれば、新旧PaaS間でのクライアントによるデータ移行に際し、実行対象のTXが外部システムに連携するケースだけでなく、例えば自システムにおける過去の状態での実行結果を移行スマコンで書き込むケースにも対応し、その場合、そうした書き込みを行うだけで、移行元の環境を移行先に再現可能となる。
また、本実施形態におけるデータ移行方法において、前記管理用サーバが、前記取得したトランザクション情報が示す発行者IDに基づき、トランザクション発行者の所属組織を特定し、当該所属組織が、前記分散台帳ノードの所属組織である場合に、前記分散台帳ノードに対する前記移行トランザクションの送信を実行する、としてもよい。
これによれば、他組織が発行主体となっているトランザクションに関しては、自組織側で再現実行することなく、いわば組織間でデータ移行の横振りを図ることにつなげられる。その場合、他組織でのトランザクション実行の結果のみを得て、全体として処理効率を良好なものとすることになりうる。ひいては、新旧PaaS間でのクライアントによるデータ移行に際し、実行対象のTXが外部システムに連携するものであっても、旧環境での過去の状態を再現してより好適な移行を実現可能となる。
また、本実施形態におけるデータ移行方法において、前記管理用サーバが、記憶装置において、ブロックチェーンプラットフォームを利用する各組織の管理用サーバに関する情報を保持し、前記特定した所属組織が、前記分散台帳ノードの所属組織ではない他組織である場合に、前記他組織の管理用サーバの情報を前記記憶装置にて参照し、当該管理用サーバに宛てて、前記取得したトランザクション情報を含む移行実施要求を送信する処理と、前記他組織の管理用サーバから、当該他組織の分散台帳ノードにて実行された移行トラ
ンザクションの結果を取得する処理、をさらに実行する、としてもよい。
これによれば、他組織が発行主体となっているトランザクションに関しては、自組織側で再現実行することなく、いわば組織間でデータ移行の横振りを図ることにつなげられる。その場合、他組織でのトランザクション実行の結果のみを得て、全体として処理効率を良好なものとすることになりうる。ひいては、新旧PaaS間でのクライアントによるデータ移行に際し、実行対象のTXが外部システムに連携するものであっても、旧環境での過去の状態を再現してより好適な移行を実現可能となる。
また、本実施形態におけるデータ移行方法において、前記分散台帳ノードが、前記データ移行元の分散台帳から取得したトランザクション情報が示す発行者IDに基づき、トランザクション発行者の所属組織を特定し、当該所属組織が、本分散台帳ノードの所属組織である場合に、前記外部システム由来のデータを抽出し、当該データを引数として前記トランザクション情報に基づくトランザクションを実行する処理以降の処理を実行する、としてもよい。
これによれば、トランザクションの発行組織に関して、管理サーバ側での検証とは別に、分散台帳ノード側でも検証可能となり、トランザクション改竄等の不正検知をさらに精度良く行うことにつながる。ひいては、新旧PaaS間でのクライアントによるデータ移行に際し、実行対象のTXが外部システムに連携するものであっても、旧環境での過去の状態を再現してより好適な移行を実現可能となる。
また、本実施形態におけるデータ移行方法において、前記分散台帳ノードが、前記データ移行元の分散台帳から取得したトランザクション情報が示す発行者IDに基づき、トランザクション発行者の所属組織を特定し、当該所属組織が、本分散台帳ノードの所属組織である場合に、前記トランザクションIDに基づき、前記データ移行元のブロックチェーンプラットフォームの分散台帳からブロックの情報を取得する処理と、前記トランザクションIDが示すトランザクションよりも前に、前記データ移行元のブロックチェーンプラットフォームで実行されたトランザクションの情報を、前記ブロックから抽出する処理をさらに実行し、前記抽出したトランザクションの情報からトランザクションIDを抽出し、前記データ移行先のブロックチェーンプラットフォームの分散台帳に、当該トランザクションIDのトランザクションが格納されている場合、前記外部システム由来のデータを抽出し、当該データを引数として前記トランザクション情報に基づくトランザクションを実行する処理以降の処理を実行する、としてもよい。
これによれば、分散台帳のブロックチェーンにおけるトランザクション順序の正しさについても検証可能となる。ひいては、新旧PaaS間でのクライアントによるデータ移行に際し、実行対象のTXが外部システムに連携するものであっても、旧環境での過去の状態を再現してより好適な移行を実現可能となる。
また、本実施形態におけるデータ移行方法において、 前記分散台帳ノードが、前記デ
ータ移行先の分散台帳が含む、前記データ移行元から移行したトランザクションのトランザクションIDを取得し、当該トランザクションIDを含むブロックを、前記データ移行元の分散台帳から取得する処理と、前記取得したブロックにおけるトランザクションから、トランザクションIDおよび外部システム由来のデータを抽出し、当該トランザクションIDおよび当該外部システム由来のデータと、前記データ移行先の分散台帳におけるトランザクションIDおよび外部システム由来のデータとが一致するか検証する処理をさらに実行し、前記検証の結果、前記データ移行元および前記データ移行先とで、前記トランザクションIDおよび前記外部システム由来のデータが一致する場合、データ移行成功と判定する、としてもよい。
これによれば、新環境における移行したすべてのトランザクションが旧環境のトランザクションと同一、かつ同じ順番で書き込まれているか検証可能となる。ひいては、新旧PaaS間でのクライアントによるデータ移行に際し、実行対象のTXが外部システムに連携するものであっても、旧環境での過去の状態を再現してより好適な移行を実現可能となる。
また、本実施形態におけるデータ移行方法において、前記分散台帳ノードが、前記検証の状況および前記判定の結果の少なくともいずれかについて、前記移行先のブロックチェーンプラットフォームにおけるクライアントノードに出力する、としてもよい。
これによれば、新旧のブロックチェーンプラットフォーム間でのデータ移行の状況と結果について、ユーザ側で明確かつ容易に認識可能となる。ひいては、新旧PaaS間でのクライアントによるデータ移行に際し、実行対象のTXが外部システムに連携するものであっても、旧環境での過去の状態を再現してより好適な移行を実現可能となる。
1 ネットワーク
5 ブロックチェーンプラットフォーム
6 業務サーバ
61 業務プログラム
10 データ移行システム
20 管理サーバ
21 記憶装置
22 移行プログラム
26 移行プログラムテーブル
100 分散台帳ノード
101 記憶装置
102 プログラム
103 メモリ
104 演算装置
105 通信装置
110 コンセンサス管理プログラム
111 スマートコントラクト実行管理プログラム
112 トランザクション実行管理プログラム
113 移行スマコン
114 Readスマコン
115 検証スマコン
125 分散台帳
126 ブロックチェーンデータ
127 共有情報テーブル
200 クライアントノード
210 トランザクション発行部
220 業務アプリ
300 トランザクション配信ノード
301 記憶装置
302 プログラム
303 メモリ
304 演算装置
305 通信装置
310 トランザクション配信部

Claims (10)

  1. ブロックチェーンプラットフォーム間でのデータ移行を担う管理用サーバが、
    データ移行元のブロックチェーンプラットフォームの分散台帳からトランザクション情報を取得する処理と、データ移行先のブロックチェーンプラットフォームにおける分散台帳ノードに対し、前記取得したトランザクション情報が示すトランザクションIDを指定した移行トランザクションを送信する処理を実行し、
    前記分散台帳ノードが、
    前記移行トランザクションを受信し、前記トランザクションIDに基づき、前記データ移行元の分散台帳のトランザクション情報を取得する処理と、前記取得したトランザクション情報から所定処理結果のデータを抽出し、当該データを引数として前記トランザクション情報に基づくトランザクションを実行する処理と、前記実行したトランザクションの結果を、前記データ移行先のトランザクション配信ノードに送信する処理を実行する、
    ことを特徴とするデータ移行方法。
  2. 前記分散台帳ノードが、
    前記取得したトランザクション情報から、前記所定処理結果のデータとして、外部システム由来のデータ又は過去の状態での実行結果のデータを抽出する、
    ことを特徴とする請求項1に記載のデータ移行方法。
  3. 前記管理用サーバが、
    前記取得したトランザクション情報が示す発行者IDに基づき、トランザクション発行者の所属組織を特定し、当該所属組織が、前記分散台帳ノードの所属組織である場合に、前記分散台帳ノードに対する前記移行トランザクションの送信を実行する、
    ことを特徴とする請求項1に記載のデータ移行方法。
  4. 前記管理用サーバが、
    記憶装置において、ブロックチェーンプラットフォームを利用する各組織の管理用サーバに関する情報を保持し、
    前記特定した所属組織が、前記分散台帳ノードの所属組織ではない他組織である場合に、前記他組織の管理用サーバの情報を前記記憶装置にて参照し、当該管理用サーバに宛てて、前記取得したトランザクション情報を含む移行実施要求を送信する処理と、前記他組織の管理用サーバから、当該他組織の分散台帳ノードにて実行された移行トランザクションの結果を取得する処理、をさらに実行する、
    ことを特徴とする請求項3に記載のデータ移行方法。
  5. 前記分散台帳ノードが、
    前記データ移行元の分散台帳から取得したトランザクション情報が示す発行者IDに基づき、トランザクション発行者の所属組織を特定し、当該所属組織が、本分散台帳ノードの所属組織である場合に、前記所定処理結果のデータを抽出し、当該データを引数として前記トランザクション情報に基づくトランザクションを実行する処理以降の処理を実行する、
    ことを特徴とする請求項1に記載のデータ移行方法。
  6. 前記分散台帳ノードが、
    前記データ移行元の分散台帳から取得したトランザクション情報が示す発行者IDに基づき、トランザクション発行者の所属組織を特定し、当該所属組織が、本分散台帳ノードの所属組織である場合に、前記トランザクションIDに基づき、前記データ移行元のブロックチェーンプラットフォームの分散台帳からブロックの情報を取得する処理と、
    前記トランザクションIDが示すトランザクションよりも前に、前記データ移行元のブ
    ロックチェーンプラットフォームで実行されたトランザクションの情報を、前記ブロックから抽出する処理をさらに実行し、
    前記抽出したトランザクションの情報からトランザクションIDを抽出し、前記データ移行先のブロックチェーンプラットフォームの分散台帳に、当該トランザクションIDのトランザクションが格納されている場合、前記所定処理結果のデータを抽出し、当該データを引数として前記トランザクション情報に基づくトランザクションを実行する処理以降の処理を実行する、
    ことを特徴とする請求項1に記載のデータ移行方法。
  7. 前記分散台帳ノードが、
    前記データ移行先の分散台帳が含む、前記データ移行元から移行したトランザクションのトランザクションIDを取得し、当該トランザクションIDを含むブロックを、前記データ移行元の分散台帳から取得する処理と、前記取得したブロックにおけるトランザクションから、トランザクションIDおよび所定処理結果のデータを抽出し、当該トランザクションIDおよび当該所定処理結果のデータと、前記データ移行先の分散台帳におけるトランザクションIDおよび所定処理結果のデータとが一致するか検証する処理をさらに実行し、
    前記検証の結果、前記データ移行元および前記データ移行先とで、前記トランザクションIDおよび前記所定処理結果のデータが一致する場合、データ移行成功と判定する、
    ことを特徴とする請求項1に記載のデータ移行方法。
  8. 前記分散台帳ノードが、
    前記検証の状況および前記判定の結果の少なくともいずれかについて、前記移行先のブロックチェーンプラットフォームにおけるクライアントノードに出力する、
    ことを特徴とする請求項7に記載のデータ移行方法。
  9. ブロックチェーンプラットフォーム間でのデータ移行を担う管理用サーバであって、
    ブロックチェーンプラットフォームの各装置とネットワークを介して通信する通信装置と、データ移行元のブロックチェーンプラットフォームの分散台帳からトランザクション情報を取得し、データ移行先のブロックチェーンプラットフォームにおける分散台帳ノードに対し、前記取得したトランザクション情報が示すトランザクションIDを指定した移行トランザクションを送信する演算装置を備える管理用サーバと、
    ブロックチェーンプラットフォームの各装置と通信する通信装置と、分散台帳を保持する記憶装置と、前記移行トランザクションを前記管理用サーバから受信し、前記トランザクションIDに基づき、前記データ移行元の分散台帳のトランザクション情報を取得し、前記取得したトランザクション情報から所定処理結果のデータを抽出し、当該データを引数として前記トランザクション情報に基づくトランザクションを実行し、前記実行したトランザクションの結果を、前記データ移行先のトランザクション配信ノードに送信する演算装置を備える分散台帳ノードと、
    を含むことを特徴とするデータ移行システム。
  10. ブロックチェーンプラットフォームの各装置と通信する通信装置と、
    分散台帳を保持する記憶装置と、
    ブロックチェーンプラットフォーム間でのデータ移行を担う管理用サーバが送信してくる移行トランザクションを受信し、当該移行トランザクションが示す、データ移行元のブロックチェーンプラットフォームの分散台帳から取得されたトランザクションIDに基づき、前記データ移行元の分散台帳のトランザクション情報を取得し、前記取得したトランザクション情報から所定処理結果のデータを抽出し、当該データを引数として前記トランザクション情報に基づくトランザクションを実行し、前記実行したトランザクションの結果を、データ移行先のトランザクション配信ノードに送信する演算装置と、
    を備えることを特徴とするノード。
JP2020135623A 2020-08-11 2020-08-11 データ移行方法、データ移行システム、およびノード Active JP7421443B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020135623A JP7421443B2 (ja) 2020-08-11 2020-08-11 データ移行方法、データ移行システム、およびノード
US17/185,350 US11573975B2 (en) 2020-08-11 2021-02-25 Data migration method, data migration system, and node

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020135623A JP7421443B2 (ja) 2020-08-11 2020-08-11 データ移行方法、データ移行システム、およびノード

Publications (2)

Publication Number Publication Date
JP2022032116A JP2022032116A (ja) 2022-02-25
JP7421443B2 true JP7421443B2 (ja) 2024-01-24

Family

ID=80222896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020135623A Active JP7421443B2 (ja) 2020-08-11 2020-08-11 データ移行方法、データ移行システム、およびノード

Country Status (2)

Country Link
US (1) US11573975B2 (ja)
JP (1) JP7421443B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113364769B (zh) * 2021-06-03 2022-04-15 浙江大学 一种区块链网络中的隐蔽信道构造方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018156612A (ja) 2017-03-21 2018-10-04 株式会社大和総研ビジネス・イノベーション 取引記録システムおよびプログラム
WO2019186747A1 (ja) 2018-03-28 2019-10-03 日本電気株式会社 仮想ブロックチェーンシステム、データ管理方法及びプログラム
CN111309711A (zh) 2020-03-13 2020-06-19 财付通支付科技有限公司 跨区块链的数据迁移方法、装置、设备及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4227033B2 (ja) 2004-01-20 2009-02-18 富士通株式会社 データベース統合参照装置、データベース統合参照方法およびデータベース統合参照プログラム
US10445728B2 (en) * 2015-12-29 2019-10-15 Ariba, Inc. Computer implemented systems and methods for secure data transactions across disparate computing networks
WO2017218984A1 (en) * 2016-06-16 2017-12-21 The Bank Of New York Mellon Ensuring data integrity of executed transactions
US11240035B2 (en) * 2017-05-05 2022-02-01 Jeff STOLLMAN Systems and methods for extending the utility of blockchains through use of related child blockchains
CN108829350B (zh) * 2018-05-31 2020-02-21 阿里巴巴集团控股有限公司 基于区块链的数据迁移方法和装置
US10776781B2 (en) * 2018-08-01 2020-09-15 Mff Llc Systems and methods for facilitating transactions using a digital currency
US10860259B1 (en) * 2019-07-17 2020-12-08 Tyson York Winarski Multi-tiered storage system for blockchain

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018156612A (ja) 2017-03-21 2018-10-04 株式会社大和総研ビジネス・イノベーション 取引記録システムおよびプログラム
WO2019186747A1 (ja) 2018-03-28 2019-10-03 日本電気株式会社 仮想ブロックチェーンシステム、データ管理方法及びプログラム
CN111309711A (zh) 2020-03-13 2020-06-19 财付通支付科技有限公司 跨区块链的数据迁移方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US20220050852A1 (en) 2022-02-17
US11573975B2 (en) 2023-02-07
JP2022032116A (ja) 2022-02-25

Similar Documents

Publication Publication Date Title
US11281457B2 (en) Deployment of infrastructure in pipelines
CN110620810B (zh) 在区块链上的连续资产转移的非链接所有权
CA3038444C (en) Method for sso service using pki based on blockchain networks, and device and server using the same
CN110597925B (zh) 一种基于区块链的跨链数据处理方法及装置
Ellervee et al. A Comprehensive Reference Model for Blockchain-based Distributed Ledger Technology.
KR20210003234A (ko) 분할된 블록체인 네트워크에서 블록체인의 블록을 유지하는 것
CN112835612A (zh) 一种基于区块链的电子文档版本管理方法及装置
US20230090296A1 (en) Transaction verification of a transaction based on a blockchain network
US20240232223A1 (en) Data synchronization method and system based on blockchain, and related device
US11151122B2 (en) Distributed ledger data linkage management
TW202135504A (zh) 平台服務驗證技術
JP7146093B2 (ja) ブロックチェーンでノード間のブロック及び電子文書を共有及び検証する方法
TW202139127A (zh) 用於與區塊鏈相關聯之服務平台之運算服務
US12093349B2 (en) Method for distributing certificate of right to use digital content, and computer program stored in medium in order to carry out method
JP2021189638A (ja) 移行支援システム、移行支援方法、およびノード
KR102118935B1 (ko) 블록체인 네트워크를 이용하여 사용자의 아이덴티티를 관리하는 방법 및 서버, 그리고, 블록체인 네트워크 기반의 사용자 아이덴티티를 이용하여 사용자를 인증하는 방법 및 단말
JP7181455B2 (ja) ブロックチェーンシステム、承認端末、利用者端末、履歴管理方法、および、履歴管理プログラム
TW202139669A (zh) 用於與區塊鏈相關聯之事件序列之事件串流
KR102118947B1 (ko) 블록체인 네트워크를 이용하여 사용자의 아이덴티티를 관리하는 방법 및 서버, 그리고, 블록체인 네트워크 기반의 사용자 아이덴티티를 이용하여 사용자를 인증하는 방법 및 단말
JP7421443B2 (ja) データ移行方法、データ移行システム、およびノード
KR20220020845A (ko) 사용자 단말기, 디지털 컨텐츠의 이용 권리 증서를 유통시키는 방법, 및 상기 방법을 실행하기 위하여 매체에 저장된 컴퓨터 프로그램
US11252157B1 (en) Permission management for electronic resources
KR20200083178A (ko) 블록체인 네트워크를 이용하여 사용자의 아이덴티티를 관리하는 방법 및 서버, 그리고, 블록체인 네트워크 기반의 사용자 아이덴티티를 이용하여 사용자를 인증하는 방법 및 단말
CN110772785A (zh) 游戏存档的共享方法、装置及电子设备
KR102118921B1 (ko) 블록체인 네트워크를 이용하여 사용자의 아이덴티티를 관리하는 방법 및 서버, 그리고, 블록체인 네트워크 기반의 사용자 아이덴티티를 이용하여 사용자를 인증하는 방법 및 단말

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231215

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240112

R150 Certificate of patent or registration of utility model

Ref document number: 7421443

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150