(57)【特許請求の範囲】
【請求項１】
サービス要求を処理するための方法であって、
コンセンサスノードによって、ターゲットサービスに対応するサービス要求を受信するステップであって、前記サービス要求が前記ターゲットサービスのサービスデータおよび前記サービスデータのダイジェストを含む、ステップと、
前記コンセンサスノードによって、前記サービスデータおよび前記ダイジェストに基づいて前記サービス要求についてのコンセンサス検証を実施するステップと、
前記コンセンサスノードによって、前記サービス要求が前記コンセンサス検証をパスしたとの判定に応答して、ブロックチェーンの中に前記ダイジェストを記憶するステップと
を含み、
前記コンセンサスノードによって、少なくとも1つのサービスノードに対応するプライベートデータベースに前記サービスノードが前記サービスデータを記憶するように、前記サービスノードに前記サービスデータを送信するステップか、
前記コンセンサスノードによって、少なくとも1つのサービスノードに対応するプライベートデータベースに前記サービスノードが前記サービスデータを記憶するように、前記サービスノードに記憶命令を送信するステップか、または
前記コンセンサスノードによって、サービスノードに対応するプライベートデータベースに前記サービスノードが前記サービスデータを記憶するように、前記ターゲットサービスを開始した前記サービスノードに肯定応答命令を送信するステップ、および別のサービスノードに対応するプライベートデータベースに前記別のサービスノードが前記サービスデータを記憶するように、前記別のサービスノードに前記サービスデータを送信するステップ
を含み、
前記サービスノードが前記ターゲットサービスに参加しているブロックチェーンノードである、方法。
【請求項２】
サービス要求を処理するための方法であって、
コンセンサスノードによって、ターゲットサービスに対応するサービス要求を受信するステップであって、前記サービス要求が前記ターゲットサービスのサービスデータおよび前記サービスデータのダイジェストを含む、ステップと、
前記コンセンサスノードによって、前記サービスデータおよび前記ダイジェストに基づいて前記サービス要求についてのコンセンサス検証を実施するステップと、
前記コンセンサスノードによって、前記サービス要求が前記コンセンサス検証をパスしたとの判定に応答してブロックチェーンの中に前記ダイジェストを記憶するように各非コンセンサスノードに命令するステップと
を含み、
前記コンセンサスノードによって、少なくとも1つのサービスノードに対応するプライベートデータベースに前記サービスノードが前記サービスデータを記憶するように、前記サービスノードに前記サービスデータを送信するステップか、
前記コンセンサスノードによって、少なくとも1つのサービスノードに対応するプライベートデータベースに前記サービスノードが前記サービスデータを記憶するように、前記サービスノードに記憶命令を送信するステップか、または
前記コンセンサスノードによって、サービスノードに対応するプライベートデータベースに前記サービスノードが前記サービスデータを記憶するように、前記ターゲットサービスを開始した前記サービスノードに肯定応答命令を送信するステップ、および別のサービスノードに対応するプライベートデータベースに前記別のサービスノードが前記サービスデータを記憶するように、前記別のサービスノードに前記サービスデータを送信するステップ
を含み、
前記サービスノードが前記ターゲットサービスに参加しているブロックチェーンノードである、方法。
【請求項３】
ブロックチェーンの中に前記ダイジェストを記憶するように各非コンセンサスノードに前記命令するステップが、
各非コンセンサスノードが前記ブロックチェーンの中に前記ダイジェストを記憶するように、各非コンセンサスノードに前記ダイジェストを送信するステップ
を含む、請求項2に記載の方法。
【請求項４】
サービス要求を処理するための装置であって、
ターゲットサービスに対応し、かつコンセンサスノードによって受信されるサービス要求を受信するように構成される受信モジュールであって、前記サービス要求が前記ターゲットサービスのサービスデータおよび前記サービスデータのダイジェストを含む、受信モジュールと、
前記サービスデータおよび前記ダイジェストに基づいて前記サービス要求についてのコンセンサス検証を実施するように構成されるコンセンサス検証モジュールと、
前記サービス要求が前記コンセンサス検証をパスしたとの判定に応答してブロックチェーンの中に前記ダイジェストを記憶するように構成される記憶モジュールと、
送信モジュールであって、前記サービス要求が前記コンセンサス検証をパスしたとの判定に応答して、
少なくとも1つのサービスノードに対応するプライベートデータベースに前記サービスノードが前記サービスデータを記憶するように、前記サービスノードに前記サービスデータを送信するか、
少なくとも1つのサービスノードに対応するプライベートデータベースに前記サービスノードが前記サービスデータを記憶するように、前記サービスノードに記憶命令を送信するか、または
サービスノードに対応するプライベートデータベースに前記サービスノードが前記サービスデータを記憶するように、前記ターゲットサービスを開始したサービスノードに肯定応答命令を送信し、かつ別のサービスノードに対応するプライベートデータベースに前記別のサービスノードが前記サービスデータを記憶するように、前記別のサービスノードに前記サービスデータを送信する
ように構成される、送信モジュールと
を備え、
前記サービスノードが前記ターゲットサービスに参加しているブロックチェーンノードである、装置。
【請求項５】
サービス要求を処理するための装置であって、
ターゲットサービスに対応するサービス要求を受信するように構成される受信モジュールであって、前記サービス要求が前記ターゲットサービスのサービスデータおよび前記サービスデータのダイジェストを含む、受信モジュールと、
前記サービスデータおよび前記ダイジェストに基づいて前記サービス要求についてのコンセンサス検証を実施するように構成されるコンセンサスモジュールと、
前記サービス要求が前記コンセンサス検証をパスしたとの判定に応答して、ブロックチェーンの中に前記ダイジェストを記憶するように各非コンセンサスノードに命令するように構成される、記憶モジュールと、
送信モジュールであって、
少なくとも1つのサービスノードに対応するプライベートデータベースに前記サービスノードが前記サービスデータを記憶するように、前記サービスノードに前記サービスデータを送信するか、
少なくとも1つのサービスノードに対応するプライベートデータベースに前記サービスノードが前記サービスデータを記憶するように、前記サービスノードに記憶命令を送信するか、または
サービスノードに対応するプライベートデータベースに前記サービスノードが前記サービスデータを記憶するように、前記ターゲットサービスを開始したサービスノードに肯定応答命令を送信し、かつ別のサービスノードに対応するプライベートデータベースに前記別のサービスノードが前記サービスデータを記憶するように、前記別のサービスノードに前記サービスデータを送信する
ように構成される、送信モジュールと
を備え、
前記サービスノードが前記ターゲットサービスに参加しているブロックチェーンノードである、装置。
【請求項６】
各非コンセンサスノードが前記ブロックチェーンの中に前記ダイジェストを記憶するように、前記記憶モジュールが各非コンセンサスノードに前記ダイジェストを送信する、請求項5に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、情報技術の分野に関し、詳細には、サービス要求を処理するための方法およびデバイスに関する。
【背景技術】
【０００２】
ブロックチェーンネットワークは、分散化および透明性によって特徴づけられる分散型台帳ネットワークとも呼ばれる。ブロックチェーンネットワークは、ブロックチェーンノードを含み、各ブロックチェーンノードは、ブロックチェーンを同期させるために使用される。
【０００３】
既存技術では、サービス要求を処理するための方法は以下の通りである。あるサービスに参加しているあるブロックチェーンノードが、ブロックチェーンネットワーク中の各コンセンサスノード(コンセンサス検証を担うブロックチェーンノード)にサービスのサービス要求をブロードキャストする。サービス要求は、サービスのサービスデータおよびサービスデータのダイジェストを含む。サービスデータは、サービスの詳細な情報(たとえば、サービスに参加しているブロックチェーンノードのプライベート情報)を含む。サービスデータのダイジェストは、サービスデータに基づいて生成され、サービスデータの信憑性を検証するために使用することができる。サービス要求が各コンセンサスノードにより実施されるコンセンサス検証をパスした後で、コンセンサスノードは、サービスデータを暗号化し、ブロックチェーン中に暗号化したサービスデータおよびダイジェストを記憶して、ブロックチェーンと同期されるときに、サービスに無関係なブロックチェーンノードが、サービスのサービスデータ中の何らかのプライベート情報を取得するのを防止する。
【０００４】
しかし、コンセンサス検証をパスした各サービス要求に含まれるサービスデータを各コンセンサスノードが暗号化した場合、各コンセンサスノードの計算負荷が大きく増加するだけでなく、各コンセンサスノードがサービス要求についてのコンセンサス検証を実施する効率も低下する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本出願の実装形態は、サービス要求を処理するための既存の方法において、各コンセンサスノードがサービス要求についてのコンセンサス検証を実施するとき比較的低い効率であるという問題を緩和するために、サービス要求を処理するための方法およびデバイスを提供する。
【課題を解決するための手段】
【０００６】
上の技術的問題を緩和するため、本出願の実装形態は、以下のように実装される。
【０００７】
本出願の実装形態は、サービス要求を処理するための方法を提供し、本方法は、ターゲットサービスに対応するサービス要求を受信するステップであって、サービス要求がターゲットサービスのサービスデータおよびサービスデータのダイジェストを含む、ステップと、サービスデータおよびダイジェストに基づいてサービス要求についてのコンセンサス検証を実施するステップと、サービス要求がコンセンサス検証をパスしたとの判定に応答してブロックチェーンの中にダイジェストを記憶するステップとを含む。
【０００８】
本出願の実装形態は、サービス要求を処理するための別の方法を提供し、本方法は、ターゲットサービスに対応するサービス要求をコンセンサスノードが受信するステップであって、サービス要求がターゲットサービスのサービスデータおよびサービスデータのダイジェストを含む、ステップと、サービスデータおよびダイジェストに基づいてサービス要求についてのコンセンサス検証を実施するステップと、サービス要求がコンセンサス検証をパスしたとの判定に応答してブロックチェーンの中にダイジェストを記憶するように各非コンセンサスノードに命令するステップとを含む。
【０００９】
本出願の実装形態は、サービス要求を処理するためのデバイスを提供し、本デバイスは、ターゲットサービスに対応するサービス要求を受信するように構成される受信モジュールであって、サービス要求がターゲットサービスのサービスデータおよびサービスデータのダイジェストを含む、受信モジュールと、サービスデータおよびダイジェストに基づいてサービス要求についてのコンセンサス検証を実施するように構成されるコンセンサス検証モジュールと、サービス要求がコンセンサス検証をパスしたとの判定に応答してブロックチェーンの中にダイジェストを記憶するように構成される記憶モジュールとを含む。
【００１０】
本出願の実装形態は、サービス要求を処理するためのデバイスを提供し、本デバイスは、ターゲットサービスに対応するサービス要求を受信するように構成される受信モジュールであって、サービス要求がターゲットサービスのサービスデータおよびサービスデータのダイジェストを含む、受信モジュールと、サービスデータおよびダイジェストに基づいてサービス要求についてのコンセンサス検証を実施するように構成されるコンセンサスモジュールと、サービス要求がコンセンサス検証をパスしたとの判定に応答してブロックチェーンの中にダイジェストを記憶するように各非コンセンサスノードに命令するように構成される記憶モジュールとを含む。
【００１１】
本出願の実装形態に提供される技術的解決策から、本出願の実装形態では、サービスデータがブロックチェーンの中に記憶されることの代わりに、サービス要求がコンセンサス検証をパスしたとの判定に応答して、各コンセンサスノードがブロックチェーンの中にサービスデータのダイジェストを記憶することがわかる。そのため、サービスデータのダイジェストが信頼できるブロックチェーンの中に記憶され、サービスデータの信憑性を依然として検証することができる。加えて、ターゲットサービスに無関係なブロックチェーンノードがサービスデータを取得できないように、サービスデータは、ブロックチェーンの中に記憶されない。したがって、各コンセンサスノードは、もはや、サービスデータを暗号化するために計算リソースを消費する必要がなく、それにより各コンセンサスノードが、サービス要求についてのコンセンサス検証を実施する効率が改善される。
【００１２】
本出願の実装形態中、または既存技術中の技術的解決策をより明瞭に記載するため、以下では、実装形態または既存技術を記載するために必要な添付図面を簡単に記載する。明らかに、以下の記載における添付図面は、本出願のいくつかの実装形態を単に示しており、当業者なら、創造的な努力なしに、これらの添付図面から他の図面をさらに導くことができる。
【図面の簡単な説明】
【００１３】
【図１】本出願の実装形態にしたがうサービス要求を処理するための方法を図示するフローチャートである。
【図２】本出願の実装形態にしたがうサービス要求を処理するための別の方法を図示するフローチャートである。
【図３】本出願の実装形態にしたがうブロックチェーンシステムを図示する概略図である。
【図４】本出願の実装形態にしたがうサービス要求を処理するためのデバイスを図示する概略図である。
【図５】本出願の実装形態にしたがうサービス要求を処理するための別のデバイスを図示する概略図である。
【発明を実施するための形態】
【００１４】
本出願の実装形態は、サービス要求を処理するための方法およびデバイスを提供する。
【００１５】
本出願における技術的解決策を当業者により良好に理解させるため、以下では、本出願の実装形態における添付図面を参照して、本出願の実装形態中の技術的解決策を明瞭で包括的に記載する。明らかに、記載される実装形態は、本出願の実装形態の単なる一部ではあるが全部ではない。創造的な努力なしに本出願の実装形態に基づいて当業者が取得したすべての他の実装形態は、本出願の保護範囲内に入るものとする。
【００１６】
本出願の実装形態で提供される技術的解決策は、添付図面を参照して下で詳細に記載される。
【００１７】
図1は、本出願の実装形態にしたがうサービス要求を処理するための方法を図示するフローチャートである。サービス要求を処理するための方法は、以下のステップを含む。
【００１８】
S101：ターゲットサービスに対応するサービス要求を受信する。
【００１９】
本方法は、コンセンサスノードが実行することができる。ブロックチェーンネットワークでは、各コンセンサスノードは、コンセンサス検証を担うブロックチェーンノードである。ターゲットサービスでは、ターゲットサービスに参加しているブロックチェーンノードがサービスノードである。サービスノードは、ターゲットサービス上のコンセンサス検証に参加するコンセンサスノードとして機能することができる。
【００２０】
結論として、本方法は、コンセンサス検証を担う少なくともコンセンサスノードによって実行され、コンセンサスノードは、さらにターゲットサービスに参加しているサービスノードとすることができる。これは本出願では限定されない。
【００２１】
コンセンサスノードは、(ターゲットサービスを開始したサービスノードとすることができる)あるサービスノードによってブロードキャストされたサービス要求を受信することができ、またはサービス要求を受信した後、(サービス要求のためのハンドリングノードである)別のコンセンサスノードによってさらにブロードキャストされたサービス要求を受信することができる。
【００２２】
コンセンサス検証に参加しているコンセンサスノードが異なる方法でサービス要求を受信できることに留意するのは有益である。いくつかのコンセンサスノードは、サービスノードによって送信されたサービス要求を直接受信するためのハンドリングノードとして機能することができ、いくつかのコンセンサスノードは、ハンドリングノードによってさらにブロードキャストされるサービス要求を受信することができる。あるいは、各コンセンサスノードは、サービスノードによってブロードキャストされたサービス要求を直接受信することができる。これは本出願では限定されない。
【００２３】
本出願のこの実装形態では、サービス要求は、ターゲットサービスのサービスデータおよびサービスデータのダイジェストを含む。
【００２４】
ターゲットサービスに対応するサービス要求とは、各コンセンサスノードに、ターゲットサービスのサービスデータおよびサービスデータのダイジェストについてのコンセンサス検証を実施するように、詳細にはサービスデータが改変されているか(サービスデータがダイジェストと一致するか)、改変されていないサービスデータが本物であり信頼できるか(たとえば、勘定残高が支払いに十分か、たとえば重複する出費が存在するか)を検証するように要求することである。
【００２５】
ブロックチェーン技術の分野では、ダイジェストはサービスデータに基づいて生成される文字列であり、ダイジェストはサービスデータの「データ指紋」として使用することができ、サービスデータとサービスデータのダイジェストは、互いに常に厳密に一致する。言い換えると、プレーンテキストのサービスデータは、ダイジェストに基づいて推測することができず、サービスデータのわずかな変更は、サービスデータに基づいて生成されるダイジェストに対応する変更をもたらす。サービスデータのダイジェストは、単方向性ハッシュ関数(たとえば、MD5またはSHA-1)に基づいて生成することができ、またはサービスデータがダイジェストに基づいて推測することができない限り、別の関数に基づいて生成することができる。
【００２６】
S102：サービス要求についてのコンセンサス検証を実施する。
【００２７】
S103：サービス要求がコンセンサス検証をパスしたとの判定に応答してブロックチェーンの中にダイジェストを記憶する。
【００２８】
本出願のこの実装形態では、各コンセンサスノードが、サービス要求を受信した後、サービス要求についてのコンセンサス検証を実施する。サービス要求がコンセンサス検証をパスした(言い換えると、サービスデータが改変されてなくサービスデータが本物であり信頼できる)との判定に応答して、各コンセンサスノードは、ブロックチェーンの中にサービスデータを記憶する代わりに、ブロックチェーンの中にサービス要求に含まれるダイジェストを記憶する。
【００２９】
本出願のこの実装形態では、各コンセンサスノードが、ブロックチェーンの中にサービスデータの検証されたダイジェストを記憶する。言い換えると、ブロックチェーンは、ターゲットサービスのサービスデータが本物であり信頼できると保証する。ターゲットサービスに無関係なブロックチェーンノードがサービスデータを見るのを防止するために、サービスデータはブロックチェーンの中に記憶されない。
【００３０】
あるサービスノードによって宣言されたサービスデータの信憑性を検証する必要があるとき、サービスノードによって宣言されたサービスデータからダイジェストを取得することができ、次いで取得したダイジェストがブロックチェーンの中に記憶したダイジェストと比較される。不一致である場合、サービスノードによって宣言されたサービスデータが信頼できないことを示す。そのようなメカニズムを使用して、ターゲットサービスが、各コンセンサスノードによって実施されたコンセンサス検証をパスし、ブロックチェーンに肯定応答された後に、サービスノードがターゲットサービスを拒否する場合を効果的に回避することができる。
【００３１】
図1に示されるサービス要求を処理するための方法に基づいて、本出願のこの実装形態では、サービスデータをブロックチェーンの中に記憶することの代わりに、サービス要求がコンセンサス検証をパスしたとの判定に応答して、各コンセンサスノードがブロックチェーンの中にサービスデータのダイジェストを記憶する。そのため、サービスデータのダイジェストが信頼できるブロックチェーンの中に記憶され、サービスデータの信憑性を依然として検証することができる。加えて、ターゲットサービスに無関係なブロックチェーンノードがサービスデータを取得できないように、サービスデータはブロックチェーンの中に記憶されない。したがって、各コンセンサスノードは、もはや、サービスデータを暗号化するために計算リソースを消費する必要がなく、それにより各コンセンサスノードがサービス要求についてのコンセンサス検証を実施する効率が改善される。
【００３２】
加えて、本出願のこの実装形態では、サービスデータはブロックチェーンの中に記憶されないが、各サービスノードが通常サービスデータに関係するため、各サービスノードは、各サービスノード自体のプライベートデータベースにサービスデータを単独で記憶することができる。各ブロックチェーンノードが各ブロックチェーンノード自体のプライベートデータベースを有することができること、またはブロックチェーンノードが1つのプライベートデータベースを共有できるが、各ブロックチェーンノードが各ブロックチェーンノードに関係するデータだけにアクセスできることに留意するのは有益である。そのため、サービスノードのプライベートデータベースに記憶されたサービスデータは、サービスノードが保存することができる。加えて、サービスデータは、ターゲットサービスに無関係なブロックチェーンノードには漏らされない(各ブロックチェーンノードは、ブロックチェーンに記憶された各ブロックチェーンノードのデータだけにアクセスするように許可されているが、別のブロックチェーンノードのプライベートデータベースにアクセスすることができない)。
【００３３】
確かに、ブロックチェーンノードのプライベートデータベースに記憶されるデータは、各コンセンサスノードが保証することができない。理論的には、ブロックチェーンノードは、ブロックチェーンノード自体のプライベートデータベースに記憶されたデータを自由に変更することができる。しかし、ブロックチェーンは、ターゲットサービスに対応するダイジェストを記憶する。この場合、(サービスノードを含む)任意のブロックチェーンノードによって擁護されるターゲットサービスのサービスデータは、サービスデータがブロックチェーンに記憶されたダイジェストと一致する場合にだけ、ターゲットサービスに参加しているすべての関係者が知ることができる。
【００３４】
本出願のこの実装形態では、サービス要求がコンセンサス検証をパスしたとの判定に応答して、サービスノードに記憶のためサービスデータを送信すること、またはサービスノードにサービスデータを記憶するように命令することを1つまたは複数のコンセンサスノードが担うことができる。コンセンサスノードは本方法の実行体であるが、各コンセンサスノードの代わりにこの仕事を行うことができる。
【００３５】
具体的に言えば、サービス要求がコンセンサス検証をパスしたとの判定に応答して、サービスノードに対応するプライベートデータベースにサービスノードがサービスデータを記憶するように、コンセンサスノードが、少なくとも1つのサービスノードにサービスデータを送信することができる。
【００３６】
または、サービスノードに対応するプライベートデータベースにサービスノードがサービスデータを記憶するように、コンセンサスノードが、少なくとも1つのサービスノードに記憶命令を送信することができる。
【００３７】
または、サービスノードに対応するプライベートデータベースにサービスノードがサービスデータを記憶するように、コンセンサスノードが、ターゲットサービスを開始したサービスノードに肯定応答命令を送信すること、および別のサービスノードに対応するプライベートデータベースに別のサービスノードがサービスデータを記憶するように、別のサービスノードにサービスデータを送信することができる。
【００３８】
ターゲットサービスを開始したサービスノードが事前に別のサービスノードにサービスデータをブロードキャストできるため、コンセンサスノードは、サービスノードにサービスデータを送信する必要がないこともあるが、記憶通知命令または肯定応答命令を送信する必要だけはある。
【００３９】
結論として、サービス要求がコンセンサス検証をパスしたとの判定に応答して、各サービスノードが、この情報を学ぶこと、およびサービスデータを単独で記憶するように選択することができる。本出願は、特定の実装形態に限定しない。
【００４０】
図2は、本出願の実装形態にしたがうサービス要求を処理するための別の方法を図示するフローチャートである。サービス要求を処理するための方法は、以下のステップを含む。
【００４１】
S201：コンセンサスノードがターゲットサービスに対応するサービス要求を受信する。ここで、サービス要求は、ターゲットサービスのサービスデータおよびサービスデータのダイジェストを含む。
【００４２】
S202：サービスデータおよびダイジェストに基づいてサービス要求についてのコンセンサス検証を実施する。
【００４３】
S203：サービス要求がコンセンサス検証をパスしたとの判定に応答して、ブロックチェーンの中にダイジェストを記憶するように各非コンセンサスノードに命令する。
【００４４】
本出願のこの実装形態では、コンセンサスノードは、コンセンサス検証だけを担うことができ、ターゲットサービスに参加するサービスノードとして機能しない。非コンセンサスノードは、コンセンサス検証に参加することができず、ターゲットサービスに参加するためのサービスノードとしてだけ機能することができる。
【００４５】
本出願のこの実装形態では、コンセンサスノードは、ブロックチェーンを保守しない場合があり、サービス要求についてのコンセンサス検証を実施することだけを担う。非コンセンサスノードがブロックチェーンを保守して、ブロックチェーンの中に、コンセンサス検証をパスしたサービス要求に含まれるデータを記憶する。
【００４６】
具体的には、サービス要求がコンセンサス検証をパスしたとの判定に応答して、コンセンサスノードは、各非コンセンサスノードに、ブロックチェーンの中にダイジェストを記憶するよう命令する。
【００４７】
ターゲットサービスを開始した非コンセンサスノードによってブロードキャストされたダイジェストが、コンセンサス検証の前に各非コンセンサスノードによって受信された場合、非コンセンサスノードは、コンセンサスノードからの通知を受信した後に、ブロックチェーンの中にダイジェストを直接記憶することができる。
【００４８】
非コンセンサスノードがコンセンサス検証の前にダイジェストを取得しない場合、非コンセンサスノードがブロックチェーンの中にダイジェストを記憶するように、サービス要求がコンセンサス検証をパスした後にコンセンサスノードが非コンセンサスノードにダイジェストを送信することができる。
【００４９】
加えて、サービスノードに対応するプライベートデータベースの中にサービスノードがサービスデータを記憶するように、コンセンサスノードが、少なくとも1つのサービスノードにサービスデータをさらに送信することができる。
【００５０】
または、サービスノードに対応するプライベートデータベースにサービスノードがサービスデータを記憶するように、コンセンサスノードが、少なくとも1つのサービスノードに記憶命令を送信する。
【００５１】
または、サービスノードに対応するプライベートデータベースにサービスノードがサービスデータを記憶するように、コンセンサスノードが、ターゲットサービスを開始したサービスノードに肯定応答命令を送信すること、および別のサービスノードに対応するプライベートデータベースに別のサービスノードがサービスデータを記憶するように、別のサービスノードにサービスデータを送信することができる。
【００５２】
サービスノードはターゲットサービスに参加しているブロックチェーンノードであることに留意するのは有益である。
【００５３】
図3は、本出願の実装形態にしたがうブロックチェーンシステムを図示する概略図である。図3に示されるように、各コンセンサスノード(空白のノード)は、各非コンセンサスノード(影つきのノード)のために、コンセンサス検証サービスを提供することを担う。各非コンセンサスノードは、ブロックチェーンおよび非コンセンサスノード自体のプライベートデータベースの両方を保守する。
【００５４】
各コンセンサスノードは、以下の方法、すなわち受信したサービス要求に含まれるサービスデータおよびサービスデータのダイジェストにコンセンサス検証を実施するステップと、サービスノードがサービスデータを記憶するように(サービスノードがサービスデータを記憶しない場合がある)、サービス要求が検証をパスした後にブロックチェーンの中にダイジェストを記憶するステップとでコンセンサスサービスを提供する。
【００５５】
そのため、信頼できるコンセンサスネットワークは、各ターゲットサービスがコンセンサス検証をパスした保証を提供し、ブロックチェーンに記憶されたダイジェストに対応するターゲットサービスは、全ブロックチェーンネットワーク中の各ブロックチェーンノードにとって本物であり信頼できる。同じターゲットサービスに参加しているサービスノード間で争議が発生した場合、ターゲットサービスに対応しブロックチェーンに記憶されたダイジェストが、悪意のあるサービスノードの拒否を常に防止することができる。
【００５６】
図1に示されたサービス要求を処理するための方法に基づいて、本出願の実装形態は、サービス要求を処理するための対応するデバイスをさらに提供する。図4に示されるように、サービス要求を処理するためのデバイスは、受信モジュール401と、コンセンサス検証モジュール402と、記憶モジュール403とを含む。
【００５７】
受信モジュール401は、ターゲットサービスに対応するサービス要求を受信するように構成される。サービス要求は、ターゲットサービスのサービスデータおよびサービスデータのダイジェストを含む。
【００５８】
コンセンサス検証モジュール402は、サービスデータおよびダイジェストに基づいて、サービス要求についてのコンセンサス検証を実施するように構成される。
【００５９】
記憶モジュール403は、サービス要求がコンセンサス検証をパスしたとの判定に応答して、ブロックチェーンの中にダイジェストを記憶するように構成される。
【００６０】
デバイスは、サービス要求がコンセンサス検証をパスしたとの判定に応答して、サービスノードに対応するプライベートデータベースにサービスノードがサービスデータを記憶するように、少なくとも1つのサービスノードにサービスデータを送信する、またはサービスノードに対応するプライベートデータベースにサービスノードがサービスデータを記憶するように、少なくとも1つのサービスノードに記憶命令を送信する、またはサービスノードに対応するプライベートデータベースにサービスノードがサービスデータを記憶するように、ターゲットサービスを開始したサービスノードに肯定応答命令を送信する、および別のサービスノードに対応するプライベートデータベースに別のサービスノードがサービスデータを記憶するように、別のサービスノードにサービスデータを送信するように構成される送信モジュール404をさらに含む。
【００６１】
サービスノードは、ターゲットサービスに参加しているブロックチェーンノードである。
【００６２】
図2に示されたサービス要求を処理するための方法に基づいて、本出願の実装形態は、サービス要求を処理するための対応するデバイスをさらに提供する。図5に示されるように、サービス要求を処理するためのデバイスは、受信モジュール501と、コンセンサスモジュール502と、記憶モジュール503とを含む。
【００６３】
受信モジュール501は、ターゲットサービスに対応するサービス要求を受信するように構成される。サービス要求は、ターゲットサービスのサービスデータおよびサービスデータのダイジェストを含む。
【００６４】
コンセンサスモジュール502は、サービスデータおよびダイジェストに基づいて、サービス要求についてのコンセンサス検証を実施するように構成される。
【００６５】
記憶モジュール503は、サービス要求がコンセンサス検証をパスしたとの判定に応答して、ブロックチェーンの中にダイジェストを記憶するように各非コンセンサスノードに命令するように構成される。
【００６６】
記憶モジュール503は、非コンセンサスノードがブロックチェーンの中にダイジェストを記憶するように、各非コンセンサスノードにダイジェストを送信するように構成される。
【００６７】
デバイスは、サービスノードに対応するプライベートデータベースの中にサービスノードがサービスデータを記憶するように、少なくとも1つのサービスノードにサービスデータを送信する、またはサービスノードに対応するプライベートデータベースにサービスノードがサービスデータを記憶するように、少なくとも1つのサービスノードに記憶命令を送信する、またはサービスノードに対応するプライベートデータベースにサービスノードがサービスデータを記憶するように、ターゲットサービスを開始したサービスノードに肯定応答命令を送信する、および別のサービスノードに対応するプライベートデータベースに別のサービスノードがサービスデータを記憶するように、別のサービスノードにサービスデータを送信するように構成される送信モジュール504をさらに含む。
【００６８】
サービスノードは、ターゲットサービスに参加しているブロックチェーンノードである。
【００６９】
1990年代には、技術的改善がハードウェアの改善(たとえば、ダイオード、トランジスタ、またはスイッチなどといった回路構造に対する改善)か、ソフトウェアの改善(方法手順に対する改善)かは明瞭に区別することができる。しかし、技術が発展するにつれて、多くの方法手順に対する現在の改善は、ハードウェア回路構造に対する直接の改善と考えることができる。設計者は、通常改善した方法手順をハードウェア回路へとプログラムして、対応するハードウェア回路構造を取得する。したがって、方法手順は、ハードウェア実体モジュールを使用することによって改善することができる。たとえば、プログラマブル論理デバイス(PLD)(たとえば、フィールドプログラマブルゲートアレイ(FPGA))はそのような集積回路であり、PLDの論理機能は、デバイスプログラミングを介してユーザによって決定される。設計者は、チップ製造業者に特定用途向け集積回路チップの設計および製造を要求することなくPLDにデジタルシステムを「集積化」するようにプログラミングを実施する。加えて、現在では、集積回路チップを手動で製造する代わりに、このタイプのプログラミングは、主に「論理コンパイラ」ソフトウェアを使用することによって実装される。プログラミングは、プログラムを開発して書くために使用されるソフトウェアコンパイラと同様である。元のコードは、コンパイルのために、特定のプログラミング言語で書く必要がある。言語は、ハードウェア記述言語(HDL)と呼ばれる。Advanced Boolean Expression Language (ABEL)、Altera Hardware Description Language (AHDL)、Confluence、Cornell University Programming Language (CUPL)、HDCal、Java(登録商標) Hardware Description Language (JHDL)、Lava、Lola、MyHDL、PALASM、およびRuby Hardware Description Language (RHDL)などといった多くのタイプのHDLがある。Very-High-Speed Integrated Circuit Hardware Description Language (VH
DL)およびVerilogは、現在最も一般的に使用される。いくつかの記載したハードウェア記述言語を使用することによって方法手順が一度論理的にプログラムされて集積回路へとプログラムされると、論理的な方法手順を実装するハードウェア回路を容易に取得できることを当業者はやはり理解するべきである。
【００７０】
任意の適切な方法を使用することによって、コントローラを実装することができる。たとえば、コントローラは、マイクロプロセッサもしくはプロセッサ、またはマイクロプロセッサもしくはプロセッサによって実行することができるコンピュータ可読プログラムコード(ソフトウェアまたはファームウェアなど)を記憶するコンピュータ可読媒体、論理ゲート、スイッチ、特定用途向け集積回路(ASIC)、プログラム可能論理コントローラ、または内蔵マイクロプロセッサとすることができる。コントローラの例としては、限定はしないが以下のマイクロプロセッサすなわち、ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20、およびSilicone Labs C8051F320が挙げられる。メモリの制御論理の一部として、メモリコントローラをやはり実装することができる。コンピュータ可読プログラムコードを使用することによってコントローラを実装することに加えて、論理プログラミングを方法ステップ上で実施して、論理ゲート、スイッチ、特定用途向け集積回路、プログラム可能論理コントローラ、内蔵マイクロプロセッサなどの形で同じ機能を実装することをコントローラに可能にすることができるということを当業者はやはり知っている。したがって、コントローラをハードウェア構成要素と考えることができ、コントローラの中に様々な機能を実装するように構成されるデバイスは、やはりハードウェア構成要素中の構造物と考えることができる。または様々な機能を実装するように構成されるデバイスは、方法を実装するソフトウェアモジュールとハードウェア構成要素中の構造物との両方と考えることさえもできる。
【００７１】
上の実装形態で説明されたシステム、デバイス、モジュール、またはユニットは、コンピュータチップもしくは実体を使用することによって実装することができ、またはある機能を有する製造物を使用することによって実装することができる。典型的な実装デバイスはコンピュータである。コンピュータは、たとえばパーソナルコンピュータ、ラップトップコンピュータ、セルラフォン、カメラフォン、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メールデバイス、ゲームコンソール、タブレットコンピュータ、もしくはウェアラブルデバイス、またはこれらのデバイスのいずれかの組合せとすることができる。
【００７２】
記載を簡単にするために、上のデバイスは、機能を様々なユニットに分割することによって記載される。もちろん、本出願を実装するとき、各ユニットの機能は、1つまたは複数個のソフトウェアおよび/またはハードウェアで実装することができる。
【００７３】
本発明の実装形態は、方法、システム、またはコンピュータプログラム製品として提供できることを当業者なら理解されたい。したがって、本発明は、ハードウェアだけの実装形態、ソフトウェアだけの実装形態、またはソフトウェアとハードウェアの組合せを有する実装形態の形を使用することができる。さらに、本発明は、コンピュータ使用可能プログラムコードを含む1つまたは複数のコンピュータ使用可能記憶媒体(限定しないが、ディスクメモリ、CD-ROM、光メモリなどが挙げられる)上に実装されるコンピュータプログラム製品の形を使用することができる。
【００７４】
本発明は、本発明の実施形態に基づいた方法、デバイス(システム)、およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して記載される。コンピュータプログラム命令を使用して、フローチャートおよび/またはブロック図中の各プロセスおよび/または各ブロック、ならびにフローチャートおよび/またはブロック図中のプロセスおよび/またはブロックの組合せを実装できることに留意するのは有益である。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、組込プロセッサ、または別のプログラム可能データ処理デバイスのプロセッサが機械を生成することを可能にすることができ、その結果別のプログラム可能データ処理デバイスのコンピュータまたはプロセッサによって実行される命令が、フローチャート中の1つもしくは複数のプロセスおよび/またはブロック図中の1つまたは複数のブロックにおける特定の機能を実装するためのデバイスを生成する。
【００７５】
これらのコンピュータプログラム命令は、コンピュータまたは別のプログラム可能データ処理デバイスが特定の方法で働くように命令できるコンピュータ可読メモリに記憶することができ、その結果コンピュータ可読メモリに記憶された命令が、命令デバイスを含む人工物を生成する。命令デバイスは、フローチャート中の1つもしくは複数のプロセス中、および/またはブロック図中の1つまたは複数のブロック中の特定の機能を実装する。
【００７６】
これらのコンピュータプログラム命令をコンピュータまたは別のプログラム可能データ処理デバイス上にロードすることができ、その結果一連の動作ならびに動作およびステップが、コンピュータまたは別のプログラム可能デバイス上で実施され、それによりコンピュータ実装される処理を生成する。したがって、コンピュータまたは別のプログラム可能デバイス上で実行される命令が、フローチャート中の1つもしくは複数のプロセスの中、および/またはブロック図中の1つまたは複数のブロックの中の特定の機能を実施するためのステップを提供する。
【００７７】
典型的な構成では、コンピューティングデバイスは、1つまたは複数のプロセッサ(CPU)、1つまたは複数入出力インターフェース、1つまたは複数のネットワークインターフェース、および1つまたは複数のメモリを含む。
【００７８】
メモリとしては、非永続型メモリ、ランダムアクセスメモリ(RAM)、不揮発性メモリ、および/または、たとえば読取り専用メモリ(ROM)もしくはフラッシュメモリ(フラッシュRAM)といったコンピュータ可読媒体の中にある他の形が挙げられる。メモリは、コンピュータ可読媒体の例である。
【００７９】
コンピュータ可読媒体としては、任意の方法または技術を使用することによって情報を記憶することができる、永続型、非永続型、可動型、および非可動型媒体が挙げられる。情報は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータとすることができる。コンピュータ記憶媒体の例としては、限定はしないがパラメータランダムアクセスメモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、もしくは別のタイプのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的消去可能プログラム可能読取り専用メモリ(EEPROM)、フラッシュメモリもしくは別のメモリ技術、コンパクトディスク読取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)もしくは別の光学記憶装置、磁気カセット、磁気テープ、磁気テープ/磁気ディスクメモリもしくは別の磁気記憶デバイス、またはコンピューティングデバイスがアクセスできる情報を記憶するために使用できる任意の他の非伝送媒体が挙げられる。本明細書の規定に基づいて、コンピュータ可読媒体は、変調したデータ信号および搬送波などといった、過渡的なコンピュータ可読媒体(過渡的媒体)を含まない。
【００８０】
「含む(include)」、「備える、含む(comprise)」という用語、またはそれらの任意の他の変形体が非排他的包含をカバーするように意図されており、その結果要素のリストを含むプロセス、方法、製品、またはデバイスは、それらの要素を含むだけでなく、明示的にリスト化されていない他の要素も含むこと、またはそのようなプロセス、方法、製品、またはデバイスに固有の要素をさらに含むことにさらに留意するのは有益である。さらなる制約なしに、「1つの〜を含む(includes a …)」が示す要素は、要素を含むプロセス、方法、製品、またはデバイス中の追加の同一要素の存在を排除しない。
【００８１】
本出願の実装形態は、方法、システム、またはコンピュータプログラム製品として提供できることを当業者なら理解されたい。したがって、本出願は、ハードウェアだけの実装形態、ソフトウェアだけの実装形態、またはソフトウェアとハードウェアの組合せを有する実装形態の形を使用することができる。加えて、本出願は、コンピュータ使用可能プログラムコードを含む1つまたは複数のコンピュータ使用可能記憶媒体(限定しないが、ディスクメモリ、CD-ROM、光メモリなどが挙げられる)上に実装されるコンピュータプログラム製品の形を使用することができる。
【００８２】
本出願は、コンピュータによって実行されるコンピュータ実行可能命令の一般的な文脈、たとえばプログラムモジュールで記載することができる。一般的に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造を含む。本出願は、分散型コンピューティング環境で行うこともできる。分散型コンピューティング環境では、タスクは、通信ネットワークを介して接続される遠隔処理デバイスによって実施される。分散型コンピューティング環境では、プログラムモジュールは、記憶デバイスを含むローカルコンピュータ記憶媒体とリモートコンピュータ記憶媒体の両方に配置することができる。
【００８３】
本明細書中の実装形態は、進歩的な方法で記載される。実装形態の同じまたは同様の部分では、実装形態への参照を行うことができる。各実装形態は、他の実装形態からの差異に焦点を合わせている。詳細には、システムの実装形態は、方法の実装形態と基本的に同様であり、したがって、簡単に記載される。関係する部分については、方法の実装形態の中の関係する記載への参照を行うことができる。
【００８４】
上の実装形態は、本出願の実装形態であり、本出願を限定する意図はない。当業者は、本出願に対する様々な修正形態および変更形態を作ることができる。本出願の精神および原理から逸脱することなく作られる任意の修正形態、等価交換形態、または改善形態は、本出願中の特許請求の範囲内に入る。
【符号の説明】
【００８５】
401  受信モジュール
402  コンセンサス検証モジュール
403  記憶モジュール
501  受信モジュール
502  コンセンサス検証モジュール、コンセンサスモジュール
503  記憶モジュール
【要約】
本出願の実装形態は、サービス要求を処理するための方法およびデバイスを開示する。サービスデータをブロックチェーンの中に記憶することの代わりに、サービス要求がコンセンサス検証をパスした場合に、各コンセンサスノードがブロックチェーンの中にサービスデータのダイジェストを記憶する。そのため、サービスデータのダイジェストが信頼できるブロックチェーンの中に記憶され、サービスデータの信憑性を依然として検証することができる。加えて、ターゲットサービスに無関係なブロックチェーンノードがサービスデータを取得できないように、サービスデータは、ブロックチェーンの中に記憶されない。したがって、各コンセンサスノードは、もはや、サービスデータを暗号化するために計算リソースを消費する必要がなく、それにより各コンセンサスノードが、サービス要求についてのコンセンサス検証を実施する効率が改善される。【図１】
0006675518.tif 000002
【図２】
0006675518.tif 000003
【図３】
0006675518.tif 000004
【図４】
0006675518.tif 000005
【図５】
0006675518.tif 000006