Darwin Upgrade
Genel Bakış
Bu yükseltme, birden fazla batch için tek bir toplu zk-proof kullanarak gaz ücretlerini %34 oranında azaltacaktır; her batch’i ayrı ayrı finalize etmeye gerek kalmayacaktır.
-
Darwin, yeni bir Batch Codec V3 kullanır.
-
Daha önceki
chunkvebatchkavramlarına ek olarak, yeni birbundlekavramı tanıtıldı:Chunk: L2 blokları listesi içeren zkEVM kanıt birimi.Batch: Chunk’ların EIP-4844 blob’larında kodlandığı veri kullanılabilirliği birimi.Bundle: Birden fazla batch içeren ve finalize edilen birim.
Curie ile fark: Scroll artık tek bir toplu zk-proof ile birden fazla batch’i finalize ediyor.
-
Zincirdeki yeni bundle verifier, yeni bir public input formatı kullanıyor.
Zaman Çizelgesi
- Scroll Sepolia
- Ağ yükseltmesi: 14 Ağustos 2024
- Scroll Ana Ağı
- Yükseltme başlangıcı: 5 Ağustos 2024
- Timelock süresi bitişi ve yükseltme: 21 Ağustos 2024
Teknik Ayrıntılar
Akıllı Sözleşme Değişiklikleri
Not: Curie sonrası, Scroll akıllı sözleşmeleri scroll-contracts deposuna taşındı.
Bu yükseltmeye ait kod değişiklikleri bu PR’de bulunabilir. Ana değişiklikler:
BatchHeaderV3Codectanıtıldı.L1MessageQueueiçinde mesaj işleme finalize adımından commit adımına taşındı.- Yeni bundle public input formatı için
IZkEvmVerifierV2veMultipleVersionRollupVerifiereklendi. ScrollChainiçindecommitBatchWithBlobProofvefinalizeBundleWithProofadlı yeni fonksiyonlar tanıtıldı.
Tüm detaylar için sürüm notları’na göz atabilirsiniz.
Node Değişiklikleri
Yeni node sürümü: v5.6.0. Ayrıntılar için sürüm notlarına bakınız.
- Timestamp tabanlı hard fork desteği eklendi.
- V3 batch codec işleme desteği getirildi.
zkEVM Devre Değişiklikleri
Yeni devre sürümü: v0.12.0 (link).
RecursionCircuittanıtıldı; birden fazla ardışık batch’in SNARK’larını recursive olarak toplar.- Yeni katmanlar eklendi: 6. katman (
RecursionCircuit), 7. katman (CompressionCircuit).
Public input’lar artık bir önceki batch bilgisiyle bağlamsal, bu da recursive kanıt sistemine olanak sağlar (daha fazla bilgi için Notion dokümantasyonu).
Denetimler
- TrailofBits: yakında açıklanacak!
Uyumluluk
Sequencer ve Follower Nodelar
Geçiş durumu değişmediği için geriye dönük uyumludur. Ancak v5.6.0 sürümüne yükseltme önerilir.
Dapp ve İndeksleyiciler
Batch işlemede önemli değişiklikler var:
- Yeni V3 codec kullanılıyor. Yeni alanlar:
lastBlockTimestampblobDataProof
commitBatchWithBlobProoffonksiyonu ile batch’ler gönderilecek.finalizeBundleWithProofile birden fazla batch finalize edilecek.FinalizeBatcheventi artık çoklu batch finalize anlamına gelecek.
İndeksleyiciler için öneriler:
- V3 codec’e geçiş.
- Yeni commit/finalize fonksiyonlarını destekleme.
- Yeni
FinalizeBatchsemantiğine göre stateRoot takip etme.
Detaylı teknik bilgi için Darwin dokümantasyonu.