(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-14
(45)【発行日】2023-12-22
(54)【発明の名称】サーバ、データ処理方法、計算機システム及び計算機
(51)【国際特許分類】
G06F 21/60 20130101AFI20231215BHJP
G06Q 20/38 20120101ALI20231215BHJP
H04L 9/32 20060101ALI20231215BHJP
【FI】
G06F21/60
G06Q20/38 310
H04L9/32 200Z
(21)【出願番号】P 2019226049
(22)【出願日】2019-12-16
【審査請求日】2022-07-08
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】鬼頭 大介
(72)【発明者】
【氏名】神 祐介
【審査官】児玉 崇晶
(56)【参考文献】
【文献】特開2019-204986(JP,A)
【文献】国際公開第2019/072297(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/60
G06Q 20/38
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
プロセッサと、メモリと、第1の計算機に接続されるインタフェースと、を有するサーバであって、
処理要求を受け付けて、前記処理要求に前記第1の計算機が所属する第1のブロックチェーンに対する処理と、前記第1の計算機と連携する第2の計算機が所属する第2のブロックチェーンに対する処理を示す連携要求が含まれているか否かを判定し、前記連携要求が含まれている場合には、前記連携要求の秘匿化が必要か否かを判定する連携部と、
前記判定の結果に基づいて、秘匿化が必要な連携要求に秘匿化を施す秘匿部と、を有し、
前記連携部は、
前記判定の結果に応じて前記秘匿部で秘匿化が施された連携要求を含む処理実行要求を前記第1の計算機に送信することを特徴とするサーバ。
【請求項2】
請求項1に記載のサーバであって、
前記秘匿化の内容を予め設定した秘匿管理情報を、さらに有し、
前記秘匿部は、
前記秘匿管理情報に基づいて、前記連携要求を秘匿化する内容を決定することを特徴とするサーバ。
【請求項3】
請求項2に記載のサーバであって、
前記連携部は、
前記連携要求に秘匿化が必要と判定した場合には、前記秘匿管理情報を参照して、前記連携要求に対する応答に対して秘匿化の要否を示す情報を前記連携要求に付加して送信することを特徴とするサーバ。
【請求項4】
第1のブロックチェーンに所属する第1の計算機と、第2のブロックチェーンに所属する第2の計算機と、ネットワークを介して前記第1の計算機及び第2の計算機に接続されたサーバと、を有する計算機システムで処理を連携するデータ処理方法であって、
前記サーバが、処理要求を受け付ける第1のステップと、
前記サーバが、前記受け付けた処理要求に、前記第1の計算機が所属する第1のブロックチェーンに対する処理と、前記第1の計算機と連携する第2の計算機の第2のブロックチェーンに対する処理を示す連携要求が含まれているか否かを判定する第2のステップと、
前記サーバが、前記処理要求に前記連携要求が含まれている場合には、前記連携要求の秘匿化が必要か否かを判定する第3のステップと、
前記サーバが、前記判定の結果に基づいて、秘匿化が必要な場合には前記連携要求に秘匿化を施す第4のステップと、
前記サーバが、前記判定の結果に応じて秘匿化が施された連携要求を含む処理実行要求を前記第1の計算機に送信する第5のステップと、を含むことを特徴とするデータ処理方法。
【請求項5】
請求項4に記載のデータ処理方法であって、
前記サーバは、
前記秘匿化の内容を予め設定した秘匿管理情報を、さらに有し、
前記第4のステップは、
前記秘匿管理情報に基づいて、前記連携要求を秘匿化する内容を決定することを特徴とするデータ処理方法。
【請求項6】
請求項5に記載のデータ処理方法であって、
前記第5のステップは、
前記連携要求に秘匿化が必要と判定した場合には、前記秘匿管理情報を参照して、前記連携要求の応答に対して秘匿化の要否を示す情報を前記連携要求に付加して送信することを特徴とするデータ処理方法。
【請求項7】
第1のブロックチェーンに所属する第1の計算機と、第2のブロックチェーンに所属する第2の計算機と、ネットワークを介して前記第1の計算機及び第2の計算機に接続されたサーバと、を有して処理を連携する計算機システムであって、
前記サーバは、
処理要求を受け付けて、前記処理要求に前記第1の計算機が所属する第1のブロックチェーンに対する処理と、前記第1の計算機と連携する第2の計算機が所属する第2のブロックチェーンに対する処理を示す連携要求が含まれているか否かを判定し、前記連携要求が含まれている場合には、前記連携要求の秘匿化が必要か否かを判定する連携部と、
前記判定の結果に基づいて、秘匿化が必要な連携要求に秘匿化を施す秘匿部と、を有し、
前記連携部は、
前記判定の結果に応じて前記秘匿部で秘匿化が施された連携要求を含む処理要求を処理実行要求として前記第1の計算機に送信することを特徴とする計算機システム。
【請求項8】
請求項7に記載の計算機システムであって、
前記サーバは、
前記秘匿化の内容を予め設定した秘匿管理情報を、さらに有し、
前記連携部は、
前記秘匿管理情報に基づいて、前記連携要求を秘匿化する内容を決定することを特徴とする計算機システム。
【請求項9】
請求項8に記載の計算機システムであって、
前記連携部は、
前記連携要求に秘匿化が必要と判定した場合には、前記秘匿管理情報を参照して、前記連携要求に対する応答に対して秘匿化の要否を示す情報を前記連携要求に付加して送信することを特徴とする計算機システム。
【請求項10】
請求項7に記載の計算機システムであって、
前記第1の計算機は、
前記サーバから受信した処理実行要求を受信して、前記処理実行要求に含まれる前記処理要求を処理し、前記処理実行要求に前記連携要求が含まれる場合には、前記連携要求を前記第2の計算機へ送信し、
前記第2の計算機は、
前記連携要求を受け付けて、当該連携要求が秘匿化されている場合には、前記連携要求を復元した後に当該連携要求を処理して、前記連携要求の処理結果を前記第1の計算機へ応答し、
前記第1の計算機は、
前記連携要求に対する応答を受信すると、前記処理要求の処理結果と、連携要求に対する処理結果と、を前記サーバに応答することを特徴とする計算機システム。
【請求項11】
プロセッサと、メモリと、第1のブロックチェーンに所属する第1の計算機に接続されるインタフェースと、を有する計算機であって、
当該計算機が所属する第2のブロックチェーンに対する処理を含む連携要求を受け付けて、当該連携要求が秘匿化されているか否かを判定する連携部と、
前記連携要求が秘匿化されている場合には、前記連携要求を復元する復元部と、
前記復元された連携要求を処理する管理部と、を有し、
前記連携部は、前記処理の結果を応答し、
前記連携要求は、前記第1のブロックチェーンに対する処理と連携する前記第2のブロックチェーンに対する処理を含むことを特徴とする計算機。
【請求項12】
請求項11に記載の計算機であって、
応答内容の秘匿の要否を予め設定した秘匿レベル管理情報と、
前記管理部の処理結果を、前記秘匿レベル管理情報に基づいて秘匿化する秘匿化部と、をさらに有し、
前記連携部は、
前記秘匿化された処理結果を応答することを特徴とする計算機。
【請求項13】
請求項12に記載の計算機であって、
前記秘匿化部は、
前記秘匿レベル管理情報に基づいて前記処理結果を秘匿化する内容を決定することを特徴とする計算機。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、様々なデータを複数の機関で共有するブロックチェーンに関する。
【背景技術】
【0002】
ブロックチェーンは、データの改ざんが困難で、仲介者無しの直接取引を可能にする特性を持っており、近年仮想通貨での利用以外に、企業活動の基盤としての応用に注目が集まっている。
【0003】
広くデータを公開するパブリックなブロックチェーンに加えて、同じコミュニティ内のメンバ間でのみデータを共有するプライベートなブロックチェーンが存在する。ブロックチェーンは、例えば、サプライチェーンでの商品の受発注情報の共有など、商取引管理に使用するケースや、企業やユーザ間での決済情報の共有など金融関連の取引管理に使用するケースなどが見込まれている。
【0004】
このように、用途によって様々なブロックチェーンが構築されていく中で、各ブロックチェーンに閉じて企業活動が回っていくケースも考えられるが、ブロックチェーンと既存のシステムをつないでいく、或いはこれらの様々なブロックチェーンをつないでいくことで、より広く企業活動の効率化を図れる可能性がある。
【0005】
ブロックチェーンをつないでいくにあたっては、データの共有範囲について留意する必要がある。例えば、商取引情報を管理するブロックチェーンを既存のシステムや、金融取引情報を管理する別のブロックチェーンと連携させる場合、商取引情報は商取引用のブロックチェーンで共有してもよいが、商取引に際しどのような方法で決済したか(独自のコインで決済、仮想通貨で決済等)などの決済の詳細情報は、決済の実行や対象メンバなど、関係当事者間のみでの共有としたいことが考えられる。
【0006】
ブロックチェーンを用いたシステムでの連携に関する公知技術として、特許文献1が知られている。特許文献1によれば、コンテンツ管理のブロックチェーンと、支払いのブロックチェーンを連携させて決済を行う。
【0007】
利用者は支払いトランザクションを内包するコンテンツ要求トランザクションを一方のコンテンツ管理ブロックチェーンに送り、当該コンテンツの権利者は、コンテンツ管理のブロックチェーンに記録されたデータから、上記内包された支払いトランザクションを取り出してもう一方の支払い用ブロックチェーンに送り、決済を行う。
【先行技術文献】
【特許文献】
【0008】
【発明の概要】
【発明が解決しようとする課題】
【0009】
上記公知技術では、商品だけでなく支払いに関するトランザクションも最初の一方のコンテンツ管理用ブロックチェーンに送られて記録されるため、複数のコンテンツ権利者がコンテンツ管理用ブロックチェーンに存在した場合に、自身のコンテンツ支払い情報が、自身とは直接関係しない他のコンテンツ権利者にも漏れてしまう、という問題があった。
【0010】
以上を踏まえ、本発明は、ブロックチェーンを連携させるにあたり、連携元のブロックチェーンのメンバ間で情報を共有しつつ、当該ブロックチェーンとは関係しない他のブロックチェーンやシステムの連携に関する情報は、関係当事者間のみでの共有にとどめる方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明は、プロセッサと、メモリと、第1の計算機に接続されるインタフェースと、を有するサーバであって、処理要求を受け付けて、前記処理要求に前記第1の計算機が所属する第1のブロックチェーンに対する処理と、前記第1の計算機と連携する第2の計算機が所属する第2のブロックチェーンに対する処理を示す連携要求が含まれているか否かを判定し、前記連携要求が含まれている場合には、前記連携要求の秘匿化が必要か否かを判定する連携部と、前記判定の結果に基づいて、秘匿化が必要な連携要求に秘匿化を施す秘匿部と、を有し、前記連携部は、前記判定の結果に応じて前記秘匿部で秘匿化が施された連携要求を含む処理実行要求を前記第1の計算機に送信する。
【発明の効果】
【0012】
本発明の一実施形態によれば、ブロックチェーンを連携させるにあたり、連携元の第1のブロックチェーンに所属する第1の計算機間でデータを共有し、第2のブロックチェーンで管理する情報など、連携元の第1のブロックチェーンには関係しない又は開示したくない情報については、秘匿化によって関係当事者間のみでの共有が可能となる。
【0013】
本明細書において開示される主題の、少なくとも一つの実施の詳細は、添付されている図面と以下の記述の中で述べられる。開示される主題のその他の特徴、態様、効果は、以下の開示、図面、請求項により明らかにされる。
【図面の簡単な説明】
【0014】
【
図1】本発明の実施例を示し、計算機システムのハードウェア及びソフトウェア構成の一例を示すブロック図である。
【
図2】本発明の実施例を示し、ブロックチェーンに係る処理を実行するプログラムの管理情報の一例を示す説明図である。
【
図3】本発明の実施例を示し、連携先情報の一例を示す説明図である。
【
図4A】本発明の実施例を示し、ブロックチェーンの台帳に記録される商取引情報の一例を示す説明図である。
【
図4B】本発明の実施例を示し、ブロックチェーンの台帳に記録される支払い情報の一例を示す説明図である。
【
図4C】本発明の実施例を示し、ブロックチェーンの台帳に追加されるトランザクション情報の一例を示す説明図である。
【
図5A】本発明の実施例を示し、秘匿管理情報の一例を示す説明図である。
【
図5B】本発明の実施例を示し、秘匿管理情報を構成する各関数の秘匿レベル情報の一例を示す説明図である。
【
図5C】本発明の実施例を示し、各関数で呼び出されるプログラムに適用する秘匿対象情報の一例を示す説明図である。
【
図6A】本発明の実施例の変形例を示し、秘匿制御情報の適用先情報の一例を示す説明図である。
【
図6B】本発明の実施例の変形例を示し、秘匿制御の定義の一例を示す説明図である。
【
図7】本発明の実施例を示し、連携有無の判定及び連携用の秘匿処理の一例を示すフローチャートである。
【
図8】本発明の実施例を示し、連携有無の判定及び連携要求の処理の一例を示すフローチャートである。
【
図9】本発明の実施例を示し、秘匿の有無の判定及び連携の処理の一例を示すフローチャートである。
【
図10】本発明の実施例の変形例を示し、秘匿の有無の判定及び連携についての処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態を添付図面に基づいて説明する。尚、以下に説明する実施の形態は一例であって、本発明はこれに限定されるものではない。
【0016】
【0017】
図1は、本発明の実施例の計算機システムのハードウェア及びソフトウェア構成を示すブロック図である。
【0018】
計算機システムは、連携元のブロックチェーンBC#1に参加する1以上の計算機101a~101cと、連携先のブロックチェーンBC#2に参加する1以上の計算機121a~121cと、1以上のクライアント端末141と、クライアント端末141からの処理を受け付ける1以上のサーバ161と、1以上のブロックチェーン認証機関のサーバ(図中BC認証機関)151を含む。
【0019】
尚、以下の説明では、計算機101a~101cを個々に特定しない場合には、添え字を省略した符号「101」を使用する。他の構成要素の符号についても同様である。また、計算機101b、101cは計算機101aと同様の構成であり、計算機121b、121cは計算機121aと同様の構成である。
【0020】
また、本実施例では、ブロックチェーンBC#1では、物品の購入に関する台帳111が計算機101で共有され、ブロックチェーンBC#2では、金銭の支払いに関する台帳131が計算機121で共有される例を示すが、台帳111、131で管理する情報について限定されるものではない。
【0021】
尚、BC認証機関のサーバ151とは、それぞれ独立して存在する複数のブロックチェーンBC#1、BC#2について、それぞれを識別可能にするためのIDや証明書等の情報を管理するサーバ151である。例えば、ブロックチェーンBC#2に所属する連携先の計算機121が、連携元のブロックチェーンBC#1の計算機101を識別する際にサーバ151に問い合わせる、またはサーバが発行する証明書等を利用して正当なメンバであることを認証することを意図したものである。
【0022】
計算機101、121、サーバ151、161、クライアント端末141は、それぞれI/F104、124、164、144を介してネットワーク10に接続される。
【0023】
計算機101は、CPU103と、メモリ102と、I/F104及びストレージ装置11を含む。CPU103は、I/F104を介してサーバ161等の外部機器からの操作要求の受信及び当該操作の実行や、前記外部機器に対してデータ処理結果の送信などを行う。
【0024】
メモリ102は連携部105、トランザクション管理部106、合意形成部107、プログラム管理情報108、連携先情報109を格納し、CPU103、I/F104と接続されている。ストレージ装置11は、ブロックチェーンBC#1の台帳111を格納する。
【0025】
連携部105、トランザクション管理部106、合意形成部107は、プログラムとしてメモリ102にロードされて、CPU103によって実行される。CPU103は、各機能部のプログラムに従って処理を実行することによって、所定の機能を提供する機能部として稼働する。
【0026】
例えば、CPU103は、トランザクション管理プログラムに従って処理を実行することでトランザクション管理部106として機能する。他のプログラムについても同様である。さらに、CPU103は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。尚、他の計算機121やサーバ161のCPU163についても同様である。
【0027】
計算機121は、CPU123と、メモリ122とI/F124及びストレージ装置13を含む。CPU123は、I/F124を介してサーバ161等の外部機器からの操作要求の受信及び当該操作の実行や、前記外部機器に対してデータ処理結果の送信などを行う。
【0028】
メモリ122は連携部125と、トランザクション管理部126と、合意形成部127と、データ秘匿部128と、秘匿復元部129と、秘匿制御情報130を格納し、CPU123、I/F124と接続されている。ストレージ装置13は、ブロックチェーンBC#2の台帳131を格納する。
【0029】
トランザクション管理部126と、合意形成部127と、データ秘匿部128と、秘匿復元部129は、プログラムとしてメモリ122にロードされてCPU123によって実行される。
【0030】
サーバ161は、CPU163と、メモリ162及びI/F164を含む。CPU163は、I/F164を介して計算機101等への操作要求や、計算機101等からの操作結果の受信等を行う。メモリ162は連携部165、データ秘匿部166、秘匿復元部167、秘匿管理情報168を格納し、CPU163、I/F164と接続されている。
【0031】
連携部165と、データ秘匿部166と、秘匿復元部167は、プログラムとしてメモリ162にロードされてCPU163によって実行される。
【0032】
クライアント端末141は、CPU143と、メモリ142及びI/F144を含む。CPU143は、I/F144を介してサーバ161等への操作要求や、サーバ161等からの操作結果の受信等を行う。メモリ142は連携部145を格納して、CPU143、I/F144と接続されている。連携部145はプログラムとしてメモリ142にロードされてCPU143によって実行される。
【0033】
次に、本実施例の計算機システムのソフトウェア構成の詳細(メモリ102、メモリ122、メモリ162、メモリ142に格納される情報)について説明する。
【0034】
最初にメモリ102に格納されたプログラム以外の情報(プログラム管理情報108、連携先情報109)について説明し、その後、メモリ102に格納されたプログラム情報(105~107の情報)について説明する。
【0035】
プログラム管理情報108は、計算機101が、サーバ161等から要求された処理について、ブロックチェーンBC#1内の台帳111の更新や、自ブロックチェーンBC#1内の他の計算機101とのやり取りなど、実行するプログラムが自ブロックチェーンBC#1内で閉じるものであるか、もしくは他のブロックチェーンBC#2に対する処理の要求など、他のブロックチェーンBC#2にも関係する処理であるか、を判定するために使用する情報である。
【0036】
本実施例の計算機システムにおける処理は、まず、クライアント端末141がサーバ161に対して処理要求を送信する。処理要求には、ブロックチェーンBC#1に対する処理要求が含まれ、処理の内容によっては、ブロックチェーンBC#2に対する連携要求が含まれる。
【0037】
ブロックチェーンBC#1では、例えば、商品の購入等に関する物流の情報が管理される。また、ブロックチェーンBC#2では、支払に関する金融の情報が管理される。クライアント端末141では、商品の購入に加えて、代金の決済を行う場合、処理要求に連携要求を加えて発行する。
【0038】
本実施例のクライアント端末141は、商品の購入のみの場合には連携要求を含まない処理要求を発行し、商品の購入に加えて代金の決済を行う場合には、連携要求を含む処理要求を発行する。
【0039】
サーバ161は、クライアント端末141から処理要求を受信すると、連携要求が含まれているか否かを後述するように判定し、連携要求が含まれている場合には、連携要求を秘匿化するか否かを後述するように判定する。秘匿化が必要と判定された場合には、サーバ161が当該連携要求を秘匿化する。
【0040】
そして、サーバ161は、必要に応じて秘匿化された連携要求を含む処理要求を処理実行要求として、ブロックチェーンBC#1に所属する計算機101に送信する。
【0041】
計算機101は、サーバ161から受信した処理実行要求に連携要求が含まれるか否かを判定し、連携要求が含まれている場合には、ブロックチェーンBC#2に所属する計算機121へ連携要求を送信する。
【0042】
計算機101では、処理要求を処理し、処理要求に連携要求が含まれていれば、連携要求をブロックチェーンBC#2の計算機121へ送信して処理を実行させる。計算機121では、後述するように連携要求が処理され、必要に応じて連携要求の処理結果が秘匿化されてから計算機101に送信される。
【0043】
計算機101は、ブロックチェーンBC#2での連携要求の処理結果を受信すると、処理要求の処理結果と、連携要求の処理結果をサーバ161に送信する。
【0044】
サーバ161では、連携要求に対する処理結果が秘匿化されている場合には、当該処理結果を復元(復号)し、復元した連携要求の処理結果と、処理要求に対する処理結果をクライアント端末141に送信して一連の処理を完了する。
【0045】
図2は、本発明の実施例のプログラム管理情報108の一例を示す説明図である。本情報は、項目201~207の7つのデータ項目をひとつのエントリに含む。
【0046】
項目201は、計算機101が管理するプログラムを識別するID情報を示す。項目202は、プログラムの名称を示す。項目203は、当該プログラムが外部のブロックチェーンBC#2等、外部システムとの連携があるか否かを示す。
【0047】
項目204は、連携先のシステムが固定的な処理を提供するのか、又はクライアント端末141等からの引数等により実行する処理を選択可能であるかを示す。項目204が「引数」であれば、実行する際の引数に応じて処理を選択することができ、そうでない場合には固定された処理を示す。
【0048】
項目205は、後述する連携先情報110等を参照して連携先の機器の詳細な情報を示す。例えば、
図2の例では、「1001」の情報は、後述する
図3の連携先情報109のIDが「1001」である連携先を示し、「o3」は、サーバ161から指定される引数o3が、連携先を示すことを意味する。
【0049】
項目206は、サーバ161から指定される引数のうち、どの引数が自ブロックチェーンBC#1に関係するものであるかを示す。項目207は、サーバ161から指定される引数のうち自ブロックチェーンBC#1には直接関係しない連携先に関する引数を示す。
【0050】
例えば、
図2において、サーバ161から項目201のIDの値が「5」の場合、サーバ161からは内部の引数、外部の引数含めて、「a,b,c,d,o1,o2,o3」の引数を受け取る。計算機101は、このうち、内部引数の「a,b,c,d」のみを自ブロックチェーンBC#1に関係する引数として、自ブロックチェーンBC#1のデータの参照や更新に用いる。また、計算機101は、外部引数の「o1,o2,o3」を連携先のブロックチェーンBC#2へ送信する。
【0051】
図3は、本発明の実施例の連携先情報109の一例を示す説明図である。本情報は、項目301~303の3つのデータ項目をひとつのエントリに含む。項目301は、各連携先を識別するID情報を示し、項目302は、連携先の名称を示し、項目303は、連携先のIPアドレス等、連携先の詳細情報を示す。
【0052】
次に、メモリ102に格納されたプログラム情報について説明する。
【0053】
まず、連携部105は、自身のブロックチェーンBC#1に所属する計算機101や、他のブロックチェーンBC#2に所属する計算機121や、クライアント端末141等とデータのやり取りを行う。
【0054】
トランザクション管理部106は、サーバ161等から受信した処理要求について、台帳111への書き込みや参照など、そのトランザクションの情報を管理し、当該トランザクションを実行する。
【0055】
台帳111の情報の一例を
図4Aに示す。
図4Aは商品売買のトランザクションの記録情報の一例であり、これに限らず商品売買以上の情報を記録することも可能である。
【0056】
台帳111は、項目401~407の7つのデータ項目をひとつのエントリに含む。項目401は、台帳111に記録されたデータを識別する発注ID情報を示す。項目402は、台帳111に記録されたトランザクションにおける購入者の情報を示す。項目403は、前記トランザクションにおける販売者の情報を示す。項目404は前記トランザクションで購入された商品名の情報を示す。
【0057】
項目405は商品の数量を示す。項目406は、前記トランザクションが実行された日時を示す。項目407は前記トランザクションを識別するためのトランザクションID(txID)を示す。
【0058】
また、台帳111の情報としては
図4Cに示されるような、実際に台帳111の更新や参照を行うトランザクションに関するトランザクション情報1111を記録してもよい。
図4Cのトランザクション情報1111は、
図4AのトランザクションID(項目407)に一致するトランザクションID(項目421)のエントリを台帳111に追加することができる。これらのトランザクションデータのハッシュ値を取得し、過去のトランザクションデータのハッシュ値と連鎖させて記録することで、データの改ざん耐性を高めることが可能である。
【0059】
トランザクション情報1111は、例えば、項目421~424の4つのデータ項目をひとつのエントリに含む。項目421は、トランザクションを識別するためのトランザクションIDを示し、
図4Aに示した項目407のトランザクションIDである。
【0060】
項目422は、トランザクションの実行主体を示す。項目423は、トランザクションの実行内容を示し、プログラム名や引数などが格納される。項目424は、トランザクションの実行日時を示す。
【0061】
合意形成部107は、例えば、台帳111への更新要求を受け付けた際に、更新を行う前にその更新要求を事前検証し、自ブロックチェーンBC#1内の他の計算機101の事前検証結果を考慮して、台帳111の更新を行うか否かを判定し、判定結果に応じて更新を実行する。
【0062】
次に、計算機121のメモリ122に格納されるプログラム以外の情報(秘匿制御情報130)について説明する。
【0063】
秘匿制御情報130は、他のブロックチェーンBC#1に所属する計算機101から連携要求を受け付けた際に、連携要求の秘匿レベルを判定するための情報である。本実施例では、この秘匿制御情報130は、サーバ161で生成した秘匿制御に関する秘匿管理情報168(後述の
図5A)の内容を事前に計算機121と共有して使用する。
【0064】
秘匿制御に関する秘匿管理情報168は
図5Aに示すように、項目501と502の2つのデータ項目をひとつのエントリに含む。項目501は、秘匿制御内容を識別するための制御IDを示す。項目502は、計算機101から受信する秘匿要求の内容や、応答の内容に施されている秘匿方法又は施すべき秘匿方法等の秘匿制御内容を示す。
【0065】
一方で、本実施例の変形例では、前記の秘匿管理情報168に加えて別途計算機121側で秘匿制御情報130を定義して使用してもよい。これにより、例えば、計算機101側からの連携要求において応答内容の秘匿化要求がない場合であっても、計算機121が所属するブロックチェーンBC#2側にとって応答を秘匿化すべきと判定したものについては、応答を秘匿化して返信することが可能になる。
【0066】
これにより、連携元側の秘匿設定のミス等にも対応可能となって、より厳格なデータへのアクセス制御が可能になる。
【0067】
本実施例の変形例においては、ブロックチェーンBC#2の計算機121が保持する秘匿制御情報130は、前記の秘匿管理情報168の内容に加えて、
図6Bに示す秘匿制御の定義1301と、
図6Aに示す秘匿制御の適用先に関する適用先情報1302で構成される。
【0068】
図6Bに示す秘匿制御の定義1301は、項目611と項目612の2つのデータ項目をひとつのエントリに含む。項目611は、秘匿制御内容を識別するための制御IDを示す。項目612は、計算機101等に対する応答内容に施すべき秘匿の制御内容を示す。
【0069】
尚、計算機101から受信した連携要求に、計算機121で応答する内容について秘匿要求が含まれている場合は、連携先の計算機121で設定した応答の秘匿制御を基本的に優先する。ただし、より安全性に配慮するために、仮に計算機101から受信した秘匿要求の方が、連携先の計算機121で設定する応答の秘匿要求よりも高い秘匿性を要求されるような場合などでは、計算機101側が要求する応答の秘匿要求を優先するようにしてもよい。
【0070】
図6Aに示す秘匿制御の適用先に関する適用先情報1302は、項目601と項目602の2つのデータ項目をひとつのエントリに含む。項目601は、適用対象とするブロックチェーンを識別するための識別子としてのBCIDを示す。BCIDは、例えばBC認証機関151が各ブロックチェーンに対して定義する。同じブロックチェーンに所属する計算機はBCIDの値が同じブロックチェーンに所属することになる。
【0071】
項目602は、
図6Bの項目611の制御ID(秘匿レベル)に対応する値を示し、適用する秘匿制御内容を指定する。例えば項目601の値が「BC1」の場合は、BCIDが「BC1」であるブロックチェーンBC#1に所属する計算機101に対しては、制御ID611に対応する制御情報(602)が「1」の秘匿制御すなわち、計算機101に対する応答に何も手を加えずに応答する処理が行われる。
【0072】
一方、項目601の値が「BC3」の場合は、BCIDが「BC3」であるブロックチェーンに所属する計算機に対しては、制御ID611の値(秘匿レベル)が「3」の秘匿制御、すなわち、計算機101に対する応答として、応答内容を分散や暗号化して返す処理が行われることを示す。尚、分散(秘密分散)や暗号化については、周知又は公知の技術を適用すればよいので、本実施例では詳述しない。
【0073】
次に、ブロックチェーンBC#2の計算機121のメモリ122に格納されたプログラム情報について説明する。
【0074】
連携部125は、自身のブロックチェーンBC#2に所属する計算機や、他のブロックチェーンBC#1に所属する計算機101や、クライアント端末141又はサーバ161等とデータのやり取りを行う。
【0075】
トランザクション管理部126は、ブロックチェーンBC#1に所属する計算機101等から受信した連携要求について、台帳131への書き込みや参照、また要求されたトランザクションの待機など、トランザクションの実行及び管理を行う。
【0076】
台帳131の情報の一例を
図4Bに示す。
図4Bは商品の支払いに関するトランザクションを記録した台帳131の一例である。ただし、これに限らず支払い以外の情報を記録することも可能である。台帳111の場合同様、トランザクションデータのハッシュ値を取得し、過去のトランザクションデータのハッシュ値と連鎖させて記録することで、データの改ざん耐性を高めることが可能である。
【0077】
台帳131は、項目411~418の8つのデータ項目をひとつのエントリに含む。項目411は、台帳131に記録されたデータを識別する決済ID情報を示す。項目412は、記録したトランザクションにおける支払い者の情報を示す。
【0078】
項目413は、前記トランザクションにおける支払先を示す。項目414は前記トランザクションで支払われた金額を示す。項目415は支払が発生した日時を示す。項目416は、記録したトランザクションについて、どのブロックチェーンに所属する計算機からのリクエストであるかを識別するID情報を示す。例えば決済IDの値が「1」のものはBC IDの値が「BC1」であり、これはBC IDの値が「BC1」の連携元ブロックチェーンで生じた商品購入のトランザクションに起因して起動された、連携先ブロックチェーンでの支払い要求のトランザクションを示し、決済IDの値が「3」のものは、BC IDの値が「Local」であり、これは連携に起因して生じた支払いのトランザクションではなく、サーバ161等からこの支払いのブロックチェーンに対して直接支払いのトランザクション実行要求を受けて実行したトランザクションであることを示す。
【0079】
項目417は、当該決済が、連携元のブロックチェーンBC#1のどの発注に紐付くものであるかを識別可能にするための発注IDを示す。項目417の発注IDは、連携元のブロックチェーンBC#1で管理する台帳111の発注ID401に対応する。
【0080】
項目418は、連携先のブロックチェーンBC#1で記録されたトランザクションを識別するID情報である。尚、
図4Aや
図4Bの台帳については、様々な実現方式が想定される。例えば
図4Aの台帳は購入者、販売者に記載されている各組織が同じ内容の台帳111を保持し、全組織が台帳の中身を全て閲覧できることを想定したものである。
図4Bの台帳は、支払者に記載されている組織ごとに異なる内容の台帳131が保持され、台帳の中身は直接の取引関係者との間でのみ共有されることを想定したものである。例えば
図4Bの内容は支払者が「企業A」の組織が保持する台帳であり、台帳の中身として、決済IDが「1」と「4」のトランザクションの内容は、製造会社Bとの間でのみ共有される。即ち、製造会社B側の台帳にもこのトランザクションの内容が記録され、製造会社Bはこれを参照することができる。同様に決済IDが「2」のトランザクションの内容は企業Zとの間でのみ共有され、その他の組織は参照することができない。連携先ブロックチェーンの台帳131の実現方式として、
図4Bに示す直接の取引関係者間のみで台帳の内容が共有される方式を想定するが、
図4Aに示す全組織で台帳の内容が共有される方式としてもいい。これについては、変形例2として後述する。
【0081】
合意形成部127は、例えば、台帳131への更新要求を受け付けた際に、更新を行う前にそのリクエストを事前検証し、自ブロックチェーンBC#2内の他の計算機121の事前検証結果を考慮して、台帳131の更新を行うか否かを判定し、判定結果に応じて実行する。
【0082】
尚、合意形成については、合意を実行する計算機121a~121cを予め設定しておいてもよい。また、合意の手順などについては、周知又は公知の手法を適用すればよいので、本実施例では詳述しない。
【0083】
データ秘匿部128は、計算機101等から連携要求を受け付けた際に、連携要求の秘匿レベルや、計算機121側で設定する応答の秘匿レベル等に応じて、応答内容の分散や暗号化等の所定の秘匿処理を行う。
【0084】
秘匿復元部129は、計算機101等から受信した連携要求について、秘匿レベルに応じて要求内容の復元等を行う。
【0085】
次に、サーバ161のメモリ162に格納される情報について説明する。連携部165は、連携元のブロックチェーンBC#1に所属する計算機101や、連携先のブロックチェーンBC#2の計算機121や、クライアント端末141などの外部の計算機と連携し、トランザクションの実行要求等を計算機101等に送信する。また、連携部165は、外部の計算機からの応答結果の受信等を行う。
【0086】
データ秘匿部166は、クライアント端末141等からの連携要求を受け付けた際に、連携要求の秘匿レベルに応じて、内容の分散や暗号化等の所定の秘匿処理を行う。
【0087】
秘匿復元部167は、計算機101等から受信した連携要求の処理結果について、秘匿レベルや、処理結果の内容に応じてデータの復元等を行う。
【0088】
秘匿管理情報168は、前述の秘匿制御情報130で説明したように、秘匿制御に関する情報(
図5A)と、各呼出関数における秘匿レベルを示す秘匿レベル情報1681(
図5B)と、呼出関数をもとに起動される第2の処理要求での秘匿対象を示す秘匿対象情報1682(
図5C)で構成される。
【0089】
前記秘匿制御に関する秘匿管理情報168は、前述のように、計算機101に送信する連携に関する要求や応答内容に施す秘匿のレベル(制御ID)と内容を定義した情報であり、計算機121等と事前に共有して使用することができる。
【0090】
図5Bの秘匿レベル情報1681は、前述のように各呼出関数における秘匿のレベルを示す情報であり、連携要求を伴う呼出関数の秘匿レベル(514)は、本情報によって定義される。秘匿レベル情報1681は、項目511~514の4つのデータ項目をひとつのエントリに含む。
【0091】
項目511は、秘匿レベルが定義された各呼出関数を識別するID情報である。項目512は、ID情報に対応する呼出関数を示し、サーバ161が計算機101に処理要求を送信する際に使用する関数を示す。項目513はこの呼出関数を呼出した際に連携元のブロックチェーンBC#1の計算機101で実行されるプログラムの情報を示す。
【0092】
項目514はこの呼出関数を呼出した際に、ブロックチェーンBC#1で起動される連携処理に適用される秘匿のレベルを示す。項目514は、秘匿管理情報168の項目501の制御IDを示し、秘匿管理情報168を参照させることで、秘匿の有無等を制御する。
【0093】
図5Cは前述のように連携要求における秘匿対象を示す秘匿対象情報1682である。秘匿対象情報1682は、項目521~524の4つのデータ項目をひとつのエントリに含む。
【0094】
項目521は、連携要求の元となる各プログラムを識別するID情報である。項目522は連携要求の元となるプログラムを示し、
図5Bの項目513の呼出先プログラムに相当する。項目523は連携先で起動されるプログラムを示し、計算機101で項目522のプログラムが起動された際に、ブロックチェーンBC#2の計算機121で連携して起動するプログラム(連携プログラム)を示す。
【0095】
項目524は前記連携要求に応じて起動されたプログラム(523)での秘匿化対象を示す。例えば、項目521の値が「1」のプログラムは、連携要求に応じて起動されたプログラム(523)で「o1,o2,o3」を引数として使用するが、そのうち「o2,o3」のみを暗号化や秘密分散等を用いて計算機121が秘匿化することを示す。
【0096】
次に、クライアント端末141のメモリ142に格納される情報について説明する。連携部145は、サーバ161などの外部の計算機と連携し、受注や発注や支払いの要求など、計算機101等へのトランザクション要求の元となる処理要求を送信する。また、外部の計算機からの応答結果の受信等を行う。
【0097】
以上が本実施例における計算機システムのハードウェア及びソフトウェア構成である。
【0098】
次に、前述したハードウェア及びソフトウェア構成に基づいて、本実施例における連携処理の一例について説明する。本実施例の連携処理は、まず、クライアント端末141が物品の購入と支払処理を含む処理要求をサーバ161に依頼する。処理要求には、
図5Bに示した呼出関数(項目512)が含まれる。
【0099】
サーバ161は、呼出関数(項目512)を実行し、当該呼出関数に対応する呼出先プログラム(項目513、項目522)が計算機101で起動される。そして、計算機101では、
図5Cに示したプログラム(項目522)に対応する連携プログラム(項目523)の実行をブロックチェーンBC#2の計算機121に依頼する。
【0100】
ブロックチェーンBC#1の計算機101では、呼出先プログラム(項目513)に対応する物品の購入のトランザクションが実行される。そして、処理要求に連携要求が含まれる場合には、計算機101が実行するプログラム(項目522)に対応する連携プログラム(項目523)が計算機121で実行され、支払に関するトランザクションが実行される。
サーバ161は、実行される連携プログラムに応じて支払処理のトランザクションの要求又は応答に秘匿化処理を適用し、ブロックチェーンBC#1の計算機101が不要な情報を取得するのを回避する。
【0101】
ブロックチェーンBC#1は、サーバ161から依頼された物品の購入処理(処理要求)を実行し、台帳111を更新する。また、ブロックチェーンBC#2は計算機121が実行する連携プログラム(項目523)によって台帳131の更新を行う。
【0102】
ブロックチェーンBC#2の計算機121は、支払処理のトランザクションが秘匿化されている部分があれば、復号して所定の処理を実行して台帳131を更新する。そして、支払処理のトランザクションの応答を秘匿化する要求が含まれていれば、支払処理(連携要求)の応答を秘匿化してブロックチェーンBC#1の計算機101へ返信する。
【0103】
ブロックチェーンBC#1の計算機101は、ブロックチェーンBC#2から支払処理のトランザクションの応答を受信すると、購入処理のトランザクションの応答と、支払処理のトランザクションの応答をサーバ161に返信する。
【0104】
サーバ161は、支払処理のトランザクションに秘匿化されている部分があれば復号し、物品の購入のトランザクションと支払いトランザクションの結果をクライアント端末141に送信して、一連の連携処理を完了する。
【0105】
<連携先での秘匿要否の判定及び秘匿処理>
図7は、本発明の実施例のサーバ161が実行する連携先のブロックチェーンBC#2への処理要求の秘匿要否判定及び秘匿処理の一例を示すフローチャートである。
【0106】
本処理は、サーバ161がクライアント端末141から処理要求を受け付けた場合や、サーバ161が所定のタイミングとなった場合に実行される。以下に処理の詳細を示す。
【0107】
サーバ161の連携部165は、クライアント端末141から商品の購入や支払いなどの処理要求を受け付ける(701)。上記処理要求をもとに、連携部165は、計算機101へ処理要求を送る際に使用する呼出関数(項目512)を特定する(702)。
【0108】
。
【0109】
例えば、連携部165はクライアント端末141に処理要求を設定する設定画面を出力し、クライアント端末141のユーザが設定画面上で選択した処理に応じて計算機101へ処理実行要求を行う呼出関数が決定される。
【0110】
ステップ703では、連携部165が、上記特定された呼出関数がブロックチェーンの連携に関連する処理を起動させるものであるか否かを判定する。呼出関数のうち、ブロックチェーンの連携に関係するものは
図5Bで示した秘匿レベル情報1681として管理されており、連携部165は、使用される呼出関数が項目512に存在した場合は、連携に関連する処理を起動させるものであると判定する。尚、連携に関するプログラムだけでなく、連携に関係しないプログラムも併せて計算機101で起動されてもいい。
【0111】
ステップ703の判定において、連携部165は、クライアント端末141から受け付けた処理要求がブロックチェーンの連携に関係するプログラムに関連無しと判定された場合は、処理要求にブロックチェーンBC#1に対する処理のみが含まれており、ステップ705へ進む。
【0112】
ステップ705では、連携部165は他のブロックチェーンとの連携はなく、ローカルのブロックチェーンBC#1内で閉じる処理要求のみと判定して、計算機101(図中ノード)に対して処理要求に手を加えず、そのまま計算機101の台帳111の更新等の処理要求を行う。
【0113】
一方、ステップ703の判定において、ブロックチェーンの連携に関するプログラムがあると判定した場合、連携部165は、ステップ704へ進んで連携内容のデータの秘匿化が必要か否かを判定する。
【0114】
具体的には連携部165が、秘匿レベル情報1681を参照して、呼出関数によって起動される呼出先プログラムの項目513に対応する項目514の秘匿レベルを特定する。そして、連携部165は、秘匿管理情報168を参照して秘匿レベルに対応する制御ID501のエントリから項目502の内容を特定することで、連携要求の秘匿化が必要か否かを判定する(704)。
【0115】
ステップ706において、連携部165は、ブロックチェーンBC#1からブロックチェーンBC#2へ連携する内容の秘匿化が必要と判定した場合は、秘匿管理情報168の項目502の秘匿化の内容に応じて連携要求を秘匿化し、計算機101に対して秘匿化した処理実行要求を送信する。
【0116】
尚、項目501の制御ID501が「4」又は「6」の場合は、連携要求に対する応答の内容を秘匿化が必要であることを示す情報(秘匿要求)を当該連携要求に付加し、その他については応答の内容について秘匿化が不要であることを示す情報を当該連携要求に付加してもよい。
【0117】
例えば、
図5Bの項目514の秘匿レベルが「2」であれば連携要求について秘匿化し、連携先のブロックチェーンBC#2の計算機121においては応答内容に何も手を加えないように要求する。
【0118】
尚、秘匿化方法としては、例えば、連携先の計算機121の公開鍵を用いて暗号化する方法や、秘密分散法等を用いて連携内容を複数のシェアと呼ばれるデータに分割し、一定数以上のシェアが集まらなければ元のデータを復元できないようにする方法が考えられる。
【0119】
尚、計算機101が所属するブロックチェーンBC#1の種類によっては、ブロックチェーンBC#1内の合意形成に関係する全ての計算機101に同じ処理要求を行わなければならないものが存在する。
【0120】
このような場合に、連携元のブロックチェーンBC#1の複数の計算機101に同じ処理実行要求を送信すると、複数の同じ連携要求が連携先のブロックチェーンBC#2の計算機121にも送信されてしまうことになる。また、処理実行要求内の連携内容として決済に関する情報等が含まれていた場合に、ブロックチェーンBC#2内の当事者間だけでなくブロックチェーンBC#1に参加する全ての計算機101にこの情報が配信されることになる。
【0121】
そこで、このようなブロックチェーンBC#1、BC#2で連携する場合は、合意形成に関係する全ての計算機(ノード)に処理実行要求を送るが、その処理実行要求のうち連携(連携要求)内容に関する部分については、暗号化や秘密分散等の秘匿化を施したものを送信する。
【0122】
例えば、秘匿レベル情報1681の項目512において、「execute buy_pay」の関数を呼び出した場合、その引数として「a,b,c,d,o1,o2,o3」を指定すると、秘匿レベル情報1681の項目513(呼出先プログラム)と、秘匿対象情報1682の項目522、項目523から、対応する連携プログラムとして、「invoke pay_otherBC(o1,o2,o3)」が呼び出されることになる。
【0123】
引数のうち連携に関係するのは「o1,o2,o3」であり、データ秘匿部166は、項目524の秘匿対象の指定に基づいて「o2,o3」の引数だけを暗号化や秘密分散等により秘匿化を施す。そして、データ秘匿部166は、秘匿化した引数を最初の「execute buy_pay」の処理実行要求の際に送信する。
【0124】
連携元のブロックチェーンBC#1に所属する複数の計算機101に処理実行要求を送る場合、秘匿化方法として秘密分散を行う場合は、処理要求のうち連携に関する部分が秘密分散された、各計算機101によって異なるデータが送信される。
【0125】
複数の連携要求がこれらの計算機101から、連携先のブロックチェーンBC#2に所属する計算機121に送信される。上記の連携要求を受信した計算機121側ではこれらの複数の分散された連携要求を束ねて復元することで、一つの連携要求と見なすことになり、結果的には処理は複数回ではなく一回しか行われないようになる。
【0126】
尚、連携要求を受信する計算機121側で、同じ元データから秘密分散であることを区別可能にするために、例えば、連携要求内に同じ分散ID等の識別データを含めて識別できるようにしてもよい。
【0127】
一方で秘匿化方法として秘密分散以外の暗号化を行う場合は、処理実行要求のうち連携に関する部分が同じように暗号化されたものが、各計算機121に送られるようになる。
【0128】
計算機101は、上記の暗号化された連携要求に上記の分散IDと、秘匿レベルの情報を含めて連携先のブロックチェーンBC#2の計算機121に送信する。これにより、同じ処理要求を暗号化したものであることを連携先のブロックチェーンBC#2の計算機121に判定させて、一つだけ復号化して処理するようにさせてもよい。
【0129】
もしくは、サーバ161が最初の処理実行要求として、連携元のブロックチェーンBC#1に所属する計算機101のうちの一つに対してのみ暗号化した連携処理内容を含む処理実行要求を送信し、他の計算機101には上記暗号化した連携処理内容を含まない処理実行要求を送るようにしてもよい。
【0130】
これにより、連携元のブロックチェーンBC#1の計算機101には、自身のブロックチェーン#BC1に関する処理要求は全て送信されるが、連携に関する処理要求はそのうちの一つの計算機101にしか送信されず、連携先のブロックチェーンBC#2の計算機121にも一つの連携要求しか送信されないようになる。尚、上記連携に関する処理要求を受信する一つの計算機101に連携内容を開示していい場合は暗号化を施さないで処理要求を送信してもいいし、上記連携に関する処理要求の送信対象として一つの計算機101以外に任意の数の計算機101に処理要求を送るようにしてもいい。
【0131】
尚、連携元のブロックチェーンBC#1の参照や更新で使用する引数は、上記引数のうち「a,b,c,d」のみである。このため、連携元のブロックチェーンBC#1に所属する各計算機101は、仮に最初の処理要求で計算機101によって異なる引数を受信した場合でも、自身のブロックチェーンBC#1へのトランザクション要求としては、自身のブロックチェーンBC#1に関係する引数だけ(「a,b,c,d」のみ)を取り込んでトランザクション処理を行う。
【0132】
これにより、各計算機101が同じトランザクション処理を行うことになり合意形成処理を進めることが可能になる。どの引数が自身の計算機101のブロックチェーンBC#1に関係するかの判定は、プログラム管理情報108の項目206に設定された内部引数によって行うことができる。
【0133】
尚、秘匿レベルが「2」の場合は、連携先の計算機121からの応答として手を加えられていない同じ内容が各連携元の計算機101に返される。一方、秘匿レベルが「3」の場合は、連携元のブロックチェーンBC#1の計算機101のうちの特定のノード、例えば連携要求が決済であった場合は、決済の実行者と対象者のノードにのみ結果が返される等である。どのノードが決済の実行者や対象者であるかは、決済の処理要求内にノードの情報を含めておくことで、連携先の計算機121側で判定することができる。
【0134】
計算機121から連携要求に対する処理結果を受信した上記の特定ノードは、その応答結果を自身のブロックチェーンBC#1の台帳111には記録できない。このため、例えばオフチェーンでブロックチェーンBC#1以外のローカルデータベース等に記録するようにしてもよい。
【0135】
また、秘匿レベルが「4」の場合は、連携する要求の秘匿化に加えて、連携先の計算機121で応答内容の秘匿化が施されたものが、連携元の計算機101に返信されるようになる。
【0136】
これは応答内容については、連携元のブロックチェーンBC#1のどの計算機101にも公開せず、最初にサーバ161に元のリクエストを送信したクライアント端末141以外には応答結果を見せたくないような場合を意図したものである。
【0137】
秘匿化された応答内容はサーバ161で復号されてクライアント端末141に提示される。秘匿化方法として秘密分散を用いた場合は、サーバ161は、連携元のブロックチェーンBC#1の各計算機101から受信した分散された応答結果を集めてデータの復元を行う。
【0138】
また、秘匿化方法として秘密分散以外の暗号化を用いた場合は、例えば、サーバ161の公開鍵でデータが暗号化され、それに対応する秘密鍵でデータの復号を行うようにする。
【0139】
以上がステップ706の連携の処理要求の説明である。上記ステップ705やステップ706の処理の後、サーバ161は、連携元のブロックチェーンBC#1の計算機101から処理結果を受信する(707)。
【0140】
サーバ161は、最初に送信した処理要求の秘匿レベルに応じて処理結果を加工してクライアント端末141に通知する(708)。例えば秘匿レベルが「4」であった場合は、サーバ161の秘匿復元部167が、秘匿されたデータを復号してクライアント端末141に通知する。
【0141】
尚、サーバ161は、ブロックチェーンBC#2からの応答内容が秘匿化されてない場合は上記のような加工は行わずクライアント端末141にそのまま通知する。以上が本実施例における、連携先の秘匿化の要否の判定及び秘匿処理の説明である。
【0142】
<連携元ブロックチェーンの計算機の処理>
次に、本実施例における連携元のブロックチェーンBC#1の計算機101による連携処理の説明を行う。
【0143】
図8は、本発明の実施例の計算機101が実行する、計算機121と連携する処理の一例を示すフローチャートである。
【0144】
計算機101の連携部105は、サーバ161から処理実行要求を受信する(801)。連携部105は、処理実行要求にブロックチェーンBC#2と連携する連携要求が含まれるか否かを判定し、含まれない場合は、自身のブロックチェーンBC#1に閉じる処理と判定して通常通り台帳111の参照や更新等の要求された処理を行う(803)。
【0145】
一方、ブロックチェーンBC#2と連携する連携要求を含む場合は、処理実行要求のうち自身のブロックチェーンBC#1に関係する処理要求のみを抽出し、自身のブロックチェーンBC#1の台帳111の参照や更新等の要求された処理を行う(804)。
【0146】
尚、処理要求のうち自身のブロックチェーンBC#1に関係する部分の判定は、例えば、プログラム管理情報108の項目206の内部引数と、項目207の外部引数を参照することで実施する。例えば、計算機101が処理要求の引数として「a,b,c,d,o1,o2,o3」をサーバ161から受信すると、連携部105は、処理実行要求で項目201の値が「5」のプログラムが起動される場合は、「a,b,c,d」の引数のみを自身のブロックチェーンBC#1に関係する部分として取り込んで、トランザクション管理部106が、ブロックチェーンBC#1へのトランザクション処理を行う。
【0147】
次に、連携部105は、連携先の計算機121で連携要求を処理させる(805)。例えば、上記の例では、連携部105は処理実行要求の引数のうち、「o1,o2,o3」を使って計算機121に対して連携要求を行う。例えば、連携要求が決済の要求であれば、誰から誰への決済であるか、どのような方法での決済であるか、金額情報等が指定されてもよい。
【0148】
計算機101は、連携先の計算機121から連携要求の処理結果を受信する(806)。計算機101は、受信した連携の処理結果内容に応じて、処理結果をオフチェーンで格納して保存する(807)。例えば、サーバ161からの要求によって、項目513の呼出先プログラム「buy_pay_localstore」等の関数が呼び出された場合、連携部105は応答結果をローカルのデータベース(図示省略)に格納する。
【0149】
尚、上記のような関数が呼び出されなかった場合は、計算機101は、連携要求の応答結果を特に格納しなくてもよい。ステップ803やステップ807の処理の後、計算機101は、処理要求に対する処理結果と、連携要求に対する処理結果をサーバ161に送信する(808)。以上が本実施例における、連携元のブロックチェーンBC#1に所属する計算機101の連携要求処理の説明である。
【0150】
<連携要求を受けた連携先の計算機の処理>
次に、本実施例における連携要求を受け付けた連携先の計算機121で行われる処理の説明を行う。
【0151】
図9は、本発明の実施例の計算機121が実行する、連携要求に対する処理の一例を示すフローチャートである。
【0152】
計算機121の連携部125は、計算機101から連携要求を受信する(901)。連携部125は連携要求が秘匿化済みか否かを判定する(902)。連携要求が秘匿化済みであるか否かの判定は、例えば、計算機101から計算機121に第2の処理要求を送信する際に、暗号化、秘密分散等の秘匿有無の識別情報を付加し、計算機121では識別情報に基づいて判定するようにしてもよい。
【0153】
あるいは、サーバ161が秘匿レベル情報1681の項目514の秘匿レベルを連携要求に付加して、計算機121が秘匿レベルの値をもとに、連携要求が秘匿化済みであるか否かを判定するようにしてもよい。
【0154】
連携要求が秘匿化されていなかった場合、計算機121は要求された情報をもとに通常通り自身のブロックチェーンBC#2の台帳131の参照や更新処理を行う(903)。
【0155】
連携要求が秘匿化済みであった場合、計算機121の秘匿復元部167は通知されている秘匿レベルに応じて連携要求のデータの復元(復号)を行う(904)。
【0156】
例えば、秘密分散されていた場合、秘匿復元部167は連携要求内の分散ID情報が同じデータ(元データが同じ分散データであることを示す)を収集して、それをもとに連携要求の内容を復元して処理を行う。一方で公開鍵暗号等の暗号化が施されていた場合、秘匿復元部167は自身の秘密鍵を用いてデータの復号を行う。
【0157】
尚、秘密分散以外の暗号化を施す場合は、前述のように単一の計算機のみに暗号化した連携要求を送信させるが、例えば連携要求のメッセージ内に同じ処理要求であることを示す識別ID情報を入れて複数の計算機から暗号化した連携要求を送信させ、計算機121側で公開鍵暗号を復号して同じ識別IDのものは一つしか実行させないようにしてもよい。
【0158】
計算機121は、連携要求の復号に失敗した場合、処理失敗の結果を連携元の計算機101に送信してもよい(909)。連携要求の復号に成功した場合、計算機121は復号した処理をトランザクション管理部126で実行する(906)。
【0159】
例えば、決済に関する連携要求を受け付けた場合、計算機121は、支払元と支払先を特定する決済情報の台帳131への記載や、台帳131からの情報取得等を行う。計算機121は、上記処理結果をブロックチェーンBC#1の計算機101へ応答するにあたり、連携要求で定義されている秘匿レベルの情報をもとに、応答の秘匿が必要か否かを判定する(907)。
【0160】
応答の秘匿が不要な場合は、計算機121は連携要求に対する処理結果をそのまま計算機101に送信する(909)。応答内容の秘匿化が必要な場合は、計算機121のデータ秘匿部128は、前記秘匿レベルに応じて応答内容を秘匿化する(908)。
【0161】
例えば、秘匿レベルが「3」であれば、データ秘匿部128は、特定ノードにのみ応答結果を返す。特定ノードの絞り込みは、例えば、前述のような決済要求(連携要求)を受け付けた場合は、決済要求に含まれている決済の実行主体、対象の情報をもとに当事者を特定し、特定した対象に対応する連携元のブロックチェーンBC#1の計算機101に対してのみ詳細な応答情報を返すようにする。
【0162】
また、秘匿レベルが「6」であった場合、データ秘匿部128は、応答内容を秘密分散や公開鍵暗号等を用いて秘匿化して計算機101に送信する。
【0163】
以上のようにして計算機121は、連携要求で指定された連携プログラム(項目523)を実行し、計算機101に対して処理結果を送信する(909)。以上が本実施例における、連携要求を受けた連携先の計算機の処理の説明である。
【0164】
<連携要求を受けた連携先の計算機の処理の変形例>
次に、本発明の実施例の変形例を説明する。前述の実施例では、仮に計算機101から送信される連携要求に応答の秘匿要求が含まれていなかった場合は、計算機121は応答内容を秘匿せずに送信してしまう。
【0165】
本変形例では、連携先の計算機121側でも別途応答に関する秘匿レベルを定義しておくことで、仮に上記のような連携元から連携要求に応答の秘匿要求が含まれていない場合でも、応答内容を秘匿化して返信することが可能になる。
【0166】
これにより、例えば、本来連携元が応答の秘匿を要求すべき所を、誤って設定漏れ等によって秘匿すべき応答内容が漏れてしまうことを防止することを目的としている。本変形例では、前述のように計算機121側で別途定義する応答の秘匿レベルとして、
図6Aの適用先情報1302及び
図6Bの秘匿制御の定義1301を保持する。
【0167】
尚、本変形例では、
図9に示した計算機121の処理が前記実施例と異なっており、その部分(ステップ903以降とステップ907以降)について説明する。
【0168】
図10は、本発明の実施例の変形例の計算機121が実行する、計算機101から受信した連携要求に対する処理を示すフローチャートである。
【0169】
ステップ901、902は前記実施例1の
図9同様であり、計算機121の連携部125は、連携要求が秘匿化されていない場合、ステップ903に進んで要求された処理を実行する。
【0170】
計算機121の連携部125は、連携要求に対する処理結果を計算機101に応答するにあたり、別途定義した秘匿レベルの適用先情報1302をもとに応答内容の秘匿化が必要であるか否かを判定する(910)。
【0171】
秘匿化が不要であった場合は、連携部125がステップ909に進んで処理結果をそのまま計算機101に返信する。一方、秘匿化が必要であると判定された場合は、計算機121の連携部125は適用先情報1302と秘匿制御の定義1301をもとに応答内容を秘匿化する(911)。
【0172】
例えば
図6Aの適用先情報1302の場合、連携要求に応答する計算機121が所属するブロックチェーンBC#2の識別情報であるBCIDが「BC2」だった場合は、秘匿レベルが「2」であるため、
図6Bの秘匿制御の定義1301から、応答内容を秘匿化して返信する。
【0173】
尚、上記では秘匿レベルの設定の粒度として、返信元のBC単位としたが、例えば連携要求で実施されるプログラム単位に秘匿レベルを設定するようにしてもよい。計算機121は以上の処理を行った応答結果を計算機101に送信する。
【0174】
また、計算機121の連携部125は、連携要求が秘匿化済みだがステップ907において連携要求に応答の秘匿化要求が含まれていなかった場合、上記のステップ910、ステップ911と同様にして、応答内容の秘匿の要否を判定し、応答の秘匿を行って又は行わずに処理結果を計算機101に送信する。以上が、本発明の実施例の変形例の説明である。
【0175】
<連携要求を受けた連携先の計算機の処理の変形例2>
次に、本発明の実施例の第2の変形例を説明する。前述の実施例では、連携先のブロックチェーンの台帳131として、台帳の各内容が直接の取引関係者間のみで共有されるものを想定したが、本変形例では、台帳の各内容が連携先のブロックチェーンに参加している直接の取引関係者以外にも共有される場合の処理方法について述べる。
【0176】
図4Bの台帳131の内容が直接の取引関係者以外にも共有される場合、例えば、材料会社Cも連携先のブロックチェーンに参加しているとすると、材料会社Cは連携元のブロックチェーンの台帳111と連携先のブロックチェーンの台帳131の両方を閲覧できてしまう。材料会社Cは、台帳111と台帳131で発注IDを突き合わせることで、直接の取引関係に無い組織の詳細な購買情報まで入手できてしまう。例えば発注IDの値「1001」を突き合わせることで、機器aにどれだけ支払いを行ったかといった情報まで把握できてしまう。そこで本変形例では、台帳111と台帳131の対応関係の推測につながるような情報は暗号化して台帳に記載するようにする。
【0177】
具体的にはステップ906において、支払いに関する台帳更新等の処理が要求される場合、台帳131の日時(項目415)、BC ID(項目416)、発注ID(項目417)等の情報は、取引関係者間で事前に共有した暗号鍵または支払先組織の公開鍵を用いて暗号化してから台帳131に記載するようにする。本処理により、台帳131の内容は連携先ブロックチェーンの直接の取引関係者以外にも共有されるが、その解読は直接の取引関係者のみに限定することが可能になる。
【0178】
以上の本発明の実施の形態によれば、例えば、クライアント端末141と計算機101、121とサーバ161を含んで構成される計算機システムにおいて、サーバ161は、ブロックチェーンBC#2に所属する計算機121への連携要求に秘匿の要否を制御する秘匿管理情報168を含む。
【0179】
前記ブロックチェーンBC#1に所属する計算機101は、前記ブロックチェーンBC#1で実行するプログラムについて自ブロックチェーンBC#1内の処理に閉じる処理要求と連携に関わる連携要求を識別するためのプログラム管理情報108と、連携先の計算機121の情報を示す連携先情報109を保持する。
【0180】
また、前記ブロックチェーンBC#1に所属する計算機101からのリクエストを受け付ける他のブロックチェーンBC#2に所属する計算機121は、前記ブロックチェーンBC#1に所属する計算機101から受信する連携要求の秘匿の有無や、応答内容の秘匿要否を判定するための秘匿制御情報130を保持する。
【0181】
サーバ161は、クライアント端末141からの商品購入や決済等の操作要求の指示に基づき、前記ブロックチェーンBC#1に所属する計算機101に送信するリクエスト内容(処理実行要求)及び適用すべき秘匿レベルを判定し、秘匿レベルに応じてリクエストに含まれる連携要求を秘密分散や公開鍵暗号等の暗号化を施して、前記ブロックチェーンBC#1に所属する各計算機101に処理実行要求を送信する。
【0182】
上記処理実行要求を受信した前記ブロックチェーンBC#1に所属する各計算機101は、上記処理実行要求のうち自身のブロックチェーンBC#1に関係する処理要求と、連携に関係する連携要求を識別し、上記処理実行要求内の自身のブロックチェーンBC#1に関係する処理要求のみを取り込んで自身のブロックチェーンBC#1の台帳111の参照や更新等の処理を行う。
【0183】
そして、計算機101は、連携に関係する連携要求を用いて、前記他のブロックチェーンBC#2に所属する計算機121に連携要求を送信する。上記第2の処理要求を受信した前記他のブロックチェーンBC#2に所属する計算機121は、上記連携要求の秘匿の有無を判定し、秘匿済みであれば、例えば分散された要求情報を収集して復元や暗号化された連携要求の復号を通して連携要求を復元し、要求された処理を実行する。
【0184】
また、前記他のブロックチェーンBC#2に所属する計算機121は、上記処理結果を前記ブロックチェーンBC#1に所属する計算機101に応答するにあたり、連携要求で設定されている秘匿レベルや自身が定義する秘匿制御情報130をもとに応答内容の秘匿の要否を判定する。そして、計算機121では、秘匿レベルに応じて応答内容を秘密分散や公開鍵暗号による暗号化の実施及び処理結果送信先の絞り込みを行って、前記ブロックチェーンBC#1に所属する計算機101に処理結果を応答する。
【0185】
前記ブロックチェーンBC#1に所属する計算機101は、秘匿レベルに応じてローカルのデータベースへの処理結果の格納を行い、前記サーバ161に要求された処理の結果を応答する。
【0186】
前記サーバ161は、最初に送信した処理実行要求の秘匿レベルに応じて、前記ブロックチェーンBC#1に所属する複数の計算機101から受信した処理結果を収集して処理結果の復元を行い、復元した処理結果を前記クライアント端末141に提示する。
【0187】
これらによって、本発明の一実施例によれば、ブロックチェーンBC#1とブロックチェーンBC#2を連携させるにあたり、連携元のブロックチェーンBC#1でデータを共有し、連携の情報や連携にあたり他のブロックチェーンBC#2で管理する情報など、連携元のブロックチェーンBC#1には関係しない又は開示したくない情報については、関係当事者間のみでの共有が可能になる。
【0188】
以上、本発明の実施例について説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。
【0189】
<結び>
以上のように、上記実施例の計算機システムは、以下のような構成とすることができる。
【0190】
(1)プロセッサ(CPU163)と、メモリ(162)と、第1の計算機(101)に接続されるインタフェース(164)と、を有するサーバ(161)であって、処理要求を受け付けて、前記処理要求に前記第1の計算機(101)が所属する第1のブロックチェーン(BC#1)に対する処理と、前記第1の計算機(101)と連携する第2の計算機(121)が所属する第2のブロックチェーン(BC#2)に対する処理を示す連携要求が含まれているか否かを判定し、前記連携要求が含まれている場合には、前記第2の処理要求の秘匿化が必要か否かを判定する連携部(165)と、前記判定の結果に基づいて、秘匿化が必要な連携要求に秘匿化を施す秘匿部(データ秘匿部166)と、を有し、前記連携部(165)は、前記判定の結果に応じて前記秘匿部で秘匿化が施された連携要求を含む処理実行要求を前記第1の計算機(101)に送信することを特徴とするサーバ。
【0191】
上記構成により、連携元のブロックチェーンBC#1(第1のブロックチェーン)に所属する計算機101(第1の計算機)間でデータを共有し、ブロックチェーンBC#2(第2のブロックチェーン)で管理する情報(連携要求や応答)など、連携元のブロックチェーンBC#1の参加者には関係しない又は開示したくない情報については、連携要求の秘匿化によって関係当事者間のみでの共有が可能となる。
【0192】
(2)上記(1)に記載のサーバであって、前記秘匿化の内容を予め設定した秘匿管理情報(168)を、さらに有し、前記秘匿部(166)は、前記秘匿管理情報(168)に基づいて、前記連携要求求を秘匿化する内容を決定することを特徴とするサーバ。
【0193】
上記構成により、サーバ161のデータ秘匿部166は、呼出関数などに応じて予め秘匿レベルが設定された秘匿管理情報168を参照することで、連携要求のうち秘匿化する対象(524)を決定することが可能となる。
【0194】
(3)上記(2)に記載のサーバ(161)であって、前記連携部(165)は、前記連携要求に秘匿化が必要と判定した場合には、前記連携要求に対する応答に対して秘匿化の要否を示す情報を前記連携要求に付加して送信することを特徴とするサーバ。
【0195】
上記構成により、サーバ161の連携部165は、秘匿化の内容を予め設定した秘匿管理情報(168)を参照することで、連携要求に対する応答に対して秘匿化の要否を示す情報を付加することができる。連携要求の応答を秘匿化することで、ブロックチェーンBC#1に所属する計算機101に対して、連携要求に対する応答を隠蔽することができる。
【0196】
(4)第1のブロックチェーン(BC#1)に所属する第1の計算機(101)と、第2のブロックチェーン(BC#2)に所属する第2の計算機(121)と、ネットワーク(10)を介して前記第1の計算機(101)及び第2の計算機(121)に接続されたサーバ(161)と、を有する計算機システムで処理を連携するデータ処理方法であって、前記サーバ(161)が、処理要求を受け付ける第1のステップと、前記サーバ(161)が、前記受け付けた処理要求に、前記第1の計算機(101)が所属する第1のブロックチェーン(BC#1)に対する処理と、前記第1の計算機(101)と連携する第2の計算機(121)の第2のブロックチェーン(BC#2)に対する処理を示す連携要求が含まれているか否かを判定する第2のステップと、前記サーバ(161)が、前記処理要求に前記連携要求が含まれている場合には、前記連携要求の秘匿化が必要か否かを判定する第3のステップと、前記サーバ(161)が、前記判定の結果に基づいて、秘匿化が必要な場合には前記連携要求に秘匿化を施す第4のステップと、前記サーバ(161)が、前記判定の結果に応じて前記秘匿部で秘匿化が施された連携要求を含む処理実行要求を前記第1の計算機(101)に送信する第5のステップと、を含むことを特徴とするデータ処理方法。
【0197】
上記構成により、連携元のブロックチェーンBC#1(第1のブロックチェーン)に所属する計算機101(第1の計算機)間でデータを共有し、ブロックチェーンBC#2(第2のブロックチェーン)で管理する情報(連携要求や応答)など、連携元のブロックチェーンBC#1の参加者には関係しない又は開示したくない情報については、秘匿化によって関係当事者間のみでの共有が可能となる。
【0198】
(5)上記(4)に記載のデータ処理方法であって、前記サーバ(161)は、前記秘匿化の内容を予め設定した秘匿管理情報(168)を、さらに有し、前記第4のステップは、前記秘匿管理情報(168)に基づいて、前記連携要求を秘匿化する内容を決定することを特徴とするデータ処理方法。
【0199】
上記構成により、サーバ161は、呼出関数などに応じて予め秘匿レベルが設定された秘匿管理情報168を参照することで、連携要求のうち秘匿化する対象(524)を決定することが可能となる。
【0200】
(6)上記(5)に記載のデータ処理方法であって、前記第5のステップは、前記連携要求に秘匿化が必要と判定した場合には、前記秘匿管理情報を参照して、前記連携要求の応答に対して秘匿化の要否を示す情報を前記連携要求に付加して送信することを特徴とするデータ処理方法。
【0201】
上記構成により、サーバ161の連携部165は、秘匿化の内容を予め設定した秘匿管理情報168を参照することで、連携要求に対する応答に対して秘匿化の要否を示す情報を付加することができる。連携要求の応答を秘匿化することで、ブロックチェーンBC#1に所属する計算機101に対して、連携要求に対する応答を隠蔽することができる。
【0202】
(7)第1のブロックチェーン(BC#1)に所属する第1の計算機(101)と、第2のブロックチェーン(BC#2)に所属する第2の計算機(121)と、ネットワークを介して前記第1の計算機(101)及び第2の計算機(121)に接続されたサーバ(161)と、を有して処理を連携する計算機システムであって、前記サーバ(161)は、処理要求を受け付けて、前記処理要求に前記第1の計算機(101)が所属する第1のブロックチェーン(BC#1)に対する処理と、前記第1の計算機(101)と連携する第2の計算機(121)が所属する第2のブロックチェーン(BC#2)に対する処理を示す連携要求が含まれているか否かを判定し、前記連携要求が含まれている場合には、前記連携要求の秘匿化が必要か否かを判定する連携部(165)と、前記判定の結果に基づいて、秘匿化が必要な連携要求に秘匿化を施す秘匿部(166)と、を有し、前記連携部(165)は、前記判定の結果に応じて前記秘匿部(166)で秘匿化が施された連携要求を含む処理要求を処理実行要求として前記第1の計算機(101)に送信することを特徴とする計算機システム。
【0203】
上記構成により、連携元のブロックチェーンBC#1(第1のブロックチェーン)に所属する計算機101(第1の計算機)間でデータを共有し、ブロックチェーンBC#2(第2のブロックチェーン)で管理する情報(連携要求や応答)など、連携元のブロックチェーンBC#1の参加者には関係しない又は開示したくない情報については、秘匿化によって関係当事者間のみでの共有が可能となる。
【0204】
(8)上記(7)に記載の計算機システムであって、前記サーバ(161)は、前記秘匿化の内容を予め設定した秘匿管理情報(168)を、さらに有し、前記連携部(165)は、前記秘匿管理情報(1638)に基づいて、前記連携要求を秘匿化する内容を決定することを特徴とする計算機システム。
【0205】
上記構成により、サーバ161のデータ秘匿部166は、呼出関数などに応じて予め秘匿レベルが設定された秘匿管理情報168を参照することで、連携要求のうち秘匿化する対象(524)を決定することが可能となる。
【0206】
(9)上記(7)に記載の計算機システムであって、前記連携部(165)は、前記連携要求に秘匿化が必要と判定した場合には、前記秘匿管理情報168を参照して、前記連携要求の応答に対して秘匿化の要否を示す情報を前記連携要求に付加して送信することを特徴とする計算機システム。
【0207】
上記構成により、サーバ161の連携部165は、秘匿化の内容を予め設定した秘匿管理情報(168)を参照することで、連携要求に対する応答に対して秘匿化の要否を示す情報を付加することができる。連携要求の応答を秘匿化することで、ブロックチェーンBC#1に所属する計算機101に対して、連携要求に対する応答を隠蔽することができる。
【0208】
(10)上記(7)に記載の計算機システムであって、前記第1の計算機(101)は、前記サーバ(161)から受信した処理実行要求を受信して、前記処理実行要求に含まれる前記処理要求を処理し、前記処理実行要求に前記連携要求が含まれる場合には、前記連携要求を前記第2の計算機(121)へ送信し、前記第2の計算機(121)は、前記連携要求を受け付けて、当該連携要求が秘匿化されている場合には、前記連携要求を復元した後に当該連携要求を処理して、前記連携要求の処理結果を前記第1の計算機(101)へ応答し、前記第1の計算機(101)は、前記連携要求に対する応答を受信すると、前記処理要求の処理結果と、連携要求に対する処理結果と、を前記サーバ(161)に応答することを特徴とする計算機システム。
【0209】
上記構成により、ブロックチェーンBC#2(第2のブロックチェーン)に所属する計算機121は、連携要求に対する応答に秘匿化を実施することで、ブロックチェーンBC#1に所属する計算機101に対して、連携要求に対する応答を隠蔽することができる。
【0210】
(11)プロセッサ(CPU123)と、メモリ(122)と、第1の計算機(101)に接続されるインタフェース(124)と、を有する計算機(121)であって、連携要求を受け付けて、当該連携要求が秘匿化されているか否かを判定する連携部(125)と、前記連携要求が秘匿化されている場合には、前記連携要求を復元する復元部(秘匿復元部129)と、前記復元された連携要求を処理する管理部(トランザクション管理部126)と、を有し、前記連携部(125)は、前記処理の結果を応答することを特徴とする計算機。
【0211】
計算機121(第2の計算機)は、秘匿化された連携要求を復元(復号)してからトランザクション管理部126で処理して、計算機101に対して連携要求を隠蔽して、連携要求の処理結果を応答することができる。
【0212】
(12)上記(11)に記載の計算機(121)であって、応答内容の秘匿の要否を予め設定した秘匿レベル管理情報(秘匿制御情報130)と、前記管理部(126)の処理結果を、前記秘匿レベル管理情報(130)に基づいて秘匿化する秘匿化部(データ秘匿部128)と、をさらに有し、前記連携部(125)は、前記秘匿化された処理結果を応答することを特徴とする計算機。
【0213】
上記構成により、ブロックチェーンBC#2(第2のブロックチェーン)に所属する計算機121は、連携要求に対する応答に秘匿化を実施することで、ブロックチェーンBC#1に所属する計算機101に対して、連携要求に対する応答を隠蔽することができる。
【0214】
(13)上記(12)に記載の計算機であって、前記秘匿化部(128)は、前記秘匿レベル管理情報(130)に基づいて前記処理結果を秘匿化する内容を決定することを特徴とする計算機。
【0215】
上記構成により、ブロックチェーンBC#2(第2のブロックチェーン)に所属する計算機121は、秘匿制御情報130を参照することで、連携要求に対する応答に秘匿化を実施するか否かを制御することができる。
【0216】
尚、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
【0217】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0218】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
<補足>
【0219】
特許請求の範囲に記載した以外の本発明の観点の代表的なものとして、次のものがあげ
られる。
【0220】
<14>
プロセッサと、メモリと、サーバ及び第2の計算機に接続されるインタフェースと、を有する第1の計算機であって、
前記サーバから処理実行要求を受け付けて、当該処理実行要求に連携要求が含まれるか否かを判定し、前記連携要求が含まれる場合には、前記第2の計算機へ前記連携要求を送信する連携部と、
前記処理実行要求に含まれる処理要求を処理する管理部と、を有し、
前記連携部は、
前記第2の計算機から前記連携要求の処理結果を受け付けると、前記処理要求の処理結果と連携要求の処理結果を前記サーバに応答することを特徴とする第1の計算機。
【0221】
<15>
プロセッサと、メモリと、サーバ及び第2の計算機に接続されるインタフェースと、を有する第1の計算機が処理を連携するデータ処理方法であって、
前記第1の計算機が、前記サーバから処理実行要求を受け付けて、当該処理実行要求に連携要求が含まれるか否かを判定し、前記連携要求が含まれる場合には、前記第2の計算機へ前記連携要求を送信する第1のステップと、
前記第1の計算機が、前記処理実行要求に含まれる処理要求を処理する第2のステップと、
前記第1の計算機が、前記第2の計算機から前記連携要求の処理結果を受け付けると、前記処理要求の処理結果と連携要求の処理結果を前記サーバに応答する第3のステップと、
を含むことを特徴とするデータ処理方法。
【0222】
<16>
プロセッサと、メモリと、第1の計算機に接続されるインタフェースと、を有する第2の計算機が処理を連携するデータ処理方法であって、
連携要求を受け付けて、当該連携要求が秘匿化されているか否かを判定する連携部と、
前記連携要求が秘匿化されている場合には、前記連携要求を復元する復元部と、
前記復元された連携要求を処理する管理部と、を有し、
前記連携部は、
前記処理結果を応答することを特徴とするデータ処理方法。
【0223】
<17>上記<16>に記載のデータ処理方法であって、
応答内容の秘匿の要否を予め設定した秘匿レベル管理情報と、
前記管理部の処理結果を、前記秘匿レベル管理情報に基づいて秘匿化する秘匿化部と、をさらに有し、
前記連携部は、
前記秘匿化された処理結果を応答することを特徴とするデータ処理方法。
【0224】
<18>上記<17>に記載のデータ処理方法であって、
前記秘匿化部は、
前記秘匿レベル管理情報に基づいて前記処理結果を秘匿化する内容を決定することを特徴とするデータ処理方法。
【0225】
<19>
プロセッサと、メモリと、第1の計算機に接続されるインタフェースと、を有するサーバが処理を連係するデータ処理方法であって、
前記サーバが、処理要求を受け付けて、前記処理要求に前記第1の計算機が所属する第1のブロックチェーンに対する処理と、前記第1の計算機と連携する第2の計算機が所属する第2のブロックチェーンに対する処理を示す連携要求が含まれているか否かを判定し、前記連携要求が含まれている場合には、前記連携要求の秘匿化が必要か否かを判定する第1のステップと、
前記サーバが、前記判定の結果に基づいて、秘匿化が必要な連携要求に秘匿化を実施する施す第2のステップと、
前記サーバが、前記判定の結果に応じて前記秘匿部で秘匿化が施された連携要求を含む処理実行要求を前記第1の計算機に送信する第3のステップと、
を含むことを特徴とするデータ処理方法。
【0226】
<20>上記<19>に記載のデータ処理方法であって、
前記サーバは、
前記秘匿化の内容を予め設定した秘匿管理情報を、さらに有し、
前記第2のステップは
前記秘匿管理情報に基づいて、前記連携要求を秘匿化する内容を決定することを特徴とするデータ処理方法。
【0227】
<21>上記<19>に記載のデータ処理方法であって、
前記第2のステップは、
前記連携要求に秘匿化が必要と判定した場合には、前記連携要求に対する応答に対して秘匿化の要否を示す情報を前記連携要求に付加して送信することを特徴とするデータ処理方法。
【符号の説明】
【0228】
101、121 計算機
102、122、142、162 メモリ
103、123、143、163 CPU
104、124、144、164 I/F
105、125、145、165 連携部
106、126 トランザクション管理部
107、127 合意形成部
128、166 データ秘匿部
129、167 秘匿復元部
108 プログラム管理情報
109 連携先情報
111、131 台帳
130 秘匿制御情報
168 秘匿管理情報
141 クライアント端末
151、161 サーバ