シェア会の内容が長いため、今回の AMA の要約は大幅に削減されています。StarkNet についてもっと知りたい方は、StarkNet Astro の知識ベースページをご覧ください。
StarkWare#
StarkWare は StarkEx と StarkNet の背後にある開発チームで、チームメンバーは主に暗号学エンジニアで構成されており、STARKs と SNARKs の発明者が創設者です。技術力は一流で、資金調達は累計 2.7 億ドル、評価額は 80 億ドルに達し、L2 では最高です。
StarkEx#
概要#
StarkEx は StarkWare が設立した、プロジェクト向けにカスタマイズされた ZKR の企業サービスです。これにより、プロジェクトはアプリケーション専用の ZKR をカスタマイズできます。現在、StarkEx を使用している顧客には dYdX、Sorare、ImmutableX、DeversiFi などが含まれています。
一般的な ZKR とは異なり、StarkEx でカスタマイズされた ZKR では、プロジェクト側がスーパーユーザー権限を持ち、取引が通過するかどうかや順序を決定できます。外部の開発者は許可なしにアプリケーションを展開できず、ネットワークは比較的中央集権的ですが、性能は非常に高いです。
動作原理#
StarkEx のワークフローは以下の通りです:
-
取引のパッケージ化:オフチェーンサーバー(通常はプロジェクト側が中央集権的に運営)がお客様のリクエストを処理し、複数の取引を 1 つの「バッチ」にまとめて StarkEx に処理させます。
-
取引の確認と状態の更新:オフチェーンサーバーが取引の合法性を確認し、圧縮されたハッシュ形式でシステムの状態を更新します。
-
取引の証明を生成:SHARP は取引の有効性を確認するために STARK 証明を生成し、その証明と更新をチェーン上の Verifier スマートコントラクトに送信して取引の完全性を確保します。
-
チェーン上での証明の検証:STARK 証明が検証されると、状態の更新が提出され、イーサリアムメインネットに決済されます。すべての取引はオフチェーンで処理および検証され、その完全性の証明はチェーン上で検証されます。
SHARP は共有証明者であり、複数の StarkEx 顧客 / アプリケーションに証明生成サービスを提供します —— 計算の完全性声明の証明を生成します。Verifier はイーサリアム上に展開されたスマートコントラクトで、StarkEx の取引から生成された STARK 証明の正確性を検証します。
StarkNet#
概要#
StarkNet は汎用の ZK ロールアップで、理論的には TPS を 2000 以上に引き上げ、Gas を 0.002 以下に低下させることができます。
なぜ StarkNet はイーサリアムよりも高い性能を持っているのでしょうか?まず、イーサリアムの動作原理を振り返ってみましょう。イーサリアムでは、取引を 1 件提出するたびに、すべてのノードが取引をチェック、検証、実行して計算の正確性を保証し、計算後の状態変化をネットワークにブロードキャストします。
対照的に、StarkNet はオフチェーンで計算を実行し、ZK 証明を生成し、その後チェーン上でその証明の正確性を検証し、最後に複数の L2 取引をイーサリアム上の 1 つの取引にパッケージ化します。したがって、StarkNet で発生する取引コストは、同じパッケージバッチの他の取引と均等に分担され、まるで相乗り(🚌拼多多)のように、取引が多ければ多いほどコストが低くなります。StarkNet の取引生成 ZK 証明の方法は、ネットワークの運用速度を大幅に向上させ、チェーン上の通信量を減少させ、ネットワークのスループットを増加させることができるため、StarkNet はイーサリアムに比べてより高い TPS と低い Gas を持っています。
簡単に言えば、計算の正確性を検証することを、教師が生徒が知識を習得しているかどうかを確認することに例えることができます。イーサリアムの方法は、各生徒が教科書全体を暗唱できるかどうかを確認することですが、StarkNet の方法は生徒にテストを受けさせることです。後者の方が効率が高く、コストが低いですが、安全性は保証されています。
EVM 互換性#
StarkNet ネットワーク自体は EVM(イーサリアム仮想マシン)と互換性がなく、別の ZK フレンドリーな Cairo VM を設計しています。これは Vitalik が言うところの第 4 の zkEVM ですが、厳密には zkVM に属します。
zkVM アーキテクチャの面では、StarkNet はより ZK フレンドリーな命令セット、アセンブリ言語、バイトコード、AIR(代数中間表現)、および高級言語 Cairo を実装しています。
StarkNet 自体は EVM と互換性がありませんが、StarkNet は他の方法でイーサリアムと互換性を持つことができます。
1、Warp:Solidity を Cairo 言語に変換するトランスレーター
Warp は Solidity-Cairo トランスレーターで、現在はイーサリアムの著名なインフラチームNethermindによって開発されています。Warp は Solidity コードを Cairo に変換できますが、変換後の Cairo プログラムはしばしば修正が必要で、Cairo の特性(組み込み関数の呼び出し、メモリの最適化など)を追加する必要があります。
2、Kakarot:Cairo 言語で書かれた zkEVM
Kakarot は Cairo で書かれたスマートコントラクトで、現在 StarkNet(goerli テストネット)にデプロイされており、100% バイトコードが EVM と等価です。現在はテスト段階です。イーサリアムアプリケーションは Kakarot にデプロイすることで StarkNet に移植できます。
-
✅ Kakarot は:(a) 任意の EVM バイトコードを実行できる、(b) EVM スマートコントラクトをそのままデプロイできる、(c) Kakarot にデプロイされた EVM スマートコントラクトの機能(ビューおよび書き込みメソッド)を呼び出せる。
-
✅ Kakarot は EVM バイトコードインタープリターです。
現在、EVM のすべてのオペコードをサポートしています。
動作原理#
StarkNet には 5 つの構成要素があります。それは、StarkNet 上の Prover(証明者)、Sequencer(順序付け者)、およびフルノード、そしてイーサリアム上にデプロイされた Verifier(検証者)とコアステートコントラクト(StarkNet Core)です。
ワークフローは以下の通りです:
1、StarkNet 上で取引を開始すると、オフチェーンサーバー —— 順序付け者がそれを受信、順序付け、検証し、それらをブロックにパッケージ化します。取引を実行し、状態変化を StarkNet Core コントラクトに送信します;
2、証明者は取引の証明を生成し、それをイーサリアムの検証者コントラクトに送信します;
3、検証者は結果をイーサリアム上の StarkNet Core コントラクトに送信し、StarkNet Core コントラクトから一連の新しいイーサリアム取引をトリガーして、チェーン上のグローバル状態を更新し、記録します。状態トランザクションは「calldata」(EIP-4844 後は Blob)として送信され、L1 トランザクションのガスを節約します。これらの「メタデータ」は StarkNet のフルノードによって復号化されます。
フルノードは基本的にストレージ機能を果たします。フルノードは状態の変化、メタデータ、証明、および StarkNet 内で実行されたすべてのトランザクションを記録し、システムの現在のグローバル状態を追跡します。必要に応じて、フルノードは「メタデータ」を復号化して StarkNet の履歴を再構築します。
StarkNet の開発推進者@barretodavidが書いた《StarkNet のアーキテクチャレビュー》を参考にしてください。
アカウント抽象化#
イーサリアムの EOA+CA の二重アカウント設計とは異なり、StarkNet はネイティブアカウント抽象化を実現しており、1 種類のアカウント設計のみを採用しています。EIP 4337 の精神を借りており、以下の図は取引モデルです:
STARK 証明システム#
現在、Halo、PLONK、Groth16、Groth09、Marlin、Plonky2 など、さまざまな証明システム(証明の生成と検証)が存在します。これらはすべて SNARK 証明システムに属します。証明システムには、証明者が証明を生成し、検証者が証明を検証するという構造があります。異なる ZK プロジェクトはほぼ異なる証明システムを使用しますが、StarkNet が使用する STARK はある意味で特別な SNARK に属します。
STARK は SNARK に比べて多くの革新があります。SNARK のように「信頼できる設定」に依存する必要はありません。それはより単純な暗号学的仮定を持ち、楕円曲線、ペアリング、指数的知識仮定への依存を回避し、純粋にハッシュと情報理論に依存するため、量子攻撃に対して耐性があります。全体的に見て、STARK は SNARK よりも安全です。
スケーラビリティの面では、STARK のスケーラビリティはより強力です。証明生成速度は線形スケーラビリティを持ち、検証時間と証明サイズは対数スケーラビリティを持ちます。しかし、欠点は生成される証明のサイズが大きいことです。しかし、証明の規模が増加するにつれて、検証コストは限界的に減少します —— これは、証明が大きくなるほど、総コストが低くなることを意味します。
要約すると、SNARK に比べて STARK はより安全であり、平均検証時間と証明サイズは検証規模が拡大するにつれて低下しますが、欠点は初期の証明サイズが大きいことです。したがって、大規模なアプリケーションに適しています。
ここで STARK の重要な特性である再帰証明について紹介します。
一般的な、簡潔な知識システムの証明 / 論証(特に STARKs)は、計算を再帰的に検証するために使用できます。これは、ある計算が証明を生成し、その計算の前のインスタンスの正確性を証明することを意味します。この概念は非公式に「再帰証明の組み合わせ」または「再帰 STARKs」と呼ばれています。
言い換えれば、再帰 STARK 証明者は、ある主張のために証明を生成できます。つまり、システムの状態は a から a+1 に移行できます。証明者は、a の計算の完全性を証明する(再帰的な)証明を検証し、状態 a の計算を忠実に実行して新しい状態 a+1 に到達しました。簡単に言えば、このプロセスは a と a+1 の 2 つの証明を 1 つの証明に統合することを理解できます。理論的には、ほぼ無限の証明を 1 つの証明に統合でき、証明のサイズと検証時間を大幅に削減します。以下の図を参照してください:
Cairo VM と Cairo 言語#
Cairo VM の概要#
Cairo VM は、フォン・ノイマンアーキテクチャを採用した CPU VM で、そのプログラミング言語も Cairo と呼ばれています。Cairo 言語は Cairo アセンブリに基づいているため、コンパイル効率が非常に高いです。Cairo はCPU Algebraic Intermediate Representation(代数中間表現)の頭文字を取ったものです。Cairo VM は、この「CPU」の命令セットを検証するための単一の AIR を含んでいます。
時には StarkNet OS/Cairo OS とも呼ばれます。EVM とは異なり、Cairo VM は計算を実行せず、計算の証明を生成し、その正確性を検証します。
動作方法については、受け取った入力の取引に基づいてシステムの L2 状態を更新し、Cairo コントラクトの実行を促進します。Cairo VM は Cairo に基づいており、コントラクトで利用可能な具体的なシステム操作と機能は、オペレーティングシステムへの呼び出しとして提供されます。
Cairo VM の特性#
柔軟な CPU アーキテクチャ
Cairo VM はチューリング完全なフォン・ノイマン CPU アーキテクチャを採用しており、ソフトウェアプログラミングの方法で AISC の性能に無限に近づくことができ、対応する命令セットがあります。したがって、理論的には Cairo は他の仮想マシンを再現できます。
読み取り専用の非決定性メモリモデル
Cairo VM は読み取り専用の非決定性メモリを採用しており、これは各メモリセルの値が証明者によって選択され、時間とともに変わることができない(Cairo プログラムの実行中に)ことを意味します。これは不変です。この命令はそこからのみ読み取ることができます。これを一度書き込むストレージとして見ることができます:1 つのセルに 1 回値を書き込むことができますが、その後は変更できません。また、これは連続しており、空いている場合は任意の値で埋められます。
ROM の利点には、低コスト、回路が ROM よりも単純であること、永続的なストレージ、メモリ値が永続的に保存されること、改ざん不可、データが変更または削除できないことが含まれます。
Cairo 言語の概要#
Cairo は StarkNet のスマートコントラクト言語で、STARK 設計に基づいており、Cairo プログラムは STARK 証明を生成できます。
Cairo プログラムはアセンブリコードの集合であり、Cairo 開発者は Cairo アセンブリではなく高級言語 Cairo でスマートコントラクトを記述します。Cairo プログラムを書いたとき、Cairo コンパイラは Cairo コードを Cairo アセンブリにコンパイルし、Cairo アセンブラはアセンブリコードを Cairo バイトコード(Cairo CPU で実行される)に生成します。最終的に実際のマシンで実行するには、オペコードとマシンコードにコンパイルする必要があります(指令も含まれます)。
Cairo 言語の特性#
起動ロード:ハッシュからプログラムをロード
プログラムは別のプログラムのバイトコードをメモリに書き込み、そのプログラムを実行できます。これには 2 つの利点があります:
-
スケーラビリティ:検証時間とプログラムサイズは対数関係を示し、STARK 部分で述べたように。
-
プライバシー:検証者は計算が正しく実行されたかどうかを確認できますが、計算内容を知る必要はありません。
組み込み関数:コードコンパイルを削減
開発者が組み込み関数を直接呼び出すことで計算コストを削減し、開発体験を最適化できます。組み込み関数を追加しても CPU 制約には影響しません。これは、同じメモリが CPU と組み込み関数の間で共有されることを意味します。
Cairo アーキテクチャは特定の組み込み関数のセットを指定していません。必要に応じて AIR(代数中間表現)に組み込み関数を追加または削除できます。
特徴的なエコシステム#
他のエコシステムとは異なり、StarkNet にはいくつかのネイティブな革新的なアプリケーションがあります。それは、全チェーンゲーム、コントラクトウォレット、チェーン上の AI です。
全チェーンゲーム(On-chain game)についてですが、これは GameFi とは異なります。全チェーンゲームと GameFi の根本的な違いは、前者が非中央集権、許可不要、組み合わせ可能、相互運用可能であるのに対し、後者は単にゲーム内の重要なアイテムをトークンとして鋳造するだけです。
GameFi は単にゲーム資産をチェーン上に置くだけで、計算とストレージの部分はオフチェーンの中央集権サーバー上にあります。例えば、知名な StepN や Axie Infinity は非常に良い成果を上げていますが、これらのゲームのプレイスタイルや内容は限られており、プロジェクト側の中央集権的な運営の影響を受けます。プロジェクト側はゲームルールを変更できます。GameFi は UCG をサポートしておらず —— プレイヤーと開発者は許可なしにゲーム内のコンテンツや資産を創造できず、他のチェーン上のアプリケーションとの相互運用も難しいです。
全チェーンゲームは単にゲーム資産をチェーン上に置くだけでなく、ゲーム全体もネットワーク上にコントラクトの形で存在します。ゲームの状態の保存、ロジックの実行も完全にチェーン上で行われ、ブロックチェーンの非中央集権、許可不要、組み合わせ可能という基本的な属性に合致します。これは、実体が一方的にゲームルールを変更できないことを意味し、ゲームの主導権はプレイヤーの手にあります。「公式」の概念は徐々に消えていくでしょう。
さらに価値があるのは、プレイヤーと開発者がオープンソースコードに基づいてフロントエンドをカスタマイズし、基本的なルールの制約の下でゲーム内の施設や資産を再創造し、UCG—— ユーザー生成コンテンツの可能性を解放できることです。また、全チェーンゲームのコントラクトルールに適合する DApp は、許可なしに相互運用でき、全チェーンゲームの組み合わせ可能性をより大きなエコシステムに拡張します。これにより、各チェーンゲームは相互に操作でき、チェーンゲームと DeFi、NFT、将来出現する可能性のある任意の DApp も全チェーンゲームと相互運用できるようになります。これは Web2 の独占ビジネスモデルを打破し、開発者とユーザーにより完璧なアプリケーション体験とより想像力豊かな創造の機会を提供します。
推奨プロジェクト Topology、Cartridge.gg、Briq、Lootrealms
コントラクトウォレットについては、強力なプログラム可能で組み合わせ可能な特性を持ち、DeFi 以外の新しいシーン、例えば全チェーンゲームやソーシャルなどに適応できます。StarkNet コントラクトウォレット Braavos と Argent を推奨します。前者はスマートフォンをハードウォレットに変えることができ、後者はソーシャルリカバリーをサポートし、機能を継続的に更新していきます。
チェーン上の AI については、StarkNet は AI モデルがオフチェーンで計算を実行し、生成された証明を他者に検証させることで計算の完全性を保証できるようにします。また、STARK 証明システムにはネットワーク効果が存在するため、大規模な証明生成が必要な AI モデルのコストを削減できます。
チェーン上の AI の適用範囲には、ゲーム、オラクル、取引(自動収益)、反ウィッチハント、KYC、データプライバシー、AI モデルの計算力マイニングなどが含まれます。
Q&A#
Q:StarkNet の取引順序付けのロジックは何ですか?イーサリアム上の MEV はありますか?公式の順序付け者は MEV の需要がありますか?できるのでしょうか?
A:1)StarkNet の順序付け者は、依然としてガス優先であり、非中央集権の順序付け者は並行実行を行います。現在、非中央集権の順序付け者の詳細はまだ決まっていません。順序付けの設計もまだ決まっていません。L2 取引には順序があり、L1 でバッチ処理される際には L2 取引の順序は反映されません;2)MEV は存在しますが、順序付け者の非中央集権の合意はまだ確定しておらず、Flashbots や PBS のようなメカニズムを参考にする可能性があります;3)現在、StarkNet の中央集権運営の順序付け者は公式に MEV を行っておらず、Rollup 理論的にはすべて行うことができます。
Q:L2 ガス料金、速度はどこで見ることができますか?最終的な性能指標はどこで見ることができますか?
A:ガスはhttps://l2beat.com/scaling/tvlで確認できます。TPS はここで確認できます https://ethtps.info/。現在、ZKR のエンジニアリング進捗は遅れており、年の中頃に規模の採用が見込まれています。現在のところ、性能の意味はあまりありません。また、L3 の実装が TPS 計算に障害をもたらす可能性があります。
Q:なぜ多くのイーサリアムが Arbitrum にデプロイされているのですか?
A:それは OPR だからで、開発がより早く進んでいます;前年にはデプロイされており、発展期間が長いです。
Q:ZKR はいつアプリケーションの爆発的な成長を迎えるのでしょうか?
A:アプリケーションの爆発的な成長は、アプリケーションの移行とアプリケーションの革新の 2 つに分かれます。移行の進捗は異なる ZKR のエンジニアリングサイクルに依存し、Q3-Q4 に可能性があります。アプリケーションの革新に関しては、高 TPS、低単位収益のアプリケーションが ZKR 上で実現できるかどうかに依存し、年末に爆発的な成長が見込まれます。
Q:OPR と ZKR の違いは何ですか?
A:OPR は詐欺的証明を使用し、ZKR は有効性証明を使用します。後者はより速く、安価です。Vitalik はこれについての記事を発表しています。
https://vitalik.eth.limo/general/2021/01/05/rollup.html
Q:StarkNet にはすぐに使えるコントラクトウォレットはありますか?
A:Braavos、Argent です。
Q:アカウント抽象化の未来は何ですか?
A:アカウント抽象化に基づくコントラクトウォレットはプログラム可能で、例えばユーザーが特定の時間内に一定の価格以下のガスが自動的に支払われるように設定できることを許可します。また、EOA ウォレットに比べて DeFi 以外の新しいシーン、例えば全チェーンゲームやソーシャルにより適用できます。これは、ウォレットをコントラクトとして設計し、ウォレットがコントラクトが実現できる機能を実現できるようにします。
Q:StarkNet 上にはどのようなインタラクティブなプロジェクトがありますか?
A:Topology チームが開発している全チェーンゲーム MuMu に注目できます。彼らは最近、新しいチェーン上の AI 格闘ゲームを発表する予定です。NFT プロジェクトとしては Briq を推奨します。以前、プロジェクト側は NFT を購入したユーザーにクリスマスツリー NFT をエアドロップしました。Loot 系のゲーム Lootrealms も推奨します。このゲームはトークンを発行しました。
Q:StarkNet はチェーン上の AI や全チェーンゲームにより適しているのでしょうか?
A:はい、StarkNet は STARK 証明システムを使用しており、平均検証時間と証明サイズは証明規模が拡大するにつれて低下します。これはネットワーク効果を持つ特性であり、SNARK にはない特性です。これはチェーン上の AI やゲームにとってコストを削減し、性能を向上させるのに役立ちます。さらに、StarkNet エコシステムには全チェーンゲームの資金調達や開発のためのインフラが多く存在します。例えば、MatchBoxDAO、Volt Capital、Cartridge.ggなどがあり、公式も全チェーンゲームの発展を強力にサポートしています。したがって、StarkNet は技術的およびリソースのサポート面でチェーン上の AI や全チェーンゲームに適しています。
Q:StarkNet は他のパブリックチェーンと接続できますか?
A:公式には、イーサリアムのみを決済層として使用すると宣言しています;技術的には可能です。
Q:アカウント抽象化の欠点は何ですか?
A:現在は比較的初期段階で、関連するツールやコードが成熟していませんが、時間が経つにつれてアカウント抽象化は成熟していくでしょう。アカウント抽象化の利点は、取引をよりプログラム可能にすることです。
Q:ZKR の回路とは何ですか?なぜ回路が必要なのですか?
A:ZK のコードとして理解できます。ZKR はコードの計算のために証明を生成する必要があります。高級言語のコードはバイトコードにコンパイルされ、ZK 回路に変換されて初めて ZK 証明を生成するために使用できます。