(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-25
(45)【発行日】2024-05-08
(54)【発明の名称】仮想分散型台帳ネットワークのためのシステムおよび方法
(51)【国際特許分類】
G06F 21/62 20130101AFI20240426BHJP
G06F 9/455 20180101ALI20240426BHJP
【FI】
G06F21/62 318
G06F9/455
(21)【出願番号】P 2021559468
(86)(22)【出願日】2020-03-18
(86)【国際出願番号】 IB2020052456
(87)【国際公開番号】W WO2020188494
(87)【国際公開日】2020-09-24
【審査請求日】2023-03-15
(31)【優先権主張番号】201921010499
(32)【優先日】2019-03-18
(33)【優先権主張国・地域又は機関】IN
(73)【特許権者】
【識別番号】521437884
【氏名又は名称】リライアンス・ジオ・インフォコム・リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ディリップ・クリシュナスワミ
(72)【発明者】
【氏名】アアユーシュ・バトナガー
(72)【発明者】
【氏名】カンチャン・チャウハン
(72)【発明者】
【氏名】ディペンダー・バムラフ
【審査官】中里 裕正
(56)【参考文献】
【文献】米国特許出願公開第2018/0114012(US,A1)
【文献】米国特許出願公開第2018/0167217(US,A1)
【文献】米国特許出願公開第2018/0349621(US,A1)
【文献】米国特許出願公開第2018/0375869(US,A1)
【文献】米国特許出願公開第2019/0058581(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 9/455
(57)【特許請求の範囲】
【請求項1】
仮想分散型台帳技術ネットワークノードを実装するためのシステムであって、
少なくとも1つのハードウェアプロセッサと、
動作を実施するように、前記少なくとも1つのハードウェアプロセッサによって実行可能な命令を記憶する少なくとも1つのメモリデバイスと
を備え、前記動作は、
1つまたは複数の仮想機械を作成することと、
前記1つまたは複数の仮想機械を介して複数のマイクロサービスを実行すること
とを含み、
前記複数のマイクロサービスのうちの少なくとも2つが、異なる分散型台帳技術ネットワークに関連付けられ、
前記複数のマイクロサービスは、
スマートコントラクトマイクロサービス要求を受信するように、およびマイクロサービスの間でイベントをルーティングするように構成されたイベントルーティングマネージャマイクロサービスと、
前記スマートコントラクトマイクロサービス要求に関連付けられたスマートコントラクトを実行するように構成されたスマートコントラクト実行マイクロサービスと、
前記スマートコントラクト実行マイクロサービスの出力結果を、前記異なる分散型台帳技術ネットワークのうちの1つに関連付けられた分散型台帳にコミットするように構成されたトランザクションリソースマネージャマイクロサービスとを含む、
システム。
【請求項2】
前記1つまたは複数の仮想機械の各々は、複数の仮想分散型台帳技術ノードを備える仮想分散型台帳技術ネットワークに関連付けられた仮想分散型台帳技術ノードである、請求項1に記載のシステム。
【請求項3】
前記1つまたは複数の仮想機械の各々は、異なる仮想分散型台帳技術ネットワークに関連付けられた仮想分散型台帳技術ノードであり、各仮想分散型台帳技術ネットワークは、複数の仮想分散型台帳技術ノードを備える、請求項1に記載のシステム。
【請求項4】
前記仮想分散型台帳技術ネットワークは、合意プロトコルを使って、その仮想分散型台帳技術ネットワークノードの間での合意を確認し、前記複数のマイクロサービスのうちの1つの出力結果を、前記分散型台帳にコミットする、請求項2に記載のシステム。
【請求項5】
前記仮想分散型台帳技術ノードのうちの1つは、マスタ台帳を記憶する製作者ノードであり、前記仮想分散型台帳技術ノードのうちの別の1つは、少なくとも部分的に複製された台帳を記憶する消費者ノードである、請求項2に記載のシステム。
【請求項6】
前記仮想分散型台帳技術ネットワークは、前記マスタ台帳に基づいて、前記少なくとも部分的に複製された台帳を非同期に更新するように構成される、請求項5に記載のシステム。
【請求項7】
前記少なくとも1つのメモリデバイスは、動作を実施するように、前記ハードウェアプロセッサによって実行可能な命令を記憶し、前記動作は、
前記分散型台帳の外部に記憶されたユーザデータにアクセスするための要求を受信することを含み、
前記複数のマイクロサービスは、前記ユーザデータにアクセスするための前記要求が承認されるか、それとも拒絶されるかを判断することによって、前記ユーザデータへのアクセスを制御するように構成されたデータ保護適合性マイクロサービスを含み、
前記トランザクションリソースマネージャマイクロサービスは、前記アクセス制御判断を前記分散型台帳にコミットするように構成される、請求項1に記載のシステム。
【請求項8】
仮想分散型台帳技術ネットワークノードを実装するための方法であって、
少なくとも1つのハードウェアプロセッサにより、1つまたは複数の仮想機械を作成するステップと、
前記少なくとも1つのハードウェアプロセッサにより、前記1つまたは複数の仮想機械を介して複数のマイクロサービスを実行するステップと
を含み、
前記複数のマイクロサービスのうちの少なくとも2つが、異なる分散型台帳技術ネットワークに関連付けられ、
前記複数のマイクロサービスは、
スマートコントラクトマイクロサービス要求を受信するように、およびマイクロサービスの間でイベントをルーティングするように構成されたイベントルーティングマネージャマイクロサービスと、
前記スマートコントラクトマイクロサービス要求に関連付けられたスマートコントラクトを実行するように構成されたスマートコントラクト実行マイクロサービスと、
前記スマートコントラクト実行マイクロサービスの出力結果を、前記異なる分散型台帳技術ネットワークのうちの1つに関連付けられた分散型台帳にコミットするように構成されたトランザクションリソースマネージャマイクロサービスとを含む、
方法。
【請求項9】
前記1つまたは複数の仮想機械の各々は、複数の仮想分散型台帳技術ノードを備える仮想分散型台帳技術ネットワークに関連付けられた仮想分散型台帳技術ノードである、請求項8に記載の方法。
【請求項10】
前記1つまたは複数の仮想機械の各々は、異なる仮想分散型台帳技術ネットワークに関連付けられた仮想分散型台帳技術ノードであり、各仮想分散型台帳技術ネットワークは、複数の仮想分散型台帳技術ノードを備える、請求項8に記載の方法。
【請求項11】
前記仮想分散型台帳技術ネットワークは、合意プロトコルを使って、その仮想分散型台帳技術ネットワークノードの間での合意を確認し、前記複数のマイクロサービスのうちの1つの出力結果を、前記分散型台帳にコミットする、請求項9に記載の方法。
【請求項12】
前記仮想分散型台帳技術ノードのうちの1つは、マスタ台帳を記憶する製作者ノードであり、前記仮想分散型台帳技術ノードのうちの別の1つは、少なくとも部分的に複製された台帳を記憶する消費者ノードである、請求項9に記載の方法。
【請求項13】
前記仮想分散型台帳技術ネットワークは、前記マスタ台帳に基づいて、前記少なくとも部分的に複製された台帳を非同期に更新するように構成される、請求項12に記載の方法。
【請求項14】
前記少なくとも1つのハードウェアプロセッサにより、前記分散型台帳の外部に記憶されたユーザデータにアクセスするための要求を受信するステップをさらに含み、
前記複数のマイクロサービスは、前記ユーザデータにアクセスするための前記要求が承認されるか、それとも拒絶されるかを判断することによって、前記ユーザデータへのアクセスを制御するように構成されたデータ保護適合性マイクロサービスを含み、
前記トランザクションリソースマネージャマイクロサービスは、前記アクセス制御判断を前記分散型台帳にコミットするように構成される、請求項8に記載の方法。
【請求項15】
仮想分散型台帳技術ネットワークノードを実装するための命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、動作を実施するように、ハードウェアプロセッサによって実行可能であり、前記動作は、
少なくとも1つのハードウェアプロセッサにより、1つまたは複数の仮想機械を作成することと、
前記少なくとも1つのハードウェアプロセッサにより、前記1つまたは複数の仮想機械を介して複数のマイクロサービスを実行すること
とを含み、
前記複数のマイクロサービスのうちの少なくとも2つが、異なる分散型台帳技術ネットワークに関連付けられ、
前記複数のマイクロサービスは、
スマートコントラクトマイクロサービス要求を受信するように、およびマイクロサービスの間でイベントをルーティングするように構成されたイベントルーティングマネージャマイクロサービスと、
前記スマートコントラクトマイクロサービス要求に関連付けられたスマートコントラクトを実行するように構成されたスマートコントラクト実行マイクロサービスと、
前記スマートコントラクト実行マイクロサービスの出力結果を、前記異なる分散型台帳技術ネットワークのうちの1つに関連付けられた分散型台帳にコミットするように構成されたトランザクションリソースマネージャマイクロサービスとを含む、
媒体。
【請求項16】
前記1つまたは複数の仮想機械の各々は、複数の仮想分散型台帳技術ノードを備える仮想分散型台帳技術ネットワークに関連付けられた仮想分散型台帳技術ノードである、請求項15に記載の媒体。
【請求項17】
前記1つまたは複数の仮想機械の各々は、異なる仮想分散型台帳技術ネットワークに関連付けられた仮想分散型台帳技術ノードであり、各仮想分散型台帳技術ネットワークは、複数の仮想分散型台帳技術ノードを備える、請求項15に記載の媒体。
【請求項18】
前記仮想分散型台帳技術ネットワークは、合意プロトコルを使って、その仮想分散型台帳技術ネットワークノードの間での合意を確認し、前記複数のマイクロサービスのうちの1つの出力結果を、前記分散型台帳にコミットする、請求項16に記載の媒体。
【請求項19】
前記仮想分散型台帳技術ノードのうちの1つは、マスタ台帳を記憶する製作者ノードであり、前記仮想分散型台帳技術ノードのうちの別の1つは、少なくとも部分的に複製された台帳を記憶する消費者ノードである、請求項16に記載の媒体。
【請求項20】
前記仮想分散型台帳技術ネットワークは、前記マスタ台帳に基づいて、前記少なくとも部分的に複製された台帳を非同期に更新するように構成される、請求項19に記載の媒体。
【請求項21】
前記媒体は、動作を実施するように、ハードウェアプロセッサによって実行可能な命令をさらに記憶し、前記動作は、
前記分散型台帳の外部に記憶されたユーザデータにアクセスするための要求を受信することを含み、
前記複数のマイクロサービスは、前記ユーザデータにアクセスするための前記要求が承認されるか、それとも拒絶されるかを判断することによって、前記ユーザデータへのアクセスを制御するように構成されたデータ保護適合性マイクロサービスを含み、
前記トランザクションリソースマネージャマイクロサービスは、前記アクセス制御判断を前記分散型台帳にコミットするように構成される、請求項15に記載の媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して、ワイヤレス/ワイヤーラインネットワークに関し、より詳細には、分散型台帳技術(DLT)またはブロックチェーン技術を使う仮想分散型台帳ネットワーク(DLN)プロビジョニングのための方法およびシステムに関する。
【背景技術】
【0002】
ノードからなるブロックチェーンネットワークは、Hyperledger Fabricまたはパブリックブロックチェーンネットワーク、たとえば、イーサリアムに基づいて、許可制/プライベートネットワークなど、特定のタイプのブロックチェーン技術を使い得る。ただし、そのようなシステムは、ある特定のタイプのブロックチェーンまたは分散型台帳技術を必要とし得る、特定の使用事例の要請に適応するための柔軟性を有していない。今日では、各特定の分散型台帳技術(DLT)の要請に応じるためにマイクロサービスを使用して、必要に応じて異なるタイプのDLTベースのネットワークが作成されること、およびプラットフォームによって作成された異なるDLTが互いと対話することを可能にし得る動的に構成可能なブロックチェーンプラットフォームをサポートするシステムも方法もない。
【発明の概要】
【発明が解決しようとする課題】
【0003】
したがって、複数のDLT/ブロックチェーンネットワークに参加するように作成することができ、これらの1つまたは複数のDLT/ブロックチェーンネットワークに参加するのに必要とされる性能を提供するためにマイクロサービスベースのアーキテクチャを活用することができ、許可制プライベートDLT/ブロックチェーンネットワークまたはパブリックDLT/ブロックチェーンネットワークなど、これらのブロックチェーンネットワークにわたって相互動作することができる仮想DLT(vDLT)ノードが必要とされている。
【課題を解決するための手段】
【0004】
本開示の実施形態は、従来のシステムにおける上述した技法的問題のうちの1つまたは複数への技術的解決策を提示し得る。たとえば、一実施形態では、仮想分散型台帳ネットワークを実装するための方法が提供される。前記方法は、ネットワークを介して、少なくとも1つのトランザクションに関連付けられたトランザクション要求を受信するステップと、仮想分散型台帳によって、少なくとも1つのトランザクションを記録するステップと、少なくとも1つのトランザクションに基づいてハッシュを計算するステップと、少なくとも1つのトランザクション用のハッシュを連鎖させるステップと、少なくとも1つのトランザクションの連鎖されたハッシュに基づいて、トランザクション更新要求を生成するステップと、1つまたは複数のコンピューティングノードに接続されたデータ記憶ユニットへ、トランザクション更新要求を送信するステップとを含み得る。
【0005】
別の実施形態では、仮想分散型台帳ネットワークを実装するためのシステムが提供される。前記システムは、少なくとも1つのトランザクション要求を記憶するように構成された1つまたは複数のデータ記憶ユニットと、互いに、および1つまたは複数のデータ記憶ユニットに接続された1つまたは複数のコンピューティングノードとを含んでよく、1つまたは複数のコンピューティングノードの各々は、ローカルデータ記憶ユニットと、1つまたは複数のマイクロサービスとを含み、各コンピューティングノードは、動作を実施するように構成される。動作は、ネットワークを介して、少なくとも1つのトランザクションに関連付けられたトランザクション要求を受信することと、仮想分散型台帳によって、少なくとも1つのトランザクションを記録することと、少なくとも1つのトランザクションに基づいてハッシュを計算することと、少なくとも1つのトランザクション用のハッシュを連鎖させることと、少なくとも1つのトランザクションの連鎖されたハッシュに基づいて、トランザクション更新要求を生成することと、1つまたは複数のコンピューティングノードに接続されたデータ記憶ユニットへ、トランザクション更新要求を送信することとを含み得る。
【0006】
さらに別の実施形態では、技術推奨のための1つまたは複数の非一時的機械可読情報記憶媒体が提供される。前記1つまたは複数の非一時的機械可読情報記憶媒体は、1つまたは複数のハードウェアプロセッサによって実行されると、ネットワークを介して、少なくとも1つのトランザクションに関連付けられたトランザクション要求を受信することと、仮想分散型台帳によって、少なくとも1つのトランザクションを記録することと、少なくとも1つのトランザクションに基づいてハッシュを計算することと、少なくとも1つのトランザクション用のハッシュを連鎖させることと、少なくとも1つのトランザクションの連鎖されたハッシュに基づいて、トランザクション更新要求を生成することと、1つまたは複数のコンピューティングノードに接続されたデータ記憶ユニットへ、トランザクション更新要求を送信することとを行わせる1つまたは複数の命令を含む。
【0007】
別の実施形態では、ハードウェアプロセッサと、動作を実施するように、ハードウェアプロセッサによって実行可能な命令を記憶するメモリデバイスとを備える、仮想分散型台帳技術ネットワークノードを実装するためのシステムが開示される。動作は、1つまたは複数の仮想機械を作成することと、1つまたは複数の仮想機械を介して複数のマイクロサービスを実行することとを含む。複数のマイクロサービスのうちの少なくとも2つが、異なる分散型台帳技術ネットワークに関連付けられる。複数のマイクロサービスは、スマートコントラクトマイクロサービス要求を受信するように、およびマイクロサービスの間でイベントをルーティングするように構成されたイベントルーティングマネージャマイクロサービスと、スマートコントラクトマイクロサービス要求に関連付けられたスマートコントラクトを実行するように構成されたスマートコントラクト実行マイクロサービスと、スマートコントラクト実行マイクロサービスの出力結果を、異なる分散型台帳技術ネットワークのうちの1つに関連付けられた分散型台帳にコミットするように構成されたトランザクションリソースマネージャマイクロサービスとを含む。
【0008】
別の実施形態では、仮想分散型台帳技術ネットワークノードを実装するための方法が開示される。この方法は、少なくとも1つのハードウェアプロセッサにより、1つまたは複数の仮想機械を作成するステップと、少なくとも1つのハードウェアプロセッサにより、1つまたは複数の仮想機械を介して複数のマイクロサービスを実行するステップとを含む。複数のマイクロサービスのうちの少なくとも2つが、異なる分散型台帳技術ネットワークに関連付けられる。複数のマイクロサービスは、スマートコントラクトマイクロサービス要求を受信するように、およびマイクロサービスの間でイベントをルーティングするように構成されたイベントルーティングマネージャマイクロサービスと、スマートコントラクトマイクロサービス要求に関連付けられたスマートコントラクトを実行するように構成されたスマートコントラクト実行マイクロサービスと、スマートコントラクト実行マイクロサービスの出力結果を、異なる分散型台帳技術ネットワークのうちの1つに関連付けられた分散型台帳にコミットするように構成されたトランザクションリソースマネージャマイクロサービスとを含む。
【0009】
別の実施形態では、仮想分散型台帳技術ネットワークノードを実装するための命令を記憶する非一時的コンピュータ可読媒体が開示され、命令は、動作を実施するように、ハードウェアプロセッサによって実行可能である。動作は、少なくとも1つのハードウェアプロセッサにより、1つまたは複数の仮想機械を作成することと、少なくとも1つのハードウェアプロセッサにより、1つまたは複数の仮想機械を介して複数のマイクロサービスを実行することとを含む。複数のマイクロサービスのうちの少なくとも2つが、異なる分散型台帳技術ネットワークに関連付けられる。複数のマイクロサービスは、スマートコントラクトマイクロサービス要求を受信するように、およびマイクロサービスの間でイベントをルーティングするように構成されたイベントルーティングマネージャマイクロサービスと、スマートコントラクトマイクロサービス要求に関連付けられたスマートコントラクトを実行するように構成されたスマートコントラクト実行マイクロサービスと、スマートコントラクト実行マイクロサービスの出力結果を、異なる分散型台帳技術ネットワークのうちの1つに関連付けられた分散型台帳にコミットするように構成されたトランザクションリソースマネージャマイクロサービスとを含む。
【0010】
上記の概略的な説明と以下の詳細な説明の両方は、例示および説明のためにすぎず、本開示を限定するものではないことを理解されたい。
【0011】
添付の図面は、本開示に組み込まれるとともにその一部をなし、例示的な実施形態を示し、記述と一緒に、開示される原理を説明するのに役立つ。
【図面の簡単な説明】
【0012】
【
図1】本開示のいくつかの実施形態による、ブロックチェーンコンポーネントの例示的なセットを示す図である。
【
図2】本開示のいくつかの実施形態による、例示的なネットワーク構成の図である。
【
図3】本開示のいくつかの実施形態による、別の例示的なネットワーク構成の図である。
【
図4】本開示のいくつかの実施形態による、サポートされるネットワークタイプの図である。
【
図5】本開示のいくつかの実施形態による、例示的な分散型ネットワークの図である。
【
図6】本開示のいくつかの実施形態による、例示的なスマートコントラクトマイクロサービス実行の図である。
【
図7】本開示のいくつかの実施形態による、スマートコントラクトマイクロサービス実行のための例示的なコールフローの図である。
【
図8】本開示のいくつかの実施形態による、分散型ネットワークにおけるデータ保護実装の図である。
【
図9】本開示のいくつかの実施形態による適合性およびアクセス制御チェックの図である。
【
図10】本開示のいくつかの実施形態による、データプライバシー適合のためのプロセスの図である。
【
図11】本開示のいくつかの実施形態による、データ保護に関連したコールフローの図である。
【発明を実施するための形態】
【0013】
ブロックチェーン技術は、たとえば、改竄証拠および改竄回復をターゲットにしたメッセージ認証に関して、暗号作成術およびデータセキュリティによるツールを使う。ブロックチェーンは、エンティティのネットワーク内で共有される改竄証拠台帳として記述されてよく、ここで、台帳は、エンティティの間での資産のトランザクションのレコードを保持する。台帳における改竄証拠を得るために、ブロックチェーンは、暗号学的ハッシュ関数を活用してデータを暗号化する。
【0014】
図1は、開示する実施形態に合致する、例示的なブロックチェーン機能性の図解である。たとえば、ブロックチェーンは、以下に列挙するとともに
図1に示すいくつかの異なるタイプのコンポーネントから構築されてよく、各々が、ブロックチェーンの動作において果たすべき役割をもつ。これらのコンポーネントは、以下を含み得る。
・台帳:分散型の不変履歴レコード。
・ピアネットワーク:台帳を記憶し、更新し、維持する。
・メンバーシップサービス:ユーザ認証、認可、およびアイデンティティ管理。
・スマートコントラクト:ブロックチェーン上で稼働するプログラム。
・ウォレット:ユーザの資格情報を記憶する。
・イベント:ブロックチェーン上での更新およびアクションの通知。
・システム管理:コンポーネント作成、修正、および監視。
・システム統合:外部システムとのブロックチェーンの統合。
【0015】
いくつかの実施形態では、ブロックチェーンは台帳を含み得る。たとえば、ブロックチェーンは、台帳と呼ばれる、ブロックチェーンの履歴の分散型であり不変のレコードを作成し、使うことができる。
【0016】
分散型台帳とは、複数のコンピュータに全体または一部が複製される台帳である。暗号分散型台帳(CDL)は、以下の性質のうちの1つまたは複数を有してよく、すなわち、不可逆性(トランザクションは、記録されると、戻すことができない)、アクセス可能性(どの当事者も、CDLの全体または一部にアクセスすることができる)、時系列およびタイムスタンプ付き(すべての当事者が、トランザクションが台帳にいつ追加されたかを知っている)、合意ベース(トランザクションは、ネットワーク上の当事者によって通常は満場一致で承認された場合にのみ追加される)、検証可能性(すべてのトランザクションが暗号によって検証され得る)である。ブロックチェーンは、CDLの例である。
【0017】
いくつかの実施形態では、ブロックチェーンは、台帳を記憶し、更新し、維持するピアネットワークを含み得る。このネットワーク中の各ノードが、台帳の独自のコピーを維持してよい。台帳に対する各更新の内容について合意に至ることが、ネットワークのジョブである。これは、台帳の集中型「公式」コピーを求めずに、台帳の各個々のコピーが同一であることを保証し得る。
【0018】
ブロックチェーンの別の機能は、ユーザ認証、認可、およびアイデンティティ管理などのメンバーシップサービスであり得る。いくつかのブロックチェーンでは、誰でもピアネットワークに加わることができ、すべてのネットワークメンバーが、等しい権力および権限を有する。許可制ブロックチェーンは、加わるのに認可を求めてよく、ここで、認可はメンバーシップサービスによって管理され得る。
【0019】
ブロックチェーンの追加機能は、ブロックチェーン上で稼働するスマートコントラクトプログラムを実装することであり得る。元来、ブロックチェーンは、金融取引が実施され、履歴台帳に記憶されるように設計されたものであり、限られた構成可能性を有していた。ただし、ブロックチェーンは、完全に機能する分散型コンピュータをブロックチェーンが含み得るように進化している。スマートコントラクトは、ブロックチェーン上で稼働するプログラムであり、ユーザは、標準的なコンピュータ上でプログラムと対話するのと同様にして、スマートコントラクトと対話することができる。
【0020】
いくつかの実施形態では、ブロックチェーンは、ユーザ資格情報を記憶するためのウォレットを含み得る。ブロックチェーンにおいて、ユーザのウォレットは、ユーザの資格情報を記憶し、ユーザのアドレスに関連付けられたデジタル資産を追跡することができる。ウォレットは、ユーザ資格情報、およびユーザのアカウントに関連付けられ得る、どの他の情報も追跡することができる。
【0021】
別の実施形態では、ブロックチェーンは、ブロックチェーン上でのイベントまたは更新およびアクションの通知を含み得る。ブロックチェーンの台帳およびピアネットワークの状態は、イベントによって更新され得る。イベントの例は、ピアネットワークにわたる新規トランザクションの作成および散布またはブロックチェーンへの新規ブロックの追加を含む。イベントは、スマートコントラクトをサポートするブロックチェーン上のそのようなコントラクトからの通知も含み得る。
【0022】
ブロックチェーンは、システム管理として作用するように構成されてもよい。たとえば、ブロックチェーンは、システムコンポーネントを作成し、修正し、または監視するように構成されてよい。ブロックチェーンは、絶えず進化している分野における長寿命システムであるように設計されてよい。システム管理は、そのユーザの要請を満たすように、ブロックチェーンコンポーネントを作成し、修正し、監視する性能を提供し得る。
【0023】
さらに、いくつかの実施形態では、ブロックチェーンは、外部システムと統合し得る。ブロックチェーンが進化し、機能性が増すのに伴って、ブロックチェーンを、スマートコントラクトを使うシステムなど、他の外部システムと統合することがより一般的になっている。
【0024】
分散型台帳は、他のブロックに関する暗号ハッシュを記憶するなどの暗号技法を通常は適用するレコードの、絶え間なく成長するリストであってよい。ブロックチェーンは、分散型台帳の一例であり、情報を記憶するためのパブリック台帳として使うことができる。ブロックチェーンは、商品およびサービスに関連した様々な情報(すなわち、製品、パッケージ、状況など)を記憶することができる。非集中型方式が、非集中型ネットワークに権限および信用を与えてよく、ネットワークのノードが、それらのトランザクションを、ブロックチェーンと呼ばれる一意の「チェーン」を作成するパブリック「ブロック」上に絶え間なく、連続して記録することを可能にする。暗号技術は、ハッシュコードを介して、トランザクションソースの認証をセキュアにするのに使うことができ、中心的媒介を取り除く。
【0025】
ブロックチェーンは、レコードの、絶え間なく成長するリストをブロックチェーンブロック中で維持する分散型データベースであってよく、ブロックは、それらの不変性により、改竄および改訂からセキュアにされる。各ブロックは、タイムスタンプと、前のブロックへのリンクとを含み得る。ブロックチェーンは、情報を保持し、追跡し、転送し、検証するのに使うことができる。ブロックチェーンは分散型システムであるので、ブロックチェーン台帳にトランザクションを追加する前に、すべてのピアが、合意状況に達する必要があり得る。
【0026】
ブロックチェーンとは、互いと通信する複数のノードを含み得る分散型システムである。いくつかの実施形態では、ブロックチェーンは、チェーンコードと呼ばれるプログラム(たとえば、スマートコントラクトなど)を動作させ、状態および台帳データを保持し、トランザクションを実行する。いくつかのトランザクションは、チェーンコード上で呼び出される動作である。概して、ブロックチェーントランザクションは通常、いくつかのブロックチェーンメンバーによって「是認」されなければならず、是認されたトランザクションのみが、ブロックチェーンにコミットされ、ブロックチェーンの状態に影響し得る。是認されない他のトランザクションは無視されてよい。管理機能およびパラメータのための1つまたは複数の特殊チェーンコードが存在してよく、まとめてシステムチェーンコードと呼ばれる。
【0027】
ノードは、ブロックチェーンシステムの通信エンティティである。「ノード」は、異なるタイプの複数のノードが同じ物理サーバ上で稼働し得るという意味で、論理機能を実施することができる。ノードは、信頼ドメイン中でグループ化されてよく、それらを様々なやり方で制御する論理エンティティに関連付けられてよい。ノードは、是認元(たとえば、ピア)にトランザクション呼出しを提出し、順序付けサービス(たとえば、順序付けノード)にトランザクション提案をブロードキャストするクライアントまたは提出側クライアントノードなどの異なるタイプを含み得る。別のタイプのノードは、クライアントが提出したトランザクションを受信し、トランザクションをコミットし、ブロックチェーントランザクションの台帳の状態およびコピーを維持し得るピアノードである。順序付けサービスノードまたは順序付け元とは、すべてのノード向けの通信サービスを稼働するノードであって、トランザクションをコミットし、ブロックチェーンのワールドステートを修正するときの、システム中のピアノードの各々へのブロードキャストなどの配信保証を実装するノードであり、これは、制御およびセットアップ情報を一般に含む初期ブロックチェーントランザクションの別の名前である。
【0028】
台帳は、ブロックチェーンのすべての状態遷移の順序付き、改竄耐性レコードであり得る。状態遷移は、参加当事者(たとえば、クライアントノード、順序付けノード、是認元ノード、ピアノードなど)によって提出されたチェーンコード呼出し(すなわち、トランザクション)から生じ得る。トランザクションは、作成、更新、消去など、1つまたは複数のオペランドとして台帳にコミットされる資産キーと値のペアのセットを生じ得る。台帳は、不変、順序付きレコードをブロックに記憶するのに使われるブロックチェーン(チェーンとも呼ばれる)を含み得る。台帳は、ブロックチェーンの現在の状態を維持する状態データベースも含み得る。いくつかの実施形態では、チャネルごとに1つの台帳がある。各ピアノードは、それらがメンバーである各チャネルについての台帳のコピーを維持する。
【0029】
チェーンとは、ハッシュリンクされたブロックとして構造化されるトランザクションログを指してよく、各ブロックは、N個のトランザクションからなるシーケンスを含み、ここでNは1以上である。ブロックヘッダは、ブロックのトランザクションのハッシュ、ならびに前のブロックのヘッダのハッシュを含み得る。このようにして、台帳上のすべてのトランザクションは、順序付けられ、暗号法的に互いにリンクされ得る。したがって、ハッシュリンクを破らずに台帳データを改竄することが可能でない場合がある。直近に追加されたブロックチェーンブロックのハッシュは、それの前に来るチェーン上のあらゆるトランザクションを表すことができ、すべてのピアノードが、適合性があるとともに信頼された状態にあることを保証することを可能にする。チェーンは、ピアノードファイルシステム(すなわち、ローカル、接続型ストレージ、クラウドなど)上に記憶されてよく、ブロックチェーン作業負荷の付加専用性を効率的にサポートする。
【0030】
不変台帳の現在の状態は、チェーントランザクションログに含まれるすべてのキーについての最新の値を表し得る。現在の状態は、チャネルに知られている最新のキー値を表し得るので、ワールドステートと呼ばれることがある。チェーンコード呼出しは、台帳の現在の状態データに対してトランザクションを実行することができる。これらのチェーンコード対話を効率的にするために、キーの最新の値が状態データベースに記憶されてよい。状態データベースは、単にチェーンのトランザクションログに対するインデックス付きビューであってよく、したがって、いつでもチェーンから生成し直され得る。状態データベースは、ピアノードが起動されると、およびトランザクションが受諾される前に、自動的に回復され(または必要とされる場合は生成され)得る。
【0031】
事業用ブロックチェーンソリューションは、様々な役割を果たす多くのアクターが完全に機能することを求め得る。ブロックチェーン技術は、新規ソリューションが、様々な要請への解決を提供するために、合意の上で、記憶、処理、不変性、暗号技術の複雑な問題を解決することを可能にし得る。
【0032】
マイクロサービスは、疎結合されたサービスの集合体としてアプリケーションを構造化するサービス指向アーキテクチャ(SOA)アーキテクチャスタイルの変形体である。マイクロサービスアーキテクチャでは、サービスは細分化されてよく、プロトコルは軽量である。アプリケーションを、異なるより小さいサービスに分解することの利益は、モジュール方式を向上することである。これにより、アプリケーションをより理解し、開発し、テストしやすくし、アーキテクチャ浸食に対してより耐性をもたせることができる。そうすることによって、小規模自律チームがそれぞれのサービスを独自に開発し、展開し、スケーリングすることを可能にすることによって、開発を並列化する。また、個々のサービスのアーキテクチャが連続リファクタリングを通して出現できるようにし得る。マイクロサービスベースのアーキテクチャは、連続配信および展開を可能にし得る。
【0033】
開示する実施形態では、仮想化は、仮想コンピュータハードウェアプラットフォーム、記憶デバイス、およびコンピュータネットワークリソースを含む、仮想(実際の、ではなく)バージョンの何かを作成する作用を指す。ハードウェア仮想化またはプラットフォーム仮想化は、オペレーティングシステムをもつ実コンピュータのように作用する仮想機械の作成を指す。これらの仮想機械上で実行されるソフトウェアは、基底ハードウェアリソースから分離されてよい。コンテナ化としても知られる、オペレーティングシステムレベルでの仮想化は、複数の独立したユーザ空間インスタンスの存在をカーネルが許容するオペレーティングシステム特徴を指す。
【0034】
本開示は、動的に構成可能なブロックチェーンプラットフォームをサポートする際の問題に最適に対処するための、新規性のある自動的方法を提示する。開示する実施形態は、必要に応じて、各特定の分散型台帳技術(DLT)の要請に応じるのにマイクロサービスを使うための、および互いと対話するようにプラットフォームによって作成される、異なるDLTを可能にするための、異なるタイプのDLTベースのネットワークが作成されるようにし得る。また、本開示は、複数のDLT/ブロックチェーンネットワークに参加し、これらの1つまたは複数のDLT/ブロックチェーンネットワークに参加するのに必要とされる性能を提供するのにマイクロサービスベースのアーキテクチャを活用し、許可制プライベートDLT/ブロックチェーンネットワークまたはパブリックDLT/ブロックチェーンネットワークなど、これらのブロックチェーンネットワークにわたって相互動作し得る仮想分散型台帳技術(vDLT)ノードのための方法およびシステムを提供し得る。
【0035】
以下の説明では、説明の目的で、本開示の実施形態を完全に理解できるように具体的な詳細を記載する。しかしながら、様々な実施形態が、これらの具体的な詳細なしに実施され得ることが明らかであろう。図および説明は、限定的であることは意図していない。
【0036】
次の記載は、例示的な実施形態のみを提供し、本開示の範囲、適用可能性または構成を制限する意図はない。むしろ、例示的な実施形態の次の説明は、例示的な実施形態を実施することを可能とする記載を当業者に提供する。要素の機能および配置には、説明される本開示の趣旨および範囲から逸脱することなく、様々な変更が行われる場合があることを理解されたい。
【0037】
実施形態の完全な理解を与えるために、以下の説明においては具体的な詳細が与えられている。しかしながら、実施形態はこれらの具体的な詳細なしに実施できることが当業者には理解されよう。たとえば、回路、システム、ネットワーク、プロセス、および他の構成要素は、不必要な詳細で実施形態を不明瞭にしないために、ブロック図の形で構成要素として示される場合がある。他の事例では、実施形態を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法が不要な詳細なしに示される場合がある。
【0038】
また、個々の実施形態は、フローチャート、流れ図、データフロー図、構造図、またはブロック図として示されるプロセスとして説明され得ることに留意されたい。フローチャートは動作を逐次プロセスとして説明することがあるが、動作の多くは並行してまたは同時に実施することができる。加えて、動作の順序は並べ替えられてよい。プロセスは、その動作が完了されると終了されるが、図に含まれない追加ステップを有してもよい。プロセスは、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応する場合、その終了は呼出し側関数またはメイン関数への関数の復帰に対応し得る。
【0039】
「機械可読記憶媒体」または「コンピュータ可読記憶媒体」という用語は、限定はしないが、ポータブルまたは非ポータブル記憶デバイス、光学記憶デバイス、ならびに命令および/またはデータを記憶するか、包含するか、または搬送することができる種々の他の媒体を含む。機械可読媒体は、データが記憶され得る非一時的媒体であって、ワイヤレスに、またはワイヤード接続を介して伝搬する搬送波および/または一時的電子信号を含まない非一時的媒体を含み得る。非一時的媒体の例は、磁気ディスクもしくはテープ、コンパクトディスク(CD)もしくはデジタル多用途ディスク(DVD)などの光学記憶媒体、フラッシュメモリ、メモリまたはメモリデバイスを含み得るが、それに限定されない。コンピュータプログラム製品は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造もしくはプログラムステートメントの任意の組合せを表し得るコードおよび/または機械実行可能命令を含み得る。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡すことおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む任意の適切な手段を介して渡すことができるか、転送することができるか、または送信することができる。
【0040】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコード内に実装されるとき、必要なタスクを実施するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)は、機械可読媒体に記憶され得る。プロセッサは、必要なタスクを実施し得る。
【0041】
図面のうちのいくつかに示すシステムは、様々な構成で提供され得る。いくつかの実施形態では、システムは、分散型システムとして構成されてよく、ここで、システムの1つまたは複数の構成要素は、クラウドコンピューティングシステム中の1つまたは複数のネットワークに分散される。
【0042】
ネットワークは、ネットワークに接続された様々なデバイスへのアクセスを、アクセスデバイスユーザに提供するようにセットアップされてよい。たとえば、ネットワークは、ネットワークデバイス自体またはネットワークデバイスに接続された1つもしくは複数の電子デバイス(たとえば、器具)をリモートで構成または制御するための能力をユーザに提供する1つまたは複数のネットワークデバイスを含み得る。電子デバイスは、ネットワークをサポートすることができる環境または会場内に位置する場合がある。環境は、たとえば、家、オフィス、会社、自動車、公園などを含み得る。ネットワークは、1つまたは複数の周波数帯域中の無線周波数チャネルを使うワイヤード接続および/またはワイヤレス接続を提供することによって、クライアントデバイス(たとえば、ネットワークデバイス、アクセスデバイスなど)がネットワークにアクセスできるようにする1つまたは複数のゲートウェイを含み得る。1つまたは複数のゲートウェイは、クラウドネットワーク、インターネット、および/または他のワイドエリアネットワークなど、1つまたは複数の外部ネットワークへのアクセスをクライアントデバイスに提供することもできる。
【0043】
いくつかの実施形態では、ユーザは、ユーザを認証するとともにネットワークデバイスへのアクセスを認めるのに使われるログイン情報をもつアカウントを作成することができる。たとえば、アカウントが作成されると、ユーザは、論理ネットワーク中のネットワークデバイスにアクセスするために、ログイン情報を入れることができる。
【0044】
いくつかの実施形態では、アカウントなし認証プロセスが実施される場合があり、そうすることによって、ユーザは、アクセスが要求される度にネットワークデバイスログイン資格情報を入れる必要なく、論理ネットワーク内の1つまたは複数のネットワークデバイスにアクセスすることができる。ローカルエリアネットワーク内にローカルに位置する間、アクセスデバイスは、論理ネットワークとのアクセスデバイスの認証に基づいて認証され得る。たとえば、アクセスデバイスが、論理ネットワーク(たとえば、ゲートウェイによって提供されるWi-Fiネットワーク)へのアクセスを認可した場合、その論理ネットワークとペアにされるネットワークデバイスは、アクセスデバイスを、ログインを求めずに、それらのネットワークデバイスと接続できるようにし得る。したがって、論理ネットワークにアクセスするための認可を有するアクセスデバイスのユーザのみが、論理ネットワーク内のネットワークデバイスにアクセスすることを認可され、これらのユーザは、ネットワークデバイスにログイン資格情報を与える必要なしで認可される。
【0045】
図2は、ブロックチェーンDLTプラットフォーム200を示す。例示的な実施形態では、ブロックチェーン-DLTプラットフォーム200は、マイクロサービスベースの構成可能vDLTプラットフォームであり、クラウド中またはネットワーク内もしくはネットワークのエッジのいずれかにあるスケーラブルインフラストラクチャ上で稼働し、そのようなインフラストラクチャにわたって分散方式で稼働し得る。このプラットフォームは、複数の仮想DLTネットワーク(vDLT-N)202a~202eを同時にサポートすることができ、これらのvDLT-Nは、互いからは完全に独立して稼働することができ、または互いと対話することもできる。vDLT-Nのどの任意ネットワークも、互いと対話するようにシステム中で構成されてよく、ここで、vDLT-Nのそのようなネットワークは本来、階層状および/または分散型であり得る。たとえば、
図2は、階層vDLT-Nを示し、ここで、202aが最上位レベルにあり、202bが中間レベルにあり、202c、202d、および202eが階層の最下位レベルにある。
【0046】
図3は、例示的な仮想DLTネットワーク(vDLT-N)300を示す。ある実施形態では、各vDLT-Nは、参加ノードからなるブロックチェーンシステムを表してよく、ここで、トランザクションのブロックが、あるブロックから次のブロックへ伝搬する暗号ハッシュによって連鎖されるようなトランザクションを、分散型台帳システム中の各台帳が記録する。各vDLT-Nは、仮想DLTネットワークノード(vDLT-NN)302a~302eのネットワークからなる分散型台帳技術(DLT)性能をサポートし得る。
【0047】
いくつかの実施形態では、vDLT-NN302a~302eの各々が、複数の電子データ記憶ユニット304a~304eのうちの対応する1つを含み得る。データ記憶ユニットは、揮発性もしくは不揮発性、磁気、半導体、テープ、光学、取り外し可能、取り外し不可能、または他のタイプの記憶デバイスもしくは非一時的コンピュータ可読媒体を含み得る。データ記憶ユニットは、ローカルもしくはワイドエリアネットワークに分散される2つ以上のメモリデバイスを含み得るか、または単一のメモリデバイスを含み得る。いくつかの実施形態では、データ記憶ユニットは、記憶デバイスに記憶された情報にアクセスし、処理し、送るための命令を受信するように構成された1つまたは複数のデータベース処理デバイスを含む、データベース記憶デバイスなどのデータベースシステムを含み得る。例として、データベースシステムは、Oracle(商標)データベース、Sybase(商標)データベース、またはHadoopシーケンスファイル、HBase、もしくはCassandraなど、他のリレーショナルデータベースもしくは非リレーショナルデータベースを含み得る。
【0048】
いくつかの実施形態では、vDLT-NNは、開示する実施形態に合致する命令を実行するように構成された1つまたは複数のプロセッサを含み得る。1つまたは複数のプロセッサは、1つまたは複数のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央処理ユニット、状態機械、グラフィックスコントローラ、論理回路構成、および/または動作命令に基づいて信号を操作する任意のデバイスとして実装され得るハードウェアプロセッサであってよい。他の性能の中でも、プロセッサは、コンピューティングノードのメモリ中に、またはデータ記憶ユニット中に記憶されたコンピュータ可読命令をフェッチし、実行するように構成され、これは、プロセッサに、たとえば、仮想分散型台帳ネットワークを実装するために、開示する実施形態に合致するアクションを実施させる。ある実施形態では、システムは、ラップトップコンピュータ、ノートブック、ハンドヘルドデバイス、ワークステーション、メインフレームコンピュータ、サーバ、ネットワーククラウドなどのような、様々なコンピューティングシステム内に実装され得る。
【0049】
いくつかの実施形態では、vDLT-NはブロックチェーンベースのDLTシステムをサポートすることができ、ここで、「ブロックチェーン」という用語は、暗号ブロックハッシュが、あるブロックから次のブロックへ伝搬されるブロックのチェーンを使って、台帳におけるトランザクションを記録する分散型台帳技術実装形態の従来の定義を指し、各ブロックは、ゼロ以上のトランザクションに対応する情報を含み得る。この台帳タイプはこれ以降、ブロックチェーンベースの台帳と呼ばれる。いくつかの実施形態では、ブロックチェーン台帳中の起源(最初の)ブロックは通常、どの特定のトランザクションに関連したデータも含まず(したがってゼロトランザクション)、その後、後続ブロックは、1つまたは複数のトランザクションに関連したデータを含み得る。vDLT-Nは、(たとえば、ブロックチェーンベースの台帳が各ノードにおいて作成されることなく、トランザクションがシステム中のノードにわたって選択的に複製される)ノードにわたる分散型非ブロックチェーンベースの台帳(ブロックチェーンベースの台帳が各ノードにおいて作成されることなく、トランザクションがノードに複製される)のセットをもつ、非ブロックチェーンDLTベースのシステムもサポートし得る。
【0050】
ブロックチェーンプラットフォームは、様々な使用事例に対する必要に応じてvDLT-Nを構成することができ、
図4に示すように、複数のvDLT-Nを同時にサポートするための能力を有する。たとえば、
図4に示すように、スマートコントラクト論理は、ブロックチェーンベースの分散型台帳技術、非ブロックチェーンベースの台帳技術、または集中型台帳技術を使って適用され得る。
【0051】
各仮想DLTネットワークノード(vDLT-NN)は、vDLT-NN内でタスクを処理するための1つまたは複数のマイクロサービスを含み得る。各vDLT-NNは、1つまたは複数のvDLT-Nへの参加者であってよい。vDLT-NNは、計算、記憶、ネットワーク、またはエネルギーリソースを動的にスケーリングし、使用することができ、vDLT-NN中の現在のトランザクション負荷、およびvDLT-NNにおける処理のための見積もられる将来の要件に基づいて動的に適応する。これらの計算、記憶、ネットワーク、またはエネルギーリソースは、1つまたは複数の物理ネットワークにわたって分散され得る。
【0052】
別の実施形態では、vDLT-Nは集中型台帳技術を表すことができ、ここで、vDLT-NNにおける集中型記憶台帳中の情報は、ブロードキャスト機構または選択的複製もしくはpub-sub機構を使って、vDLT-N中の他のvDLT-NNにわたって共有され得る。
【0053】
図5は、本開示のいくつかの実施形態による、例示的な分散型ネットワークの図である。
図5に示す、ある実施形態では、vDLT-Nの変形が、システムによってサポートされてよく、システム中でスマートコントラクトを実行するための能力がサポートされ、そうすることによって、トランザクションを製作するのに使用されたスマートコントラクト論理は、トランザクション情報と共に、vDLT-N500中の各台帳に記憶される。集中型台帳技術を用いると、vDLT-NN502aのうちの1つは製作者であってよく、vDLT-N500中の他のvDLT-NN502b~502eは、複製された台帳または選択的に複製された台帳をもつ消費者である。その点において、集中型台帳技術は、製作者vDLT-NNから消費者vDLT-NNへの遅延した複製または選択的複製をもつDLTシステムも生じ得る。
図3と同様に、vDLT-NNの各々は、複数のデータ記憶ユニット504a~504eのうちの対応する1つを含んでよく、1つまたは複数のプロセッサも含んでよい。
【0054】
vDLTブロックチェーンプロビジョニングのためのステップ
別の実施形態では、vDLT-Nは、複数の「マスタ」集中型台帳を有して構成されてよく、ここで、各「マスタ」集中型台帳は、製作者としての異なるvDLT-NNを有してもよく、他のvDLT-NNは、複製されたか、または選択的に複製された「スレーブ」台帳を含む消費者として作用する。これにより、ノードにわたる遅延した非同期複製をもつ各ノードにおける複数の台帳でDLTを効果的に実装することができ、そうすることによって、「マスタ」集中型台帳は、vDLT-NNにわたる単一の台帳を製作するために、互いと協調する必要がない。こうすることにより、すべてのノードにわたる単一の同期更新された分散型台帳と比べて、より高いトランザクションスループットを与えるのを助けることができる。そのようなケースでは、マスタ台帳は、ブロックチェーンベースの台帳または非ブロックチェーンベースの台帳のいずれかであればよい。マスタ台帳からスレーブ台帳への非同期更新は、これらの更新に関連付けられた遅延許容に基づいて提供され得る。vDLT-NN(i,j)のあらゆるペアについて、関連付けられた遅延許容測度λi,jがあり得る。ネットワーク中のvDLT-NNは、ペアごとのノード間待ち時間αi,jを(たとえば、互いの間でのパケット遅延の定期的ピング測定を使って)推定することができる。マスタノードは、バルク更新を集約し、スレーブノードへ送ることを選んでよい。これは、集約遅延許容度πi,jに基づいてよく、ここでπi,j=λi,j-αi,jである。マスタノードは、各スレーブノードに関して更新を個々に通信するとき、スレーブノードへの更新を、遅延δi,j≦πi,jだけ遅らせることを選んでよい。マスタノードiに対するスレーブノードのセットをSとし、ここでセットSは、vDLT-N中のvDLT-NNノードのサブセットであってよい。マスタ製作者ノードiは、更新を受信する必要があるスレーブ消費者ノードjεSのグループへのブロードキャストを実施した場合、スレーブ消費者ノードjεSのグループにわたってδi≦minj(πi,j)によって与えられる制約を遵守する必要がある。ノード間待ち時間αi,jは、所望される場合、vDLT-NN中で定期的に監視され、更新され得る。ブロードキャスト機構が(たとえば、Kafkaなどの分散型ストリーミングプラットフォームを使って)使われる場合、ノード間待ち時間αi,jは、そのような機構またはプラットフォームを使って、典型的な観察されたメッセージ遅延に基づいて推定されることになる。
【0055】
いくつかの実施形態では、そのようなシステムは、マスタ製作者ノードが、データが実際にスレーブ消費者ノードに分散されるまで、データを改竄できるようにし得る。ただし、そのような遅延を許容すると、すべてのノードにわたる同期合意の必要を避けることができ、というのは、そのような合意は、ネットワーク中でのノード間待ち時間によっては、大幅な待ち時間を招き得るからである。vDLT-NNは、ノード間待ち時間が大幅になり得るように、異なるデータセンタ中でインスタンス化され得る。いくつかの実施形態では、どのノードも、vDLT-Nにおけるマスタ製作者ノードであってよい。この目的のために、各vDLT-NNは、それが製作するトランザクション用の製作台帳を、それが非同期に消費する消費台帳と共に維持し得る。そのような非同期更新は、人々にサービスを提供するクラウド/ネットワーク内/エッジデータセンタをもつ新興の4G/5G/6G/将来分散型仮想化インフラストラクチャにおいて非常に有用であるように準備し得る。vDLT-NNは、vDLT-Nを含むように、階層/分散型データセンタシステム中のどのレベルにおいてホストされてもよい。
【0056】
いくつかの実施形態では、vDLT-Nは複数の台帳をホストすることができ、ここで、各台帳は、参加vDLT-NNすべて、またはvDLT-N中の参加vDLT-NNの任意のサブセットにわたって共有され得る。製作者-消費者/マスタ-スレーブ変形体では、各そのような台帳は、どの参加vDLT-NNもマスタ製作者ノードとして、または参加vDLT-NNのどのサブセットもマスタ共同製作者ノードとして、残りの参加vDLT-NNもしくは残りの参加vDLT-NNのサブセットをスレーブ消費者ノードとして有し得る。さらに、vDLT-NNは、複数のvDLT-Nにわたる台帳への参加者であってもよい。
【0057】
スレーブ消費ノードに対する非同期の怠惰(lazy)な更新を使うとき、システムは、これらの消費ノードからの合意を求めなくてよい。したがって、スレーブノードが、完了したトランザクションとの問題を有し得ることが可能である。この目的のために、および概して争議に対処するために、システムは、苦情対処台帳(CAL:complaint addressing ledger)をサポートして争議を解決することができる。過去のトランザクションは、マスタ台帳中のトランザクションid、マスタ台帳に関連付けられた台帳id、およびトランザクションを製作したマスタによって対処された場合もある。スレーブノードは、それら自体がコミットした台帳を定期的に監査して、過去の記録されたトランザクションとの、いかなる問題も識別し得る。過去のトランザクションに参加したノードのみに、その過去のトランザクションについて分散型苦情台帳中で申し立てられた苦情へのアクセスが与えられ得る。申し立てられた苦情に対してpub-sub機構が可能にされてよく、そうすることによって、対応するマスタノードが問題に対処し得る。そのような問題に関連した解決は、苦情台帳に記録されてもよい。vDLT-Nシステム全体の将来の読込みは、いかなる起こり得る問題および過去のトランザクションに関連付けられた可能な解決を識別するために、苦情台帳中でのチェックを求め得る。
【0058】
別の実施形態では、システムは、分散型台帳に対する同期更新、または分散型台帳に対する同期および非同期更新のハイブリッドな組合せをサポートし得る。非同期台帳更新ベースの手法と比べてより高い程度の信頼を強要する使用事例など、同期更新を使うケースでは、システムは、すべてのノード上の台帳に対する同期更新を認めるために、ノードにわたる合意を強制し得る。この結果、製作ノードから消費ノードへの非同期台帳更新と比べて、より低いトランザクションスループットが生じ、システム中で可能にされる、より大きい信頼が与えられ得る。合意が所望されるとき、ビザンチン障害耐性、実用的ビザンチン障害耐性、プルーフオブワーク、プルーフオブステーク、デリゲートプルーフオブステーク、多数決、満場一致投票、得票の割合/分数に基づく投票、もしくはRaft合意など、いかなる構成可能合意プロトコルが、または所望され得るどの他のアルゴリズムが使われてもよい。いくつかの使用事例では、ただ1つのノードがマスタ製作者ノードであり得る。いくつかの他の使用事例では、複数のノードが製作者ノードであってよく、そうすることによって、トランザクションが複数のマスタまたは共同製作者を有し得る。
【0059】
いくつかの実施形態では、2つ以上のノードがトランザクションの共同製作者である場合、システムは、これらの共同製作者にわたる合意プロトコルを、共同製作者にわたる同期台帳更新と共に使い、他のスレーブ消費ノードに対しては非同期更新を使えばよい。別の実施形態では、システムは、来歴情報の生成を可能にすることができ、システムにおける台帳中の資産に関連した情報が更新されると、資産に関連付けられた来歴情報(出荷される商品の現在の所在地、またはUN難民の現在の仕事場所、または購入注文における残高などの資産に関連付けられた現在の値、またはある人向けの健康保険証券における現在の残高、などのような)が、来歴台帳中に維持されてよい。発生元台帳(トランザクションを最初に記録した)中のトランザクションに基づく、特定の資産に対するいかなる変更も、そのような情報へのより速いアクセスのために、資産に関連付けられた来歴台帳中でミラーリングされ得る。
【0060】
そのような来歴台帳は、所望される場合は特定のvDLT-NNにおいて作成されてもよく、または複数のvDLT-NNにわたる分散型台帳として作成してもよい。発生元台帳はブロックチェーンベースであり、来歴台帳は、資産に関連付けられた来歴情報へのより速いアクセスを単に提供するために、非ブロックチェーンベースであり得ることが可能である。来歴台帳は、トランザクションに関連付けられた発生元台帳に関連付けられた情報を維持することができる。ただし、アプリケーションが、来歴台帳中の情報を認証するために、発生元台帳を相対して相互検証し得る。出版購読機構は、来歴台帳中の資産に関連付けられた出版された更新に関して、購読者(UN難民への食糧輸送の提供者など)を更新するのに使われてもよい。システムは、ブロックチェーンベースの台帳から、より速い読取りアクセスをできるようにする代替記憶空間/ファイルシステムまたはデータベースに、台帳情報を複製してもよい。概して、来歴情報は、資産に関連付けられた来歴台帳中で積極的に作成され、またはオリジナル台帳に単に問い合わせることによって取得され、または代替的非ブロックチェーンベースのファイルシステムもしくはデータベースから取得され得る。
【0061】
別の実施形態では、vDLTプラットフォーム中の特定の物理エンティティまたは組織が、複数のvDLT-Nへの参加者であり得る。これは、そのエンティティまたは組織のための異なるvDLT-N中に異なるvDLT-NNを有することによってサポートされ得る。いくつかの実施形態では、システム中の所与の使用事例またはテナントのために、同じvDLT-NNが、複数のvDLT-Nに同時に参加する必要があり得る。そのようなシステムは、複数のvDLT-N中の1つのvDLT-NNに対して参加を許容し得る。さらに、vDLT-NNのグループが2つ以上のvDLT-Nに参加してもよく、ここで、各vDLT-Nは、異なる種類の台帳更新(同期もしくは非同期)または異なる種類の合意プロトコルをサポートしてもよく、そうすることによって、vDLT-NNに関連した異なるトランザクションが、異なるvDLT-Nにおいて処理される場合がある。したがって、システムは、システム中の特定のテナントまたは使用事例についての異なる要件をサポートするために、vDLT-Nにおける構成可能性および同時異種vDLT-Nを提供し得る。
【0062】
別の実施形態では、アプリケーションレイヤ要求に関連付けられた要件が満たされるまで、システム中へのアプリケーションレイヤ要求が、シーケンス中の複数のスマートコントラクトの実行を求める場合があり、状態は、ある状態から次の状態に遷移する。そのようなケースについて、シーケンス中のそれぞれのスマートコントラクトからなる複合スマートコントラクトが、vDLTプラットフォーム上で設計され、実行されてよい。そのような状態遷移グラフの処理中、いくつかのスマートコントラクトが、互いに依存せずに実行され得る。そのようなケースでは、そのようなスマートコントラクトの処理に関連付けられたマイクロサービスが、vDLTシステムにおける仮想化および分散型リソースを活用して、同時に実行し得る。したがって、複合スマートコントラクトについての全体的状態遷移グラフは、可能なときはスマートコントラクトの並列実行を用いる、スマートコントラクトの順次の実行を含み得る。
【0063】
別の実施形態では、vDLT-NN中のマイクロサービスが、分散型インフラストラクチャ中の物理コンピューティングノード上のコンテナまたは仮想機械中で実行し得る。システム中の所与のマイクロサービスのインスタンスに負荷を分散するために、負荷分散装置がシステム中で使われてよい。各vDLT-Nは、動的にスケーリングしない、静的に構成された物理計算サーバであるが、システム中の認証局のサポートの提供など、特定のタスクを実行するように割り当てられる物理計算サーバなど、vDLT-N性能を有していない場合がある他のノードと共に、複数のvDLT-NNを含み得る。各vDLT-Nが、ネットワーク中のノードにわたる1つまたは複数の台帳をホストすることができ、ここで、各台帳は、仮想DLTネットワーク中の分散型台帳としてホストされ得る。スマートコントラクトは、vDLT-NN上のマイクロサービスとして実行され得る。スケーラブルな分散型インフラストラクチャ中で実行するフロントエンドアプリケーションは、スマートコントラクトを実行するための、vDLT-N中のvDLT-NNへの要求を行い得る。スマートコントラクトの実行のためのそのような要求がvDLT-Nに到達すると、要求の性質に基づいて、スマートコントラクトを実行する必要があるvDLT-Nが識別され、各そのようなvDLT-Nに要求が提出される。
【0064】
図6は、本開示のいくつかの実施形態による、例示的なスマートコントラクトマイクロサービス実行の図である。
図6を参照すると、ある実施形態では、vDLT-NN内で、イベントルーティングマネージャ(ERM)マイクロサービス602が、フロントエンドアプリ、ユーザインターフェース(Ul)、またはソフトウェア開発キット(SDK)、たとえば、フロントエンドアプリ/UI/SDK604a~604cから要求を受信し、スマートコントラクトサービス(SCS)マイクロサービス606へフォワードすればよく、マイクロサービス606は次いで、処理のために要求された、スマートコントラクトに固有のマイクロサービス(たとえば、スマートコントラクト実行(SCE)マイクロサービス608a~608c)を呼び出す。SCEマイクロサービス608a~608cは、状態データベース610または他のデータ記憶ユニットと通信することができる。いくつかの実施形態では、SCSマイクロサービス606は、状態データベース610と直接通信することができる。
【0065】
いくつかの実施形態では、RESTベースのプロトコルもしくはpub-subベースのインターフェース(たとえば、Kafkaを使う)、またはpeer2peer専用接続性(たとえば、Nettyを使用する)が、vDLTノード上のマイクロサービスの間の対話に使われ得る。実行後の特定のスマートコントラクトマイクロサービス(たとえば、SCEマイクロサービス608a~608c)は、結果をSCS606に戻せばよく、SCS606は、結果をERM602に戻す。ERM602は次いで、トランザクションリソースマネージャ(TRM)マイクロサービス612を呼び出せばよく、ここで、TRM612は、スマートコントラクト処理の出力結果を、vDLT-NN中の台帳614にコミットする。スマートコントラクトが、複数のvDLT-NNにわたって分散方式で実行されると、vDLTネットワーク中のvDLTネットワークノードにわたる分散型台帳にトランザクションをコミットする前に、合意プロトコルが使われ得る。
【0066】
図7は、プロセス700のフローチャートを示す。ステップ702において、フロントエンドアプリケーション(たとえば、
図6の604a~604c)が、ERM(たとえば、
図6のERM602)へスマートコントラクト要求を送信し得る。ステップ704において、ERMは、要求をSCSマイクロサービス(たとえば、
図6のSCS606)へルーティングし得る。要求側エンティティから受信された情報に基づいて、ステップ706において、SCSマイクロサービスは、要求をSCEマイクロサービス(たとえば、
図6のSCEマイクロサービス608a~608c)へ送り得る。ステップ708において、特定のSCEマイクロサービスは、トランザクション出力結果をSCS606へ送達し得る。ステップ710において、合意プロトコル管理は、トランザクションを記録するための、vDLTネットワークのノードの間の合意を確認し得る。ステップ712において、トランザクション出力結果は、vDLTネットワークのノードから適切な合意を受信すると、台帳(たとえば、
図6の台帳614)における記録化のために、ERMへ送られる。ステップ714において、ERMは、トランザクション出力を、台帳における記録のために、TRM(たとえば、
図6のTRM612)へ送達する。ステップ716において、TRMは、トランザクション出力を台帳に記録させる。ステップ718において、TRMは、記録の受領通知を受信する。ステップ720において、TRMは受領通知をERMへ送信し、ERMは、受領通知を、ステップ722においてSCSマイクロサービスへ通信する。ステップ724において、SCSマイクロサービスは、トランザクション出力結果を、要求側フロントエンドアプリケーションへの配信のためにERMへ送信する。ステップ726において、ERMは、トランザクション出力をフロントエンドアプリケーションに戻す。
【0067】
別の実施形態では、特定の使用事例またはテナントを実装することを求められるDLTシステムは、1つまたは複数のvDLTネットワークを求め得る。ポリシーリソースマネージャ(PRM)マイクロサービスが、このvDLTプラットフォームにおいて、所望のDLTネットワーク(vDLT-N)をセットアップするのに使われ得る。各vDLT-N内で、PRMは、vDLT-Nに参加するvDLTネットワークノード(vDLT-NN)をセットアップするのにさらに使用され、トランザクション用の合意プロトコルに関与するであろうvDLT-NNを判断するための、異なるトランザクションおよびそれらに関連付けられたスマートコントラクトに関連付けられたポリシーを作成するのにも使われる。合意プロトコルに関与するノードは、各トランザクション用に構成可能であってよく、トランザクションのグループ用に指定されてよい。スマートコントラクトは、vDLTプラットフォーム上のスマートコントラクト実行(SCE)マイクロサービスとして呼び出され得る。SCEがvDLT-NNにわたって展開される(たとえば、「<sce-name>.jar」ファイルとして展開される)場合、プラットフォームは、展開時に、および定期的にも適合性チェックを実施して、各vDLT-NN上でSCEコードのハッシュを計算し、vDLT-NNにわたるハッシュの値について、プラットフォーム上で合意に達することができる。
【0068】
別の実施形態では、合意プロトコル自体が、各トランザクションまたはトランザクションのグループ用に構成可能であってよい。合意プロトコルに関与するノードの構成可能性は、静的または動的であってよい。合意プロトコルの選択も、静的または動的であってよい。
【0069】
別の実施形態では、各vDLTノード内で、システムは、スマートコントラクト処理に関連付けられたポリシーをさらに構成することができ、この処理は、vDLTノードにおけるスマートコントラクトの実行に対する是認を取得するための、外部システムとの対話を含み得る。
【0070】
PRMは、合意プロトコルの処理、および合意プロトコルの性質に関連付けられたポリシーを、vDLTネットワーク中のポリシーデータベース中で構成し得る。続いて、トランザクション(是認のための、任意の外部または他の参加エンティティとの対話など)に関連付けられたポリシーが、vDLTノード内のSCSにおけるポリシーデータベースの中にプログラムされ得る。ポリシーに対する変更があるといつでも、DLTネットワーク用のポリシーデータベース、または各vDLTネットワークノード中のSCSにおけるポリシーデータベースが再構成され得る。
【0071】
別の実施形態では、プラットフォーム中での是認は、トランザクションに関連付けられたデータを承認するvDLTネットワークノードによるデジタル署名を含み得る。デジタル署名は、是認元に関連付けられたプライベートキーによって署名されたトランザクションデータのトランザクションのハッシュを含み得る。是認におけるそのようなデジタル署名の高速認証のために、是認側ノードに関連付けられたパブリックキーが、たとえば、vDLT-Nによって使用されるリソースの物理的なロケーションに対して物理的に離れて位置する場合がある認証局との対話に関連付けられた待ち時間を避けるために、vDLTプラットフォーム上のローカルデータベースに記憶され得る。
【0072】
vDLTプラットフォームにおけるマイクロサービスの間のセキュアな通信は、暗号化された情報転送のための非対称キー暗号技術(リベスト-シャミア-エーデルマン(RSA)/楕円曲線ベースのPKIシステム)を使って実施され、または対称キー暗号技術(高度暗号化標準など)を使うとともに対称キー暗号技術で交換される共有キーを使って実施されてよく、定期的にリフレッシュされ得るトークン(OAuthプロトコルベースなど)を使って実施されてもよい。セキュリティキーは、ディフィー-ヘルマンアルゴリズムなどのキー配送プロトコルを使って配送され得る。SHA-256またはSHA-512に基づくハッシングアルゴリズムをもつHMACアルゴリズムを使うキー導出プロトコルでの階層キー管理が使われてよい。ハッシュの生成のために、SHA-256またはSHA-512など、より高次元のポスト量子ハッシングアルゴリズムが使われてもよい。プラットフォームによって使われる暗号技術プロトコルは、所望される場合はより高次元のポスト量子アルゴリズムが使われ得るように、構成可能であってよい。
【0073】
トランザクション要求がDLTネットワークに提出されると、DLTネットワークにおけるポリシーデータベースが、合意プロトコルに参加することになるvDLTノードを判断するように、およびvDLTノードにわたって使うべき合意プロトコルを判断するように問合せされ得る。続いて、各vDLTノード内で、SCSにおけるポリシーデータベースが、スマートコントラクトの実行を支援するように(トランザクションを是認する必要がある何らかのエンティティを判断するなど)問合せされ得る。
【0074】
DLTネットワーク中のvDLTノードにわたって合意が求められるとき、合意処理マイクロサービスが、vDLTノード中でのスマートコントラクト処理の出力結果を承認または拒絶するために、ネットワーク中のvDLT-NNにわたって分散方式で実行する各vDLT-NN中で使用されてよい。k-out-of-Nなどの、またはトランザクションを承認/是認するのにノードの特定のセットを使用する、合意プロトコルの異なる変形体がサポートされてよい。続いて、TRMは、トランザクションを、vDLTノードにおけるローカル台帳データベースに記録すればよい。vDLTノードにわたるそのような合意が求められない場合、TRMは、そのローカル台帳データベースにトランザクションを直接コミットすればよい。複数のトランザクションが同時に進行中であってよく、そうすることによって、注文プレーサが、vDLTにおけるローカル台帳データベースにトランザクションをコミットするのに先立ってトランザクションを配列するのに使用され得る。
【0075】
別の実施形態では、ブロックチェーンプラットフォームは、データプライバシー規制関連適合性処理に使われ得る。この場合、そのようなプライバシー規制のための要件のうちの1つは、ユーザが、データへのアクセスを有することを望む場合がある異なるエンティティへのアクセスを制御できることである。同じときに、ユーザは、ユーザに関する過去のデータを消去することを選んでもよい。この点において、データはチェーン外に保たれてよく、そうすることによって、データプライバシー規制処理に関連したアクションのみがブロックチェーンプラットフォーム上で記録される。したがって、ユーザデータに関連したどの粗動作も、Hadoop分散型ファイルシステム(HDFS)もしくは惑星間(interplanetary)ファイルシステム(IPFS)ファイルシステムまたは外部構造照会言語(SQL)もしくはNoSQLデータベースまたは他のファイルシステムもしくはデータベース中など、プラットフォームの外部に存在するデータボルト上で実施される。したがって、制御プレーンとユーザ/データプレーンは、制御プレーン関連情報のみがブロックチェーンプラットフォーム上で記録されるように区分される。
【0076】
図8は、ユーザデータに対する読取り/書込み動作のためのアクセスを付与するのに先立って実施され得るアクセス制御チェックプロセス800を示す。たとえば、外部アプリケーション802が、データ保護適合性処理システム(DPCPS)804に対して読取り/書込みアクセスを要求し得る。要求は、ユーザデータに対する読取り/書込みアクセスを要求するデータ保護適合性(DPC)要求であってよい。DPCPS804は、DPC承認処理スマートコントラクトマイクロサービス806を実行し得る。要求が解決されると、マイクロサービス806は、承認または拒絶のいずれかを、vDLTプラットフォームのDPC台帳808に記録し得る。DPCPSは、台帳外データボルトシステム(図示せず)に対するDPC要求を処理するために、DPCSマイクロサービス810と通信してもよい。DPCPS804は、DPC台帳808にDPCアクションを記録するために、DPCアクション記録スマートコントラクトマイクロサービス812と通信してもよい。
【0077】
アクセス制御チェック800は、データ保護/プライバシー規制チェックを受ける必要がある、ユーザに関連したあらゆるフィールドまたは属性に関して実施され得る。DPC処理承認の受渡し成功は、データ保護適合性(DPC)台帳に記録される。所望される場合、DPC処理承認要求の拒絶も記録されてよい。いくつかの実施形態では、拒絶は、システム中でのいかなるサービス拒否攻撃も積極的に監視するために記録され得る。続いて、CRUD(作成/読取り/更新/消去)または他の要求されたアクションが外部データボルト中で実施されてよく、アクションのレコードがDPC台帳に記憶される。アクションを記録するために、データに関連付けられたキーに対する変更などのアクションの性質が、DPC台帳に記憶される(「ロケーション」または「アドレス」などだが、アドレスまたはロケーションの実際の値ではない)。実際のデータは、キー「アドレス」と、データ保護/プライバシー適合性を必要とするデータ構造(たとえば、そのようなデータ構造は、JSONベースまたはXMLベースであるが、そのようなデータ構造に限定されなくてよい)中の他の情報を伴う、キーに関連付けられた値(実際のアドレス)など、キーと値の両方を含んでもよい。ここで、データのハッシュは、アクションの完了の記録の一部として、DPC台帳に記録され得る。
【0078】
図9は、本開示のいくつかの実施形態による適合性およびアクセス制御チェックの図である。ある実施形態では、追加セキュリティおよびプライバシーを提供するために、
図9に示すように、ブロックチェーンプラットフォーム上で記録されることになるハッシュの生成の前に、ワンタイム乱数(ノンス)が生成され、データと結合され得る。プロセス900では、ステップ902において、DPCPSは、vDLTプラットフォームにDPC承認処理要求を提出し得る。ステップ904において、vDLTプラットフォームは、カスタムDPC承認処理(DPCAP)スマートコントラクトマイクロサービスを実行し得る。DPCAPスマートコントラクトマイクロサービスは、ステップ906において、要求を承認/拒絶することを(モバイルユーザから、など)必要とされる/許容される場合、要求元に関連付けられた証明書を認証し、データ要求に相対して要求元のアクセス特権をチェックし、静的に構成された選好と比較し、動的承認を取得し得る。要求が拒絶された場合、ステップ908において、vDLTプラットフォームは、要求の証明済み拒絶を、要求アプリケーションに、またはDPCPSに戻せばよい。ステップ910において、要求が承認された場合、vDLTプラットフォームは、DP適合性承認をDPC台帳に記録してよく、ステップ912において、vDLTプラットフォームは、要求の証明済み承認を、たとえば、DPCPSに、または要求アプリケーションに戻せばよい。
【0079】
いくつかの実施形態では、生成された乱数は、一定の時間期間に、特に、データレコードが頻繁にアクセスされる場合、複数回使われてよく、そうすることによって、OLDVSは、生成された乱数と、各数の有効性の時間間隔とを、乱数がそのために生成された対応するデータについて記憶する。乱数は、ランダムに、または固定時間間隔で、あるいは構成可能閾数のトランザクションに対する乱数の使用後に、または両方の閾(持続時間閾もしくはトランザクション閾の数)の組合せが満了した後に変更されてよい。
【0080】
図10は、本開示のいくつかの実施形態による、データプライバシー適合のためのプロセスの図である。
図10を参照すると、プロセス1000は、
図9のプロセスのためのコールフローを示す。これは、適合性およびアクセス制御チェックのためのスマートコントラクト(SCE)実行(DPCAP、すなわちデータ保護適合性承認処理スマートコントラクトマイクロサービス)と、DPC台帳への承認イベントの記録とを伴い、外部データボルトに対するアクションの実施が続き、その後に、DPC台帳にアクションの完了を記録するための、スマートコントラクト(DPCAR、すなわちデータ保護適合性アクションレコードスマートコントラクトマイクロサービス)の実行が続く。
【0081】
たとえば、プロセス1000では、ステップ1002において、外部アプリケーションが、CRUDまたはpub-subデータ要求を生成し得る。ステップ1004において、要求は、DPCPSによって処理のために受信され得る。ステップ1006において、DPCPSは、要求を、承認または拒否のためにvDLTプラットフォーム上のDPCAマイクロサービスへ通信し得る。要求が拒否された場合、ステップ1008において、DPCPSは、外部アプリケーションへ拒絶を通信すればよい。要求が承認された場合、ステップ1010において、DPCPSは、要求を処理するためにOLDVSと対話してよい。たとえば、OLDVSは、タプル(データおよび/またはアクション)を記録すればよく、これは、暗号化されてもされなくてもよい。OLDVSは、ノンスを生成し、暗号化された要求データおよびノンスについてのデータハッシュを計算し得る。OLDVSは次いで、要求のための暗号化キーおよびノンスを記録し得る。ステップ1012において、vDLTプラットフォームは、DPCARマイクロサービスを使って、完了したアクションをデータハッシュと共に記録し得る。いくつかの実施形態では、暗号化、解読、ハッシング、または署名は、ポスト量子暗号技術に基づいて行われ得る。
【0082】
図11は、データ保護およびプライバシー処理のためのプロセス1100のための例示的なコールフロー図である。ステップ1102において、DPCPSは、データプライバシー適合性処理要求を外部アプリケーションから受信し得る。DPCPSは、ステップ1104において、vDLTプラットフォームへDP適合性承認処理要求を通信すればよい。ステップ1106において、vDLTプラットフォームは、要求を、処理のためにDCAP SCEマイクロサービスへ送信し得る。ステップ1108において、DCAP SCEは、処理の結果(たとえば、承認または拒絶)をvDLTプラットフォームへ送信する。要求が承認された場合、ステップ1110において、DPC承認処理が、TRMによりDPC台帳に記録される。ステップ1112において、記録の受領通知がvDLTプラットフォームへ送られてよく、vDLTプラットフォームは次いで、DPCAP応答(たとえば、承認)をDPCPS1114へ通信する。
【0083】
応答を受信すると、ステップ1116において、DPCPSは、DPC処理要求を、タプル(たとえば、要求と一緒に受信されたデータおよびアクション)を使ってOLDVSで処理し得る。ステップ1118において、DPCPSは、OLDVSから応答、たとえば、上述したようにデータハッシュを受信する。データハッシュを使って、ステップ1120において、DPCPSは、DPアクションレコード(DPCAR)要求を生成し、この要求をvDLTプラットフォームへ送信し得る。vDLTプラットフォームのSCSマイクロサービスは次いで、ステップ1122において、DPCAR SCEマイクロサービスへDPCAR SCE要求を送ればよい。ステップ1124において、DPCAR SCEマイクロサービスは、vDLTプラットフォームのSCSマイクロサービスへ応答を送信する。ステップ1126において、TRMにより、DP適合性アクションがDPC台帳に記録され得る。ステップ1128において、記録の受領確認が、vDLTプラットフォームへ送られ得る。対して、vDLTプラットフォームは、ステップ1130において、DPCAR受領確認をDPCPSへ送ればよく、DPCPSは、ステップ1132において、外部アプリケーションへ応答を送信する。
【0084】
ある実施形態では、vDLTプラットフォームは、緊急ヘルスケアシステムにおいて実装され得る。5GエッジサーバにおいてホストされるIoT/ウェアラブルベースの知的サービスが、患者のために救急車を呼ぶ場合がある。患者は、最も近い病院に搬送されてよい。搬送中、患者データが、病院にわたるブロックチェーンネットワーク(vDLTN)を介して転送され得る。患者/介護者は、同意をライブで与えることができ、または代替として、状況に対するあらかじめ認可された同意が、データ転送を可能にするために記憶され、同意は、スマートコントラクトによって処理されてよい。保険処理が、ユーザを担当する病院および保険会社を含むブロックチェーンネットワーク上で同時に実施されてもよい。これは、患者が搬送される病院で患者に提供される緊急サービスを用いる、より効率的な処理を助けることになる。
【0085】
別の実施形態では、vDLTプラットフォームは、5G/IoT/AIなど、異なる分野と交わる多くの使用事例を助ける。たとえば、5Gは、妥当な、動的にスケーラブルなエンドツーエンドのリソースを、5Gネットワーク中の(求められる場合はエッジにある)各IoTアプリケーションまたはサービスに割り振ることができる。IoTシステムは、処理のためのトリガを監視し、与え得る。スマートコントラクトは、システム中で分散型自動化インテリジェンスを実行することができる。ブロックチェーンプラットフォームは、スマートコントラクトの実行に基づいて、イベントをプラットフォームの台帳に記録すればよい。IoTデバイス中で実行する自動化m2mインテリジェンスのための動的スマートコントラクトに関する情報は、m2m適合性検査へのサポートおよび監査サポートを提供するために、ブロックチェーン台帳に記録され得る。
【0086】
別の実施形態では、vDLTプラットフォームは、システムから必要とされる情報を公開するためだけに、ゼロ知識証明の実行など、カスタムマイクロサービスへのサポートを提供し得る。この目的のために、ゼロ知識証明のためのスマートコントラクトが実行されてよく、処理の出力結果が要求アプリケーションに公開されてよい。スマートコントラクトに基づく適合性およびアクセス制御チェックが、ゼロ知識証明スマートコントラクトマイクロサービスの実行に先立って実施され得る。ゼロ知識証明マイクロサービスの実行は、必要とされるフィールドのみを公開するように、フィールドを単にフィルタアウトすることを含み得る。さらに、そのようなマイクロサービスは、そのフィールドに関連した最小限の情報を公開するために、1つまたは複数のフィールドの変換を含み得る。たとえば、ユーザデータが、人の名前、年齢、性別、住所、および収入を含む場合、ならびに、アプリケーションが名前、および収入のみを必要とする場合、他のフィールドがフィルタアウトされてよく、具体的な名前および収入フィールドのみがアプリケーションへ戻されればよい。さらに、アプリケーションが、人の収入が一定の範囲内であることを検証する必要のみがある場合、ゼロ知識証明マイクロサービスは、人の名前および収入範囲は戻すが、人の実際の収入は報告しない。
【0087】
別の実施形態では、システムは、トランザクションに関連付けられたプラットフォーム上での信頼される機械学習サービスまたはプラットフォーム上に記憶されたデータを提供するための学習および予測を実施するためのマイクロサービスをサポートし得る。システムは、プラットフォーム上での最適意思決定のために効用関数を計算するための最適化関連マイクロサービスも有し得る。システムは、リモートデータセンタとの対話のためのマイクロサービスをホストすることもできる。特に、システムは、情報を交換するための分散型データセンタ対話へのサポートをマイクロサービスが提供する、vDLT-Nにわたる分散型処理(分散型機械学習など)を実施する場合もある。システムは、プラットフォーム上で積極的アクションをとるために、またはプラットフォーム上でのサービス拒否(DoS)もしくは分散型サービス拒否(DDoS)攻撃などのセキュリティ攻撃を監視するために、出版購読機構に基づいて、スマート監視サービスをサポートすることもできる。
【0088】
別の実施形態では、広告主が、ユーザに関連した特定の情報を要求する場合があり、次いで、適合性検査スマートコントラクトマイクロサービスは、ユーザに関連した情報にアクセスするための、広告主の能力を検証し得る。続いて、情報は、vDLTプラットフォームに支払われる、広告主への代価で、広告主に与えられてよい。プラットフォームは、プラットフォーム上に記憶されたユーザ情報の使用のために、ユーザを信用することを選んでよい。広告主が、ユーザの選好に基づいて特定のユーザをターゲットにする場合、プラットフォームは、そのようなターゲット設定を広告主に請求し、そのようなターゲット設定のための部分的信用をユーザに与えてよい。広告へのユーザの応答(単なる提示、対してクリックスルーまたは購入アクションなどのような)に基づいて、広告の配信に関連付けられた料金は変わり得る。広告主は、ユーザのグループに関連した集約情報を取得しただけである場合、そのような情報について請求されればよく、ユーザのグループ中の各ユーザは、信用(可能性としては、ユーザの直接ターゲット設定と比べて、ユーザごとにより小さい信用)を受け取り得る。広告主は、実際のユーザを知らずに、ユーザのグループをターゲットにする場合、再度、ターゲットにされるユーザの数、広告へのユーザのそれぞれのアクションに基づいて請求され得る。広告またはターゲットにされるメッセージを、プラットフォーム上のユーザモデルまたはユーザ選好または過去の記憶されたユーザデータと調和させるとき、データ保護/プライバシー適合性処理が求められ得る。ユーザモデルが、データ保護/プライバシー適合性を受けるユーザデータに基づいて導出され、そのようなユーザモデルが使われる場合、ユーザモデルは、ユーザ選好の現在のバージョンまたは記憶されたユーザデータに対して与えられる許可に基づいて反映される必要がある。そのような使用のための、あらかじめ許可されたデータが、使用のためにそれ以上許可されない場合、ユーザモデルは、そのような情報なしで再度導出される必要がある。同様に、そのような使用のための、あらかじめ許可されていないデータが、そのような使用のためにユーザによって今度は許可される場合、ユーザモデルは、ユーザに関連付けられた、追加の利用可能な許可された情報に基づいて強化され、導出され得る。
【0089】
vDLTプラットフォーム上のスマートコントラクトマイクロサービスは、システム中の参加エンティティによって承諾されたように、様々なエンティティにわたる適切な値共有を許容するように構成されるか、または動的に構成し直されてよい。そのような値共有は、プラットフォーム上の参加エンティティの間で転送されるトークンを使って実施されてよく、そのようなトークンは、不換通貨を追跡する金銭価値を有し得る。たとえば、トークンの価値は、USドルまたはインドのルピーのわずか何分の一かであってよい。すべてのそのような処理が、プラットフォーム上のスマートコントラクトで実施されてよく、vDLTプラットフォームが、広告主とユーザ用のネットワークオペレータとの間の共有台帳を作成する。
【0090】
本開示の態様は、以下の通りである。
【0091】
本開示は、複数のDLTネットワークに同時に参加するための能力をもつ1つまたは複数のマイクロサービスを含む仮想DLTノードを作成するための実装を提供し、仮想DLTノードは、1つまたは複数の物理ネットワークにわたって分散され得る計算、記憶、およびネットワークリソースを使用し、仮想DLTノード向けのマイクロサービスは、物理コンピューティングノード上の仮想機械またはコンテナ中で実行し、仮想DLTノードは、前記仮想ノードと、ゼロ以上の仮想DLTノードとを、そのDLTネットワークの参加者として含むDLTネットワークのメンバーであり、DLTネットワークは、仮想DLTノードとして実装されないが、そのDLTネットワークによって指定されるように、DLTネットワークに参加するための必要な機能性を有する追加参加者を含んでよく、DLTネットワークは1つまたは複数の台帳をホストし、各台帳は、DLTネットワークに属す1つまたは複数の仮想DLTノードにわたって共有され、台帳を共有する仮想DLTノードのセットは、DLTネットワークに属す仮想DLTノードのセットのサブセットであり、仮想DLTノードは、複数のDLTネットワークのメンバーであり、仮想ノードにおいてホストされるマイクロサービスは、ノードがそのメンバーであり、アイデンティティおよびアクセス管理によってDLTネットワークについての有効な認証アイデンティティを与えられる、DLTネットワークの各々に参加するのに必要とされるスマートコントラクトすべてを含む。
【0092】
本開示の別の特徴は、イベントルーティングマネージャマイクロサービスが、仮想DLTノードによってホストされる2つのマイクロサービスの間でイベントをルーティングすることであり、ここで、仮想DLTノードは、高可用性のための複製されたマイクロサービスを含むことができ、複製されたマイクロサービスは、より優れた障害許容および分離を与えるように、異なる物理システム上で実行することができ、弾力的負荷分散装置が、マイクロサービスのための処理負荷を、その複製されたインスタンスに分散するのに使用される。
【0093】
本開示の別の特徴は、vDLTネットワークが、そのノードにわたって、プライベートブロックチェーンネットワークまたはパブリックブロックチェーンネットワークの両方のために、1つまたは複数の合意プロトコルを使用し得ることである。
【0094】
本開示の別の特徴は、vDLTネットワークが、トランザクションに関連付けられた動的もしくは静的ポリシーに基づくか、またはトランザクションを完了するために実行されるスマートコントラクトに含まれる情報に基づくか、または仮想DLTノードおよび他の仮想DLTノードがメンバーであるDLTネットワークもしくはDLTサブネットワークに基づくことである。
【0095】
本開示の別の特徴は、vDLTネットワークが、データ適合性記録使用事例、貿易金融取引使用事例あるいはサプライチェーン使用事例あるいはモバイルナンバーポータビリティ使用事例あるいは未承諾顧客通信使用事例あるいは信用状発行または船荷証券もしくは貿易金融のための他の文書の共有使用事例あるいは広告トランザクションレコード使用事例のために使われ得る。
【0096】
本開示の別の特徴は、vDLTネットワークが、クラウドデータセンタもしくはネットワーク内データセンタ中に、またはエッジデータセンタにあり得ることである。
【0097】
本明細書ではいくつかの実施形態にかなりの強調が置かれているが、多くの実施形態が行われ得ること、および本開示の原理から逸脱することなく、好ましい実施形態において多くの変更が行われ得ることが理解されよう。本開示の実施形態におけるこれらの、および他の変更が、本明細書における開示から、当業者には明らかになり、それにより、上記の説明的事項は、本開示の例示としてのみ実装されるべきであって、限定として実装されるべきでないことを明確に理解されたい。
【0098】
図示されるステップは、示した例示的な実施形態を説明するために設定されており、進行中の技術的開発が、特定の機能が実施される方式を変えることが期待されるべきである。これらの例は、本明細書では、限定ではなく説明の目的のために提示される。さらに、機能的ビルディングブロックの境界は、記述の便宜のために、本明細書において任意に定義されている。指定された機能およびそれらの関係が適切に実施される限り、代替境界が定義されてよい。代替形態(本明細書において記載するものの等価物、拡張、変形、逸脱などを含む)が、本明細書に含まれる教示に基づいて、当業者には明らかであろう。そのような代替形態は、開示する実施形態の範囲および趣旨内である。また、「備える」、「有する」、「包含する」、および「含む」という単語、ならびに他の類似形は、意味が等価であり、これらの単語のうちのいずれか1つに続く1つの項目または複数の項目が、そのような1つの項目または複数の項目の網羅的列挙であることを意図されることも、列挙される1つの項目または複数の項目のみに限定されることを意図されることもないという点で、オープンエンドであることを意図している。本明細書において、および添付の特許請求の範囲において使用される限り、単数形の「a」、「an」、および「the」は、文脈上、そうでないとする明確な指示がない限り、複数の参照を含むことにも留意されたい。
【0099】
さらに、本開示に合致する実施形態を実装する際に、1つまたは複数のコンピュータ可読記憶媒体が使用されてよい。コンピュータ可読記憶媒体は、プロセッサによって可読な情報またはデータが記憶され得るどのタイプの物理メモリも指す。したがって、コンピュータ可読記憶媒体は、本明細書で説明した実施形態に合致するステップまたは段階をプロセッサに実施させるための命令を含む、1つまたは複数のプロセッサによる実行のための命令を記憶することができる。「コンピュータ可読媒体」という用語は、有形物を含み、搬送波および非常駐信号を除外する、すなわち、非一時的であるものと理解されるべきである。例は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、揮発性メモリ、不揮発性メモリ、ハードドライブ、CD ROM、DVD、フラッシュドライブ、ディスク、およびどの他の知られている物理記憶媒体も含む。
【0100】
本開示および例は、例示的とのみ見なされることを意図するものであり、開示する実施形態の真の範囲および趣旨は、添付の特許請求の範囲によって示される。
【符号の説明】
【0101】
200 ブロックチェーンDLTプラットフォーム
202 仮想DLTネットワーク(vDLT-N)
300 仮想DLTネットワーク(vDLT-N)
302 仮想DLTネットワークノード(vDLT-NN)
304 電子データ記憶ユニット
500 vDLT-N
502 vDLT-NN
504 データ記憶ユニット
602 イベントルーティングマネージャ(ERM)マイクロサービス、ERM
604 フロントエンドアプリ/UI/SDK
606 スマートコントラクトサービス(SCS)マイクロサービス、SCS
608 スマートコントラクト実行(SCE)マイクロサービス
610 状態データベース
612 トランザクションリソースマネージャ(TRM)マイクロサービス、TRM
614 台帳
802 外部アプリケーション
804 データ保護適合性処理システム(DPCPS)
806 DPC承認処理スマートコントラクトマイクロサービス、マイクロサービス
808 DPC台帳
810 DPCSマイクロサービス
812 DPCアクション記録スマートコントラクトマイクロサービス