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
chunk
vebatch
kavramlarına ek olarak, yeni birbundle
kavramı 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:
BatchHeaderV3Codec
tanıtıldı.L1MessageQueue
içinde mesaj işleme finalize adımından commit adımına taşındı.- Yeni bundle public input formatı için
IZkEvmVerifierV2
veMultipleVersionRollupVerifier
eklendi. ScrollChain
içindecommitBatchWithBlobProof
vefinalizeBundleWithProof
adlı 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).
RecursionCircuit
tanı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:
lastBlockTimestamp
blobDataProof
commitBatchWithBlobProof
fonksiyonu ile batch’ler gönderilecek.finalizeBundleWithProof
ile birden fazla batch finalize edilecek.FinalizeBatch
eventi artık çoklu batch finalize anlamına gelecek.
İndeksleyiciler için öneriler:
- V3 codec’e geçiş.
- Yeni commit/finalize fonksiyonlarını destekleme.
- Yeni
FinalizeBatch
semantiğine göre stateRoot takip etme.
Detaylı teknik bilgi için Darwin dokümantasyonu.