(57)【要約】  ブロックチェーンネットワーク（１０４）を用いてタスクを配布するための方法、システム、およびコンピュータ可読媒体。本方法は、対話型アプリケーション（３３４）を介して完了すべきタスクを生成し、ブロックチェーンネットワークを使用して、ブロックチェーンネットワークに関連するブロックチェーン（４００）内のブロックを介してタスクを配布することを含む。ブロックチェーンネットワークは複数のノードを含み、対話型アプリケーションに関連する複数の装置（１０６〜１１４）によってアクセス可能である。この方法はさらに、対話型アプリケーションを介してタスクを処理した結果に関連するデータを、１つ以上のクライアント装置から受信することを含む。タスクの完了は、受信データに基づいて検証される。タスクの完了を検証することは、タスクが完了したかどうかに関して、クライアント装置のセットからユーザ入力のセットをそれぞれ受信し、それに基づいてタスクが完了したかどうかに関して合意決定を行うことを含み得る。
2021533463.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーンネットワーク（１０４）を用いてタスクを配布する方法であって、
対話型アプリケーション（３３４）を介して完了すべきタスクを生成し、
ブロックチェーンネットワークを使用して、ブロックチェーンネットワークに関連するブロックチェーン（４００）内のブロックを介してタスクを配布し、ブロックチェーンネットワークは複数のノードを含み、対話型アプリケーションに関連する複数のクライアント装置（１０６〜１１４）によってアクセス可能であり、
ブロックチェーンネットワーク内の１つ以上のノードを介して１つ以上のクライアント装置から、対話型アプリケーションを介してタスクを処理した結果に関連付けられたデータを受信し、受信した前記データに基づいてタスクの完了が検証されること、
を含む方法。
【請求項２】
前記結果は、前記ブロックチェーンネットワークに接続された１つ以上のクライアント装置において、前記対話型アプリケーションを介して前記タスクを処理する間に受信されたユーザ入力に関連付けられる、請求項１に記載の方法。
【請求項３】
前記タスクの完了は、前記対話型アプリケーションを介した前記ユーザ入力の受信を必要とし、前記方法は、前記受信されたユーザ入力の結果に関連付けられたデータを使用して、機械学習アプリケーションの少なくとも一部を処理することをさらに含む、請求項２に記載の方法。
【請求項４】
前記ブロックは、前記タスクを完了するために使用される対話型アプリケーションと、前記タスクの完了の基準と、前記タスクの完了の報酬と、を示す情報を含む、請求項２に記載の方法。
【請求項５】
前記タスクの完了を検証することをさらに含み、前記タスクの完了の検証が、
前記タスクが完了したかどうかに関して、前記クライアント装置のセットからユーザ入力のセットをそれぞれ受信し、
受信した前記ユーザ入力のセットに基づいて前記タスクが完了したかどうかについて合意決定を行うこと、
を含む請求項１に記載の方法。
【請求項６】
前記タスクの完了を検証することは、前記ユーザ入力のセットを受信する前に、前記タスクの完了の検証のために、前記タスクを処理した結果に関連するデータを前記クライアント装置のセットに送信することをさらに含む、請求項５に記載の方法。
【請求項７】
前記タスクの完了の検証に応答して、新しいブロックをブロックチェーンに追加し、前記新しいブロックは、前記タスクの完了を処理したブロックチェーンネットワーク内のノードのうちの１つ、および前記タスクを完了したブロックチェーンネットワークに接続されたクライアント装置のうちの１つに関連するアカウントへの報酬を示すことをさらに含む、請求項１記載の方法。
【請求項８】
ブロックチェーンネットワーク（１０４）を用いてタスクを配布するシステム（２００）であって、
プロセッサ（２１０）であって、対話型アプリケーション（３３４）を介して完了すべきタスクを生成し、ブロックチェーンネットワークを用いて、前記ブロックチェーンネットワークに関連付けられたブロックチェーン（４００）内のブロックを介してタスクを配布するよう構成され、前記ブロックチェーンネットワークは複数のノードを含み、前記対話型アプリケーションに関連付けられた複数のクライアント装置（１０６〜１１４）によってアクセス可能である、プロセッサと、
前記プロセッサに動作可能に接続された通信インタフェース（２２０）であって、前記ブロックチェーンネットワーク内の１つ以上のノードを介して１つ以上のクライアント装置から、前記対話型アプリケーションを介してタスクを処理した結果に関連付けられたデータを受信するように構成された通信インタフェースと、
を含み、タスクの完了は受信されたデータに基づいて検証される、システム。
【請求項９】
前記結果は、前記ブロックチェーンネットワークに接続された１つ以上のクライアント装置において、前記対話型アプリケーションを介して前記タスクを処理する間に受信されたユーザ入力に関連付けられる、請求項８に記載のシステム。
【請求項１０】
前記タスクの完了は、前記対話型アプリケーションを介したユーザ入力の受信を必要とし、前記プロセッサは、受信した前記ユーザ入力の結果に関連するデータを用いて、機械学習アプリケーションの少なくとも一部を処理するようにさらに構成される、請求項９に記載のシステム。
【請求項１１】
前記ブロックは、前記タスクを完了するために使用される対話型アプリケーションと、前記タスクの完了の基準と、前記タスクの完了の報酬と、を示す情報を含む、請求項９に記載のシステム。
【請求項１２】
前記タスクの完了を検証するために、
前記通信インタフェースは、前記タスクが完了したかどうかに関して、前記クライアント装置のセットからユーザ入力のセットをそれぞれ受信するように構成され、
前記プロセッサは、受信した前記ユーザ入力のセットに基づいて、前記タスクが完了したかどうかについて合意決定を行うように構成される、請求項８に記載のシステム。
【請求項１３】
前記通信インタフェースは、前記ユーザ入力のセットを受信する前に、前記タスクの完了の検証のために、前記タスクを処理した結果に関連するデータを前記クライアント装置のセットに送信するように構成される、請求項１２に記載のシステム。
【請求項１４】
前記プロセッサは、前記タスクの完了の検証に応答して、前記ブロックチェーンに新しいブロックを追加するようにさらに構成され、
前記新しいブロックは、前記タスクの完了を処理したブロックチェーンネットワーク内のノードのうちの１つと、前記タスクを完了したブロックチェーンネットワークに接続されたクライアント装置のうちの１つに関連するアカウントとに対する報酬を示す、請求項８に記載のシステム。
【請求項１５】
ブロックチェーンネットワーク（１０４）を使用してタスクを配布するための持続的コンピュータ可読媒体（２１５）であって、プログラムコードを含み、前記プログラムコードがシステム（２００）のプロセッサ（２１０）によって実行されると、前記システムに、
対話型アプリケーション（３３４）を介して完了すべきタスクを生成させ、
前記ブロックチェーンネットワークを使用して、前記ブロックチェーンネットワークに関連するブロックチェーン（４００）内のブロックを介してタスクを配布させ、前記ブロックチェーンネットワークは複数のノードを含み、前記対話型アプリケーションに関連する複数のクライアント装置（１０６−１１４）によってアクセス可能であり、
前記ブロックチェーンネットワーク内の１つ以上のノードを介してクライアント装置から、前記対話型アプリケーションを介してタスクを処理した結果に関連するデータを受信させ、
受信したデータに基づいてタスクの完了が検証される、コンピュータ可読媒体。
【請求項１６】
前記結果は、前記ブロックチェーンネットワークに接続された１つ以上のクライアント装置において、前記対話型アプリケーションを介して前記タスクを処理する間に受信されたユーザ入力に関連付けられる、請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
前記タスクの完了は、前記対話型アプリケーションを介したユーザ入力の受信を必要とし、
前記コンピュータ可読媒体は、前記システムの前記プロセッサによって実行されると、前記システムに、受信されたユーザ入力の結果に関連するデータを用いて、機械学習アプリケーションの少なくとも一部を処理させるプログラムコードをさらに含む、請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
前記ブロックは、前記タスクを完了するために使用される対話型アプリケーションと、前記タスクの完了のための基準と、前記タスクの完了のための報酬と、を示す情報を含む、請求項１６に記載のコンピュータ可読媒体。
【請求項１９】
前記タスクの完了を検証させるプログラムコードをさらに含み、前記プログラムコードは、前記システムの前記プロセッサによって実行されると、前記システムに、
前記タスクが完了したかどうかについて、クライアント装置のセットからユーザ入力のセットをそれぞれ受信し、受信した前記ユーザ入力のセットに基づいてタスクが完了したかどうかについて合意決定を行わせる、請求項１５に記載のコンピュータ可読媒体。
【請求項２０】
前記システムの前記プロセッサによって実行されたとき、前記システムに、前記ユーザ入力のセットを受信する前に、前記タスクの完了の検証のために、前記タスクを処理した結果に関連するデータを前記クライアント装置のセットに送信させるプログラムコードをさらに含む、請求項１９に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概して、ブロックチェーン技術に関する。より具体的には、本開示は、グリッドコンピューティングネットワークへタスクを送出し、グリッドコンピューティングネットワークからのタスクを検証する際にブロックチェーンを使用することに関する。
【背景技術】
【０００２】
大規模なデータセットのクラウドベースのコンピューティングおよびデータ処理に対する需要が高まるにつれて、コンピュータ資源に対する需要も高まっている。グリッドまたは分散コンピューティングは、大きなデータセットを処理するために使用することができる膨大な計算力を生成するための解決策である。グリッドコンピューティングまたは分散コンピューティングは、複数の場所（つまり、異なる、遠隔に配置されたコンピュータ装置）からのコンピュータ資源の集合を利用して、関連タスクを実行するコンピューティングの一種である。ボランティアコンピューティングは、コンピュータの所有者またはユーザが自分の計算リソース（例えば、処理能力および記憶手段）を１つ以上のプロジェクトに提供するグリッドコンピューティングの一種である。
【０００３】
ブロックチェーンは、暗号化を使用してリンクされ、保護されているレコードまたはブロックの分散リストまたはデータベースである。ブロックチェーンは、それぞれがブロックチェーン自身のコピーを有するブロックチェーンネットワーク内のコンピュータシステムまたはノード（例えば、採掘者（マイナー）と呼ばれる）によって維持される。マイナーの合意に達した記録（レコード）がブロックチェーンに追加され、これによりブロックチェーンの完全性が保たれる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示の実施形態は、ブロックチェーンネットワークを使用したタスクの配布を提供する。
【課題を解決するための手段】
【０００５】
一実施形態では、ブロックチェーンネットワークを使用してタスクを配布する方法が提供される。この方法は、対話型アプリケーションを介して完了すべきタスクを生成し、ブロックチェーンネットワークを使用して、ブロックチェーンネットワークに関連付けられたブロックチェーン内のブロックを介してタスクを配布することを含む。ブロックチェーンネットワークは複数のノードを含み、対話型アプリケーションに関連する複数のクライアント装置によってアクセス可能である。この方法はさらに、ブロックチェーンネットワーク内の１つ以上のノードを介して１つ以上のクライアント装置から、対話型アプリケーションを介してタスクを処理した結果に関連するデータを受信し、受信したデータに基づいてタスクの完了を検証することを含む。
【０００６】
別の実施形態では、ブロックチェーンネットワークを使用してタスクを配布するためのシステムが提供される。システムは、プロセッサと、プロセッサに動作可能に接続された通信インタフェースと、を含む。プロセッサは、対話型アプリケーションを介して完了すべきタスクを生成し、ブロックチェーンネットワークを使用して、ブロックチェーンネットワークに関連付けられたブロックチェーン内のブロックを介してタスクを配布するように構成される。ブロックチェーンネットワークは複数のノードを含み、対話型アプリケーションに関連する複数のクライアント装置によってアクセス可能である。通信インタフェースは、ブロックチェーンネットワーク内の１つ以上のノードを介して１つ以上のクライアント装置から、対話型アプリケーションを介してタスクを処理した結果に関連するデータを受信するように構成される。タスクの完了は、受信データに基づいて検証される。
【０００７】
さらに別の実施形態では、ブロックチェーンネットワークを使用してタスクを配布するための持続的コンピュータ可読媒体が提供される。コンピュータ可読媒体は、システムのプロセッサによって実行されると、システムに、対話型アプリケーションを介して完了すべきタスクを生成させ、ブロックチェーンネットワークを使用して、ブロックチェーンネットワークに関連付けられたブロックチェーン内のブロックを介してタスクを配布させ、ブロックチェーンネットワーク内の１つ以上のノードを介して１つ以上のクライアント装置から、対話型アプリケーションを介してタスクを処理した結果に関連するデータを受信させるプログラムコードを含む。ブロックチェーンネットワークは複数のノードを含み、対話型アプリケーションに関連する複数のクライアント装置によってアクセス可能である。タスクの完了は、受信データに基づいて検証される。
【０００８】
その他の技術的特徴は、以下の図面、詳細な説明、および特許請求の範囲から当業者には容易に明らかであろう。
【０００９】
本開示およびその利点をより完全に理解するために、以下の説明を添付の図面と併せて参照し、添付の図面では、同様の参照番号は同様の部分を表す。
【図面の簡単な説明】
【００１０】
【図１】本開示の様々な実施形態を実施することができるネットワーク化システムの一例を示す。
【図２】本開示の様々な実施形態を実施することができるサーバの一例を示す。
【図３】本開示の様々な実施形態が実施することができるクライアントデバイスの例を示す。
【図４】本開示の様々な実施形態を実施することができるブロックチェーンの一例を示す図である。
【図５】本開示の様々な実施形態による、ブロックチェーンネットワークを使用してタスクを送出し、検証するための処理のフローチャートを示す。
【図６】本開示の様々な実施形態による、ブロックチェーンネットワークを使用してタスクを受信し、完了するためのプロセスのフローチャートを示す。
【発明を実施するための形態】
【００１１】
以下に説明する図１〜図６、および本明細書における本開示の原理を説明するために使用される様々な実施形態は、単に例示のためのものであり、いかなる方法によっても本開示の範囲を限定するものと解釈されるべきではない。当業者は、本開示の原理が、任意の適切に配置されたシステムまたは装置において実施され得ることを理解するであろう。
【００１２】
本開示の様々な実施形態は、ブロックチェーン環境内の「人間による」計算タスク（すなわち、参照により本明細書に組み込まれる、２０１８年６月５日に出願された「Platform for Collaborative Processing of Computing Tasks」という名称の米国特許出願第１６／０００，５８９号（以下、「’５８９出願」という）に記載されているような、クライアント装置のユーザからの入力を利用する計算タスク）の包含、配布、完了、検証、および補償の少なくとも一つを提供する。これらの実施形態では、これらの種類の要求の完了を必要とするエンティティは、タスクをブロックチェーンにプッシュする。コンピューティンググリッド内の様々なクライアント・コンピュータ装置を接続するプラットフォーム（例えば、’５８９出願に記載されているものなど）が、クライアント装置によって、クライアントアプリケーション（例えば、’５８９出願に記載されているような対話型アプリケーションまたはゲーム）内で処理するために、ブロックチェーンからのタスクにアクセスするために、クライアント装置によって利用される。次いで、クライアント装置は、ブロックチェーンにポストされたレコードを介して、ブロックチェーンネットワークに接続された元の要求者または他のエンティティに受け渡すために、タスクを処理した結果をブロックチェーンネットワーク内のマイナーに返す。タスクを処理するクライアント装置は、ブロックチェーンを介して、例えばブロックチェーンに格納されたスマート契約の実行によって、例えば暗号通貨トークンまたは暗号ユーティリティトークンの形式で、クレジットを受領することができる。その結果、本開示の実施形態は、不正行為、動作不能時間、または外部パーティからの干渉から解放され得る、安全で信頼できる方法で、タスクの分配、完了、検証、および補償の少なくとも一つを提供する。
【００１３】
図１は、本開示の様々な実施形態が実施することができる例示的なネットワーク化システム１００を示す。図１に示されるネットワーク化システム１００の実施形態は、単に例示のためのものである。本開示の範囲から逸脱することなく、ネットワーク化システム１００の他の実施形態を使用することもできる。
【００１４】
図１に示すように、システム１００は、システム１００内の種々の構成要素間の通信を支援するネットワーク１０１を含む。例えば、ネットワーク１０１は、ネットワークアドレス間でインターネット・プロトコル（ＩＰ）パケットまたは他の情報を通信することができる。ネットワーク１０１は、１つ以上のローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、仮想プライベートネットワーク（ＶＰＮ）、インターネットのようなグローバルネットワークの全部または一部、または他の通信システムまたは１つ以上の場所にあるシステムを含むことができる。
【００１５】
ネットワーク１０１は、様々なサーバ（またはサーバシステム）１０２〜１０４および様々なクライアント装置１０６〜１１４間の通信を支援する。サーバ１０２〜１０４の各々は、１つ以上のクライアント装置１０６〜１１４のためのソフトウェアを含むコンピューティングサービスを提供することができる、任意の適切な電子計算または処理装置であってよい。サーバ１０２〜１０４の各々は、例えば、１つ以上の処理装置、命令およびデータを記憶する１つ以上のメモリ、およびネットワーク１０１を介した通信を支援する１つ以上のネットワークインタフェースを含むことができる。例えば、サーバ１０２は、クライアント装置１０６−１１４を使用したボランティアグリッドコンピューティングを連携させることによって、グリッドコンピューティングを使用した協調コンピューティング、研究、または開発のためのプラットフォームを提供または管理することができる。サーバ１０３は、以下でより詳細に論じるように、プラットフォームを介してクライアント装置１０６〜１１４によって処理される必要のあるプロジェクトまたはタスクを有する、研究者、ソフトウェア開発者、またはゲーム開発者に対応するサーバであってもよい。サーバシステム１０４は、以下でより詳細に説明するように、ブロックチェーンのトランザクションを処理するマイニングコンピュータシステム（またはマイナー）などの計算ノードを含むブロックチェーンネットワークである。
【００１６】
各クライアント装置１０６〜１１４は、ネットワーク１０１を介して少なくとも１つのサーバまたは他のコンピュータ装置と対話する、任意の適切な電子計算または処理装置を表す。この例では、クライアント装置１０６〜１１４は、デスクトップコンピュータ１０６、携帯電話又はスマートフォン１０８、タブレットコンピュータ１１０、ラップトップコンピュータ１１２、ビデオゲームコンソール１１４、セットトップボックス及びテレビ等の少なくとも一つを含む。しかしながら、ネットワーク化システム１００では、任意の他の、または追加のクライアント装置を使用することができる。例えば、システム１００のクライアント装置１０６〜１１４のうちの１つに、任意のネットワーク接続可能な装置、またはＩｏＴ（モノのインターネット：Internet of Things）装置（例えば、スマートテレビ、冷蔵庫、ラズベリーパイ（Raspberry PI（登録商標））など）を使用することができる。以下で論じるように、様々な実施形態では、クライアント装置１０６〜１１４は、サーバ１０２の調整の下で、ブロックチェーンネットワーク１０４から受信したタスクを処理するためのボランティアコンピューティンググリッドを（場合によっては他のコンピュータ装置とともに）形成するために参加する。本明細書で説明するように、クライアント装置１０６〜１１４は、コンピューティンググリッドの個々のセルであると考えることができる。さらに、個々のセルは、例えば、中央サーバの有無に関わらず、ピアツーピア、アドホック、およびメッシュベースのネットワークの少なくとも一つを直接的または間接的に使用して、互いにまたはサーバと通信することができる。
【００１７】
様々な実施形態において、クライアント装置１０６〜１１４に関連するサーバ（例えば、サーバ１０２）は、計算タスクの処理のためのコンピューティンググリッドを形成する。様々な実施形態では、サーバ１０２は、ブロックチェーンネットワーク１０４およびコンピューティンググリッドのセルから受信したタスクの調整、提供、および追跡のためのカスタムコードを管理する。他の実施形態では、サーバ１０２は、タスクを実行するために、コンピューティンググリッド内のセルを接続する仮想プライベートネットワーク（ＶＰＵ）を管理する。これらの実施形態では、計算タスクを実行するために、コンピューティンググリッドによって市販のソフトウェアを実行することができる。
【００１８】
図１は、ネットワーク化システム１００の一例を示しているが、図１には様々な変更を加えることができる。例えば、システム１００は、任意の適切な構成で任意の数の各構成要素を含むことができ、サーバ１０２〜１０４およびクライアント装置１０６〜１１４のそれぞれは、システム１００の一部である任意の数のサーバおよびクライアント装置の少なくとも一つを表すことができる。例えば、サーバ１０２の機能は、ブロックチェーンネットワーク１０４内の複数のコンピュータによって実行されてもよく、または、クライアント装置１０６〜１１４は、サーバ１０２による管理なしに、ブロックチェーンネットワーク１０４から直接タスクを受信してもよい。一般に、計算および通信システムは多種多様な構成になり、図１は、本開示の範囲を任意の特定の構成に限定しない。図１は、本明細書に開示されている様々な特徴を使用することができる１つの動作環境を示しているが、これらの特徴は、任意の他の適切なシステムでも使用することができる。
【００１９】
図２および図３は、本開示の様々な実施形態による、ネットワーク化システムにおける例示的なコンピュータ装置を示す。特に図２は、サーバ２００の一例を示し、図３は、クライアント装置３００の一例を示す。この例示的な例では、サーバ２００は、図１のブロックチェーンネットワーク１０４内の任意の計算ノードまたはマイナーを含むサーバ１０２〜１０４のうちの任意の１つを表し、クライアント装置３００は、図１のクライアント装置１０６〜１１４のうちの１つ以上を表すことができる。
【００２０】
図２に示すように、サーバ２００は、プロセッサ２１０、記憶装置２１５、通信インタフェース（または回路）２２０、および入出力（Ｉ／Ｏ）ユニット２２５の間の通信をサポートするバスシステム２０５を含む。プロセッサ２１０は、メモリ２３０にロード可能な命令を実行する。プロセッサ２１０は、任意の適切な数および種類のプロセッサまたは他の装置を、任意の適切な構成で含むことができる。プロセッサ２１０の種類の例には、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ、特定用途向け集積回路、および離散回路が含まれる。
【００２１】
メモリ２３０および永続記憶装置２３５は、情報を（データ、プログラムコード、および他の適切な情報などの少なくとも一つを、一時的または永続的に）記憶し、取り出しを容易にすることができる、任意の構造を表す記憶装置２１５の例である。メモリ２３０は、ランダムアクセスメモリ、または任意の他の適切な揮発性または不揮発性記憶装置を表すことができる。永続記憶装置２３５は、読み取り専用メモリ、ハードドライブ、フラッシュメモリ、または光ディスクのような、データの長期記憶をサポートする１つ以上の構成要素または装置を含んでもよい。例えば、永続的記憶装置２３５は、データの１つ以上のデータベース、実行されるべきタスクおよび完了したタスクの記録を含むブロックチェーン、ボランティアコンピューティンググリッド内のセルのためのクライアントアプリケーション、ボランティアコンピューティンググリッド内のセルへの送出を待つタスク、およびボランティアコンピューティンググリッドからの処理結果などの少なくとも一つを記憶することができる。
【００２２】
通信インタフェース２２０は、他のシステムまたは装置との通信をサポートする。例えば、通信インタフェース２２０は、ネットワーク１０１を介した通信を支援するネットワークインタフェースカードまたは無線トランシーバを含むことができる。通信インタフェース２２０は、任意の適切な物理的または無線通信リンクを介した通信をサポートしてもよい。Ｉ／Ｏユニット２２５は、データの入出力を可能にする。例えば、Ｉ／Ｏユニット２２５は、キーボード、マウス、キーパッド、タッチスクリーン、または他の適切な入力デバイスを介した、ユーザ入力のための接続を提供し得る。Ｉ／Ｏユニット２２５は、ディスプレイ、プリンタ、または他の適切な出力デバイスに出力を送信することもできる。
【００２３】
図２はサーバ２００の一例を示しているが、図２には様々な変更を加えることができる。例えば、図２の様々な構成要素は、組み合わせるか、さらに細分化するか、または省略することができ、特定の必要に応じて追加の構成要素を追加することができる。具体的な例として、サーバ２００は１つのシステムとして描かれているが、遠隔に配置されていてもよい複数のサーバシステムを含んでもよい。別の例では、異なるサーバシステムが、本開示の様々な実施形態に従って、ブロックチェーンネットワークへのタスクおよびブロックチェーンネットワークからのタスクのための送出およびリターン結果を管理するため、およびブロックチェーンネットワーク内の計算ノードまたはマイナーを形成するための少なくとも一方の、処理、記憶、および通信リソースのいくつかまたはすべてを提供することができる。別の例では、サーバ２００はボランティアコンピューティンググリッドの一部であってもよい。例えば、ボランティアコンピューティンググリッド内の１つ以上のコンピュータ装置は、本明細書で論じるように、サーバ２００の動作を個別にまたは共同で実行するためのソフトウェアを含んでもよい。
【００２４】
図３は、本開示の実施形態による例示的なクライアント装置３００を示す。図３に示すクライアント装置３００の実施形態は、例示のためだけのものであり、図１のクライアント装置１０６〜１１４は、同一または同様の構成を有することができる。しかしながら、クライアント装置は多種多様な構成で提供され、図３は本開示の範囲を電子的装置の任意の特定の実装に限定しない。図３に示すように、クライアント装置３００は、通信インタフェース（または回路）３０５、プロセッサ３１０、入出力（Ｉ／Ｏ）インタフェース３１５、入力３２５、ディスプレイ３２０、およびメモリ３３０を含む。メモリ３３０は、オペレーティングシステム（ＯＳ）３３２と、１つ以上のクライアントアプリケーション３３４とを含む。
【００２５】
通信インタフェースまたは回路３０５は、他のシステムまたは装置との通信をサポートする。例えば、通信インタフェース３０５は、ネットワーク１０１を介した通信を支援するネットワークインタフェースカードまたは無線トランシーバを含むことができる。通信インタフェース３０５は、任意の適切な物理的または無線通信リンクを介した通信をサポートしてもよい。無線通信を利用する実施形態の場合、通信インタフェース３０５は、様々な無線通信プロトコル（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、セルラー方式、ＬＴＥ通信プロトコルなど）を使用して、１つ以上のアンテナを介して着信ＲＦ信号を受信することができる。
【００２６】
プロセッサ３１０は、１つ以上のプロセッサまたは他の処理装置を含むことができ、クライアント装置３００の全体的な動作を制御するために、メモリ３３０に記憶されたＯＳ３３２を実行することができる。プロセッサ３１０は、たとえば、ボランティアコンピューティンググリッドの一部としてブロックチェーンネットワークから受信した、処理または計算タスク、通信またはネットワークタスク、および記憶タスクなどの計算タスクを実行するための１つ以上のクライアントアプリケーションのプログラムコードなど、メモリ３３０に常駐するクライアントアプリケーション３３４を実行することもできる。クライアントアプリケーション３３４は、以下でより詳細に説明するように、ユーザ入力を必要とする、ユーザ入力を使用する、又はユーザ入力のインセンティブを与える、ビデオゲーム又はアプリケーションのような、機械学習アプリケーション又は対話型アプリケーションのためのプログラムコードを含むことができる。プロセッサ３１０、通信インタフェース３０５およびメモリ３３０の少なくとも一つが、クライアント装置３００の計算リソースを構成する。プロセッサ３１０は、任意の適切な数および種類のプロセッサまたは他の装置を任意の適切な構成で含むことができる。プロセッサ３１０の種類の例には、マイクロプロセッサ、マイクロコントローラ、グラフィック処理ユニット（ＧＰＵ）、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ、特定用途向け集積回路、および離散回路が含まれる。
【００２７】
プロセッサ３１０は、実行プロセスによって要求されるように、メモリ３３０の中または外にデータを移動することができる。プロセッサ３１０は、Ｉ／Ｏインタフェース３１５にも結合され、これは、クライアント装置３００にラップトップコンピュータやハンドヘルドコンピュータなどの他の装置に接続する能力を提供する。Ｉ／Ｏインタフェース３１５は、周辺機器とプロセッサ３１０との間の通信経路を提供する。
【００２８】
プロセッサ３１０は、入力３２５およびディスプレイ３２０にも結合される。クライアント装置３００のオペレータは、入力３２５を使用してデータを入力し、クライアント装置３００に入力することができる。例えば、入力３２５は、タッチスクリーン、ボタン、キーボード、トラックボール、マウス、スタイラス、電子ペン、ビデオゲームコントローラ等であってもよい。ディスプレイ３２０は、液晶ディスプレイ、発光ダイオードディスプレイ、またはウェブサイトなどからテキストおよび／または少なくとも限定されたグラフィックスを描画することができる他のディスプレイであってもよい。メモリ３３０は、プロセッサ３１０に結合される。メモリ３３０の一部は、ランダムアクセスメモリ（ＲＡＭ）を含むことができ、メモリ３３０の別の部分は、フラッシュメモリまたは他のリードオンリーメモリ（ＲＯＭ）を含むことができる。
【００２９】
図３はクライアント装置３００の一例を示しているが、図３には様々な変更を加えることができる。例えば、図３の様々な構成要素を組み合わせるか、さらに細分化するか、または省略することができ、特定の必要に応じて追加の構成要素を追加することができる。具体的な例として、プロセッサ３１０は、１つ以上の中央処理装置（ＣＰＵ）および１つ以上のグラフィック処理装置（ＧＰＵ）のような複数のプロセッサに分割することができる。別の例では、ディスプレイ３２０は、例えば、ビデオゲームコンソール又はデスクトップコンピュータ等のクライアント装置３００の一部に外部的に接続されてもよいし、その一部でなくてもよい。
【００３０】
図４は、本開示の様々な実施形態を実施することができるブロックチェーン４００の一例を示す図である。一般に、ブロックチェーンは多種多様な構成で形成され、管理され、図４は本開示の範囲を任意の特定の構成に限定しない。
【００３１】
ブロック４０５〜４３０は、ブロック４０５で始まりブロック４３０で終端するブロックチェーン内のブロックを形成する。例えば、ブロック４０５〜４３０またはレコードは、トランザクション（取引）データまたはプログラムを含むことができる。例えば、各ブロックは、典型的には、ブロックＩＤ、暗号化のためのハッシュ値、タイムスタンプ、およびいくつかのデータ（例えば、トランザクションレコード、アプリケーション、プログラムコードなど）を含み得る。様々な実施形態では、以下でより詳細に説明するように、様々なブロックは、タスクの完了および完了したタスクからの結果の少なくとも一方を要求するためのプログラムコードを含む。例えば、ブロックは、タスクの成功した競争のクレジットとして、暗号通貨またはユーティリティトークンのようなトークンを示すレコードを含むことができる。
【００３２】
図示されるように、ブロック４０５〜４２０および４３０は、メインブロックチェーン４００の一部であり、そのコピーが各マイナーにおいて維持される。新しいブロックがブロックチェーン４００に追加されるためには、マイナー間で意見の一致（合意）に達しなければならない。ブロックチェーン４００内のどのブロックについても、１つの経路しかない。ブロックチェーン４００は分散されているので、ブロックは典型的には短い時間間隔で生成される。競合するブロックの追加が異なるマイナーによって提案される場合、ブロック４１５の後などのように、分岐が生じる。分岐が発生すると、マイナーは、時間的に最初に受信したブロックから構築する。
【００３３】
ブロックチェーン４００を管理するために、マイナーは、コインのためにトランザクションを計算（例えば、マイニング）しようとする。様々な実施形態では、これらのマイナーは、クライアント装置に送出されたタスクのためのプログラムコードを格納し、タスクの完了からの結果を受信する。マイナーは、タスク完了からこれらの結果を得て、ブロックを構築する。たとえば、マイナーは、タスクからの結果を組み合わせて、タスクが実行されたことを記録するためにブロックを作成し、どのクライアント装置が、それらのタスク完了のクレジット（暗号通貨やユーティリティトークンの形式など）を受け取るかを記録する。
【００３４】
様々な実施形態では、コンピューティンググリッドによるタスク競争（コンペ）を必要とする者が、特にユーザ入力または対話がタスクの完了を支援することができる種類のタスクについて、ブロックチェーン４００を介して競争のためのタスクをポストする。例えば、サーバ１０２は、タスク競争をブロックチェーン４００に命令するためのプログラムコードを含むブロックを追加してもよい。いくつかの実施形態では、サーバ１０２は、タスクを実行するために使用可能な対話型アプリケーションを生成し、ユーザの要求または承認に応じて、またはユーザの介入または要求なしに、ブロックチェーンからタスクを取得（プル）することもできる。例えば、タスクは、タスクの完了に特化したゲームの一部として、又は単に全体的により大きなゲームの一部として、プレイ又は完了することができる１つ以上のタスクのうちの１つであるように生成することができる。例えば、本開示の様々な実施形態では、使用されるゲームは、人間計算ゲーム（Human Computation Game：ＨＣＧ）または人間ベース計算（Human-based Computation：ＨＢＣ）ゲームであってもよい。コンピューティンググリッド内のクライアント装置（すなわち、クライアント装置１０６〜１１４のいずれか）は、プラットフォームを介してブロックチェーン４００からタスクを要求する。これに限定されない一例として、画像内に特定のオブジェクトを見つけるための画像解析を要求するタスクの場合、要求は、タスクの実行をブロックチェーンに要求するグリッドコンピューティングの消費者によって行われる。この例では、ブロックは、ブロックＩＤ、および識別されるべき画像内の物体を要求するためのコードを含む。
【００３５】
様々な実施形態では、タスクはクライアント装置が、クライアント装置上で実行されている対話型アプリケーションまたはゲーム中にタスクを処理するか、または完了すべきタスクを提示することができるように、対話型アプリケーションまたはゲームに接続される。クライアントによってブロックチェーンから受信されると、要求されたタスクは、クライアント装置にブロックＩＤを介してタスクを実行させる。例えば、サーバ１０２は、実行する必要があるブロックチェーン内のタスクのデータベースを、関連するタスクの要件と共に維持することができる。クライアント装置は、ブロックチェーン内に格納されているさまざまなタスクを表示して、クライアント装置において完了できる特定のタスクを識別できる。例えば、タスクは、クライアント装置が有する又は実行する特定のゲームにおける競技のためにプログラムされてもよい。別の例では、クライアント装置は、ユーザによる特定のゲームまたはタスクの選択、タスク完了のために利用可能な報酬量またはタスク完了のための複雑さ、またはタスクを完了するために必要な計算リソースの量および種類に基づいて、実行されるタスクを選択することができる。さらに、同じタスクを、プラットフォームを介してグリッド内のいずれのクライアント装置においても取り出すことができる。クライアント装置がタスクの処理を終了すると（例えば、タスクを完了するためにユーザから入力を受信することを含む）、クライアント装置は、タスクから結果を生成し、その結果を、マイナーによる検証のためにブロックチェーンに送り返す。例えば、マイナーは、受信した結果を用いてブロックを形成しようとする。重要なことは、タスクがグリッド内のすべてのクライアント装置によって完了するために利用可能とされるので、異なるマイナーによって複数の結果が受信される可能性が高いことである。すべての異なる受信結果について、マイナーは、正しい結果を検証するために、類似のまたは同じ結果についてマイナー間の合意を醸成することができ、その結果、それらの結果を提出した関連するクライアント装置（たとえば、タスクを正しく完了し、かつ最も速いもの）と、結果のブロックをチェーンに追加したマイナーが、タスク完了の成功についてのクレジットを受領する。例えば、マイナーは、結果同士がどのように類似しているか、またはタスクの以前の処理からのいくつかの標準とどのように類似しているかを検査する合意アルゴリズムを使用する。
【００３６】
例えば、様々な実施形態では、合意アルゴリズムは、合意アルゴリズムを処理するためにユーザ入力を組み込む。言い換えれば、合意決定を実行するために、または検証を提供するために、ユーザ参加が利用され、また奨励される。例えば、タスクは、訓練データの作成のためのものであってもよく、例えばユーザが、物体が画像の中に位置すると思う場所を描くための第１のユーザの集合（セット）のためのものであってもよい。次に、合意アルゴリズムは、実際にタスクを実行するユーザが画像内のオブジェクト（またはオブジェクトの位置）を正しく識別したかどうかを確認する、異なるユーザの集合を組み込むであろう。たとえば、オブジェクトが正しく識別されたこと、画像内に配置されたことを十分な数のユーザが確認した場合、合意アルゴリズムは、回答が真であること（つまり、タスクの結果が正しい／タスクが完了した）と検証する。その結果、単に分散コンピューティングのために（例えば、クライアント装置３００を介して）ユーザを使用する代わりに、これらの実施形態は、その分散コンピューティングにおけるユーザを、検証のために使用する。これらの実施形態では、例えば、物体認識および配置などの特定のタスクでは、人間がコンピュータよりも優れている可能性があるので、従来の計算タスク（例えば、合意投票）は、人間の直感に置き換えられるか、または人間の直感によって増強される。さらに、個々のユーザ応答は信頼性がないか、または何らかの偏りを含むことがあるが、協調コンピューティングのためのプラットフォームを使用すると、意義ある数のユーザ入力を使用して、より高い信頼性を提供する検証を提供することができる。例えば、多数のこれらのユーザ検証結果を平均して、合意決定を形成することができる。
【００３７】
したがって、本開示の様々な実施形態は、ブロックチェーンネットワークを介した人間による計算タスクの配布を提供する。一例では、この人間による計算タスクは、完了すべきブロック内の実際のタスクである。例えば、ブロックチェーンネットワークを介して配布された計算タスクは、例えばスマート契約を使用して、人間計算ベースのタスクと置き換えられるか、またはそれにより増強される。言い換えれば、これらのブロックは、人間計算ベースのスマート契約を含むことができる。別の例では、人間による計算タスクは合意アルゴリズムに含まれ、合意アルゴリズムは、１次タスクが成功裡に完了したかどうかに関する個々の入力を供給するために実行されるスマート契約のセットとすることができる。
【００３８】
例えば、ブロックチェーンは、ブロックがチェーン上にあることを承認されるためには、多数のユーザによりそのブロックを確認しなければならないという合意を組み込んでいる。この検証プロセスは、１つの計算または人間による計算タスクをチェーンに追加することを必要とすることができる依存関係を有するスマート契約によって実施することができ、次いで、作成されたブロックを取り込み、それらを入力として使用して、他の計算されたブロックの組合せである最終結果の一式をコンパイルするための別のスマート契約を作成する。いくつかの実施形態では、合意タスクを実行するユーザは、ブロックチェーンのマイナーであり得る。ブロックチェーン上のマイナーが、ハッシュ値が機能するかどうかを調べるためにハッシュ値を示すのと同様に、これらの実施形態において、ハッシュ値は人間による計算タスクに置き換えられ、これは、タスクが人間の検証者から十分な検証を受け取るまで、ブロックチェーンに仮に追加される。いくつかの実施形態では、これらのユーザ実行のタスクは、実際のハッシュ値作成（例えば、マイナー）とハッシュ値検証の両方の部分を構成することができる。
【００３９】
これらの実施形態では、人間入力ベースの合意アルゴリズムを含めることは、例えば、人間は、他の人間が元の計算タスクを正しく実行したかどうかをより良く検出できるという認識のような、思考または感情などの、人間により導入される偏りを検出または考慮するのに有用である。
【００４０】
図５は、本開示の様々な実施形態による、ブロックチェーンネットワークを使用してタスクを送出し、検証するための処理を示す。例えば、図５に示される処理は、図２のサーバ２００によって実施されるものとして説明されているが、処理は図１のサーバシステム１０２〜１０４のいずれかによって実施することもでき、異なるサーバ及びシステムが、本明細書で全体としてシステムと呼ばれる、処理ステップの任意の数または部分を実行することができる。
【００４１】
この処理は、完了すべきタスクのためのブロックをブロックチェーンに追加するシステムから始まる（ステップ５０５）。例えば、この処理では、システムは、ブロックチェーンネットワークとの間で情報をやりとりする協調コンピューティングプラットフォームを提供するためのシステムであってもよい。別の例では、システムは、ブロックチェーンネットワーク内のマイナーまたはノードであってもよく、ブロックを生成してブロックチェーンに追加することで完了すべきタスクを追加し、タスクの検証および合意を支援する。別の例では、システムは、前述の２つの役割の何らかの組合せを実施することができる。ステップ５０５において、システムは、完了されるべき様々な計算タスクのためのレコードをブロックチェーンに追加することができる。様々な実施形態では、タスクは単に任意の種類のソフトウェアではなく、むしろ、例えばＨＢＣの一部として、例えば機械学習アプリケーションを改善または最適化するための機械学習に関連して、ユーザ入力または人間の直感を必要とするか、または利用するカスタムタスクである。本明細書で使用されるように、機械学習は、タスクの処理を反復的かつ漸進的に改善するために、入力を使用してモデルを構築するための統計的技法の使用である。本明細書で使用されるように、例示的な機械学習アプリケーションには、データ科学、分析、情報学、人工知能（ＡＩ）、およびデータマイニングアプリケーションが含まれるが、これらに限定されない。例えば、ブロックチェーンを介して提供されるこれらのタスクは、対話型アプリケーションを使用して実行されることができ、それにより、深層ニューラルネットワークなどの機械学習アルゴリズムのための訓練データを生成すること、監督された学習などの決定を評価すること、解決策に突然変異を提供すること、および人間の直感によって提供または支援される他の追加のヒューリスティック処理を生成すること、の少なくとも一つができる。機械学習アルゴリズムに関連して人間により実行されるタスクからの結果を使用する追加的な例は、参照によって本明細書に組み込まれる、２０１９年３月２６日に出願された「Abstracted Interface for Gamification of Machine Learning Algorithms」という名称の米国特許出願第１６／３６５，６４７号に記載されている。
【００４２】
ステップ５０５の一部として、システムは、例えば、研究者、ソフトウェア開発者などのユーザ入力を伴うタスクを必要とする１つ以上のエンティティから、タスクを受信および／または生成できる。ブロックを生成するために、システムは、ブロックＩＤ、タイムスタンプ、および例えばタスクの実行を指示するためのプログラムコードを含むブロックのデータを含む、ブロックの情報を生成し、含めることができる。このプログラムコードは、ポインタ（例えば、ＵＲＬ／ＵＲＩまたは対話型アプリケーションにおけるコードへの参照）、ユーザ入力を必要とする対話型アプリケーションの構成要素（例えば、メディア、メディアへのポインタ、および競争のための命令）を含むことができ、またはユーザ入力を必要とする構成要素だけでなく、対話型アプリケーション全体をインストールおよび実行するためのプログラムコードを含むことができる。例えば、ブロックは、タスクを完了するために使用される対話型アプリケーション、タスク完了のための基準、およびタスク完了のための報酬を示す情報を含むことができる。タスクの完了には、対話型アプリケーションを介したユーザ入力の受信が必要になる場合がある。その結果、クライアント装置は、タスクをブロックチェーンから受信すると、例えば、対話型アプリケーションを介して、これらのタスクに直接アクセスし、実行／処理することができる。
【００４３】
ブロックはまた、タスクの成功した競争に支払いをリンクするスマート契約を含むことができる。例えば、スマート契約は、例えばタスク完了のための金額に支払人の暗号トークンを記録するチェーン内の１つ以上の以前のトランザクションブロック、ならびに、タスクが完了したかどうかを判断する際にマイナーが利用するタスク完了のための基準を参照して、支払人および金額（例えば、タスク完了およびマイナー処理の両方のための）を識別することができる。これらの実施形態では、ブロックチェーンネットワークを介して配布される計算タスクは、例えばスマート契約を使用して、人間計算ベースのタスクと置き換えられるか、またはそれにより増補される。言い換えれば、これらのブロックは、人間計算ベースのスマート契約を含むことができる。
【００４４】
その後、システムは、競争のためにクライアント装置にタスクを提供する（ステップ５１０）。ここで、システムは、ブロックチェーンを使用して、１つ以上のクライアント装置（たとえば、ネットワーク１００内のクライアント装置１０６〜１１４）により完了すべきタスクを配布する。一例では、ステップ５１０の一部として、クライアント装置はタスクを要求することができ、システムはプラットフォームを介してタスクを送信することができる。
【００４５】
次に、システムは、クライアント装置からタスク完了による結果を受信する（ステップ５１５）。例えば、ステップ５１５の一部として、タスクを完了したクライアント装置は、タスクの結果をシステムに送信する。システムまたは他のマイナーは、タスクを完了した異なるクライアント装置から複数のそのような結果を受け取る可能性がある。
【００４６】
その後、システムはタスクの完了を検証する（ステップ５２０）。例えば、ステップ５２０において、システム（またはマイナーのグループ）は、ブロックチェーンに追加される新しいレコードの形式で結果を受信し、タスクに関連付けられた基準に基づいてレコードを検証しようと試みることができる。例えば、タスクに関連する基準は、実行されるべきアクション、タイミング、量、およびタスク実行の結果の品質の少なくとも一つを含む。マイナーは、タスク完了のデータを示すかまたは含むレコードに基づいてレコードを検証することができる。さらに、サーバ２００（またはマイナーのグループ）は、タイミングまたは結果の品質に基づいて、レコードを検証することができる。例えば、最初に実行した者（または、例えば、訓練データセットの生成に関連するタスクのために実行する最初のＮ個）、特定の時間前に終了した者、または、タスクを実行する他の者の結果と一定レベルの一貫性を有する結果、を検証することができる。
【００４７】
これらの実施形態では、検証された結果のデータは、サーバ２００によって使用されるか、または機械学習アプリケーションの少なくとも一部を処理する際に、ユーザ入力の使用のために提供されることができる。一例では、サーバ２００は、機械学習に使用するための複数の入力を受信してもよい。例えば、サーバ２００は、タスクを完了したクライアント装置の各インスタンスのすべての結果（例えば、タスク完了が検証されたか否か）を受信する。別の例では、同一または類似のタスクの複数のインスタンスが、機械学習に使用するために、同一または類似のタスクの完了時に複数の結果について、ブロックに追加され得る。
【００４８】
このステップの一部として、システムは、タスク処理の結果に関連するデータを、タスク完了の検証のために、クライアント装置１０６〜１１４のセットに送信することができる。例えば、システムは、合意アルゴリズムにおいて合意を醸成または人間の直感を使用するために、複数のユーザからの入力を要求することができる。システムは、タスクが完了したかどうかについて、応答するクライアント装置からそれぞれユーザ入力を受信し、受信したユーザ入力のセットに基づいてタスクが完了したかどうかについて合意決定を行う。例えば、システムは、応答するクライアント装置からのユーザ入力を平均化するか、応答するクライアント装置からの承認について閾値数またはパーセンテージを参照して、合意を醸成することができる。
【００４９】
受信したレコードに対する一定レベルの合意に基づいて、システム（またはマイナーのグループ）は、ブロックチェーンにレコードを追加する（ステップ５２５）。例えば、ステップ５２５において、レコードは、何らかの形の値、例えば、暗号通貨トークンまたはユーティリティトークンの形式での値を、そのレコードを送信したクライアント装置に伝えてもよく、例えば、追加されたレコードまたは新しいブロックは、タスクを成功裡に完了したクライアント装置に関連するアカウントに対する報酬の量を示してもよい。さらに、追加されたレコードまたは新しいブロックは、タスクの完了を処理したブロックチェーンネットワーク内の１つ以上のマイナーまたはノードに対する報酬の量を示すことができる。たとえば、レコードを作成する関連マイナーはスマート契約を実行し、タスクを完了したクライアント装置のＩＤは、競争の暗号トークンを所有するものとしてブロックに記録される。さらに、マイナーは、スマート契約の実行の一環として受信したこの処理用の暗号トークンにより（レコードの検証、追加、およびスマート契約の実行が）インセンティブ化される。
【００５０】
図６は、本開示の様々な実施形態による、ブロックチェーンネットワークを使用してタスクを受信し、完了するための処理を示す。例えば、図６に示す処理は、図３のクライアント装置３００によって実施されるものとして説明される。この処理は、図１のクライアント装置１０６〜１１４のいずれによっても実施することができる。
【００５１】
この処理は、クライアント装置３００がブロックチェーンから完了すべきタスクを受信することから開始する（ステップ６１０）。例えば、ステップ６１０において、クライアント装置は、タスクを完了するためにブロックＩＤに基づいて対話型アプリケーションにタスクを取得する。いくつかの実施形態では、クライアント装置は、計算タスクのリストを（例えば、サーバ１０２から）受信するか、または、例えば、ユーザの関心、タスク完了のために使用可能なゲームの種類、および／またはクライアント装置における必要な計算リソースの可用性に基づいて、完了することができるタスクの種類を決定することができる。次に、クライアント装置は、ユーザ選択のためにタスクのリストを提示することができ、あるいは、例えば、タスクがルーチンゲームプレイの一部として完了することができる場合には、ユーザの介入なしに、タスクをゲーム内に取得することができる。これらの実施形態では、クライアント装置は、例えば、実行するために外部データベースからデータを取得するためのタスク識別子（ブロックＩＤ、タスクＩＤ、ＵＲＬ、ＵＲＩなど）、タスクを処理するためのユーザインタフェースもしくはタスクを処理できるより大きな対話型アプリケーションをダウンロードおよびインストールまたは実行するための実行可能コードなどのプログラムコード、もしくはインストールまたは実行するユーザインタフェースまたは対話型アプリケーションの全体、などのようなブロックに格納されたデータに基づいてタスクを受信する。
【００５２】
その後、クライアント装置３００は、タスクを処理する際にユーザ入力を受信する（ステップ６１０）。例えば、ステップ６１０において、クライアント装置３００は、ユーザ入力及び人間の直感の少なくとも一方を求めて、タスクの実行からデータの形式で結果を生成するためのユーザインタフェース（例えば、ゲームの一部として）を生成する。例えば、このデータは、生成された訓練データまたはパターン認識を示すデータを含んでもよい。様々な実施形態では、タスクは、単に任意の種類の計算ではなく、むしろ、例えば、機械学習アプリケーションを改善または最適化するための機械学習に関連して、ユーザ入力または人間の直感を必要とするか、または利用するカスタムタスクである。例えば、クライアント装置３００で処理されるこれらのタスクは、対話型アプリケーションを使用して実行され、深層ニューラルネットワークなどの機械学習アルゴリズムのための訓練データを生成すること、監督された学習などの決定を評価すること、解決策に突然変異を提供すること、および人間の直感によって提供または支援される他の追加のヒューリスティック処理を生成すること、の少なくとも一つができる。
【００５３】
その後、クライアント装置３００は、ブロックチェーンに追加されるブロックとして、タスクを処理した結果を送信する（ステップ６１５）。例えば、ステップ６１５において、クライアント装置３００は、タスク完了から結果を生成しフォーマットし、結果を示すデータを例えばサーバ１０２のようなサーバに送る。クライアント装置３００またはサーバ１０２は、ブロックチェーンのための提案されたブロックを形成するために、結果データをフォーマットし、含めることができる。クライアント装置３００は、ブロックチェーンに追加されるべきブロックの結果データを送信し、上述したようにタスク完了について独立して検証されたクレジットを受信する。その後、（上述したように）検証された場合、クライアント装置および関連するユーザは、暗号トークンの形式でタスク完了についてのクレジットを受領する。
【００５４】
図５および図６は、ブロックチェーンネットワークを使用してタスクを送出し、検証し、ブロックチェーンネットワークを使用してタスクを受信し、完了するための処理の例をそれぞれ示しているが、図５および図６に対して様々な変更を行うことができる。例えば、一連のステップとして示されているが、各図の様々なステップは、重複するか、並列に実行されるか、異なる順序で実行されるか、または複数回実行されることができる。別の例では、ステップは省略されるか、または他のステップに置き換えられてもよい。
【００５５】
したがって、本開示の様々な実施形態は、ブロックチェーン環境内のユーザ入力および人間の直感の少なくとも一方を利用する計算タスクの包含、配布、完了、検証、および補償の少なくとも一つを提供する。このようなタスクを完了する必要があるエンティティは、本明細書で開示するブロックチェーン配布機構の信頼性、可用性、匿名性、およびセキュリティを利用して、タスクの完了に必要なユーザ入力および人間の直感の少なくとも一方にアクセスすることができる。さらに、ユーザは、本明細書で開示されるブロックチェーン配信機構の信頼性、可用性、匿名性、およびセキュリティを介して、ユーザの計算力および直感を収益化するさらなる機会を与えられる。その結果、本開示の実施形態は、不正行為、動作不能時間、または外部パーティからの干渉から解放され得る、安全で信頼できる方法で、タスクの配布、完了、検証、および報酬の少なくとも一つを提供する。
【００５６】
一実施形態は、ブロックチェーンネットワークを使用してタスクを配布するための方法を提供する。この方法は、対話型アプリケーションを介して完了すべきタスクを生成し、ブロックチェーンネットワークを使用して、ブロックチェーンネットワークに関連付けられたブロックチェーン内のブロックを介してタスクを配布することを含む。ブロックチェーンネットワークは複数のノードを含み、対話型アプリケーションに関連する複数のクライアント装置によってアクセス可能である。この方法はさらに、ブロックチェーンネットワーク内の１つ以上のノードを介して１つ以上のクライアント装置から、対話型アプリケーションを介してタスクを処理した結果に関連するデータを受信することを含む。タスクの完了は、受信データに基づいて検証される。
【００５７】
別の実施形態は、ブロックチェーンネットワークを使用してタスクを配布するためのシステムを提供する。システムは、対話型アプリケーションを介して完了すべきタスクを生成し、ブロックチェーンネットワークを用いて、ブロックチェーンネットワークに関連付けられたブロックチェーン内のブロックを介してタスクを配布するように構成されたプロセッサを含む。ブロックチェーンネットワークは複数のノードを含み、対話型アプリケーションに関連する複数のクライアント装置によってアクセス可能である。システムはさらに、プロセッサに動作可能に接続された通信インタフェースを含む。通信インタフェースは、ブロックチェーンネットワーク内の１つ以上のノードを介して１つ以上のクライアント装置から、対話型アプリケーションを介してタスクを処理した結果に関連するデータを受信するように構成される。タスクの完了は、受信データに基づいて検証される。
【００５８】
別の実施形態は、ブロックチェーンネットワークを使用してタスクを配布するための持続的コンピュータ可読媒体を提供する。持続的コンピュータ可読媒体は、システムのプロセッサによって実行されると、システムに、対話型アプリケーションを介して完了すべきタスクを生成させ、ブロックチェーンネットワークを使用して、ブロックチェーンネットワークに関連するブロックチェーン内のブロックを介してタスクを配布させる、プログラムコードを含む。ブロックチェーンネットワークは複数のノードを含み、対話型アプリケーションに関連する複数のクライアント装置によってアクセス可能である。持続的コンピュータ可読媒体は、システムのプロセッサによって実行されると、システムに、対話型アプリケーションを介してタスクを処理した結果に関連するデータを、ブロックチェーンネットワーク内の１つ以上のノードを介して１つ以上のクライアント装置から受信させる、プログラムコードを含む。タスクの完了は、受信データに基づいて検証される。
【００５９】
上記の例および実施形態のいずれにおいても、結果は、ブロックチェーンネットワークに接続された１つ以上のクライアント装置において、対話型アプリケーションを介してタスクの処理中に受信されたユーザ入力に関連付けられる。
【００６０】
上記の例および実施形態のいずれにおいても、タスクの完了には、対話型アプリケーションを介したユーザ入力の受信を必要とし、この方法は、受信されたユーザ入力の結果に関連付けられたデータを使用して、機械学習アプリケーションの少なくとも一部を処理することをさらに含む。
【００６１】
上記の例および実施形態のいずれにおいても、ブロックは、タスクを完了するために使用される対話型アプリケーション、タスク完了のための基準、およびタスク完了のための報酬を示す情報を含む。
【００６２】
上記の例および実施形態のいずれかでは、方法は、タスクが完了したかどうかに関して、クライアント装置のセットからユーザ入力のセットをそれぞれ受信し、受信したユーザ入力のセットに基づいてタスクが完了したかどうかに関して合意決定を行うことを含む、タスクの完了を検証するステップをさらに含む。
【００６３】
上記の例および実施形態のいずれにおいても、タスクの完了を検証することは、ユーザ入力のセットを受信する前に、タスクの完了の検証のために、タスクを処理した結果に関連するデータをクライアント装置のセットに送信することをさらに含む。
【００６４】
上記の例および実施形態のいずれにおいても、方法は、タスク完了の検証に応答して、新しいブロックをブロックチェーンに追加するステップをさらに含み、新しいブロックは、タスクの完了を処理したブロックチェーンネットワーク内のノードのうちの１つと、ブロックチェーンネットワークに接続されたタスクを完了したクライアント装置のうちの１つに関連するアカウントと、に対する報酬を示す。
【００６５】
本明細書全体を通して使用される特定の単語および語句の定義を記載することが有益であろう。用語「結合（couple）」およびその派生物は、それらの要素が互いに物理的に接触しているか否かにかかわらず、２つ以上の要素間の任意の直接的または間接的な通信を指す。用語「送信」、「受信」、および「通信」、ならびにその派生物は、直接的及び間接的な通信の両方を包含する。用語「含む」および「備える」、並びにその派生物は、限定のない包含を意味する。用語「または」は包摂的であり、「および／または」を意味する。語句「関連する」およびその派生物は、含む、その中に含まれる、相互接続する、包含する、その中に包含される、（〜と／〜に）接続する、（〜と／〜に）結合する、通信可能である、協働する、交互配置する、並置する、近似する、拘束される、有する、属する、（〜と／〜に）関係がある、等を意味する。語句「〜のように」が用語間で使用されるとき、先行する用語は、後続の用語の例であり限定ではないことを意味する。用語「少なくとも１つ」は、品目のリストと共に使用される場合、リストに記載された項目の１つ以上の異なる組合せを使用することができることを意味し、リスト内の１つの項目のみが必要とされる場合もある。例えば、「Ａ、Ｂ、及びＣのうち少なくとも１つ」は、Ａ、Ｂ、Ｃ、Ａ及びＢ、Ａ及びＣ、Ｂ及びＣ、Ａ及びＢ及びＣ、のいずれかの組合せを含む。
【００６６】
さらに、本明細書に記載する様々な機能は、１つ以上のコンピュータプログラムによって実施またはサポートすることができ、その各々は、コンピュータ可読プログラムコードから形成され、コンピュータ可読媒体により具体化される。用語「アプリケーション」および「プログラム」は、１つ以上のコンピュータプログラム、ソフトウェアコンポーネント、命令のセット、手順、機能、オブジェクト、クラス、インスタンス、関連データ、または適切なコンピュータ可読プログラムコードでの実施に適合されたその一部を指す。語句「コンピュータ可読プログラムコード」は、ソースコード、オブジェクトコード、および実行可能コードを含む、任意の種類のコンピュータコードを含む。語句「コンピュータ可読媒体」は、読取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ハードディスクドライブ、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、または任意の他の種類のメモリなど、コンピュータによってアクセスされることが可能な任意のタイプの媒体を含む。「持続的コンピュータ可読媒体」は、有線、無線、光学、または一時的な電気または他の信号を搬送する通信リンクを除外する。持続的コンピュータ可読媒体は、データを永久的に記憶することができる媒体と、データを記憶し後で上書きすることができる媒体、例えば、書き換え可能な光ディスクまたは消去可能なメモリデバイスと、を含む。
【００６７】
他の特定の語句の定義は、本明細書全体を通して提供される。当業者は、ほとんどではないにしても多くの場合、このような定義は、このような定義された単語および語句の以前の使用ならびに将来の使用に適用されることを理解すべきである。本開示は、例示的な実施形態を用いて説明されてきたが、当業者には、様々な変更および修正が示唆され得る。本開示は、添付の特許請求の範囲の内であれば、このような変更および修正を包含することが意図される。本出願における説明のいずれも、任意の特定の要素、ステップ、または機能が、特許請求の範囲に含まれなければならない必須の要素であることを暗示するものとして解釈されるべきではない。特許の対象範囲は、請求項によってのみ定義される。さらに、請求項のいずれも、「のための手段」という正確な単語の後に分詞が続かない限り、３５Ｕ．Ｓ．Ｃ。§１１２（ｆ）を適用されるものとは意図されていない。
【図１】
2021533463.tif 000003
【図２】
2021533463.tif 000004
【図３】
2021533463.tif 000005
【図４】
2021533463.tif 000006
【図５】
2021533463.tif 000007
【図６】
2021533463.tif 000008
【国際調査報告】
2021533463.tif 000009