EIP-7706 ve en son Ethereum Gas mekanizmasının ayrıntılı açıklaması
Orijinal yazar : @Web3 Mario
giriiş : Vitalik, 13 Mayıs 2024'te mevcut Gas modeline ek bir çözüm öneren, calldata'nın gas hesaplamasını ayıran ve L2'nin işletme maliyetini daha da düşürmek için Blob gas'a benzer bir temel ücret fiyatlandırma mekanizmasını özelleştiren EIP-7706 teklifini yayınladı. İlgili tekliflerin, uzun zaman önce Şubat 2022'de önerilen EIP-4844'e kadar izlenmesi gerekiyor. Bu nedenle, ilgili materyallere başvurdum ve herkesin hızlıca anlayabilmesi için en son Ethereum Gas mekanizmasının bir özetini 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 vermelerini, yani gaz fiyatını belirlemelerini gerektiren basit bir açık artırma mekanizması kullanıyordu. Genellikle, kullanıcılar tarafından ödenen işlem ücretleri madencilere ait olacağından, madenciler işlem paketleme sırasına ekonomik optimumluk ilkesine ve teklif fiyatına göre karar vereceklerdir. Bunun MEV'i göz ardı ettiğini unutmayın. O zamanlar, çekirdek geliştiriciler bu mekanizmanın aşağıdaki dört sorunla karşı karşıya olduğuna inanıyorlardı:
-
İşlem ücreti seviyelerinin oynaklığı ile işlemlerin fikir birliği maliyeti arasındaki uyumsuzluk: Aktif blok zincirleri için işlem paketleme için yeterli talep vardır, bu da blokların kolayca doldurulabileceği anlamına gelir, ancak bu genellikle genel ücret oynaklığının aşırı büyük olduğu anlamına da gelir. Örneğin, ortalama Gas Fiyatı 10 Gwei olduğunda, ağın bir blokta başka bir işlemi kabul etmesinin marjinal maliyeti, ortalama Gas Fiyatı 1 Gwei olduğundakinin 10 katıdır ve bu kabul edilemezdir.
-
Kullanıcılar için gereksiz gecikmeler: Blok başına sert gaz limiti ve geçmiş işlem hacmindeki doğal dalgalanmalar nedeniyle, işlemler genellikle dahil edilmeden önce birkaç blok bekler; bu da ağın bir bütün olarak verimsiz olmasına neden olur; yani talepteki blok farkını karşılamak için bir bloğun daha büyük, diğerinin daha küçük olmasına izin veren bir gevşeme mekanizması yoktur.
-
Verimsiz fiyatlandırma: Basit açık artırma mekanizması adil fiyat keşfinde düşük verimliliğe yol açar, bu da kullanıcıların makul bir fiyat vermesini zorlaştırır. Bu, birçok durumda kullanıcıların yüksek ücretler ödemesi anlamına gelir.
-
Blok ödülleri olmayan bir blok zinciri istikrarsız olacaktır: Madenciliğin getirdiği blok ödülleri iptal edildiğinde ve sadece bir ücret modeli benimsendiğinde, işlem ücretlerini çalan kardeş blokların madenciliğini teşvik etmek, daha güçlü bencil madencilik saldırı vektörlerinin açılması gibi çok fazla istikrarsızlığa yol açabilir.
EIP-1559'un önerilmesine ve uygulanmasına kadar, Gaz modeli ilk yinelemesini yaptı. EIP-1559, Vitalik ve diğer çekirdek geliştiriciler tarafından 13 Nisan 2019'da önerildi ve 5 Ağustos 2021'de Londra yükseltmesinde kabul edildi. Bu mekanizma, açık artırma mekanizmasını terk eder ve Temel ücret ve Öncelik ücretinin ikili fiyatlandırma modelini benimser; burada Temel ücret, ana blokta üretilen gaz tüketimi ile yüzen ve yinelemeli bir gaz hedefi arasındaki ilişkiye dayalı olarak belirlenmiş bir matematiksel model aracılığıyla nicel olarak hesaplanacaktır. Sezgisel etki, önceki bloktaki gaz kullanımı önceden belirlenmiş gaz hedefini aşarsa, temel ücretin artırılacağı ve gaz hedefinden azsa, temel ücretin düşürüleceğidir. Bu, arz ve talep ilişkisini daha iyi yansıtabilir ve makul gazın tahminini daha doğru hale getirebilir, böylece yanlış işlemden kaynaklanan fahiş Gaz Fiyatlarından kaçınılabilir, çünkü temel ücretin hesaplanması kullanıcı tarafından serbestçe belirtilmek yerine doğrudan sistem tarafından belirlenir. Belirli kod aşağıdaki gibidir:
parent_gas_used'ın parent_gas_target'tan büyük olduğu durumda, geçerli bloğun taban ücretinin önceki bloğun taban ücreti artı bir ofset değeriyle karşılaştırılacağı görülebilir. Ofset değeri, parent_base_fee'nin maksimum değerinin, önceki bloğun gaz hedefine göre toplam gaz ücretinin ofsetiyle ve gaz hedefinin modülüyle ve bir sabit ve 1 ile çarpılmasıyla elde edilir. Mantık, zıt durumda da benzerdir.
Ek olarak, Temel ücret artık madencilere ödül olarak dağıtılmayacak, doğrudan yok edilecek, böylece ETH'nin ekonomik modeli değer istikrarına elverişli olan deflasyonist bir durumda olacak. Öte yandan, Öncelik ücreti, kullanıcıların madencilere verdiği ödüle eşdeğerdir ve serbestçe fiyatlandırılabilir, bu da madencilerin sıralama algoritmasının belirli bir ölçüde yeniden kullanılmasına olanak tanır.
Zaman geçtikçe 2021'e gelindiğinde, Rollup'ın gelişimi giderek daha iyi hale geliyor. Hem OP Rollup hem de ZK Rollup'ın, L2 veri sıkıştırmasından sonra bazı kanıt verilerinin calldata aracılığıyla zincire yüklenmesi ve veri kullanılabilirliği (Veri Kullanılabilir) elde edilmesi veya doğrulama için doğrudan zincire iletilmesi gerektiği anlamına geldiğini biliyoruz. Bu, bu Rollup çözümlerinin L2'nin kesinliğini korurken büyük bir gaz maliyetiyle karşı karşıya kalmasına neden oluyor ve bu maliyetler sonunda kullanıcılara yansıtılacak. Bu nedenle, o zamanlar çoğu L2 protokolünü kullanmanın maliyeti hayal edildiği kadar düşük değildi.
Aynı zamanda Ethereum, blok alanı rekabeti ikilemiyle de karşı karşıyadır. Her bloğun bir Gaz Limiti olduğunu biliyoruz, bu da mevcut bloktaki tüm işlemlerin toplam Gaz tüketiminin bu değeri aşamayacağı anlamına geliyor. Mevcut 3.000.000 Gaz Limitine göre, 30.000.000 / 16 = 1.875.000 baytlık bir teorik sınır vardır, burada 16, EVM'nin her çağrı verisi baytını işlemek için 16 birim Gaz tüketmesi gerektiği anlamına gelir, bu da tek bir bloğun taşıyabileceği maksimum veri boyutunun yaklaşık 1,79 MB olduğu anlamına gelir. L2 sıralayıcısı tarafından üretilen Rollup ile ilgili veriler genellikle büyük boyuttadır, bu da diğer ana zincir kullanıcılarının işlem onayı ile rekabete neden olur, bu da tek bir blokta paketlenebilen daha az işlem miktarıyla sonuçlanır ve bu da ana zincirin TPS'sini etkiler.
Bu ikilemi çözmek için çekirdek geliştiriciler 5 Şubat 2022'de EIP-4844 teklifini önerdiler ve bu teklif Dencun yükseltmesinden sonra 2024'ün 2. çeyreğinin başlarında uygulandı. Teklif, Blob Transaction adı verilen yeni bir işlem türü önerdi. Geleneksel Transaction türüyle karşılaştırıldığında, Blob Transaction'ın temel fikri Blob data adlı yeni bir veri türü eklemektir. Calldata türünden farklı olarak, blob verilerine EVM tarafından doğrudan erişilemez, yalnızca VersionedHash olarak da bilinen karmasına erişilebilir. Ayrıca, iki eşlik eden tasarım vardır. Birincisi, sıradan işlemlerle karşılaştırıldığında, blob işlemlerinin GC döngüsü daha kısadır, böylece blok verilerinin çok şişkin olmaması sağlanır. İkincisi, blob verilerinin yerel bir Gas mekanizması vardır. Genel etki EIP-1559'a benzerdir, ancak doğal üstel fonksiyon, işlem ölçeğindeki dalgalanmalarla başa çıkarken daha kararlı hale getirmek için matematiksel modelde seçilir, çünkü doğal üstel fonksiyonun eğimi de doğal bir üstel fonksiyondur. Bu, ağ işlem ölçeğinin şu anda hangi durumda olduğuna bakılmaksızın, işlem ölçeği hızla yükseldiğinde, blob gazının taban ücretinin daha tam tepki vereceği ve böylece işlem etkinliğini etkili bir şekilde sınırlayacağı anlamına gelir. Aynı zamanda, fonksiyonun önemli bir özelliği de vardır. Yatay eksen 0 olduğunda, fonksiyon değeri 1'dir.
taban_ücreti_blob_gazı başına = BLOB_GAZI_BAŞINA_MIN_TABAN_ÜCRETİ * e**(fazla_blob_gazı / BLOB_TABAN_ÜCRETİ_GÜNCELLEME_KESİRİ)
Bunlar arasında MIN_BASE_FEE_PER_BLOB_GAS ve BLOB_BASE_FEE_UPDATE_FRACTION iki sabittir ve excess_blob_gas, ana bloktaki toplam blob gazı tüketimi ile TARGET_BLOB_GAS_PER_BLOCK sabiti arasındaki farkla belirlenir. Toplam blob gazı tüketimi hedef değeri aştığında, yani fark pozitif olduğunda, e**(excess_blob_gas / BLOB_BASE_FEE_UPDATE_FRACTION) 1'den büyükse, base_fee_per_blob_gas daha büyük olur, aksi takdirde daha küçük olur.
Bu şekilde, kullanılabilirliği garantilemek için yalnızca belirli büyük ölçekli verileri depolamak için Ethereum'un fikir birliği yeteneklerini kullanmak isteyen bazı senaryolar, bloğun işlem paketleme kapasitesini sıkıştırmadan düşük bir maliyetle yürütülebilir. Rollup sıralayıcısını bir örnek olarak ele alırsak, L2'nin temel bilgileri blob işlemi aracılığıyla blob verilerine kapsüllenebilir ve zincir üstü doğrulama mantığı, EVM'deki karmaşık tasarım aracılığıyla versionedHash aracılığıyla uygulanabilir.
TARGET_BLOB_GAS_PER_BLOCK ve MAX_BLOB_GAS_PER_BLOCK'un mevcut ayarlarının ana ağa bir sınır koyduğu, yani blok başına 3 blob (0,375 MB) hedefi ve blok başına 6 blob (0,75 MB) sınırı koyduğu belirtilmelidir. Bu ilk sınırlar, bu EIP'nin ağda neden olduğu zorlanmayı en aza indirmeyi amaçlamaktadır ve ağ daha büyük bloklarla güvenilirlik gösterdikçe gelecekteki yükseltmelerde artması beklenmektedir.
Yürütme ortamı gaz tüketim modelinin daha da iyileştirilmesi – EIP-7706
Mevcut Ethereum Gas modelini netleştirdikten sonra, EIP-7706 teklifinin hedeflerine ve uygulama ayrıntılarına bir göz atalım. Teklif, Vitalik tarafından 13 Mayıs 2024'te önerildi. Blob verilerine benzer şekilde, bu teklif, calldata olan başka bir özel veri alanına karşılık gelen Gas modelini sıyırır. Ve karşılık gelen kod uygulama mantığını optimize eder.
Prensip olarak, calldata'nın taban ücreti hesaplama mantığı, EIP-4844'teki blob verileri için taban ücretiyle aynıdır. Her ikisi de üstel bir fonksiyon kullanır ve geçerli taban ücretinin ölçekleme oranını, ana bloktaki gerçek gaz tüketim değeri ile hedef değer arasındaki sapmaya göre hesaplar.
Yeni bir parametre tasarımının, LIMIT_TARGET_RATIOS=[2, 2, 4], olduğunu belirtmekte fayda var; burada LIMIT_TARGET_RATIOS[0], yürütme işlemi sınıfı Gas'ın hedef oranını, LIMIT_TARGET_RATIOS[1], Blob veri sınıfı Gas'ın hedef oranını ve LIMIT_TARGET_RATIOS[2], çağrı verisi sınıfı Gas'ın hedef oranını temsil eder. Bu vektör, ana bloktaki üç gaz türüne karşılık gelen gaz hedef değerlerini hesaplamak için kullanılır. Hesaplama mantığı şu şekildedir, yani gaz sınırını bölmek için LIMIT_TARGET_RATIOS kullanılır:
gas_limits ayar mantığı şu şekildedir:
gas_limits[ 0 ] mevcut ayarlama formülünü takip etmelidir
gas_limits[ 1 ] MAX_BLOB_GAS_PER_BLOCK değerine eşit olmalıdır
gas_limits[ 2 ], gas_limits[ 0 ] ile eşit olmalıdır // CALLDATA_GAS_LIMIT_RATIO
Mevcut gas_limits[ 0 ]'ın 30000000 olduğunu ve CALLDATA_GAS_LIMIT_RATIO'nun 4 olarak önceden ayarlandığını biliyoruz; bu da mevcut calldata gaz hedefinin yaklaşık 30000000 // 4 // 4 = 1875000 olduğu anlamına gelir. Mevcut calldata gaz hesaplama mantığına göre, sıfır olmayan her Bayt 16 Gaz tüketir ve sıfır Bayt 4 Gaz tüketir. Belirli bir calldata'daki sıfır olmayan ve sıfır Bayt dağılımının her biri 50% olduğunu varsayarsak, 1 Bayt calldata'yı işlemek için ortalama 10 Gaz gerekir. Bu nedenle, mevcut calldata gaz hedefi, mevcut ortalama kullanımın yaklaşık iki katı olan 187500 bayt calldata verisine karşılık gelmelidir.
Bunun faydası, calldata'nın gaz sınırına ulaşma olasılığını büyük ölçüde azaltması ve ekonomik model sayesinde calldata'nın kullanımının nispeten sabit bir durumda tutulması ve aynı zamanda calldata'nın kötüye kullanılmasının önlenmesidir. 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ılır.
Bu makale internetten alınmıştır: EIP-7706 ve en son Ethereum Gas mekanizmasının ayrıntılı açıklaması
İlgili: Mayıs ayında Bitcoin'i (BTC) geride bırakacağı tahmin edilen 3 boğa altcoin
Özetle Binance Coin, devam eden konsolidasyonu ve yeni bir ATH oluşturmaya yakınlığı göz önüne alındığında en iyi performans gösteren varlıklardan biri olmaya hazır. Son üç ayda 585% büyüme kaydeden PEPE, yine de 41% daha yükselebilir. Tron (TRX) günlük grafikte bir ölüm kesişimini önledi ve ona daha fazla büyüme için alan ve fırsat sağladı. Bitcoin (BTC) dünyanın en büyük kripto para birimidir, ancak zaman zaman altcoin'ler bile kral coin'in performansını aşabilir. BeInCrypto, Mayıs ayında BTC'yi geride bırakma potansiyeline sahip olan bu tür üç altcoin'i analiz ediyor. Binance Coin (BNB) Hala Rekabette Binance Coin fiyatı bir buçuk aydan uzun süredir konsolidasyonda ve $640'ın üzerinde kapanmaya çalışıyor. Ancak, altcoin ...