← Natrag na vijesti
💊 Zdravstvo

EIP-8037 pravila o state-gasu tjeraju Ethereum dApps da prepišu naplatu

Ilustracija članka
📅 🌐 Izvor: CryptoSlate

Ethereumovi glavni razvijatelji pozvali su 6. studenoga aplikacijske timove da pomognu procijeniti trebaju li se predložene promjene gasa u nadogradnji Glamsterdam revidirati. Marius van der Wijden objavio je poziv na blogu Ethereum Foundationa, uz objašnjenje da interne i vanjske revizije ne mogu pokriti sve ugovore i izvanlančane usluge pojedinih projekata. U fokusu je osam pretpostavki o gasu, a reviziju provode ChainSecurity i Dedaub uz interne provjere. Hoodi testnetu planirana aktivacija 26. listopada i povećanje gas limita za 200 milijuna odgođeni su 22. listopada; rok za mainnet nije određen.

Okvir s osam invarijanti razdvaja tri cjenovne pretpostavke, koje uključuju fiksne proračune i rezerve, od pet računovodstvenih pretpostavki koje obuhvaćaju povrate gasa, rukovanje kvarovima, naplatu i delegiranje. EIP-8037 podigao bi trošak stvaranja trajnih podataka na lancu i mjerio rast stanja odvojeno od izvršenja, dok bi EIP-8038 promijenio cijenu pristupa i upisa u postojeće stanje. Cilj je veći protok uz kontrolu podataka koje Ethereumovi čvorovi moraju čuvati. Zato su mogućnost popravka aplikacija i izvještaji projekata o postavkama, nadogradnjama i migracijama dio dokaza za odluku o promjenama.

Kontekst

Glamsterdam je nadogradnja čije bi predložene promjene gasa mogle utjecati na naplatu i sigurnost novčanika. INV-5 opisuje posrednika koji plaća izvršenje transakcije za drugoga i trošak pokušava nadoknaditi mjerenjem gasa prije i poslije rada. Prema EIP-8037, transakcija najprije puni zaseban state-gas rezervoar kada joj gas limit prelazi 16.777.216; stvaranje stanja crpi taj rezervoar prije izvršnog gasa. Solidityjev gasleft() ne uključuje rezervoar, pa oduzimanje dvaju očitanja može propustiti troškove koje posrednik stvarno plaća. Provjerena oduzimanja vraćaju transakciju ako je kasnije očitanje veće, a neprovjerena se mogu preliti u velik broj i dovesti do prevelike naknade.

Nevidljiva potrošnja iz rezervoara može ostaviti korisnike podnaplaćenima, a operatere da pokriju manjak. PR #12581 predlaže da očitanja gasa ne mogu rasti, što rješava problem oduzimanja, ali ne i slijepu točku naplate iz rezervoara.

INV-8 bavi se delegiranjem prema EIP-7702, gdje račun autorizira delegirani ugovorni kod. Nedovoljno gasa prije izvršenja može ostaviti transakciju u bloku, ali poništiti delegiranje i ažuriranje nonce-a. Izložena autorizacija koja i dalje zadovoljava provjere, uključujući nonce računa, može se ponovno upotrijebiti. Ako delegirani ugovor ima inicijalizator koji prvom pozivatelju dopušta odabir vlasnika, napadač bi mogao primijeniti autorizaciju i inicijalizirati vlasništvo u jednoj transakciji. Predložene zaštite uključuju vezivanje inicijalizacije uz potpis računa ili samopozive te poništavanje izloženih autorizacija.

Ključne brojke

Poziv je objavljen 6. studenoga i odnosi se na osam pretpostavki: tri cjenovne i pet računovodstvenih. Hoodi aktivacija planirana za 26. listopada i povećanje gas limita za 200 milijuna odgođeni su 22. listopada. Prag za state-gas rezervoar iznosi 16.777.216 gasa. Prema predloženom rasporedu, stvaranje hladnog slota pohrane stoji ukupno 110.020 gasa, naspram 22.100 u Osaki; od toga je 12.100 izvršni gas, a 97.920 state gas.

Što to znači

Posljedice sežu od toga da posrednici vraćaju premalo svojih troškova do toga da autorizacije novčanika postanu ponovno upotrebljive nakon određene vrste kvara. Zato je mogućnost popravka aplikacija dio dokaza koje razvijatelji trebaju pri odlučivanju o promjenama nadogradnje. Rasprave o kompatibilnosti ovise i o izvještajima projekata o postavkama, nadogradnjama i migracijama.

Što slijedi

Hoodi aktivacija ostaje odgođena dok se pitanje ne riješi, a aktivacija na mainnetu nije određena. Razvijatelji očekuju podatke aplikacijskih timova i nastavak rasprava o kompatibilnosti. PR #12581 otvoren je prijedlog specifikacije, dok je naplata najgoreg slučaja troška autorizacije unaprijed predložena promjena protokola koja nije usvojena.