Yazar: @Web3Mario

Giriş: Vitalik, 13 Mayıs 2024'te mevcut Gaz modeline bir ek öneren, çağrı verilerinin gaz hesaplamasını ayrı ayrı ayıran ve Blob gazına benzer bir taban ücret fiyatlandırma mekanizmasını özelleştiren, L2 işletme maliyetlerini daha da azaltan EIP-7706 teklifini yayınladı. . İlgili tekliflerin, uzun zaman önce Şubat 2022'de önerilen EIP-4844'e kadar izlenmesi gerekiyor. Bu nedenle, ilgili bilgileri kontrol ettim ve herkesin hızlı bir şekilde anlayabilmesi için en son Ethereum Gas mekanizmasına genel bir bakış yapmayı umuyorum. .

Şu anda desteklenen Ethereum Gas modelleri - EIP-1559 ve EIP-4844

İlk tasarımda Ethereum, işlem ücretlerini fiyatlandırmak için kullanıcıların kendi işlemleri için aktif olarak teklif vermesini, yani gas fiyatını belirlemesini gerektiren basit bir açık artırma mekanizması kullandı. Normalde kullanıcılar tarafından ödenen işlem ücretleri madencilere ait olacak. Bu nedenle madenciler, ekonomik optimizasyon ilkesine dayalı olarak teklifin fiyatına göre işlem paketleme sırasına karar vereceklerdir. Bunun MEV'yi göz ardı ederek yapıldığını unutmayın. O zamanın çekirdek geliştiricilerine göre bu mekanizma aşağıdaki dört sorunla karşı karşıyaydı:

  • İşlem ücreti seviyelerinin değişkenliği ile işlemlerin fikir birliği maliyeti arasındaki uyumsuzluk: Aktif bir blockchain için, işlem paketlemeye yönelik yeterli talep vardır, bu da blokların kolayca doldurulabileceği anlamına gelir, ancak bu genellikle Genel maliyetlerin oldukça değişken olduğu anlamına da gelir. Örneğin, ortalama Gaz Fiyatı 10 Gwei olduğunda, bir blokta başka bir işlemin kabul edilmesiyle ağın maruz kaldığı marjinal maliyet, ortalama Gaz Fiyatının 1 Gwei olduğu duruma göre 10 kat daha yüksektir ve bu kabul edilemez.

  • Kullanıcılar için gereksiz gecikmeler: Blok başına gaslimitin katı limiti ve geçmiş işlem hacmindeki doğal dalgalanmalar nedeniyle, işlemler genellikle paketlenmeden önce birkaç blok bekleyecektir, ancak bu, genel ağ için düşüktür. blok blok talep farklılıklarını karşılamak için bir bloğun daha büyük olmasına ve bir sonraki bloğun daha küçük olmasına izin veren bir "gevşetme" mekanizması yoktur.

  • Verimsiz fiyatlandırma: Basit bir açık artırma mekanizmasının kullanılması nedeniyle adil fiyat bulma verimliliği düşüktür, bu da kullanıcıların makul bir fiyat vermesinin zor olacağı anlamına gelir, bu da çoğu durumda Kullanıcıların yüksek ücretler ödemesi anlamına gelir.

  • Blok ödülleri olmayan bir blockchain istikrarsız olacaktır: Madenciliğin getirdiği blok ödülleri ortadan kaldırıldığında ve saf bir ücret modeli benimsendiğinde, bu, madenciliği işlem ücretlerini çalmaya teşvik eden "kardeş bloklar" gibi birçok istikrarsızlığa yol açabilir. daha güçlü bencil madencilik saldırı vektörleri ve daha fazlası.

EIP-1559'un teklifi ve uygulanmasına kadar, Gaz modeli ilk yinelemesini yaptı. EIP-1559, 13 Nisan 2019'da Vitalik gibi çekirdek geliştiriciler tarafından önerildi ve 5 Ağustos 2021'deki Londra yükseltmesinde kabul edildi. bu mekanizma açık artırma mekanizmasını terk eder ve bunun yerine Taban ücreti ve Öncelik ücretinden oluşan ikili bir fiyatlandırma modelini benimser; burada Taban ücret, ana blokta üretilen gaz tüketimine ve değişken ve yinelenen bir gaz hedefine dayalı olacaktır. Arz ve talep arasındaki ilişkiyi daha iyi yansıtabilir ve makul gaz tahminini daha doğru hale getirebilir, yanlış kullanım nedeniyle çok yüksek gaz fiyatlarının önlenmesini sağlayabilir, çünkü taban ücretin hesaplanması serbestçe belirtilmek yerine doğrudan sistem tarafından belirlenir. kullanıcı tarafından. Özel kod aşağıdaki gibidir:

Parent_gas_used'ın parent_gas_target'tan büyük olması durumunda, mevcut bloğun taban ücretinin önceki bloğun taban ücreti artı bir ofset değeriyle karşılaştırıldığında parent_base_fee'nin toplam gaz maliyetiyle çarpılacağı görülebilir. önceki blok Gaz hedefine göre ofset ve gaz hedefi ile bir sabit arasındaki modül 1'in maksimum değeri. Aksine mantık benzer.

Buna ek olarak, Taban ücret artık madencilere ödül olarak dağıtılmayacak, doğrudan yok edilecek, böylece ETH'nin ekonomik modeli değer istikrarına yardımcı olacak deflasyonist bir duruma getirilecek. Öte yandan Priority ücreti, kullanıcıların madencilere verdiği ödüle eşdeğerdir ve serbestçe fiyatlandırılabilir. Bu, madencilerin sıralama algoritmasının bir dereceye kadar yeniden kullanılmasına olanak tanır.

Zaman 2021'e ilerledikçe, Rollup'ın gelişimi yavaş yavaş iyi bir duruma girecek. OP Rollup veya ZK Rollup'ın, L2 verilerinin sıkıştırılmasından sonra belirli kanıt verilerinin, verilerin gerçekleştirilmesi için çağrı verileri aracılığıyla zincire yüklenmesi gerektiği anlamına geldiğini biliyoruz. Kullanılabilirlik (Veri Mevcuttur) veya doğrulama için doğrudan zincire gönderilir. Bu, L2 kesinliğini korurken bu Toplama çözümlerinin büyük bir Gaz maliyetiyle karşı karşıya kalmasına neden olur ve bu maliyetler eninde sonunda kullanıcılara yansıtılacaktır. Bu nedenle, o dönemde çoğu L2 protokolünü kullanmanın maliyeti hayal edildiği kadar düşük değildi.

Ethereum aynı zamanda blok alanı için rekabet ikilemiyle de karşı karşıyadır. Her bloğun bir Gas Limiti olduğunu biliyoruz, bu da mevcut bloktaki tüm işlemlerin toplam Gas tüketiminin bu değeri geçemeyeceği anlamına geliyor. Mevcut Gaz Limiti 30000000 olarak hesaplanmıştır. Teorik olarak 30.000.000 / 16 = 1.875.000 byte limiti vardır. 16 EVM'nin her bir çağrı verisi baytını işlemek için 16 birim Gaz tükettiği anlamına gelir, bu da tek bir verinin maksimum verisi anlamına gelir. bloğun taşıyabileceği boyut yaklaşık 1,79 MB'dir. L2 sıralayıcı tarafından oluşturulan toplamayla ilgili verilerin boyutu genellikle büyüktür ve bu da diğer ana zincir kullanıcılarının işlem onaylarıyla rekabet etmesine neden olur, bu da tek bir blokta paketlenebilen daha küçük bir işlem hacmine neden olur ve bu da TPS'yi etkiler. ana zincirin.

Bu ikilemi çözmek için çekirdek geliştiriciler 5 Şubat 2022'de EIP-4844 teklifini önerdiler ve bu teklif, 2024'ün ikinci çeyreğinin başında Dencun yükseltmesinden sonra uygulamaya kondu. Teklif, Blob İşlemi adı verilen yeni bir işlem türü önermektedir. Geleneksel İşlem türüyle karşılaştırıldığında Blob İşleminin temel fikri, Blob verileri adı verilen yeni bir veri türü eklemektir. Çağrı verisi türünden farklı olarak, blob verilerine EVM tarafından doğrudan erişilemez, ancak yalnızca VersionedHash olarak da adlandırılan karma değerine erişebilir. Ek olarak, buna eşlik eden iki tasarım vardır. Biri, blob işleminin GC döngüsünün daha kısa olması, böylece blok verilerinin çok şişirilmemesini sağlar. Diğeri ise blob verilerinin yerel bir Gaz mekanizmasına sahip olmasıdır. Sunulan etki EIP-1559'unkine benzer, ancak doğal üstel fonksiyonun eğimi de aynı olduğundan, işlem boyutunda dalgalanmalara yanıt olarak stabilite açısından daha iyi performans göstermesini sağlamak için matematiksel modelde doğal üstel fonksiyon seçilmiştir. Bu, şu anda ağ işlem ölçeğinin durumu ne olursa olsun, doğal bir üstel fonksiyondur. İşlem ölçeği hızla yükseldiğinde, blob gas'ın taban ücreti daha tam yanıt verir ve böylece aynı zamanda işlem etkinliğini etkili bir şekilde azaltır. Bu fonksiyonun da önemli bir özelliği vardır. Apsis 0 olduğunda fonksiyon değeri 1 olur.

base_fee_per_blob_gas = MIN_BASE_FEE_PER_BLOB_GAS * e**(excess_blob_gas / BLOB_BASE_FEE_UPDATE_FRACTION)

Bunlar arasında MIN_BASE_FEE_PER_BLOB_GAS ve BLOB_BASE_FEE_UPDATE_FRACTION iki sabittir ve extreme_blob_gas, ana bloktaki toplam blob gaz tüketimi ile bir TARGET_BLOB_GAS_PER_BLOCK sabiti arasındaki farka göre belirlenir, yani toplam blob gaz tüketimi hedef değeri aştığında fark pozitiftir. , eğer e**(excess_blob_gas / BLOB_BASE_FEE_UPDATE_FRACTION) 1'den büyükse, base_fee_per_blob_gas büyür ve bunun tersi de geçerlidir.

Bu şekilde, kullanılabilirliği sağlamak için belirli büyük ölçekli verileri sertifikalandırmak için yalnızca Ethereum'un fikir birliği yeteneğini kullanmak isteyen bazı senaryolar, bloğun işlem paketleme yeteneklerini dışlamadan düşük maliyetle yürütülebilir. Örnek olarak Toplama sıralayıcıyı ele alırsak, L2'nin anahtar bilgileri, blob işlemi aracılığıyla blob verilerine kapsüllenebilir ve EVM'deki gelişmiş tasarım aracılığıyla versionedHash, zincir içi doğrulama mantığını uygulamak için kullanılabilir.

TARGET_BLOB_GAS_PER_BLOCK ve MAX_BLOB_GAS_PER_BLOCK'un mevcut ayarlarının ana ağa bir sınır getirdiğini yani blok başına ortalama 3 blob (0,375 MB) ve 6 blob'a (0,75 MB) kadar işlem yapma hedefi getirdiğini de eklemek gerekir. Bu başlangıç ​​sınırları, bu EIP'nin ağ üzerinde yarattığı stresi en aza indirmek için tasarlanmıştır ve ağ daha büyük bloklarla güvenilirlik gösterdikçe gelecekteki yükseltmelerde artması beklenmektedir.

Yürütme ortamının daha da iyileştirilmesi Gaz tüketimi modeli——EIP-7706

Ethereum'un mevcut Gas modelini açıkladıktan sonra EIP-7706 teklifinin hedeflerine ve uygulama detaylarına bir göz atalım. Teklif Vitalik tarafından 13 Mayıs 2024'te sunuldu. Blob verilerine benzer şekilde, bu teklif, çağrı verileri olan özel özelliklere sahip başka bir veri alanına karşılık gelen Gaz modelini çıkarır. Ve ilgili kod uygulama mantığını optimize ettik.

Prensip olarak, çağrı verilerinin taban ücret hesaplama mantığı, EIP-4844'teki blob verilerinin taban ücretiyle aynıdır ve her ikisi de üstel bir fonksiyon kullanır ve ana bloktaki gerçek gaz tüketim değeri arasındaki sapmaya göre mevcut taban ücreti hesaplar. ve hedef ölçeklendirme oranı.

Yeni bir parametre tasarımına dikkat etmek önemlidir: LIMIT_TARGET_RATIOS=[2,2,4]; burada LIMIT_TARGET_RATIOS[0] Gas yürütme operasyon sınıfının hedef oranını temsil eder, LIMIT_TARGET_RATIOS[1] Blob veri sınıfı Gas'ın hedef oranını temsil eder, LIMIT_TARGET_RATIOS[2], Gas çağrı verisi türünün hedef oranını temsil eder. Bu vektör, ana bloktaki üç gaz türüne karşılık gelen gaz hedef değerini hesaplamak için kullanılır, yani tam sayıyı gerçekleştirmek için LIMIT_TARGET_RATIOS kullanılır. Gaz sınırına ilişkin bölme işlemleri:

gas_limits'in ayar mantığı şu şekildedir:

gas_limits[0] mevcut ayarlama formülüne uymalıdır

gas_limits[1] MAX_BLOB_GAS_PER_BLOCK'a eşit olmalıdır

gas_limits[2] gas_limits[0]'a eşit olmalıdır // CALLDATA_GAS_LIMIT_RATIO

 

Geçerli gas_limits[0] değerinin 30000000 olduğunu ve CALLDATA_GAS_LIMIT_RATIO'nun önceden 4'e ayarlandığını biliyoruz; bu, mevcut çağrı verisi gaz hedefinin yaklaşık 30000000 // 4 // 4 = 1875000 olduğu anlamına gelir ve mevcut çağrı verisi gaz hesaplama mantığı nedeniyle, her biri Sıfır Bayt olmayan 16 Gaz tüketir ve sıfır Bayt 4 Gaz tüketir Belirli bir çağrı verisi segmentindeki sıfır olmayan ve sıfır Bayt dağılımının her birinin %50'ye karşılık geldiğini varsayarsak, 1 Bayt'ın işlenmesi ortalama olarak 10 Gaz alır. çağrı verileri. Bu nedenle, mevcut çağrı verisi gazı hedefi, mevcut ortalama kullanımın yaklaşık iki katı olan 187500 baytlık çağrı verisi verisine karşılık gelmelidir.

Bunun avantajı, çağrı verilerinin gas sınırına ulaşma olasılığını büyük ölçüde azaltmasıdır. Ekonomik model sayesinde, çağrı verilerinin kullanımı daha tutarlı bir durumda tutulur ve çağrı verilerinin kötüye kullanılması da ortadan kaldırılır. Bu tasarımın nedeni L2'nin geliştirilmesinin önündeki engelleri kaldırmaktır ve blob verileriyle sıralayıcının maliyeti daha da azaltılabilir.