Ethereum sandorio tvirtinimai ir nuostolių ribos problema
Teisingai pasirašyta „Ethereum“ operacija vis tiek gali duoti finansinį rezultatą, kurio vartotojas niekada nebūtų priėmęs neviršydamas reikšmingų nuostolių limito. Spalio 5 d. paskelbtame Ethereum fondo tyrime nagrinėjama, kaip Ethereum sandorių tvirtinimai galėtų užtikrinti rezultato taisykles, išplėsti piniginių ir protokolų patikras.
Lemiamas klausimas – kas teikia šias taisykles ir ar sandorį surenkanti programėlė ar paslauga gali jas susilpninti. Čekis gali įvertinti, kas atsitiko, ir atmesti rezultatą, kuris yra mažesnis už minimumą, tačiau suteikia mažai finansinės apsaugos, jei tas pats sandorio sudarytojas pasirenka leistiną minimumą.
Nuo spalio 9 d. EIP-7906 lieka juodraštis. Jis buvo sukurtas 2025 m. vasario 21 d. ir priklauso nuo EIP-8141 kadrų operacijų. „Hegotá“ atnaujinimo įraše nurodytas EIP-8141, kaip numatyta įtraukti, ir EIP-7906, kaip numatyta įtraukti.
Ethereum jau taiko tam tikrus finansinius apribojimus
Uniswap v3 šiandien turi konkrečią apsaugą. Jo apsikeitimo maršrutizatorius atmeta tikslios įvesties apsikeitimą, kai gauta suma yra mažesnė už minimalią kvitą, amountOutMinimum. Tikslaus produkcijos apsikeitimo atveju jis atmeta išlaidas, viršijančias maksimalią sąnaudą, amountInMaximum. Tai vykdymo laiko sąlygos, pateiktos skambučio parametruose.
Skirtumas tarp sąlygos ir garso vertės pasirinkimo pateikiamas Uniswap vieno apsikeitimo vadove. Jo supaprastintame pavyzdyje minimali išeiga nustatoma iki nulio, aiškiai įspėjama, kad tai rizikinga gamyboje, ir nukreipia kūrėjus į programinės įrangos kūrimo rinkinį, kainų orakulą ar kitą duomenų šaltinį, kad gautumėte saugesnę vertę.
Minimalus kvitas yra simbolinis kiekis, o ne sprendimas, ar sandoris yra geras sandoris. Jei statybininkas nustato aukštą, leidžiančią gauti labai mažą kvitą, rezultatas, esantis tiesiai virš to aukšto, praeina. Išvadus iš ir taip prastos citatos, būtų išsaugotas prastas sandoris, o limitas būtų tinkamai laikomasi.
Kitos apsaugos priemonės sprendžia skirtingas problemos dalis. Anksčiau šiais metais „Ethereum“ darbo grupė 2026 m. gegužės 12 d. paskelbė „Clear Signing“ standartą. Jame pateikiami struktūriniai aprašai, kuriuos piniginės gali pateikti vartotojams, su nepriklausomomis apžvalgomis ir patvirtinimais bei iš piniginės atrinktų patikimų šaltinių. Tai padeda pasirašančiajam suprasti prašomą veiksmą. Toks aprašymas pats savaime nenumato minimalaus finansinio rezultato.
Modeliavimas numato poveikį pasirinktai grandinės būsenai. Būsena gali pasikeisti, kol operacija pasiekia bloką. Tuo tarpu saugių išmaniųjų paskyrų sargai gali patikrinti parametrus prieš vykdymą ir galutinę seifo būseną po to, blokuodami operacijas pagal sukonfigūruotas taisykles.
Ką papildytų Ethereum sandorio tvirtinimai
EIP-7906 siūlo platesnį sandorio poveikio vaizdą. Jis pagrįstas EIP-8141 užsakytais rėmeliais, kurie atskiria patvirtinimo ir veiksmo veiksmus, ir prideda tik skaitymo POST_TX kadrai gale. Tvirtinimo kodas patikrintų gautą būseną ir atmestų vykdymą, kuris pažeidžia jos taisyklę.
Siūlomos instrukcijos padalija tą darbą į tris operacijas: TXTRACE išvardija nurodytus grynuosius pokyčius ir įvykius, TXDIFF nuskaito reikšmes pagal raktą ir EVENTDATACOPY padaro įvykio duomenis prieinamus tvirtinimui. Į jų apibrėžtą sritį įeina vietiniai ETH likučiai, saugyklos pakeitimai, naujai įdiegtos sutartys ir kodo maišos. Atliekant žetonų likučių patikras, reikėtų išaiškinti atitinkamą sutarties saugyklą ir užtikrinti, kad pasirinktas limitas būtų laikomasi.
Tai galėtų padaryti politiką, kuri viršytų minimalų vieno apsikeitimo sandorio našumą. Gali reikėti, kad paskyros valdymo konfigūracija liktų nepakitusi, arba politika gali apriboti patvirtinimus ir patikrinti poveikį keliose sutartyse.
Vaizdas vis dar yra grynasis rezultatas. Keli įrašai į vieną saugyklos lizdą susitraukia į pradinę ir galutinę reikšmes; lizdas, atkurtas iki pradinės vertės, dingsta iš grynojo pokyčio sąrašo.
Kas turi reikalauti ir saugoti čekį
Pasiūlyme nereikalaujama, kad kiekviename sandoryje būtų tvirtinimas. Paskyra, kuri remiasi vienu, turi sukonfigūruoti savo patvirtinimo logiką, kad reikalautų konkretaus POST_TX rėmas be aplinkkelio.
Protokolas turi susijusią pareigą. Jo apsaugotoje funkcijoje reikės tiksliai įvykdyti reikalingą tvirtinimą, atmetant įprastas operacijas ir sudarytas operacijas su trūkstamais arba neteisingais patikrinimais. Atsiskaitymų srautuose, kai sprendėjas pasirenka sandorio vykdymo būdą, norint apsaugoti vartotojo rezultatą, reikalingas pasirašytas pavedimas arba atsiskaitymo protokolas, kad sprendėjas būtų susietas su politika. Siūloma sprendėjo garantija taikoma vienam sandoriui viename tinkle.
Politika taip pat turi išgyventi veiksmus, kuriuos ji turėtų vertinti. EIP-7906 saugos gairėse reikalaujama nekintamų, neatnaujinamų tvirtinimo tikslų. Priešingu atveju sandoris gali pakeisti vykdymo sutartį po patvirtinimo ir prieš galutinį patikrinimą. Rekomendacijose taip pat aiškiai nurodoma, kad numatyto tikslo patvirtinimas priklauso nuo patvirtinimo, įvykusio prieš keičiant būseną.
Net nepakitęs tvirtinimo kodas gali nuskaityti pažeistą nuorodą. Specifikacijoje įspėjama apie kainas, registrus, įgaliotuosius serverius ir kitas būsenas, kurias vykdančioji institucija gali pakeisti prieš teigdama. Jei sandoris pakeičia kainą, naudojamą sprendžiant, ar jo paties rezultatas yra priimtinas, tikrosios galutinės būsenos skaitymas neišgelbėja palyginimo.
EIP-7906 rekomenduojamos pamatinės vertės, nustatytos pasirašant arba paimtos iš būsenos operacijos pradžioje. Abu metodai neleidžia vykdytojui perrašyti nuorodos. Įprasta oracle rizika išlieka, nes ankstesnės operacijos tame pačiame bloke gali pakeisti pradinę būseną.
Atmestas rezultatas vis tiek kainuotų dujas
Pagal pasiūlymą nepavyko POST_TX čekis grąžintų vykdomąją organą. Sandoris liktų bloke. Dujų mokėtojas liktų apmokestintas už sunaudotas dujas, o pradinių patvirtinimo etapų pakeitimai, žinomi kaip patvirtinimo priešdėlis, liktų įsipareigoję. Tai gali būti mokėjimo patvirtinimas arba paskyros sukūrimas.
Veiksmai, skirti apsaugoti, turi būti toje dalyje, kurioje teiginys gali atšaukti. Įdėjus nepatikimą vykdymą į atliktą patvirtinimo priešdėlį, jis liktų už šios apsaugos ribų.
Patikrinti taip pat reikia pakankamai dujų. EIP-7906 įspėja, kad pakeitimų ir įvykių išvardijimas gali išeikvoti jo biudžetą, todėl reikia, kad neišsamus dujų patikrinimas būtų laikomas tvirtinimo nesėkme.
Fondas aprašo galimas programas deleguotųjų agentų ir sprendėjų atsiskaitymuose. „CryptoSlate“ rugsėjo mėn. AI piniginės leidimų aprėptis jau aptarė deterministines ribas ir reikalingus tvirtinimus.
Prasmingas įgyvendinimas leistų aiškiai nustatyti reikiamą ribą ir jos nuorodą prieš suteikiant leidimą, tada statytojas negalėtų susilpninti. „Ethereum“ galėtų puikiai įgyvendinti saugos sąlygas, tačiau vis tiek vykdys netinkamą finansinį sandorį.
