"EVM 互換"という4文字は、ETHのL2拡張の語りでは使い古されているけれど、OP Stackの退出手順を実際に開いてみると、クロスチェーンをしているのではなく、4段階のステートマシンと帳尻合わせをしていることが分かる:L2が開始 → output proposalがその取引の状態をカバーするまで待つ → L1でprove_withdrawalを行いMerkle証明を通す → 7日間のdispute gameのウィンドウを完了させてからfinalize。Base/OP Mainnet上では、ユーザーはこの件の不満をとっくに言っていた:最初の3ステップの間、資金はL1 bridgeコントラクトにロックされていて、失われたわけではないが、あなたのものでもない。さらに、途中のいずれかでL1のgasが足りない、output rootがチャレンジされる、proposerが停止する、などが起きると、出金は「Ready to prove」または「Waiting for finalization」で詰まる。
Arbitrum側は表向き2件だけ(L1でのretryable ticket作成+L2実行)だが、ticketの自動redeemが失敗するとメモリ上のバッファに落ち、7日以内なら誰でも手動redeemできる。期限を過ぎると初めてescrowが返る。さらに厄介なのがTrail of Bitsが指摘した「順序の乱れ」による実行——AがBに先に走ってしまい、プロトコルがそのような時系列を扱えていないなら、再入型の脆弱性を埋め込んだのと同じだ。つまり「手順が少ない」ことは「状態が分かりやすい」ことと同義ではなく、複雑さをprecompileの中に隠しているだけだ。
だから#dusk のEVMテストネットからの退出を、initiate / submit proof / finalizeの3ステップに分けるのは、@Dusk がユーザーをわざと意地悪しているのではなく、OPの「7日間のチャレンジ期間+証明の成熟度」をこっそり簡略化していない、というだけだ。だがテストネットではテスト用コインで回して通るので、ウォレットがWaiting for output proposal / Ready to prove / Waiting to finalizeといった状態の列挙を認識できることは証明できても、メインネットの高負荷下でproposerが安定してrootを出せること、dispute gameが継続的にチャレンジされてユーザーを窒息させないこと、そしてユーザーのEVM側ガスとL1側の2回の操作コストが同時に十分であることは証明できない。
このアーキテクチャは RWA(現実資産トークン化)の文脈では筋が通っている。機関は規制当局に対しては明文のポジション開示が必要で、同時にトレード戦略を守るためにはダークプールのような仕組みも必要だから。でも個人投資家にとってはこれは災難。UTXO とは何かを理解するだけでなく、なぜ送金のたびに2ブロック分の確認を待たないといけないのか、なぜ少額送金だと Gas 代すら回収できないのかを理解しなければならない。現状のドキュメントにはバッチ処理のためのルーティング案がなく、つまりユーザーは「1件ずつ翻訳」するしかない。時間もお金のコストも、とんでもない水準になる。