【文献】
アーヴィンド・ナラヤナン,他,仮想通貨の教科書,日経BP社,2016年12月 9日,第1版,pp.245−288
【文献】
CoinJoin: Bitcoin privacy for the real world,Bitcoin Forum,2017年 2月12日,[2020年11月25日検索],インターネット,URL,https://web.archive.org/web/20170211170747/https://bitcointalk.org/index.php?topic=279249
(58)【調査した分野】(Int.Cl.,DB名)
記1つまたは複数のプロセッサによって、前記ブロックチェーンネットワークの中のコンセンサスノードに前記第2のサービスデータを送信するステップであって、前記コンセンサスノードは、前記第2のサービスデータの中の前記第2の複数のブロックチェーンノードのデジタル署名を検証し、前記デジタル署名は、前記複数の第1のサービスデータの一部として前記第1の複数のブロックチェーンノードにより提供される、ステップ
をさらに含み、
前記第2の複数のブロックチェーンノードに関連付けられる前記第2のサービスデータにおける前記デジタル署名を確認する確認情報を前記コンセンサスノードから受信することに応答して、前記第2のサービスデータが処理される、請求項1に記載のコンピュータ実装方法。
前記第1の複数のブロックチェーンノードの中のノードの数が、数量情報に基づき前記サーバにより決定され、前記数量情報は前記ノードの数を示し、前記数量情報は、前記第1の複数のブロックチェーンノードの各ブロックチェーンノードから受信されるサービスデータ処理の少なくとも1つの要求に含まれる、請求項1に記載のコンピュータ実装方法。
1つまたは複数のプロセッサを含むコンピュータシステムにより、複数の動作を実行するために実行可能な1つまたは複数の命令を記録するコンピュータ可読記録媒体であって、前記複数の動作が、
ブロックチェーンネットワークの中の第1の複数のブロックチェーンノードの各々から各第1のサービスデータを受信する動作であって、前記第1のサービスデータの各々が、各第1のソースアドレスおよび各第1のデスティネーションアドレスと関連付けられる、動作と、
前記第1の複数のブロックチェーンノードに対応する第2のソースアドレスと、第2の複数のブロックチェーンノードに対応する第2のデスティネーションアドレスとを含む第2のサービスデータを形成する動作であって、前記第2のソースアドレスが前記第1の複数のブロックチェーンノードから受信された複数の第1のサービスデータに関連付けられる複数の第1のソースアドレスの混合に基づき形成され、前記第2のデスティネーションアドレスが前記複数の第1のサービスデータに関連付けられる複数の第1のデスティネーションアドレスの混合に基づき形成される、動作と、
前記第2のサービスデータが前記第1の複数のブロックチェーンノードのうちのブロックチェーンノードによって提供される前記第1のサービスデータの少なくとも一部を含むことを検証するために前記第1の複数のブロックチェーンノードのうちの前記ブロックチェーンノードに検証要求と共に前記第2のサービスデータを送信する動作と、
前記第2のサービスデータが前記第1の複数のブロックチェーンノードのうちの前記ブロックチェーンノードによって提供される前記第1のサービスデータの前記少なくとも一部を含むとの検証を確認する検証メッセージを前記第1の複数のブロックチェーンノードのうちの前記ブロックチェーンノードから受信する動作と、
前記第1の複数のブロックチェーンノードのうちの前記ブロックチェーンノードからの前記検証メッセージの受信に応答して、前記第2のサービスデータを処理する動作と
を含み、
前記複数の動作が、
前記1つまたは複数のプロセッサによって、サーバからフィードバック情報を受信する動作であって、前記フィードバック情報は前記第1の複数のブロックチェーンノードに関連付けられる複数のノード識別子を含み、前記サーバは、前記第1の複数のブロックチェーンノードからサービスデータ処理の要求を受信することに応答して、前記フィードバック情報を送信する、動作
をさらに含む、コンピュータ可読記録媒体。
前記第1の複数のブロックチェーンノードの中のノードの数が、数量情報に基づき前記サーバにより決定され、前記数量情報は前記ノードの数を示し、前記数量情報は、前記第1の複数のブロックチェーンノードの各ブロックチェーンノードから受信されるサービスデータ処理の少なくとも1つ要求に含まれる、請求項8に記載のコンピュータ可読記録媒体。
【発明を実施するための形態】
【0021】
サービスデータの関連付けを排除することは既存の技術における問題を解決するための1つの方法であり、サービスデータを深く分析できないようにし、したがってユーザの真正情報が漏れる可能性が低くなる。たとえば、サービスデータを作成するとき、ノードが少なくとも2つのソースアドレスおよび/またはデスティネーションアドレスを提供し、サービスオブジェクトを複数のサービスサブオブジェクトに分割することができる。これらのサービスサブオブジェクトは、これらの少なくとも2つのソースアドレスおよび/またはデスティネーションアドレスの間で転送することができる。これに対応して、サービスデータは、これらの複数のサービスサブオブジェクトおよび少なくとも2つのソースアドレスおよび/またはデスティネーションアドレスを含むことができる。
【0022】
しかしながら、ノードが提供できるソースアドレスまたはデスティネーションアドレスの数は限られており、それはサービスデータを処理するためのノードの負担を増大させる。これに鑑み、第2のブロックチェーンノードが、少なくとも1つの第1のブロックチェーンノードによって送信された第1のサービスデータを受信することができる。第1のサービスデータは第1のソースアドレスおよび第1のデスティネーションアドレスを含む。次いで、第2のブロックチェーンノードは第1のサービスデータを用いて第2のサービスデータを作成する。第2のサービスデータは第2のソースアドレスおよび第2のデスティネーションアドレスを含み、第2のソースアドレスは第1のソースアドレスを含み、第2のデスティネーションアドレスは第1のデスティネーションアドレスを含む。その後、第1のブロックチェーンノードが第2のサービスデータをチェックできるように、第2のブロックチェーンノードは第2のサービスデータを第1のブロックチェーンノードに送信する。第2のブロックチェーンノードは確認応答情報を受信したときに第2のサービスデータを処理する。このように、第2のサービスデータは、複数の第1のブロックチェーンノードからの第1のサービスデータを含むことができ、ブロックチェーンネットワーク内のサービスデータ処理ノードがソースアドレスまたはデスティネーションアドレスを追加で提供する必要がない。したがって、第1のブロックチェーンノードはより少ない負担でサービスデータを処理することができる。
【0023】
「第1のブロックチェーンノード」および「第2のブロックチェーンノード」、「第1のサービスデータ」および「第2のサービスデータ」、「第1のソースアドレス」および「第2のソースアドレス」、ならびに「第1のデスティネーションアドレス」および「第2のデスティネーションアドレス」における「第1の」および「第2の」は特別な意味を持たず、単に区別するために用いられるということに留意されたい。
【0024】
本願の目的、技術的解決策、および利点をより明確にするため、本願の具体的な実施形態および対応する添付の図面を参照して、本願の技術的解決策を明確に以下に説明する。明らかに、記載の実施形態は本願の実施形態のすべてではなく、単にいくつかにすぎない。本願の実施形態に基づいて創造的な努力なしに当業者によって得られる他のすべての実施形態は、本願の保護範囲内に入るものとする。
【0025】
添付の図面を参照し、本願の実施形態において提供される技術的解決策を以下に詳細に説明する。
【0026】
図1は本願の一実施形態によるサービス処理方法を示すフローチャートである。このサービス処理方法を以下に示す。このサービス処理方法は、サーバによって実行することができ、ブロックチェーンネットワーク内のブロックチェーンノードによって実行することができ、またはブロックチェーンネットワーク外のノードによって実行することができる。
【0027】
ステップ101:ブロックチェーンノードによって送信されたサービス処理要求を受信し、ここでサービス処理要求はサービスデータ処理要件をサーバに通知するために用いられ、サービス処理要求はノード識別子を含む。
【0028】
ノード識別子は、対応するブロックチェーンノードを識別するために用いられる。
【0029】
本願のこの実施形態において、いずれかのブロックチェーンノードがサービスデータ処理要件を有するとき、そのブロックチェーンノードは、サーバにサービス処理要求を送信し、サービスデータ処理要件をサーバに通知することができる。
【0030】
本願のこの実施形態において、サービス処理要求は特定のサービスデータを含まないことがあり、そのためサービスデータが送信中に漏れる可能性が低くなる。あるいは、サービス処理要求は特定のサービスデータを含むことができる。この場合、送信前にサービスデータを暗号化し、サービスデータ送信セキュリティを向上させることができる。
【0031】
ステップ103:ノード識別子の中から設定数のノード識別子を選択する。
【0032】
実際の用途において、サーバは、複数のブロックチェーンノードによって送信されたサービス処理要求を受信し、次いでこれらのサービス処理要求に含まれるノード識別子の中から設定数のノード識別子を選択してノード識別子セット(これは第1のブロックチェーンノード識別子セットと呼ぶことができる)を形成する。
【0033】
本願のこの実施形態において、サーバは、以下の方法で他のノード識別子の中から設定数のノード識別子を選択することができる。
【0034】
方法1:サーバは、所定のノード識別子選択規則に基づいて、特定の時間間隔内に受信されたノード識別子の中から設定数のノード識別子を選択する。
【0035】
所定のノード識別子選択規則は、選択されたノード識別子の数を特定することができ、または様々な選択されたノード識別子に対応するブロックチェーンノードの特徴を特定することができる。これはここでは限定されない。
【0036】
本願のこの実施形態において、サービスデータ処理効率を保証するため、サーバは特定の時間間隔に基づいてノード識別子を選択することができる。特定の時間間隔は、サーバの現在のシステム時間に基づいて決定することができ、またはサービスデータを生成する時間に基づいて決定することができる。これはここでは限定されない。
【0037】
方法2:受信されたサービス処理要求が数量情報を含む場合、サーバは、この数量情報に基づいて、この数量情報を満たすノード識別子をノード識別子の中から選択することができる。
【0038】
設定数は、サービス処理要求に含まれる数量情報に基づいて決定することができ、または必要に応じて決定することができる。これはここでは限定されない。
【0039】
受信されたすべてのサービス処理要求が数量情報を含む場合、サーバは方法1においてノード識別子を選択することができる。
【0040】
受信されたサービス処理要求の1つが数量情報を含む場合、サーバは、そのサービス処理要求に含まれる数量情報に基づいて、この数量情報を満たすノード識別子をノード識別子の中から選択することができる。あるいは、サーバは、所定の数決定優先度に基づいてノード識別子を選択することができる。数決定優先度が、サーバによって構成された設定数の優先度がブロックチェーンによって決定された数量情報の優先度より高いことを指定する場合、サーバは方法1においてノード識別子を選択することができる。数決定優先度が、サーバによって構成された設定数の優先度がブロックチェーンによって決定された数量情報の優先度より低いことを指定する場合、サーバは方法2においてノード識別子を選択することができる。
【0041】
受信されたサービス処理要求の少なくとも2つが数量情報を含む場合、複数の数量情報から1つの基準数量情報を選択する必要があるため、サーバはこの基準数量情報を満たすノード識別子をノード識別子の中から選択する。
【0042】
本願のこの実施形態において、基準数量情報は、複数の数量情報の共通部分であってもよく、または複数の数量情報の平均値であってもよい。これはここでは限定されない。
【0043】
ノード識別子を選択するとき、サーバは、サービス処理要求に含まれて基準数量情報を満たすノード識別子を優先的に選択するということに留意されたい。
【0044】
しかしながら、数量情報を選択するとき、サーバは受信されたノード識別子の数をさらに考慮する必要がある。選択された数区間が受信されたノード識別子の数よりも少なければ、サーバがノード識別子を選択するとき、いくつかのサービスデータは時間内に処理されないことがあり、後続の第2のサービスデータは混乱しにくくなる。選択された数量情報が受信されたノード識別子の数よりも大きければ、ノード識別子を選択するとき、サーバは、受信されたサービス処理要求の数が選択された数量情報に達するようにある期間待つ必要がある。後続の第2のサービスデータはより混乱を招くが、これによりサービスデータ処理時間が長くなる可能性がある。したがって、数量情報を選択するとき、サーバは、適切な数量情報を選択し、サービスデータ処理の進行と第2のサービスデータの混乱度(Confusion Degree)との間のバランスを達成する必要がある。
【0045】
方法3:サーバは、ブロックチェーンノードに事前に複数の数区間を送信することができる。各ブロックチェーンノードは、受信された数区間から1つの数区間を選択し、選択された数区間をサーバに送信する。サーバは、各ブロックチェーンノードによって送信された数区間に基づいて、同じ数区間を送信するブロックチェーンノードのノード識別子の中から設定数のノード識別子を選択してノード識別子セットを取得する。
【0046】
たとえば、サーバが「5より大きい」、「10より大きい」、「50より大きい」、および「100より大きい」などの複数の数区間を提供することができる場合、各ブロックチェーンノードは、これらの数区間から1つの数区間を選択することができる。一例として「10より大きい」を用いる。サーバは、「10より大きい」を選択するブロックチェーンノードのノード識別子の中から設定数のノード識別子を選択することができ、その設定数は11から50の範囲となり得る。具体的には、サーバは、「10より大きい」を選択するブロックチェーンノードのノード識別子の中から11のノード識別子を選択、または「10より大きい」を選択するブロックチェーンノードのノード識別子の中から50のノード識別子を選択することができる。
【0047】
数区間を選択するとき、各ブロックチェーンノードは、サービスデータ処理の進行を考慮する必要があるだけでなく、第2のサービスデータの混乱度も考慮する必要がある。選択された数区間の下限が比較的小さければ、サーバは、その下限を満たすノード識別子を比較的短い期間内に収集し、ブロックチェーンノードにフィードバック情報を送信することができるため、第2のサービスデータが可能な限り早く作成され得る。しかしながら、第2のサービスデータに含まれる第1のサービスデータが少なくなるので、混乱度は比較的低い。反対に、選択された数区間の下限が比較的大きければ、サーバがブロックチェーンノードにフィードバック情報を送信する前に、その下限を満たすノード識別子を収集するのにサーバは比較的長い時間がかかる可能性がある。したがって、第2のサービスデータの作成は明らかに遅れる。しかしながら、第2のサービスデータはより多くの第1のサービスデータを含むので、混乱度は比較的高い。したがって、各ブロックチェーンノードが適切な数区間を選択し、サービスデータ処理の進行と第2のサービスデータの混乱度との間のバランスを達成することができる。
【0048】
サーバは数量に基づいてノード識別子を選択することができる。この選択は、ランダム選択または他の選択方法とすることができる。ここで、ノード識別子セット内のノード識別子に対応するブロックチェーンノード間、およびこのブロックチェーンノードに対応するサービスデータ間で、サービスの関連付けが欠如していると仮定して選択方法が決定される。したがって、混乱度は比較的高い。具体的な方法は限定されない。
【0049】
ステップ105:ブロックチェーンノードによって送信された第1のサービスデータに基づいてブロックチェーンノードの1つが第2のサービスデータを作成し第2のサービスデータを処理するために、選択されたノード識別子を含むフィードバック情報を、選択されたノード識別子に対応するブロックチェーンノードに送信する。
【0050】
本願のこの実施形態におけるノード識別子は、ブロックチェーンノードのアイデンティティを表すために用いられる。ノード識別子は、電子メールアドレスまたはIPアドレスなどのネットワーク通信アドレスを含むことができる。加えて、ノード識別子は、サービスアカウント、ソーシャルアカウントなどであってもよい。サーバによって送信されたフィードバック情報を受信すると、ブロックチェーンノードは、ノード識別子に基づいて対応するブロックチェーンノードを識別することができる。たとえば、選択されたノード識別子に対応するブロックチェーンノードは、ノード識別子を用いてデータ接続を確立し、通信することができる。
【0051】
本願のこの実施形態において、選択されたノード識別子を含むフィードバック情報は、フィードバック情報に含まれるノード識別子に対応するブロックチェーンノードによって送信されたサービスデータを混合するようにサーバが命令することを意味することができる。このように、二者のサービス当事者のアイデンティティは互いにあまり関連付けられず、情報セキュリティが改善される。
【0052】
好ましくは、本願のこの実施形態において、サーバは、設定数のノード識別子を選択するだけでなく(これらのノード識別子に対応するブロックチェーンノードは、サービスデータ混合に参加するオブジェクトとして働くことができ、本願のこの実施形態において第1のブロックチェーンノードと呼ぶことができる)、サービスデータ混合に参加するオブジェクトによって送信されたサービスデータに基づいて新たなサービスデータを作成するブロックチェーンノード(これは、本願のこの実施形態において第2のブロックチェーンノードと呼ぶことができる)を決定することもできる。第2のブロックチェーンノードは、選択されたノード識別子に対応するブロックチェーンノードによって送信された第1のサービスデータを受信し、次いで第1のサービスデータに基づいて第2のサービスデータを作成し、第2のサービスデータを処理するように構成される。
【0053】
第2のブロックチェーンノードに対応するノード識別子は、設定数の選択されたノード識別子に含まれていてもよく(換言すれば、第2のブロックチェーンノードは、第1のブロックチェーンノードに含まれるブロックチェーンノードである)、また設定数の選択されたノード識別子に含まれていなくてもよい(換言すれば、第2のブロックチェーンノードは第1のブロックチェーンノードから独立している)。これはここでは限定されない。
【0054】
サーバが第2のブロックチェーンノードを決定する場合、選択されたノード識別子を含むフィードバック情報を、選択されたノード識別子に対応するブロックチェーンノードに送信することは、ブロックチェーンノードに、選択されたノード識別子を含むとともに、第2のサービスデータを作成するように命令するためのノード識別子を含むフィードバック情報を送信することを含む。
【0055】
この場合、ブロックチェーンノードは、フィードバック情報に基づいて第2のブロックチェーンノードを決定することができる。第2のサービスデータを作成するように命令するためのノード識別子はラベルまたは音声であってもよい。ラベルはテキストラベル、グラフィックラベルなどであってもよい。
【0056】
加えて、サーバが第2のブロックチェーンノードを決定する場合、サーバは第2のブロックチェーンノードに指示情報をさらに送信することができる。指示情報は、第2のブロックチェーンノードは第2のサービスデータを作成するノードであるということを第2のブロックチェーンノードに通知するために用いられる。サーバによって第1のブロックチェーンノードに送信されたフィードバック情報は選択されたノード識別子のみを含み、第2のブロックチェーンノードは、他の方法を用いて(たとえば、ブロードキャスティングを通じて)第2のブロックチェーンノードは第2のサービスデータを作成するノードであるということを第1のブロックチェーンノードに通知する。
【0057】
第2のブロックチェーンノードは、サーバによって決定されても、第1のブロックチェーンノードによって決定されてもよい。これはここでは限定されない。
【0058】
図2は本願の一実施形態によるサービスデータ処理方法を示すフローチャートである。このサービスデータ処理方法を以下に示す。このサービスデータ処理方法はブロックチェーンノードによって実行される。このブロックチェーンノードは、第1のブロックチェーンノードと区別されるように命名された第2のブロックチェーンノードと呼ぶことができる。第2のブロックチェーンノードは第2のサービスデータを作成するノードである。
【0059】
第2のブロックチェーンノードは、決定された第1のブロックチェーンノードセットに対応するブロックチェーンノードから選択されたブロックチェーンノードであってもよく、または第1のブロックチェーンノードセットに対応するブロックチェーンノードから独立したブロックチェーンノードであってもよい。
【0060】
第2のブロックチェーンノードは、サーバによって決定されてもよく(ステップ105を参照することができる)、または第1のブロックチェーンノードセットに対応するブロックチェーンノードによって決定されてもよい。
【0061】
本願のこの実施形態における第2のブロックチェーンノードは、異なるサービスデータ処理手順においては変化することがあり、第2のブロックチェーンノードからの真正情報の漏洩を効果的に防止するようにランダム選択を通じて決定することもできる。
【0062】
ステップ202:少なくとも1つの第1のブロックチェーンノードによって送信された第1のサービスデータを受信し、ここで第1のサービスデータは第1のソースアドレスおよび第1のデスティネーションアドレスを含む。
【0063】
本願のこの実施形態において、第2のブロックチェーンノードは、サービスデータ処理要件を有さないブロックチェーンノードであってもよく、またはサービスデータ処理要件を有するブロックチェーンノードであってもよい。
【0064】
第2のブロックチェーンノードがサービスデータ処理要件を有するブロックチェーンノードであれば、本願のこの実施形態において、少なくとも1つの第1のブロックチェーンノードによって送信された第1のサービスデータを受信する前に、この方法は、サーバにサービス処理要求を送信するステップをさらに含み、サービス処理要求はサーバにサービスデータ処理要件を通知するために用いられる。
【0065】
本願のこの実施形態において、第1のブロックチェーンノードは、サーバによって決定されてもよく、または第2のブロックチェーンノードによって決定されてもよい。これはここでは限定されない。
【0066】
図1に示す方法に基づいて、第2のブロックチェーンノードがサービス処理要求をサーバに送信した後、第2のブロックチェーンノードは、サーバによって返されたフィードバック情報をさらに受信することができる。フィードバック情報は、サーバにサービス処理要求を送信するブロックチェーンノード(第2のブロックチェーンノードを含む)のノード識別子を含む。
【0067】
フィードバック情報は、先の実施形態におけるステップ101からステップ105に示した方法を用いることによって取得することができる。あるいは、サーバは、サービス処理要求を送信するブロックチェーンノードのノード識別子をフィードバック情報に直接追加し、このフィードバック情報を第2のブロックチェーンノードに送信することができる。これはここでは限定されない。
【0068】
第2のブロックチェーンノードは、フィードバック情報に含まれるノード識別子に基づいて第1のブロックチェーンノードを決定することができる。
【0069】
具体的には、方法1において、第2のブロックチェーンノードは、フィードバック情報に含まれるノード識別子に対応するブロックチェーンノードを第1のブロックチェーンノードとして決定する。
【0070】
方法2において、第2のブロックチェーンノードは、フィードバック情報に含まれるノード識別子の中から設定数のノード識別子を選択し、選択されたノード識別子に対応するブロックチェーンノードを第1のブロックチェーンノードとして決定する。
【0071】
換言すれば、フィードバック情報を受信した後、第2のブロックチェーンノードは、ノード識別子をさらに選択し、設定数のノード識別子に対応するブロックチェーンノードを第1のブロックチェーンノードとして決定することができる。
【0072】
このように、第2のブロックチェーンノードは、設定数の第1のブロックチェーンノードを含む第1のブロックチェーンノードセットを決定するだけでなく、フィードバック情報に含まれるノード識別子に基づいて対応する第1のブロックチェーンノードを識別し、ノード識別子に基づいて第1のブロックチェーンノードと通信して、少なくとも1つの第1のブロックチェーンノードによって送信された第1のサービスデータを受信することができる。
【0073】
任意選択で、第2のブロックチェーンノードがサーバにサービス処理要求を送信することは、サービス処理要求を送信するブロックチェーンノードから数量情報を満たすブロックチェーンノードをサーバが選択するために、このサービス処理要求に数量情報を追加し、サービス処理要求をサーバに送信することを含む。これにより、第2のブロックチェーンノードについて、サービスデータ処理の進行と第2のサービスデータの混乱度との間のバランスを達成することができる(ステップ103を参照することができる)。
【0074】
第1のブロックチェーンノード間の情報の等価性を保証するために、少なくとも1つの第1のブロックチェーンノードによって送信された第1のサービスデータを受信するとき、第2のブロックチェーンノードは第1のブロックチェーンノードに第3のサービスデータをさらに送信する。第3のサービスデータは、第2のブロックチェーンノードによって処理される必要があるサービスデータである。
【0075】
データ伝送セキュリティを向上させるため、第1のブロックチェーンノードに第3のサービスデータを送信することは、暗号化された第3のサービスデータを第1のブロックチェーンノードに送信することを含むことができる。さらに、第2のブロックチェーンノードは匿名接続を介して第3のサービスデータを送信することができる。匿名接続とは、二者間の通信関係を隠すためのいくつかの措置が取られるということを意味する。たとえば、匿名アドレスや、伝送路を隠すために伝送路上に配置された複数のネットワークノードを用いて接続がなされる。
【0076】
第1のサービスデータを第2のブロックチェーンノードに送信するとき、第1のブロックチェーンノードは第1のサービスデータを暗号化して第1のサービスデータの伝送セキュリティを保証することもできる。
【0077】
サーバは第1のブロックチェーンノードセットを決定することができる。他の一実施形態において、ブロックチェーンネットワーク内のブロックチェーンノードが相互クエリを通じて第1のブロックチェーンノードセットを決定することができる。
【0078】
ステップ204:第1のサービスデータに基づいて第2のサービスデータを作成し、ここで第2のサービスデータは第2のソースアドレスおよび第2のデスティネーションアドレスを含み、第2のソースアドレスは第1のソースアドレスを含み、第2のデスティネーションアドレスは第1のデスティネーションアドレスを含む。
【0079】
図3を参照すると、
図3は本願の一実施形態による第2のサービスデータを示す構造図である。
【0080】
第2のサービスデータが3つの第1のサービスデータを含むと仮定すると、第1の第1のサービスデータは、第1のソースアドレスS11、第1のデスティネーションアドレスS12、および第1のサービスオブジェクトS10を含み、第2の第1のサービスデータは、第1のソースアドレスS21、第1のデスティネーションアドレスS22、および第1のサービスオブジェクトS20を含み、第3の第1のサービスデータは、第1のソースアドレスS31、第1のデスティネーションアドレスS32、および第1のサービスオブジェクトS30を含む。この場合、3つの第1のサービスデータを用いて第2のサービスデータが作成されると、第2のサービスデータは、第2のソースアドレスS01および第2のデスティネーションアドレスS02を含む。第2のソースアドレスS01は3つの独立した第1のソースアドレスS11、S21、およびS31を含み、第2のデスティネーションアドレスS02は3つの独立した第1のデスティネーションアドレスS12、S22、およびS32を含むことができる。第1のサービスオブジェクトS10、S20、およびS30は第1のソースアドレスS11、S21、およびS31からそれぞれ消費され、第1のデスティネーションアドレスS12、S22、およびS32は第1のサービスオブジェクトS10、S20、およびS30をそれぞれ受信する。
【0081】
第2のサービスデータにおいて、第2のソースアドレスS01は複数の第1のソースアドレスS11、S21、S31の混合であること、第2のデスティネーションアドレスS02は複数の第1のデスティネーションアドレスS12、S22、およびS32の混合であることが分かる。
図3に示すように、複数の第1のサービスデータに含まれる第1のデスティネーションアドレスが混合される。第1のソースアドレスから消費されたオブジェクトのサイズと、第1のデスティネーションアドレスで受信されたオブジェクトのサイズのみが第2のサービスデータから分かるが、第1のソースアドレスと第1のデスティネーションアドレスとの間の1対1のマッピング関係は分からない。したがって、第2のサービスデータ中の複数の第1のサービスデータが互いに混同されるため、第2のサービスデータは分析されにくくなる。
【0082】
同じ第1のブロックチェーンノードによってブロックチェーンネットワーク内に保存された複数の第1のサービスデータを複数の異なる第2のサービスデータに混合させることができるが、対応する第1のブロックチェーンノードが異なるので、第2のサービスデータに含まれる第1のサービスデータが大きく変化することがある。そのため、関連付けを無視することができる。したがって、第2のサービスデータをこの産業に関連付けることは困難であり、ソースアドレスおよびデスティネーションアドレスなどのデジタルアドレスに対応する真正情報を推測することは困難である。
【0083】
3つの第1のサービスデータが1つの第1のソースアドレスおよび1つの第1のデスティネーションアドレスをそれぞれ含むということが先の説明から分かるが、これは単に一例である。本願の他の一実施形態において、第1のサービスデータは、複数の第1のソースアドレスおよび/または複数の第1のデスティネーションアドレスを含むことができる。この場合、第1のサービスデータ内の複数の第1のソースアドレスと複数の第1のデスティネーションアドレスとの間に一定の関連付けが存在し得るが、作成された第2のサービスデータにおいて、第1のサービスデータ内の第1のソースアドレスは、他の第1のサービスデータ内の第1のソースアドレスと混合され、第1のサービスデータ内の第1のデスティネーションアドレスは、他の第1のサービスデータ内の第1のデスティネーションアドレスと混合される。加えて、第1のサービスデータは複数の第1のソースアドレスおよび/または複数の第1のデスティネーションアドレスを提供するので、第2のサービスデータはより混乱する。
【0084】
先の実施形態において、第1のサービスデータの3つのみが選択されて解決策を説明したが、これらは解決策の保護範囲を限定することを意図していないということに留意されたい。特定の用途において、第2のサービスデータは他の量の第1のサービスデータを含むことができる。
【0085】
ステップ202において、第2のブロックチェーンノードがサービス処理要求をサーバに送信する場合、第2のブロックチェーンノードは第1のサービスデータに基づいて第2のサービスデータを作成するということに留意されたい。このプロセスにおいて、第2のブロックチェーンノードは、第1のサービスデータおよびサービス処理要求に対応する第3のサービスデータに基づいて第2のサービスデータを作成することができる。
【0086】
第2のブロックチェーンノードがサーバにサービス処理要求を送信するブロックチェーンノードではない場合、第2のブロックチェーンノードは第1のサービスデータに基づいて第2のサービスデータを作成する。このプロセスにおいて、第2のブロックチェーンノードは第1のサービスデータのみに基づいて第2のサービスデータを作成する。
【0087】
ステップ206:第1のブロックチェーンノードが第2のサービスデータをチェックするために、第2のサービスデータを第1のブロックチェーンノードに送信する。
【0088】
第1のブロックチェーンノードは、第2のサービスデータに含まれる対応する第1のサービスデータをチェックし、対応する第1のサービスデータは第1のブロックチェーンノードによって第2のブロックチェーンノードに送信される。第1のブロックチェーンノードは、第1のソースアドレスおよび第1のデスティネーションアドレスが正しいかどうか、第1のソースアドレスから消費されたオブジェクトが正しいかどうか、対応する第1のデスティネーションアドレスが同じサイズのオブジェクトを受信するかどうか、を判断することができる。
【0089】
第1のサービスデータが正しければ、第1のブロックチェーンノードは第2のブロックチェーンノードに確認応答情報を送信し、第2のブロックチェーンノードは第1のブロックチェーンノードによってフィードバックされた確認応答情報を受信する。
【0090】
第1のサービスデータが間違っていれば、第1のブロックチェーンノードは第2のブロックチェーンノードに修正情報を送信する。第1のブロックチェーンノードによってフィードバックされた修正情報を受信した後、第2のブロックチェーンノードは、修正情報に基づいて第2のサービスデータを修正し、次いで確認応答情報を受信するまで、修正された第2のサービスデータをチェックのために第1のブロックチェーンノードに送信する。
【0091】
第2のサービスデータを第1のブロックチェーンノードに送信することは、現在の第1のブロックチェーンノードによって送信された確認応答情報が受信された後にのみ順に第2のサービスデータを第1のブロックチェーンノードに送信することと、第2のサービスデータを次の第1のブロックチェーンノードに送信すること、または第2のブロックチェーンノードによって第2のサービスデータを第1のブロックチェーンノードの1つに送信することと、第2のサービスデータが受信されたことを第1のブロックチェーンノードがチェックした後、各第1のブロックチェーンノードによって送信された確認応答情報が受信されるまで、第2のサービスデータが正しいということを第1のブロックチェーンノードが判定した後に第2のサービスデータを次の第1のブロックチェーンノードに自動的に送信するように第1のブロックチェーンノードに命令することと、を含むことができる。
【0092】
本願のこの実施形態において、暗号化された第2のサービスデータを第1のブロックチェーンノードに送信することができる。
【0093】
ステップ208:第1のブロックチェーンノードによって送信された確認応答情報が受信されたときに第2のサービスデータを処理する。
【0094】
本願のこの実施形態において、第2のサービスデータを処理することは、第2のサービスデータに含まれる第2のソースアドレスおよび第2のデスティネーションアドレスに基づいてサービスオブジェクトを送信することを含むことができる。
【0095】
あるいは、第2のサービスデータを処理することは、コンセンサスノードが第2のサービスデータに関するコンセンサス処理を実行するために、ブロックチェーンネットワーク内のコンセンサスノードに第2のサービスデータを送信することと、第2のサービスデータが検証されれば、第2のサービスデータをブロックチェーンネットワークに保存することと、を含むことができる。
【0096】
第1のブロックチェーンノードは、確認応答情報の基礎として第2のサービスデータにデジタル署名を追加することができる。コンセンサスノードが第2のサービスデータに関するコンセンサス処理を実行することは、各デジタル署名に対応する第1のサービスデータが本物かつ有効であるかどうかを検証することを含むことができる。
【0097】
図4は本願の一実施形態によるサービスデータ処理方法を示すフローチャートである。この方法を以下に示す。このサービスデータ処理方法はブロックチェーンノードによって実行される。このブロックチェーンノードは、第2のブロックチェーンノードと区別されるように命名された第1のブロックチェーンノードとして説明する。
【0098】
ステップ301:第1のブロックチェーンノードが第1のサービスデータを第2のブロックチェーンノードに送信し、ここで第1のサービスデータは第1のソースアドレスおよび第1のデスティネーションアドレスを含む。
【0099】
実際の用途において、設定数の第1のブロックチェーンノードが第1のサービスデータを第2のブロックチェーンノードに送信し、これにより、後続の第2のサービスデータに含まれる第1のサービスデータがより混乱する。
【0100】
本願のこの実施形態において、第1のサービスデータを第2のブロックチェーンノードに送信する前に、第1のブロックチェーンノードは以下の方法で第2のブロックチェーンノードを決定することができる。すなわち、サービス処理要求をサーバに送信するステップであって、サービス処理要求はサーバにサービスデータ処理要件を通知するために用いられる、ステップと、サーバから返されたフィードバック情報を受信するステップであって、フィードバック情報は、サービス処理要求をサーバに送信するブロックチェーンノードのノード識別子を含む、ステップと、フィードバック情報に含まれるノード識別子に基づいて第2のブロックチェーンノードを決定するステップと、である。
【0101】
具体的には、第1のブロックチェーンノードは、フィードバック情報に含まれるノード識別子に基づいて以下の2つの方法を用いて第2のブロックチェーンノードを決定することができる。
【0102】
方法1は、フィードバック情報に含まれるノード識別子の1つを選択するステップと、選択されたノード識別子について、フィードバック情報に含まれるノード識別子に対応するブロックチェーンノードにコンセンサス要求を送信するステップであって、コンセンサス要求は、選択されたノード識別子に対応するブロックチェーンノードが第2のブロックチェーンノードであるということに同意するようにブロックチェーンノードに要求するために用いられる、ステップと、選択されたノード識別子に対応するブロックチェーンノードが第2のブロックチェーンノードであるということにブロックチェーンノードが同意すれば、選択されたノード識別子に対応するブロックチェーンノードを第2のブロックチェーンノードとして決定するステップと、を含む。
【0103】
方法2は、フィードバック情報における第2のサービスデータを作成するように命令するためのノード識別子に基づいて第2のブロックチェーンノードを決定するステップを含む。この場合、第2のブロックチェーンノードはサーバによって決定され、第1のブロックチェーンノードに通知される。
【0104】
情報の等価性を保つために、第1のブロックチェーンノードが第1のサービスデータを第2のブロックチェーンノードに送信することは、第1のブロックチェーンノードが、第2のブロックチェーンノード、および/またはサーバによってフィードバックされたノード識別子に対応するブロックチェーンノードに第1のサービスデータを送信することを含む。この場合、第1のブロックチェーンノードセット内の第1のブロックチェーンノードは、他の第1のブロックチェーンノードの第1のサービスデータを取得し、情報の等価性を実現することができる。
【0105】
ステップ303:第2のブロックチェーンノードによって作成された第2のサービスデータを受信し、ここで第2のサービスデータは第2のソースアドレスおよび第2のデスティネーションアドレスを含み、第2のソースアドレスは第1のソースアドレスを含み、第2のデスティネーションアドレスは第1のデスティネーションアドレスを含む。
【0106】
ステップ305:第2のサービスデータをチェックする。
【0107】
ステップ307:第2のブロックチェーンノードが第2のサービスデータを処理するために、第2のブロックチェーンノードに確認応答情報を送信する。
【0108】
ステップ305について、先の実施形態におけるステップ206の内容を参照することができる。第2のサービスデータが正しいと第1のブロックチェーンノードが判断すれば、第1のブロックチェーンノードは第2のブロックチェーンノードに確認応答情報を送信する。第2のサービスデータが間違っていると第1のブロックチェーンノードが判断すれば、第1のブロックチェーンノードは第2のブロックチェーンノードに修正情報を送信する。修正情報は、第2のブロックチェーンノードに第2のサービスデータを修正するように要求するために用いることができ、または修正情報は修正された第2のサービスデータであってもよい。
【0109】
図5は本願の一実施形態によるサービスデータ処理方法を示すフローチャートである。この方法を以下に示す。
【0110】
ステップ401:第1のブロックチェーンノードおよび第2のブロックチェーンノードがサービス処理要求をサーバに送信し、ここでサービス処理要求はサーバにサービスデータ処理要件を通知するために用いられ、サービス処理要求はノード識別子を含む。
【0111】
ステップ402:サーバがノード識別子の中から設定数のノード識別子を選択する。
【0112】
ステップ403:サーバが、選択されたノード識別子を含むフィードバック情報を、選択されたノード識別子に対応するブロックチェーンノードに送信する。
【0113】
ステップ404:第1のブロックチェーンノードが第1のサービスデータを第2のブロックチェーンノードに送信し、ここで第1のサービスデータは第1のソースアドレスおよび第1のデスティネーションアドレスを含む。
【0114】
ステップ405:受信した第1のサービスデータに基づいて第2のブロックチェーンノードが第2のサービスデータを作成し、ここで第2のサービスデータは第2のソースアドレスおよび第2のデスティネーションアドレスを含み、第2のソースアドレスは第1のソースアドレスを含み、第2のデスティネーションアドレスは第1のデスティネーションアドレスを含む。
【0115】
ステップ406:第2のブロックチェーンノードが第2のサービスデータを第1のブロックチェーンノードに送信する。
【0116】
ステップ407:第1のブロックチェーンノードが受信した第2のサービスデータをチェックする。
【0117】
ステップ408:第1のブロックチェーンノードが第2のブロックチェーンノードに確認応答情報を送信する。
【0118】
ステップ409:第2のブロックチェーンノードが、第1のブロックチェーンノードによって送信された確認応答情報を受信したときに第2のサービスデータを処理する。
【0119】
本願の実施形態において提供されるサービスデータ処理方法およびサービス処理方法は以下の利点を有する。
【0120】
第2のサービスデータは、複数の第1のブロックチェーンノードの第1のサービスデータを含むことができる。したがって、第1のブロックチェーンノードは、複数のソースアドレスまたはデスティネーションアドレスを別々に提供する必要がなく、これにより第1のブロックチェーンノードの負担を軽減することができる。
【0121】
予想されるように、第1のブロックチェーンノードの数は指定されないため、比較的大量の第1のサービスデータを用いて第2のサービスデータを作成することができる。そのため、第2のサービスデータにおける第2のソースアドレスおよび第2のデスティネーションアドレスはより混乱しやすく、ブロックチェーンネットワーク内の第2のサービスデータは互いに関連付けられにくく、ブロックチェーンノードの真正情報が漏れにくくなる。
【0122】
図6は本願の一実施形態によるサービス処理装置を示す構造図である。このサービス処理装置は、ブロックチェーンノードによって送信されたサービス処理要求を受信するように構成された受信モジュール51であって、サービス処理要求はサーバにサービスデータ処理要件を通知するために用いられ、サービス処理要求はノード識別子を含む、受信モジュールと、これらのノード識別子から設定数のノード識別子を選択するように構成された選択モジュール52と、ブロックチェーンノードによって送信された第1のサービスデータに基づいてブロックチェーンノードの1つが第2のサービスデータを作成し第2のサービスデータを処理するために、選択されたノード識別子を含むフィードバック情報を、選択されたノード識別子に対応するブロックチェーンノードに送信するように構成された送信モジュール53と、を含むことができる。
【0123】
任意選択で、選択モジュール52がノード識別子の中から設定数のノード識別子を選択することは、受信されたサービス処理要求が数量情報を含む場合、この数量情報に基づいてノード識別子の中からこの数量情報を満たすノード識別子を選択することを含む。
【0124】
任意選択で、選択モジュール52は、ノード識別子の中から設定数のノード識別子を選択した後、サービス処理要求に基づいて第2のブロックチェーンノードをさらに決定する。第2のブロックチェーンノードは、選択されたノード識別子に対応するブロックチェーンノードによって送信された第1のサービスデータを受信し、次いで第1のサービスデータに基づいて第2のサービスデータを作成し、第2のサービスデータを処理するように構成される。
【0125】
任意選択で、送信モジュール53が、選択されたノード識別子を含むフィードバック情報を、選択されたノード識別子に対応するブロックチェーンノードに送信することは、選択されたノード識別子を含むとともに、第2のブロックチェーンノードが第2のサービスデータを作成するという命令を含むフィードバック情報をブロックチェーンノードに送信することを含む。
【0126】
本願のこの実施形態におけるサービス処理装置はソフトウェアまたはハードウェアを用いて実現することができるということに留意されたい。これはここでは限定されない。
【0127】
同じ発明の概念に基づいて、本願の一実施形態はサービス処理装置をさらに提供する。このサービス処理装置は、少なくとも1つのプロセッサおよびメモリを含む。メモリはプログラムを格納し、プログラムは、ブロックチェーンノードによって送信されたサービス処理要求を受信するステップであって、サービス処理要求は、第1のサービスデータを用いて第2のサービスデータを作成するための要件をサーバに通知するために用いられ、サービス処理要求はブロックチェーンノードのノード識別子を含む、ステップと、サービス処理要求に基づいてこれらのブロックチェーンノードから設定数のブロックチェーンノードを第1のブロックチェーンノードとして選択するステップと、選択された第1のブロックチェーンノードのノード識別子を第1のブロックチェーンノードに別々に送信するステップであって、これにより、第1のブロックチェーンノードのうちの第2のブロックチェーンノードが、第1のブロックチェーンノードによって送信された第1のサービスデータを受信し、第1のサービスデータに基づいて第2のサービスデータを作成し、第2のサービスデータを処理することを可能にする、ステップとを実行するために少なくとも1つのプロセッサによって用いられる。
【0128】
プロセッサの他の機能について、先の実施形態において説明した内容を参照することができる。詳細はここでは再度説明しない。
【0129】
同じ発明の概念に基づいて、本願の一実施形態はコンピュータ可読記憶媒体をさらに提供する。このコンピュータ可読記憶媒体は電子デバイスと共に用いられるプログラムを含み、プロセッサは、プログラムを実行して、ブロックチェーンノードによって送信されたサービス処理要求を受信するステップであって、サービス処理要求は、第1のサービスデータを用いて第2のサービスデータを作成するための要件をサーバに通知するために用いられ、サービス処理要求はブロックチェーンノードのノード識別子を含む、ステップと、サービス処理要求に基づいてこれらのブロックチェーンノードから設定数のブロックチェーンノードを第1のブロックチェーンノードとして選択するステップと、選択された第1のブロックチェーンノードのノード識別子を第1のブロックチェーンノードに別々に送信するステップであって、これにより第1のブロックチェーンノードのうちの第2のブロックチェーンノードが、第1のブロックチェーンノードによって送信された第1のサービスデータを受信し、第1のサービスデータに基づいて第2のサービスデータを作成し、第2のサービスデータを処理することを可能にする、送信するステップとを行う。
【0130】
プロセッサの他の機能について、先の実施形態において説明した内容を参照することができる。詳細はここでは再度説明しない。
【0131】
ここでのサービス処理装置またはコンピュータ可読記憶媒体は、受信されたサービス処理要求に基づいてブロックチェーンノードを割り当て、サービスデータ処理要件を有するブロックチェーンノードを効果的に編成するように構成されるため、サービス処理がより秩序正しく効率的になる。
【0132】
図7は本願の実施形態によるサービスデータ処理装置を示す構造図である。このサービスデータ処理装置は、少なくとも1つの第1のブロックチェーンノードによって送信された第1のサービスデータを受信するように構成された受信モジュール61であって、第1のサービスデータは第1のソースアドレスおよび第1のデスティネーションアドレスを含む、受信モジュールと、第1のサービスデータに基づいて第2のサービスデータを作成するように構成された作成モジュール62であって、第2のサービスデータは第2のソースアドレスおよび第2のデスティネーションアドレスを含み、第2のソースアドレスは第1のソースアドレスを含み、第2のデスティネーションアドレスは第1のデスティネーションアドレスを含む、作成モジュールと、第2のサービスデータを第1のブロックチェーンノードに送信し、第1のブロックチェーンノードが第2のサービスデータをチェックするように構成された送信モジュール63と、第1のブロックチェーンノードによって送信された確認応答情報が受信されたときに第2のサービスデータを処理するように構成された処理モジュール64と、を含むことができる。
【0133】
任意選択で、処理モジュール64が第2のサービスデータを処理することは、ブロックチェーンネットワーク内のコンセンサスノードに第2のサービスデータを送信することであって、これによりコンセンサスノードが第2のサービスデータに関するコンセンサス処理を実行することを可能にする、送信することと、第2のサービスデータが検証されれば、第2のサービスデータをブロックチェーンネットワークに保存することと、を含む。
【0134】
任意選択で、送信モジュール63は、受信モジュール61が少なくとも1つの第1のブロックチェーンノードによって送信された第1のサービスデータを受信する前に、サービス処理要求をサーバに送信する。サービス処理要求は、サーバにサービスデータ処理要件を通知するために用いられる。
【0135】
任意選択で、サービスデータ処理装置は決定モジュール65をさらに含む。
【0136】
受信モジュール61は、サーバによって返されたフィードバック情報を受信し、ここでフィードバック情報は、サーバにサービス処理要求を送信するブロックチェーンノードのノード識別子を含む。
【0137】
決定モジュール65は、フィードバック情報に含まれるノード識別子に基づいて第1のブロックチェーンノードを決定する。
【0138】
任意選択で、決定モジュール65が、フィードバック情報に含まれるノード識別子に基づいて第1のブロックチェーンノードを決定することは、フィードバック情報に含まれるノード識別子に対応するブロックチェーンノードを第1のブロックチェーンノードとして決定すること、またはフィードバック情報に含まれるノード識別子の中から設定数のノード識別子を選択することと、選択されたノード識別子に対応するブロックチェーンノードを第1のブロックチェーンノードとして決定することと、を含む。
【0139】
任意選択で、送信モジュール63がサービス処理要求をサーバに送信することは、サービス処理要求に数量情報を追加し、サービス処理要求をサーバに送信することを含み、これによりサーバが、サービス処理要求を送信するブロックチェーンノードから数量情報を満たすブロックチェーンノードを選択することを可能にする。
【0140】
任意選択で、送信モジュール63は、第1のブロックチェーンノードに第3のサービスデータを送信する。
【0141】
作成モジュール62が第1のサービスデータに基づいて第2のサービスデータを作成することは、第1のサービスデータと第3のサービスデータに基づいて第2のサービスデータを作成することを含む。
【0142】
任意選択で、送信モジュール63が第1のブロックチェーンノードに第3のサービスデータを送信することは、暗号化された第3のサービスデータを第1のブロックチェーンノードに送信することを含む。
【0143】
本願のこの実施形態におけるサービスデータ処理装置はソフトウェアまたはハードウェアを用いて実現することができるということに留意されたい。これはここでは限定されない。
【0144】
同じ発明の概念に基づいて、本願の一実施形態はサービスデータ処理装置をさらに提供する。このサービスデータ処理装置は少なくとも1つのプロセッサおよびメモリを含む。メモリはプログラムを格納し、プログラムは、少なくとも1つの第1のブロックチェーンノードによって送信された第1のサービスデータを受信するステップであって、第1のサービスデータは第1のソースアドレスおよび第1のデスティネーションアドレスを含む、ステップと、第1のサービスデータに基づいて第2のサービスデータを作成するステップであって、第2のサービスデータは第2のソースアドレスおよび第2のデスティネーションアドレスを含み、第2のソースアドレスは第1のソースアドレスを含み、第2のデスティネーションアドレスは第1のデスティネーションアドレスを含む、ステップと、第2のサービスデータを第1のブロックチェーンノードに送信するステップであって、これにより第1のブロックチェーンノードが第2のサービスデータをチェックすることを可能にする、ステップと、第1のブロックチェーンノードによって送信された確認応答情報が受信されたときに第2のサービスデータを処理するステップとを実行するために少なくとも1つのプロセッサによって用いられる。
【0145】
プロセッサの他の機能について、先の実施形態において説明した内容を参照することができる。詳細はここでは再度説明しない。
【0146】
同じ発明の概念に基づいて、本願の一実施形態はコンピュータ可読記憶媒体をさらに提供する。このコンピュータ可読記憶媒体は電子デバイスと共に用いられるプログラムを含み、プロセッサは、プログラムを実行して、少なくとも1つの第1のブロックチェーンノードによって送信された第1のサービスデータを受信するステップであって、第1のサービスデータは第1のソースアドレスおよび第1のデスティネーションアドレスを含む、ステップと、第1のサービスデータに基づいて第2のサービスデータを作成するステップであって、第2のサービスデータは第2のソースアドレスおよび第2のデスティネーションアドレスを含み、第2のソースアドレスは第1のソースアドレスを含み、第2のデスティネーションアドレスは第1のデスティネーションアドレスを含む、ステップと、第2のサービスデータを第1のブロックチェーンノードに送信するステップであって、第1のブロックチェーンノードが第2のサービスデータをチェックすることを可能にする、ステップと、第1のブロックチェーンノードによって送信された確認応答情報が受信されたときに第2のサービスデータを処理するステップとを行う。
【0147】
プロセッサの他の機能について、先の実施形態において説明した内容を参照することができる。詳細はここでは再度説明しない。
【0148】
ここでのサービスデータ処理装置またはコンピュータ可読記憶媒体は、第1のブロックチェーンノードによって送信された第1のサービスデータに基づいて第2のサービスデータを作成するように構成することができるため、第1のサービスデータは互いに混同され、第1のブロックチェーンノードに対応する真正情報が漏れることはない。加えて、このサービスデータ処理装置は、複数の第1のサービスデータを混合してチェックした後に第2のサービスデータを処理することができ、サービス処理効率が向上する。
【0149】
図8は本願の実施形態によるサービスデータ処理装置を示す構造図である。このサービスデータ処理装置は、第1のサービスデータを第2のブロックチェーンノードに送信するように構成された送信モジュール71であって、第1のサービスデータは第1のソースアドレスおよび第1のデスティネーションアドレスを含む、送信モジュールと、第2のブロックチェーンノードによって作成された第2のサービスデータを受信するように構成された受信モジュール72であって、第2のサービスデータは第2のソースアドレスおよび第2のデスティネーションアドレスを含み、第2のソースアドレスは第1のソースアドレスを含み、第2のデスティネーションアドレスは第1のデスティネーションアドレスを含む、受信モジュールと、第2のサービスデータをチェックするように構成されたチェックモジュール73と、を含むことができる。
【0150】
送信モジュール71は、第2のブロックチェーンノードに確認応答情報を送信し、これにより第2のブロックチェーンノードが第2のサービスデータを処理することを可能にする。
【0151】
任意選択で、サービスデータ処理装置は決定モジュール74をさらに含む。
【0152】
送信モジュール71は、第1のサービスデータを第2のブロックチェーンノードに送信する前に、サービス処理要求をサーバに送信し、ここでサービス処理要求はサーバにサービスデータ処理要件を通知するために用いられる。
【0153】
受信モジュール72は、サーバによって返されたフィードバック情報を受信し、ここでフィードバック情報は、サービス処理要求をサーバに送信するブロックチェーンノードのノード識別子を含む。
【0154】
決定モジュール74は、フィードバック情報に含まれるノード識別子に基づいて第2のブロックチェーンノードを決定する。
【0155】
任意選択で、決定モジュール74が、フィードバック情報に含まれるノード識別子に基づいて第2のブロックチェーンノードを決定することは、フィードバック情報に含まれるノード識別子の1つを選択することと、選択されたノード識別子について、フィードバック情報に含まれるノード識別子に対応するブロックチェーンノードにコンセンサス要求を送信し、コンセンサス要求は、選択されたノード識別子に対応するブロックチェーンノードが第2のブロックチェーンノードであるということに同意するようブロックチェーンノードに要求するために用いられることと、選択されたノード識別子に対応するブロックチェーンノードが第2のブロックチェーンノードであるということにブロックチェーンノードが同意すれば、選択されたノード識別子に対応するブロックチェーンノードを第2のブロックチェーンノードとして決定することと、を含む。
【0156】
任意選択で、決定モジュール74が、フィードバック情報に含まれるノード識別子に基づいて第2のブロックチェーンノードを決定することは、フィードバック情報に含まれる第2のブロックチェーンノードのノード識別子に基づいて、第2のブロックチェーンノードが第2のサービスデータを作成するという命令に基づいて、第2のブロックチェーンノードを決定することを含む。
【0157】
任意選択で、送信モジュール71が第1のサービスデータを第2のブロックチェーンノードに送信することは、第2のブロックチェーンノード、および/またはサーバによってフィードバックされたノード識別子に対応するブロックチェーンノードに第1のサービスデータを送信することを含む。
【0158】
本願のこの実施形態におけるサービスデータ処理装置はソフトウェアまたはハードウェアを用いて実現することができるということに留意されたい。これはここでは限定されない。
【0159】
同じ発明の概念に基づいて、本願の一実施形態はサービスデータ処理装置をさらに提供する。このサービスデータ処理装置は少なくとも1つのプロセッサおよびメモリを含む。メモリはプログラムを格納し、プログラムは、第1のサービスデータを第2のブロックチェーンノードに送信するステップであって、第1のサービスデータは第1のソースアドレスおよび第1のデスティネーションアドレスを含む、ステップと、第2のブロックチェーンノードによって作成された第2のサービスデータを受信するステップであって、第2のサービスデータは第2のソースアドレスおよび第2のデスティネーションアドレスを含み、第2のソースアドレスは第1のソースアドレスを含み、第2のデスティネーションアドレスは第1のデスティネーションアドレスを含む、ステップと、第2のサービスデータをチェックするステップと、第2のブロックチェーンノードに確認応答情報を送信するステップであって、これにより第2のブロックチェーンノードが第2のサービスデータを処理することを可能にする、ステップとを実行するために少なくとも1つのプロセッサによって用いられる。
【0160】
プロセッサの他の機能について、先の実施形態において説明した内容を参照することができる。詳細はここでは再度説明しない。
【0161】
同じ発明の概念に基づいて、本願の一実施形態はコンピュータ可読記憶媒体をさらに提供する。このコンピュータ可読記憶媒体は、電子デバイスと共に用いられるプログラムを含み、プロセッサは、プログラムを実行して、第1のサービスデータを第2のブロックチェーンノードに送信するステップであって、第1のサービスデータは第1のソースアドレスおよび第1のデスティネーションアドレスを含む、ステップと、第2のブロックチェーンノードによって作成された第2のサービスデータを受信するステップであって、第2のサービスデータは第2のソースアドレスおよび第2のデスティネーションアドレスを含み、第2のソースアドレスは第1のソースアドレスを含み、第2のデスティネーションアドレスは第1のデスティネーションアドレスを含む、ステップと、第2のサービスデータをチェックするステップと、第2のブロックチェーンノードに確認応答情報を送信するステップであって、これにより第2のブロックチェーンノードが第2のサービスデータを処理することを可能にする、ステップとを行う。
【0162】
プロセッサの他の機能について、先の実施形態において説明した内容を参照することができる。詳細はここでは再度説明しない。
【0163】
1990年代においては、技術がハードウェアの観点から改善されている(たとえば、ダイオード、トランジスタ、またはスイッチなどの回路構造が改善されている)のか、ソフトウェアの観点から改善されている(方法手順が改善されている)のかは明らかに識別することができる。しかしながら、技術が発展するにつれて、多くの方法手順についての現在の改良はハードウェア回路構造に対する直接的な改良とみなすことができる。設計者は通常、改良された方法手順をハードウェア回路にプログラムして、対応するハードウェア回路構造を得る。したがって、ハードウェアモジュールが方法手順を改善することができる。たとえば、プログラマブルロジックデバイス(PLD)(たとえば、フィールドプログラマブルゲートアレイ(FPGA))はそのような集積回路であり、プログラマブルロジックデバイスの論理機能はデバイスプログラミングを通してユーザによって判定される。設計者は、特定用途向け集積回路チップの設計および製造をチップ製造者に要求することなく、プログラミングを通してデジタルシステムをPLDに「統合する」。加えて、集積回路チップを手作業で製造する代わりに、プログラミングはほとんど「論理コンパイラ」ソフトウェアを変形することによって今日実施されており、論理コンパイラソフトウェアは、プログラムの開発とコンパイルに用いられるソフトウェアコンパイラに似ている。コンパイルする前の元のコードも特定のプログラミング言語で書かれており、これはハードウェア記述言語(HDL)と呼ばれている。アドバンストブール演算式言語(ABEL)、アルテラハードウェア記述言語(AHDL)、コンフルエンス、コーネル大学プログラミング言語(CUPL)、HDCal、Java(登録商標)ハードウェア記述言語(JHDL)、Lava、Lola、MyHDL、PALASM、およびRubyハードウェア記述言語(RHDL)など、多くのHDLがある。現在、超高速集積回路ハードウェア記述言語(VHDL)およびヴェリログが最も一般的に用いられている。論理的方法手順を実施するハードウェア回路は、記載したハードウェア記述言語を用いることによってこの方法手順が論理的にプログラムされ、集積回路にプログラムされると、容易に得ることができるということも当業者は理解すべきである。
【0164】
任意の適切な方法でコントローラを実装することができる。たとえば、コントローラは、マイクロプロセッサ、プロセッサ、またはプロセッサもしくはマイクロプロセッサが実行することができるコンピュータ可読プログラムコード(たとえば、ソフトウェアまたはファームウェア)を格納するコンピュータ可読媒体、論理ゲート、スイッチ、特定用途向け集積回路(ASIC)、プログラマブルロジックコントローラ、または内蔵マイクロプロセッサとすることができる。コントローラの例には、以下のマイクロコントローラが含まれるが、これらに限定されない。すなわち、ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20、またはSilicon Labs C8051F320である。メモリの制御ロジックの一部としてメモリコントローラを実装することもできる。当業者はまた、純粋なコンピュータ可読プログラムコードという方法においてコントローラを実装することができるということ、この方法におけるステップを論理的にプログラムして論理ゲート、スイッチ、特定用途向け集積回路、プログラマブルロジックコントローラ、内蔵マイクロコントローラなどの形態でコントローラが同じ機能を実現することを可能にできるということを知っている。したがって、コントローラはハードウェアコンポーネントとみなすことができ、コントローラにおいて様々な機能を実現するように構成された装置もハードウェアコンポーネント内の構造とみなすことができる。あるいは、様々な機能を実現するように構成された装置は、方法を実行することができるソフトウェアモジュール、またはハードウェアコンポーネントにおける構造とみなすことができる。
【0165】
先の実施形態において説明したシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティによって具体的に実現することができ、または特定の機能を備えた製品によって実現することができる。典型的な実施装置はコンピュータである。具体的には、コンピュータは、たとえば、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ付き電話、スマートフォン、パーソナルデジタルアシスタント、メディアプレーヤ、ナビゲーション装置、電子メール装置、ゲーム機、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの組み合わせとすることができる。
【0166】
説明を容易にするために、記載した装置は、様々なユニットに機能を分割することによって説明されている。もちろん、本願が実施されるとき、各ユニットの機能は1つまたは複数のソフトウェアおよび/またはハードウェアにおいて実現することができる。
【0167】
当業者は、本開示の実施形態は方法、システム、またはコンピュータプログラム製品として提供することができるということを理解すべきである。したがって、本開示は、ハードウェアのみの実施形態、ソフトウェアのみの実施形態、またはソフトウェアとハードウェアとの組み合わせを用いた実施形態という形態を用いることができる。加えて、本開示は、コンピュータ使用可能プログラムコードを含む1つまたは複数のコンピュータ使用可能記憶媒体(磁気ディスク記憶装置、CD-ROM、光メモリなどを含むがこれらに限定されない)上に実装されるコンピュータプログラム製品の形態を用いることができる。
【0168】
本開示は、本開示の実施形態に基づく方法、装置(システム)、およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して説明している。フローチャートおよび/またはブロック図中の各プロセスおよび/または各ブロック、ならびにフローチャートおよび/またはブロック図中のプロセスおよび/またはブロックの組み合わせを実現するためにコンピュータプログラム命令を用いることができるということが理解されるべきである。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、または機械を生成するための他のプログラム可能データ処理装置のプロセッサに提供することができるので、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行される命令は、フローチャート中の1つまたは複数のプロセスおよび/またはブロック図中の1つまたは複数のブロックにおいて特定の機能を実現するための装置を生成する。
【0169】
これらのコンピュータプログラム命令は、コンピュータまたは他のプログラム可能データ処理装置に特定の方法で動作するように命令することができるコンピュータ可読メモリに格納することができるので、コンピュータ可読メモリに格納された命令は、命令装置を含むアーチファクトを生成する。命令装置は、フローチャート中の1つまたは複数のプロセスおよび/またはブロック図中の1つまたは複数のブロックにおいて特定の機能を実現する。
【0170】
これらのコンピュータプログラム命令は、コンピュータまたは他のプログラム可能データ処理装置にロードすることができるので、コンピュータまたは他のプログラム可能装置上で一連の動作およびステップが実行され、これによってコンピュータ実施処理が生成される。このように、コンピュータまたは他のプログラム可能装置上で実行される命令は、フローチャート中の1つまたは複数のプロセスおよび/またはブロック図中の1つまたは複数のブロックにおいて特定の機能を実現するためのステップを提供する。
【0171】
典型的な構成において、コンピューティングデバイスが、1つまたは複数のプロセッサ(CPU)と、入力/出力インタフェースと、ネットワークインタフェースと、メモリと、を含む。
【0172】
メモリは、リードオンリーメモリ(ROM)またはフラッシュメモリのようなコンピュータ可読媒体において揮発性メモリ、ランダムアクセスメモリ(RAM)、および/または不揮発性メモリなどを含むことができる。メモリはコンピュータ可読媒体の一例である。
【0173】
コンピュータ可読媒体は、揮発性および不揮発性、移動可能および移動不能の媒体を含み、任意の方法または技術を用いて情報を格納することができる。情報は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータであり得る。コンピュータ記憶媒体の例には、パラメータランダムアクセスメモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、他のタイプのランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)、フラッシュメモリまたは他のメモリ技術、コンパクトディスクリードオンリーメモリ(CD-ROM)、デジタル多用途ディスク(DVD)または他の光学記憶装置、磁気テープ、磁気ディスク記憶装置、他の磁気記憶装置、またはコンピューティングデバイスがアクセスできる情報を格納するために用いることができる任意の他の非送信媒体が含まれるが、これらに限定されない。この明細書において説明したように、コンピュータ可読媒体は、一時的媒体、たとえば変調データ信号および搬送波を含まない。
【0174】
「含む」、「含有する」という用語、または任意の他の変形は、非排他的な包含を網羅することを意図しているので、一連の要素を含むプロセス、方法、物品、または装置はこれらの要素を含むだけでなく、明示的に列挙されていない他の要素をも含み、またはそのようなプロセス、方法、物品、または装置に固有の要素をさらに含むということにさらに留意されたい。より多くの制約がなければ、「・・・を含む」の前の要素は、その要素を含むプロセス、方法、物品、または装置における追加の同一の要素の存在を排除しない。
【0175】
本願は、プログラムモジュールのようなコンピュータによって実行されるコンピュータ実行可能命令の一般的な文脈において説明することができる。一般に、プログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本願は、分散コンピューティング環境においても実施することができる。これらの分散コンピューティング環境においては、通信ネットワークを用いて接続された遠隔処理装置によってタスクが実行される。分散コンピューティング環境において、プログラムモジュールは、記憶装置を含むローカルおよびリモートコンピュータ記憶媒体に配置することができる。
【0176】
この明細書における実施形態はすべて漸進的な方法で記載されている。実施形態における同一または類似の部分については、これらの実施形態を参照することができる。各実施形態は他の実施形態との違いに焦点を当てている。特に、システムの実施形態は方法の実施形態と基本的に同じであり、簡単に説明している。関連部分について、方法の実施形態における関連説明を参照することができる。
【0177】
先の説明は単に本願の実施形態に過ぎず、本願を限定することを意図していない。当業者にとって、本願は様々な修正および変更を有することができる。本願の精神および原理内でなされたいかなる修正、均等な置換、改良なども、本願の特許請求の範囲の保護範囲内に含まれるものとする。
【0178】
図9は、本開示の一実施形態による、サービスデータ情報を匿名化するためのコンピュータ実施方法900の一例を示すフローチャートである。方法900は、上述の実施形態を参照して説明したように、第2のブロックチェーンノード内の1つまたは複数のプロセッサによって実行することができる。たとえば、方法900は、
図7を参照して説明したサービスデータ処理装置によって実行することができる。提示を明確にするために、以下の説明は、この説明における他の図の文脈で方法900を一般的に説明している。しかしながら、方法900は、たとえば必要に応じて任意のシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組み合わせによって実行することができるということが理解されよう。いくつかの実施形態において、方法900の様々なステップを並行して、組み合わせて、ループで、または任意の順序で実行することができる。
【0179】
902で、第1のサービスデータが複数のノードから受信される。第1のサービスデータは複数の第1のソースアドレスおよび複数の第1のデスティネーションアドレスに関連している。たとえば、複数のノードの各ノードから受信された第1のサービスデータは、第1のソースアドレスおよび第1のデスティネーションアドレスに関連していてもよい。第1のサービスデータは、ブロックチェーンノード間の複数のデータ転送に関連していてもよい。各データ転送は、ソースノードとデスティネーションノードとの間のサービスオブジェクト(たとえば、通貨の転送)に対応することがある。したがって、第1のサービスデータは、複数のデータ転送に関連する複数のサービスオブジェクト、複数のソースアドレス、および複数のデスティネーションアドレスを含むことができる。902から、方法900は904に進む。
【0180】
904で、第2のサービスデータが形成される。第2のサービスデータは第2のソースアドレスおよび第2のデスティネーションアドレスを含む。第2のソースアドレスは、第1のサービスデータに関連する複数の第1のソースアドレスを含む。第2のデスティネーションアドレスは、第1のサービスデータに関連する複数の第1のデスティネーションアドレスを含む。
図3が一例の第2のサービスデータを提供している。
図3における第2のサービスデータは、3つの第1のソースアドレスを含む第2のソースアドレスと、3つの第1のデスティネーションアドレスを含む第2のデスティネーションアドレスとを有する。第2のサービスデータは、第1のサービスデータに関連する複数のサービスオブジェクトも含むことができる。
図3における第2のサービスデータは、3つのサービスオブジェクトS10、S20、およびS30を含む。第2のサービスデータにおけるソースアドレスおよびデスティネーションアドレスは互いに対応していない。したがって、どのソースアドレスとどのデスティネーションアドレスとが互いに関連(たとえば、データ転送に関連)していたかは明確でない。同様に、サービスオブジェクトを混合して、どのデータオブジェクトがどのソースアドレスからどのデスティネーションアドレスに実行された(たとえば、転送された)かが明確にならないようにすることができる。904から、方法900は906に進む。
【0181】
906で、第2のサービスデータはブロックチェーンノードのセット(たとえば、第1のブロックチェーンノード)に送信される。このブロックチェーンノードのセットは、複数のブロックチェーンノードの1つまたは複数のノードを含む。ブロックチェーンノードのセット内の各ノードは、第2のソースデータをレビューし、902においてノードによって提供されたデータが第2のソースデータに含まれているかどうかを判断する。たとえば、各ノードは、第2のソースアドレスがノードによって提供された第1のソースアドレスを含むかどうかを判断することができる。同様に、各ノードは、第2のソースアドレスがノードによって提供された第1のデスティネーションアドレスおよび/または第1のサービスオブジェクトを含むかどうかを判断することができる。ブロックチェーンノードのセットは、複数のノードからランダムに選択されたセットであってもよい。セット内のノードの数は、規則に基づいて、またはデフォルトの数(たとえば、1つのノード)に基づいて決定することができる。906から、方法900は908に進む。
【0182】
908で、ブロックチェーンノードのセットから1つまたは複数の検証メッセージが受信される。たとえば、ブロックチェーンノードのセットの各ノードが検証メッセージを送信してもよい。ノードから受信された検証メッセージは、第2のサービスデータがノードによって提供された第1のサービスデータの一部を含むことを検証する。908から、方法900は910に進む。
【0183】
910で、第2のサービスデータが処理される。たとえば、第1のサービスデータが複数のノード間の通貨トランザクションを含むとき、第2のサービスデータを処理してトランザクションを合計し、1つのノードのセット間のトランザクションの合計量をブロックチェーンネットワーク内の他のノードのセットに提供することができる。
【0184】
第2のサービスデータは、ノードのセット内のすべてのノードから検証メッセージを受信したことに応じて処理される。いくつかの実施形態において、1つまたは複数のノードが、第1のサービスデータにおけるそれぞれの部分が第2のサービスデータに含まれないと判断すると、その1つまたは複数のノードは検証メッセージの代わりに障害メッセージを送出する。障害メッセージは、第2のサービスデータに第1のサービスデータの少なくとも一部がないということを示す。ノードによって送信された障害メッセージは、そのノードによって提供された第1のサービスデータの一部を含むことができる。障害メッセージの情報を用いて、ノードによって提供された第1のサービスデータの一部を含むように第2のサービスデータを更新することができる。
【0185】
上で説明したように、方法900は第2のノードによって実行することができる。第2のノードは、上記複数のノードの中のノードであっても、上記複数のノードから独立したノードであってもよい。第2のノードは、サーバによって、または上記複数のノードのノード間のコンセンサスに基づいて決定することができる。
【0186】
サーバは、上記複数のノードの中のノードを決定することができる。たとえば、サーバはブロックチェーンのノードからサービスデータ処理要求を受信することができる。サーバは、サービス処理要求を送信したノードの中から複数のノードを決定することができる。上記複数のノードにおけるノードの数は、デフォルト数に基づいて、または1つまたは複数のサービスデータ処理要求に含まれる数量情報に基づいて決定することができる。要求ノードから受信された数量情報は、その要求ノードを含むことになる複数のノードに含まれるべきノードの数を示す。たとえば、数量情報は、最大数、最小数、範囲、またはノードの正確な数を含むことができる。
【0187】
複数のノードを決定すると、サーバは、複数のノード内のノードのそれぞれにフィードバック情報を送信する。フィードバック情報は、複数のノード内の各ノードのアイデンティティ(本明細書においては「ノード識別子」とも呼ばれる)を含む。サーバはまた、第2のノード(方法900の実行を担当する)を決定し、フィードバック情報の一部として第2のノードのアイデンティティを送信してもよい。フィードバック情報は、第2のノードに対する命令を含むことができる。この命令は、906におけるノードのセット内のノードの数(またはノードの数を決定するための規則)など、方法900を実行するための詳細を含むことができる。
【0188】
いくつかの実施形態において、第2のノードは、上記複数のノードの中のノードによって選択される。たとえば、フィードバック情報により、上記複数のノードの中のノードは、自らの上記複数のノードとの関連について知ることができる。上記複数のノード内のあるノードが、あるノードを(たとえば、上記複数のノードの中から)第2のノードとして選択し、選択されたノードを第2のノードとして割り当てることに関するコンセンサスを求めるコンセンサス要求を上記複数のノード内の他のノードに送信することができる。上記複数のノード内のすべて(またはいくつか、たとえば、多数)のノードからコンセンサスを受信すると、選択されたノードを第2のノードとして割り当てることができる。
【0189】
いくつかの実施形態において、ブロックチェーンノードのセットのすべてのノードから検証メッセージを受信したことに応じて、第2のサービスデータはブロックチェーンネットワークに保存される。たとえば、第2のサービスデータはブロックチェーンノードの複数のノードに保存することができる。複数のノードの1つまたは複数のノードは、上記複数のノードのノード以外(すなわち外部)であってもよい。いくつかの実施形態において、上記複数のノードの各ノードは、第1のサービスデータにおいてデジタル署名を含み、第2のサービスデータは、上記複数のノードのすべてのノードの署名が第2のサービスデータに含まれているとの判定に応じてブロックチェーンネットワークに保存される。たとえば、第2のサービスデータは、フィードバック情報におけるノード識別子に対して第2のサービスデータにおけるデジタル署名をチェックするコンセンサスノードに送信されてもよい。複数のノードのすべてのノードの署名が第2のサービスデータに含まれていることを確認する確認メッセージをコンセンサスノードから受信すると、第2のサービスデータをブロックチェーンネットワークに保存することができる。コンセンサスノードは、上記複数のノードの中のノードであっても、上記複数のノードから独立したノードであってもよい。たとえば、サーバは、フィードバック情報における命令部分においてコンセンサスノードを識別することができる。
【0190】
ブロックチェーンは、複数のノードにデータ転送を記録する分散型ネットワークである(集中型ネットワークにおける1つのノードにおける記録とは対照的に)。したがって、ブロックチェーンにおけるデータ転送の記録は、複数のノードにおける記録を変更しない限り変更することができない。各記録はデータ転送のサービスデータを含む。サービスデータは、データ転送に関連するソースアドレス、デスティネーションアドレス、およびサービスオブジェクトを含む。たとえば、サービスデータは、ブロックチェーンの第1のノードから第2のノードへの通貨(たとえば、ドル)の転送であってもよい。ブロックチェーンにおいて、サービスデータの内容は容易に識別することができ、このことは機微なデータ(たとえば、銀行口座情報、取引金額など)の漏洩などのセキュリティ問題につながる。たとえば、通貨の転送に関連するソースアドレスおよびデスティネーションアドレスと金銭的価値とは、ブロックチェーンノードにおける記録から識別することができる。
【0191】
本開示の実施形態は、サービスデータの情報を匿名化することによってブロックチェーンにおけるセキュリティを改善するための技術を提供する。これらの実施形態は、複数のデータ転送の情報を組み合わせて、データ転送のそれぞれのソース、デスティネーション、および/またはサービスオブジェクトを匿名化する。たとえば、各データ転送についてのサービスデータを記録する代わりに、これらの実施形態は、データ転送のソースとデスティネーションとの間の1対1の関係を記録せずに複数のデータ転送のデータを記録する。したがって、データ転送は複数のノードにわたって依然記録されるが、各データ転送の詳細は明確でない。
【0192】
この明細書において説明した実施態様および動作は、デジタル電子回路において、またはこの明細書において開示された構造を含む、コンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらの1つまたは複数の組み合わせにおいて実施することができる。これらの動作は、1つまたは複数のコンピュータ可読記憶装置上に格納された、または他のソースから受信されたデータに関してデータ処理装置によって実行される動作として実施することができる。データ処理装置、コンピュータ、またはコンピューティングデバイスは、データを処理するための装置、デバイス、およびマシンを包含することができ、例としてプログラマブルプロセッサ、コンピュータ、チップ上のシステム、または前述のものの複数のもの、もしくは組み合わせを含む。この装置は、専用論理回路、たとえば、中央処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)を含むことができる。この装置は、問題のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム(たとえばオペレーティングシステムまたはオペレーティングシステムの組み合わせ)、クロスプラットフォームランタイム環境、仮想マシン、またはそれらの1つまたは複数の組み合わせを構成するコードも含むことができる。この装置と実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなど、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0193】
コンピュータプログラム(たとえば、プログラム、ソフトウェア、ソフトウェアアプリケーション、ソフトウェアモジュール、ソフトウェアユニット、スクリプト、またはコードとしても知られている)は、コンパイルまたはインタプリタされた言語、宣言型または手続き型言語を含む任意の形態のプログラミング言語で記述することができ、スタンドアロンプログラムとして、またはモジュールとして、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境における使用に適した他のユニットを含む任意の形態でデプロイすることができる。プログラムは、他のプログラムもしくはデータ(たとえば、マークアップ言語ドキュメントに格納された1つまたは複数のスクリプト)を保持するファイルの一部に、問題のプログラム専用の単一ファイルに、または複数の協調ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を格納するファイル)に格納することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに配置された、もしくは複数のサイトにわたって分散されて通信ネットワークによって相互接続された複数のコンピュータ上で実行することができる。
【0194】
コンピュータプログラムを実行するためのプロセッサは、例として、汎用および専用の両方のマイクロプロセッサ、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、リードオンリーメモリまたはランダムアクセスメモリまたは両方から命令およびデータを受信することになる。コンピュータの必須要素は、命令に従ってアクションを実行するためのプロセッサと、命令およびデータを格納するための1つまたは複数のメモリデバイスと、である。一般に、コンピュータはまた、データを格納するための1つまたは複数の大容量記憶装置を含むか、またはそこからデータを受信もしくはそこへデータを転送、もしくは両方をするように動作可能に結合される。コンピュータは、他のデバイス、たとえば、モバイルデバイス、携帯情報端末(PDA)、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイスに組み込むことができる。コンピュータプログラムの命令およびデータを格納するのに適したデバイスには、不揮発性メモリ、メディア、および、例として、半導体メモリデバイス、磁気ディスク、光磁気ディスクを含むメモリデバイスが含まれる。プロセッサおよびメモリは、専用のロジック回路によって補完する、またはここに組み込むことができる。
【0195】
モバイルデバイスには、ハンドセット、ユーザ機器(UE)、携帯電話(たとえば、スマートフォン)、タブレット、ウェアラブルデバイス(たとえば、スマートウォッチおよびスマートメガネ)、人体に埋め込まれたデバイス(たとえば、バイオセンサ、人工内耳)、または他のタイプのモバイルデバイスが含まれる。これらのモバイルデバイスは、様々な通信ネットワーク(以下で説明)に対して無線で(たとえば、無線周波数(RF)信号を用いて)通信することができる。モバイルデバイスは、そのモバイルデバイスの現在の環境の特性を判断するためのセンサを含むことができる。センサには、カメラ、マイクロフォン、近接センサ、GPSセンサ、モーションセンサ、加速度計、環境光センサ、水分センサ、ジャイロスコープ、コンパス、気圧計、指紋センサ、顔認識システム、RFセンサ(たとえば、Wi-Fiおよび携帯電話)、温度センサ、または他のタイプのセンサが含まれる。たとえば、カメラは、可動または固定レンズ、フラッシュ、画像センサ、および画像プロセッサを備えた前方または後方カメラを含む。カメラは、顔および/または虹彩認識のための詳細をキャプチャすることができるメガピクセルカメラであってもよい。カメラは、データプロセッサ、およびメモリに格納された、または遠隔でアクセスされた認証情報とともに、顔認識システムを形成することができる。顔認識システムまたは1つまたは複数のセンサ、たとえば、マイクロフォン、モーションセンサ、加速度計、GPSセンサ、またはRFセンサは、ユーザ認証に用いることができる。
【0196】
ユーザとの相互作用を提供するために、実施態様は、ディスプレイデバイスおよび入力デバイス、たとえば、ユーザに情報を表示するための液晶ディスプレイ(LCD)または有機発光ダイオード(OLED)/仮想現実(VR)/拡張現実(AR)ディスプレイおよびタッチスクリーン、キーボード、およびユーザがコンピュータに入力を提供することができるポインティングデバイスを有するコンピュータ上で実施することができる。他の種類のデバイスを用いて、ユーザとの相互作用を提供することもできる。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってもよく、ユーザからの入力は、音響、音声、または触覚の入力を含む任意の形態で受信することができる。加えて、コンピュータは、ユーザによって用いられるデバイスとの間で文書を送受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザに、そのウェブブラウザから受信された要求に応じてウェブページを送信することによってユーザと相互作用することができる。
【0197】
実施態様は、有線または無線デジタルデータ通信(またはそれらの組み合わせ)の任意の形態または媒体、たとえば、通信ネットワークによって相互接続されたコンピューティングデバイスを用いて実施することができる。相互接続されたデバイスの例には、通常は通信ネットワークを介して相互作用する一般的に互いに遠隔なクライアントおよびサーバがある。クライアント、たとえば、モバイルデバイスは、自身で、サーバとともに、またはサーバを介してトランザクション、たとえば、購入、販売、支払い、贈与、送信、またはローン取引を実行、またはこれらを承認することができる。そのようなトランザクションは、アクションおよび応答が時間的に近接するように瞬時にできる。たとえばある人が、アクションおよび応答が実質的に同時に起こることを認め、その個人のアクションに続く応答の時間差が1ミリ秒(ms)未満または1秒(s)未満であり、または応答はシステムの処理制限を考慮して意図的な遅延がない。
【0198】
通信ネットワークの例には、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、およびワイドエリアネットワーク(WAN)が含まれる。通信ネットワークは、インターネットのすべてまたは一部、他の通信ネットワーク、または通信ネットワークの組み合わせを含むことができる。情報は、ロングタームエボリューション(LTE)、5G、IEEE 802、インターネットプロトコル(IP)、または他のプロトコルまたはプロトコルの組み合わせを含む、様々なプロトコルおよび規格に従って通信ネットワーク上で送信することができる。通信ネットワークは、接続されたコンピューティングデバイス間で音声、ビデオ、バイオメトリック、または認証データ、または他の情報を送信することができる。
【0199】
個別の実施形態として説明した特徴は、組み合わせて、単一の実施形態において、実施することができる一方、単一の実施形態として説明した特徴は、複数の実施形態において、個別で、または任意の適切なサブの組み合わせにおいて実施することができる。特定の順序で説明およびクレームした動作は、この特定の順序も、すべての図示した動作も実行しなければならないということが要求されるとして理解されるべきではない(いくつかの動作は任意選択することができる)。必要に応じて、マルチタスクまたは並列処理(またはマルチタスクと並列処理の組み合わせ)を実行することができる。