(57)【要約】      （修正有）【課題】複数のエンティティが協働して情報処理を行うための方法及び装置を提供する。【解決手段】ブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法２００は、第一の複数のエンティティに特定の情報処理タスクを提出する第一提出ステップと、第一の複数のエンティティが特定の情報処理タスクを実行することにより得られた情報処理結果に対して安全性分析を行い、安全性分析の結果に基づいて、特定の情報処理タスクの更新の処理方式を確定する安全性分析ステップとを含む。確定された更新の処理方式に基づいて、第二の複数のエンティティに特定の情報処理タスクを提出し、第二の複数のエンティティが特定の情報処理タスクを実行した後の情報処理結果を取得する第二提出ステップと、を含む。【選択図】図２
2020013542.tif 000002
【特許請求の範囲】
【請求項１】
複数のエンティティが協働して情報処理を行う方法であって、
第一の複数のエンティティに特定の情報処理タスクを提出する第一提出ステップ；
前記第一の複数のエンティティが前記特定の情報処理タスクを実行することにより得られた情報処理結果に対して安全性分析を行い、前記安全性分析の結果に基づいて、前記特定の情報処理タスクの更新の処理方式を確定する安全性分析ステップ；及び
確定された前記更新の処理方式に基づいて、第二の複数のエンティティに前記特定の情報処理タスクを提出し、前記第二の複数のエンティティが前記特定の情報処理タスクを実行した後の情報処理結果を取得する第二提出ステップを含み、
前記第二の複数のエンティティのうちの各エンティティ及び前記第一の複数のエンティティのうちの各エンティティには、ともに、前記特定の情報処理タスクに関連する同じ情報が記憶されており、前記同じ情報は、第二の複数のエンティティが前記特定の情報処理タスクを実行した後の情報処理結果に基づいて更新される、方法。
【請求項２】
請求項1に記載の方法であって、
前記特定の情報処理タスクは、ブロックチェーンに関連する情報処理タスクであり、前記第一の複数のエンティティ及び前記第二の複数のエンティティは、ブロックチェーンに関与する実行ノードであり、
前記第一提出ステップは、所定のポリシーに基づいて、前記ブロックチェーン中の第一の複数の実行ノードに前記情報処理タスクを提出することを含み、前記第一の複数のエンティティは、前記第一の複数の実行ノードに対応し、
前記安全性分析ステップ及び前記第二提出ステップは、
前記第一の複数の実行ノードが返した前記情報処理タスクの実行結果を受け取り；
所定のルールに基づいて、受け取った結果のうちから少なくとも一部を第一の結果として選択し；及び
前記第一の結果に基づいて行われた情報処理タスクの安全性分析によって第二の結果を取得し、前記第二の結果に関連する候補実行ノードリストをブロックチェーン中の情報処理タスクのための最終実行ノードリストとすることを含む、方法。
【請求項３】
請求項2に記載の方法であって、
前記情報処理タスクの安全性分析によって前記第二の結果を得ることは、
前記情報処理タスクがリスク有り情報処理タスクであると確定された場合、前記所定のポリシーを動的に、実行ノードの信用度への要求がより厳しいポリシーに変更して、前記更新の処理方式とし；
変更後のポリシーに基づいて、前記ブロックチェーン中の第二の複数の実行ノードに前記情報処理タスクを提出し、前記第二の複数のエンティティは、前記第二の複数の実行ノードに対応し；及び
前記第二の複数の実行ノードが返した前記情報処理タスクの実行結果を受け取り、前記所定の規則に基づいて、前記第二の複数の実行ノードから受け取った結果のうちから少なくとも一部を前記第二の結果として選択することを含む、方法。
【請求項４】
請求項3に記載の方法であって、
前記情報処理タスクの操作リスクスコア、及び、前記情報処理タスクを提出するノードのリスクスコアに基づいて、前記情報処理タスクのリスクスコアを計算し、これにより、前記情報処理タスクがリスク有り情報処理タスクであるかを確定する、方法。
【請求項５】
請求項4に記載の方法であって、
以下のステップにより前記変更後のポリシーを生成し、即ち、
前記情報処理タスクのリスクスコアに対応する前記情報処理タスクのリスク等級に基づいて、前記候補実行ノードリストの生成に必要な候補組織的ノードの総数及び実行ノードの総数を計算し、各組織的ノードは、複数のノードを含み；
各候補組織的ノードの組織信用スコア及び前記候補組織的ノードの全体信用スコアに基づいて、各候補組織的ノードが前記候補実行ノードリスト生成時に占める重みを計算し；
各候補組織的ノードの重み及び前記実行ノードの総数に基づいて、各候補組織的ノード中の、前記候補実行ノードリストの生成に必要なの実行ノードの数を計算し；及び
各候補組織的ノード中の、前記候補実行ノードリストの生成に必要な実行ノードの数に基づいて、前記変更後のポリシーを生成するステップである、方法。
【請求項６】
請求項2に記載の方法であって、
前記所定の規則に基づいて、受け取った結果のうちから前記第一の結果を選択することは、
受け取った結果のうちから、同じリード及びライト集合であって、前記同じリード及びライト集合の数がリード及びライト集合の総数に占める比が最も高く、且つ前記最も高い比が所定の値よりも高いものを前記第一の結果として選択することを含む、方法。
【請求項７】
請求項6に記載の方法であって、
受け取った結果中の、前記第一の結果中のリード及びライト集合とは異なるリード及びライト集合を、誤った結果とし、及び
前記誤った結果を返した実行ノードをバッドノードと判断する、方法。
【請求項８】
複数のエンティティが協働して情報処理を行う装置であって、
第一の複数のエンティティに特定の情報処理タスクを提出する第一提出ユニット；
前記第一の複数のエンティティが前記特定の情報処理タスクを実行して得た情報処理結果に対して安全性分析を行い、前記安全性分析の結果に基づいて、前記特定の情報処理タスクの更新の処理方式を確定する安全性分析ユニット；及び
確定された前記更新の処理方式に基づいて、第二の複数のエンティティに前記特定の情報処理タスクを提出し、前記第二の複数のエンティティが前記特定の情報処理タスクを実行して得た情報処理結果を取得する第二提出ユニットを含み、
前記第二の複数のエンティティのうちの各エンティティ及び前記第一の複数のエンティティのうちの各エンティティには、ともに、前記特定の情報処理タスクに関連する同じ情報が記憶されており、前記同じ情報は、第二の複数のエンティティが前記特定の情報処理タスクを実行した情報処理結果に基づいて更新される、装置。
【請求項９】
請求項2〜7のうちの任意の1項に記載の方法により得られた第二の結果に基づいて、ブロックチェーン中で情報処理タスクの検証を行う方法であって、
前記ブロックチェーン中の各ノード上で、前記第二の結果及び前記ノードのキーバリュー型データベースに基づいて、前記情報処理タスクが有効であるかの判断を行う、方法。
【請求項１０】
請求項9に記載の方法であって、
前記第二の結果中のリード集合バージョンと、前記ノードのキーバリュー型データベースからのリード集合バージョンとが不一致した場合、前記情報処理タスクのリード・キーとライト・キーとの間の関係を分析し、
前記情報処理タスクのリード・キーとライト・キーとの間に関係がある場合、前記情報処理タスクが無効であると判断し、
前記情報処理タスクのリード・キーとライト・キーとの間に関係が無い場合、前記情報処理タスクが有効であると判断する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理分野に関し、特に、複数のエンティティ（entity（実体））が協働して行う情報処理の方法及び装置、並びにブロックチェーン中で情報処理タスクの検証を行う方法及び装置に関する。
【背景技術】
【０００２】
複数のエンティティが協働して情報処理を行う技術では、情報処理タスクの実行安全性及び情報処理タスクの検証が２つの非常に重要なことである。
【０００３】
より具体的には、ブロックチェーン技術が、上述のような、複数のエンティティが協働して情報処理を行う技術の一例である。ブロックチェーン技術は、近年、ビットコインの成功のせいで、迅速に発展している。ブロックチェーンは、分散型台帳とも称され、複数の互いにトラストフリーのノードによりデータを保存する構造である。ブロックチェーン中の全てのノードがブロックの順序に同意し、各ブロックが若干の取引情報を含むので、ブロックチェーンは、多くの並び替えられた取引と見なされても良い。今のところ、若干のブロックチェーンフレームワーク、例えば、パブリックチェーン、プライベートチェーン、コンソーシアムチェーンがある。
【０００４】
従来のコンソーシアムチェーンでは、分散型台帳情報が異なる企業でそれぞれ保存され得る。しかし、従来のコンソーシアムチェーンでは、情報処理タスクの実行安全性及び情報処理タスクの検証の面において問題がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以上の問題に鑑み、本開示の目的は、従来技術中の１つ又は複数の欠点を解決することができる、複数のエンティティが協働して情報処理を行う方法及び装置、並びにブロックチェーン中で情報処理タスクの検証を行う方法及び装置を提供することにある。
【課題を解決するための手段】
【０００６】
本開示の一側面によれば、複数のエンティティが協働して情報処理を行う方法が提供され、該方法は、
第一の複数のエンティティに特定の情報処理タスクを提出する第一提出ステップ；
第一の複数のエンティティが前記特定の情報処理タスクを行うことにより得られた情報処理結果に対して安全性分析を行い、また、安全性分析の結果に基づいて、前記特定の情報処理タスクの更新の処理方式を確定する安全性分析ステップ；及び
確定された更新の処理方式に基づいて、第二の複数のエンティティに前記特定の情報処理タスクを提出し、また、第二の複数のエンティティが前記特定の情報処理タスクを実行して得た情報処理結果を取得する第二提出ステップを含み、
第二の複数のエンティティのうちの各エンティティ及び第一の複数のエンティティのうちの各エンティティには、ともに、前記特定の情報処理タスクに関連する、同じ情報が記憶されており、前記情報は、前記第二の複数のエンティティが前記特定の情報処理タスクを実行して得た情報処理結果に基づいて更新される。
【０００７】
本開示の他の側面によれば、複数のエンティティが協働して情報処理を行う装置が提供され、該装置は、
第一の複数のエンティティに特定の情報処理タスクを提出する第一提出ユニット；
第一の複数のエンティティが前記特定の情報処理タスクを行うことにより得られた情報処理結果に対して安全性分析を行い、また、安全性分析の結果に基づいて、前記特定の情報処理タスクの更新の処理方式を確定する安全性分析ユニット；及び
確定された更新の処理方式に基づいて、第二の複数のエンティティに前記特定の情報処理タスクを提出し、また、第二の複数のエンティティが前記特定の情報処理タスクを実行して得た情報処理結果を取得する第二提出ユニットを含み、
第二の複数のエンティティのうちの各エンティティ及び第一の複数のエンティティのうちの各エンティティには、ともに、前記特定の情報処理タスクに関連する、同じ情報が記憶されており、また、前記情報は、前記第二の複数のエンティティが前記特定の情報処理タスクを実行して得た情報処理結果に基づいて更新される。
【０００８】
本開示の他の側面によれば、ブロックチェーン中で情報処理タスクの検証を行う方法が提供され、該方法は、上述の複数のエンティティが協働して情報処理を行う方法により得られた第二の結果に基づいて、ブロックチェーン中で情報処理タスクの検証を行う。該方法は、ブロックチェーン中の各ノード上で、第二の結果及びノードのキーバリュー型データベースに基づいて、情報処理タスクが有効であるかに関する判断を行うことを含む。
【０００９】
本開示の他の側面によれば、上述の本開示の方法を実現するためのコンピュータプログラムコード及びコンピュータプログラムプロダクト、並びにその中に上述の本開示の方法を実現するためのコンピュータプログラムコードを記録しているコンピュータ可読記憶媒体がさらに提供される。
【図面の簡単な説明】
【００１０】
【図１】本開示の実施例において複数のエンティティが協働して情報処理を行う方法の例示的なフローチャートである。
【図２】本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法の例示的なフローチャートである。
【図３】本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法の一例のフローチャートである。
【図４】本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法がコンソーシアムチェーンに適用されるシステムの構成図である。
【図５】本開示の実施例において複数のエンティティが協働して情報処理を行う装置の機能ブロック図である。
【図６】本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する装置の機能ブロック図である。
【図７】本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う方法の例示的なフローチャートである。
【図８】本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う方法の一例のフローチャートである。
【図９】本開示の実施例において静的コード解析に基づいて情報処理タスクのリード・キーとライト・キーとの間の関係に対して分析を行う一例を示す図である。
【図１０】本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う装置の機能ブロック図である。
【図１１】本開示の実施例において採用され得るパーソナルコンピュータの例示的な構成図である。
【発明を実施するための形態】
【００１１】
以下、添付した図面を参照しながら、本発明を実施するための好適な形態を詳細に説明する。なお、このような実施形態は、例示に過ぎず、本発明を限定するものでない。
【００１２】
まず、図1に基づいて、本開示の実施例において複数のエンティティが協働して情報処理を行う方法100の例示的なフローを説明する。図1は、本開示の実施例において複数のエンティティが協働して情報処理を行う方法100の例示的なフローチャートである。図1に示すように、本開示の実施例において複数のエンティティが協働して情報処理を行う方法100は、第一提出ステップS102、安全性分析ステップS104、及び第二提出ステップS106を含む。
【００１３】
本開示の実施例において複数のエンティティが協働して情報処理を行う方法100は、S101でスタートする。
【００１４】
第一提出ステップS102では、第一の複数のエンティティに特定の情報処理タスクを提出することができる。
【００１５】
一例として、第一の複数のエンティティは、複数の互にトラストフリーのエンティティであっても良。
【００１６】
安全性分析ステップS104では、第一の複数のエンティティが前記特定の情報処理タスクを行うことにより得られた情報処理結果に対して安全性分析を行い、且つ安全性分析の結果に基づいて、前記特定の情報処理タスクの更新の処理方式を確定することができる。
【００１７】
一例として、安全性分析ステップS104では、安全性分析によって、安全性に関するリスクが存在すると示されている場合、前記特定の情報処理タスクの更新の処理方式を確定する。
【００１８】
第二提出ステップS106では、確定された更新の処理方式に基づいて、第二の複数のエンティティに前記特定の情報処理タスクを提出し、且つ第二の複数のエンティティが前記特定の情報処理タスクを実行して得た情報処理結果を取得する。そのうち、第二の複数のエンティティのうちの各エンティティ及び第一の複数のエンティティのうちの各エンティティには、ともに、前記特定の情報処理タスクに関連する同じ情報が記憶されており、且つ前記同じ情報は、第二の複数のエンティティが前記特定の情報処理タスクを実行して得た情報処理結果に基づいて更新される。
【００１９】
一例として、第二提出ステップS106では、確定された更新の処理方式に基づいて、第一の複数のエンティティでなく、第二の複数のエンティティに前記特定の情報処理タスクを提出する。
【００２０】
本開示の実施例において複数のエンティティが協働して情報処理を行う方法100は、S107でエンドする。
【００２１】
本開示の実施例において複数のエンティティが協働して情報処理を行う方法100では、第一の複数のエンティティが前記特定の情報処理タスクを行うことにより得られた情報処理結果に対して安全性分析を行い、且つ安全性分析の結果に基づいて、特定の情報処理タスクの更新の処理方式を確定することで、情報処理タスクの実行安全性を向上させることができる。
【００２２】
好ましくは、前記特定の情報処理タスクは、ブロックチェーンに関連する情報処理タスクであり、前記第一の複数のエンティティ及び前記第二の複数のエンティティは、ブロックチェーンに関与する実行ノードである。本開示の実施例において複数のエンティティが協働して情報処理を行う方法100は、ブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200と具体化され得る。図2は、本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200の例示的なフローチャートである。図2に示すように、本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200は、情報処理タスク提出ステップS202、結果受け取りステップS204、第一結果選択ステップS206、及び第二結果取得ステップS208を含む。本開示の実施例において複数のエンティティが協働して情報処理を行う方法100中の第一提出ステップS102は、情報処理タスク提出ステップS202中で実行される処理を含む。本開示の実施例において複数のエンティティが協働して情報処理を行う方法100中の安全性分析ステップS104及び第二提出ステップS106は、結果受け取りステップS204、第一結果選択ステップS206、及び第二結果取得ステップS208中で実行される処理を含む。
【００２３】
本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200は、S201でスタートする。
【００２４】
情報処理タスク提出ステップS202では、所定のポリシーに基づいて、ブロックチェーン中の第一の複数の実行ノードに情報処理タスクを提出することができ、そのうち、上述の第一の複数のエンティティは、第一の複数の実行ノードに対応する。
【００２５】
一例として、ブロックチェーンには、１つ又は複数の組織的ノードが存在し、各組織的ノードは、複数のノードを含み、前記複数のノードは、複数の実行ノードを含む。ユーザがブロックチェーン中で情報処理タスク（例えば、取引）を行おうとするときに、ユーザは、所定のポリシーに基づいて、ブロックチェーン中の第一の複数の実行ノードに該情報処理タスクを提出することができる。以下、ユーザは、情報処理タスクを提出するノードと称される。
【００２６】
所定のポリシーは、予め確定されたポリシーであっても良く、例えば、所定のポリシーは、同じである又は類似した情報処理タスクの実行履歴に基づいて予め確定されたポリシーであっても良い。
【００２７】
一例として、所定のポリシーは、次のように定義されても良い。
【００２８】
AND(m1  of  org1，m2  of  org2)
上述のポリシーの意味は、組織的ノード1即ちorg1からm1個の情報処理タスクの実行結果を得ようとし、且つ組織的ノード2即ちorg2からm2個の情報処理タスクの実行結果を得ようすることである。情報処理タスクの実行結果は、署名及びリード（read）集合とライト（write）集合(R  set／W  set)を含む。リード集合とライト集合は、多くのキーペア（key  pair）からなり、例えば、(‘id’=>‘jack’，‘balance’=>30)である。
【００２９】
一例として、情報処理タスク提出ステップS202では、上述のポリシーに基づいて、ブロックチェーン中の組織的ノード1即ちorg1中のm1個の実行ノード及び組織的ノード2即ちorg2中のm2個の実行ノードに情報処理タスクを提出する。よって、前記第一の複数の実行ノードは、m1+m2個の実行ノードである。このm1+m2個の実行ノードは、情報処理タスクを実行しようとする初期実行ノードリストと見なされても良い。
【００３０】
結果受け取りステップS204では、第一の複数の実行ノードから返された情報処理タスクの実行結果を受け取ることができる。
【００３１】
一例として、第一の複数の実行ノードは、それぞれ、情報処理タスクを実行し、且つ情報処理タスクの実行結果をユーザに返すことができる。ユーザは、第一の複数の実行ノードから返された結果を受け取ることができる。
【００３２】
第一結果選択ステップS206では、所定のルール（規則）に基づいて、受け取った結果のうちから、少なくとも一部を第一の結果として選択することができる。
【００３３】
好ましくは、所定のルールに基づいて、受け取った結果のうちから前記第一の結果を選択することは、受け取った結果のうちから、次のような同じリード及びライト集合、即ち、前記同じリード及びライト集合の数がリード及びライト集合の総数の中に占める比が最も高く、且つ前記最も高い比が所定の値よりも高いものを第一の結果として選択することを含む。
【００３４】
一例として、上述の所定の値は、当業者が経験に基づいて予め確定したものであっても良い。例えば、所定の値は、50%であっても良い。
【００３５】
また、一例として、第一の複数の実行ノードから結果を受け取るときに、全ての第一の複数の実行ノードにより返された結果が一致するかを比較（判断）する。上述のように、情報処理タスクの実行結果がリード及びライト集合の方式で存在するため、大部分の一致したリード及びライト集合を第一の結果としても良い。異なる実行ノードから返されたリード及びライト集合が異なる場合、返されたリード及びライト集合の中に占める比が最も高い同じリード及びライト集合を第一の結果として選択しても良く、そのうち、該同じリード及びライト集合がリード及びライト集合の総数の中に占める比は例えば、50%よりも大きいことを要する。
【００３６】
同じリード及びライト集合を返した実行ノードが全ての第一の複数の実行ノードの中に占める比が50%よりも小さい場合、最終実行ノードリストを生成するタスクが失敗したと認めても良い。
【００３７】
好ましくは、受け取った結果のうちの、第一の結果中のリード及びライト集合とは異なるリード及びライト集合を、誤った結果とし、また、誤った結果を返した実行ノードをバッドノード（bad  node）と判断（確定）する。
【００３８】
一例として、バッドノードについて、それらの信用スコアを一定のディスカウントレートで減少させることができる。
【００３９】
creditScore’(mispeer)＝creditScore(mispeer)＊creditDiscountRate  (1)
式(1)では、mispeerは、バッドノードを表し、creditDiscountRateは、予め確定されたディスカウントレートを示し、creditScore(mispeer)は、バッドノードmispeerのオリジナル信用スコアを表し、creditScore’(mispeer)は、バッドノードmispeerの減少後の信用スコアを示す。
【００４０】
従来のブロックチェーンでは、裏書き（endorsement）段階においてバッドノードを分析により把握することができない。上述によれば、本開示の実施例による、ブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200では、異なる実行ノードが返した結果間の一致性を比較することで、バッドノードを判別し、そして、バッドノードの信用スコアを減少させることができ、これにより、情報処理タスクの実行安全性を向上させることができる。
【００４１】
第二結果取得ステップS208では、第一の結果に基づいて行われた情報処理タスクの安全性分析により、第二の結果を取得し、そして、第二の結果に関連する候補実行ノードリストをブロックチェーン中の情報処理タスクのための最終実行ノードリストとすることができる。
【００４２】
一例として、第二結果取得ステップS208では、第一の結果に対して情報処理タスクの安全性分析を行うことで第二の結果を取得し、そして、第二の結果を得るために使用する実行ノードのリスト（即ち、候補実行ノードリスト）を最終実行ノードリストとすることで、ユーザに新しい実行ノードリストを推薦することができる。
【００４３】
本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200は、S209でエンドする。
【００４４】
本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200では、第一の結果に基づいて情報処理タスクの安全性分析を行うことで第二の結果を取得し、そして、第二の結果に関連する候補実行ノードリストを最終実行ノードリストとすることにより、第一の複数の実行ノードの代わりに、ユーザに新しい実行ノードリストを推薦し、これにより、情報処理タスクの実行安全性を向上させることができる。
【００４５】
好ましくは、第二結果取得ステップS208では、情報処理タスクの安全性分析によって、情報処理タスクがリスクのある情報処理タスクでないと確定された場合、第一の結果を第二の結果とし、且つ複数の第一ノードを最終実行ノードリストとする。
【００４６】
好ましくは、第二結果取得ステップS208では、情報処理タスクがリスクのある情報処理タスクであると確定された場合、所定のポリシーを動的に、実行ノードの信用度への要求がより厳しいポリシーに変更して前記更新の処理方式とすることができ；変更後のポリシーに基づいて、ブロックチェーン中の第二の複数の実行ノードに情報処理タスクを提出することができ、そのうち、上述の第二の複数のエンティティは、第二の複数の実行ノードに対応し；及び、第二の複数の実行ノードから返された情報処理タスクの実行結果を受け取り、そして、所定のルールに基づいて、第二の複数の実行ノードから受け取った結果のうちから少なくとも一部を第二の結果として選択することができる。
【００４７】
一例として、第二結果取得ステップS208では、情報処理タスクのリスクを分析する。もし、情報処理タスクにリスクがあり、即ち、情報処理タスクが不安全なものであると確定された場合、所定のポリシーを動的に、実行ノードの信用度への要求がより厳しいポリシーに変更し；その後、変更後のポリシーに基づいて、ブロックチェーン中の第二の複数の実行ノードに情報処理タスクを提出することができる。なお、第二の複数の実行ノードは、上述の第二の結果に関連する候補実行ノードリスト中の全てのノードである。
【００４８】
従来のブロックチェーンでは、リスクがある取引を分析により把握することができない。上述によれば、本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200では、情報処理タスクのリスクを分析することができる。情報処理タスクにリスクがあれば、所定のポリシーを動的に変更することで、ユーザに、信用度が第一の複数の実行ノードよりも高い第二の複数の実行ノードを推薦することができ、これにより、情報処理タスクの実行安全性の保証を実現することができる。
【００４９】
好ましくは、所定のルールに基づいて、第二の複数の実行ノードから受け取った結果のうちから少なくとも一部を第二の結果として選択することは、受け取った結果のうちから、次のような同じリード及びライト集合、即ち、前記同じリード及びライト集合の数がリード及びライト集合の総数の中に占める比が最も高く、且つ前記最も高い比が所定の値よりも高いものを第二の結果として選択することを含む。
【００５０】
一例として、上述の所定の値は、当業者が経験に基づいて確定したものであっても良い。例えば、所定の値は、50%であっても良い。
【００５１】
一例として、第二の複数の実行ノードから結果を受け取るときに、全ての第二の複数の実行ノードから返された結果が一致するかを比較（判断）する。上述のように、情報処理タスクの実行結果がリード及びライト集合の方式で存在するため、大部分の一致したリード及びライト集合を第二の結果とすることができる。もし、第二の複数の実行ノードのうちの異なる実行ノードにより返されたリード及びライト集合が異なる場合、返されたリード及びライト集合の中に占める比が最も高い同じリード及びライト集合を、第二の複数の実行ノードの実行結果として選択しても良く、そのうち、該同じリード及びライト集合がリード及びライト集合の総数の中に占める比は例えば、50%よりも大きいことが必要である。
【００５２】
もし、同じリード及びライト集合を返した実行ノードが全ての第二の複数の実行ノードのうちに占める比が50%よりも小さい場合、最終実行ノードリストを生成するタスクが失敗したと認めても良い。
【００５３】
好ましくは、情報処理タスクの操作リスクスコア、及び、情報処理タスクを提出するノードのリスクスコアに基づいて、情報処理タスクのリスクスコアを計算することで、情報処理タスクがリスクのある情報処理タスクであるかを確定することができる。
【００５４】
情報処理タスクのリスクをm個の等級に定義する（分ける）ことができる。以下、情報処理タスクのリスクを4個の等級に分けるケースを例とする。表1には、情報処理タスクのリスクスコアtxRiskScoreと、リスク等級riskGradeとの間の対応関係が示されている。
【表１】
2020013542.tif 000003
【００５５】
ブロックチェーンについて言えば、情報処理タスクは、チェーンコードに基づく関数呼び出しを意味する。情報処理タスクが幾つかの重要な関数、例えば、データの初期化や全てのデータのクリアを呼び出す場合、情報処理タスクのリスクスコアが比較的高く、それ相応に、リスク等級も比較的高い。
【００５６】
もし、情報処理タスクの関数が危険な操作を含む場合、例えば、リード／ライト集合にnull又は“”が含まれる場合、情報処理タスクは、ある程度のリスクを有するものである。よって、下記のように情報処理タスクの操作リスクスコアriskScore(operation)を定義することができる。
【数１】
2020013542.tif 000004
【００５７】
実行ノードの信用スコアは、情報処理タスクの実行履歴に基づいて定義され、デフォルトは、100点である。
【００５８】
組織的ノードorgiの信用スコアcreditScore(orgi)は、以下のように、該組織的ノードに包括される全てのノードの信用スコアの平均値として定義される。
【数２】
2020013542.tif 000005
【００５９】
式(3)では、peeriは、組織的ノードorgiの第i個目のノードを示し、nは、組織的ノードorgiのうちのノードの総数である。
【００６０】
ユーザが組織的ノードorgiに属するとすれば、ユーザの信用スコアは、下記のように、該ユーザが属する組織的ノードの信用スコアに等しい。
【００６１】
creditScore(user)＝creditScore(orgi)  (4)
情報処理タスクを提出するノード（ユーザ）のリスクスコアは、下記のように定義され得る。
【００６２】
riskScore(clientCredit)＝100-creditScore(user)  (5)
式(5)から分かるように、ユーザの信用スコアが非常に高い場合、ユーザのリスクスコアriskScore(clientCredit)は、非常に低い。
【００６３】
式(2)により算出される情報処理タスクの操作リスクスコア、及び式(5)により算出される、情報処理タスクを提出するノードのリスクスコアに基づいて、情報処理タスクのリスクスコアを計算することができる。
【００６４】
もし、情報処理タスクのリスクスコアが閾値（例えば、90点）よりも大きい場合、該情報処理タスクは、リスク有り情報処理タスクと確定される。
【００６５】
上述によれば、本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200では、情報処理タスクの操作リスクスコア、及び情報処理タスクを提出するのノードのリスクスコアに基づいて、情報処理タスクのリスクスコアを計算することができ、これにより、情報処理タスクがリスク有り情報処理タスクであるかを正確に確定することができる。
【００６６】
好ましくは、実行ノードの役割（role）の権限リスクスコアをさらに用いて、情報処理タスクのリスクスコアを計算することができる。
【００６７】
実行ノードの役割が管理者（Administrator）の場合、管理者が比較的大きい権限を有するため、情報処理タスクは、ある程度のリスクを有するものである。他方、実行ノードの役割が普通メンバーの場合、普通メンバーが比較的大きい権限を有しないため、情報処理タスクは、安全なものである。よって、実行ノードの役割の権限リスクスコアriskScore(authorization)は、下記のように定義することができる。
【数３】
2020013542.tif 000006
【００６８】
そして、実行ノードの役割の権限リスクスコア、情報処理タスクの操作リスクスコア、及び前記情報処理タスクを提出するノードのリスクスコアに基づいて計算された情報処理タスクのリスクスコアtxRiskScoreは、下記のように表すことができる。
【数４】
2020013542.tif 000007
【００６９】
式(7)では、α及びβは、当業者が経験に基づいて予め確定したパラメータであっても良い。
【００７０】
上述によれば、本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200では、実行ノードの役割の権限リスクスコアをさらに用いて、情報処理タスクのリスクスコアを計算することができ、これにより、情報処理タスクがリスク有り情報処理タスクであるかをより正確に判断することができる。
【００７１】
好ましくは、次のようなステップで変更後のポリシーを生成し、即ち、情報処理タスクのリスクスコアに対応する情報処理タスクのリスク等級に基づいて、候補実行ノードリストの形成に必要な候補組織的ノードの総数及び実行ノードの総数を計算し、そのうち、各組織的ノードは、複数のノードを含み；各候補組織的ノードの信用スコア及び候補組織的ノードの全体信用スコアに基づいて、各候補組織的ノードが候補実行ノードリスト形成時に占める重み（weight）を計算し；各候補組織的ノードの重み及び実行ノードの総数に基づいて、各候補組織的ノードのうちの、候補実行ノードリストの生成に必要な実行ノードの数を計算し；及び、各候補組織的ノードのうちの、候補実行ノードリストの生成に必要な実行ノードの数に基づいて、変更後のポリシーを生成する。
【００７２】
一例として、表1に示されている情報処理タスクのリスクスコアと、情報処理タスクのリスク等級との間の対応関係に基づいて、情報処理タスクのリスク等級を得ることができる。また、以下の式(8)、(9)に示すように、得られた情報処理タスクのリスク等級に基づいて、それぞれ、候補実行ノードリストの生成に必要な候補組織的ノードの総数OrgCount及び実行ノードの総数PeerCountを計算することができる。
【数５】
2020013542.tif 000008
【００７３】
式(8)では、riskGradeは、情報処理タスクのリスク等級であり、riskGradeNumは、予め定義された情報処理タスクのリスク等級の総数（即ち、上述のようなm個の等級）であり、totalOrgCountは、ブロックチェーン中の組織の総数である。一例として、全ての組織的ノードのうちから、組織的ノードの信用スコアの降順で、OrgCount個の組織的ノードを候補組織的ノードとすることができる。
【数６】
2020013542.tif 000009
【００７４】
式(9)では、totalPeerCountは、ブロックチェーン中の実行ノードの総数である。
【００７５】
式(8)、(9)から分かるように、情報処理タスクのリスク等級が高いほど、候補実行ノードリストの生成に必要な候補組織的ノードの総数OrgCount及び実行ノードの総数PeerCountがともに多い。
【００７６】
その後、以下の式(10)に示すように、各候補組織的ノードの信用スコア及び候補組織的ノードの全体信用スコアに基づいて、各候補組織的ノードが候補実行ノードリスト生成時に占める重みweight(orgi)を計算することができる。
【数７】
2020013542.tif 000010
【００７７】
式(10)では、orgiは、第i(i=1，2，…，OrgCount)個目の候補組織的ノードを示し、OrgCountは、式(8)により算出された、候補実行ノードリストの生成に必要な候補組織的ノードの総数である。
【００７８】
式(10)から分かるように、候補組織的ノードの信用スコアが高いほど、該候補組織的ノードが候補実行ノードリスト生成時に占め重みが大きい。
【００７９】
その後、下記の式(11)に示すように、各候補組織的ノードの重みweight(orgi)及び実行ノードの総数PeerCountに基づいて、各候補組織的ノードのうちの、候補実行ノードリストの生成に必要な実行ノードの数PeerCount(orgi)を計算することができる。
【００８０】
PeerCount(orgi)＝weight(orgi)＊PeerCount  (11)
式(11)では、PeerCountは、式(9)により算出された、候補実行ノードリストの生成に必要な実行ノードの総数である。一例として、各候補組織的ノードのうちの全ての実行ノードのうちから、実行ノードの信用スコアの降順で、PeerCount(orgi)個の実行ノードを選択することができる。
【００８１】
式(10)、(11)から分かるように、候補組織的ノードの信用スコアが高いほど、該候補組織的ノードのうちの、候補実行ノードリストの生成に必要な実行ノードの数が大きい。
【００８２】
最後に、各候補組織的ノードのうちの、候補実行ノードリストの生成に必要な実行ノードの数に基づいて、変更後のポリシーを生成することができる。
【００８３】
一例として、式(8)により算出された、候補実行ノードリストの生成に必要な候補組織的ノードの総数OrgCountが2であるとすれば、変更後のポリシーは、以下のように定義することができる。
【数８】
2020013542.tif 000011
【００８４】
式(12)では、PeerCount(org1’)は、候補組織的ノードorg1’のうちの、候補実行ノードリストの生成に必要な実行ノードの数を示し、PeerCount(org2’)は、候補組織的ノードorg2’のうちの、候補実行ノードリストの生成に必要な実行ノードの数を表し、PeerCount(org1’)及びPeerCount(org2’)は、ともに、式(11)により計算されたものである。
【００８５】
式(12)により示される変更後のポリシーの意味は、候補組織的ノード1即ちorg1’のうちからPeerCount(org1’)個の情報処理タスクの実行結果を得ようとし、且つ候補組織的ノード2即ちorg2’のうちからPeerCount(org2’)個の情報処理タスクの実行結果を得ようとすることである。
【００８６】
上述によれば、本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200では、情報処理タスクのリスク等級に基づいて、実行ノードの信用度への要求がより厳しい変更後のポリシーを生成することができる。
【００８７】
なお、第二結果取得ステップS208を説明したときに、次のようなことが説明されており、即ち、変更後のポリシーに基づいて、ブロックチェーン中の第二の複数の実行ノードに情報処理タスクを提出することができる。式(12)により示される変更後のポリシーを例とすると、前記第二の複数の実行ノードは、候補組織的ノード1即ちorg1’のうちのPeerCount(org1’)個の実行ノード及び候補組織的ノード2即ちorg2’のうちのPeerCount(org2’)個の実行ノードにより構成される。
【００８８】
好ましくは、候補実行ノードリストは、候補組織的ノードの信用スコアの降順で並び替えることができる。
【００８９】
式(12)により示される変更後のポリシーを例とすれば、該変更後のポリシーに基づく候補実行ノードリストは、下記のように表すことができる。
【数９】
2020013542.tif 000012
【００９０】
式(13)では、Peeri(org1’)(i=1，2，…，PeerCount(org1’))は、候補組織的ノードorg1’のうちの第i個目の候補実行ノードを示し、Peerj(org2’)(j=1，2，…，PeerCount(org2’))は、組織org2’のうちの第j個目の候補実行ノードを表す。一例として、変更後のポリシーに基づく候補実行ノードリストは、上述の初期実行ノードリストとの重畳（overlap）があっても良い。
【００９１】
上述によれば、本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200では、候補組織的ノードの信用スコアが高いほど、該候補組織的ノードのうちの、候補実行ノードリストの生成に必要な実行ノードの数が大きく、これに基づいて生成された候補実行ノードリストの信用度も高い。
【００９２】
なお、第二結果取得ステップS208では、変更後のポリシーに基づいて、ブロックチェーン中の第二の複数の実行ノードに情報処理タスクを提出した後に、情報処理タスクが不安全なものと確定されれば、最終実行ノードリストの生成タスクが失敗したと認めても良い。
【００９３】
以下、本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200をより明確に説明するために、図3に基づいて、本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200の一例のフローを説明する。
【００９４】
説明の便宜のため、図3では、所定のポリシーに基づいて、ブロックチェーン中の第一の複数の実行ノードに情報処理タスクを提出するステップの図示が省略される。図3では、本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200の一例のフローは、ステップS301でスタートする。ステップS301では、第一の複数の実行ノードから返された情報処理タスクの実行結果（そのうち、該結果は、リード及びライト集合の形式であり、例えば、図3に示すように、結果は、ノード1、ノード2、…、ノードnから返されたリード及びライト集合、即ち、リード／ライト集合(ノード1)、リード／ライト集合(ノード2)、…、リード／ライト集合(ノードn)を含む）を受け取り、且つ結果の一致性を比較する。ステップS302では、返された結果に、次のような同じリード及びライト集合、即ち、前記同じリード及びライト集合の数がリード及びライト集合の総数に占める比が最も高く、且つ前記最も高い比が所定の値（例えば、50%）よりも高いものが含まれるかを判断する。判断の結果が「いいえ」の場合、ステップS310に移行し、即ち、最終実行ノードリストの生成タスクが失敗した。判断の結果が「はい」の場合、それぞれ、ステップS303及びステップS305に移行する。ステップS303では、結果に対しての比較によりバッドノードを分析する。バッドノードについて、ステップS304では、バッドノード及びその属する組織的ノードの信用スコアを更新する。ステップS305では、情報処理タスクのリスクを分析する。ステップS306では、情報処理タスクの操作リスクスコア、情報処理タスクを提出するノードのリスクスコア、及び実行ノードの役割の権限リスクスコアに基づいて、情報処理タスクのリスクスコアを計算する。ステップS307では、計算された情報処理タスクのリスクスコアに基づいて、情報処理タスクが安全なものであるかを判断する。判断の結果が「はい」のとき、ステップS311に移行し、所定のポリシーを更新する必要がなく、直接、第一の複数の実行ノードを最終実行ノードリストとし、即ち、最終実行ノードリストの生成タスクが成功した。判断の結果が「いいえ」のとき、ステップS308に移行し、所定のポリシーを動的に、実行ノードの信用度への要求がより厳しいポリシーに変更し、そして、変更後のポリシーに基づいてユーザに実行ノードを推薦し、これにより、第二の複数の実行ノードからなる候補実行ノードリストを生成し、また、該候補実行ノードリストを最終実行ノードリストとする。ステップS309では、第二の複数の実行ノードに情報処理タスクを提出し、その後、ステップS301乃至ステップS304中の処理に類似した処理により、第二の複数の実行ノードから返された情報処理タスクの実行結果のうちから上述の第二の結果を選択することができる。
【００９５】
コンソーシアムチェーンは、企業と企業や実体と実体の間の脱中心化のコンセンサスの問題を解決することができる。以下、コンソーシアムチェーンに基づいて、本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200を説明する。図4は、本開示の実施例による、ブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200がコンソーシアムチェーンに応用されるシステムの構成図である。
【００９６】
コンソーシアムチェーンに保存のブロックチェーン取引の情報は、台帳と略称されても良く、チェーンコードの実行プロセスは、裏書きと称されても良い。以下、説明の便宜のため、コンソーシアムチェーンに基づいて、本開示の実施例による、ブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200に関与する情報処理タスクを取引と言い、複数の実行ノードが情報処理タスク（取引）を実行するプロセスは、複数の実行ノードがチェーンコードを実行するプロセスであり、該プロセスは、裏書きと称されても良く、実行ノードは、裏書きノードと称されても良く、実行ノードが取引を実行した後に返した実行結果は、裏書き結果と称されても良く、最終実行ノードリストは、候補裏書きノードリストと称されても良く、また、所定のポリシーは、所定の裏書きポリシーと称されても良い。
【００９７】
図4中のAPP／SDKは、取引を開始しようとするユーザの所在するクライアントを示し、ユーザは、身分証明書を以て自分の身分を証明することで、コンソーシアムチェーンにアクセスすることができる。CAセンターは、デジタル証明書（身分証明書）の有効性を検証するために用いられる。
【００９８】
以下、ステップS401乃至S408により本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリスト（最終裏書きノードリスト）を生成する方法200の一例のフローを説明する。
【００９９】
図4のステップS401では、ユーザは、所定の裏書きポリシーに基づいて第一の複数の裏書きノードに取引を提出する。図4中の裏書きノードモジュールでは、例示的に４つの裏書きノード、即ち、組織1即ちOrg1に属する裏書きノードPeer0とPeer1、及び組織2即ちOrg2に属する裏書きノードPeer2とPeer3を示している。第一の複数の裏書きノードがPeer0及びPeer2を含み、この２つの裏書きノードが取引を受け取った後に、それぞれ、取引を行い（即ち、チェーンコードを実行し）、裏書き結果を生成するとする。
【０１００】
ステップS402では、ユーザは、第一の複数の裏書きノードが返した裏書き結果を受け取る。
【０１０１】
ステップS403では、受け取った裏書き結果に対して分析を行い、バッドノードがあるかを判断する。
【０１０２】
ステップS404では、１回目の裏書きであるかを判断する。ステップS404中の判断の結果が「はい」の場合、ステップS405に移行する。
【０１０３】
ステップS405では、取引のリスクを分析する。
【０１０４】
ステップS406では、取引がリスク有り取引であるかを判断する。ステップS406中の判断の結果が「いいえ」の場合、直接、第一の複数の裏書きノードが受け取った裏書き結果のうちから少なくとも一部を最終裏書き結果（例えば、受け取ったリード及びライト集合に占める比が最も高い同じリード及びライト集合を最終裏書き結果として選択し、そのうち、該同じリード及びライト集合がリード及びライト集合の総数に占める比は例えば、50%よりも大きいことが必要である）として選択し、また、前記第一の複数の裏書きノードを最終裏書きノードリストとする。
【０１０５】
ステップS406中の判断の結果が「はい」の場合、ステップS407に移行する。
【０１０６】
ステップS407では、裏書きポリシーを動的に、裏書きノードの信用度への要求がより厳しいポリシーに変更し、そして、変更後のポリシーに基づいて、第二複数の裏書きノードに前記取引を提出する。その後、ステップS402及びS403中の処理に類似した処理、即ち、ユーザが第二複数の裏書きノードから返された裏書き結果を受け取り、そして、受け取った裏書き結果に対して安全性分析を行い、バッドノードがあるかを判断することを行う。
【０１０７】
ステップS404中の判断の結果が「いいえ」の場合、ステップS408に移行する。ステップS408では、１回目の裏書きでなく、２回目の裏書きであるため、１回目の裏書きのときに取引リスク分析に関する処理が行われたことを意味するので、第二複数の裏書きノードが受け取った裏書き結果のうちから少なくとも一部を最終裏書き結果（例えば、受け取ったリード及びライト集合の中に占める比が最も高い同じリード及びライト集合を最終裏書き結果として選択し、そのうち、該同じリード及びライト集合がリード及びライト集合の総数に占める比は例えば、50%よりも大きいことが必要である）とし、また、前記第二複数の裏書きノードを最終裏書きノードリストとする。
【０１０８】
以上、ステップS401乃至S408を用いて、本開示の実施例における方法200を用いて裏書きを行うことで最終裏書きノードリストを生成するフローを説明した。
【０１０９】
裏書き終了後に、コンソーシアムチェーンでは、図4中の(1)に示すように、ユーザが取引（最終裏書き結果を含む）を並べ替えサービング（並べ替え機能のあるサービス）に提出する。その後、図4中の(2)に示すように、並べ替えサービングは、コンセンサスアルゴリズムに基づいて取引を並べ替え、その後、若干個の取引をブロックにパッキングし、そして、ブロックをチェーンに追加する。その後、図4中の(3)に示すように、取引を含む全てのブロックを報知（broadcast）により全てのノードに伝送する。最後に、図4中の(4)に示すように、台帳検証を行い、即ち、各ノードが取引ブロックを受け取ったときに、該ノードは、該ブロック中の全ての取引の有効性を検証し、取引が有効である場合、この取引について、取引のキー状態がデータベースに保存され得る。
【０１１０】
一例として、本開示の実施例による、ブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200は、医療ブロックチェーンに適用することができる。ブロックチェーンに参与するエンティティは、病院、保険会社、及び個人である。言い換えると、病院、保険会社、及び個人のところにあるコンピュータは、ブロックチェーン中の実行ノードであっても良い。病院は、複数であっても良く、各病院は、各自の病院での病人の診断データをメンテナンスする。個人は、全ての病院での自分の診断データをメンテナンスする。病院の診断データ及び個人の診断データのハッシュ値（ハッシュ値を保存することでデータ量を減少させることができる）は、ブロックチェーンに保存される。病院及び個人が保存した履歴病歴記録は、改ざんできず、脱中心化のものである。複数の病院は、データを共有しようとするときに、取引を開始して相手の同意を得なければならない。同様に、病院は、個人のデータを取得しようとするときにも、取引を介して相手の同意を得なければならない。全てのデータの使用履歴は、ブロックチェーンに記録される。保険会社は、取引を開始して病院又は個人から履歴病歴記録を得ることができ、その後、メディケアプランなどを作成することができる。例えば、病院、保険会社、及び個人のところにあるコンピュータは、図4中のAPP／SDK（即ち、取引を開始しようとするユーザの所在するクライアント）であっても良く、また、図4についての関連説明に言及びされている、取引を開始しようとするユーザは、病院、保険会社、及び個人であっても良い。
【０１１１】
また、本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法200は、さらに、サプライチェーンに応用することができる。例えば、輸入牛肉の食品トレースバックシステムである。ブロックチェーンに参与するエンティティは、養牛牧場、牛肉加工企業、運送企業、販売企業などを含む。各企業は、自分のノードをメンテナンスし、牛肉の全ての状態を保存する。牛肉加工の各ステップは、全て、ブロックチェーンに保存される。ブロックチェーン上のデータは、脱中心化で且つ改ざんできないものである。牛肉に食品安全問題が生じた場合、ブロックチェーンにてトレースバックすることで、どの企業に問題が生じたかを把握することができる。
【０１１２】
また、上述のような、複数のエンティティが協働して情報処理を行う方法の実施例に対応して、本開示は、さらに、以下のように、複数のエンティティが協働して情報処理を行う装置の実施例を提供する。
【０１１３】
図5は、本開示の実施例において複数のエンティティが協働して情報処理を行う装置500の機能ブロック図である。
【０１１４】
図5に示すように、本開示の実施例において複数のエンティティが協働して情報処理を行う装置500は、第一提出ユニット502、安全性分析ユニット504、及び第二提出ユニット506を含んでも良い。以下、第一提出ユニット502、安全性分析ユニット504、及び第二提出ユニット506の機能構成例について説明する。
【０１１５】
第一提出ユニット502では、第一の複数のエンティティに特定の情報処理タスクを提出することができる。
【０１１６】
一例として、第一の複数のエンティティは、複数の互にトラストフリーのエンティティであっても良い。
【０１１７】
安全性分析ユニット504では、第一の複数のエンティティが前記特定の情報処理タスクを行うことにより得られた情報処理結果に対して安全性分析を行い、且つ安全性分析の結果に基づいて、前記特定の情報処理タスクの更新の処理方式を確定することができる。
【０１１８】
一例として、安全性分析ユニット504では、安全性分析によって、安全性に関するリスクが存在すると示されている場合、前記特定の情報処理タスクの更新の処理方式を確定する。
【０１１９】
第二提出ユニット506では、確定された更新の処理方式に基づいて、第二の複数のエンティティに前記特定の情報処理タスクを提出し、且つ第二の複数のエンティティが前記特定の情報処理タスクを実行して得た情報処理結果を取得し、そのうち、第二の複数のエンティティのうちの各エンティティ及び第一の複数のエンティティのうちの各エンティティには、ともに、前記特定の情報処理タスクに関連する同じ情報が記憶されており、且つ前記同じ情報は、第二の複数のエンティティが前記特定の情報処理タスクを実行して得た情報処理結果に基づいて更新される。
【０１２０】
一例として、第二提出ユニット506では、確定された更新の処理方式に基づいて、第一の複数のエンティティでなく、第二の複数のエンティティに前記特定の情報処理タスクを提出する。
【０１２１】
本開示の実施例において複数のエンティティが協働して情報処理を行う装置500では、第一の複数のエンティティが前記特定の情報処理タスクを行うことにより得られた情報処理結果に対して安全性分析を行い、そして、安全性分析の結果に基づいて、特定の情報処理タスクの更新の処理方式を確定することで、情報処理タスクの実行安全性を向上させることができる。
【０１２２】
好ましくは、前記特定の情報処理タスクは、ブロックチェーンに関連する情報処理タスクであり、前記第一の複数のエンティティ及び前記第二の複数のエンティティは、ブロックチェーンに関与する実行ノードである。本開示の実施例において複数のエンティティが協働して情報処理を行う装置500は、ブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する装置600と具体化され得る。図6は、本開示の実施例による、ブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する装置600の機能ブロック図である。図6に示すように、本開示の実施例による、ブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する装置600は、情報処理タスク提出ユニット602、結果受け取りユニット604、第一結果選択ユニット606、及び第二結果取得ユニット608を含む。本開示の実施例において複数のエンティティが協働して情報処理を行う装置500中の第一提出ユニット502は、情報処理タスク提出ユニット602中で行われる処理を実行するように構成されても良い。本開示の実施例において複数のエンティティが協働して情報処理を行う装置500中の安全性分析ユニット504及び第二提出ユニット506は、結果受け取りユニット604、第一結果選択ユニット606、及び第二結果取得ユニット608中で行われる処理を実行するように構成されても良い。
【０１２３】
以下、情報処理タスク提出ユニット602、結果受け取りユニット604、第一結果選択ユニット606、及び第二結果取得ユニット608の機能構成例について説明する。
【０１２４】
情報処理タスク提出ユニット602では、所定のポリシーに基づいて、ブロックチェーン中の第一の複数の実行ノードに情報処理タスクを提出することができ、そのうち、上述の第一の複数のエンティティは、第一の複数の実行ノードに対応する。
【０１２５】
例えば、ブロックチェーンに１つ又は複数の組織的ノードが存在し、各組織的ノードは、複数のノードを含み、前記複数のノードは、複数の実行ノードを含む。ユーザは、ブロックチェーン中で情報処理タスク（例えば、取引）を行おうとするときに、所定のポリシーに基づいて、ブロックチェーン中の第一の複数の実行ノードに該情報処理タスクを提出することができる。以下、このようなユーザを、情報処理タスクを提出するノードと称しても良い。
【０１２６】
所定のポリシーは、予め確定されたポリシーであっても良く、例えば、所定のポリシーは、同じである又は類似した情報処理タスクの実行履歴に基づいて予め確定されたポリシーである。
【０１２７】
所定のポリシーの具体例については、上述の方法の実施例中の対応する部分、例えば、情報処理タスク提出ステップS202についての説明を参照することができ、ここでは、重複説明を割愛する。
【０１２８】
結果受け取りユニット604では、第一の複数の実行ノードが返した情報処理タスクの実行結果を受け取ることができる。
【０１２９】
一例として、第一の複数の実行ノードは、それぞれ、情報処理タスクを実行し、そして、情報処理タスクの実行結果をユーザに返すことができる。ユーザは、第一の複数の実行ノードが返した結果を受け取ることができる。
【０１３０】
第一結果選択ユニット606では、所定のルールに基づいて、受け取った結果のうちから少なくとも一部を第一の結果として選択することができる。
【０１３１】
好ましくは、第一結果選択ユニット606では、次のような処理で前記第一の結果を選択し、即ち、受け取った結果のうちから、次のような同じリード及びライト集合、即ち、前記同じリード及びライト集合の数がリード及びライト集合の総数に占める比が最も高く、且つ前記最も高い比が所定の値よりも高いものを第一の結果として選択する。
【０１３２】
一例として、上述の所定の値は、業者が経験に基づいて予め確定したものであっても良い。例えば、所定の値は、50%であっても良い。
【０１３３】
一例として、第一の複数の実行ノードから結果を受け取るときに、全ての第一の複数の実行ノードが返した結果が一致するかを比較する。上述のように情報処理タスクの実行結果がリード及びライト集合の方式で存在するため、大部分の一致したリード及びライト集合を第一の結果とすることができる。異なる実行ノードが返したリード及びライト集合が異なるなら、返されたリード及びライト集合の中に占める比が最も高い同じリード及びライト集合を第一の結果として選択し、そのうち、該同じリード及びライト集合がリード及びライト集合の総数に占める比は例えば、50%よりも高いことが必要である。
【０１３４】
もし、返された同じリード及びライト集合の実行ノードが全ての第一の複数の実行ノードに占める比が50%よりも小さい場合、最終実行ノードリストの生成タスクが失敗したと認めても良い。
【０１３５】
好ましくは、第一結果選択ユニット606は、さらに、受け取った結果のうちの、第一の結果中のリード及びライト集合とは異なるリード及びライト集合を、誤った結果とし、そして、誤った結果を返した実行ノードをバッドノードと判断（確定）するように構成される。
【０１３６】
一例として、バッドノードについて、それらの信用スコアを一定のディスカウントレートで減少させることができる。
【０１３７】
上述によれば、本開示の実施例においてブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する装置600では、異なる実行ノードが返した結果間の一致性を比較することで、バッドノードを判別することができ、また、バッドノードの信用スコアを減少させることもでき、これにより、情報処理タスクの実行安全性を向上させることができる。
【０１３８】
第二結果取得ユニット608では、第一の結果に基づいて行われた情報処理タスクの安全性分析により、第二の結果を取得し、そして、第二の結果に関連する候補実行ノードリストをブロックチェーン中の情報処理タスクのための最終実行ノードリストとすることができる。
【０１３９】
一例として、第二結果取得ユニット608では、第一の結果に対しての情報処理タスクの安全性分析により第二の結果を取得し、そして、第二の結果の取得のために使用する実行ノードのリスト（即ち、候補実行ノードリスト）を最終実行ノードリストとすることで、ユーザに新しい実行ノードリストを推薦する。
【０１４０】
本開示の実施例による、ブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する装置600では、第一の結果に基づいて情報処理タスクの安全性分析を行うことで第二の結果を取得し、そして、第二の結果に関連する候補実行ノードリストを最終実行ノードリストとし、第一の複数の実行ノードの代わりに、ユーザに新しい実行ノードリストを推薦し、これにより、情報処理タスクの実行安全性を向上させることができる。
【０１４１】
好ましくは、第二結果取得ユニット608では、情報処理タスクの安全性分析によって、情報処理タスクがリスク有り情報処理タスクでないと確定された場合、第一の結果を第二の結果とし、そして、複数の第一ノードを最終実行ノードリストとする。
【０１４２】
好ましくは、第二結果取得ユニット608では、情報処理タスクがリスク有り情報処理タスクであると確定された場合、所定のポリシーを動的に、実行ノードの信用度への要求がより厳しいポリシーに変更して前記更新の処理方式とし；変更後のポリシーに基づいて、ブロックチェーン中の第二の複数の実行ノードに情報処理タスクを提出し、そのうち、上述の第二の複数のエンティティは、第二の複数の実行ノード二対応し；及び、第二の複数の実行ノードが返した情報処理タスクの実行結果を受け取り、そして、所定のルールに基づいて、第二の複数の実行ノードから受け取った結果のうちから少なくとも一部を第二の結果として選択することができる。
【０１４３】
一例として、第二結果取得ユニット608では、情報処理タスクのリスクを分析する。情報処理タスクにリスクがあると確定された場合、即ち、情報処理タスクが不安全なものであると確定された場合、所定のポリシーを動的に、実行ノードの信用度へ要求がより厳しいポリシーに変更し；その後、変更後のポリシーに基づいて、ブロックチェーン中の第二の複数の実行ノードに情報処理タスクを提出することができ、なお、第二の複数の実行ノードは、上述の第二の結果に関連する候補実行ノードリストのうちの全てのノードである。
【０１４４】
上述によれば、本開示の実施例による、ブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する装置600では、情報処理タスクのリスクを分析することができる。情報処理タスクにリスクがある場合、所定のポリシーを動的に変更し、これにより、ユーザに、信用度が第一の複数の実行ノードよりも高い第二の複数の実行ノードを推薦することができるため、情報処理タスクの実行安全性の保証を実現することができる。
【０１４５】
好ましくは、所定のルールに基づいて、第二の複数の実行ノードから受け取った結果のうちから少なくとも一部を第二の結果として選択することは、受け取った結果のうちから次のような同じリード及びライト集合、即ち、前記同じリード及びライト集合の数がリード及びライト集合の総数に占める比が最も高く、且つ前記最も高い比が所定の値よりも高いものを第一の結果として選択することを含む。
【０１４６】
一例として、上述の所定の値は、当業者が経験に基づいて予め確定したものであっても良い。例えば、所定の値は、50%であっても良い。
【０１４７】
一例として、第二の複数の実行ノードから結果を受け取るときに、全ての第二の複数の実行ノードが返した結果が一致するかを比較する。上述のように、情報処理タスク実行結果がリード及びライト集合の方式で存在するので、大部分の一致したリード及びライト集合を第二の結果とすることができる。もし、第二の複数の実行ノードのうちの異なる実行ノードが返したリード及びライト集合が異なる場合、返されたリード及びライト集合に占める比が最も高い同じリード及びライト集合を第二の複数の実行ノードの実行結果とし、そのうち、該同じリード及びライト集合がリード及びライト集合の総数に占める比が例えば、50%よりも大きいことが必要である。
【０１４８】
もし、同じリード及びライト集合を返した実行ノードが全ての第二の複数の実行ノードに占める比が50%よりも小さい場合、最終実行ノードリストの生成タスクが失敗したと認めても良い。
【０１４９】
好ましくは、情報処理タスクの操作リスクスコア、及び情報処理タスクを提出するノードのリスクスコアに基づいて、情報処理タスクのリスクスコアを計算することができ、これにより、情報処理タスクがリスク有り情報処理タスクであるかを確定することができる。
【０１５０】
情報処理タスクの操作リスクスコア、情報処理タスクを提出するノードのリスクスコア、及び情報処理タスクのリスクスコアの具体例については、上述の方法の実施例中の対応する部分、例えば、第二結果取得ステップS208についての説明を参照することができ、ここでは、重複説明を省略する。
【０１５１】
もし、情報処理タスクのリスクスコアが閾値（例えば、90点）よりも大きい場合、該情報処理タスクは、リスク有り情報処理タスクと定義される。
【０１５２】
上述によれば、本開示の実施例による、ブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する装置600では、情報処理タスクの操作リスクスコア、及び情報処理タスクを提出するノードのリスクスコアに基づいて、情報処理タスクのリスクスコアを計算することができ、これにより、情報処理タスクがリスク有り情報処理タスクであるかを正確に確定することができる。
【０１５３】
好ましくは、さらに、実行ノードの役割の権限リスクスコアをさらに用いて、情報処理タスクのリスクスコアを計算することもできる。
【０１５４】
権限リスクスコアに関する具体例については、上述の方法の実施例中の対応する部分、例えば、第二結果取得ステップS208についての説明を参照することができるため、ここでは、重複説明を割愛する。
【０１５５】
上述によれば、本開示の実施例による、ブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する装置600では、さらに、実行ノードの役割の権限リスクスコアに基づいて、情報処理タスクのリスクスコアを計算することもでき、これにより。情報処理タスクがリスク有り情報処理タスクであるかをより正確に把握することができる。
【０１５６】
好ましくは、次のような処理を用いて変更後のポリシーを生成し、即ち、情報処理タスクのリスクスコアに対応する情報処理タスクのリスク等級に基づいて、候補実行ノードリストの生成に必要な候補組織的ノードの総数及び実行ノードの総数を生成し、そのうち、各組織的ノードは、複数のノードを含み；各候補組織的ノードの信用スコア及び候補組織的ノードの全体信用スコアに基づいて、各候補組織的ノードが候補実行ノードリスト生成時に占める重みを計算し；各候補組織的ノードの重み及び実行ノードの総数に基づいて、各候補組織的ノードのうちの、候補実行ノードリストの生成に必要な実行ノードの数を計算し；及び、各候補組織的ノードのうちの、候補実行ノードリストの生成に必要な実行ノードの数に基づいて、変更後のポリシーを生成することができる。
【０１５７】
変更後のポリシーを生成する具体例については、上述の方法の実施例中の対応する部分、例えば、第二結果取得ステップS208についての説明を参照することができるから、ここでは、重複説明を割愛する。
【０１５８】
上述によれば、本開示の実施例による、ブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する装置600では、情報処理タスクのリスク等級に基づいて、実行ノードの信用度への要求がより厳しい変更後のポリシーを生成することができる。
【０１５９】
なお、以上、本開示の実施例による、ブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する装置の構成を説明したが、これは、例示に過ぎず、本開示を限定するためのものでなく、また、当業者は、本開示の原理に基づいて上述の実施例に対して変更や改良を行っても良いが、これらは、全て、本開示の技術的範囲に属する。
【０１６０】
また、本開示は、さらに、記憶媒体及びプログラムプロダクトを提供する。本開示の実施例による記憶媒体及びプログラムプロダクト中のマシン実行可能な指令は、上述のブロックチェーン中の情報処理タスクのための最終実行ノードリストを生成する方法を実現するように構成されても良いので、ここで記載されていない内容については、上述の対応する部分を参照することができる。
【０１６１】
それ相応に、上述のマシン実行可能な指令を含むプログラムプロダクトを記録する記憶媒体も本開示に含まれる。また、このような記憶媒体は、フロッピーディスク、光ディスク、光磁気ディスク、メモリカード、メモリスティックなどを含むが、これらに限定されない。
【０１６２】
また、本開示の他の側面によれば、ブロックチェーン中で情報処理タスクの検証を行う方法700が提供される。本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う方法700は、上述の複数のエンティティが協働して情報処理を行う方法により得られた第二の結果に基づいて、ブロックチェーン中で情報処理タスクの検証を行う。なお、以下、説明の便宜のため、上述の複数のエンティティが協働して情報処理を行う方法により得られた第二の結果を用いて方法700を説明するが、当業者が理解すべきは、本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う方法700は、汎用ブロックチェーン技術中の裏書き結果に基づいて、ブロックチェーン中で情報処理タスクの検証を行うこともできる。
【０１６３】
図7に基づいて、本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う方法700の例示的なフローチャートを説明する。図7は、本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う方法700の例示的なフローチャートである。
【０１６４】
本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う方法700は、S701でスタートする。
【０１６５】
]判断ステップS702では、ブロックチェーン中の各ノード上で、第二の結果及びノードのキーバリュー型データベースに基づいて、情報処理タスクが有効であるかに関する判断を行うことができる。
【０１６６】
一例として、複数のエンティティが協働して情報処理を行う方法200を説明したときに記載のように、候補実行ノードが情報処理タスクを実行した後に返した結果のうちから第二の結果を選択することができる。
【０１６７】
各ノードのキーバリュー型データベースには、各情報処理タスクの状態情報が格納されている。
【０１６８】
本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う方法700では、ブロックチェーン中の各ノード上で情報処理タスクに対して検証を行うときに、第二の結果及びノードのキーバリュー型データベースに基づいて、情報処理タスクが有効であるかに関する判断を行う。
【０１６９】
本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う方法700は、S703でエンドする。
【０１７０】
上述によれば、本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う方法700では、第二の結果及びノードのキーバリュー型データベースに基づいて、情報処理タスクが有効であるかに関する判断を行い、よって、情報処理タスクの検証の正確率を向上させることができる。
【０１７１】
好ましくは、第二の結果中のリード集合バージョンと、ノードのキーバリュー型データベースからのリード集合バージョンとが不一致した場合、情報処理タスクのリード・キーとライト・キーの間の関係を分析し；情報処理タスクのリード・キーとライト・キーとの間に関係がある場合、情報処理タスクが無効であると判断し、また、情報処理タスクのリード・キーとライト・キーとの間に関係が無い場合、情報処理タスクが有効であると判断する。
【０１７２】
コンソーシアムチェーンでは、図4中の(4)に示すように、台帳検証を行う。即ち、各ノードが取引ブロックを受け取ったときに、ノードは、該ブロック中の全ての取引の有効性を検証でき、取引が有効の場合、該取引について、取引のキー状態がデータベースに保存され得る。言い換えると、各ノードのキーバリュー型データベースには、各取引の状態情報を記憶している。
【０１７３】
以下、コンソーシアムチェーン中での情報処理タスク（取引）の検証を例として、本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う方法700を説明する。コンソーシアムチェーンでは、本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う方法700は、第二の結果（裏書き結果）中のリード集合のバージョン番号と、ノードのキーバリュー型データベースからのリード集合のバージョン番号とに基づいて台帳検証を行う。図8は、本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う方法700の一例のフローチャートである。
【０１７４】
リード集合とライト集合は、それぞれ、複数の、キー、バージョン番号、及びキー値からなる組合を含んでも良い。以下、説明の便宜のため、リード集合とライト集合がともに１つの、キー、バージョン番号、及びキー値からなる組合を含むとする。よって、リード集合とライト集合は、それぞれ、read(key，version，value)及びwrite(key，version，value)と定義され、そのうち、keyは、キーを示し、versionは、バージョン番号を示し、valueは、キー値を表す。
【０１７５】
図8に示すように、4つの取引tx：T1、T2、T3、T4が存在する。第二の結果（裏書き結果）に含まれるリード集合がread(k1，ver1，v1)、read(k2，ver1，v2)、read(k3，ver1，v3)、read(k4，ver1，v4)であるとする。
【０１７６】
図8中の並べ替えサービングは、図4中の並べ替えサービングの機能と同じである。即ち、並べ替えサービングは、コンセンサスアルゴリズムに基づいて取引を並べ替え、その後、若干個の取引をブロックにパッキングし、そして、ブロックをチェーンに追加する。
【０１７７】
図8に示されている、各ノード上で行われる台帳検証段階では、ステップS801において、第二の結果中のリード集合バージョンと、ノードのキーバリュー型データベースからのリード集合バージョンとが一致するかを判断する。
【０１７８】
図8に示されている、以下のリード集合のバージョン番号がノード中のキーバリュー型データベース（図8に示されているキーバリュー型データベース）からであるとする。
【０１７９】
T1  ->  write(k1，ver2，v1’)，write(k2，ver2，v2’)
T2  ->  read(k1，ver2，v1’)，write(k3，ver2，v3’)
T3  ->  write(k2，ver3，v2’’)
T4  ->  read(k4，ver1，v4)，write(k4，ver2，v4’)
ステップS801では、第二の結果中のリード集合バージョンと、ノードのキーバリュー型データベースからのリード集合バージョンとが一致しており、又は、取引にいずれのリード集合も含まれないと判断された場合、取引が有効と判断される。有効な取引について、各ノードは、その裏書き結果を自分のデータベースに反映することができる。
【０１８０】
ステップS801では、第二の結果中のリード集合バージョンと、ノードのキーバリュー型データベースからのリード集合バージョンとが一致しないと判断された場合、ステップS802では、１つの取引に含まれるリード・キーとライト・キーの間の関係を分析する。取引のリード・キーとライト・キーとの間に関係がある場合、取引が無効と判断され、取引のリード・キーとライト・キーとの間に関係がない場合、取引が有効と判断される。
【０１８１】
例えば、取引T2の第二の結果（裏書き結果）のリード集合がread(k1，ver1，v1)であるとする。図8では、取引T2には、裏書き結果read(k1，ver1，v1)中のバージョン番号ver1がノードのキーバリュー型データベース中のread(k1，ver2，v1’)中のバージョン番号ver2とは異なるので、取引T2に含まれるリード・キーk1とライト・キーk3の間の関係を分析する必要がある。
【０１８２】
もし、k3とk1との間に依存関係があれば、k3の値がk1の値に基づいて計算され、例えば、v3’=v1+1である。この場合、リード・キーk1のバージョン番号がver2に更新されており、その後、k1の値がv1’に更新されているので、v3’=v1+1のような計算は、誤ったものであり、何故なら、v1がv1’に変更されているからである。よって、この場合、取引T2は、無効である。
【０１８３】
従来のブロックチェーンでは、ライト・キー値とリード・キー値との間の関係の分析が行わなかった。よって、裏書き結果と、ノードのキーバリュー型データベース中のリード・キー値バージョンとが不一致した場合、取引検証の失敗を引き起こしやすい。これに対して、上述によれば、本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う方法700では、第二の結果中のリード集合バージョンと、ノードのキーバリュー型データベースからのリード集合バージョンとが不一致した場合、情報処理タスクのリード・キーとライト・キーとの間の関係を分析することで、情報処理タスクの検証の正確率をより一層向上させることができる。
【０１８４】
好ましくは、静的コード解析に基づいて、情報処理タスクのリード・キーとライト・キーとの間の関係に対して分析を行う。
【０１８５】
ブロックチェーンでは、シングル（単一）取引中のリード・キーとライト・キーとの間の関係の分析が非常に困難である。本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う方法700では、静的コード分析技術を用いてこのような問題を解決することができる。図9は、本開示の実施例において静的コード解析に基づいて情報処理タスクのリード・キーとライト・キーとの間の関係に対して分析を行う例を示す図である。
【０１８６】
本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う方法700では、図9に示すように、静的コード分析に基づいて、各取引のために構文木を生成する。生成された構文木に基づいて、リード・キー（Read  key）とライト・キー（Write  key）との間のトポロジー構造を分析する。各取引のライト・キーについて、各ライト・キーと各リード・キーとの関係を分析する。図8に示す取引T2を例とし、ライト・キー値の計算プロセスを追跡し、例えば、k3のキー値v3’の計算プロセスを追跡する。
【０１８７】
もし、v3’がk1のリード・キー値に応じて計算されるものであれば、k3とk1との間に依存関係があり、この場合、T2は、無効である。
【０１８８】
もし、v3’がk1のリード・キー値に応じて計算されるものでなければ、k3とk1との間に依存関係が無い、この場合、T2は、有効である。
【０１８９】
また、上述のブロックチェーン中で情報処理タスクの検証を行う方法の実施例に対応して、本開示は、さらに、以下のように、ブロックチェーン中で情報処理タスクの検証を行う装置1000の実施例を提供する。
【０１９０】
図10は、本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う装置1000の機能ブロック図である。
【０１９１】
図10に示すように、本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う装置1000は、判断ユニット1002を含む。以下、判断ユニット1002の機能構成例について説明する。
【０１９２】
判断ユニット1002では、ブロックチェーン中の各ノード上で、第二の結果及びノードのキーバリュー型データベースに基づいて、情報処理タスクが有効であるかに関する判断を行うことができる。
【０１９３】
一例として、複数のエンティティが協働して情報処理を行う方法200を説明したときに記載のように、候補実行ノードが情報処理タスクを実行した後に返した結果のうちから第二の結果を選択することができる。
【０１９４】
各ノードのキーバリュー型データベースには、各情報処理タスクの状態情報が記録されている。
【０１９５】
本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う装置1000では、ブロックチェーン中の各ノード上で情報処理タスクに対して検証を行うときに、第二の結果及びノードのキーバリュー型データベースに基づいて、情報処理タスクが有効であるかに関する判断を行う。
【０１９６】
上述によれば、本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う装置1000では、第二の結果及びノードのキーバリュー型データベースに基づいて、情報処理タスクが有効であるかに関する判断を行うことにより、情報処理タスクの検証の正確率を向上させることができる。
【０１９７】
好ましくは、第二の結果中のリード集合バージョンと、ノードのキーバリュー型データベースからのリード集合バージョンとが不一致の場合、情報処理タスクのリード・キーとライト・キーとの間の関係を分析し；情報処理タスクのリード・キーとライト・キーとの間に関係がある場合、情報処理タスクが無効であると判断し、また、情報処理タスクのリード・キーとライト・キーとの間に関係が無い場合、情報処理タスクが有効であると判断する。
【０１９８】
情報処理タスクのリード・キーとライト・キーとの間の関係の分析については、上述のブロックチェーン中で情報処理タスクの検証を行う方法700の実施例中の対応する部分、例えば、図8についての説明を参照することができるので、ここでは、その詳しい記載を割愛する。
【０１９９】
上述によれば、本開示の実施例においてブロックチェーン中で情報処理タスクの検証を行う装置1000では、第二の結果中のリード集合バージョンと、ノードのキーバリュー型データベースからのリード集合バージョンとが不一致した場合、情報処理タスクのリード・キーとライト・キーとの間の関係を分析することにより、情報処理タスクの検証の正確率をより一層向上させることができる。
【０２００】
好ましくは、静的コード解析に基づいて、情報処理タスクのリード・キーとライト・キーとの間の関係に対して分析を行う。
【０２０１】
静的コード解析については、上述のブロックチェーン中で情報処理タスクの検証を行う方法700の実施例中の対応する部分、例えば、図9についての説明を参照することができるため、ここでは、その詳細な記載を省略する。
【０２０２】
なお、以上、ブロックチェーン中で情報処理タスクの検証を行う装置の構成を説明したが、これは、例示に過ぎず、即ち、当業者は、本開示の原理に基づいて、上述の実施例に対して変更や改良を行っても良いが、これらの変更や改良も、本開示の技術的範囲に属する。
【０２０３】
また、ここでの装置の実施例は、上述の方法の実施例に対応するので、装置の実施例で不記載の内容は、方法の実施例中の対応する部分の説明を参照することができる。
【０２０４】
さらに、本開示は、記憶媒体及びプログラムプロダクトを提供する。本開示の実施例による記憶媒体及びプログラムプロダクト中のマシン実行可能な指令は、上述のブロックチェーン中で情報処理タスクの検証を行う方法を実行するように構成されても良い。よって、ここで不記載の内容は、上述の対応する部分の説明を参照することができる。
【０２０５】
それ相応に、上述のマシン実行可能な指令を含むプログラムプロダクトを記録する記憶媒体も本開示に含まれる。また、このような記憶媒体は、フロッピーディスク、光ディスク、光磁気ディスク、メモリカード、メモリスティックなどを含むが、これらに限定されない。
【０２０６】
また、上述の一連の処理や装置は、ソフトウェア、ファームウェア、ハードウェア又はその組み合わせにより構成されても良い。ソフトウェア又はファームウェアにより実現される場合、記憶媒体又はネットワークから、専用ハードウェア構造を持つコンピュータ（例えば、図11に示すような汎用コンピュータ1100）に、該ソフトウェアを構成するプログラムをインストールすることができ、また、該コンピュータは、各種のプログラムがインストールされているときに、各種の機能を実現することができる。
【０２０７】
図11では、中央処理装置（CPU）1101は、ROM  1102に記憶されているプログラム、又は、記憶部1108からRAM  1103にロードされているプログラムに基づいて、各種の処理を行う。RAM  1103には、必要に応じて、CPU  1101が各種の処理を実行するときに必要なデータを記憶しても良い。なお、CPU  1101、ROM  1102及びRAM  1103は、バス1104を経由して接続される。また、入力／出力インターフェース1105も、バス1104に接続される。
【０２０８】
次のような部品は、入力／出力インターフェース1105に接続され、即ち、入力部1106（キーボード、マウスなどを含む）、出力部1107（表示器、例えば、CRT、LCDなど、及びスピーカーなどを含む）、記憶部1108（ハードディスクなどを含む）、及び通信部1109（ネットワーク・インターフェース・カード、例えば、LANカード、モデムなどを含む）というような部品である。通信部1109は、ネットワーク、例えば、インターネットを経由して通信処理を行う。なお、必要に応じて、ドライブ1110を入力／出力インターフェース1105に接続させても良い。取り外し可能な媒体1111、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体記憶器などは、必要に応じて、ドライブ1110にセットされ、その中から読み出されたコンピュータプログラムが必要に応じて記憶部1108にインスタールされるようにさせることができる。
【０２０９】
ソフトウェアにより上述の一連の処理を実現する場合、ネットワーク、例えば、インターネット、又は記憶媒体、例えば、取り外し可能な媒体1111から、ソフトウェアを構成するプログラムをインストールすることができる。
【０２１０】
なお、当業者が理解すべきは、このような記憶媒体は、図11に示すような取り外し可能な1111に限定されない。取り外し可能な媒体1111は、例えば、磁気ディスク（フロッピーディスク（登録商標）を含む）、ディスク（CD-ROM及びDVDを含む）、光磁気ディスク（MD（登録商標）を含む）、及び半導体記憶器を含む。或いは、記憶媒体は、ROM  1102、記憶部1108中のハードディスクなどであっても良い。
【０２１１】
また、以上の実施例などに関し、さらに以下のように付記を開示する。
【０２１２】
（付記1）
複数のエンティティが協働して情報処理を行う方法であって、
第一の複数のエンティティに特定の情報処理タスクを提出する第一提出ステップ；
前記第一の複数のエンティティが前記特定の情報処理タスクを実行することにより得られた情報処理結果に対して安全性分析を行い、また、安全性分析の結果に基づいて、前記特定の情報処理タスクの更新の処理方式を確定する安全性分析ステップ；及び
確定された前記更新の処理方式に基づいて、第二の複数のエンティティに前記特定の情報処理タスクを提出し、また、前記第二の複数のエンティティが前記特定の情報処理タスクを実行した後の情報処理結果を取得する第二提出ステップを含み、
前記第二の複数のエンティティのうちの各エンティティ及び前記第一の複数のエンティティのうちの各エンティティには、ともに、前記特定の情報処理タスクに関連する同じ情報が記憶されており、前記情報は、第二の複数のエンティティが前記特定の情報処理タスクを実行した後の情報処理結果に基づいて更新される、方法。
【０２１３】
（付記2）
付記1に記載の方法であって、
前記特定の情報処理タスクは、ブロックチェーンに関連する情報処理タスクであり、前記第一の複数のエンティティ及び前記第二の複数のエンティティは、ブロックチェーンに関与する実行ノードであり、
前記第一提出ステップは、所定のポリシーに基づいて、前記ブロックチェーン中の第一の複数の実行ノードに前記情報処理タスクを提出することを含み、前記第一の複数のエンティティは、前記第一の複数の実行ノードに対応し、
前記安全性分析ステップ及び前記第二提出ステップは、
前記第一の複数の実行ノードが返した前記情報処理タスクの実行結果を受け取り；
所定のルールに基づいて、受け取った結果のうちから少なくとも一部を第一の結果として選択し；及び
前記第一の結果に基づいて行われた情報処理タスクの安全性分析によって第二の結果を取得し、また、前記第二の結果に関連する候補実行ノードリストをブロックチェーン中の情報処理タスクのための最終実行ノードリストとすることを含む、方法。
【０２１４】
（付記3）
付記2に記載の方法であって、
前記情報処理タスクの安全性分析によって前記第二の結果を得ることは、
前記情報処理タスクがリスク有り情報処理タスクであると確定された場合、前記所定のポリシーを動的に、実行ノードの信用度への要求がより厳しいポリシーに変更して、前記更新の処理方式とし；
変更後のポリシーに基づいて、前記ブロックチェーン中の第二の複数の実行ノードに前記情報処理タスクを提出し、前記第二の複数のエンティティは、前記第二の複数の実行ノードに対応し；及び
前記第二の複数の実行ノードが返した前記情報処理タスクの実行結果を受け取り、また、前記所定の規則に基づいて、前記第二の複数の実行ノードから受け取った結果のうちから少なくとも一部を前記第二の結果として選択することを含む、方法。
【０２１５】
（付記4）
付記3に記載の方法であって、
前記情報処理タスクの操作リスクスコア、及び、前記情報処理タスクを提出するノードのリスクスコアに基づいて、前記情報処理タスクのリスクスコアを計算し、これにより、前記情報処理タスクがリスク有り情報処理タスクであるかを確定する、方法。
【０２１６】
（付記5）
付記4に記載の方法であって、
実行ノードの役割の権限リスクスコアをさらに用いて、前記情報処理タスクのリスクスコアを計算する、方法。
【０２１７】
（付記6）
付記4に記載の方法であって、
以下のステップにより前記変更後のポリシーを生成し、即ち、
前記情報処理タスクのリスクスコアに対応する前記情報処理タスクのリスク等級に基づいて、前記候補実行ノードリストの生成に必要な候補組織的ノードの総数及び実行ノードの総数を計算し、各組織的ノードは、複数のノードを含み；
各候補組織的ノードの組織信用スコア及び前記候補組織的ノードの全体信用スコアに基づいて、各候補組織的ノードが前記候補実行ノードリスト生成時に占める重みを計算し；
各候補組織的ノードの重み及び前記実行ノードの総数に基づいて、各候補組織的ノード中の、前記候補実行ノードリストの生成に必要なの実行ノードの数を計算し；及び
各候補組織的ノード中の、前記候補実行ノードリストの生成に必要な実行ノードの数に基づいて、前記変更後のポリシーを生成するステップである、方法。
【０２１８】
（付記7）
付記2に記載の方法であって、
前記所定の規則に基づいて、受け取った結果のうちから前記第一の結果を選択することは、
受け取った結果のうちから、以下の同じリード及びライト集合を前記第一の結果として選択し、即ち、前記同じリード及びライト集合の数がリード及びライト集合の総数に占める比が最も高く、且つ前記最も高い比が所定の値よりも高いものである、方法。
【０２１９】
（付記8）
付記7に記載の方法であって、
受け取った結果中の、前記第一の結果中のリード及びライト集合とは異なるリード及びライト集合を、誤った結果とし、及び
前記誤った結果を返した実行ノードをバッドノードと判断する、方法。
【０２２０】
（付記9）
付記2に記載の方法であって、
前記情報処理タスクの安全性分析により、前記情報処理タスクがリスク有り情報処理タスクでないと判断された場合、前記第一の結果を前記第二の結果とし、また、前記複数の第一ノードを前記最終実行ノードリストとする、方法。
【０２２１】
（付記10）
複数のエンティティが協働して情報処理を行う装置であって、
第一の複数のエンティティに特定の情報処理タスクを提出する第一提出ユニット；
前記第一の複数のエンティティが前記特定の情報処理タスクを実行して得た情報処理結果に対して安全性分析を行い、また、前記安全性分析の結果に基づいて、前記特定の情報処理タスクの更新の処理方式を確定する安全性分析ユニット；及び
確定された前記更新の処理方式に基づいて、第二の複数のエンティティに前記特定の情報処理タスクを提出し、また、前記第二の複数のエンティティが前記特定の情報処理タスクを実行して得た情報処理結果を取得する第二提出ユニットを含み、
前記第二の複数のエンティティのうちの各エンティティ及び前記第一の複数のエンティティのうちの各エンティティには、ともに、前記特定の情報処理タスクに関連する同じ情報が記憶されており、前記情報は、第二の複数のエンティティが前記特定の情報処理タスクを実行した情報処理結果に基づいて更新される、装置。
【０２２２】
（付記11）
付記10に記載の装置であって、
前記特定の情報処理タスクは、ブロックチェーンに関連する情報処理タスクであり、前記第一の複数のエンティティ及び前記第二の複数のエンティティは、ブロックチェーンに関与する実行ノードであり、
前記第一提出ユニットは、さらに、情報処理タスク提出ユニット中の処理を行い、前記安全性分析ユニット及び前記第二提出ユニットは、さらに、実行結果受け取りユニット、第一結果選択ユニット及び第二結果取得ユニット中の処理を行い、
前記情報処理タスク提出ユニットは、所定のポリシーに基づいて、前記ブロックチェーン中の第一の複数の実行ノードに前記情報処理タスクを提出し、前記第一の複数のエンティティは、前記第一の複数の実行ノードに対応し、
前記結果受け取りユニットは、前記第一の複数の実行ノードが返した前記情報処理タスクの実行結果を受け取り、
前記第一結果選択ユニットは、所定のルールに基づいて、受け取った結果のうちから少なくとも一部を第一の結果として選択し、
前記第二結果取得ユニットは、前記第一の結果に基づいて行われた情報処理タスクの安全性分析によって第二の結果を取得し、また、前記第二の結果に関連する候補実行ノードリストをブロックチェーン中の情報処理タスクのための最終実行ノードリストとする、装置。
【０２２３】
（付記12）
付記11に記載の装置であって、
前記第二結果取得ユニットは、さらに、以下の処理により前記第二の結果を取得し、即ち、
前記情報処理タスクがリスク有り情報処理タスクであると確定された場合、前記所定のポリシーを動的に、実行ノードの信用度への要求がより厳しいポリシーに変更して、前記更新の処理方式とし；
変更後のポリシーに基づいて、前記ブロックチェーン中の第二の複数の実行ノードに前記情報処理タスクを提出し、前記複数の第二エンティティは、前記第二の複数の実行ノードに対応し；及び
前記第二の複数の実行ノードが返した前記情報処理タスクの実行結果を受け取り、また、前記所定の規則に基づいて、前記第二の複数の実行ノードから受け取った結果のうちから少なくとも一部を前記第二の結果として選択する処理である、装置。
【０２２４】
（付記13）
付記12に記載の装置であって、
前記第二結果取得ユニットは、さらに、前記情報処理タスクの操作リスクスコア及び前記情報処理タスクを提出するノードのリスクスコアに基づいて前記情報処理タスクのリスクスコアを計算し、これにより、前記情報処理タスクがリスク有り情報処理タスクであるかを確定する、装置。
【０２２５】
（付記14）
付記13に記載の装置であって、
前記第二結果取得ユニットは、実行ノードの役割の権限リスクスコアにさらに用いて、前記情報処理タスクのリスクスコアを計算する、装置。
【０２２６】
（付記15）
付記13に記載の装置であって、
前記第二結果取得ユニットは、さらに、以下の処理により前記変更後のポリシーを生成し、即ち、
前記情報処理タスクのリスクスコアに対応する前記情報処理タスクのリスク等級に基づいて、前記候補実行ノードリストの生成に必要な候補組織的ノードの総数及び実行ノードの総数を計算し、各組織的ノードは、複数のノードを含み；
各候補組織的ノードの組織信用スコア及び前記候補組織的ノードの全体信用スコアに基づいて、各候補組織的ノードが前記候補実行ノードリスト生成時に占める重みを計算し；
各候補組織的ノードの重み及び前記実行ノードの総数に基づいて、各候補組織的ノード中の、前記候補実行ノードリストの生成に必要な実行ノードの数を計算し；及び
各候補組織的ノード中の、前記候補実行ノードリストの生成に必要な実行ノードの数に基づいて、記変更後のポリシーを生成する処理である、装置。
【０２２７】
（付記16）
付記11に記載の装置であって、
前記第一結果選択ユニットは、さらに、以下の処理で前記第一の結果を選択し、即ち、
受け取った結果のうちから、同じリード及びライト集合であって、前記同じリード及びライト集合の数がリード及びライト集合の総数に占める比が最も高く、且つ前記最も高い比が所定の値よりも高いものを前記第一の結果として選択する処理である、装置。
【０２２８】
（付記17）
付記16に記載の装置であって、
前記第一結果選択ユニットは、さらに、
受け取った結果中の、前記第一の結果中のリード及びライト集合とは異なるリード及びライト集合を、誤った結果とし、及び
前記誤った結果を返した実行ノードをバッドノードと判断する、装置。
【０２２９】
（付記18）
付記11に記載の装置であって、
前記第二結果取得ユニットは、さらに、前記情報処理タスクの安全性分析によって、前記情報処理タスクがリスク有り情報処理タスクでないと確定された場合、前記第一の結果を前記第二の結果とし、前記複数の第一ノードを前記最終実行ノードリストとする、装置。
【０２３０】
（付記19）
付記2〜9の中の任意の一項に記載の方法により得られた第二の結果に基づいて、ブロックチェーン中で情報処理タスクの検証を行う方法であって、
前記ブロックチェーン中の各ノード上で、前記第二の結果及び前記ノードのキーバリュー型データベースに基づいて、前記情報処理タスクが有効であるかの判断を行う、方法。
【０２３１】
（付記20）
付記19に記載の方法であって、
前記第二の結果中のリード集合バージョンと、前記ノードのキーバリュー型データベースからのリード集合バージョンとが不一致した場合、前記情報処理タスクのリード・キーとライト・キーとの間の関係を分析し、
前記情報処理タスクのリード・キーとライト・キーとの間に関係がある場合、前記情報処理タスクが無効であると判断し、
前記情報処理タスクのリード・キーとライト・キーとの間に関係が無い場合、前記情報処理タスクが有効であると判断する、方法。
【０２３２】
以上、本発明の好ましい実施形態を説明したが、本発明はこの実施形態に限定されず、本発明の趣旨を離脱しない限り、本発明に対するあらゆる変更は、本発明の技術的範囲に属する。
【図１】
2020013542.tif 000013
【図２】
2020013542.tif 000014
【図３】
2020013542.tif 000015
【図４】
2020013542.tif 000016
【図５】
2020013542.tif 000017
【図６】
2020013542.tif 000018
【図７】
2020013542.tif 000019
【図８】
2020013542.tif 000020
【図９】
2020013542.tif 000021
【図１０】
2020013542.tif 000022
【図１１】
2020013542.tif 000023