(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-20
(45)【発行日】2023-11-29
(54)【発明の名称】ブロックチェーンネットワークを使用したタスクの完了
(51)【国際特許分類】
G06F 9/50 20060101AFI20231121BHJP
G06N 20/00 20190101ALI20231121BHJP
【FI】
G06F9/50 150Z
G06N20/00
(21)【出願番号】P 2021505419
(86)(22)【出願日】2019-08-02
(86)【国際出願番号】 US2019044810
(87)【国際公開番号】W WO2020028758
(87)【国際公開日】2020-02-06
【審査請求日】2022-07-28
(32)【優先日】2018-08-02
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-08-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519434477
【氏名又は名称】バランスド メディア テクノロジー エルエルシー
(74)【代理人】
【識別番号】100084995
【氏名又は名称】加藤 和詳
(72)【発明者】
【氏名】クラーク、コーリー
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2018-45592(JP,A)
【文献】LI, Ming et al.,CrowdBC: A Blockchain-based Decentralized Framework for Crowdsourcing,Cryptology ePrint Archive,2018年07月11日,Pages1-15,https://eprint.iacr.org/2017/444
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/48
G06F 9/50
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
システムが、ブロックチェーンネットワーク(104)を用いてタスクを配布する方法であって、
前記ブロックチェーンネットワーク(104)は複数のノードを含み、対話型アプリケーション(334)に関連する複数のクライアント装置(106~114)によってアクセス可能であり、
クライアント装置(106~114)により前記対話型アプリケーション(334)を介して完了すべきタスクを生成し、
前記ブロックチェーンネットワークを使用して、
前記ブロックチェーンネットワークに関連するブロックチェーン(400)内のブロック
としてタスクを配布し
、
前記ブロックチェーンネットワーク内の1つ以上のノードを介して1つ以上のクライアント装置から、
前記対話型アプリケーションを介してタスクを処理した結果に関連付けられたデータを受信し、受信した前記データに基づいてタスクの完了
を検証
すること、
を含
み、
前記タスクの完了の検証は、前記システムが、
前記タスクを処理した結果に関連するデータを前記クライアント装置のセットに送信し、
前記タスクが完了したかどうかに関して、前記クライアント装置のセットからユーザ入力のセットをそれぞれ受信し、
受信した前記ユーザ入力のセットに基づいて前記タスクが完了したかどうかについて合意決定を行うこと、
を含む、方法。
【請求項2】
前記結果は、前記ブロックチェーンネットワークに接続された1つ以上のクライアント装置において、前記対話型アプリケーションを介して前記タスクを処理する間に受信されたユーザ入力に関連付けられる、請求項1に記載の方法。
【請求項3】
前記タスクの完了は、前記対話型アプリケーションを介した前記ユーザ入力の受信を必要とし、前記方法は、前記受信されたユーザ入力の結果に関連付けられたデータを使用して、機械学習アプリケーションの少なくとも一部を処理することをさらに含む、請求項2に記載の方法。
【請求項4】
前記ブロックは、前記タスクを完了するために使用される対話型アプリケーションと、前記タスクの完了の基準と、前記タスクの完了の報酬と、を示す情報を含む、請求項2に記載の方法。
【請求項5】
前記タスクの完了の検証に応答して、新しいブロックをブロックチェーンに追加し、前記新しいブロックは、前記タスクの完了を処理したブロックチェーンネットワーク内のノードのうちの1つ、および前記タスクを完了したブロックチェーンネットワークに接続されたクライアント装置のうちの1つに関連するアカウントへの報酬を示すことをさらに含む、請求項1記載の方法。
【請求項6】
ブロックチェーンネットワーク(104)を用いてタスクを配布するシステム(200)であって、
前記ブロックチェーンネットワーク(104)は複数のノードを含み、対話型アプリケーション(334)に関連付けられた複数のクライアント装置(106~114)によってアクセス可能であり、
プロセッサ(210)であって、
クライアント装置(106~114)により前記対話型アプリケーション(334)を介して完了すべきタスクを生成し、
前記ブロックチェーンネットワークを用いて、前記ブロックチェーンネットワークに関連付けられたブロックチェーン(400)内のブロック
としてタスクを配布するよう構成され
る、プロセッサと、
前記プロセッサに動作可能に接続された通信インタフェース(220)であって、前記ブロックチェーンネットワーク内の1つ以上のノードを介して1つ以上のクライアント装置から、前記対話型アプリケーションを介してタスクを処理した結果に関連付けられたデータを受信するように構成された通信インタフェースと、
を含み、タスクの完了は受信されたデータに基づいて検証され
、
前記タスクの完了を検証するために、
前記通信インタフェースは、前記タスクを処理した結果に関連するデータを前記クライアント装置のセットに送信し、
前記通信インタフェースは、前記タスクが完了したかどうかに関して、前記クライアント装置のセットからユーザ入力のセットをそれぞれ受信するように構成され、
前記プロセッサは、受信した前記ユーザ入力のセットに基づいて、前記タスクが完了したかどうかについて合意決定を行うように構成される、システム。
【請求項7】
前記結果は、前記ブロックチェーンネットワークに接続された1つ以上のクライアント装置において、前記対話型アプリケーションを介して前記タスクを処理する間に受信されたユーザ入力に関連付けられる、請求項
6に記載のシステム。
【請求項8】
前記タスクの完了は、前記対話型アプリケーションを介したユーザ入力の受信を必要とし、前記プロセッサは、受信した前記ユーザ入力の結果に関連するデータを用いて、機械学習アプリケーションの少なくとも一部を処理するようにさらに構成される、請求項
7に記載のシステム。
【請求項9】
前記ブロックは、前記タスクを完了するために使用される対話型アプリケーションと、前記タスクの完了の基準と、前記タスクの完了の報酬と、を示す情報を含む、請求項
7に記載のシステム。
【請求項10】
前記プロセッサは、前記タスクの完了の検証に応答して、前記ブロックチェーンに新しいブロックを追加するようにさらに構成され、
前記新しいブロックは、前記タスクの完了を処理したブロックチェーンネットワーク内のノードのうちの1つと、前記タスクを完了したブロックチェーンネットワークに接続されたクライアント装置のうちの1つに関連するアカウントとに対する報酬を示す、請求項6に記載のシステム。
【請求項11】
ブロックチェーンネットワーク(104)を使用してタスクを配布するための持続的コンピュータ可読媒体(215)であって、
前記ブロックチェーンネットワーク(104)は複数のノードを含み、対話型アプリケーション(334)に関連する複数のクライアント装置(106~114)によってアクセス可能であり、前記持続的コンピュータ可読媒体(215)はプログラムコードを含み、前記プログラムコードがシステム(200)のプロセッサ(210)によって実行されると、前記システム
が、
クライアント装置(106~114)により前記対話型アプリケーション(334)を介して完了すべきタスクを生成
し、
前記ブロックチェーンネットワークを使用して、前記ブロックチェーンネットワークに関連するブロックチェーン(400)内のブロック
としてタスクを配布
し、
前記ブロックチェーンネットワーク内の1つ以上のノードを介してクライアント装置から、前記対話型アプリケーションを介してタスクを処理した結果に関連するデータを受信
し、
受信したデータに基づいてタスクの完了
を検証
し、
前記タスクの完了を検証することが、前記システムが、
前記タスクを処理した結果に関連するデータを前記クライアント装置のセットに送信し、
前記タスクが完了したかどうかについて、クライアント装置のセットからユーザ入力のセットをそれぞれ受信し、
受信した前記ユーザ入力のセットに基づいてタスクが完了したかどうかについて合意決定を行う
ことを含む、コンピュータ可読媒体。
【請求項12】
前記結果は、前記ブロックチェーンネットワークに接続された1つ以上のクライアント装置において、前記対話型アプリケーションを介して前記タスクを処理する間に受信されたユーザ入力に関連付けられる、請求項
11に記載のコンピュータ可読媒体。
【請求項13】
前記タスクの完了は、前記対話型アプリケーションを介したユーザ入力の受信を必要とし、
前記コンピュータ可読媒体は、前記システムの前記プロセッサによって実行されると、前記システム
が、受信されたユーザ入力の結果に関連するデータを用いて、機械学習アプリケーションの少なくとも一部を処理
するプログラムコードをさらに含む、請求項
12に記載のコンピュータ可読媒体。
【請求項14】
前記ブロックは、前記タスクを完了するために使用される対話型アプリケーションと、前記タスクの完了のための基準と、前記タスクの完了のための報酬と、を示す情報を含む、請求項
12に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して、ブロックチェーン技術に関する。より具体的には、本開示は、グリッドコンピューティングネットワークへタスクを送出し、グリッドコンピューティングネットワークからのタスクを検証する際にブロックチェーンを使用することに関する。
【背景技術】
【0002】
大規模なデータセットのクラウドベースのコンピューティングおよびデータ処理に対する需要が高まるにつれて、コンピュータ資源に対する需要も高まっている。グリッドまたは分散コンピューティングは、大きなデータセットを処理するために使用することができる膨大な計算力を生成するための解決策である。グリッドコンピューティングまたは分散コンピューティングは、複数の場所(つまり、異なる、遠隔に配置されたコンピュータ装置)からのコンピュータ資源の集合を利用して、関連タスクを実行するコンピューティングの一種である。ボランティアコンピューティングは、コンピュータの所有者またはユーザが自分の計算リソース(例えば、処理能力および記憶手段)を1つ以上のプロジェクトに提供するグリッドコンピューティングの一種である。
【0003】
ブロックチェーンは、暗号化を使用してリンクされ、保護されているレコードまたはブロックの分散リストまたはデータベースである。ブロックチェーンは、それぞれがブロックチェーン自身のコピーを有するブロックチェーンネットワーク内のコンピュータシステムまたはノード(例えば、採掘者(マイナー)と呼ばれる)によって維持される。マイナーの合意に達した記録(レコード)がブロックチェーンに追加され、これによりブロックチェーンの完全性が保たれる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の実施形態は、ブロックチェーンネットワークを使用したタスクの配布を提供する。
【課題を解決するための手段】
【0005】
一実施形態では、ブロックチェーンネットワークを使用してタスクを配布する方法が提供される。この方法は、対話型アプリケーションを介して完了すべきタスクを生成し、ブロックチェーンネットワークを使用して、ブロックチェーンネットワークに関連付けられたブロックチェーン内のブロックを介してタスクを配布することを含む。ブロックチェーンネットワークは複数のノードを含み、対話型アプリケーションに関連する複数のクライアント装置によってアクセス可能である。この方法はさらに、ブロックチェーンネットワーク内の1つ以上のノードを介して1つ以上のクライアント装置から、対話型アプリケーションを介してタスクを処理した結果に関連するデータを受信し、受信したデータに基づいてタスクの完了を検証することを含む。
【0006】
別の実施形態では、ブロックチェーンネットワークを使用してタスクを配布するためのシステムが提供される。システムは、プロセッサと、プロセッサに動作可能に接続された通信インタフェースと、を含む。プロセッサは、対話型アプリケーションを介して完了すべきタスクを生成し、ブロックチェーンネットワークを使用して、ブロックチェーンネットワークに関連付けられたブロックチェーン内のブロックを介してタスクを配布するように構成される。ブロックチェーンネットワークは複数のノードを含み、対話型アプリケーションに関連する複数のクライアント装置によってアクセス可能である。通信インタフェースは、ブロックチェーンネットワーク内の1つ以上のノードを介して1つ以上のクライアント装置から、対話型アプリケーションを介してタスクを処理した結果に関連するデータを受信するように構成される。タスクの完了は、受信データに基づいて検証される。
【0007】
さらに別の実施形態では、ブロックチェーンネットワークを使用してタスクを配布するための持続的コンピュータ可読媒体が提供される。コンピュータ可読媒体は、システムのプロセッサによって実行されると、システムに、対話型アプリケーションを介して完了すべきタスクを生成させ、ブロックチェーンネットワークを使用して、ブロックチェーンネットワークに関連付けられたブロックチェーン内のブロックを介してタスクを配布させ、ブロックチェーンネットワーク内の1つ以上のノードを介して1つ以上のクライアント装置から、対話型アプリケーションを介してタスクを処理した結果に関連するデータを受信させるプログラムコードを含む。ブロックチェーンネットワークは複数のノードを含み、対話型アプリケーションに関連する複数のクライアント装置によってアクセス可能である。タスクの完了は、受信データに基づいて検証される。
【0008】
その他の技術的特徴は、以下の図面、詳細な説明、および特許請求の範囲から当業者には容易に明らかであろう。
【0009】
本開示およびその利点をより完全に理解するために、以下の説明を添付の図面と併せて参照し、添付の図面では、同様の参照番号は同様の部分を表す。
【図面の簡単な説明】
【0010】
【
図1】本開示の様々な実施形態を実施することができるネットワーク化システムの一例を示す。
【
図2】本開示の様々な実施形態を実施することができるサーバの一例を示す。
【
図3】本開示の様々な実施形態が実施することができるクライアントデバイスの例を示す。
【
図4】本開示の様々な実施形態を実施することができるブロックチェーンの一例を示す図である。
【
図5】本開示の様々な実施形態による、ブロックチェーンネットワークを使用してタスクを送出し、検証するための処理のフローチャートを示す。
【
図6】本開示の様々な実施形態による、ブロックチェーンネットワークを使用してタスクを受信し、完了するためのプロセスのフローチャートを示す。
【発明を実施するための形態】
【0011】
以下に説明する
図1~
図6、および本明細書における本開示の原理を説明するために使用される様々な実施形態は、単に例示のためのものであり、いかなる方法によっても本開示の範囲を限定するものと解釈されるべきではない。当業者は、本開示の原理が、任意の適切に配置されたシステムまたは装置において実施され得ることを理解するであろう。
【0012】
本開示の様々な実施形態は、ブロックチェーン環境内の「人間による」計算タスク(すなわち、参照により本明細書に組み込まれる、2018年6月5日に出願された「Platform for Collaborative Processing of Computing Tasks」という名称の米国特許出願第16/000,589号(以下、「’589出願」という)に記載されているような、クライアント装置のユーザからの入力を利用する計算タスク)の包含、配布、完了、検証、および補償の少なくとも一つを提供する。これらの実施形態では、これらの種類の要求の完了を必要とするエンティティは、タスクをブロックチェーンにプッシュする。コンピューティンググリッド内の様々なクライアント・コンピュータ装置を接続するプラットフォーム(例えば、’589出願に記載されているものなど)が、クライアント装置によって、クライアントアプリケーション(例えば、’589出願に記載されているような対話型アプリケーションまたはゲーム)内で処理するために、ブロックチェーンからのタスクにアクセスするために、クライアント装置によって利用される。次いで、クライアント装置は、ブロックチェーンにポストされたレコードを介して、ブロックチェーンネットワークに接続された元の要求者または他のエンティティに受け渡すために、タスクを処理した結果をブロックチェーンネットワーク内のマイナーに返す。タスクを処理するクライアント装置は、ブロックチェーンを介して、例えばブロックチェーンに格納されたスマート契約の実行によって、例えば暗号通貨トークンまたは暗号ユーティリティトークンの形式で、クレジットを受領することができる。その結果、本開示の実施形態は、不正行為、動作不能時間、または外部パーティからの干渉から解放され得る、安全で信頼できる方法で、タスクの分配、完了、検証、および補償の少なくとも一つを提供する。
【0013】
図1は、本開示の様々な実施形態が実施することができる例示的なネットワーク化システム100を示す。
図1に示されるネットワーク化システム100の実施形態は、単に例示のためのものである。本開示の範囲から逸脱することなく、ネットワーク化システム100の他の実施形態を使用することもできる。
【0014】
図1に示すように、システム100は、システム100内の種々の構成要素間の通信を支援するネットワーク101を含む。例えば、ネットワーク101は、ネットワークアドレス間でインターネット・プロトコル(IP)パケットまたは他の情報を通信することができる。ネットワーク101は、1つ以上のローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、仮想プライベートネットワーク(VPN)、インターネットのようなグローバルネットワークの全部または一部、または他の通信システムまたは1つ以上の場所にあるシステムを含むことができる。
【0015】
ネットワーク101は、様々なサーバ(またはサーバシステム)102~104および様々なクライアント装置106~114間の通信を支援する。サーバ102~104の各々は、1つ以上のクライアント装置106~114のためのソフトウェアを含むコンピューティングサービスを提供することができる、任意の適切な電子計算または処理装置であってよい。サーバ102~104の各々は、例えば、1つ以上の処理装置、命令およびデータを記憶する1つ以上のメモリ、およびネットワーク101を介した通信を支援する1つ以上のネットワークインタフェースを含むことができる。例えば、サーバ102は、クライアント装置106-114を使用したボランティアグリッドコンピューティングを連携させることによって、グリッドコンピューティングを使用した協調コンピューティング、研究、または開発のためのプラットフォームを提供または管理することができる。サーバ103は、以下でより詳細に論じるように、プラットフォームを介してクライアント装置106~114によって処理される必要のあるプロジェクトまたはタスクを有する、研究者、ソフトウェア開発者、またはゲーム開発者に対応するサーバであってもよい。サーバシステム104は、以下でより詳細に説明するように、ブロックチェーンのトランザクションを処理するマイニングコンピュータシステム(またはマイナー)などの計算ノードを含むブロックチェーンネットワークである。
【0016】
各クライアント装置106~114は、ネットワーク101を介して少なくとも1つのサーバまたは他のコンピュータ装置と対話する、任意の適切な電子計算または処理装置を表す。この例では、クライアント装置106~114は、デスクトップコンピュータ106、携帯電話又はスマートフォン108、タブレットコンピュータ110、ラップトップコンピュータ112、ビデオゲームコンソール114、セットトップボックス及びテレビ等の少なくとも一つを含む。しかしながら、ネットワーク化システム100では、任意の他の、または追加のクライアント装置を使用することができる。例えば、システム100のクライアント装置106~114のうちの1つに、任意のネットワーク接続可能な装置、またはIoT(モノのインターネット:Internet of Things)装置(例えば、スマートテレビ、冷蔵庫、ラズベリーパイ(Raspberry PI(登録商標))など)を使用することができる。以下で論じるように、様々な実施形態では、クライアント装置106~114は、サーバ102の調整の下で、ブロックチェーンネットワーク104から受信したタスクを処理するためのボランティアコンピューティンググリッドを(場合によっては他のコンピュータ装置とともに)形成するために参加する。本明細書で説明するように、クライアント装置106~114は、コンピューティンググリッドの個々のセルであると考えることができる。さらに、個々のセルは、例えば、中央サーバの有無に関わらず、ピアツーピア、アドホック、およびメッシュベースのネットワークの少なくとも一つを直接的または間接的に使用して、互いにまたはサーバと通信することができる。
【0017】
様々な実施形態において、クライアント装置106~114に関連するサーバ(例えば、サーバ102)は、計算タスクの処理のためのコンピューティンググリッドを形成する。様々な実施形態では、サーバ102は、ブロックチェーンネットワーク104およびコンピューティンググリッドのセルから受信したタスクの調整、提供、および追跡のためのカスタムコードを管理する。他の実施形態では、サーバ102は、タスクを実行するために、コンピューティンググリッド内のセルを接続する仮想プライベートネットワーク(VPU)を管理する。これらの実施形態では、計算タスクを実行するために、コンピューティンググリッドによって市販のソフトウェアを実行することができる。
【0018】
図1は、ネットワーク化システム100の一例を示しているが、
図1には様々な変更を加えることができる。例えば、システム100は、任意の適切な構成で任意の数の各構成要素を含むことができ、サーバ102~104およびクライアント装置106~114のそれぞれは、システム100の一部である任意の数のサーバおよびクライアント装置の少なくとも一つを表すことができる。例えば、サーバ102の機能は、ブロックチェーンネットワーク104内の複数のコンピュータによって実行されてもよく、または、クライアント装置106~114は、サーバ102による管理なしに、ブロックチェーンネットワーク104から直接タスクを受信してもよい。一般に、計算および通信システムは多種多様な構成になり、
図1は、本開示の範囲を任意の特定の構成に限定しない。
図1は、本明細書に開示されている様々な特徴を使用することができる1つの動作環境を示しているが、これらの特徴は、任意の他の適切なシステムでも使用することができる。
【0019】
図2および
図3は、本開示の様々な実施形態による、ネットワーク化システムにおける例示的なコンピュータ装置を示す。特に
図2は、サーバ200の一例を示し、
図3は、クライアント装置300の一例を示す。この例示的な例では、サーバ200は、
図1のブロックチェーンネットワーク104内の任意の計算ノードまたはマイナーを含むサーバ102~104のうちの任意の1つを表し、クライアント装置300は、
図1のクライアント装置106~114のうちの1つ以上を表すことができる。
【0020】
図2に示すように、サーバ200は、プロセッサ210、記憶装置215、通信インタフェース(または回路)220、および入出力(I/O)ユニット225の間の通信をサポートするバスシステム205を含む。プロセッサ210は、メモリ230にロード可能な命令を実行する。プロセッサ210は、任意の適切な数および種類のプロセッサまたは他の装置を、任意の適切な構成で含むことができる。プロセッサ210の種類の例には、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ、特定用途向け集積回路、および離散回路が含まれる。
【0021】
メモリ230および永続記憶装置235は、情報を(データ、プログラムコード、および他の適切な情報などの少なくとも一つを、一時的または永続的に)記憶し、取り出しを容易にすることができる、任意の構造を表す記憶装置215の例である。メモリ230は、ランダムアクセスメモリ、または任意の他の適切な揮発性または不揮発性記憶装置を表すことができる。永続記憶装置235は、読み取り専用メモリ、ハードドライブ、フラッシュメモリ、または光ディスクのような、データの長期記憶をサポートする1つ以上の構成要素または装置を含んでもよい。例えば、永続的記憶装置235は、データの1つ以上のデータベース、実行されるべきタスクおよび完了したタスクの記録を含むブロックチェーン、ボランティアコンピューティンググリッド内のセルのためのクライアントアプリケーション、ボランティアコンピューティンググリッド内のセルへの送出を待つタスク、およびボランティアコンピューティンググリッドからの処理結果などの少なくとも一つを記憶することができる。
【0022】
通信インタフェース220は、他のシステムまたは装置との通信をサポートする。例えば、通信インタフェース220は、ネットワーク101を介した通信を支援するネットワークインタフェースカードまたは無線トランシーバを含むことができる。通信インタフェース220は、任意の適切な物理的または無線通信リンクを介した通信をサポートしてもよい。I/Oユニット225は、データの入出力を可能にする。例えば、I/Oユニット225は、キーボード、マウス、キーパッド、タッチスクリーン、または他の適切な入力デバイスを介した、ユーザ入力のための接続を提供し得る。I/Oユニット225は、ディスプレイ、プリンタ、または他の適切な出力デバイスに出力を送信することもできる。
【0023】
図2はサーバ200の一例を示しているが、
図2には様々な変更を加えることができる。例えば、
図2の様々な構成要素は、組み合わせるか、さらに細分化するか、または省略することができ、特定の必要に応じて追加の構成要素を追加することができる。具体的な例として、サーバ200は1つのシステムとして描かれているが、遠隔に配置されていてもよい複数のサーバシステムを含んでもよい。別の例では、異なるサーバシステムが、本開示の様々な実施形態に従って、ブロックチェーンネットワークへのタスクおよびブロックチェーンネットワークからのタスクのための送出およびリターン結果を管理するため、およびブロックチェーンネットワーク内の計算ノードまたはマイナーを形成するための少なくとも一方の、処理、記憶、および通信リソースのいくつかまたはすべてを提供することができる。別の例では、サーバ200はボランティアコンピューティンググリッドの一部であってもよい。例えば、ボランティアコンピューティンググリッド内の1つ以上のコンピュータ装置は、本明細書で論じるように、サーバ200の動作を個別にまたは共同で実行するためのソフトウェアを含んでもよい。
【0024】
図3は、本開示の実施形態による例示的なクライアント装置300を示す。
図3に示すクライアント装置300の実施形態は、例示のためだけのものであり、
図1のクライアント装置106~114は、同一または同様の構成を有することができる。しかしながら、クライアント装置は多種多様な構成で提供され、
図3は本開示の範囲を電子的装置の任意の特定の実装に限定しない。
図3に示すように、クライアント装置300は、通信インタフェース(または回路)305、プロセッサ310、入出力(I/O)インタフェース315、入力325、ディスプレイ320、およびメモリ330を含む。メモリ330は、オペレーティングシステム(OS)332と、1つ以上のクライアントアプリケーション334とを含む。
【0025】
通信インタフェースまたは回路305は、他のシステムまたは装置との通信をサポートする。例えば、通信インタフェース305は、ネットワーク101を介した通信を支援するネットワークインタフェースカードまたは無線トランシーバを含むことができる。通信インタフェース305は、任意の適切な物理的または無線通信リンクを介した通信をサポートしてもよい。無線通信を利用する実施形態の場合、通信インタフェース305は、様々な無線通信プロトコル(例えば、Bluetooth(登録商標)、Wi-Fi(登録商標)、セルラー方式、LTE通信プロトコルなど)を使用して、1つ以上のアンテナを介して着信RF信号を受信することができる。
【0026】
プロセッサ310は、1つ以上のプロセッサまたは他の処理装置を含むことができ、クライアント装置300の全体的な動作を制御するために、メモリ330に記憶されたOS332を実行することができる。プロセッサ310は、たとえば、ボランティアコンピューティンググリッドの一部としてブロックチェーンネットワークから受信した、処理または計算タスク、通信またはネットワークタスク、および記憶タスクなどの計算タスクを実行するための1つ以上のクライアントアプリケーションのプログラムコードなど、メモリ330に常駐するクライアントアプリケーション334を実行することもできる。クライアントアプリケーション334は、以下でより詳細に説明するように、ユーザ入力を必要とする、ユーザ入力を使用する、又はユーザ入力のインセンティブを与える、ビデオゲーム又はアプリケーションのような、機械学習アプリケーション又は対話型アプリケーションのためのプログラムコードを含むことができる。プロセッサ310、通信インタフェース305およびメモリ330の少なくとも一つが、クライアント装置300の計算リソースを構成する。プロセッサ310は、任意の適切な数および種類のプロセッサまたは他の装置を任意の適切な構成で含むことができる。プロセッサ310の種類の例には、マイクロプロセッサ、マイクロコントローラ、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ、特定用途向け集積回路、および離散回路が含まれる。
【0027】
プロセッサ310は、実行プロセスによって要求されるように、メモリ330の中または外にデータを移動することができる。プロセッサ310は、I/Oインタフェース315にも結合され、これは、クライアント装置300にラップトップコンピュータやハンドヘルドコンピュータなどの他の装置に接続する能力を提供する。I/Oインタフェース315は、周辺機器とプロセッサ310との間の通信経路を提供する。
【0028】
プロセッサ310は、入力325およびディスプレイ320にも結合される。クライアント装置300のオペレータは、入力325を使用してデータを入力し、クライアント装置300に入力することができる。例えば、入力325は、タッチスクリーン、ボタン、キーボード、トラックボール、マウス、スタイラス、電子ペン、ビデオゲームコントローラ等であってもよい。ディスプレイ320は、液晶ディスプレイ、発光ダイオードディスプレイ、またはウェブサイトなどからテキストおよび/または少なくとも限定されたグラフィックスを描画することができる他のディスプレイであってもよい。メモリ330は、プロセッサ310に結合される。メモリ330の一部は、ランダムアクセスメモリ(RAM)を含むことができ、メモリ330の別の部分は、フラッシュメモリまたは他のリードオンリーメモリ(ROM)を含むことができる。
【0029】
図3はクライアント装置300の一例を示しているが、
図3には様々な変更を加えることができる。例えば、
図3の様々な構成要素を組み合わせるか、さらに細分化するか、または省略することができ、特定の必要に応じて追加の構成要素を追加することができる。具体的な例として、プロセッサ310は、1つ以上の中央処理装置(CPU)および1つ以上のグラフィック処理装置(GPU)のような複数のプロセッサに分割することができる。別の例では、ディスプレイ320は、例えば、ビデオゲームコンソール又はデスクトップコンピュータ等のクライアント装置300の一部に外部的に接続されてもよいし、その一部でなくてもよい。
【0030】
図4は、本開示の様々な実施形態を実施することができるブロックチェーン400の一例を示す図である。一般に、ブロックチェーンは多種多様な構成で形成され、管理され、
図4は本開示の範囲を任意の特定の構成に限定しない。
【0031】
ブロック405~430は、ブロック405で始まりブロック430で終端するブロックチェーン内のブロックを形成する。例えば、ブロック405~430またはレコードは、トランザクション(取引)データまたはプログラムを含むことができる。例えば、各ブロックは、典型的には、ブロックID、暗号化のためのハッシュ値、タイムスタンプ、およびいくつかのデータ(例えば、トランザクションレコード、アプリケーション、プログラムコードなど)を含み得る。様々な実施形態では、以下でより詳細に説明するように、様々なブロックは、タスクの完了および完了したタスクからの結果の少なくとも一方を要求するためのプログラムコードを含む。例えば、ブロックは、タスクの成功した競争のクレジットとして、暗号通貨またはユーティリティトークンのようなトークンを示すレコードを含むことができる。
【0032】
図示されるように、ブロック405~420および430は、メインブロックチェーン400の一部であり、そのコピーが各マイナーにおいて維持される。新しいブロックがブロックチェーン400に追加されるためには、マイナー間で意見の一致(合意)に達しなければならない。ブロックチェーン400内のどのブロックについても、1つの経路しかない。ブロックチェーン400は分散されているので、ブロックは典型的には短い時間間隔で生成される。競合するブロックの追加が異なるマイナーによって提案される場合、ブロック415の後などのように、分岐が生じる。分岐が発生すると、マイナーは、時間的に最初に受信したブロックから構築する。
【0033】
ブロックチェーン400を管理するために、マイナーは、コインのためにトランザクションを計算(例えば、マイニング)しようとする。様々な実施形態では、これらのマイナーは、クライアント装置に送出されたタスクのためのプログラムコードを格納し、タスクの完了からの結果を受信する。マイナーは、タスク完了からこれらの結果を得て、ブロックを構築する。たとえば、マイナーは、タスクからの結果を組み合わせて、タスクが実行されたことを記録するためにブロックを作成し、どのクライアント装置が、それらのタスク完了のクレジット(暗号通貨やユーティリティトークンの形式など)を受け取るかを記録する。
【0034】
様々な実施形態では、コンピューティンググリッドによるタスク競争(コンペ)を必要とする者が、特にユーザ入力または対話がタスクの完了を支援することができる種類のタスクについて、ブロックチェーン400を介して競争のためのタスクをポストする。例えば、サーバ102は、タスク競争をブロックチェーン400に命令するためのプログラムコードを含むブロックを追加してもよい。いくつかの実施形態では、サーバ102は、タスクを実行するために使用可能な対話型アプリケーションを生成し、ユーザの要求または承認に応じて、またはユーザの介入または要求なしに、ブロックチェーンからタスクを取得(プル)することもできる。例えば、タスクは、タスクの完了に特化したゲームの一部として、又は単に全体的により大きなゲームの一部として、プレイ又は完了することができる1つ以上のタスクのうちの1つであるように生成することができる。例えば、本開示の様々な実施形態では、使用されるゲームは、人間計算ゲーム(Human Computation Game:HCG)または人間ベース計算(Human-based Computation:HBC)ゲームであってもよい。コンピューティンググリッド内のクライアント装置(すなわち、クライアント装置106~114のいずれか)は、プラットフォームを介してブロックチェーン400からタスクを要求する。これに限定されない一例として、画像内に特定のオブジェクトを見つけるための画像解析を要求するタスクの場合、要求は、タスクの実行をブロックチェーンに要求するグリッドコンピューティングの消費者によって行われる。この例では、ブロックは、ブロックID、および識別されるべき画像内の物体を要求するためのコードを含む。
【0035】
様々な実施形態では、タスクはクライアント装置が、クライアント装置上で実行されている対話型アプリケーションまたはゲーム中にタスクを処理するか、または完了すべきタスクを提示することができるように、対話型アプリケーションまたはゲームに接続される。クライアントによってブロックチェーンから受信されると、要求されたタスクは、クライアント装置にブロックIDを介してタスクを実行させる。例えば、サーバ102は、実行する必要があるブロックチェーン内のタスクのデータベースを、関連するタスクの要件と共に維持することができる。クライアント装置は、ブロックチェーン内に格納されているさまざまなタスクを表示して、クライアント装置において完了できる特定のタスクを識別できる。例えば、タスクは、クライアント装置が有する又は実行する特定のゲームにおける競技のためにプログラムされてもよい。別の例では、クライアント装置は、ユーザによる特定のゲームまたはタスクの選択、タスク完了のために利用可能な報酬量またはタスク完了のための複雑さ、またはタスクを完了するために必要な計算リソースの量および種類に基づいて、実行されるタスクを選択することができる。さらに、同じタスクを、プラットフォームを介してグリッド内のいずれのクライアント装置においても取り出すことができる。クライアント装置がタスクの処理を終了すると(例えば、タスクを完了するためにユーザから入力を受信することを含む)、クライアント装置は、タスクから結果を生成し、その結果を、マイナーによる検証のためにブロックチェーンに送り返す。例えば、マイナーは、受信した結果を用いてブロックを形成しようとする。重要なことは、タスクがグリッド内のすべてのクライアント装置によって完了するために利用可能とされるので、異なるマイナーによって複数の結果が受信される可能性が高いことである。すべての異なる受信結果について、マイナーは、正しい結果を検証するために、類似のまたは同じ結果についてマイナー間の合意を醸成することができ、その結果、それらの結果を提出した関連するクライアント装置(たとえば、タスクを正しく完了し、かつ最も速いもの)と、結果のブロックをチェーンに追加したマイナーが、タスク完了の成功についてのクレジットを受領する。例えば、マイナーは、結果同士がどのように類似しているか、またはタスクの以前の処理からのいくつかの標準とどのように類似しているかを検査する合意アルゴリズムを使用する。
【0036】
例えば、様々な実施形態では、合意アルゴリズムは、合意アルゴリズムを処理するためにユーザ入力を組み込む。言い換えれば、合意決定を実行するために、または検証を提供するために、ユーザ参加が利用され、また奨励される。例えば、タスクは、訓練データの作成のためのものであってもよく、例えばユーザが、物体が画像の中に位置すると思う場所を描くための第1のユーザの集合(セット)のためのものであってもよい。次に、合意アルゴリズムは、実際にタスクを実行するユーザが画像内のオブジェクト(またはオブジェクトの位置)を正しく識別したかどうかを確認する、異なるユーザの集合を組み込むであろう。たとえば、オブジェクトが正しく識別されたこと、画像内に配置されたことを十分な数のユーザが確認した場合、合意アルゴリズムは、回答が真であること(つまり、タスクの結果が正しい/タスクが完了した)と検証する。その結果、単に分散コンピューティングのために(例えば、クライアント装置300を介して)ユーザを使用する代わりに、これらの実施形態は、その分散コンピューティングにおけるユーザを、検証のために使用する。これらの実施形態では、例えば、物体認識および配置などの特定のタスクでは、人間がコンピュータよりも優れている可能性があるので、従来の計算タスク(例えば、合意投票)は、人間の直感に置き換えられるか、または人間の直感によって増強される。さらに、個々のユーザ応答は信頼性がないか、または何らかの偏りを含むことがあるが、協調コンピューティングのためのプラットフォームを使用すると、意義ある数のユーザ入力を使用して、より高い信頼性を提供する検証を提供することができる。例えば、多数のこれらのユーザ検証結果を平均して、合意決定を形成することができる。
【0037】
したがって、本開示の様々な実施形態は、ブロックチェーンネットワークを介した人間による計算タスクの配布を提供する。一例では、この人間による計算タスクは、完了すべきブロック内の実際のタスクである。例えば、ブロックチェーンネットワークを介して配布された計算タスクは、例えばスマート契約を使用して、人間計算ベースのタスクと置き換えられるか、またはそれにより増強される。言い換えれば、これらのブロックは、人間計算ベースのスマート契約を含むことができる。別の例では、人間による計算タスクは合意アルゴリズムに含まれ、合意アルゴリズムは、1次タスクが成功裡に完了したかどうかに関する個々の入力を供給するために実行されるスマート契約のセットとすることができる。
【0038】
例えば、ブロックチェーンは、ブロックがチェーン上にあることを承認されるためには、多数のユーザによりそのブロックを確認しなければならないという合意を組み込んでいる。この検証プロセスは、1つの計算または人間による計算タスクをチェーンに追加することを必要とすることができる依存関係を有するスマート契約によって実施することができ、次いで、作成されたブロックを取り込み、それらを入力として使用して、他の計算されたブロックの組合せである最終結果の一式をコンパイルするための別のスマート契約を作成する。いくつかの実施形態では、合意タスクを実行するユーザは、ブロックチェーンのマイナーであり得る。ブロックチェーン上のマイナーが、ハッシュ値が機能するかどうかを調べるためにハッシュ値を示すのと同様に、これらの実施形態において、ハッシュ値は人間による計算タスクに置き換えられ、これは、タスクが人間の検証者から十分な検証を受け取るまで、ブロックチェーンに仮に追加される。いくつかの実施形態では、これらのユーザ実行のタスクは、実際のハッシュ値作成(例えば、マイナー)とハッシュ値検証の両方の部分を構成することができる。
【0039】
これらの実施形態では、人間入力ベースの合意アルゴリズムを含めることは、例えば、人間は、他の人間が元の計算タスクを正しく実行したかどうかをより良く検出できるという認識のような、思考または感情などの、人間により導入される偏りを検出または考慮するのに有用である。
【0040】
図5は、本開示の様々な実施形態による、ブロックチェーンネットワークを使用してタスクを送出し、検証するための処理を示す。例えば、
図5に示される処理は、
図2のサーバ200によって実施されるものとして説明されているが、処理は
図1のサーバシステム102~104のいずれかによって実施することもでき、異なるサーバ及びシステムが、本明細書で全体としてシステムと呼ばれる、処理ステップの任意の数または部分を実行することができる。
【0041】
この処理は、完了すべきタスクのためのブロックをブロックチェーンに追加するシステムから始まる(ステップ505)。例えば、この処理では、システムは、ブロックチェーンネットワークとの間で情報をやりとりする協調コンピューティングプラットフォームを提供するためのシステムであってもよい。別の例では、システムは、ブロックチェーンネットワーク内のマイナーまたはノードであってもよく、ブロックを生成してブロックチェーンに追加することで完了すべきタスクを追加し、タスクの検証および合意を支援する。別の例では、システムは、前述の2つの役割の何らかの組合せを実施することができる。ステップ505において、システムは、完了されるべき様々な計算タスクのためのレコードをブロックチェーンに追加することができる。様々な実施形態では、タスクは単に任意の種類のソフトウェアではなく、むしろ、例えばHBCの一部として、例えば機械学習アプリケーションを改善または最適化するための機械学習に関連して、ユーザ入力または人間の直感を必要とするか、または利用するカスタムタスクである。本明細書で使用されるように、機械学習は、タスクの処理を反復的かつ漸進的に改善するために、入力を使用してモデルを構築するための統計的技法の使用である。本明細書で使用されるように、例示的な機械学習アプリケーションには、データ科学、分析、情報学、人工知能(AI)、およびデータマイニングアプリケーションが含まれるが、これらに限定されない。例えば、ブロックチェーンを介して提供されるこれらのタスクは、対話型アプリケーションを使用して実行されることができ、それにより、深層ニューラルネットワークなどの機械学習アルゴリズムのための訓練データを生成すること、監督された学習などの決定を評価すること、解決策に突然変異を提供すること、および人間の直感によって提供または支援される他の追加のヒューリスティック処理を生成すること、の少なくとも一つができる。機械学習アルゴリズムに関連して人間により実行されるタスクからの結果を使用する追加的な例は、参照によって本明細書に組み込まれる、2019年3月26日に出願された「Abstracted Interface for Gamification of Machine Learning Algorithms」という名称の米国特許出願第16/365,647号に記載されている。
【0042】
ステップ505の一部として、システムは、例えば、研究者、ソフトウェア開発者などのユーザ入力を伴うタスクを必要とする1つ以上のエンティティから、タスクを受信および/または生成できる。ブロックを生成するために、システムは、ブロックID、タイムスタンプ、および例えばタスクの実行を指示するためのプログラムコードを含むブロックのデータを含む、ブロックの情報を生成し、含めることができる。このプログラムコードは、ポインタ(例えば、URL/URIまたは対話型アプリケーションにおけるコードへの参照)、ユーザ入力を必要とする対話型アプリケーションの構成要素(例えば、メディア、メディアへのポインタ、および競争のための命令)を含むことができ、またはユーザ入力を必要とする構成要素だけでなく、対話型アプリケーション全体をインストールおよび実行するためのプログラムコードを含むことができる。例えば、ブロックは、タスクを完了するために使用される対話型アプリケーション、タスク完了のための基準、およびタスク完了のための報酬を示す情報を含むことができる。タスクの完了には、対話型アプリケーションを介したユーザ入力の受信が必要になる場合がある。その結果、クライアント装置は、タスクをブロックチェーンから受信すると、例えば、対話型アプリケーションを介して、これらのタスクに直接アクセスし、実行/処理することができる。
【0043】
ブロックはまた、タスクの成功した競争に支払いをリンクするスマート契約を含むことができる。例えば、スマート契約は、例えばタスク完了のための金額に支払人の暗号トークンを記録するチェーン内の1つ以上の以前のトランザクションブロック、ならびに、タスクが完了したかどうかを判断する際にマイナーが利用するタスク完了のための基準を参照して、支払人および金額(例えば、タスク完了およびマイナー処理の両方のための)を識別することができる。これらの実施形態では、ブロックチェーンネットワークを介して配布される計算タスクは、例えばスマート契約を使用して、人間計算ベースのタスクと置き換えられるか、またはそれにより増補される。言い換えれば、これらのブロックは、人間計算ベースのスマート契約を含むことができる。
【0044】
その後、システムは、競争のためにクライアント装置にタスクを提供する(ステップ510)。ここで、システムは、ブロックチェーンを使用して、1つ以上のクライアント装置(たとえば、ネットワーク100内のクライアント装置106~114)により完了すべきタスクを配布する。一例では、ステップ510の一部として、クライアント装置はタスクを要求することができ、システムはプラットフォームを介してタスクを送信することができる。
【0045】
次に、システムは、クライアント装置からタスク完了による結果を受信する(ステップ515)。例えば、ステップ515の一部として、タスクを完了したクライアント装置は、タスクの結果をシステムに送信する。システムまたは他のマイナーは、タスクを完了した異なるクライアント装置から複数のそのような結果を受け取る可能性がある。
【0046】
その後、システムはタスクの完了を検証する(ステップ520)。例えば、ステップ520において、システム(またはマイナーのグループ)は、ブロックチェーンに追加される新しいレコードの形式で結果を受信し、タスクに関連付けられた基準に基づいてレコードを検証しようと試みることができる。例えば、タスクに関連する基準は、実行されるべきアクション、タイミング、量、およびタスク実行の結果の品質の少なくとも一つを含む。マイナーは、タスク完了のデータを示すかまたは含むレコードに基づいてレコードを検証することができる。さらに、サーバ200(またはマイナーのグループ)は、タイミングまたは結果の品質に基づいて、レコードを検証することができる。例えば、最初に実行した者(または、例えば、訓練データセットの生成に関連するタスクのために実行する最初のN個)、特定の時間前に終了した者、または、タスクを実行する他の者の結果と一定レベルの一貫性を有する結果、を検証することができる。
【0047】
これらの実施形態では、検証された結果のデータは、サーバ200によって使用されるか、または機械学習アプリケーションの少なくとも一部を処理する際に、ユーザ入力の使用のために提供されることができる。一例では、サーバ200は、機械学習に使用するための複数の入力を受信してもよい。例えば、サーバ200は、タスクを完了したクライアント装置の各インスタンスのすべての結果(例えば、タスク完了が検証されたか否か)を受信する。別の例では、同一または類似のタスクの複数のインスタンスが、機械学習に使用するために、同一または類似のタスクの完了時に複数の結果について、ブロックに追加され得る。
【0048】
このステップの一部として、システムは、タスク処理の結果に関連するデータを、タスク完了の検証のために、クライアント装置106~114のセットに送信することができる。例えば、システムは、合意アルゴリズムにおいて合意を醸成または人間の直感を使用するために、複数のユーザからの入力を要求することができる。システムは、タスクが完了したかどうかについて、応答するクライアント装置からそれぞれユーザ入力を受信し、受信したユーザ入力のセットに基づいてタスクが完了したかどうかについて合意決定を行う。例えば、システムは、応答するクライアント装置からのユーザ入力を平均化するか、応答するクライアント装置からの承認について閾値数またはパーセンテージを参照して、合意を醸成することができる。
【0049】
受信したレコードに対する一定レベルの合意に基づいて、システム(またはマイナーのグループ)は、ブロックチェーンにレコードを追加する(ステップ525)。例えば、ステップ525において、レコードは、何らかの形の値、例えば、暗号通貨トークンまたはユーティリティトークンの形式での値を、そのレコードを送信したクライアント装置に伝えてもよく、例えば、追加されたレコードまたは新しいブロックは、タスクを成功裡に完了したクライアント装置に関連するアカウントに対する報酬の量を示してもよい。さらに、追加されたレコードまたは新しいブロックは、タスクの完了を処理したブロックチェーンネットワーク内の1つ以上のマイナーまたはノードに対する報酬の量を示すことができる。たとえば、レコードを作成する関連マイナーはスマート契約を実行し、タスクを完了したクライアント装置のIDは、競争の暗号トークンを所有するものとしてブロックに記録される。さらに、マイナーは、スマート契約の実行の一環として受信したこの処理用の暗号トークンにより(レコードの検証、追加、およびスマート契約の実行が)インセンティブ化される。
【0050】
図6は、本開示の様々な実施形態による、ブロックチェーンネットワークを使用してタスクを受信し、完了するための処理を示す。例えば、
図6に示す処理は、
図3のクライアント装置300によって実施されるものとして説明される。この処理は、
図1のクライアント装置106~114のいずれによっても実施することができる。
【0051】
この処理は、クライアント装置300がブロックチェーンから完了すべきタスクを受信することから開始する(ステップ610)。例えば、ステップ610において、クライアント装置は、タスクを完了するためにブロックIDに基づいて対話型アプリケーションにタスクを取得する。いくつかの実施形態では、クライアント装置は、計算タスクのリストを(例えば、サーバ102から)受信するか、または、例えば、ユーザの関心、タスク完了のために使用可能なゲームの種類、および/またはクライアント装置における必要な計算リソースの可用性に基づいて、完了することができるタスクの種類を決定することができる。次に、クライアント装置は、ユーザ選択のためにタスクのリストを提示することができ、あるいは、例えば、タスクがルーチンゲームプレイの一部として完了することができる場合には、ユーザの介入なしに、タスクをゲーム内に取得することができる。これらの実施形態では、クライアント装置は、例えば、実行するために外部データベースからデータを取得するためのタスク識別子(ブロックID、タスクID、URL、URIなど)、タスクを処理するためのユーザインタフェースもしくはタスクを処理できるより大きな対話型アプリケーションをダウンロードおよびインストールまたは実行するための実行可能コードなどのプログラムコード、もしくはインストールまたは実行するユーザインタフェースまたは対話型アプリケーションの全体、などのようなブロックに格納されたデータに基づいてタスクを受信する。
【0052】
その後、クライアント装置300は、タスクを処理する際にユーザ入力を受信する(ステップ610)。例えば、ステップ610において、クライアント装置300は、ユーザ入力及び人間の直感の少なくとも一方を求めて、タスクの実行からデータの形式で結果を生成するためのユーザインタフェース(例えば、ゲームの一部として)を生成する。例えば、このデータは、生成された訓練データまたはパターン認識を示すデータを含んでもよい。様々な実施形態では、タスクは、単に任意の種類の計算ではなく、むしろ、例えば、機械学習アプリケーションを改善または最適化するための機械学習に関連して、ユーザ入力または人間の直感を必要とするか、または利用するカスタムタスクである。例えば、クライアント装置300で処理されるこれらのタスクは、対話型アプリケーションを使用して実行され、深層ニューラルネットワークなどの機械学習アルゴリズムのための訓練データを生成すること、監督された学習などの決定を評価すること、解決策に突然変異を提供すること、および人間の直感によって提供または支援される他の追加のヒューリスティック処理を生成すること、の少なくとも一つができる。
【0053】
その後、クライアント装置300は、ブロックチェーンに追加されるブロックとして、タスクを処理した結果を送信する(ステップ615)。例えば、ステップ615において、クライアント装置300は、タスク完了から結果を生成しフォーマットし、結果を示すデータを例えばサーバ102のようなサーバに送る。クライアント装置300またはサーバ102は、ブロックチェーンのための提案されたブロックを形成するために、結果データをフォーマットし、含めることができる。クライアント装置300は、ブロックチェーンに追加されるべきブロックの結果データを送信し、上述したようにタスク完了について独立して検証されたクレジットを受信する。その後、(上述したように)検証された場合、クライアント装置および関連するユーザは、暗号トークンの形式でタスク完了についてのクレジットを受領する。
【0054】
図5および
図6は、ブロックチェーンネットワークを使用してタスクを送出し、検証し、ブロックチェーンネットワークを使用してタスクを受信し、完了するための処理の例をそれぞれ示しているが、
図5および
図6に対して様々な変更を行うことができる。例えば、一連のステップとして示されているが、各図の様々なステップは、重複するか、並列に実行されるか、異なる順序で実行されるか、または複数回実行されることができる。別の例では、ステップは省略されるか、または他のステップに置き換えられてもよい。
【0055】
したがって、本開示の様々な実施形態は、ブロックチェーン環境内のユーザ入力および人間の直感の少なくとも一方を利用する計算タスクの包含、配布、完了、検証、および補償の少なくとも一つを提供する。このようなタスクを完了する必要があるエンティティは、本明細書で開示するブロックチェーン配布機構の信頼性、可用性、匿名性、およびセキュリティを利用して、タスクの完了に必要なユーザ入力および人間の直感の少なくとも一方にアクセスすることができる。さらに、ユーザは、本明細書で開示されるブロックチェーン配信機構の信頼性、可用性、匿名性、およびセキュリティを介して、ユーザの計算力および直感を収益化するさらなる機会を与えられる。その結果、本開示の実施形態は、不正行為、動作不能時間、または外部パーティからの干渉から解放され得る、安全で信頼できる方法で、タスクの配布、完了、検証、および報酬の少なくとも一つを提供する。
【0056】
一実施形態は、ブロックチェーンネットワークを使用してタスクを配布するための方法を提供する。この方法は、対話型アプリケーションを介して完了すべきタスクを生成し、ブロックチェーンネットワークを使用して、ブロックチェーンネットワークに関連付けられたブロックチェーン内のブロックを介してタスクを配布することを含む。ブロックチェーンネットワークは複数のノードを含み、対話型アプリケーションに関連する複数のクライアント装置によってアクセス可能である。この方法はさらに、ブロックチェーンネットワーク内の1つ以上のノードを介して1つ以上のクライアント装置から、対話型アプリケーションを介してタスクを処理した結果に関連するデータを受信することを含む。タスクの完了は、受信データに基づいて検証される。
【0057】
別の実施形態は、ブロックチェーンネットワークを使用してタスクを配布するためのシステムを提供する。システムは、対話型アプリケーションを介して完了すべきタスクを生成し、ブロックチェーンネットワークを用いて、ブロックチェーンネットワークに関連付けられたブロックチェーン内のブロックを介してタスクを配布するように構成されたプロセッサを含む。ブロックチェーンネットワークは複数のノードを含み、対話型アプリケーションに関連する複数のクライアント装置によってアクセス可能である。システムはさらに、プロセッサに動作可能に接続された通信インタフェースを含む。通信インタフェースは、ブロックチェーンネットワーク内の1つ以上のノードを介して1つ以上のクライアント装置から、対話型アプリケーションを介してタスクを処理した結果に関連するデータを受信するように構成される。タスクの完了は、受信データに基づいて検証される。
【0058】
別の実施形態は、ブロックチェーンネットワークを使用してタスクを配布するための持続的コンピュータ可読媒体を提供する。持続的コンピュータ可読媒体は、システムのプロセッサによって実行されると、システムに、対話型アプリケーションを介して完了すべきタスクを生成させ、ブロックチェーンネットワークを使用して、ブロックチェーンネットワークに関連するブロックチェーン内のブロックを介してタスクを配布させる、プログラムコードを含む。ブロックチェーンネットワークは複数のノードを含み、対話型アプリケーションに関連する複数のクライアント装置によってアクセス可能である。持続的コンピュータ可読媒体は、システムのプロセッサによって実行されると、システムに、対話型アプリケーションを介してタスクを処理した結果に関連するデータを、ブロックチェーンネットワーク内の1つ以上のノードを介して1つ以上のクライアント装置から受信させる、プログラムコードを含む。タスクの完了は、受信データに基づいて検証される。
【0059】
上記の例および実施形態のいずれにおいても、結果は、ブロックチェーンネットワークに接続された1つ以上のクライアント装置において、対話型アプリケーションを介してタスクの処理中に受信されたユーザ入力に関連付けられる。
【0060】
上記の例および実施形態のいずれにおいても、タスクの完了には、対話型アプリケーションを介したユーザ入力の受信を必要とし、この方法は、受信されたユーザ入力の結果に関連付けられたデータを使用して、機械学習アプリケーションの少なくとも一部を処理することをさらに含む。
【0061】
上記の例および実施形態のいずれにおいても、ブロックは、タスクを完了するために使用される対話型アプリケーション、タスク完了のための基準、およびタスク完了のための報酬を示す情報を含む。
【0062】
上記の例および実施形態のいずれかでは、方法は、タスクが完了したかどうかに関して、クライアント装置のセットからユーザ入力のセットをそれぞれ受信し、受信したユーザ入力のセットに基づいてタスクが完了したかどうかに関して合意決定を行うことを含む、タスクの完了を検証するステップをさらに含む。
【0063】
上記の例および実施形態のいずれにおいても、タスクの完了を検証することは、ユーザ入力のセットを受信する前に、タスクの完了の検証のために、タスクを処理した結果に関連するデータをクライアント装置のセットに送信することをさらに含む。
【0064】
上記の例および実施形態のいずれにおいても、方法は、タスク完了の検証に応答して、新しいブロックをブロックチェーンに追加するステップをさらに含み、新しいブロックは、タスクの完了を処理したブロックチェーンネットワーク内のノードのうちの1つと、ブロックチェーンネットワークに接続されたタスクを完了したクライアント装置のうちの1つに関連するアカウントと、に対する報酬を示す。
【0065】
本明細書全体を通して使用される特定の単語および語句の定義を記載することが有益であろう。用語「結合(couple)」およびその派生物は、それらの要素が互いに物理的に接触しているか否かにかかわらず、2つ以上の要素間の任意の直接的または間接的な通信を指す。用語「送信」、「受信」、および「通信」、ならびにその派生物は、直接的及び間接的な通信の両方を包含する。用語「含む」および「備える」、並びにその派生物は、限定のない包含を意味する。用語「または」は包摂的であり、「および/または」を意味する。語句「関連する」およびその派生物は、含む、その中に含まれる、相互接続する、包含する、その中に包含される、(~と/~に)接続する、(~と/~に)結合する、通信可能である、協働する、交互配置する、並置する、近似する、拘束される、有する、属する、(~と/~に)関係がある、等を意味する。語句「~のように」が用語間で使用されるとき、先行する用語は、後続の用語の例であり限定ではないことを意味する。用語「少なくとも1つ」は、品目のリストと共に使用される場合、リストに記載された項目の1つ以上の異なる組合せを使用することができることを意味し、リスト内の1つの項目のみが必要とされる場合もある。例えば、「A、B、及びCのうち少なくとも1つ」は、A、B、C、A及びB、A及びC、B及びC、A及びB及びC、のいずれかの組合せを含む。
【0066】
さらに、本明細書に記載する様々な機能は、1つ以上のコンピュータプログラムによって実施またはサポートすることができ、その各々は、コンピュータ可読プログラムコードから形成され、コンピュータ可読媒体により具体化される。用語「アプリケーション」および「プログラム」は、1つ以上のコンピュータプログラム、ソフトウェアコンポーネント、命令のセット、手順、機能、オブジェクト、クラス、インスタンス、関連データ、または適切なコンピュータ可読プログラムコードでの実施に適合されたその一部を指す。語句「コンピュータ可読プログラムコード」は、ソースコード、オブジェクトコード、および実行可能コードを含む、任意の種類のコンピュータコードを含む。語句「コンピュータ可読媒体」は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、ハードディスクドライブ、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、または任意の他の種類のメモリなど、コンピュータによってアクセスされることが可能な任意のタイプの媒体を含む。「持続的コンピュータ可読媒体」は、有線、無線、光学、または一時的な電気または他の信号を搬送する通信リンクを除外する。持続的コンピュータ可読媒体は、データを永久的に記憶することができる媒体と、データを記憶し後で上書きすることができる媒体、例えば、書き換え可能な光ディスクまたは消去可能なメモリデバイスと、を含む。
【0067】
他の特定の語句の定義は、本明細書全体を通して提供される。当業者は、ほとんどではないにしても多くの場合、このような定義は、このような定義された単語および語句の以前の使用ならびに将来の使用に適用されることを理解すべきである。本開示は、例示的な実施形態を用いて説明されてきたが、当業者には、様々な変更および修正が示唆され得る。本開示は、添付の特許請求の範囲の内であれば、このような変更および修正を包含することが意図される。本出願における説明のいずれも、任意の特定の要素、ステップ、または機能が、特許請求の範囲に含まれなければならない必須の要素であることを暗示するものとして解釈されるべきではない。特許の対象範囲は、請求項によってのみ定義される。さらに、請求項のいずれも、「のための手段」という正確な単語の後に分詞が続かない限り、35U.S.C。§112(f)を適用されるものとは意図されていない。