(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-04
(45)【発行日】2022-11-14
(54)【発明の名称】ブロックチェーンのブロックの暗号保護され且つフィルタリングされ且つソートされたトランザクションデータセットの集合を提供する装置
(51)【国際特許分類】
G06F 16/27 20190101AFI20221107BHJP
G06F 21/64 20130101ALI20221107BHJP
【FI】
G06F16/27
G06F21/64
(21)【出願番号】P 2020508984
(86)(22)【出願日】2018-07-09
(86)【国際出願番号】 EP2018068475
(87)【国際公開番号】W WO2019034329
(87)【国際公開日】2019-02-21
【審査請求日】2020-06-08
(32)【優先日】2017-08-18
(33)【優先権主張国・地域又は機関】EP
(31)【優先権主張番号】PCT/EP2018/065299
(32)【優先日】2018-06-11
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】390039413
【氏名又は名称】シーメンス アクチエンゲゼルシヤフト
【氏名又は名称原語表記】Siemens Aktiengesellschaft
(74)【代理人】
【識別番号】110003317
【氏名又は名称】特許業務法人山口・竹本知的財産事務所
(74)【代理人】
【識別番号】100075166
【氏名又は名称】山口 巖
(74)【代理人】
【識別番号】100133167
【氏名又は名称】山本 浩
(74)【代理人】
【識別番号】100169627
【氏名又は名称】竹本 美奈
(72)【発明者】
【氏名】ファルク,ライナー
【審査官】早川 学
(56)【参考文献】
【文献】国際公開第2017/112664(WO,A3)
【文献】米国特許出願公開第2017/0140375(US,A1)
【文献】CAI, Chengjun,Towards trustworthy and private keyword search in encrypted decentralized storage,2017 IEEE International Conference on Communications (ICC) [online],IEEE,2017年07月31日,pp.1-7,[検索日:2021.05.20], <DOI: 10.1109/ICC.2017.7996810 >
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
未ソートのトランザクションデータセットの集合から、分散データベースシステムの暗号保護され且つセマンティックにソートされたトランザクションデータセットの集合を形成するために、コンピュータにより実行される方法であって、
a)同じ又は別の分散データベースシステムの第1のブロック(B10)にリンクされているか又はリンクされる分散データベースシステムの少なくとも1つの第2のブロック(B11)を形成するステップと、
b)前記第2のブロック(B11)において少なくとも1つの検索語を確定するか、又は、前記第2のブロック(B11)が含む少なくとも1つの以前に確定された検索語を読み出すステップと、
c)前記未ソートのトランザクションデータセット(Tx0~Tx6)の集合(M)から整合性について検証済みのトランザクションデータセット(Tx0)を選択する
ステップと、
d)前記選択したトランザクションデータセット(Tx0)を、前記確定した又は読み出した検索語、又は、前記確定した又は読み出した検索語のうちの1つ、に割り当てるステップと、
e)少なくとも、選択すべきトランザクションデータセットが所定の数に達するまで、又は、前記未ソートのトランザクションデータセットの集合が空になるまで、前記ステップb)から前記ステップd)までを繰り返すステップと、
f)所定のソート基準に基づいて、前記選択し且つ割り当てたトランザクションデータセットをセマンティックにソートし、前記割り当てられた検索語を前記ソート基準に対応する順序にするステップと、
g)前記順序を使用して、前記暗号保護され且つセマンティックにソートされたトランザクションデータセット(Tx2,Tx1,Tx0,Tx3)の集合を形成するステップとを含む、方法。
【請求項2】
前記第2のブロック(B11)において複数の検索語を確定し又は読み出す場合、該検索語が検索ツリー(TT)に配置され、そして前記検索語が前記検索ツリーのノードを形成する、請求項1に記載の方法。
【請求項3】
前記検索語は、それぞれ区切り記号によって分離され得る、上位語と複数の下位語から構成されている、請求項1又は2に記載の方法。
【請求項4】
前記検索語は、前記検索ツリーのルートノード内の前記上位語から前記検索ツリーのリーフノード内の最下位の前記下位語までが階層的に配置され、区切り記号によって前記検索ツリーの関連する前記ノード間にあるエッジを明示することができる、
請求項2を引用する請求項3に記載の方法。
【請求項5】
分散データベースシステムのブロック(B10,B11)の整合性が検証され且つセマンティックにソートされたトランザクションデータセット(Tx2,Tx1,Tx0,Tx3)の集合から、暗号保護され且つフィルタリングされたトランザクションデータセットの集合を提供する装置であって、前記ブロックが請求項1~4のいずれか1項に記載の方法に従って形成され、
分散データベースシステムの少なくとも1つの前記ブロックを提供する提供手段と、
フィルタ基準を使用して、前記分散データベースシステムの前記検証され且つセマンティックにソートされたトランザクションデータセットの集合から、フィルタリングしたトランザクションデータセットの集合を決定するフィルタリング機器に、前記提供手段を結合する結合手段と、
前記フィルタリングしたトランザクションデータセットの決定された集合を提供する出力手段とを有する、装置。
【請求項6】
前記フィルタ基準は、前記分散データベースシステムの前記提供されたブロック内の前記検索語と同一であるか、又は、前記検索語から誘導可能であるか、又は、前記検索語から誘導されている、さらなる検索語又は該さらなる検索語の少なくとも一部を少なくとも用いて確定可能である、請求項5に記載の装置。
【請求項7】
通信ネットワークの構成であって、構成要素として、
請求項5又は6に記載の装置を有し、分散データベースシステムを処理する少なくとも1つのネットワークノード(BCN)と、
1つのデバイス(IoT)又はグループ(AN)に割り当てられている複数のデバイス(IoTC,FD1,FD2,FD3)と、
請求項5又は6に記載の装置の前記結合手段により前記提供手段と結合される前記フィルタリング機器を少なくとも1つ
と、
これらの構成要素が相互に通信できるネットワークインフラストラクチャ(N)とを含む、通信ネットワークの構成。
【請求項8】
前記ネットワークインフラストラクチャ(N)においていわゆるパブリッシュ/サブスクライブプロトコルが適用可能であり、前記フィルタリング機器が、前記1つのデバイス又は前記グループの複数のデバイスに検索語のサブスクリプション又は確定を少なくとも可能にするように構成される、
請求項7に記載の通信ネットワークの構成。
【請求項9】
分散データベースシステムを処理するネットワークノード(BCN)のためのプログラム命令を含むコンピュータプログラムであって、
前記ネットワークノード(BCN)が、請求項1~4のいずれか1項に記載の方法を実行するべく適合させた前記プログラム命令によって構成される、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブロックチェーンのリンク(ブロック)の暗号保護され且つフィルタリングされ且つソートされたトランザクションデータセットの集合を提供する装置と、ソートされたトランザクションデータセットの集合を形成するための方法と、関連する通信ネットワークの構成と、関連するコンピュータプログラム(を記憶した製品)とに関する。
【背景技術】
【0002】
ブロックチェーンには様々な種類の多数のトランザクションが結果的に含まれている。例えば、スマートエネルギーグリッド(インテリジェントなエネルギーグリッド)の制御など、産業用途にブロックチェーンを使用する場合、ネットワークのノードは、ノードに無関係の大量のトランザクションを処理する必要がある。
【0003】
ブロックチェーン又は分散台帳技術(Distributed Ledger Technology)は、現在、議論が集中している技術である。これについては、例えば、https://en.wikipedia.org/wiki/Blockchain(database)に説明されている。
【0004】
図1は、そのようなブロックチェーンの一例を示す。ブロックチェーンとは、一般的に、先行するデータセット(又はブロック、リンク)B10の、ハッシュ値とも呼ばれる一方向性関数値PHを、各後続のリンク
(ブロック)B11に保存することによって、すなわち、暗号デイジーチェーンによって、整合性(事後改ざんに対する保護)が確保されているデータベースであると解釈される。その保護は、ブロックチェーンネットワークNにおいて、いわゆるマイニング又はブロックの検証を実行する、例えば
図3に図示した、信頼できるノードBCNの大部分によって成立する。ブロックチェーンに参加するノードのネットワークでは、例えば、10分ごとなどの定期的な間隔で、新規ブロック、例えば、B11が形成され、この場合、現存するブロックのハッシュ値PHが一緒に保存される。このときに、トランザクション、例えばTx0、Tx1、Tx2、Tx3、Tx4、Tx5、Tx6の集合Mから、事前に決定可能な数のトランザクション、
図1の例では4つのトランザクション、例えばTx0、Tx1、Tx2、Tx3が選択され、所定の順序、好ましくは0から3までの番号付けの構文的順序で、ハッシュツリーにおいてリーフとしてマウントされる。例えば、マークルツリー又はパトリシアツリーの使用がハッシュツリーとして普通である。このようなハッシュツリーのルートノードTxRは、ブロック、例えばB11に固定されている。
【0005】
一度ブロックチェーンにおいて出現することとなるトランザクションTx0、Tx1、Tx2、Tx3は、もはや気付かれることなく変更することは不可能である。このマイニングプロセスでは、ブロックに保存されるトランザクションの有効性又は整合性を検証する。トランザクションデータセットを使用してトランザクションを実行できる。トランザクションとは、送信者から受信者への、仮想物か実物の又は(例えば、ビットコイン又はイーサリアムを使用する)支払い又は他の情報の、相互転送であると解釈される。ビットコインでは、比較的単純なスタックベースのランタイム環境を使用して、トランザクションの許容性を検証する。この場合、トランザクションには、トランザクションの有効性を検証するためのチェックサムが含まれる。ブロックチェーンプラットフォームのイーサリアムは、ブロックチェーンのプログラムコードを柔軟に実装できるように、自由にプログラマブルなランタイム環境をサポートする。このとき、例えば、ビジネスロジックは、トランザクションデータセットに、したがってブロックチェーン又はブロックチェーンインフラストラクチャノードに、プログラムコードとして保存される。このような観点から、実行されるトランザクションは、ブロックチェーンの(チェーン)リンクに保存されている。したがって、これに関連して、実行されるトランザクションと、トランザクションを実行するために形成されたトランザクションデータセットとを区別することは、ほとんど不可能である。
【0006】
ブロックチェーンでは、相当数のノードがブロックを完全にバリデーションする、すなわち、ブロックのすべてのトランザクションを検証することが可能である。これは手間がかかるため、個々のトランザクションのみをバリデーションする、「シンプルバリデーションノード」もまた考えられる。そのために、ノードはそれぞれ、関係するトランザクションのハッシュツリーを通るパスを注意深く探索して検証しなければならない。
【0007】
「プルーフオブワーク」としてのマイニングプロセスに加えて、代替形態、特に擬似ランダムではあるが決定論的に選択されたブロックチェーンノードによってブロックが確認される「プルーフオブステーク」、又はアクセス制御されたブロックチェーン(許可されたブロックチェーン)もまた既知である。ブロックチェーンで保護された、したがって暗号保護されたトランザクションデータセットは、一般にプログラムコードを含む。「スマートコントラクト」という用語は、プログラムコードであると解釈され、そのプログラムコードにおいて、作成時に条件を定義でき、そのランタイムに解析できるため、特定のトランザクションを特定の(金額の)程度で1つの特定の受信者又は複数の特定の受信者において実行できるか、又は実行できない。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明の課題は、ノードに関連するトランザクションの効率的で改善された処理を、ノードによって可能にする方法及び装置を提供することである。
【課題を解決するための手段】
【0009】
本課題は、独立形式請求項において特定されている特徴によって解決される。本発明の有利な発展態様が引用形式請求項に示されている。
【0010】
以下の説明では特に明記しない限り、「実行する」、「算出する」、「コンピュータ支援された」、「計算する」、「確定する」、「生成する」、「構成する」、「再構成する」などの用語は、好適には、データを変更したり生成する、あるいはデータを他のデータに変換する、演算、プロセス、処理するステップなどに関連し、データは、具体的には物理量として、例えば、電気的インパルスとして、表されているか又は存在する。「コンピュータ」という用語は、例えば、データ処理特性を備えたすべての電子デバイスをカバーするために、可能な限り広く解釈すべきである。したがって、コンピュータは、例えば、パーソナルコンピュータ、サーバ、プログラマブルロジックコントローラ(PLC)、ハンドヘルドコンピュータシステム、ポケットPCデバイス、モバイル無線デバイス、及びコンピュータ支援されてデータを処理できるその他の通信デバイス、プロセッサ及びデータ処理用のその他の電子デバイスであり得る。
【0011】
本発明に関して言う「コンピュータ支援された」とは、例えば、プロセッサが本方法の少なくとも1つの方法ステップを実行する、本方法の実装であると解釈できる。
【0012】
本発明に関して言うプロセッサは、例えば、装置又は電子回路であると解釈できる。プロセッサは、具体的には、メインプロセッサ(中央処理装置、CPU)、マイクロプロセッサ又はマイクロコントローラ、例えば特定用途向け集積回路又はデジタル信号プロセッサ、であり、場合によって、プログラム命令などを記憶するための記憶ユニットと組み合わせてもよい。プロセッサはまた、例えば、IC(集積回路)、特にFPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)又はDSP(デジタルシグナルプロセッサ)又はグラフィックプロセッサGPU(グラフィックプロセッシングユニット)であり得る。さらに、プロセッサは、仮想化プロセッサ、仮想マシン又はソフトCPUであるとも解釈できる。また、例えば、本発明による上述の方法を実行するための構成(コンフィグレーション)ステップが実装されているプログラマブルプロセッサ、又はプログラマブルプロセッサが、本発明の方法、構成要素、モジュール、手段、他の態様、部分的な態様の1つ以上の本発明による特徴を実現するように構成ステップによって構成されている、プログラマブルプロセッサであり得る。
【0013】
本発明に関して言う「記憶ユニット」又は「記憶モジュール」などは、例えば、ワーキングメモリ(ランダムアクセスメモリ、RAM)の形態の揮発性メモリ、ハードディスク又はデータキャリアなどの不揮発性メモリであると解釈できる。
【0014】
本発明に関して言う「モジュール」、「手段」、「機器」などは、プロセッサ又はプログラム命令を記憶するための記憶ユニット、あるいはその両方であると解釈できる。例えば、プロセッサは、本発明による方法又は本発明による方法のステップを実装又は実現するための機能をプロセッサに実行させるプログラム命令を実行するように特別に構成されている。モジュールは、例えば、該当するモジュールの特定の機能/特徴を実現する分散データベースシステムのノードである。それぞれのモジュール/手段/機器は、例えば、別個の又は独立したモジュール/手段/機器として構成してもよい。このために、該当するモジュール/手段/機器は、例えば、別の要素を含んでもよい。その要素は、例えば、1つ以上のインターフェース(例えば、データベースインターフェース、通信インターフェース、例えばネットワークインターフェース、WLANインターフェース)、評価ユニット(例えば、プロセッサ)、記憶ユニットの1つ以上である。例えば、インターフェースを使用してデータを交換できる(受信、伝送、送信又は提供する)。評価ユニットを用いて、データは、例えば、コンピュータ支援か又は自動化された方法で、あるいはその両方で、比較、検証、処理、割り当て、又は計算することができる。記憶ユニットを用いて、データは、例えば、コンピュータ支援か又は自動化された方法で、あるいはその両方で、記憶できる、読み出すことができる、又は提供できる。
【0015】
特にデータや情報について、本発明に関して言う「含む」とは、例えば、該当する情報又は該当する日付を(例えば、同様に記憶ユニットに記憶されている)データ構造/データセットに(コンピュータ支援により)記憶することであると解釈できる。
【0016】
特にデータや情報について、本発明に関して言う「割り当てる」とは、例えば、データや情報をコンピュータ支援により割り当てることであると解釈できる。このために、例えば、メモリアドレス又はユニーク識別子(unique identifier:UID)を用いて、第1の日付に第2の日付が割り当てられ、その第2の日付では、例えば、第1の日付が、第2の日付のメモリアドレス又はユニーク識別子と共にデータセットに一緒に記憶される。
【0017】
本発明に関して言う「提供する」とは、特にデータや情報について、例えば、コンピュータ支援により提供することであると解釈できる。提供は、例えば、インターフェース(例えば、データベースインターフェース、ネットワークインターフェース、記憶ユニットへのインターフェース)を介して行われる。このインターフェースを介して、例えば、提供時に、該当するデータや情報に対する伝送、送信、読み出し、受信のいずれか1つ以上を行うことができる。
【0018】
本発明に関して言う「提供する」とは、例えば、該当するデータを伴うトランザクションを、例えば、ロードすること又は記憶することであると解釈できる。これは、例えば、記憶モジュールで又は記憶モジュールにより行うことができる。「提供」は、例えば、ブロックチェーン又は分散データベースシステム(又はそれらのインフラストラクチャ)のあるノードから別のノードへの該当するデータの転送(又は送信、伝送)であると解釈できる。
【0019】
本発明に関して言う「スマートコントラクトプロセス」は、特にプロセスにおいて分散データベースシステム又はそのインフラストラクチャによってプログラムコード(例えば、制御命令)を実行することであると解釈できる。
【0020】
本発明に関して言う「チェックサム」、例えば、データブロックチェックサム、データチェックサム、ノードチェックサム、トランザクションチェックサム、デイジーチェーンチェックサムなどは、例えば、暗号チェックサム、暗号ハッシュ、あるいは暗号ハッシュ値であると解釈でき、これらは、特に暗号ハッシュ関数を用いて、データセット、データ、トランザクション、データブロックのサブエリア(例えば、ブロックチェーンのブロックのブロックヘッダ又は分散データベースシステムのデータブロックのデータブロックヘッダ又はデータブロックのトランザクションの一部のみ)のいずれか1つ以上を介して形成されるか、又は計算される。チェックサムは、特にハッシュツリー(例えば、マークルツリー、パトリシアツリー)のチェックサム(複数可)又はハッシュ値(複数可)であってもよい。さらに、これは、特にデジタル署名又は暗号メッセージ認証コードであると解釈してもよい。チェックサムを用いて、例えば、トランザクション及びトランザクションに記憶されているデータ(セット)の暗号化保護/改ざん保護を、データベースシステムの様々なレベルで実装できる。例えば、高レベルのセキュリティが必要な場合、例えば、チェックサムがトランザクションレベルで生成されて検証される。セキュリティがそれほど高くなくてもよい場合、例えば、チェックサムがブロックレベルで(例えば、データブロック全体にわたって、又はデータブロックの一部やトランザクションの一部のみにわたって)生成されて検証される。
【0021】
本発明に関して言う「データブロックチェックサム」は、例えば、データブロックのトランザクションの一部又は全体にわたって計算されるチェックサムであると解釈できる。この場合、ノードは、例えば、データブロックチェックサムを用いて、データブロックの対応する部分の整合性/真正性を検証/決定できる。追加的又は代替的に、データブロックチェックサムは、特に、先行するデータブロック/データブロックの先行データブロックのトランザクションを介して形成されていてもよい。この場合、データブロックチェックサムは、特にハッシュツリー、例えば、マークルツリー[1]又はパトリシアツリーを用いて実装してもよく、データブロックチェックサムは、特にマークルツリー又はパトリシアツリー又はバイナリハッシュツリーのルートチェックサムである。トランザクションは、マークルツリー又はパトリシアツリーに由来るするさらなるチェックサムを用いて(例えば、トランザクションチェックサムを使用することで)保護され、さらなるチェックサムは、マークルツリー又はパトリシアツリー内のリーフである。したがって、データブロックチェックサムは、例えば、さらなるチェックサムからルートチェックサムを形成することにより、トランザクションを保護できる。データブロックチェックサムは、特に、データブロックのうちの特定のデータブロックのトランザクションに対して計算できる。特に、そのようなデータブロックチェックサムを特定のデータブロックの後続のデータブロックに含めて、この後続のデータブロックを、例えば、その先行するデータブロックとリンクさせて、分散データベースシステムの整合性を検証可能にすることができる。これによって、データブロックチェックサムは、例えば、デイジーチェーンチェックサムの関数を引き継ぐか、又はデイジーチェーンチェックサムに含めることができる。データブロック(例えば、新規データブロック又はそれに対してデータブロックチェックサムが形成されたデータブロック)のヘッダは、例えば、データブロックチェックサムを含むことができる。
【0022】
本発明に関して言う「トランザクションチェックサム」は、特にデータブロックのトランザクションを介して形成されるチェックサムであると解釈できる。さらに、例えば、既に計算されたトランザクションチェックサムを、例えば、マークルツリーのリーフとしてすぐに利用できることから、例えば、データブロックチェックサムの計算を該当するデータブロックに対して高速化できる。
【0023】
本発明に関して言う「デイジーチェーンチェックサム」は、分散データベースシステムの各データブロックを、分散データベースシステムの先行するデータブロック(専門文献では特に「1つ前のブロックハッシュ(previous block hash)」と称する)を指定又は参照するチェックサムであると解釈できる[1]。このために、対応する先行のデータブロックに対して、対応するデイジーチェーンチェックサムが形成される。デイジーチェーンチェックサムとして、例えば、トランザクションチェックサム又はデータブロック(すなわち、分散データベースシステムの既存のデータブロック)のデータブロックチェックサムは、新規データブロックを分散データベースシステムの(既存の)データブロックとリンクさせるために利用できる。ただし、例えば、先行するデータブロックのヘッダにわたって、又は先行するデータブロック全体にわたって、チェックサムを形成し、デイジーチェーンチェックサムとして利用することもできる。これは、例えば、先行するデータブロックのうちのいくつか又はすべてに対してもまた計算できる。また、例えば、データブロック及びデータブロックチェックサムのヘッダにわたってデイジーチェーンチェックサムを形成することが実装可能である。ただし、分散データベースシステムの各データブロックは、好適にはそれぞれ、各データブロックに先行するデータブロックに対して、さらに好ましくは直前のデータブロックに対して、計算された、又はそのデータブロックを参照するデイジーチェーンチェックサムを含む。また、例えば、対応するデイジーチェーンチェックサムは、対応するデータブロック(例えば、先行するデータブロック)の一部のみにわたって形成することもできる。これによって、例えば、整合性保護された部分及び保護されていない部分を含むデータブロックを実装できる。したがって、例えば、その整合性保護された部分が不変であり、その保護されていない部分が、後になってからでもまた変更できるデータブロックを実装できる。その場合、整合性保護された、とは、例えば、整合性保護されたデータの変更がチェックサムを用いて決定可能であると解釈すべきである。
【0024】
例えば、データブロックのトランザクションに記憶されるデータは、様々な手法で提供できる。データ、例えば測定データ又は資産のデータ/所有権構造などのユーザデータ、の代わりに、例えば、データブロックのトランザクションは、このデータに対するチェックサムのみを含んでもよい。この場合、対応するチェックサムは、様々な手法で実装できる。これは、例えば、別のデータベース又は分散データベースシステムの(対応するデータを有する)データブロックの対応するデータブロックチェックサム、(分散データベースシステム又は別のデータベースの)対応するデータを有するデータブロックのトランザクションチェックサム、又はデータを介して形成されたデータチェックサムであり得る。
【0025】
加えて、該当するトランザクションは、記憶場所に関する参照又は表示(例えば、ファイルサーバのアドレス及び該当するデータをファイルサーバ上で見出すことができる場所の表示、又はデータを含む別の分散データベースのアドレス)を含み得る。この場合、該当するデータは、例えば、分散データベースシステムのさらなるデータブロックのさらなるトランザクションにおいて(例えば、対応するデータ及び関連するチェックサムが異なるデータブロックに含まれている場合に)提供できる場合もある。ただし、例えば、このデータが別の通信チャネルを介して(例えば、別のデータベースや暗号で保護された通信チャネルを介して)提供することもまた考えられる。
【0026】
また、例えば、チェックサムに加えて、追加データセット(例えば、保存場所に関する参照又は表示)を対応するトランザクションに保存することもでき、この追加データセットは、例えばデータを読み出すことができる保存場所を示す。これは、特に、ブロックチェーン又は分散データベースシステムのデータサイズを可能な限り小さく保つために有利である。
【0027】
本発明に関して言う「セキュリティ保護された」とは、例えば、暗号化法によって実装される保護であると解釈できる。例えば、その保護は、該当するデータ/トランザクションの提供又は伝送又は送信のために分散データベースシステムを使用することによって実装できる。これは、好適には、様々な(暗号化)チェックサムの組み合わせによって、特にチェックサムが相乗的に相互作用して、例えば、トランザクションのデータに対するセキュリティ又は暗号化セキュリティを改善することによって達成される。言い換えれば、本発明に関して言う「セキュリティ保護された」とは、「暗号化保護された」又は「改ざん保護された」(又はその両方)であるともまた解釈でき、「改ざん保護された」はまた、「整合性保護された」と称してもよい。
【0028】
本発明に関して言う「分散データベースシステムのデータブロックの連結」は、例えば、データブロックがそれぞれ、分散データベースシステムの1つの別のデータブロック又は複数の別のデータブロックを参照するか、又はこれらを照会する情報(例えば、デイジーチェーンチェックサム)を含むことであると解釈できる[1][4][5]。
【0029】
本発明に関して言う「分散データベースシステムへの挿入」などは、例えば、1つのトランザクション、複数のトランザクション、又はそのトランザクションを含むデータブロックが、分散データベースシステムの1つ以上のノードに伝送されることであると解釈できる。例えば、これらのトランザクションが(例えば、ノード(複数可)によって)正常にバリデーションされた場合、これらのトランザクションは、新規データブロックとして、分散データベースシステムの少なくとも1つの既存のデータブロックとリンクされる[1][4][5]。このために、該当するトランザクションは、例えば、新規データブロックに記憶される。このバリデーションと連結は、信頼できるノード(例えば、マイニングノード、ブロックチェーンオラクル、ブロックチェーンプラットフォーム)によって実行できる。特に、この場合、ブロックチェーンプラットフォームは、例えばMicrosoft又はIBMが提案しているように、サービスとしてのブロックチェーンであると解釈できる。ノードや信頼できるノードはそれぞれ、ノードチェックサム(例えば、デジタル署名)をデータブロックに保存できる(例えば、信頼できるノードやノードによりバリデーションされて生成されたそのデータブロックに保存でき、そのデータブロックがその場合にリンクされる)ため、データブロックの作成者が識別可能になるし、ノードが識別可能になる。この場合、このノードチェックサムは、例えば、どのノードが、該当するデータブロックを分散データベースシステムの少なくとも1つの別のデータブロックにリンクしたかを示す。
【0030】
本発明に関して言う「トランザクション」又は「複数のトランザクション」は、例えば、スマートコントラクト[4][5]、データ構造又はそれぞれ1つのトランザクション又は複数のトランザクションを含むトランザクションデータセットであると解釈できる。本発明に関して言う「トランザクション」又は「複数のトランザクション」とは、例えば、ブロックチェーンのデータブロックのトランザクションのデータでもあると解釈できる。特に、トランザクションは、例えば、スマートコントラクトを実装するプログラムコードを含んでもよい。例えば、本発明に関して言うトランザクションはまた、制御トランザクションや確認トランザクションであると解釈できる。あるいは、トランザクションは、例えば、データ(例えば、制御命令、契約データや、ビデオデータ、ユーザデータ、測定データなどの他のデータの1つ以上)を記憶するデータ構造であってもよい。
【0031】
本発明に関して言う「対象」は、例えば、デバイス、電子デバイス、電子部品、電子通信デバイス(例えば、携帯電話機)、技術設備、建物又は技術システムであると解釈でき、それらは、特にそれぞれ、好適にはその状態がセンサによって検知可能である少なくとも1つの電子部品を含む。この場合、対象又は対象の電子部品の状態の変化は、同様にセンサで検知可能である。状態変化又は状態はまた、対象の非電子部品にも関係する可能性がある。これは、例えば、建物の静力学の変化又は金属部品(例えば、フレーム)の変形であり得る。状態又は状態変化は、少なくとも、コンピュータ支援により又は自動的に感知されるか、インターフェースを用いて制御システム又は分散データベースシステムに提供される。
【0032】
「データブロックにトランザクションを記憶する」、「トランザクションを記憶する」などは、直接記憶又は間接記憶であると解釈すべきである。この場合、直接記憶は、例えば、(分散データベースシステムの)該当するデータブロック又は分散データベースシステムの)該当するトランザクションが各データを含むことであると解釈できる。また、間接記憶は、例えば、該当するデータブロック又は該当するトランザクションが、該当するデータに関するチェックサム及び場合に応じて追加データセット(例えば、記憶場所の参照又は表示)を含み、したがって該当するデータがデータブロック(又はトランザクション)に直接記憶されていないこと(すなわち、その代わりにこのデータに関するチェックサムのみ)であると解釈できる。トランザクションをデータブロックに記憶する場合、例えば、「分散データベースシステムへの挿入」において例示的に説明したように、これらのチェックサムをバリデーションできる。
【0033】
本発明に関して言う「プログラムコード」(例えば、スマートコントラクト)は、例えば、1つ以上のトランザクションに記憶されている1つのプログラム命令又は複数のプログラム命令であると解釈できる。プログラムコードは実行可能であり、例えば分散データベースシステムによって実行される。これは、例えば、実行環境(例えば、仮想マシン)を用いて実装でき、実行環境又はプログラムコードは、好適にはチューリング完全である。プログラムコードは、好適には分散データベースシステムのインフラストラクチャによって実行される[4][5]。この場合、例えば、仮想マシンは、分散データベースシステムのインフラストラクチャによって実装される。
【0034】
本発明に関して言う「スマートコントラクト」は、例えば、実行可能なプログラムコードであると解釈できる[4][5](特に定義「プログラムコード」を参照)。スマートコントラクトは、好適には分散データベースシステム(例えば、ブロックチェーン)のトランザクションに、例えば分散データベースシステムのデータブロックに、記憶される。例えば、本発明に関して言うスマートコントラクトは、「プログラムコード」の定義で説明されているのと同じ手法で実行できる。
【0035】
本発明に関して言う「プルーフオブワーク」は、例えば、特定のトランザクションのデータブロックコンテンツ/コンテンツに応じて解決されるべき計算集約的なタスクを解決することであると解釈できる[1][4][5]。このような計算集約的なタスクは、例えば、暗号パズルとも称する。
【0036】
例えば分散データベースとも称する場合がある本発明に関して言う「分散データベースシステム」は、例えば、非集中型分散データベース、ブロックチェーン、分散台帳、分散型記憶システム、分散台帳、分散台帳技術(DLT)ベースのシステム(DLTS)、不正改ざん防止データベースシステム、クラウド、クラウドサービス、クラウド内のブロックチェーン、又はピアツーピアデータベースであると解釈できる。また、例えば、有向非巡回グラフ(DAG)、暗号パズル、ハッシュグラフを用いるブロックチェーン、DLTS、又はこれら実装態様の組み合わせなどの、ブロックチェーン又はDLTSの様々な実装も例示的に使用できる[6][7]。また、例えば、様々なコンセンサスプロセス(コンセンサスアルゴリズム)を実装してもよい。これは、例えば、暗号パズル、ゴシップに関するゴシップ、仮想投票を用いるコンセンサスプロセス、又はこれらプロセスの組み合わせであってもよい(例えば、仮想投票を組み合わせたゴシップに関するゴシップ)[6][7]。例えば、ブロックチェーンを使用する場合、ブロックチェーンは、特にビットコインベースの実装又はイーサリアムベースの実装を用いて実施できる[1][4][5]。「分散データベースシステム」はまた、例えば、そのノード、デバイス、インフラストラクチャの1つ以上の少なくとも一部がクラウドによって実装されている分散データベースシステムであると解釈できる。例えば、対応する構成要素は、クラウドにおけるノード/デバイスとして(例えば、仮想マシンにおける仮想ノードとして)実装されている。これは、VM-Ware、Amazon Web Services、Microsoft Azureなどを用いて実行できる。説明した実装態様の柔軟性が高いため、例えば、ハッシュグラフをブロックチェーンとして使用することにより、当該実装態様の部分態様は、互いに組み合わせることができ、ブロックチェーン自体はまた、ブロックレスであってもよい。
【0037】
例えば、有向非巡回グラフ(DAG)を使用する場合(例えば、IOTA又はTangleなど)、特にグラフのトランザクション又はブロック又はノードは、互いに有向エッジを介して相互に接続される。これは、特に(すべての)エッジが(常に)同じ方向を有していることを意味し、これは、例えば、時間の場合と同様である。言い換えると、グラフのトランザクション又はブロック又はノードへは逆方向に(すなわち、共通の同じ方向とは反対に)経由する又は通過することは不可能である。この場合、非巡回は、特にグラフが通過した場合にループがないことを意味する。
【0038】
分散データベースシステムは、例えば、パブリック分散データベースシステム(例えば、パブリックブロックチェーン)又はクローズド(もしくはプライベート)分散データベースシステム(例えば、プライベートブロックチェーン)であってもよい。
【0039】
例えば、パブリック分散データベースシステムの場合、これは、新規ノードやデバイスが、資格認証なし、又は認証なし、又は登録情報なし、又は証明情報なしで分散データベースシステムに参加できるか又は分散データシステムによって受け入れられることを意味する。このような場合には、ノードやデバイスのオペレータは、匿名のままであってもよい。
【0040】
分散データベースシステムが、例えば、クローズド分散データベースシステムである場合、新規ノードやデバイスは、分散データベースシステムに参加できるようにするため又は分散データベースシステムによって受け入れられるようにするために、例えば、有効な資格認証、有効な認証情報、有効な証明情報、有効なログイン情報の1つ以上を必要とする。
【0041】
分散データベースシステムは、例えば、データ交換のための分散型通信システムであってよい。これは、例えば、ネットワーク又はピアツーピアネットワークであってもよい。
【0042】
コンテキスト及び実装に応じて、「リンク」又は「ブロック」とも称する場合がある本発明に関して言う「データブロック」は、例えば、分散データベースシステムのデータブロック(例えば、ブロックチェーン又はピアツーピアデータベース)であると解釈でき、ブロックチェーン又はピアツーピアデータベースは、データ構造として実現され、好適にはそれぞれトランザクションのうちの1つ又はトランザクションのうちの複数を含む。実装では、例えば、データベース(又はデータベースシステム)は、DLTベースのシステム(DLTS)又はブロックチェーンであり、データブロックは、ブロックチェーン又はDLTSのブロックである。データブロックは、例えば、データブロックのサイズ(バイト単位のデータサイズ)に関する情報、データブロックヘッダ(ブロックヘッダ)、トランザクションカウンタ及び1つ以上のトランザクションを含んでもよい[1]。データブロックヘッダは、例えば、バージョン、デイジーチェーンチェックサム、データブロックチェックサム、タイムスタンプ、プルーフオブワーク証明、ノンス(1回値、ランダム値又はプルーフオブワーク証明に使用されるカウンタ)を含んでもよい[1][4][5]。データブロックはまた、例えば、分散データベースシステムに記憶されているデータ全体の特定の記憶領域又はアドレス領域のみであってもよい。したがって、例えば、IoTチェーン(ITC)、IOTA及びバイトボールなどの、例えば、ブロックレス分散データベースシステムが実装できる。この場合、特に、ブロックチェーンのブロックの関数及びトランザクションの関数は、例えば、トランザクション自体が(分散データベースシステムの)トランザクションのシーケンス又はチェーンを保護する(すなわち、特にセキュリティ保護されて記憶される)ように、互いに結合される。このために、例えば、好適には、個別のチェックサム又は1つ以上のトランザクションのトランザクションチェックサムが、新規トランザクションを分散データベースシステムに記憶するときに対応する新規トランザクションに記憶されるデイジーチェーンチェックサムとして機能することにより、トランザクション自体は、デイジーチェーンチェックサムにより相互にリンクできる。そのような態様では、データブロックはまた、例えば、1つ以上のトランザクションを含んでもよく、最も単純なケースでは、例えば、1つのトランザクションは、1つのデータブロックに相当する。
【0043】
本発明に関して言う「ノンス」は、例えば、暗号化ノンスであると解釈できる(「used only once(1回のみ使用)」[2]又は「number used once(1回使用番号)」[3]の略語)。特に、ノンスは、数字又は文字の組み合わせを示し、好適には、それぞれのコンテキスト(例えば、トランザクション、データ伝達)で1回使用される。
【0044】
本発明に関して言う「分散データベースシステムの(特定の)データブロックの先行するデータブロック」は、(特定の)データブロックの直前にある分散データベースシステムのデータブロックであると解釈できる。あるいは、「分散データベースシステムの(特定の)データブロックの先行するデータブロック」は、特定のデータブロックに先行する分散データベースシステムのすべてのデータブロックであるとも解釈できる。これによって、例えば、デイジーチェーンチェックサム又はトランザクションチェックサムは、例えば、特定のデータブロックの直前のデータブロック(又はそのトランザクション)にわたってのみ、又は最初のデータブロックに先行するすべてのデータブロック(又はそのトランザクション)にわたってのみ形成できる。
【0045】
本発明に関して言う「ブロックチェーンノード」、「ノード」、「分散データベースシステムのノード」などは、例えば、分散データベースシステム(例えば、ブロックチェーン)(により)操作を実行する、デバイス(例えば、フィールドデバイス、携帯電話機)、コンピュータ、スマートフォン、クライアント又は参加者であると解釈できる[1][4][5]。このようなノードは、例えば、分散データベースシステム又はそのデータブロックのトランザクションを実行できるか、又は、新規トランザクションを有する新規データブロックを、新規データブロックを用いて分散データベースシステムに挿入できるかもしくはリンクできる。特に、このバリデーションと連結は、信頼できるノード(例えば、マイニングノード)によって、又は信頼できるノードによってのみ実行できる。信頼できるノードは、例えば、ノードの改ざんを防ぐために追加のセキュリティ対策(例えば、ファイアウォール、ノードへのアクセス制限など)を有するノードである。代替的又は追加的に、例えば、新規データブロックが分散データベースシステムにリンクされた場合、信頼できるノードは、新規データブロックにノードチェックサム(例えば、デジタル署名又は証明書)を記憶してもよい。したがって、該当するデータブロックが特定のノードによって挿入されたこと、又はそのデータブロックの起源を示すことを提示する証明を提供してもよい。デバイス(例えば、該当するデバイス)は、例えば、分散データベースシステムのノードでもある、技術システム、産業プラント、自動化ネットワーク、製造プラントの1つ以上のデバイスである。この場合、デバイスは、例えば、分散データベースシステムのノードでもある、フィールドデバイス又はモノのインターネットのデバイスであってもよい。ノードはまた、例えば、コンピュータに実装されたノードの機能を実行するために、例えば、少なくとも1つのプロセッサを含み得る。
【0046】
本発明に関して言う「ブロックチェーンオラクル」などは、例えば、セキュリティモジュールを用いるノード、デバイス又はコンピュータであると解釈でき、セキュリティモジュールは、例えば、ソフトウェア保護メカニズム(例えば、暗号化方法)、機械的保護機器(例えば、ロック可能なハウジング)又は電子的保護機器(例えば、タンパープロテクション又はブロックチェーンオラクルの不正な使用/処理の場合にセキュリティモジュールのデータを削除することを含む保護システム)を用いて処理する。この場合、セキュリティモジュールは、例えば、チェックサム(例えば、トランザクションチェックサム又はノードチェックサム)の計算に必要な暗号化キーを含む。
【0047】
本発明に関して言う「コンピュータ」又は「デバイス」は、例えば、コンピュータ(システム)、クライアント、スマートフォン、デバイス、又はサーバと解釈でき、これらはそれぞれ、ブロックチェーンの外部に配置されているか、又は分散データベースシステム(例えば、ブロックチェーン)の参加者ではない(すなわち、分散データベースシステムによる操作を実行しないか、又はトランザクションを実行しないが操作を問い合わせるだけ、データブロックを挿入するか、又はプルーフオブワーク証明を計算する)。あるいは、コンピュータは、分散データベースシステムのノードであると解釈できる。言い換えれば、デバイスは、分散データベースシステムのノードであると解釈できるか、又はブロックチェーン又は分散データベースシステムの外部のデバイスであるともまた解釈できる。分散データベースシステムの外部のデバイスは、例えば、分散データベースシステムのデータ(例えば、トランザクション又は制御トランザクションなど)にアクセスできるし、ノードによって(例えば、スマートコントラクトやブロックチェーンオラクルを用いて)制御できる。例えば、デバイス(例えば、ノードとして形成されたデバイス又は分散データベースシステムの外部のデバイス)の操作又は制御がノードによって実装されている場合、これは、例えば、分散データベースシステムのトランザクションに記憶されているスマートコントラクトによって行われる。
【0048】
本発明は、未ソートのトランザクションデータセットの集合から、ブロックチェーンの暗号保護され且つセマンティックにソートされたトランザクションデータセットの集合を形成する又は発生させる方法に係り、該方法は、コンピュータにより実行される方法であって、
a)同じ又は別のブロックチェーンの第1のリンク(第1のブロック)にリンクされているか又はリンクされるブロックチェーンの少なくとも1つの第2のリンク(第2のブロック)を形成するステップと、
b)その第2のリンクにおいて少なくとも1つの検索語を確定するか、又は第2のリンクが含んでいる少なくとも1つの以前に確定された検索語を読み出すステップと、
c)未ソートのトランザクションデータセットの集合から、整合性について検証済みのトランザクションデータセットを選択するステップと、
d)選択したトランザクションデータセットを、前記確定した又は読み出した検索語に、又は、前記確定した又は読み出した検索語のうちの1つに、割り当てるステップと、
e)少なくとも、選択すべきトランザクションデータセットが所定数に達するまで、又は、未ソートのトランザクションデータセットの集合が空になるまで、ステップb)からステップd)までを繰り返すステップと、
f)所定のソート基準に基づいて、選択して割り当てたトランザクションデータセットをセマンティックにソートし、割り当てられた検索語を前記ソート基準に対応する順序にするステップと、
g)該順序を使用して、暗号保護され且つセマンティックにソートされたトランザクションデータセットの集合を形成するステップと、を含む。
【0049】
本方法は、起点リンク(起源リンク)でもあり得る開始リンクで始まる多数のリンクを最終的に形成又は生成できるように繰り返し可能であり、各リンクは、それ自身、前述した種類の検証機能又はその一部の機能を対応して含むことができる。
【0050】
本発明に関して言うセマンティックにソートされたとは、ソートが検索語の意味に依存することであると解釈される。この場合、該セマンティックなソートは、単なる偶然で、上記トランザクションの構成において前述した構文ソートと同じ順序で生じてもよい。ただし、これは通常のケースではない。配置されたトランザクションの順序は、通常、セマンティックにソートから得られた順序が、構文ソートから得られた順序とは異なるか、又は未ソートの順序とは全く異なる。
【0051】
この場合、検索語は、1つの上位語及び1つ以上のそれより下位の下位語から構成されていてもよい。上位語と下位語との間に、それぞれ、区切り記号、例えば、「.」が挿入され得る。
【0052】
上述の第2のリンクにおける確定した又は読み出した検索語が複数の場合、これらの検索語は、検索ツリーに、好ましくはハッシュツリーに配置でき、当該検索語が検索ツリーのノードを形成する。検索語はまた、検索ツリー内のルートノードの上位語から検索ツリーのリーフノードの最下位の下位語までが階層的に配置されてもよく、場合によって区切り記号が、関連するノード間にある検索ツリーのエッジを明示する。
【0053】
したがって、リンクの検索ツリーは、検索語に基づいて構造化されている。
【0054】
本方法は、好ましくは、コンピュータ支援されて実行される。以下の説明では特に明記しない限り、「実行する」、「算出する」、「コンピュータ支援された」、「計算する」、「確定する」、「生成する」、「構成する」、「再構成する」などの用語は、好適には、データを変更したり生成する、あるいはデータを他のデータに変換する、演算、プロセス、処理するステップなどに関連し、データは、具体的には物理量として、例えば、電気的インパルスとして、表されるか又は存在する。「コンピュータ」という用語は、例えば、データ処理特性を備えたすべての電子デバイスをカバーするために、可能な限り広く解釈すべきである。したがって、コンピュータは、例えば、パーソナルコンピュータ、サーバ、プログラマブルロジックコントローラ(PLC)、ハンドヘルドコンピュータシステム、ポケットPCデバイス、モバイル無線デバイス、及びコンピュータ支援されてデータを処理できるその他の通信デバイス、プロセッサ及びデータ処理用のその他の電子デバイスであり得る。
【0055】
本発明に関して言う「コンピュータ支援された」とは、例えば、特にプロセッサが本方法の少なくとも1つの方法ステップを実行する、本方法の実装であると解釈できる。
【0056】
本発明に関して言うプロセッサは、例えば、装置又は電子回路であると解釈できる。プロセッサは、具体的には、メインプロセッサ(中央処理装置、CPU)、マイクロプロセッサ又はマイクロコントローラ、例えば特定用途向け集積回路又はデジタル信号プロセッサ、であり、場合によって、プログラム命令などを記憶するための記憶ユニットと組み合わせてもよい。プロセッサはまた、例えば、IC(集積回路)、特にFPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)又はDSP(デジタルシグナルプロセッサ)又はグラフィックプロセッサGPU(グラフィックプロセッシングユニット)であり得る。さらに、プロセッサは、仮想化プロセッサ、仮想マシン又はソフトCPUであるとも解釈できる。また、例えば、本発明による上述の方法を実行するための構成(コンフィグレーション)ステップが実装されているプログラマブルプロセッサ、又はプログラマブルプロセッサが、本発明の方法、構成要素、モジュール、手段、他の態様、部分的な態様の1つ以上の本発明による特徴を実現するように構成ステップによって構成されている、プログラマブルプロセッサであり得る。
【0057】
本発明に関して言う「記憶ユニット」は、例えば、ワーキングメモリ(ランダムアクセスメモリ、RAM)の形態のメモリ又はハードドライブであると解釈できる。
【0058】
本発明に関して言う手段は、例えば、プロセッサ又はプログラム命令を記憶するための記憶ユニット、あるいはその両方であると解釈できる。例えば、プロセッサは、本発明による方法又は本発明による方法のステップを実装又は実現するための機能をプロセッサに実行させるプログラム命令を実行するよう特別に構成されている。
【0059】
ブロックチェーンは、ノードによって、特に産業用IoT(モノのインターネット)環境の制御コンピュータ又は制御デバイスによって、より効率的に使用できる。さらに言えば、関連性がない情報をこれらのノードによって内容に関して解析する必要がほとんどないことから、リアルタイム挙動がさらに改善される。それでもなお、共通のブロックチェーンプラットフォームを複数の異なるタスクに使用できるため、そのようなブロックチェーンプラットフォームを効率的に運用可能である。さらに、ブロックチェーンプラットフォームは、異なるハードウェアプラットフォームで実行できる。
【0060】
本発明の別の態様は、ブロックチェーンのリンクの整合性が検証され且つセマンティックにソートされたトランザクションデータセットの集合から、暗号保護され且つフィルタリングされたトランザクションデータセットの集合を提供する装置であって、そのリンクが上記方法により形成され、
ブロックチェーンの少なくとも1つの上記リンクを提供する提供手段と、
フィルタ基準を使用して、ブロックチェーンの検証され且つセマンティックにソートされたトランザクションデータセットの集合から、フィルタリングしたトランザクションデータセットの集合を決定するフィルタリング機器に、前記提供手段を結合する結合手段と、
フィルタリングしたトランザクションデータセットの決定した集合を提供するための出力手段とを有する、装置である。
【0061】
本発明に関して言う「提供する」とは、例えば、データキャリア又はプラットフォームで、又はデータキャリア又はプラットフォームから、トランザクションデータセットを作成すること、ロードすること又は記憶することであると解釈できる。
【0062】
フィルタ基準を用いることで、ブロックチェーンブロックの関連トランザクションの単純なフィルタリングが可能になる。フィルタ基準は、その結果ノードがすべてのトランザクションを含む検索ツリー全体を処理しないように編成できるが、その代わりに、ノードに関連するトランザクションを含むサブツリーを目的に合わせて決定できる。
【0063】
フィルタ基準は、一種の「パブリッシュ/サブスクライブ」基準として設定される。パブリッシュ/サブスクライブプロトコル、例えば、MQTT、XMPP、OPC UA PubSubが使用可能である。その場合、いわゆるパブリッシャーノードがメッセージを発行し、サブスクライバー、例えばグループのデバイスがメッセージを受信する。検索語は、メッセージのテーマを識別する。パブリッシャー(発行ノード)は、メッセージのテーマ(トピック又は検索語)を指定し、サブスクライバーは、特定のテーマのメッセージをサブスクライブする。メッセージは、例えば、メッセージブローカーによって伝達される。その場合、検索語は、一般に、例えば、上記検索ツリーの態様を使用して階層的に構造化されている。
【0064】
本発明の別の態様は、上述の装置の提供手段に対する結合に適したフィルタリング機器であり、フィルタ基準を使用して、整合性が検証され且つソートされた、ブロックチェーンのトランザクションデータセットの集合から、フィルタリングしたトランザクションデータセットの集合を決定する決定手段を特徴とする。
【0065】
フィルタリング機器の一態様は、さらなる検索語やさらなる検索語の少なくとも一部を用いて確定可能なフィルタ基準を提供し、当該検索語は、ブロックチェーンの提供されたリンク内の検索語と同一であるか、又はその検索語から導出可能な、又はその検索語から導出されている。この、さらなる検索語は、上述した種類のトピック(パブリッシュ/サブスクライブ)であってもよく、検索ツリー内の検索語に割り当てられているか、又は場合によっては検索語と同一である。この場合、割当テーブル(検索語-トピック)を使用して、割当又は誘導を実行できる。
【0066】
本発明の別の態様は、上述の種類のフィルタリング機器を含むアクセスユニットであり、さらなる検索語が、少なくとも、1つのデバイス又はグループ内の複数のデバイスによって確定可能であるか、又は、該検索語に割り当てられたトランザクションデータセットが該デバイスによってサブスクライブされるようにしてサブスクライブ可能であり、そして、その少なくとも確定した又はサブスクライブしたトランザクションデータセットを含むブロックチェーンのリンクのみが、前記1つのデバイス又は複数のデバイスに伝達されることを特徴とする。すなわちこのアクセスユニットは、具体的には、前記デバイス用の、好適には(ブロックチェーンを処理できないことが多い)IoTデバイス用の、ゲートウェイの一種である。さらなる検索語又はトピックは、ユーザインターフェース(UI)を介して確定されてもよい。検索語は、工業施設の事業計画データとしても規定され得る。この場合の当該デバイスは、特定のさらなる検索語をサブスクライブできる。さらなる検索語に一致するトランザクションは、フィルタリングされ、該トランザクションのみが、前記デバイスに対して実行されるか、又は該デバイスに提供される。
【0067】
本発明の別の態様は、通信ネットワークの構成であり、構成要素として、
上記種類のデバイスを有し、ブロックチェーンを処理する少なくとも1つのネットワークノードと、
上記種類の少なくとも1つのフィルタリング機器、又は上記種類に係る少なくとも1つのアクセスユニットと、
これら構成要素が相互に通信できるネットワークインフラストラクチャとを含む。
【0068】
そのネットワークインフラストラクチャにおいて例えば上述した種類のパブリッシュ/サブスクライブプロトコルを適用でき、この場合、フィルタリング機器は、グループ内の1つ以上のデバイスに検索語のサブスクリプションか確定を少なくとも可能にするように設計される。
【0069】
ネットワークインフラストラクチャは、上記構成要素が有線又はエアインターフェースによる無線で相互に通信できるように構成される。エアインターフェースは、GSM、UMT、LTE、5G、WLAN、ZigBee(登録商標)、Bluetooth(登録商標)又はNFCなどの規格に従って形成され得る。
【0070】
上記のデバイス、機器、構成は、上述の本発明に係る方法の発展態様及び具体的態様に対応してさらに発展させることができる。
【0071】
さらに、プログラム命令を含むコンピュータプログラム(を記憶した製品)は、例えば既述した種類のブロックチェーンを処理するネットワークノード用であり、当該ネットワークノードは、上述の方法を実行するべく適合させたプログラム命令に従って構成される。
【0072】
このコンピュータプログラムの派生態様として、例えば、3Dプリンタ、コンピュータシステム、又は、プロセッサやデバイスの作製に適した製造機械といった創造装置を構成するプログラム命令を含むものがさらに提供され得る。
【0073】
用途、装置(デバイス)及びコンピュータプログラム(の製品)は、上記本発明に係る方法の発展態様/具体的態様及びそれらの発展態様/具体的態様に対応させて構成することが可能である。
【0074】
さらに、コンピュータプログラムを少なくとも記憶するか又は提供する提供装置が可能である。この提供装置は、例えば、コンピュータプログラムを少なくとも記憶するか又は提供するデータキャリアである。代替として又は追加して、提供装置は、好ましくはデータストリームとしてコンピュータプログラムを記憶したり提供する、例えば、ネットワークサービス、コンピュータシステム、サーバシステム、特に分散コンピュータシステム、クラウドベースのコンピュータシステム、仮想コンピュータシステムのいずれか1つ以上である。
【0075】
この提供は、例えば、完全なコンピュータプログラムの、プログラムデータブロックや命令データブロックの方式でのダウンロードとして、好ましくはファイルとして、特にダウンロードファイルとして、又は、データストリームとして、特にダウンロードデータストリームとして、行われる。ただし、この提供は、例えば、ピアツーピアネットワーク経由でダウンロードされるか又はデータストリームとして提供される、複数の部分からなる部分的なダウンロードとしても行い得る。このようなコンピュータプログラム(の製品)は、例えば、データキャリアの形態の提供装置を使用してシステムに読み込まれ、プログラム命令の実行により、本発明による方法がコンピュータで実行されるか、又は、創造装置が少なくともリンク又はブロックチェーンを生成するように構成される。
【0076】
本発明の上述の特性、特徴、利点、そしてそれらが達成される仕組みは、図面と関連させて以下に詳細に説明する実施形態の説明においてさらに明らかになり、より明確に理解される。
【図面の簡単な説明】
【0077】
【
図1】従来技術に係るブロックチェーンの形態の具体例を示す。
【
図2】ブロックチェーンのリンクに統合された1つ以上のトランザクションデータセットの本発明に係る実施形態を示す。
【
図3】ネットワークインフラストラクチャに本発明を組み込む手法の実施形態を示す。
【
図4】本発明に係る方法に関するフローチャートを示す。
【発明を実施するための形態】
【0078】
図中、特に明記しない限り、類似の機能をもつ要素には同じ参照符号が付されている。
【0079】
既述したように、
図1は、一例としてブロックチェーンの第1のリンク
(ブロック)B10、第2のリンク
(ブロック)B11とした、リンク
(ブロック)を示す。リンクは、それぞれ複数のトランザクションTx0~Tx3を含む。先行リンクに応じて形成されるハッシュ値PHは、具体的に、例えばSHA2-256、SHA2-384、SHA-3、BLAKE2を使用して決定可能な暗号ハッシュ値である。
【0080】
図2は、ブロックチェーンのリンクに統合された1つ以上のトランザクションデータセットの例を示す。
【0081】
リンクは、それぞれ、ハッシュツリーTTのルートハッシュ値TxRとして機能できる、トランザクションTのハッシュ(関数)値を含むことができる。検索ツリーとも称するハッシュツリーは、該ハッシュツリーが、ハッシュツリーTTのハッシュ値H0及びH1をもつ次のノードに関する、例えばH01やH23のハッシュ値と、
図2に示す「eon」や「Telekom」ような少なくとも1つの検索語との両方を含むように、構成されている。H0をもつノードは、検索語「M-City」を含み、H1をもつノードは、例えば上位語「M-State」である検索語を含む。例えば、場所の「Vaterstetten」、「Poing」、「Aschheim」などの下位語を含むその下のノードは、H1のノードを起点として表示されている。また、これらのノードはそれぞれ、
図2には図示していないハッシュ値も含む。ハッシュツリーTTのリーフには、
図2に示すように、「Load shedding」(負荷制限)、「Reduce infeed」(インフィードの低減)などの可能なトランザクションラベルが与えられ、トランザクションラベルは、この例においては、マークルツリーとして形成される続くハッシュツリーHTのルートを擬似的に表す。マークルツリーのさらなるノードは、
図2には図示していない。マークルツリーのリーフに、トランザクションTx2、Tx1及びTx0、Tx3が示され、このトランザクションは、マークルツリーにおいてセマンティックのソートによって、トランザクションの未ソート集合M(
図1参照)から、
図2に示した位置に到達している。換言すれば、リンクのハッシュツリーHT(例えば、マークルツリー、パトリシアツリーなど)がソートされる、すなわち、リンクのトランザクションがソートされる。その結果、共通のソート基準(検索語)を満たすすべてのトランザクションは、ツリーの1つのブランチにある。
【0082】
これには、「検索語」のトランザクションが効率的に検証可能であるという利点がある。ノードBCN(
図3を参照)は、この検索語のトランザクションを含むツリーHTの部分領域をロードして検証することができる。これにより、異なる種類のトランザクションを簡単に区別できる。特定の種類のトランザクションのみを解析しようとするノードは、関連するトランザクションを含むツリーHTの部分を目的に合わせて処理できる。
【0083】
ツリーHTの構造は、不変に規定されるか、又は(ブロックごとに、又はより長い期間で)適応性をもって決定される。さらに、ツリーHTの構造(すなわち、ソート)は、ブロックチェーン内のトランザクションとして既知になってもよい。これにより、情報は、容易に解析可能であり、可能ならば調整される。
【0084】
このようにして、ブロックチェーントランザクションの解析は、例えばモノのインターネットにおいてノードIoTについても効率的に可能である。したがって、「検索語」に関するトランザクションは、マークルツリーにおいて勝手には分散されない。
【0085】
図3によれば、デバイスは、例えばIoTであり、該デバイスがグループANに、例えばトピック「eon.M-State.Poing.Reduceinfeed」をサブスクライブしていた、例えばエネルギーグリッドに割り当てられており、そして、このデバイスに対して、セマンティックにソートされたマークルツリーからトランザクションTx0及びTx1のみがフィルタリングされ、場合によって実行される。
【0086】
トピック又は検索語は、
図2の例では、用語間のピリオド区切り記号を伴って、上位語「eon」と、その下位の下位語「M-State」及び「Poing」と、最後にトランザクション名「Reduceinfeed」とから構成されている。当該区切り記号は、ノード「eon」とノード「M-State」との間のツリーTTにおけるエッジを識別できる。同様にして、ツリーTTのすべてのエッジに区切り記号を付けてもよい。
【0087】
図3は、一例として、ブロックチェーン(分散データベース)を実装でき、ネットワークインフラストラクチャNを介して相互に通信できるノードBCNを含む通信ネットワークの構成を示し、これが矢印によって示されている。さらに、上述のデバイスIoTが設けられている。グループANは、例えば、さらなるデバイスFD1、FD2、FD3及びデバイスIoTに接続しているIoTコントローラIoTCを含む。さらに、ゲートウェイGがこの通信の構成に設けられている。ゲートウェイGは、例えば、サーバ、電化製品又はクラウドベースのサービス(例えば、産業プラットフォーム用の特別なアプリ)として実装されてもよい。ゲートウェイGは、パブリッシャーによって提供され且つトピックに割り当てられているパブリッシュ/サブスクライブプロトコル(例えば、XMPP、MQTT、AMQP、OPC UA PubSub)のメッセージからブロックチェーントランザクションを生成し、そのブロックチェーントランザクションは、逆方向でeway、dnetであり且つ検証されているリンクにおいて確認されているトランザクションを、トピックとしてブロックチェーントランザクションの検索語を含むPubSubメッセージとして、サブスクライバー(グループのデバイス)にPubSubメッセージを提供する。好適には、ゲートウェイに、又はノードBCNのうちの1つにもまた、内蔵又は(リモート)結合したフィルタリング機器によってトランザクションをフィルタリングする装置(図示せず)を実装できる。フィルタリングは、上述のパブリッシュ/サブスクライブアプローチを使用して実行してもよい。フィルタ基準は、トピック(さらなる検索語)によって決定され、該フィルタ基準を使用して、フィルタリングされたトランザクション又はトランザクションデータセットが提供され、デバイス、例えばIoT又は他のノードBCNに伝達できる。
【0088】
この場合、ブロックチェーンの検索語のPubSubトピックへの1:1割当(さらなる検索語は上記参照)を行うことができる。すなわち、用語は、同一である。ブロックチェーンの検索語のPubSubトピックへの割当及びその逆はまた、ゲートウェイGに内蔵され得るテーブルタブを介して行ってもよい。これには、デバイス自体がブロックチェーンテクノロジーをサポートする必要なしに、ブロックチェーンインフラストラクチャをIoTデバイス又はインダストリー4.0デバイス、例えば、FD1、FD2によって簡単に使用できるという利点がある。デバイスは、IoT環境で使用できるPubSubプロトコルを介してブロックチェーンにアクセスできる。トピック(さらなる検索語)は、事業計画データとして例えばFD3に、少なくとも、例えばユーザインターフェースを介してデバイスによって確定されるか、デバイスによってサブスクライブされる(例えば、適用分野:インダストリー4.0、プラント:変電所、変電所内のデバイスx、地域:ミュンヘン地方、運用者:Eonなど)。このために、トランザクションは、(例えば、(ソート)属性により)トピックに割り当てられる。この場合、トピックは、例えば、topic1.topic2.topic3など、階層構造化してもよい(トピックツリー)(上記も参照)。特定のテーマについて対応してグループ通信を使用できるようにするために、トピックとして、例えば、名前空間を使用してもよい。ミュンヘン地方(M-State)のエリアにあるEon社の仮想発電所(VPP、Virtual Power Plant)が一例であり、該仮想発電所には、インフィード低減の通信用の別個のグループがある:VPP.eon.M-Land.Poing.reduce_infeed(
図2を参照)。
【0089】
ソート基準又は複数のソート属性は、例えば管理上、明示的に規定されるか、又はトランザクションに応じて暗黙的に決定される。スマートコントラクト又はスマートコントラクトの一部のハッシュ値を作成し、ソート基準として使用できる。
【0090】
通信の構成(
図3を参照)において、ノードBCNは、ブロックチェーンオラクルとしても形成できる。いわゆるブロックチェーンオラクルにより、信頼できると見なされるノードは、ブロックチェーントランザクションにおいて現実世界に関する情報をエンコードし、したがって、ブロックチェーンのスマートコントラクトに対して現実世界からの情報にアクセスできるようにする(https://blog.ledger.co/hardware-oracles-bridging-the-real-world-to-the-blockchainca97c2fc3e6c#.lu511vbrd)。
【0091】
図4には、本発明による方法に関するフローチャートが示されている。ブロックチェーン又はブロックチェーンは、集中排除型の分散データベースであるため、複数の同様のブロックチェーンノードのうちの1つ、例えば、
図3のBCNとの通信が通常可能である。
【0092】
この方法は、以下のステップを有する。
S01:同じブロックチェーン又は別のブロックチェーンの第1のリンクにリンクされているか又はリンクされるブロックチェーンの1つ以上の(第2の)リンクを形成するステップ。既述のように、第1のリンクは、開始リンク、起源リンク(起点リンク)とすることができる。
S02:第2のリンク又は各第2のリンクにおいて少なくとも1つの検索語を確定するか、又は、第2のリンクが含む少なくとも1つの以前に確定された検索語を読み出すステップ。検索語は既に説明した。
S03:未ソートのトランザクションデータセットの集合M(例えば、
図1を参照)から1つのトランザクションデータセットを選択し、該選択したトランザクションデータセットが整合性について検証されている、ステップ。
S04:選択したトランザクションデータセットを、前記確定した又は読み出した検索語に割り当てる、又は、前記確定した又は読み出した検索語のうちの1つに割り当てる、ステップ。
B1:少なくとも、選択すべきトランザクションデータセットが所定の数に達するまでか、又は、未ソートのトランザクションデータセットの集合が空になるまで、ステップS02からS04までを繰り返すステップ。
S05:所定のソート基準に基づいて、選択されて割り当てられたトランザクションデータセットをセマンティックにソートし、割り当てられた検索語をソート基準に対応する順序にするステップ。
S06:該順序を使用して、暗号保護され且つセマンティックにソートされたトランザクションデータセットの集合を形成するステップ。
B2:本方法を、ブロックチェーンの十分な長さまで、又は、ブロックチェーン内に所定数のリンクが形成されるまで、S01から開始して繰り返すステップ。
【0093】
好ましい実施形態を例示して本発明を詳細に図示し説明したが、本発明は、開示された例によって限定されず、本発明の保護範囲から逸脱することなく他の変形、派生を当業者は導き出すことができる。
【0094】
上述のプロセス又は方法シーケンスの実装は、コンピュータ可読記憶媒体又は揮発性コンピュータメモリ(以下、コンピュータ可読メモリと総称する)に存在するインストラクション(命令)に基づいて行うことができる。コンピュータ可読メモリは、例えば、キャッシュ、バッファ又はRAMなどの揮発性メモリ、及びリムーバブルメディア、ハードディスクなどの不揮発性メモリである。
【0095】
この場合、上述の機能又はステップは、少なくとも1つのインストラクションセットの方式でコンピュータ可読メモリに存在し得る。このとき、機能又はステップは、インストラクションの特定のセット又はインストラクションセットの特定の形態又は特定の記憶媒体又は特定のプロセッサ又は特定の実行スキームにリンクされず、ソフトウェア、ファームウェア、マイクロコード、ハードウェア、プロセッサ、集積回路などによって単独で、又は任意の組み合わせで実行できる。その場合、例えば、単一のプロセッサによるシリアル処理又はマルチプロセッシング又はマルチタスク又は並列処理など、様々な処理ストラテジーを使用してもよい。
【0096】
インストラクションは、ローカルメモリに記憶してもよいが、インストラクションをリモートシステムに保存して、ネットワーク経由でアクセスしてもよい。
【0097】
「プロセッサ」、「中央信号処理」、「制御ユニット」又は「データ解析手段」という用語は、本明細書で使用される場合、最も広義の処理手段、すなわち、例えば、サーバ、ユニバーサルプロセッサ、グラフィックプロセッサ、デジタル信号プロセッサ、特定用途向け集積回路(ASIC)、FPGAなどのプログラマブルロジック回路、個別のアナログ回路又はデジタル回路、及びそれらの任意の組み合わせを含み、当業者に既知であるか、又は将来開発される他のすべての処理手段を含む。この場合、プロセッサは、1つ以上の装置又は機器又はユニットからなっていてもよい。プロセッサが複数の装置からなる場合、装置は、並列処理か順次処理又はインストラクションの実行のために設計又は構成されていてもよい。
【0098】
[参考文献]
[1]
Andreas M.Antonopoulos "Mastering Bitcoin: Unlocking Digital Cryptocurrencies", O'Reilly Media, 2014年12月
[2]
Roger M.Needham, Michael D.Schroeder "Using encryption for authentication in large networks of computers" ACM:Communications of the ACM. Vol. 21, No. 12, 1978年12月
[3]
Ross Anderson "Security Engineering. A Guide to Building Dependable Distributed Systems" Wiley, 2001
[4]
Henning Diedrich "Ethereum: Blockchains, Digital Assets, Smart Contracts, Decentralized Autonomous Organizations", CreateSpace Independent Publishing Platform, 2016
[5]
"The Ethereum Book Project/Mastering Ethereum" https://github.com/ethereumbook/ethereumbook, 2017年10月5日現在
[6]
Leemon Baird
"The Swirlds Hashgraph Consensus Algorithm: Fair, Fast, Byzantine Fault Tolerance",
Swirlds Tech Report SWIRLDS-TR-2016-01, 2016年5月31日
[7]
Leemon Baird
"Overview of Swirlds Hashgraph",
2016年5月31日
[8]
Blockchain Oracles
https://blockchainhub. net/blockchain-oracles/
2018年03月14日現在