説明

信頼されないコンピューティングノードによって実行された作業の検証

信頼されないコンピューティングノードによって実行された作業を検証する技法を提供する。中央コンピューティングシステムは、第1の信頼されないコンピューティングノードによって少なくとも部分的に実行されるべき第1計算を決定する。中央コンピューティングシステムは、第2の信頼されないコンピューティングノードによって少なくとも部分的に実行されるべき同等の第2計算を作るために第1計算に適用される変換関数をも決定する。中央コンピューティングシステムは、第1の信頼されないコンピューティングノードに第1計算を割り当て、変換関数を秘密に保ちながら、第2の信頼されないコンピューティングノードに第2計算を割り当てる。中央コンピューティングシステムは、第1計算の第1結果および第2計算の第2結果を受け取る。中央コンピューティングシステムは、第1の信頼されないコンピューティングノードおよび第2の信頼されないコンピューティングノードによって実行された作業を検証するために第1結果および第2結果を分析する。

【発明の詳細な説明】
【背景技術】
【0001】
多数のコンピューティングノードにまたがる分散大規模計算が、ますます人気のあるものになってきた。そのような大規模計算の分散化は、そうでなければ単一のコンピューティングシステムまたは少数のコンピューティングシステムの処理リソースを越える可能性がある複雑な問題を解くことを可能にする。一般に、中央コンピューティングシステムは、大規模計算の一部を各コンピューティングノードに供給する。そしてコンピューティングノードは、それに割り当てられた部分を実行し、結果を中央コンピューティングシステムに返す。その後、中央コンピューティングシステムは、コンピューティングノードからのさまざまな結果を処理して、大規模計算に対する全体的な解を判定する。
【0002】
1つの一般的な手法は、大規模計算の諸部分を、一般大衆から採用されたボランティアに分配することである。ボランティアは、彼らのコンピュータが分散システムのコンピューティングノードとして働くことを可能にする。したがって、中央コンピューティングシステムは、ボランティアのコンピューティングノードのそれぞれに、大規模計算のうちの実行すべき部分を供給する。この手法は、ノードがボランティアによって使用中ではない時またはボランティアが彼らのコンピューティングノードの処理リソースのすべてを利用しているのではない時に、コンピューティングノードの処理リソースの利用を可能にする。
【発明の概要】
【発明が解決しようとする課題】
【0003】
公衆からのボランティアの使用は、処理リソースへの低コストアクセスを提供するが、複数の短所がある。第1に、大規模計算の一部を実行しつつあるコンピューティングノードは、ボランティアノードなので、中央コンピューティングシステムの視点からは信頼されないものである。したがって、コンピューティングノードが、解かれるべき問題のプログラムコード内にバグを導入すること、ユーザエラー、外部データの誤構成、または他の類似する情況の結果として、図らずも誤りを犯す可能性がある。あるいは、コンピューティングノードが、割り当てられた計算に対する誤った解を提供することによって、または別のコンピューティングノードから結果を盗み、これらの結果をそれ自体の結果として提供することによって、詐欺を試みることができる。
【0004】
いくつかのシステムは、そのような詐欺を防ぐことを試みて、暗号化およびディジタル署名などのセキュリティ手段を提供する。しかし、そのような手段は、ある種の誤りまたは洗練された詐欺を検出することができない。たとえば、相手方が、進行中の計算に割り込み、いくつかの値を変更し、従来の暗号化およびディジタル署名が検出できない形で計算を継続することを可能にすることができる。
【課題を解決するための手段】
【0005】
本明細書で開示される例示的実施形態は、中央コンピューティングシステムが中央コンピューティングシステムに結合された複数の信頼されないコンピューティングノードによって実行された作業を検証する方法およびコンピュータプログラム製品に関する。中央コンピューティングシステムは、第1の信頼されないコンピューティングノードによって少なくとも部分的に実行されるべき第1計算を決定する。中央コンピューティングシステムは、第2の信頼されないコンピューティングノードによって少なくとも部分的に実行されるべき同等の第2計算を作るために第1計算に適用される変換関数をも決定する。中央コンピューティングシステムは、第1の信頼されないコンピューティングノードによって実行されるために第1計算を割り当て、変換関数を秘密に保ちながら、第2の信頼されないコンピューティングノードによって実行されるために第2計算を割り当てる。中央コンピューティングシステムは、第1計算の第1結果を第1の信頼されないコンピューティングノードから、および第2計算の第2結果を第2の信頼されないコンピューティングノードから受け取る。中央コンピューティングシステムは、第1の信頼されないコンピューティングノードおよび第2の信頼されないコンピューティングノードによって実行された作業を検証するために第1結果および第2結果を分析する。
【0006】
本明細書で開示される例示的実施形態は、コンピューティングシステムに関する。このコンピューティングシステムは、プロセッサと、データベースと、計算生成モジュールと、変換関数モジュールと、受取モジュールと、分析モジュールとを含む。計算生成モジュールは、第1の信頼されないコンピューティングノードによって実行されるべき第1計算を生成する。変換関数モジュールは、同等の第2計算を作るために第1計算に適用される変換関数を生成するか入手する。第2計算は、第2の信頼されないコンピューティングノードによって実行されるべきものである。割当てノードは、第1の信頼されないコンピューティングノードによって実行されるために第1計算を割り当て、変換関数を秘密に保ちながら、第2の信頼されないコンピューティングノードによって実行されるために第2計算を割り当てる。受取モジュールは、第1計算の第1結果を第1の信頼されないコンピューティングノードから、および第2計算の第2結果を第2の信頼されないコンピューティングノードから受け取る。分析モジュールは、第1の信頼されないコンピューティングノードおよび第2の信頼されないコンピューティングノードによって実行された作業を検証するために第1結果および第2結果を分析する。
【0007】
前述の概要は、例示的であるのみであって、いかなる形でも限定的であることは意図されていない。上で説明された例示的態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴が、図面および次の詳細な説明を参照することによって明白になる。
【図面の簡単な説明】
【0008】
【図1】分散コンピューティングシステムの例示的実施形態を示す概略図である。
【図2】図1の分散コンピューティングシステムの中央コンピューティングシステムの例示的実施形態を示す図である。
【図3】信頼されないコンピューティングノードによって実行された作業を検証する方法の例示的実施形態を示す流れ図である。
【図4】信頼されないコンピューティングノードによって実行された作業を検証する方法の代替実施形態を示す流れ図である。
【図5】本開示による信頼されないコンピューティングノードによって実行された作業を検証するための例のコンピューティングデバイスを示す図である。
【発明を実施するための形態】
【0009】
次の詳細な説明では、次の詳細な説明の一部を形成する添付図面を参照する。図面では、文脈がそうではないと示さない限り、類似する記号が、通常は類似するコンポーネントを識別する。この詳細な説明、図面、および特許請求の範囲で説明される例示的実施形態は、限定的であることを意図されていない。本明細書で提示される主題の趣旨または範囲から逸脱せずに、他の実施形態を利用することができ、他の変更を行うことができる。本明細書で全体的に説明され図面に示された本開示の諸態様を、さまざまな異なる構成で配置し、置換し、組み合わせ、分離し、設計でき、そのすべてが本明細書で明示的に企図されることが、たやすく理解されるであろう。
【0010】
本明細書で開示される実施形態は、分散コンピューティングシステムに関する。分散コンピューティングシステムは、中央コンピューティングシステムに動作可能に結合された複数の信頼されないコンピューティングノードを含む。中央コンピューティングシステムは、複数の信頼されないコンピューティングノードの処理リソースを利用して、一般に大量の処理リソースを必要とする大規模複雑計算を実行するのを助ける。
【0011】
複数の信頼されないコンピューティングノードは、計算の少なくとも一部を実行できる処理リソースを有する任意のタイプのコンピューティングシステムとすることができる。例は、デスクトップコンピュータ、ラップトップコンピュータ、携帯電話機、およびPDAを含むが、これらに限定はされない。複数の信頼されないコンピューティングノードは、中央コンピューティングシステムがそれらのコンピューティングノードの動作に対する直接制御を有しないので、中央コンピューティングシステムの視点からは信頼されない。
【0012】
したがって、本明細書で開示される実施形態は、中央コンピューティングシステムが、複数の信頼されないコンピューティングノードによって実行された作業を検証する機構を提供する。本明細書で開示される実施形態は、偽造者またはたかり屋である信頼されないコンピューティングノードに対して防御する。偽造者とは、実際には割り当てられた作業を行わない時にそれを行うふりをするノードであり、たかり屋は、それ自体または別のノードによって以前に実行された作業をコピーすることを試みる。破壊者は、悪い結果を完全な計算に注入することを試みる、一種の偽造者である。したがって、偽造者およびたかり屋は、詐欺的な無効な情報を中央コンピューティングシステムに提供する場合がある。
【0013】
さらに、本明細書で開示される実施形態は、複数の信頼されないコンピューティングノードによる共謀に対して防御する。より詳細に説明されるように、信頼されないコンピューティングノードによって実行されるべき異なるが同等の計算を提供することによって、詐欺的な無効な結果をもたらすために一緒に働く2つのノードの能力が、減らされる。
【0014】
一実施形態によれば、中央コンピューティングシステムは、信頼されないコンピューティングノードが実行を助けなければならない第1計算を決定する。一般に、第1計算は、第1の信頼されないコンピューティングノードによって実行される。第1計算を、計算コンポーネントに分割することができ、各サブセットは、1つの信頼されないコンピューティングノードによって実行される。
【0015】
共謀、たかり、または偽造に対して保護するために、中央コンピューティングシステムは、同等の第2計算を作るために第1計算に適用される変換関数をも決定する。変換関数は、第2計算を第1計算と同等にする任意の関数である。したがって、同等な計算は、変換関数が除去されるときに、第1計算と実質的に同一の計算である。変換関数の例に加えて、さらなる詳細を、下で提供する。一般に、同等の第2計算は、第2の信頼されないコンピューティングノードによって実行される。変換関数を、複数の変換関数コンポーネントを含む変換空間から選択することができる。
【0016】
その後、中央コンピューティングシステムは、第1計算を第1の信頼されないコンピューティングノードに割り当て、第2計算を第2の信頼されないコンピューティングノードに割り当てることができ、その結果、両方の計算を実行できるようになる。詐欺または共謀に対して保護するために、第1および第2の信頼されないコンピューティングノードを、ランダムに選択し、割り当てることができる。さらに、同等の第2計算を作るのに使用される変換関数は、追加の保護手段として、第1および第2の信頼されないコンピューティングノードから秘密に保たれる。
【0017】
計算が、信頼されないコンピューティングノードによって実行された後に、第1計算の第1結果を、第1の信頼されないコンピューティングノードから受け取ることができる。第2計算の第2結果も、第2の信頼されないコンピューティングノードから受け取ることができる。
【0018】
第1および第2の結果を分析して、第1および第2の信頼されないコンピューティングノードによって実行された作業を検証することができる。すなわち、結果の分析は、ノードの一方または両方がたかり屋または偽造者であるかどうか、あるいは2つのノードが共謀して詐欺的な無効な結果を提供したかどうかを判定するのを助ける。この分析は、第2結果から変換関数を除去し、その後、第1結果と第2結果とを比較することができる。第2結果からの変換の除去が、通常は変換関数の逆関数を第2結果に適用することによって実行されることを了解されたい。第2結果への変換の逆のこの適用は、以下でより詳細に説明するように、2つの結果を実質的に同一にするので、結果は、結果が有効である場合には一般に同一であり、結果の一方または両方が無効である場合には一般に異なる。詐欺に対するさらなる保護手段として、信頼されないコンピューティングノードのヒストリカル信頼性を、ヒストリカルデータのデータベースを調べることによって分析することができる。さらに、1つまたは複数の確率関数を結果に適用して、結果が有効である確率を判定することができる。
【0019】
本開示のそれぞれの態様の複数の例示的実施形態を、下で例として添付図面を参照して与える。図1は、中央コンピューティングシステム110ならびに複数の信頼されないコンピューティングノード130、140、150、および160を含む分散コンピューティングシステム100の例示的実施形態の概略図である。図1は、任意の追加の個数の信頼されないコンピューティングノード170(省略記号によって示される)を分散コンピューティングシステム100に含めることができることをも示す。当業者は、図1に示されたものとは異なる個数の信頼されないコンピューティングノードがあってもよいことを了解するであろう。多くの実施形態では、数千個または数百万個の信頼されないコンピューティングノードがあってもよい。
【0020】
中央コンピューティングシステム110を、ネットワーク120によって、信頼されないコンピューティングノード130、140、150、160、および170に結合することができる。図1に示されているように、中央コンピューティングシステム110および信頼されないコンピューティングノード130、140、150、160、および170は、ネットワーク120を介して互いに両方向で通信することができる。ネットワーク120は、中央コンピューティングシステム110または信頼されないコンピューティングノード130、140、150、160、および170と互換の任意のネットワークとすることができ、例として、衛星ネットワーク、802.11ネットワーク、パーソナルコンピュータネットワーク(たとえば、LAN、WAN)、無線ネットワーク(たとえば、Bluetooth、WiFi)、セルラネットワーク、電話網(たとえば、地上の通信線またはPSTN)、データネットワーク、インターネット、または類似物、あるいはその任意の組合せを含むことができる。
【0021】
1つの例示的実施形態では、中央コンピューティングシステム110は、信頼されないコンピューティングノード130、140、150、160、および170によって少なくとも部分的に実行されるべき大規模で通常は複雑な計算を生成する。以下でより詳細に説明するように、中央コンピューティングシステム110は、第1計算を生成し、信頼されないコンピューティングノード130、140、150、160、および170のうちのいくつかが実行するために、第1計算の一部をネットワーク120を介して供給することができる。中央コンピューティングシステム110は、信頼されないコンピューティングノード130、140、150、160、および170のうちのいくつかが実行するために、秘密の変換関数に基づいて同等の第2計算をも生成することができる。
【0022】
信頼されないコンピューティングノード130、140、150、および160は、それぞれ処理リソース135、145、155、および165を含む。処理リソース135、145、155、および165は、コンピューティングノード130、140、150、および160が第1計算もしくは第2計算またはこれらの計算の一部を実行することを可能にする、プロセッサと任意の他のコンピュータハードウェアおよび/またはソフトウェアとを表す。また、信頼されないコンピューティングノード170のいずれもが、第1計算または第2計算を実行するためにプロセッサおよび他の処理リソースを含むことに留意されたい。
【0023】
図2に、中央コンピューティングシステム110の例示的実施形態ならびに分散コンピューティングシステム100のより詳細な図を示す。図2では、ネットワーク120が省略され、その結果、この図の追加の特徴を、より明瞭に見られるようになっている。図示されているように、中央コンピューティングシステム110は、これからより詳細に説明される、さまざまな動作モジュールおよびデータベースを含む。本明細書で開示される実施形態から注意をそらさないようにするために、結合されるものとして図示されてはいないが、中央コンピューティングシステム110のさまざまな動作モジュールおよびデータベースを、コンピュータバス、他の配線、または環境が保証するときの無線接続など、任意の妥当な手段によって互いに結合できることを理解されたい。
【0024】
図示されているように、中央コンピューティングシステム110は、プロセッサ210を含む。プロセッサ210は、任意の妥当なプロセッサとすることができ、動作中には、中央コンピューティングシステム110がさまざまな動作を実行することを可能にする。いくつかの実施形態では、プロセッサ210に、中央コンピューティングシステム110のさまざまな動作モジュールによってアクセスして、モジュールに処理リソースを与えることができる。他の実施形態では、動作モジュールは、代替プロセッサへのアクセスを有することができる。
【0025】
中央コンピューティングシステム110は、データベース220をも含む。データベース220は、任意のタイプの妥当な不揮発性メモリまたは揮発性メモリとすることができる。1つの例示的実施形態では、データベース220は、ヒストリ225を含むことができる。ヒストリ225は、信頼されないコンピューティングノード130、140、150、160、および170によって中央コンピューティングシステム110に供給された過去の結果を含むことができる。以下でより詳細に説明するように、ヒストリ125を中央コンピューティングシステム110によって使用して、信頼されないコンピューティングノード130、140、150、160、および170の信頼性を判定することができる。データベース220は、中央コンピューティングシステム110内に含まれるものとして図示されているが、いくつかの実施形態では、データベース220を、中央コンピューティングシステム110からアクセス可能でありながら中央コンピューティングシステム110の外部とすることができる。
【0026】
計算生成モジュール230も、中央コンピューティングシステム110に含まれる。計算生成モジュール230は、信頼されないコンピューティングノード130、140、150、160、および170のうちの1つまたは複数などの、1つまたは複数の信頼されないコンピューティングノードによって実行されるべき第1計算280を生成することができる。第1計算280は、信頼されないコンピューティングノード130、140、150、160、および170が実行を助けることを中央コンピューティングシステム110が望む任意の計算とすることができる。いくつかの例示的実施形態では、第1計算280を、1つまたは少数の信頼されないコンピューティングノード130、140、150、160、および170によって解くことができる単一の問題とすることができる。しかし、第1計算280は、一般に、複数の部分に分解され、計算のために多数の信頼されないコンピューティングノード130、140、150、160、および170に分配される、大規模で複雑な問題である。たとえば、第1計算280を、第1計算コンポーネント280a、280b、および図2で省略記号によって示されているように潜在的に任意の個数の追加の第1計算コンポーネント280cに分割することができる。
【0027】
中央コンピューティングシステム110は、変換関数モジュール240を含む。一実施形態では、変換関数モジュール240は、変換関数245を生成することができる。変換関数245は、一般に、変換関数245が第1計算280に適用される時に、第1計算280と同等の第2計算290が作られる形で第1計算280に関連する。したがって、変換関数245は、一般に、第1計算280に関連する問題のタイプに基づいて選択される。変換関数245が、変換自体および変換関数の逆関数を含むことを了解されたい。
【0028】
もう1つの実施形態では、変換関数モジュール240は、中央コンピューティングシステム110のユーザまたは別のコンピューティングシステムから変換関数を入手することができる。そのような実施形態では、ユーザまたは他のコンピューティングシステムは、変換関数を変換関数モジュール240に供給することができる。代替案では、ユーザまたは他のコンピューティングシステムは、変換関数モジュール240に、使用できるさまざまな変換関数を含む、ある変換テンプレートを選択させ、検証させ、または調整させることができる。したがって、変換関数モジュール240が、変換関数を生成することができ、あるいは、変換関数モジュール240が、ユーザまたは別のコンピューティングシステムから変換関数を入手することができることを了解されたい。たとえば、第1計算280が、各次元が複雑、近似的に連続、または他の形で非常に可変である空間解釈を扱う問題に関連すると仮定する。そのような第1計算280は、線形の変換関数245を示唆する。たとえば、Xが3D形状の集合であり、第1計算280が、Xに含まれる形状の総体積を計算することであると仮定する。すると、変換関数245を、線形変換の空間から選択することができる。
【0029】
述べたように、第1計算280への変換関数245の適用は、第1計算280と同等な第2計算290を作る。前に述べたように、同等な問題または同等な計算とは、変換関数245が除去された時に、第1の問題または第1の計算と実質的に同一の問題または計算である。単純な線形変換を使用して、この点を示すことができる。たとえば、第1計算280が、1+1という単純な式であったと仮定する。さらに、変換関数245が、f(x)=x*100という線形変換であったと仮定する。式1+1に適用されるときに、100+100という同等の第2計算290が作られるはずである。すぐにわかるように、1+1の結果は2であり、100+100の結果は200である。この線形変換の逆を結果200に適用することは、第2計算290に2という結果を与え、これは、第1計算280の2という結果と実質的に同一である。単純な式および単純な線形変換が、例示を簡単にするために使用されたが、より複雑な変換をより複雑な問題に対して使用できることを了解されたい。前に述べたように、第1計算280のタイプは、一般に、どのタイプの変換関数245を同等の第2計算290を作るのに使用できるのかを規定する。
【0030】
1つの例示的実施形態では、変換関数245を、複数の変換関数コンポーネント245a、245b、および図2で省略記号によって示されように潜在的に任意の個数の追加の変換関数コンポーネント245cに分割できる変換空間とすることができる。そのような実施形態では、変換関数コンポーネント245a、245b、および245cのうちの任意の1つを第1計算280に適用して、同等の第2計算290を作ることができる。
【0031】
第1計算280が複数の第1計算コンポーネント280a、280b、および280cに分割される実施形態では、変換関数コンポーネント245a、245b、および245cのうちの任意の1つを特定の第1計算コンポーネントサブセット280a、280b、および280cに適用して、第2計算290を作ることができる。たとえば、変換関数サブセット245bを第1計算コンポーネントサブセット280aに適用して、同等の第2計算290を作ることができる。後の時に、変換関数サブセット245bを第1計算サブセット280bに適用して、同等の第2計算290を作ることができる。さらに後の時に、変換関数サブセット245aを第1計算コンポーネントサブセット280aに適用して、同等の第2計算290を作ることができる。したがって、変換関数空間の変換関数コンポーネント245a、245b、および245cのうちの任意の1つを使用して、同等の第2計算290を作ることができる。
【0032】
中央コンピューティングシステム100は、さらに、割当てモジュール250を含む。割当てモジュール250は、第1計算180および第2計算290を実行するために、信頼されないコンピューティングノード130、140、150、160、および170のうちの2つをランダムに割り当てることができる。2つの信頼されないコンピューティングノード、このケースでは信頼されないコンピューティングノード130および140をランダムに選択しまたは割り当てることによって、2つの信頼されないコンピューティングノードが互いに共謀し、または一方のコンピューティングノードに他方のコンピューティングノードからの結果を盗ませる可能性が、減らされる。
【0033】
図示の実施形態では、信頼されないコンピューティングノード130は、第1計算280を実行するために、割当てモジュール250によってランダムに割り当てられる。計算全体またはより大きくより複雑な計算のサブセットのいずれであれ、第1計算280を、図2に示されているように、信頼されないコンピューティングノード130に供給することができる。次に、信頼されないコンピューティングノード130は、処理リソース135を使用して、第1計算280を少なくとも部分的に実行することができる。
【0034】
割当てモジュール250は、同等の第2計算290を実行するために、信頼されないコンピューティングノード140をランダムに割り当てることができる。第2計算290を、図2に示されているように信頼されないコンピューティングノード140に供給することができる。信頼されないコンピューティングノード140は、処理リソース145を使用して、第2計算290を少なくとも部分的に実行することができる。
【0035】
追加の保護手段として、変換関数245を、信頼されないコンピューティングノード130および140から秘密に保つことができる。了解されるように、信頼されないコンピューティングノード130または140のいずれかが変換関数245のアイデンティティを知った場合には、信頼されないコンピューティングノード130または140の一方または両方が第1計算280および第2計算290の解が何であるべきなのかを推測することを試みることが、はるかに簡単になるはずである。変換関数245を秘密に保つことによって、無効な結果が信頼されないコンピューティングノード130または140によって返される可能性が、減らされる。
【0036】
第1計算280が、前に述べたように複数の第1計算コンポーネント280a、280b、および280cに分割される実施形態では、割当てモジュール250は、第1計算コンポーネント280a、280b、および280cのうちのどれが、信頼されないコンピューティングノード130などのランダムに選択された信頼されないコンピューティングノードに割り当てられるのかを、ランダムに選択することができる。同様に、変換関数245が、複数の変換関数コンポーネント245a、245b、および245cを有する変換空間である実施形態では、割当てモジュール250または変換関数モジュール240は、変換関数コンポーネント245a、245b、および245cのうちのどれが、同等の第2計算290を生成するのに使用されるべきなのかをランダムに選択することができる。第1計算サブセット280a、280b、または280cおよび変換関数サブセット245a、245b、または245cのランダム選択は、この例では信頼されないコンピューティングノード130または140による共謀に対する追加のセキュリティを提供する。
【0037】
受取モジュール260は、この例では、信頼されないコンピューティングノード130から第1計算280の第1結果285を受け取ることができ、信頼されないコンピューティングノード140から第2計算290の第2結果295をも受け取ることができる。
【0038】
前に述べたように、信頼されないコンピューティングノード130および140(ならびに信頼されないコンピューティングノード150、160、および170)は、それらが中央コンピューティングシステム110によって制御されないので、信頼されない。したがって、中央コンピューティングシステム110は、信頼されないコンピューティングノード130および140によって返された結果が有効であるかどうかを知らない。無効な結果を返すことによる結果の偽造または別の信頼されないコンピューティングノードによって実行された作業をコピーすることによるたかりに備えるために、中央コンピューティングシステム110は、分析モジュール270を含む。分析モジュール270は、第1結果285および第2結果295を分析して、信頼されないコンピューティングノード130および140によって実行された作業を検証することができる。
【0039】
1つの例示的実施形態では、分析モジュール270は、第2結果295から変換関数245を除去することによって、第1結果285および第2結果295を分析することができる。次に、分析モジュール270は、第1結果285および第2結果295をお互いと比較することができる。線形変換の例に関して前に上で説明したように、第2結果295からの変換関数245の除去は、信頼されないコンピューティングノード130および140によって、第1計算280および第2計算290が正しく実行され、有効な結果が供給されたときに、第2結果295が第1結果285と実質的に同一となるようにする。したがって、第1結果285と第2結果295とがお互いと一致する場合には、信頼されないコンピューティングノード130および140が有効な結果を提供した可能性が高い。信頼されないコンピューティングノード130と140との両方が無効な同等の結果を提供する形で共謀する可能性や、一方の信頼されないノードが他方の信頼されないノードの結果と一致する詐欺的結果を提供する可能性は、非常に低い。
【0040】
その一方で、分析モジュール270が、比較の後に第1結果285と第2結果295との間の差を見つける場合には、信頼されないコンピューティングノード130および140のうちの少なくとも1つ、おそらく信頼されないコンピューティングノード130と140との両方が、無効な結果を提供したことを意味する可能性がある。その後、これらの結果を中央コンピューティングシステム110によって疑わしいと見なすことができる。
【0041】
1つの例示的実施形態では、第1結果285および/または第2結果295が、一連の中間結果を含む場合がある。たとえば、第1結果285が、一連の第1中間結果285a、285b、および図2で省略記号によって示されるように潜在的に任意の個数の追加の中間結果285cを含む場合がある。同様に、第2結果295が、一連の第2中間結果295a、295b、および図2で省略記号によって示されるように潜在的に任意の個数の追加の中間結果295cを含む場合がある。そのような実施形態では、第1計算280および/または第2計算290を変更して、完全な第1結果285および第2結果295が判定され、中央コンピューティングシステム110に返される前に、中間結果を判定し、中央コンピューティングシステム110に返すことを可能にすることができる。
【0042】
分析モジュール270は、第1中間結果285a、285b、および285cならびに第2中間結果295a、295b、および295cを、たとえばそれらを比較して信頼されないコンピューティングノード130および140が無効な結果を供給したかどうかを判定することによって、分析することができる。第1中間結果285a、285b、および285cが第2中間結果295a、295b、および295cと一致する場合には、それらの結果が有効である可能性が高い。第1中間結果285a、285b、および285cが第2中間結果295a、295b、および295cと一致しない場合には、それらの結果が無効である可能性が高い。中間結果の使用は、信頼されないコンピューティングノード130および140が、両方が同等の無効な中間結果を供給する形で共謀しまたは一方の信頼されないノードが他方の信頼されないノードの中間結果と一致する詐欺的中間結果を提供する可能性が非常に低いので、詐欺および共謀に対する追加の保護を提供する。
【0043】
1つの例示的実施形態では、変換関数245の逆関数を、第2中間結果295a、295b、および295cのそれぞれに適用することができる。そのような適用は、第2中間結果295a、295b、および295cを対応する第1中間結果285a、285b、および285cと同等にするはずである。そのような実施形態では、変換関数245が、単一の関数である必要がないことに留意されたい。たとえば、変換関数245を、それぞれ、第2計算290を作るために第1計算280に、第2中間結果295a、295b、および295cに、ならびに第2結果295に適用される多重の全単射(multiple bijection)とすることができる。
【0044】
述べたように、分析モジュール270は、第1計算280の第1結果285および第2計算290の第2結果295を分析して、それらがおそらく有効であるかどうかを判定する。しかし、分析モジュール270によって実行される分析が、個々の信頼されないコンピューティングノードの信頼性を判定できないことがあり得る。たとえば、信頼されないコンピューティングノード130からの第1結果285が、信頼されないコンピューティングノード140からの第2結果295と一致しない場合に、これは、必ずしも、信頼されないコンピューティングノード130が不正直に詐欺的結果を供給したことを意味しない。信頼されないコンピューティングノード140が詐欺的結果を供給したか、または、信頼されないコンピューティングノード130が、第1計算280を実行する時に本当に間違ったことがあり得る。
【0045】
この例では信頼されないコンピューティングノード130または140のどれが、詐欺的結果または無効な結果を供給した可能性があるのかを判定するのを助けるために、第1結果285および第2結果295は、データベース220に供給され、ヒストリ225に含められる。前に述べたように、ヒストリ225は、信頼されないコンピューティングノード130および信頼されないコンピューティングノード140によって供給された以前の計算からのすべてのヒストリカル結果を含むことができる。
【0046】
分析モジュール270は、ヒストリ225にアクセスして、信頼されないコンピューティングノード130および信頼されないコンピューティングノード140の信頼性を判定することができる。信頼されないコンピューティングノード130が、その結果が一致する信頼されないコンピューティングノードの対に含まれることのヒストリを有する場合には、現在の不一致が、信頼されないコンピューティングノード140によって引き起こされたか、本当の間違いであると仮定することができる。その一方で、信頼されないコンピューティングノード130が、その結果が一致しない信頼されないコンピューティングノードの多数の対に含まれることのヒストリを有する場合には、信頼されないコンピューティングノード130を、疑問視することができ、その結果を無視することができる。類似する分析を、信頼されないコンピューティングノード140および実際にすべての信頼されないコンピューティングノードによって供給された結果に対して実行することができる。したがって、ヒストリ225の使用は、特定の信頼されないコンピューティングノードを信頼すべきかどうかを、その信頼されないコンピューティングノードのヒストリカル動作に基づいて検証するための追加のチェックを提供する。了解されるように、信頼されないコンピューティングノードは、そのヒストリ225に格納された結果の過半数が有効である場合には信頼できる可能性が高く、そのヒストリ225に格納された結果の過半数またはそのかなりの割合が無効である場合には信頼できる可能性が低い。
【0047】
いくつかの実施形態では、第1計算280および/または第2計算290を、暗号化、ディジタル署名、または難読化などのさまざまなテクノロジを用いて補強することもできる。これらのテクノロジは、信頼されないコンピューティングノードによる改竄に対する追加の障壁を提供するために含めることができる。
【0048】
中央コンピューティングシステム110が変換関数245を秘密に保った場合であっても、信頼されないコンピューティングノード130が、変換関数245を学習しまたは推測することが可能である場合がある。その場合には、信頼されないコンピューティングノード130は、無効な第1結果285を悪意を持って供給できる可能性があり、あるいは、第2結果295をより簡単にコピーし、この結果をそれ自体の結果として渡すことができる可能性がある。
【0049】
あるいは、第1計算280が、信頼されないコンピューティングノード130が50%超の確率で正しい答えを推測することを可能にするタイプのものである場合がある。そのような場合には、信頼されないコンピューティングノード130は、第1計算280の実行を止めることができ、正しい結果となる大きい可能性のゆえに、毎回結果を単純に推測することができる。
【0050】
そのような情況を検出するのを助けるために、分析モジュール270は、確率モジュール275を含むことができる。確率モジュールは、第1結果285および第2結果295に1つまたは複数の確率関数を適用して、これらの結果が有効であるかどうかならびに信頼されないコンピューティングノード130、140、150、160、および170が信頼できるものであるかどうかを判定することができる。したがって、第1結果285および第2結果295が正しく判定され、単に正しく推測されたのでも盗まれたのでもないことの確率の判定は、中央コンピューティングシステム110が、信頼されないコンピューティングノード130、140、150、160、および170の信頼性を検証する追加の形を提供する。いくつかの確率関数の例を、これから述べる。
【0051】
ある大きいタスク(第1計算280など)が、多数のxに関するf(x)の計算を必要とすると仮定する。f:X→Yであるものとする。xが一様に分布する確率変数であると考えられる場合に、f(x)の確率分布が狭過ぎ、その結果、正しい値の推測が妥当と思われるようになる場合には、fは、結果yに加えて、ある中間状態sを出力するように変更される。したがって、f(x)=(s,r)である。未知の真の結果を、y=(s,r)を用いて表す。
【0052】
εが、ノードが所有する背景情報であるものとする。ノードが作業を実行しない確率を、P(E(n))によって表す。E(n))の場合には、ノードnは、作業を偽造することを試みている。この場合に、ノードが推測していると言う。正しい答えを推測する確率を、P(y=y|ε)によって表す。
【0053】
作業要求f(x)は、ある計算ノードnに与えられる。それと同時に、別の作業要求f(x’)が生成される。f(x’)=(s’,r’)であるものとする。x’を選択するために、まず、x’=g(x)である場合に限ってg(s)=s’かつg(r)=r’になる、変換関数g:X→Xを見つける。作業要求f(x’)は、別のノードnに与えられ、変換g∈Gが、秘密として保たれる。
【0054】
P(n(g)|ε)は、ノードnが秘密の変換gを学習するか推測する確率であるものとする。gが、大きい空間から選択され、その秘密がセキュアに保たれる場合には、P(n(g)|ε)は、小さくなる。
【0055】
次に、両方のノードは、それに割り当てられた作業を実行すると主張し、結果y=(s,r)およびy=(s’,r’)を報告する。下の表1に、可能である、ノードの異なる結果のさまざまな確率を示す。言い換えると、さまざまな情況に関してy=yがどうなるかを示す。
【0056】
【表1】


表1
【0057】
したがって、yがyと等しくない確率は
【0058】
【数1】


である。
【0059】
図3は、信頼されないコンピューティングノードによって実行された作業を検証する方法300の例示的実施形態の流れ図である。図示の実施形態では、方法300ならびに本明細書で説明する他の方法およびプロセスは、処理ステップ、機能動作、イベント、および/または行為などとして説明することができ、ハードウェア、ソフトウェア、および/またはファームウェアによって実行できる、さまざまな機能ブロックまたはアクションを示す。方法300は、ブロック302、304、306、308、310、および/または312によって示されるように、1つまたは複数の動作を含む。ブロック302では、第1の信頼されないコンピューティングノードによって少なくとも部分的に実行されるべき第1計算を決定する。たとえば、1つの例示的実施形態では、計算生成モジュール230が、信頼されないコンピューティングノード130などの第1の信頼されないコンピューティングノードによって少なくとも部分的に実行されるべき第1計算280を生成することができる。いくつかの実施形態では、第1計算280を、第1計算コンポーネント280a、280b、および280cに分割することができる。
【0060】
ブロック304では、第2の信頼されないコンピューティングノードによって少なくとも部分的に実行されるべき同等の第2計算を作るために第1計算に適用されるべき変換関数を決定する。たとえば、1つの例示的実施形態では、変換関数モジュール240は、第1計算280のタイプに基づいて、変換関数245を生成することができる。もう1つの例示的実施形態では、変換関数モジュールは、コンピューティングシステム110のユーザまたは別のコンピューティングシステムから変換関数を入手することができる。変換関数245を、第1計算280に適用して、信頼されないコンピューティングノード140などの第2の信頼されないコンピューティングノードによって実行できる第2計算290を作ることができる。いくつかの実施形態では、変換関数245を、複数の変換関数コンポーネント245a、245b、および245cを含む変換空間とすることができる。
【0061】
ブロック306では、第1計算を、第1の信頼されないコンピューティングノードに割り当て、ブロック308では、第2計算を、第2の信頼されないコンピューティングノードに割り当てる。第1の信頼されないコンピューティングノードおよび第2の信頼されないコンピューティングノードへの第1計算および第2計算の割当ては、それぞれ、第1および第2の信頼されないコンピューティングノードから変換関数を秘密に保ちながら行われる。たとえば、1つの例示的実施形態では、割当てモジュール250が、第1計算280を信頼されないコンピューティングノード130に割り当てることができ、第2計算290を信頼されないコンピューティングノード140に割り当てることができる。
【0062】
ブロック310では、第1計算の第1結果を第1の信頼されないコンピューティングノードから受け取り、第2計算の第2結果を第2の信頼されないコンピューティングノードから受け取る。たとえば、1つの例示的実施形態では、受取モジュール260は、信頼されないコンピューティングノード130から第1結果285を受け取ることができ、信頼されないコンピューティングノード140から第2結果295を受け取ることができる。いくつかの実施形態では、第1結果285は、第1中間結果285a、285b、および285cを含むことができる。第2結果295は、第2中間結果295a、295b、および295cを含むことができる。
【0063】
ブロック312では、第1結果および第2結果を分析して、信頼されないコンピューティングノードによって実行された作業を検証する。1つの例示的実施形態では、分析モジュール270は、第1結果285および第2結果295を分析して、信頼されないコンピューティングノード130および信頼されないコンピューティングノード140によって実行された作業を検証することができる。この形で、信頼されないコンピューティングノード130および信頼されないコンピューティングノード140の信頼性を判定することができる。
【0064】
いくつかの実施形態では、分析モジュール270は、第2結果295から変換関数245を除去し、その後、第2結果295を第1結果285と比較する。結果が実施的に同一である場合には、信頼されないコンピューティングノード130および信頼されないコンピューティングノード140が有効な結果を供給した可能性が高い。しかし、結果が異なる場合には、信頼されないコンピューティングノード130および信頼されないコンピューティングノード140の一方または両方が無効な結果を供給した可能性が高い。
【0065】
ヒストリカルデータベースにアクセスすることもでき、その結果、信頼されないコンピューティングノード130および信頼されないコンピューティングノード140の実行の履歴を、以前に説明したように判定することができる。さらに、1つまたは複数の確率関数を結果に適用して、信頼されないコンピューティングノード130および信頼されないコンピューティングノード140の信頼性を判定するのを助けることができる。
【0066】
方法300は、信頼されないコンピューティングノード130および信頼されないコンピューティングノード140が、結果の推測または無効な結果の供給などの詐欺にかかわったかどうかを中央コンピューティングシステム110が判定するための機構を提供する。さらに、方法300は、中央コンピューティングシステム110が、無効な結果を提供するための信頼されないコンピューティングノード130と信頼されないコンピューティングノード140との間の共謀を判定することを可能にする。
【0067】
当業者は、上記ならびに本明細書で開示される他のプロセスおよび方法について、それらのプロセスおよび方法で実行される機能を、異なる順序で実施できることを了解するであろう。さらに、概要を示されたステップおよび動作は、例としてのみ提供され、ステップおよび方法の一部を、開示される実施形態の本質から逸脱せずに、オプションとし、より少数のステップおよび動作に組み合わせ、あるいは追加のステップおよび動作に拡張することができる。
【0068】
図4は、信頼されないコンピューティングノードによって実行された作業を検証する代替の方法400の例示的実施形態の流れ図である。方法400は、ブロック402、404、406、408、410、412、414、416、および/または418によって示される1つまたは複数の動作を含む。ブロック402では、第1計算および変換関数コンポーネントを含む変換空間を選択する。たとえば、第1計算280を、計算生成モジュール230によって選択することができる。変換関数コンポーネント245a、245b、および245cを含む変換関数245を、第1計算280に基づいて変換関数モジュール240によって選択することができる。
【0069】
ブロック404では、第1計算をコンポーネントに分割する。たとえば、第1計算280を、計算生成モジュール230によって第1計算コンポーネント280a、280b、および280cに分割することができる。
【0070】
ブロック406では、変換関数コンポーネントのうちの1つを、第1計算コンポーネントのうちの1つに適用するためにランダムに選択する。これが、第2計算を作る。たとえば、第1変換関数サブセット245aをランダムに選択し、ランダムに選択された第1計算サブセット280aに適用することができる。これは、第2計算290を作ることができる。
【0071】
ブロック408では、第1計算サブセットおよび第2計算を実行するために、信頼されないコンピューティングノードの対をランダムに選択する。たとえば、割当てモジュール250は、第1計算サブセット280aを実行するために信頼されないコンピューティングノード130を、第2計算290を実行するために信頼されないコンピューティングノード140をランダムに選択することができる。
【0072】
ブロック410では、ランダムに選択された変換関数サブセットを秘密に保ちながら、第1計算サブセットが、第1の信頼されないコンピューティングノードに割り当てられ、第2計算が、第2の信頼されないコンピューティングノードに割り当てられる。たとえば、割当てモジュール250は、第1計算サブセット280aを信頼されないコンピューティングノード130に割り当てることができ、第2計算290を信頼されないコンピューティングノード140に割り当てることができる。変換関数サブセット245aは、信頼されないコンピューティングノードから秘密に保たれる。
【0073】
ブロック412では、第1結果を第1の信頼されないコンピューティングノードから受け取り、第2結果を第2の信頼されないコンピューティングノードから受け取る。たとえば、受取モジュール260は、信頼されないコンピューティングノード130から第1結果285を受け取ることができ、信頼されないコンピューティングノード140から第2結果295を受け取ることができる。
【0074】
ブロック414では、第1結果および第2結果を分析する。たとえば、分析モジュール270は、第1結果285および第2結果295を、前に説明した形のいずれかで分析することができる。
【0075】
ブロック416では、第1結果および第2結果をデータベースに記録する。たとえば、第1結果285および第2結果295を、データベース220に記録することができる。結果を、ヒストリ225に追加することができ、前に説明したように信頼されないコンピューティングノードの信頼性を判定するのを助けるのに使用することができる。
【0076】
判断ブロック418では、結果が有効であったかどうかを判定する。この判定は、前に説明したように、結果の比較、ヒストリカル分析、および確率関数の適用を使用して行うことができる。
【0077】
結果が、有効である可能性が高いと判定される場合には(判断ブロック418のYes)、この方法は、実行すべき他の計算がない場合に終了することができる。そうではなく、実行すべき他の計算がある場合には、この方法はブロック402に戻り、この方法が繰り返される。
【0078】
結果が、有効である可能性が高くはないと判定される場合には(判断ブロック418のNo)、この方法は、ブロック406に戻ることができ、ここで、第1および第2の信頼されないコンピューティングノードとは異なる、2つの新しい信頼されないコンピューティングノードを、ランダムに選択することができる。その後、方法400の残りのブロックを実行して、新たに選択された信頼されないコンピューティングノードが有効な結果を供給するかどうかを判定することができる。たとえば、ブロック406に戻った後に、割当てモジュール250は、第1計算サブセット280aを実行するために信頼されないコンピューティングノード150をランダムに選択することができ、第2計算290を実行するために信頼されないコンピューティングノード160をランダムに選択することができる。その後、方法400の残りのブロックを実行することができる。
【0079】
本開示は、さまざまな態様の例示として意図された、本願で説明される特定の実施形態に関して限定されてはならない。当業者が了解するように、その趣旨および範囲から逸脱せずに、多数の修正形態および変形形態を作ることができる。本明細書で列挙されるものに加えて、本開示の範囲に含まれる機能的に同等の方法および装置は、前述の説明から当業者には明白であろう。そのような修正形態および変形形態は、添付の特許請求の範囲の範囲に含まれることが意図されている。本開示は、添付の特許請求の範囲に与えられる同等物のすべての範囲に加えて、添付の特許請求の範囲の項目のみによって限定されなければならない。本開示が、もちろん変化することのできる特定の方法、試薬、化合物、合成物、または生体系に限定されてはならないことを理解されたい。本明細書で使用される用語法が、特定の実施形態を説明するためのみのものであって、限定的であることを意図されていないことをも理解されたい。
【0080】
例示的実施形態では、本明細書で説明される動作、プロセスなどのいずれをも、コンピュータ可読媒体に格納されたコンピュータ可読命令として実施することができる。コンピュータ可読命令を、モバイルユニット、ネットワーク要素、および/または任意の他のコンピューティングデバイスのプロセッサによって実行することができる。
【0081】
システムの諸態様のハードウェア実施態様とソフトウェア実施態様との間には、区別がほとんど残されておらず、ハードウェアまたはソフトウェアの使用は、一般に(ある文脈でハードウェアとソフトウェアとの間の選択が重要になり得るという点で、必ずではないが)、コスト対効率のトレードオフを表す設計選択である。本明細書で説明されるプロセスおよび/またはシステムおよび/または他のテクノロジを実施できるさまざまな手段(たとえば、ハードウェア、ソフトウェア、および/またはファームウェア)があり、その上、好ましい手段は、それらのプロセスおよび/またはシステムおよび/または他のテクノロジが展開される文脈に伴って変化する。たとえば、実装者が、速度および正確さが主要であると判定する場合に、実装者は、主にハードウェア手段および/またはファームウェア手段を選ぶことができ、柔軟性が主要である場合には、実装者は、主にソフトウェア実施態様を選ぶことができ、あるいは、やはりその代わりに、実装者は、ハードウェア、ソフトウェア、および/またはファームウェアのある組合せを選ぶことができる。
【0082】
前述の詳細な説明は、ブロック図、流れ図、および/または例の使用を介してデバイスおよび/またはプロセスのさまざまな実施形態を示した。そのようなブロック図、流れ図、および/または例が、1つまたは複数の機能および/または動作を含む限り、そのようなブロック図、流れ図、または例に含まれる各機能および/または各動作を、個別におよび/または集合的に、広範囲のハードウェア、ソフトウェア、ファームウェア、または事実上すべてのその組合せによって実施できることが、当業者によって理解されるであろう。一実施形態では、本明細書で説明される主題の複数の部分を、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディジタル信号プロセッサ(DSP)、または他の集積フォーマットを介して実施することができる。しかし、当業者は、本明細書で開示される実施形態のいくつかの態様を、全体的にまたは部分的に、集積回路内で、1つまたは複数のコンピュータ上で動作する1つまたは複数のコンピュータプログラムとして(たとえば、1つまたは複数のコンピュータシステム上で動作する1つまたは複数のプログラムとして)、1つまたは複数のプロセッサ上で動作する1つまたは複数のプログラムとして(たとえば、1つまたは複数のマイクロプロセッサ上で動作する1つまたは複数のプログラムとして)、ファームウェアとして、または事実上すべてのそれらの組合せとして同等に実施できることと、回路網の設計ならびに/あるいはソフトウェアおよびまたはファームウェアのコードの記述が、本開示を考慮すると当業者の技量に十分に含まれることとを認めるであろう。さらに、当業者は、本明細書で説明される主題の機構を、さまざまな形でプログラム製品として配布できることと、本明細書で説明される主題の例示的実施形態が、配布を実際に実行するのに使用される信号担持媒体の特定のタイプにかかわりなく適用されることとを了解するであろう。信号担持媒体の例は、フロッピディスク、ハードディスクドライブ、CD、DVD、ディジタルテープ、コンピュータメモリ、その他などの記録可能型媒体と、ディジタル通信媒体および/またはアナログ通信媒体(たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど)などの伝送型媒体とを含むが、これらに限定はされない。
【0083】
当業者は、当技術分野で、デバイスおよび/またはプロセスを本明細書で示す形で記述し、その後、工学的実践を使用して、そのように記述されたデバイスおよび/またはプロセスをデータ処理システムに統合することが一般的であることを認めるであろう。すなわち、本明細書で説明されるデバイスおよび/またはプロセスの少なくとも一部を、妥当な量の実験を介してデータ処理システムに統合することができる。当業者は、通常のデータ処理システムが、一般に、システムユニットハウジング、ビデオディスプレイデバイス、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびディジタル信号プロセッサなどのプロセッサ、オペレーティングシステム、ドライバ、グラフィカルユーザインターフェース、およびアプリケーションプログラムなどの計算エンティティ、タッチパッドまたはタッチスクリーンなどの1つまたは複数の対話デバイス、ならびに/あるいはフィードバックループおよび制御モータ(たとえば、位置および/または速度を感知するフィードバック、コンポーネントおよび/または量を移動しかつ/または調整する制御モータ)を含む制御システムのうちの1つまたは複数を含むことを認めるであろう。通常のデータ処理システムを、一般にデータコンピューティング/通信および/またはネットワークコンピューティング/通信システムで見られるものなど、任意の適切な市販コンポーネントを利用して実施することができる。
【0084】
本明細書で説明される主題は、時々、異なる他のコンポーネントに含まれるかこれに接続される異なるコンポーネントを示す。そのような図示のアーキテクチャが、単に例示であることと、実際に、同一の機能性を達成する多数の他のアーキテクチャを実施できることとを理解されたい。概念的な意味で、同一の機能性を達成するためのコンポーネントのすべての配置は、所望の機能性が達成されるように効果的に「関連付けられる」。したがって、特定の機能性を達成するために組み合わされる本明細書の任意の2つのコンポーネントを、アーキテクチャまたは中間コンポーネントにかかわりなく、所望の機能性が達成されるように互いに「関連付けられる」と見なすことができる。同様に、そのように関連付けられた任意の2つのコンポーネントを、所望の機能性を達成するために互いに「動作可能に接続される」または「動作可能に結合される」と見なすこともでき、そのように関連付けられ得る任意の2つのコンポーネントを、所望の機能性を達成するために互いに「動作可能に結合可能である」と見なすこともできる。動作可能に結合可能の特定の例は、物理的に嵌合可能なコンポーネントおよび/または物理的に相互作用するコンポーネント、ならびに/あるいは無線で相互作用可能なコンポーネントおよび/または無線で相互作用するコンポーネント、ならびに/あるいは論理的に相互作用するコンポーネントおよび/または論理的に相互作用可能なコンポーネントを含むが、これらに限定はされない。
【0085】
図5に、本開示による分散コンピューティングシステム内の信頼されないコンピューティングノードによって実行された作業を検証するために配置された例のコンピューティングデバイス500を示す。非常に基本的な構成502では、コンピューティングデバイス500は、一般に、1つまたは複数のプロセッサ504およびシステムメモリ506を含む。メモリバス508を、プロセッサ504とシステムメモリ506との間で通信するのに使用することができる。
【0086】
所望の構成に応じて、プロセッサ504を、マイクロプロセッサ(μP)、マイクロコントローラ(μC)、ディジタル信号プロセッサ(DSP)、またはその任意の組合せを含むがこれらに限定はされない任意のタイプのプロセッサとすることができる。プロセッサ504は、レベル1キャッシュ510およびレベル2キャッシュ512などのキャッシングのもう1つのレベル、プロセッサコア514、およびレジスタ516を含むことができる。例のプロセッサコア514は、算術論理ユニット(ALU)、浮動小数点ユニット(FPU)、ディジタル信号処理コア(DSPコア)、またはその任意の組合せを含むことができる。例のメモリコントローラ518を、プロセッサ504と共に使用することもでき、あるいは、いくつかの実施態様では、メモリコントローラ518を、プロセッサ504の内部の部分とすることができる。
【0087】
所望の構成に応じて、システムメモリ506を、揮発性メモリ(RAMなど)、不揮発性メモリ(ROM、フラッシュメモリ、その他など)、またはその任意の組合せを含むがこれらに限定はされない任意のタイプのメモリとすることができる。システムメモリ506は、オペレーティングシステム520、1つまたは複数のアプリケーション522、およびプログラムデータ524を含むことができる。アプリケーション522は、図3の方法300および図4の方法400に関して説明されたものを含む本明細書で説明される機能を実行するように配置された検証アプリケーション526を含むことができる。プログラムデータ524は、信頼されないコンピューティングノードによって供給された結果を分析するのに有用である可能性がある分析情報528を含むことができる。いくつかの実施形態では、アプリケーション522を、本明細書で説明されるように信頼されないコンピューティングノードによって実行された作業を検証できるように、オペレーティングシステム520上でプログラムデータ524を用いて動作するように配置することができる。この説明された基本構成502は、図5では、内側の破線の中のコンポーネントによって示されている。
【0088】
コンピューティングデバイス500は、基本構成502と任意の必要なデバイスおよびインターフェースとの間の通信を容易にする追加の特徴または機能性ならびに追加のインターフェースを有することができる。たとえば、バス/インターフェースコントローラ530を使用して、基本構成502と1つまたは複数のデータストレージデバイス532との間のストレージインターフェースバス534を介する通信を容易にすることができる。データストレージデバイス532は、リムーバブルストレージデバイス536、ノンリムーバブルストレージデバイス538、またはその組合せとすることができる。リムーバブルストレージデバイスおよびノンリムーバブルストレージデバイスの例は、少数を挙げると、フレキシブルディスクドライブおよびハードディスクドライブ(HDD)などの磁気ディスクデバイス、コンパクトディスク(CD)ドライブまたはディジタル多用途ディスク(DVD)ドライブなどの光ディスクドライブ、ソリッドステートドライブ(SSD)、およびテープドライブを含む。コンピュータ記憶媒体の例は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報のストレージのための任意の方法またはテクノロジで実施された、揮発性および不揮発性の、リムーバブルおよびノンリムーバブルの媒体を含むことができる。
【0089】
システムメモリ506、リムーバブルストレージデバイス536、およびノンリムーバブルストレージデバイス538は、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ、もしくは他のメモリテクノロジ、CD−ROM、ディジタル多用途ディスク(DVD)、もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、または所望の情報を格納するのに使用でき、コンピューティングデバイス500によってアクセスできる任意の他の媒体を含むが、これらに限定はされない。すべてのそのようなコンピュータ記憶媒体を、コンピューティングデバイス500の一部とすることができる。
【0090】
コンピューティングデバイス500は、さまざまなインターフェースデバイス(たとえば、出力デバイス542、周辺インターフェース544、および通信デバイス546)から基本構成502へのバス/インターフェースコントローラ530を介する通信を容易にするインターフェースバス540をも含むことができる。例の出力デバイス542は、グラフィックス処理ユニット548およびオーディオ処理ユニット550を含み、グラフィックス処理ユニット548およびオーディオ処理ユニット550は、1つまたは複数のA/Vポート552を介してディスプレイまたはスピーカなどのさまざまな外部デバイスと通信するように構成され得る。例の周辺インターフェース544は、シリアルインターフェースコントローラ554またはパラレルインターフェースコントローラ556を含み、シリアルインターフェースコントローラ554またはパラレルインターフェースコントローラ556は、入力デバイス(たとえば、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなど)などの外部デバイスまたは他の周辺デバイス(たとえば、プリンタ、スキャナなど)と1つまたは複数のI/Oポート558を介して通信するように構成され得る。例の通信デバイス546は、ネットワークコントローラ560を含み、ネットワークコントローラ560は、ネットワーク通信リンクを介し、1つまたは複数の通信ポート564を介する1つまたは複数の他のコンピューティングデバイス562との通信を容易にするように配置され得る。
【0091】
ネットワーク通信リンクを、通信媒体の1つの例とすることができる。通信媒体を、一般に、搬送波または他のトランスポート機構などの変調されたデータ信号内のコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータによって実施することができ、通信媒体は、任意の情報配布媒体を含むことができる。「変調されたデータ信号」は、その特性のうちの1つまたは複数を、信号内で情報を符号化する形でセットされまたは変更された信号とすることができる。限定ではなく例として、通信媒体は、有線ネットワークまたは直接配線接続などの有線媒体と、音響、ラジオ周波数(RF)、マイクロ波、赤外線(IR)、および他の無線媒体などの無線媒体とを含むことができる。用語コンピュータ可読媒体は、本明細書で使用されるときに、記憶媒体と通信媒体との両方を含むことができる。
【0092】
コンピューティングデバイス500を、セル電話機、携帯情報端末(PDA)、パーソナルメディアプレイヤデバイス、無線ウェブウォッチデバイス、パーソナルヘッドセットデバイス、特定用途向けデバイス、または上記の機能のいずれかを含むハイブリッドデバイスなどの小フォームファクタのポータブル(またはモバイル)電子デバイスの一部として実施することができる。コンピューティングデバイス500を、ラップトップコンピュータ構成と非ラップトップコンピュータ構成との両方を含むパーソナルコンピュータとして実施することもできる。
【0093】
本明細書での実質的にすべての複数形および/または単数形の用語の使用に関して、当業者は、文脈および/または応用例に適切に、複数形から単数形におよび/または単数形から複数形に変換することができる。さまざまな単数/複数の置換が、明瞭にするために本明細書で明示的に示される場合がある。
【0094】
一般に、本明細書、特に添付の特許請求の範囲(たとえば、添付の特許請求の範囲の本体)で使用される用語は、一般に、「オープンな」用語として意図されていること(たとえば、用語「including(含む)」は、「including but not limited to(を含むがこれに限定されない)」と解釈されなければならず、用語「having(有する)」は、「having at least(少なくとも〜を有する)」と解釈されなければならず、用語「includes(含む)」は、「includes but is not limited to(を含むがこれに限定されない)」と解釈されなければならないことなど)が、当業者によって理解されるであろう。さらに、特定の個数の導入される請求項の記述が意図される場合には、そのような意図が、特許請求の範囲で明示的に記述され、そのような記述がない場合には、そのような意図が存在しないことが、当業者によって理解されるであろう。たとえば、理解の助けとして、次の添付の特許請求の範囲は、請求項の記述を導入するために導入句「at least one(少なくとも1つの)」および「one or more(1つまたは複数の)」の使用を含む場合がある。しかし、そのような句の使用は、同一の請求項が導入句「one or more」または「at least one」および「a」または「an」などの不定冠詞を含むときであっても、不定冠詞「a」または「an」による請求項の記述の導入が、そのように導入された請求項の記述を含む任意の特定の請求項を1つのみのそのような記述を含む実施形態に限定することを暗示すると解釈されてはならず(たとえば、「a」および/または「an」は、「at least one」または「one or more」を意味すると解釈されなければならない)、同一のことが、請求項の記述を導入するのに使用される定冠詞の使用にもあてはまる。さらに、特定の個数の導入される請求項の記述が明示的に記述される場合であっても、当業者は、そのような記述を、少なくとも記述された数を意味する(たとえば、他の修飾成句を伴わない「2つの記述」という最低限の記述は、少なくとも2つの記述または複数の記述を意味する)と解釈しなければならないことを認めるであろう。さらに、「at least one of A,B,and C,etc.(A、B、およびCのうちの少なくとも1つ、など)」に類似する慣例が使用される場合に、一般に、そのような構文は、当業者がその慣例を理解する意味であることが意図されている(たとえば、「a system having at least one of A,B,and C(A、B、およびCのうちの少なくとも1つを有するシステム)」は、Aのみ、Bのみ、Cのみ、AとBとを一緒に、AとCとを一緒に、BとCとを一緒に、ならびに/またはA、B、およびCを一緒に有するシステムを含むが、これに限定はされないなど)。「at least one of A,B,or C,etc.(A、B、またはCのうちの少なくとも1つ、など)」に類似する慣例が使用される場合に、一般に、そのような構文は、当業者がその慣例を理解する意味であることが意図されている(たとえば、「a system having at least one of A,B,or C(A、B、またはCのうちの少なくとも1つを有するシステム)」は、Aのみ、Bのみ、Cのみ、AとBとを一緒に、AとCとを一緒に、BとCとを一緒に、ならびに/またはA、B、およびCを一緒に有するシステムを含むが、これに限定はされないなど)。さらに、複数の代替の項目を表す事実上すべての選言的単語および/または句は、明細書、特許請求の範囲、または図面のいずれに含まれるものであれ、項目のうちの1つ、項目のいずれか、または両方の項目を含む可能性を企図すると理解されなければならないことが、当業者によって理解されるであろう。たとえば、句「A or B(AまたはB)」は、「A」または「B」または「AおよびB」の可能性を含むと理解される。
【0095】
さらに、本開示の特徴または態様が、Markush groupに関して説明される場合に、当業者は、本開示が、これによってMarkush groupの任意の個々のメンバまたはメンバのサブグループに関しても説明されることを認めるであろう。
【0096】
当業者によって理解されるように、書面による説明を提供することに関してなど、すべてにおいて、本明細書で開示されるすべての範囲は、任意のすべての可能な部分範囲およびその部分範囲の組合せをも包含する。すべてのリストされた範囲を、少なくとも等しい半分、1/3、1/4、1/5、1/10などに分割された同一の範囲を十分に記述し、可能にするものとしてたやすく認めることができる。非限定的な例として、本明細書で述べられる各範囲を、下側1/3、中央1/3、および上側1/3などにたやすく分解することができる。やはり当業者によって理解されるように、「up to(まで)」、「at least(少なくとも)」、および類似物などのすべての言葉は、記述された数を含み、その後に上で述べたように部分範囲に分割され得る範囲に言及する。最後に、当業者によって理解されるように、範囲は、各個々のメンバを含む。したがって、たとえば、1〜3個のセルを有する群は、1個、2個、または3個のセルを有する群に言及する。同様に、1〜5個のセルを有する群は、1個、2個、3個、4個、または5個のセルを有する群に言及するなどである。
【0097】
前述から、本開示のさまざまな実施形態が、本明細書で例示のために説明されたことと、さまざまな変更を、本開示の範囲および趣旨から逸脱せずに行うことができることとを了解されたい。したがって、本明細書で開示されるさまざまな実施形態は、限定的であることを意図されてはおらず、真の範囲および趣旨は、次の特許請求の範囲によって示される。

【特許請求の範囲】
【請求項1】
中央コンピューティングシステムに動作可能に結合された複数の信頼されないコンピューティングノードを含むコンピューティングシステムにおいて、前記中央コンピューティングシステムが前記複数の信頼されないコンピューティングノードによって実行された作業を検証する方法であって、
第1の信頼されないコンピューティングノードによって少なくとも部分的に実行されるべき第1計算を前記中央コンピューティングシステムで決定することと、
第2計算を作るために前記第1計算に適用されるべき変換関数を前記中央コンピューティングシステムで決定することであって、前記変換関数は、前記第2計算を前記第1計算と同等にするように構成され、前記第2計算は、第2の信頼されないコンピューティングノードによって少なくとも部分的に実行されるべきものである、決定することと、
前記第1の信頼されないコンピューティングノードによって実行されるために前記第1計算を前記中央コンピューティングシステムで割り当てることと、
前記変換関数を前記第1の信頼されないコンピューティングノードおよび前記第2の信頼されないコンピューティングノードから秘密に保ちながら、前記第2の信頼されないコンピューティングノードによって実行されるために前記第2計算を前記中央コンピューティングシステムで割り当てることと、
前記第1計算の第1結果を前記第1の信頼されないコンピューティングノードから、および前記第2計算の第2結果を前記第2の信頼されないコンピューティングノードから、前記中央コンピューティングシステムで受け取ることと、
前記第1の信頼されないコンピューティングノードおよび前記第2の信頼されないコンピューティングノードによって実行された前記作業を検証するために前記第1結果および前記第2結果を前記中央コンピューティングシステムで分析することと
を含む方法。
【請求項2】
前記第1の信頼されないコンピューティングノードおよび前記第2の信頼されないコンピューティングノードによって実行された前記作業を検証するために前記第1結果および前記第2結果を分析することは、
前記第2結果から前記変換関数を除去することと、
前記第2結果を前記第1結果と比較することであって、前記変換関数を除去することは、前記第1計算および前記第2計算がそれぞれ正しく実行され、有効な結果が提供された時に、前記第2結果を前記第1結果と実質的に同一にする、比較することと
を含み、前記第1結果と前記第2結果との間の差は、前記第1の信頼されないコンピューティングノードもしくは前記第2の信頼されないコンピューティングノードのいずれかまたは両方のノードが無効な結果を提供したことを表わす、
請求項1に記載の方法。
【請求項3】
前記第1計算を複数の第1計算コンポーネントに分割することをさらに含む、請求項1に記載の方法。
【請求項4】
複数の変換関数コンポーネントを含む変換関数を決定することと、
前記第2計算を複数の第2計算コンポーネントに分割することと、
前記複数の変換関数コンポーネントの第1変換関数サブセットを選択することと、
前記第2計算を作るために前記複数の第1計算コンポーネントのうちの1つに前記第1変換関数サブセットを適用することと
をさらに含む、請求項3に記載の方法。
【請求項5】
前記第1の信頼されないコンピューティングノードおよび前記第2の信頼されないコンピューティングノードのそれぞれは、複数の信頼されないコンピューティングノードのうちの1つであり、前記方法は、
前記第1の信頼されないコンピューティングノードに前記第1計算を割り当てることは、前記中央コンピューティングシステムが、前記複数の信頼されないコンピューティングノードから前記第1の信頼されないコンピューティングノードをランダムに選択し、前記第1の信頼されないコンピューティングノードに前記第1計算サブセットをランダムに割り当てることを含み、
前記第2の信頼されないコンピューティングノードに前記第2計算を割り当てることは、前記中央コンピューティングシステムが、前記複数の信頼されないコンピューティングノードから前記第2の信頼されないコンピューティングノードをランダムに選択し、前記第2の信頼されないコンピューティングノードに前記第2計算をランダムに割り当てることを含む
をさらに含む、請求項4に記載の方法。
【請求項6】
前記第1結果および前記第2結果を、前記第1の信頼されないコンピューティングノードまたは前記第2の信頼されないコンピューティングノードによって実行された過去の計算からの結果を含むデータベースに格納することと、
前記データベースに格納された前記第1の信頼されないコンピューティングノードまたは前記第2の信頼されないコンピューティングノードのそれぞれの結果全体に基づいて、前記第1の信頼されないコンピューティングノードまたは前記第2の信頼されないコンピューティングノードが信頼できるかどうかを判定することであって、前記第1の信頼されないコンピューティングノードまたは前記第2の信頼されないコンピューティングノードは、前記格納された結果の過半数が有効である場合には信頼できる可能性が高く、前記第1の信頼されないコンピューティングノードまたは前記第2の信頼されないコンピューティングノードは、前記格納された結果の過半数が無効である場合には信頼できる可能性が高くはない、判定することと
をさらに含む、請求項1に記載の方法。
【請求項7】
前記第1の信頼されないコンピューティングノードおよび前記第2の信頼されないコンピューティングノードによって実行された前記作業を検証するために前記第1結果および前記第2結果を分析することは、前記第1結果および前記第2結果が有効であるかどうかを判定するために、前記第1結果および前記第2結果に1つまたは複数の確率関数を適用することを含む、請求項1に記載の方法。
【請求項8】
前記第1結果および前記第2結果が有効ではないと判定する時に、前記第1計算および前記第2計算を実行するために第3の信頼されないコンピューティングノードおよび第4の信頼されないコンピューティングノードをランダムに選択することをさらに含む、請求項7に記載の方法。
【請求項9】
中央コンピューティングシステムが前記中央コンピューティングシステムと通信する複数の信頼されないコンピューティングノードによって実行された作業を検証する方法を実施するために、前記中央コンピューティングシステムで使用されるコンピュータプログラム製品であって、プロセッサによって実行される時に、前記中央コンピューティングシステムに、
第1の信頼されないコンピューティングノードによって少なくとも部分的に実行されるべき第1計算を決定することと、
第2計算を作るために前記第1計算に適用されるべき変換関数を決定することであって、前記変換関数は、前記第2計算を前記第1計算と同等にするように構成され、前記第2計算は、第2の信頼されないコンピューティングノードによって少なくとも部分的に実行されるべきものである、決定することと、
前記第1の信頼されないコンピューティングノードによって実行されるために前記第1計算を割り当てることと、
前記変換関数を前記第1の信頼されないコンピューティングノードおよび前記第2の信頼されないコンピューティングノードから秘密に保ちながら、前記第2の信頼されないコンピューティングノードによって実行されるために前記第2計算を割り当てることと、
前記第1計算の第1結果を前記第1の信頼されないコンピューティングノードから、および前記第2計算の第2結果を前記第2の信頼されないコンピューティングノードから、受け取ることと、
前記第1の信頼されないコンピューティングノードおよび前記第2の信頼されないコンピューティングノードによって実行された前記作業を検証するために前記第1結果および前記第2結果を分析することと
を行わせるコンピュータ実行可能命令をその上に格納された1つまたは複数の有形のコンピュータ可読媒体を含む、コンピュータプログラム製品。
【請求項10】
前記第1の信頼されないコンピューティングノードおよび前記第2の信頼されないコンピューティングノードによって実行された前記作業を検証するために前記第1結果および前記第2結果を分析することは、
前記第2結果から前記変換関数を除去することと、
前記第2結果を前記第1結果と比較することであって、前記変換関数を除去することは、前記第1計算および前記第2計算のそれぞれが正しく実行され、有効な結果が提供された時に、前記第2結果を前記第1結果と実質的に同一にする、比較することと
を含み、前記第1結果と前記第2結果との間の差は、前記第1の信頼されないコンピューティングノードもしくは前記第2の信頼されないコンピューティングノードのいずれかまたは両方の信頼されないコンピューティングノードが無効な結果を提供したことを表わす、
請求項9に記載のコンピュータプログラム製品。
【請求項11】
前記コンピュータ実行可能命令は、プロセッサによって実行される時に、さらに、前記中央コンピューティングシステムに、前記第1計算を複数の第1計算コンポーネントに分割させる、請求項9に記載のコンピュータプログラム製品。
【請求項12】
前記コンピュータ実行可能命令は、プロセッサによって実行される時に、さらに、前記中央コンピューティングシステムに、
複数の変換関数コンポーネントを含む変換関数を決定することと、
前記第2計算を複数の第2計算コンポーネントに分割することと、
前記複数の変換関数コンポーネントの第1変換サブセットを選択することと、
前記第2計算を作るために前記複数の第1計算コンポーネントのうちの1つに前記第1変換関数サブセットを適用することと
を行わせる請求項11に記載のコンピュータプログラム製品。
【請求項13】
前記第1の信頼されないコンピューティングノードおよび前記第2の信頼されないコンピューティングノードのそれぞれは、複数の信頼されないコンピューティングノードのうちの1つであり、
前記第1の信頼されないコンピューティングノードに前記第1計算を割り当てることは、前記複数の信頼されないコンピューティングノードから前記第1の信頼されないコンピューティングノードをランダムに選択し、前記第1の信頼されないコンピューティングノードに前記複数の第1計算コンポーネントのうちの前記1つをランダムに割り当てることを含み、
前記第2の信頼されないコンピューティングノードに前記第2計算を割り当てることは、前記中央コンピューティングシステムが、前記複数の信頼されないコンピューティングノードから前記第2の信頼されないコンピューティングノードをランダムに選択し、前記第2の信頼されないコンピューティングノードに前記第2計算をランダムに割り当てることを含む
請求項12に記載のコンピュータプログラム製品。
【請求項14】
前記コンピュータ実行可能命令は、プロセッサによって実行される時に、さらに、前記中央コンピューティングシステムに、
前記第1結果および前記第2結果を、前記第1の信頼されないコンピューティングノードまたは前記第2の信頼されないコンピューティングノードによって実行された過去の計算からの結果を含むデータベースに格納することと、
前記データベースに格納された前記第1の信頼されないコンピューティングノードおよび前記第2の信頼されないコンピューティングノードのそれぞれの結果全体に基づいて、前記第1の信頼されないコンピューティングノードまたは前記第2の信頼されないコンピューティングノードが信頼できるかどうかを判定することであって、前記第1の信頼されないコンピューティングノードまたは前記第2の信頼されないコンピューティングノードは、前記格納された結果の過半数が有効である場合には信頼できる可能性が高く、前記第1の信頼されないコンピューティングノードまたは前記第2の信頼されないコンピューティングノードは、前記格納された結果の過半数が無効である場合には信頼できる可能性が高くはない、判定することと
を行わせる請求項9に記載のコンピュータプログラム製品。
【請求項15】
前記第1の信頼されないコンピューティングノードおよび前記第2の信頼されないコンピューティングノードによって実行された前記作業を検証するために前記第1結果および前記第2結果を分析することは、前記第1結果および前記第2結果が有効であるかどうかを判定するために、前記第1結果および前記第2結果に1つまたは複数の確率関数を適用することを含む、請求項9に記載のコンピュータプログラム製品。
【請求項16】
前記第1結果および前記第2結果が有効ではないと判定する時に、第3の信頼されないコンピューティングノードおよび第4の信頼されないコンピューティングノードが、前記第1計算および前記第2計算を実行するためにランダムに選択される、請求項15に記載のコンピュータプログラム製品。
【請求項17】
コンピューティングシステムであって、
プロセッサと、
前記コンピューティングシステムに結合された第1の信頼されないコンピューティングノードによって実行されるべき第1計算を生成するように構成された計算生成モジュールと、
第2計算を作るために前記第1計算に適用されるべき変換関数を生成するように構成された変換関数モジュールであって、前記変換関数は、前記第2計算を前記第1計算と同等にするように構成され、前記第2計算は、第2の信頼されないコンピューティングノードによって少なくとも部分的に実行されるべきものである、変換関数モジュールと、
前記第1の信頼されないコンピューティングノードによって実行されるために前記第1計算を割り当てるように構成され、前記変換関数を前記第1の信頼されないコンピューティングノードおよび前記第2の信頼されないコンピューティングノードから秘密に保ちながら、前記第2の信頼されないコンピューティングノードによって実行されるために前記第2計算を割り当てるように構成された割当てモジュールと、
前記第1計算の第1結果を前記第1の信頼されないコンピューティングノードから、および前記第2計算の第2結果を前記第2の信頼されないコンピューティングノードから、受け取るように構成された受取モジュールと、
前記第1の信頼されないコンピューティングノードおよび前記第2の信頼されないコンピューティングノードによって実行された前記作業を検証するために前記第1結果および前記第2結果を分析するように構成された分析モジュールと
を含むコンピューティングシステム。
【請求項18】
前記第1結果は、一連の第1中間結果を含み、
前記第2結果は、一連の第2中間結果を含み、
前記分析モジュールは、前記第1の信頼されないコンピューティングノードまたは前記第2の信頼されないコンピューティングノードが無効な結果を提供したかどうかを判定するために、前記第1中間結果を前記第2中間結果と比較するようにさらに構成される
請求項17に記載のコンピューティングシステム。
【請求項19】
前記変換関数は、前記第2中間結果に適用される、請求項18に記載のコンピューティングシステム。
【請求項20】
前記第1の信頼されないコンピューティングノードおよび前記第2の信頼されないコンピューティングノードによって提供された前記結果の妥当性のヒストリを含むデータベースをさらに含み、前記ヒストリは、前記第1の信頼されないコンピューティングノードおよび前記第2の信頼されないコンピューティングノードの信頼性を判定するために前記コンピューティングシステムによって使用される、請求項17に記載のコンピューティングシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2012−530328(P2012−530328A)
【公表日】平成24年11月29日(2012.11.29)
【国際特許分類】
【出願番号】特願2012−525583(P2012−525583)
【出願日】平成22年7月21日(2010.7.21)
【国際出願番号】PCT/US2010/042782
【国際公開番号】WO2012/011902
【国際公開日】平成24年1月26日(2012.1.26)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
【出願人】(509348786)エンパイア テクノロジー ディベロップメント エルエルシー (117)
【Fターム(参考)】