出典:PermaDAO
これは記事にもならないような、技術に関する断片的な文章です。
Globally Shared Hard Drive
20年7月に初めてArweaveを知り、翌週にはコーヒーショップで非信頼コンピューティングの可能性について議論していました。想像してみてください:Arweaveはチューリング・マシンの紙テープで、ユビキタス・ステート・マシンはユーザーの手にあるクライアントで、ユーザーのオペレーティング・システムと実行中のプログラムはすべてArweaveからダウンロードされます。巨大なブロックチェーンのハードドライブを共有するグローバルなユビキタス・コンピューティング・ユニット。このシステム下で実行されるすべてのアプリケーションは、コンセンサスを得て、信頼されなくなる。
議論では、これは実現が難しい目標であり、明らかにマイクロソフトやアップルのような巨大企業は、Arweave上にオペレーティングシステムやアプリケーションを置くことはないだろうという結論に達しました。
今日、AOはそれを実現しています。私が最初にサムとMSGプロトコル(AOのプロトタイプ)を設計したとき、ブロックチェーン上のカフカとして考えたが、アプリケーションに分散型メッセージキューを提供する代わりに、C/Sアーキテクチャのhttp通信を信頼できないmsg通信に置き換えることに焦点を当てた。もしAOがユーザーのリクエストとサーバーのレスポンスの両方に使われるようになれば、7月20日に構想されたように、AO上で真に分散化されたインターネットのエコシステムが再現されることになる。
AOは、インターネット全体をArweave(アレクサンドリアの図書館)にもたらす可能性を秘めており、それはもはや単なる店舗ではなく、過去の記録である。AOによって、私たちは今日のストーリーを記録し、分散型のアプローチを使って未来の価値を分配することができるのです。
論争
AOについては、最近、主に2つの質問について論争がありました:
1.AOはどのようにして検証可能性を達成するのか?
まず第一に、AOは検証可能性を扱っていません。検証可能性は、AOのすべてのプロセスのホログラフィックデータ(AO自体のホログラフィックデータを含む)を格納するArweaveの不変ストレージから来ます。このホログラフィック・データから、誰でもAOとAO上のスレッドを復元することができる。これは数学によって保証されており、検証可能である!これが、私たちがしばしばSCP理論と呼ぶ、ストレージベースのコンセンサスパラダイムです。
ハイライト: UTXOトランザクションは検証された後、チェーンにアップロードされることは知っていますが、SCPパラダイムは良いデータと悪いデータの両方のARをアップロードします。SCPプログラムは、すべてのホログラフィック取引を検証するために実行するだけでよい!もしそれが重複した取引であれば、SCPプログラムによって破棄されます。
検証可能性は、「できる」ことに重点が置かれており、高速検証やライトノード検証などを強調する必要はありません。検証可能性を高速検証やライトノード検証と混同しているのであれば。この時点でAOについて議論することはできません。
2.SCPアプリには検証可能な機能がありますが、AOは検証可能な問題をどのように解決するのでしょうか?ユーザーはフルノードを実行する必要があるのでしょうか?
最初の質問にある程度答えられると、質問者は、ユーザーが完全な元帳を計算しなければならないことを考えますが、これはあまりに大変です。ここで、BTC/ETHのMerkleツリーが解決しようとしている問題に反しています。BTC/ETHの考えでは、Merkleは検証の中核であり、Merkleのルートは検証できるようにPoW経由でアップリンクされています。では、AOはメルクルツリーを持っていないと言うのか?つまり、AOはまったく検証できず、コンセンサスもなく、詐欺だという結論になる!通常、質問者はこの2つの質問をループさせ、AOの設計アーキテクチャや原則については考えない。
焦点:AOは検証可能性の問題を解決しません!ARとAOの機能は完全に分離されています!状態を生成し、AOはAR上のデータの順序を変更することはできません、すなわち、AOはコンセンサスを変更することはできません。つまり、AOはコンセンサスを変更できない。 状態はPoW/PoSによって検証されるが、これはオンチェーンコンピューティングパラダイムであり、SCPとはまったく異なる。
AOの機能は、不変のデータに対して計算を実行し、それらの計算の状態を示すことです。検証可能性の問題はSCPによって保証されているので、メルクルツリーやPoW/PoSは必要ありません。 この時点で、質問者は再び質問1に戻ってしまい、思考を続けることができません。
AOはSCPによって検証可能なトークンを実装し、トークンの経済モデルを使って人々に正しいデータ提示を促します(チェーンリンク予言マシンのようなものです)。AOは主に状態提示についてであり、検証可能性はAOの機能ではないことを覚えておいてほしい。トークンの経済モデルは、正しい状態を提示しなかった場合はスラッシュ、正しい状態を提供した場合はミントです。
キーポイント
AOはコンセンサスを生成しないので、どうやってスラッシュとミントのアクションを行うのでしょうか?簡単です。AOはSCPアプリケーションです。この時点で、クエリー状態とリターン状態の両方のイベントがArweaveにアップロードされ、AOのSCPプログラムがこれら2つのイベント(クエリーとリターン)を読み込み、これら2つのイベントからミントとスラッシュの結果を計算します。
この部分は、コードを直接見ることで理解しやすくなります:
https://github.com/outprog/slash-demo/blob/main/vm/vm_test.go
結論
ユーザーはアプリケーションのフルノードを実行する必要はありません。ユーザーはAOにクエリーリクエストを行い、SU(スケジューリングユニット)を介して特定のCUに割り当てられる。コンピュートユニットはユーザーのリクエストに従って状態を計算し、コンピュートノードによって署名され(アップロードもされ)、ユーザーにフィードバックされる。1つのCUを信頼できないユーザーは、より多くのCUに信頼できる状態を要求できる。各CUから返される状態は、CUノードによって署名(検証可能)される。CUが間違った状態を提供した場合、CUの誓約は没収される。
具体的な実践方法についてはSam's Xを参照してください:
https://twitter.com/samecwilliams/status/1764023657058148718 .
予言マシンがない?すべて予言マシンです!
データがブロックチェーンと相互作用する必要があるとき、チェーンに「神託」を取り付ける予言マシンが必要です。ブロックチェーンにはオラクルが必要で、これはユーザーグループによって生成されるマルチシグネチャのオラクルである。 人間にはオラクルが必要で、これはブロックチェーンのアルゴリズムによって生成されるコンセンサスから得られるが、人間がコンセンサスを読むときには、オラクルを送信する第三者が必要で、これは通常infura.ioと呼ばれる。infura.ioのオラクルは一般的に信用できるが、それは本当なのだろうか?(メロンは熟しているか?)
infura.io: https://www.infura.io/
Note:
BTC/ETHの信頼は、内部的にはオンチェーン環境に限定されており、オフチェーン環境に対して信頼解除機能を提供することは困難です。つまり、BTC/ETHノードをリクエストするユーザーは、httpプロトコルを介してしか状態を取得できず、ユーザーはリクエストされたノードが信頼されているかどうか、状態が正しいかどうかを判断できません。状態検証のためには、ユーザーはライトノードかフルノードを実行しなければならない。
AO/SCPネットワークでは、ユーザーのリクエストは署名される必要があり、ノードから返される状態は署名される必要があり、すべてのレコードはArweaveに保存され、検証可能性を保証する「ホログラフィックデータ」を形成します。すべてのレコードはArweaveに保存され、認証を保証する「ホログラフィック・データ」を形成します。 ユーザーはノードを実行することなく、信頼された状態を得ることができます。AO/SCPモードでは、ネットワークに関するすべての情報がアップロードされ、これらのリクエストのクエリやリターンもアップロードされます(httpリクエストはアップロードされません)。
エンジニアリングの実践において、AO/SCPはオンチェーン/オフチェーンという概念を打ち破り、信頼されたコンピューティングと予測マシンを統一システムに統合します。AO/SCPとオンチェーンコンピューティングは、まったく異なる2つのパラダイムです。このシステムは、不変の事実として託宣を提示する予言マシンのみで構成されたグローバル・コンピュータだと考えてください。
Resilient Verification
いつの間にか、コンセンサスは二項対立の問題になりました。コンセンサスがあるかないかだ。その中間的なコンセンサスはないのか?
この認識はブロックチェーン業界にも反映されている。神かカスかのどちらかだ。宗教的信念のように、どちらか一方であり、相容れない。
しかし、AOはまったく異なるコンセンサス・アーキテクチャを提供します。Arweaveの永続性とSCPパラダイムが、コンセンサスの強固な基盤、つまり私たちが繰り返し「検証可能性」と呼ぶものを提供しますが、そのコンセンサスを検証するためにアプリケーション側がどれだけのコストをかけるかについては弾力性があります。
ことの発端は、上記の2種類の論争に巻き込まれたXの人々がいたことです。ちょっとした言葉の戦いの後、最終的に2つのAOスレッド間のmsgをどのように検証するかという質問が出ました。すべてのスレッドには署名があるので、ここではそれには触れません。しかし、受信したメッセージが信頼に足るものであることを、プロセスはどうやって知るのだろうか?これを説明するために、2つの信頼パターンをモデル化しました。
2つのプロセスP1とP2を実行する計算ユニットCU1があり、CU1(P1, P2)と表記します。
現在、CU1(P1, P2) & CU2(P3, P4) & CU3(P1) & CU4(P1)があります。
計算ゴール:CU2のP3は、P1に信頼できる計算情報を要求する。
シングルトラストモード
1.P3のコードはP1に計算要求を送信します。
2.SUスケジューラは、P3の要求をCU4(P1)に割り当てて計算させる。
3.CU4(P1)は計算結果を応答し、P3に返します。
この時点で、P3はCU4内のP1の計算結果を完全に信頼し、計算を続行します。
マルチトラストモード
1.P3のコードはP1に計算要求を送信し、同時にP3はSUに複数の計算ユニットの割り当てを要求する。
2.SUはP3の要求をCU1(P1)、CU3(P1)、CU4(P1)に割り当てる。
3.CU1(P1)、CU3(P1)、CU4(P1)は計算結果を応答する。
この時点でP3は複数の結果を受け取るが、P3はまずこれらの結果を比較し、比較によって信用できるかどうかを判断することができる。たとえば、P3はすべてのノードがまったく同じ結果を返すことを要求します。あるいは、P3は結果の2/3がまったく同じであることを要求する。
トラストモードはAOの開発モードに過ぎず、開発者はトラストの必要性に応じて判定ルールを開発することができます。 P3のプログラムは、100CUで計算を実行し、100CUでまったく同じ結果を計算することを要求することもできます。P3のコードを実装するかどうかは、すべて開発者次第なのだ。
ですから、信頼モデルと検証費用に関して何が必要かは、自分で決めることができます。しかし、究極のコンセンサス・セキュリティは、SCPによるArweaveの永続性によって保証されていることを忘れないでください!