Agent

提供: tezos-wiki
Agentsから転送)
移動先: 案内検索

エージェント は、Bitcoinsのサービスを販売し、その収益をサーバーの容量を使うことによって稼働できる自律型プログラムです。十分な収益を上げているエージェントは、他のサーバー上のインスタンスを追加して複製することができます。

Bitcoinを使用する自律エージェントは、2011年にjulzのフォーラムポストで最初に記述され、StorJと呼ばれるファイルストレージシステムを使用したGregory Maxwellの同じ議論をさらに詳しく説明しました.php?topic = 53855.msg642768#msg642768。 Mike Hearnは、Turing Festival 2013([1])とmoney-26663148スライド)。この概念は、Vitalik Buterinの一連の記事(「http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/」)の「分散型自律型企業」またはDACとも呼ばれています"分散型自治法人のブートストラップ"]。

コアの概念[編集]

エージェントは、次のメカニズムを介して世界と対話します。

#Bitcoinネットワーク #サーバの容量をレンタルし、そのサーバをリモートで制御できるAPI(つまりssh) #フリーランサーフォーラムやMechanical Turkに投稿された人間が読める契約

#(例)HTTPを提供する。 独自のアプリケーションプロトコル独自のバランスを維持することで、初めてソフトウェアが人間との平等な競技場に存在することが可能になります。人々のために働くプログラムではなく、お金が必要となります。また、ツールではなくピアであることは、エージェントからBitcoinを使用するプログラムを区別するものです。

サーバー容量は、明確に定義された標準化された単位(CPU秒、RAM /ディスクのギガバイト、メガビットの帯域幅)で販売されている。そのため、ソフトウェアはBitcoinを受け入れるプロバイダと自動的に検索してネゴ​​シエートできます。

より良い取引が見つかると、エージェントは自分自身を動かすことができます。有益なエージェントは、その利益の一部を使って子供のインスタンスを立ち上げ、コインのスターターパックで資金を調達するようにプログラムすることができます。子インスタンスが壊れる可能性がある場合でも、子インスタンスは存続します。しかし、銀行残高が期限切れになると、サーバープロバイダはアカウントとエージェントを削除します。

エージェントは、名前を選択して[Namecoin]に登録することによりサービス(または他のエージェント)をサービスに公開することができる。エージェントにBitcoinのみがある場合、ピアコア交換を使用してBitcoinsをNamecoinsにアトミックに交換することができます。 DNS階層とNamecoinを併用することで、利害関係者はオンラインになる新しいエージェントを監視できます。ツリーの特定の部分に名前を登録するエージェントは、その存在を自動的に宣言します。

代理人は、サービスを購入し、仲介者を使用して、契約の完了時にコインが支払われるという保証を人に与えることによって、自分自身を改善することができます。 A / Bテストは、納品された作業が古いものよりも実際に優れているかどうかを判断するために使用でき、調停者はテストの結果が肯定的である場合にのみコインをリリースします。たとえば、再設計されたユーザーインターフェイスは、すべてのユーザーの10%でテストして、ファイルをアップロード/ダウンロードする可能性があるかどうかを確認できます。あるいは、仲介者の定数を特定し、契約が満たされたかどうかを決定することができます。エージェントの能力を高めるために新しいコードを購入することもできます。

信頼性の低いプロトコルへの依存[編集]

低信頼プロトコルは、エージェントが人間に詐欺から身を守るために重要です。単なる愚かなプログラムであるため、微妙な信用判断を下すことはできず、例えば実際に提供していないものを販売するなど、詐欺につながる可能性があります。人間は詐欺の時には言葉を広げ、法律などの裁判所を使って損害を試みたり取り返したりすることができますが、代理人はそうすることはできません。

最も基本的なエージェントプロトコルは、サーバー時間を購入することです。ブロードキャストされていないトランザクションを辞任することで、エージェントは分単位または秒単位でサーバ容量を購入することができます。たとえば、Bitcoinアドレスと価格が交渉された新しいアカウントのホームディレクトリにある〜/ .account-billing-detailsファイルであれば、非常に簡単なプロトコルで十分です。エージェントは、この標準化されたファイルから課金の詳細を読み取り、サーバオペレータに支払うことができます。

エージェントを進化させるためには、新しいコードが必要であり、これは人々が書き込む必要があります。人が代理店に詐欺やウォレットを盗むコードを提供するのを避けるため、エージェントはJavaやNativeClientなどのサンドボックス技術を使用して、新しく開発されたコードが必要なものだけにアクセスできるようにします。これは代理店の設計にわずかな剛性を課すが、本当に自律的な交渉を可能にするだろう。エージェントは、長期的な顧客の判断を信頼するようにプログラムすることができます。十分な数の顧客が新しいコードをレビューし署名すると、サンドボックスから解放され、エージェントを任意の方法で変更することができます。エージェントが十分に改善されていれば、同輩と競争し、より多くを再現するでしょう。

[編集]

ファイルストレージエージェントの元の例を考えてみましょう。

#コインの代わりにディスクと帯域幅を借りる。ファイルをオンラインにしたいと思っている人はBitcoinのアドレスにコインを送ることができます。 容量が足りなくなったら、利益の一部を使って他のホスティングサービスで子供を産むことができます。サービスの評判が不明な場合、親が正しく動作していると確信するまで、しばらくの間、子供を監視することができます。 #ノードは "x536ma.storj.bit"のような名前でそれらの存在を登録できます。 storj.bitで登録された名前はすべて同じサービスを提供するものとみなされます。 #エージェントは、ユーザーインターフェイスの品質を競うことができます。 #ユーザーはダウンロード機能を補うために、シンプルなファイルビューアーインターフェイスを組み込むことを約束できます。

Bitcoinsのシェルアカウントを提供する企業がある一方で、ほとんどの企業はそうではありません。サーバーブローカーは、コンピューティングキャパシティを他のエージェントに単に再販売するエージェントです。

#プロバイダーとのやり取りの詳細を処理することにより、代理店が支払うべき有益なサービスを提供します。 #ブローカーは、新しいサービスでアカウントを登録するスクリプトを人間のスクリプトから購入することができます。彼らは取引所と交流して、プロバイダが受け入れる通貨と支払いの仕組みのためにBitcoinを売ることができます。 #ColoのプロバイダはSSH鍵をSmart Propertyとして扱う方法を理解している変更されたsshdを実行できます。ブローカーはリソースクォータでシェルアカウントを事前に作成し、アクセスキーをブローカーに販売することで、Bitcoinプロトコルのロック時間とトランザクションの入出力機能を使用してアカウントを自動的にゼロ信頼の方法で自動的に再販売することができます。ブローカーは、顧客の採用とサーバーとの照合エージェントを自動的に処理します。

トラステッドコンピューティング/ TPMチップの使用[編集]

本当に自律的であるためには、エージェントは誰にも(そして何も)信頼する必要がありません。しかし、貿易を行うには、しばしば相手側が期待どおりに行動するという確信が必要です。人々は契約を執行するために法律に頼っているが、エージェントにはそのような手段はない。巧妙なプロトコルは、場合によっては協力を確実にするためのインセンティブを構成することができますが、一般的なケースでは信頼できるコンピューティングを使用してこの保証を提供することができます。

例えば、エージェントは、コンピューティング時間のプロバイダがエージェントの利益を盗もうとしないという何らかの保証を必要とするかもしれません。収益のシェアを奪うのは長期的には経済的ではないかもしれませんが、エージェントがいても偽のオファーをしてお金が入るのを待つのは素早く簡単です。

最新のCPUには、実行中のコードをリモートから証明する機能と、ハードウェアが以前と同じ設定になっている場合にのみ使用できるようにキーを暗号化する機能があります。 Flickerプロジェクトは、短期間の計算のためにLinuxを実行しているAMDとIntelのCPUでこれを達成する方法を示しています(割り込みは単純な実装では無効にする必要があります)。セキュリティを破るには、耐タンパー性があるように設計されたTPMチップを修正する必要があります。極端に大きくない金額の金額を保護している場合、これは詐欺行為を阻止するのに十分高いレベルでなければなりません。

これらの機能を使用するには、子エージェント(親プロセスによって作成されているプロセス)がコードをリモートサーバーにコピーします。この時点では財布はありません。その後、通常のオペレーティングシステムから分離された保護ドメインに入り、その時点でCPUの状態に「密封」された秘密鍵を作成するPAL(アプリケーションロジックの一部)を実行します。保護されたドメインを離れると、暗号化されたデータが残されますが、これは悪意のある(おそらく悪意のある)ホストオペレーティングシステムによって読み取られません。ホストOSは、信頼されていないプロキシおよびリソースのプロバイダとして扱われます。

親は子どもに少額のお金を提供して、それを始めさせる必要がありますが、送ったお金は、ちょうど作成したばかりの子供に本当に伝えられています。子はTPMを使用して、提供されたアドレスに対応する秘密鍵を作成した時点で、それがCPUを完全に制御していることをリモートで証明できます。親は、そのリモートアテステーションを確認し、自分が思っているプログラムに送金していることを確認することができます。

たとえば、ファイルがStorJにアップロードされた場合、付随する支払いはセキュアPALに送信され、Merkleブランチがブロックチェーンにリンクされます。その後、PALは、ホストにさらに支払いをする必要があることを知るようにその簿記を更新し、ホストがエージェントに請求書を請求すると、PALは請求書が期待どおりであることを確認し、請求書を支払う取引を作成/トランザクションは、それをブロードキャストする信頼できないホストに戻されます。

すべてのハードウェアが信頼できるコンピューティング機能をサポートするとは限りません。しかし、関連するチップを有する様々なラップトップ及びサーバ/デスクトップクラスのPCを購入することができる。そのようなハードウェアをブローカーに借りることは、新しいコンピューター購入のコストを削減する有益な方法であると証明するかもしれない。

Category:技術