シェア会の内容が長いため、今回の 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 のワークフローは以下の通りです:
-
取引のパッケージ化:オフチェーンサーバー(通常はプロジェクト側が中央集権的に運営)がお客様のリクエストを処理し、複数の取引を「バッチ」としてまとめ、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 と互換性がありませんが、他の方法でイーサリアムと互換性を持つことができます。
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 プログラムの実行中に)ことを意味します。これは不変です。この命令はそこからのみ読み取ることができます。これを一度書き込み可能なストレージとして見ることができます:あるセルに値を書き込むことはできますが、その後変更することはできません。また、これは連続しており、空いている場合は任意の値で埋められます。
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 を行っていません。ロールアップ理論的にはすべて可能です。
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 証明を生成するために使用されます。