Truebit: 検証可能なコンピューティングの市場を創出する
分散型アプリケーションは、バラ色の未来を私たちに描きます。これらは透明で改ざん耐性があり、ノンストップで実行され、インセンティブを解放し、地球規模での調整問題を解決します。
しかし、その途中には障害があります。
最初のレベルのタイトル
難しい問題: 分散型コンピューティング
Solidity で書かれたコードは EVM (イーサリアム仮想マシン) でバイトコードにコンパイルされ、ブロックチェーンにパッケージ化されます。それ以降、バイトコードを保存しているコントラクト アドレスにトランザクションが送信されるたびに、コードの実行がトリガーされます。このことから、ブロックチェーンのコンセンサス メカニズムの設計に冗長性があることがわかります。すべてのマイナーが同じ計算を実行し、その結果についてコンセンサスに達します。
計算は定量化されるため、コストはコード実行の複雑さによって決まります。ブロックチェーン仮想マシン命令セットの各操作には価格(「ガス」と呼ばれます)が付けられており、トランザクションの送信者は命令が実行されるたびに計算量に応じて支払います。
複雑なビジネス ロジックは常に高いコストをもたらします。
さらに、ネットワーク上で実行される計算の総量は、Gas の上限の影響を受けます。ガスの上限とは、ブロック内のすべてのトランザクションで消費できるガスの合計量を指します。残念ながら、検証者のジレンマのため、単純にガス制限を増やすことはできません。マイナーは新しく形成されたブロックを受け取ると、次のブロックを探し始める前にそのブロックが有効であることを検証する必要がありますが、そのような検証は無償で行われます。利益を追求するマイナーは、ブロックを検証するかスキップするかというジレンマに陥っています。そして、ブロックのガス制限が増加すると、このジレンマの影響も大きくなります。
したがって、計算は高価であり、制限があります。
Truebit はこの問題の解決を目指しています。
最初のレベルのタイトル
解決策: 検証可能なコンピューティングのオフチェーン
dApp (分散型アプリケーション) が高価な計算や Gas の上限を超える計算を実行したい場合は、Ethereum 上で直接計算を実行するのではなく、Truebit プロトコルに引き渡す方がよいでしょう。
Truebit契約
Truebit プロトコルと対話するための API は非常に単純です。これは、Truebit スマート コントラクト上の createTask と呼ばれる関数だけです。
dApp による createTask 関数を呼び出すプロセスでは、次のコンテンツを送信する必要があります。
プログラム: プログラムコード。 Truebit は WebAssembly 仮想マシン テクノロジを使用しているため、dApp はプログラム コードのバイトコードを WebAssembly 仮想マシンに直接送信したり、IPFS またはその他のコンテンツ ベースのアドレス指定システムでプログラム コードのハッシュ値を送信したりできます。
入力値: プログラムの入力値。 dApp は、これらの入力を直接送信することも、コンテンツ アドレス指定システム上でそれらの入力のハッシュを送信することもできます。
画像の説明
dApp が Truebit タスクを作成する
このプロセスをさらに詳しく説明するために、2 つの例を見てみましょう。
Livepeer は分散型コンピューティング プラットフォームであり、トランスコーダーが適切に動作しているかどうかを確認する必要があります。したがって、createTask 関数を呼び出し、FFmpeg をプログラムとして、ビデオを入力値として関数に送信します。
Aragon は、票の集計作業を行う匿名の組織のためのプラットフォームです。大量の投票作業をチェーン上で循環させるのは費用がかかり、あまりにも多くの投票が数えられると、ガソリンのキャップがこの作業の妨げになります。そこで、Aragon は Truebit の createTask 関数を呼び出し、プログラムとして投票集計関数を送信し、その関数への入力値として投票の配列を送信しました。
この関数は、Truebit コントラクトに新しいタスクを生成します。
Truebit ネットワーク
Truebit はコンピューティング タスクのマーケットプレイスです。
誰でも Truebit クライアントをインストールし、無制限のネットワークに参加し、コンピューティング タスクを実行することで報酬を得ることができます。
画像の説明
Truebit マイナーはコンピューティング タスクを監視します
新しいタスクが生成されると、Truebit マイナーはそのコードをダウンロードし、タスク発行者によって提供された入力を使用してローカル Truebit WebAssembly 仮想マシンでプログラムを実行し、その結果をスマート コントラクトに送信できます。
画像の説明
タスクハンドラーが結果を送信します
副題
ケース 1: 挑戦者がいない
画像の説明
副題
2 番目のケース: 挑戦者がいる
画像の説明
バリデーターがチャレンジを開始しました
副題
ゲームを検証する
画像の説明
単純な C プログラム (左) とそのコンパイル済み WebAssembly テキスト形式 (右)
挑戦者は検証ゲームを開始します。
タスク ハンドラーとチャレンジャーの初期状態は両方とも 0 で、それぞれ空の仮想マシンを起動し、同じプログラム (ブロックチェーン上のタスクの説明で指定されている) で同じ入力を実行します。状態が 0 の場合、それらは一貫しています。
画像の説明
画像の説明
画像の説明
チャレンジャーはタスクハンドラーのステータスを問い合わせます
画像の説明
タスクハンドラーとチャレンジャーは検証ゲームをプレイします
次に、チャレンジャーが自身の状態のマークル ルートをローカルで計算し、その結果をタスク ハンドラーの結果と比較する番です。
両者が等しい場合、乖離する位置は演算命令セットの後半であると判断できる。 2 つが等しくない場合は、セットの前半で相違が発生したことになります。
画像の説明
状態が 7 の場合、チャレンジャーとタスク ハンドラーの状態ルートは等しくなります。
画像の説明
挑戦者はセット内の 2 番目の中間点の状態根を尋ねます。
タスク ハンドラーはそれに応じて応答します。
画像の説明
挑戦者は 3 番目の中間点の状態ルートをクエリします。
インタラクティブな検証ゲームは継続します。
画像の説明
引数:状態12から状態13へ遷移する際の命令
画像の説明
オンチェーン WebAssembly インタープリターは物議を醸す命令を実行します
計算された状態のマークル ルートがタスク ハンドラーによって提供された状態ルートと異なる場合、後者のデポジットは没収されます。
プロセス全体は以上です。
私たちはすべての計算をオフチェーンに移動し、紛争を防ぐためにそのワンステップ命令の計算にのみイーサリアムを使用します。
最初のレベルのタイトル
暗号経済学
Truebit のインセンティブには、タスク報酬、デポジット、タスク ハンドラーとチャレンジャー間のチャレンジ メカニズム、コンピューティング市場の経済設計が含まれます。
最近、Truebit トークンのアップグレード計画を発表しました。現在検討されているソリューションは次の 2 つです。
インセンティブ層 1: 必須のエラーと累積賞金プール
このプロトコルを注意深く検討すると、賢明な読者の中には問題に気づく人もいるかもしれません。
タスク担当者は、自分の計算がチェックされ、間違いがあればデポジットが没収されることを知っているため、不正行為をしません。長期的には、バリデーターがバグを見つけて収入を得られなくなり、最終的にはコンピューティング市場から姿を消すことは非常に困難です。ベリファイアが消えると、タスク ハンドラーが不正行為を開始します。その後、ベリファイアが再度表示され、エラーが検出されます。
このシステムは安定した平衡状態になく、常に上下に反転しています。
この問題を解決するために、Truebit はホワイトペーパーで強制エラーとジャックポットの概念を提案しました。 Truebit プロトコルは、タスク ハンドラーに一定の確率で間違った計算結果を強制的に提供します。このようなバグを見つけてチャレンジに成功したバリデーターは、自動的にジャックポットを受け取ります。この棚ぼたはすべてのタスクの報酬から得られるため、その額は膨大であり、バリデーターにかなりの期待収益をもたらします。タスク ハンドラーが常に正しい計算結果を提供する場合でも、検証タスクは有益です。
インセンティブ層 2: 複数のタスク ハンドラーとペア検証チャレンジ
別の代替案は、特定の実装プロセスから生まれます。タスク ハンドラーとベリファイアは常に同じジョブを実行します。同じプログラムをダウンロードし、ローカルで実行し、計算を取得します。そこで、タイミング ルールに従って 1 つのタスク ハンドラーと複数のチャレンジャーを指定する代わりに、全員が同時に計算結果を送信できるようにプロトコルを変更してはどうでしょうか?
スマート コントラクトは、すべての計算が一貫していることをチェックします。一致する場合、結果は正しいとみなされます。矛盾があり、数種類の計算結果が生成された場合、スマートコントラクトは異なる種類のタスクプロセッサを編成してペア検証を実行します。
この改良されたプロトコルにより、検証チャレンジが並列化されるため、適時性がより確実に保証されます。この改善により、強制エラーやジャックポットも置き換えられます。ただし、タスクの開始者が支払うべき金額と、複数のタスク ハンドラー間で報酬を分配する方法が複雑になるという欠点があります。
最初のレベルのタイトル
モジュール式アーキテクチャ
画像の説明
Trubit のモジュール型アーキテクチャ
コンピューティング層: WebAssembly 仮想マシン (または対話型暗号化を使用した Doge-Ethereum 変換ブリッジの設計で使用したような有限状態マシン) で、オンチェーンとオフチェーンの両方の構築が必要です。
Truebit の WebAssembly インタープリタは決定論的でスケーラブルであり、内部状態のマークル ツリーを生成できます。
紛争解決レイヤー: これは、タスク ハンドラーと検証者間の複数の対話型質疑応答セッションを含む、2 者間の対話型検証ゲームです。
インセンティブ層: この層には、報酬、デポジット、タスク ハンドラーとチャレンジャー間のチャレンジ メカニズム、およびトークン メカニズムが含まれます。
エピローグ
エピローグ
当社のエンジニアリングの方向性は現在、計算層と紛争解決層に重点を置いています。私たちの研究は、インセンティブ層とトークンメカニズムに焦点を当てています。
最近、Doge-Ethereum 変換ブリッジに実装された Scrypt 認証用の Truebit ソリューションを発表しました。
ここでデモビデオをご覧いただくか、Github でコードをチェックしてください。
WebAssembly VM のサポートは、次のリリースで予定されています。
乞うご期待!
元のリンク: https://medium.com/truebit/truebit-the-marketplace-for-verifiable-computation-f51d1726798f
著者: シーナ・ハビビアン
翻訳者および校正者: Anzi Clint および Min Min







