(57)【要約】【課題】ブロックチェーンを有効に活用することができるプログラムを提供する。【解決手段】コンピュータに、ＤＡｐｐｓにおいて実行されるコントラクトコードを含む一つ以上のスマートコントラクト、及び当該スマートコントラクト毎に設定され、アクセス権限の付与対象となる一つ以上のＤＡｐｐｓＩＤを、定義したトランザクションを生成し、ブロックチェーンに送信する機能、トランザクションに定義されたスマートコントラクト毎に発行される一対の鍵の一方となる秘密鍵をブロックチェーンから受信する機能、ブロックチェーンから受信した秘密鍵を、トランザクションに定義されたＩＤに対応するＤＡｐｐｓに送信する機能を実現させる。【選択図】図１
2020127109.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
非中央集権による分散型アプリケーションにおいて実行されるコントラクトコードを含む一つ以上のスマートコントラクト、及び当該スマートコントラクトごとに設定され、アクセス権限の付与対象となる一つ以上の前記分散型アプリケーションを特定するためのＩＤを、定義したトランザクションを生成し、分散型台帳ネットワークに送信する機能、
前記トランザクションに定義された前記スマートコントラクトごとに発行される一対の鍵の一方となる秘密鍵を前記分散型台帳ネットワークから受信する機能、
前記分散型台帳ネットワークから受信した前記秘密鍵を、前記トランザクションに定義された前記ＩＤに対応する前記分散型アプリケーションに送信する機能、
を実現させるためのプログラム。
【請求項２】
他の前記分散型アプリケーションから前記秘密鍵を受信した場合に、当該秘密鍵を前記分散型台帳ネットワークに送信するとともに、当該秘密鍵に対応する前記スマートコントラクトに対する書き込み又は読み込みを実行させる機能、
をさらに実現させるための請求項１記載のプログラム。
【請求項３】
前記書き込み又は読み込みを実行させる機能は、前記分散型台帳ネットワークにより、前記秘密鍵に基づいて正当な前記分散型アプリケーションであると認証された場合に、前記秘密鍵に対応する前記スマートコントラクトに対する書き込み又は読み込みを実行させる、
請求項２記載のプログラム。
【請求項４】
端末装置に、
非中央集権による分散型アプリケーションにおいて実行されるコントラクトコードを含む一つ以上のスマートコントラクト、及び当該スマートコントラクトごとに設定され、アクセス権限の付与対象となる一つ以上の前記分散型アプリケーションを特定するためのＩＤを、定義したトランザクションを生成し、分散型台帳ネットワークに送信する処理、
前記トランザクションに定義された前記スマートコントラクトごとに発行される一対の鍵の一方となる秘密鍵を前記分散型台帳ネットワークから受信する処理、
前記分散型台帳ネットワークから受信した前記秘密鍵を、前記トランザクションに定義された前記ＩＤに対応する前記分散型アプリケーションに送信する処理、
を実行させるアプリケーションプログラムをインストールさせるために配信することにより、端末装置を製造する方法。
【請求項５】
前記アプリケーションプログラムは、
他の前記分散型アプリケーションから前記秘密鍵を受信した場合に、当該秘密鍵を前記分散型台帳ネットワークに送信するとともに、当該秘密鍵に対応する前記スマートコントラクトに対する書き込み又は読み込みを実行させる処理、
をさらに実行させる、請求項４記載の端末装置を製造する方法。
【請求項６】
前記書き込み又は読み込みを実行させる処理は、前記分散型台帳ネットワークにより、前記秘密鍵に基づいて正当な前記分散型アプリケーションであると認証された場合に、前記秘密鍵に対応する前記スマートコントラクトに対する書き込み又は読み込みを実行させる、
請求項５記載の端末装置を製造する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム及び端末を製造する方法に関する。
【背景技術】
【０００２】
取引の履歴を記録するデータベースを一ヵ所で管理するのではなく、多くの場所で同じデータベースを保持しながら分散的に管理する技術として、ブロックチェーンがある。ブロックチェーンは、サーバや管理者を設ける必要がなく、サーバダウンが起こることもない。また、ブロックチェーンを使って取引を記録、管理することで改ざんを事実上不可能とすることができる。
【０００３】
下記特許文献１には、ブロックチェーンを利用して貨幣通貨をやり取りするブロックチェーンネットワークに関する技術が開示されている。このブロックチェーンネットワークは、ブロックチェーンを利用して構築される非中央集権型のネットワークであり、このようなネットワークを実現するためのアプリケーションとして、ＤＡｐｐｓ（Decentralized Applications）がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−３６８９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般に、ＤＡｐｐｓは、業者や運営者ごとに開発されて提供されるため、ＤＡｐｐｓにより形成される分散型ネットワークは、業者や運営者ごとに独立したネットワークとなる。したがって、各分散型ネットワークで利用されるブロックチェーンのデータは、それぞれのネットワーク内で利用されることにとどまる。業者や運営者が異なるネットワークであってもブロックチェーンのデータを共有することができれば、分散型ネットワークをより有効に活用することが可能となる。しかしながら、業者や運営者が異なるネットワーク上で分散型台帳ネットワークであるブロックチェーンのデータを共有するためには、共有するデータのセキュリティを確保する必要がある。
【０００６】
本発明は、このような事情に鑑みてなされたものであり、分散型台帳ネットワークを有効に活用することができるプログラム及び端末を製造する方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係るプログラムは、コンピュータに、非中央集権による分散型アプリケーションにおいて実行されるコントラクトコードを含む一つ以上のスマートコントラクト、及び当該スマートコントラクトごとに設定され、アクセス権限の付与対象となる一つ以上の前記分散型アプリケーションを特定するためのＩＤを、定義したトランザクションを生成し、分散型台帳ネットワークに送信する機能、前記トランザクションに定義された前記スマートコントラクトごとに発行される一対の鍵の一方となる秘密鍵を前記分散型台帳ネットワークから受信する機能、前記分散型台帳ネットワークから受信した前記秘密鍵を、前記トランザクションに定義された前記ＩＤに対応する前記分散型アプリケーションに送信する機能、を実現させる。
【０００８】
上記態様において、他の前記分散型アプリケーションから前記秘密鍵を受信した場合に、当該秘密鍵を前記分散型台帳ネットワークに送信するとともに、当該秘密鍵に対応する前記スマートコントラクトに対する書き込み又は読み込みを実行させる機能、をさらに実現させることとしてもよい。
【０００９】
上記態様において、前記書き込み又は読み込みを実行させる機能は、前記分散型台帳ネットワークにより、前記秘密鍵に基づいて正当な前記分散型アプリケーションであると認証された場合に、前記秘密鍵に対応する前記スマートコントラクトに対する書き込み又は読み込みを実行させることとしてもよい。
【００１０】
本発明の他の態様に係る端末装置を製造する方法は、端末装置に、非中央集権による分散型アプリケーションにおいて実行されるコントラクトコードを含む一つ以上のスマートコントラクト、及び当該スマートコントラクトごとに設定され、アクセス権限の付与対象となる一つ以上の前記分散型アプリケーションを特定するためのＩＤを、定義したトランザクションを生成し、分散型台帳ネットワークに送信する処理、前記トランザクションに定義された前記スマートコントラクトごとに発行される一対の鍵の一方となる秘密鍵を前記分散型台帳ネットワークから受信する処理、前記分散型台帳ネットワークから受信した前記秘密鍵を、前記トランザクションに定義された前記ＩＤに対応する前記分散型アプリケーションに送信する処理、を実行させるアプリケーションプログラムをインストールさせるために配信することにより、端末装置を製造する。
【００１１】
上記態様において、前記アプリケーションプログラムは、他の前記分散型アプリケーションから前記秘密鍵を受信した場合に、当該秘密鍵を前記分散型台帳ネットワークに送信するとともに、当該秘密鍵に対応する前記スマートコントラクトに対する書き込み又は読み込みを実行させる処理、をさらに実行させることとしてもよい。
【００１２】
上記態様において、前記書き込み又は読み込みを実行させる処理は、前記分散型台帳ネットワークにより、前記秘密鍵に基づいて正当な前記分散型アプリケーションであると認証された場合に、前記秘密鍵に対応する前記スマートコントラクトに対する書き込み又は読み込みを実行させる、こととしてもよい。
【発明の効果】
【００１３】
本発明によれば、分散型台帳ネットワークを有効に活用することができるプログラム及び端末を製造する方法を提供できる。
【図面の簡単な説明】
【００１４】
【図１】実施形態に係るプログラムを実行する端末装置により形成される分散型ネットワークの概念を例示する模式図である。
【図２】実施形態に係るプログラムを実行する端末装置の構成を例示する図である。
【図３】分散型台帳ネットワークを形成するブロックの一例を説明するための模式図である。
【図４】実施形態に係るプログラムを実行する端末装置の動作を説明するためのシーケンスチャートである。
【図５】分散型台帳ネットワークを形成するブロックの遷移状態を説明するための模式図である。
【図６】分散型台帳ネットワークを形成するブロックの遷移状態を説明するための模式図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について図面を参照して詳細に説明する。なお、各図において、同一の符号を付すものは、同一又は同様の機能を有する。
【００１６】
図１を参照して、実施形態に係るプログラムを実行する端末装置により形成される分散型ネットワークの概念について説明する。端末装置として、例えば、スマートフォン、タブレット端末、ノート型ＰＣ、デスクトップ型ＰＣ等を用いることができる。
【００１７】
図１に示すように、分散型ネットワークは、業者又は運営者が異なる複数の分散型アプリケーション（以下、「ＤＡｐｐｓ」ともいう。）１ａ、１ｂにより形成される。ＤＡｐｐｓ１ａ、１ｂは、分散型台帳ネットワークを利用して構築される非中央集権型のネットワークを実現するためのアプリケーションである。なお、本実施形態では、説明の便宜のために、二つのＤＡｐｐｓ１ａ、１ｂを用いて説明するが、ＤＡｐｐｓが三つ以上存在する場合にも同様に本発明を適用することができる。また、ＤＡｐｐｓ１ａ、１ｂは、特に区別して説明する必要がない場合には、ＤＡｐｐｓ１と称する。
【００１８】
分散型台帳ネットワークは、ブロックチェーン（Block Chain）とも称される。ブロックチェーンは、ブロックと呼ばれるデータの単位を生成し、鎖（チェーン）のように連結していくことにより、データを保管するデータベースである。ブロックチェーンは、例えば、定義された契約手続を実現するスマートコントラクトにより機能する。ブロックチェーンにおいて、各ブロックは、ＤＡｐｐｓ１を利用する複数のユーザによって分散して管理される。ブロックチェーンは、特定箇所に情報が集中しないため、何らかのトラブルによって、システム全体が停止することがない。また、ブロックチェーンは、その性質上、内容を改ざんすることが事実上不可能になっている。
【００１９】
図２を参照して、実施形態に係るプログラムを実行する端末装置の構成について説明する。図２に示すように、端末装置１０は、物理的な構成として、例えば、プロセッサ１１と、通信インタフェース１２と、記憶資源１３とを備える。
【００２０】
プロセッサ１１は、算術演算、論理演算、ビット演算等を処理する算術論理演算ユニット及び各種レジスタから構成され、記憶資源１３に格納されているコンピュータプログラム１３０を実行することで、後述する各種機能を実現する。
【００２１】
通信インタフェース１２は、ネットワークに接続し、ネットワーク上の他の端末と通信をするためのハードウェアモジュールである。
【００２２】
記憶資源１３は、例えば、物理デバイスの記憶領域が提供する論理デバイスである。物理デバイスとして、例えば、ディスクドライブ又は半導体メモリ等のコンピュータ読み取り可能な記録媒体を用いることができる。
【００２３】
記憶資源１３には、例えば、コンピュータプログラム１３０や、データベース１３２に登録される各種データ等が格納される。
【００２４】
データベース１３２に登録される各種データとして、例えば、上述したブロックチェーンを形成する各ブロックがある。図３を参照して、ブロックについて説明する。ブロックは、例えば、ヘッダ及びトランザクションデータを含む。ヘッダには、例えば、前のブロックのハッシュ値が格納される。トランザクションデータには、例えば、各ＤＡｐｐｓ１から送信されたトランザクションの内容等が格納される。
【００２５】
各ＤＡｐｐｓ１から送信されるトランザクションには、例えば、ＤＡｐｐｓ１において実行されるコントラクトコードを含むスマートコントラクト、及びそのスマートコントラクト毎に設定され、アクセス権限の付与対象となるＤＡｐｐｓＩＤが定義されている。各ＤＡｐｐｓ１から送信されたトランザクションの内容は、例えば、スマートコントラクトレコードとして記憶される。図３を参照してスマートコントラクトレコードについて説明する。
【００２６】
図３のブロックには、トランザクションデータとして、例示的に１６件のスマートコントラクトレコードが格納されている。スマートコントラクトレコードは、データ項目として、例えば、レコードＮｏ項目、コントラクト項目、ＤＡｐｐｓＩＤ項目、公開鍵項目を含む。レコードＮｏ項目は、スマートコントラクトレコードを特定するための識別番号を格納する。
【００２７】
コントラクト項目は、トランザクションで定義されたコントラクトコード等を格納する。例示的に、レコードＮｏ“１”に対応するコントラクト項目には、ＤＡｐｐｓ１ａがトランザクションを生成する際に書き込んだ“ＤＡｐｐｓ１ａの情報”に関するコントラクトコードが格納されている。
【００２８】
ＤＡｐｐｓＩＤ項目は、アクセス権限の付与対象としてトランザクションで定義されたＤＡｐｐｓＩＤを格納する。例示的に、レコードＮｏ“２”に対応するＤＡｐｐｓＩＤ項目には、ＤＡｐｐｓ１ｂのＩＤである“１ｂ”が格納されている。
【００２９】
公開鍵項目は、ブロックチェーンがＤＡｐｐｓＩＤ項目のＩＤに対応するＤＡｐｐｓとのやり取りに用いるために発行した一対の鍵のうち、一方の鍵となる公開鍵の鍵情報を格納する。他方の鍵となる秘密鍵は、ＤＡｐｐｓＩＤ項目のＩＤに対応するＤＡｐｐｓに付与する。一対の鍵は、例えば、ＰＫＩ（Public Key Infrastructure）を利用して発行することができる。例示的に、レコードＮｏ“２”に対応する公開鍵項目には、ブロックチェーンがＤＡｐｐｓ１ｂとのやり取りに用いるために発行した一対の鍵のうち、公開鍵の鍵情報が格納されている。この公開鍵に対応する秘密鍵は、ＤＡｐｐｓ１ｂに対して付与される。
【００３０】
図２に示すコンピュータプログラム１３０は、所定の処理を行うためのプログラムであり、端末装置１０のメインプログラムや、そのメインプログラムの動作中に適宜呼び出されて実行される複数のソフトウェアモジュール１３１を有する。ソフトウェアモジュール１３１は、それぞれ特定の処理を実行するためにモジュール化されたサブプログラムであり、例えば、プロシージャ、サブルーチン、メソッド、関数及びデータ構造等を用いて作成される。
【００３１】
端末装置１０のコンピュータプログラム１３０を実行することで実現する機能について説明する。端末装置１０は、機能的な構成として、例えば、トランザクション送信部、ブロック登録部、鍵生成部、秘密鍵送信部、秘密鍵受信部、権限付与部及びスマートコントラクト処理部を有する。
【００３２】
トランザクション送信部は、ＤＡｐｐｓ１の機能であり、トランザクションを生成してブロックチェーンに送信する。トランザクションは、例えば、以下（１）及び（２）の定義を含めて生成される。（１）ＤＡｐｐｓ１において実行されるコントラクトコードを含む一つ以上のスマートコントラクト。（２）上記（１）のスマートコントラクト毎に設定される一つ以上のＤＡｐｐｓＩＤ。
【００３３】
ブロック登録部は、ブロックチェーンの機能であり、ＤＡｐｐｓ１から受信したトランザクションに基づいてブロックを登録する。ブロック登録部は、登録対象のブロックに含まれるスマートコントラクト毎に、一つ以上のＤＡｐｐｓＩＤ、及び鍵生成部により生成される公開鍵を登録する。
【００３４】
鍵生成部は、ブロックチェーンの機能であり、ブロックを登録する際に、そのブロックに含まれるスマートコントラクト毎に、一対の鍵、すなわち公開鍵及び秘密鍵を生成する。
【００３５】
秘密鍵送信部は、ブロックチェーンの機能であり、鍵生成部により生成された秘密鍵を、トランザクションの送信元であるＤＡｐｐｓ１に送信する。
【００３６】
秘密鍵受信部は、ＤＡｐｐｓ１の機能であり、トランザクションに定義されたスマートコントラクト毎に発行される秘密鍵を、ブロックチェーンから受信する。
【００３７】
権限付与部は、ＤＡｐｐｓ１の機能であり、特定のスマートコントラクトに対する書き込み権限又は読み込み権限を付与するために、ブロックチェーンから受信した秘密鍵を、権限の付与対象となるＤＡｐｐｓ１に送信する。権限の付与対象となるＤＡｐｐｓ１は、スマートコントラクトレコードのＤＡｐｐｓＩＤ項目のＩＤに対応するＤＡｐｐｓ１となる。
【００３８】
権限付与部は、ブロックチェーンから受信した秘密鍵が複数ある場合に、複数の秘密鍵を一括して権限の付与対象となるＤＡｐｐｓ１に送信することとしてもよいし、秘密鍵を一つずつ権限の付与対象となるＤＡｐｐｓ１に送信することとしてもよい。
【００３９】
スマートコントラクト処理部は、ＤＡｐｐｓ１の機能であり、他のＤＡｐｐｓ１から秘密鍵を受信した場合に、その秘密鍵で暗号化した情報（以下、「秘密鍵暗号化情報」ともいう。）を含むアクセス要求をブロックチェーンに送信する。そのアクセス要求には、スマートコントラクトに対する書き込み要求又は読み込み要求が含まれる。
【００４０】
ここで、アクセス要求を受信したブロックチェーンは、アクセス要求に含まれる秘密鍵暗号化情報を、アクセス要求の送信元ＤＡｐｐｓ１のＩＤに対応するスマートコントラクトレコードの公開鍵で復号する。ブロックチェーンは、復号に成功した場合に、アクセス要求の送信元ＤＡｐｐｓ１がスマートコントラクトにアクセスできる正当なＤＡｐｐｓであると認証する。
【００４１】
ブロックチェーンは、正当なＤＡｐｐｓであると認証した場合に、アクセス要求に基づいて、スマートコントラクトに対する書き込み又は読み込みを実行する。
【００４２】
次に、図４を参照し、本実施形態に係るプログラムを実行する端末装置の動作の一例について説明する。本動作では、ＤＡｐｐｓ１ａが生成したトランザクションに基づいて、ブロックチェーンがスマートコントラクトを含むブロックを生成し、そのブロックに含まれるスマートコントラクトにＤＡｐｐｓ１ｂがデータを書き込む場合について説明する。
【００４３】
最初に、ＤＡｐｐｓ１ａは、トランザクションを生成し（ステップＳ１０１）、そのトランザクションをブロックチェーンに送信する（ステップＳ１０２）。
【００４４】
続いて、ブロックチェーンは、トランザクションに基づいてブロックを登録し（ステップＳ１０３）、登録したブロックに含まれるスマートコントラクト毎に一対の鍵を生成する（ステップＳ１０４）。
【００４５】
上記ステップＳ１０３において登録されたブロックについて、図５を参照して具体的に説明する。図示のブロックには、スマートコントラクトレコードが１６件登録され、レコードＮｏ“１”に対応するコントラクト項目に、ＤＡｐｐｓ１ａがトランザクションを生成する際に書き込んだ“ＤＡｐｐｓ１ａの情報”に関するコントラクトコードが格納されている。また、レコードＮｏ“２”〜“１６”に対応するＤＡｐｐｓＩＤ項目に、アクセスの許可対象としてトランザクションに定義されたＤＡｐｐｓ１ｂのＩＤである“１ｂ”が格納されている。
【００４６】
続いて、ブロックチェーンは、スマートコントラクト毎に生成した一対の鍵のうち、一方を公開鍵としてブロックに登録し（ステップＳ１０５）、他方を秘密鍵としてＤＡｐｐｓ１ａに送信する（ステップＳ１０６）。
【００４７】
上記ステップＳ１０５〜ステップＳ１０６の動作について、図３を参照して具体的に説明する。ブロックチェーンは、レコードＮｏ“２”〜“１６”に対応するコントラクト項目への書き込み権限又は読み込み権限を認証する際に用いる一対の鍵を、レコードＮｏ毎に生成し、一対の鍵の一方を公開鍵として公開鍵項目に登録し、他方を秘密鍵として、ＤＡｐｐｓ１ａに送信する。
【００４８】
続いて、ＤＡｐｐｓ１ａは、特定のスマートコントラクトに書き込むための秘密鍵をＤＡｐｐｓ１ｂに送信する（ステップＳ１０７）。このステップＳ１０７の動作について、図３を参照して具体的に説明する。ＤＡｐｐｓ１ａは、例えば、レコードＮｏ“２”に対応するコントラクト項目に書き込むための秘密鍵を、ＤＡｐｐｓＩＤが“１ｂ”であるＤＡｐｐｓ１ｂに送信する。
【００４９】
続いて、ＤＡｐｐｓ１ｂは、特定のスマートコントラクトに対する書き込み要求（秘密鍵暗号化情報を含む）をブロックチェーンに送信する（ステップＳ１０８）。このステップＳ１０８の動作について、図３を参照して具体的に説明する。ＤＡｐｐｓ１ｂは、レコードＮｏ“２”に対応するコントラクト項目に書き込むための書き込み要求（秘密鍵暗号化情報を含む）をブロックチェーンに送信する。
【００５０】
続いて、ブロックチェーンは、書き込み要求に含まれる秘密鍵暗号化情報を、スマートコントラクトレコードの公開鍵で復号し、書き込み要求の送信元であるＤＡｐｐｓ１ｂがスマートコントラクトにアクセスできる正当なＤＡｐｐｓであるか否かを判定する（ステップＳ１０９）。このステップＳ１０９の動作について、図３を参照して具体的に説明する。ブロックチェーンは、書き込み要求に含まれる秘密鍵暗号化情報を、レコードＮｏ“２”に対応する公開鍵項目の公開鍵で復号し、書き込み要求の送信元であるＤＡｐｐｓ１ｂが、レコードＮｏ“２”のスマートコントラクトレコードにアクセスできる正当なＤＡｐｐｓであるか否かを判定する。
【００５１】
上記ステップＳ１０９で書き込み要求の送信元が正当なＤＡｐｐｓではないと判定された場合（ステップＳ１０９；ＮＯ）に、ブロックチェーンは、エラー通知をＤＡｐｐｓ１ｂに送信する（ステップＳ１１０）。
【００５２】
一方、上記ステップＳ１０９で書き込み要求の送信元が正当なＤＡｐｐｓであると判定された場合（ステップＳ１０９；ＹＥＳ）に、ブロックチェーンは、特定のスマートコントラクトに対する書き込みを許可し、書き込み要求に基づいて、特定のスマートコントラクトに対する書き込みを実行する（ステップＳ１１１）。
【００５３】
例示的に、図６のブロックを参照して説明する。この場合、ブロックチェーンは、レコードＮｏ“２”に対応するコントラクト項目に、“ＤＡｐｐｓ１ｂの情報”に関するコントラクトコードを書き込むこととなる。
【００５４】
なお、上記動作では、ＤＡｐｐｓ１ｂがスマートコントラクトにデータを書き込む場合について説明したが、ＤＡｐｐｓ１ｂがスマートコントラクトからデータを読み込む場合についても同様に行うことができる。この場合、例えば、ＤＡｐｐｓ１ａがスマートコントラクトに書き込んだ“ＤＡｐｐｓ１ａの情報”に対し、対応するＤＡｐｐｓＩＤ項目に、読み込み権限の付与対象として“１ｂ”を登録しておくことで、ＤＡｐｐｓ１ｂが読み込みを行うこともできる。
【００５５】
上述したように、実施形態に係るプログラムを実行する端末装置１０によれば、一つ以上のスマートコントラクト及びスマートコントラクト毎に設定される一つ以上のＤＡｐｐｓＩＤを定義したトランザクションを生成してブロックチェーンに送信し、その送信したトランザクションに定義されたスマートコントラクト毎に発行される一対の鍵の一方となる秘密鍵をブロックチェーンから受信し、その受信した秘密鍵を、トランザクションに定義されたＤＡｐｐｓＩＤに対応するＤＡｐｐｓに送信することができる。
【００５６】
これにより、ブロックチェーンは、ＤＡｐｐｓから受信した秘密鍵暗号化情報に基づいて、その情報の送信元が、アクセス権限が付与されたＤＡｐｐｓであるかどうかを判定することが可能となる。
【００５７】
また、ＤＡｐｐｓは、トランザクションをブロックチェーンに登録した他のＤＡｐｐｓから秘密鍵を受信した場合に、その秘密鍵をブロックチェーンに送信し、ブロックチェーンにより、自ＤＡｐｐｓが正当なＤＡｐｐｓであると認証された場合に、秘密鍵に対応するスマートコントラクトに対する書き込み又は読み込みを実行することが可能となる。
【００５８】
それゆえ、実施形態に係るプログラムを実行する端末装置１０によれば、セキュリティを確保したうえで業者又は運営者が異なる複数のＤＡｐｐｓに対し、ブロックチェーンのデータを共有させることが可能となるため、ブロックチェーンを有効に活用することができる。
【００５９】
なお、本発明は、上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、上述した各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更し、又は並列に実行することができる。
【符号の説明】
【００６０】
１…分散型アプリケーション（ＤＡｐｐｓ）、１０…端末装置、１１…プロセッサ、１２…通信インタフェース、１３…記憶資源、１３０…コンピュータプログラム、１３１…ソフトウェアモジュール、１３２…データベース
【図１】
2020127109.tif 000003
【図２】
2020127109.tif 000004
【図３】
2020127109.tif 000005
【図４】
2020127109.tif 000006
【図５】
2020127109.tif 000007
【図６】
2020127109.tif 000008