EIP-7702

Keskmine

Mis on EIP-7702?

EIP-7702 on ettepanek välisomandis olevate kontode ehk EOA-de täiustamiseks (EOA – externally owned account). EOA-d on Ethereumi võrgu põhikontod, mille kaudu saab saata tehinguid ja tegelda nutilepingutega. Neil pole aga teatud funktsioone, mis on mõnel krüptorahakotil, nagu tehingupakkide koostamine ja gaasi toetamine.
EIP-7702 eesmärk on ajutiselt lubada EOA-del ühe tehingu raames toimida nagu nutilepingukontod, lisades sellega neile funktsioonid, mis on tavaliselt reserveeritud nutilepingutega rahakottidele. EIP-7702 loodi vastusena EIP-3074 piirangutele ja kriitikale.

Kuigi ettepanekut EIP-7702 praegu ei rakendata, toetab kogukond seda märkimisväärselt ja paljud arvavad, et see võiks asendada ettepaneku EIP-3074. Sellisel juhul võidakse EIP-7702 juurutada 2024. aasta lõpuks välja antavasse Ethereum Pectra versiooniuuendusse.

Kuidas EIP-7702 töötab?

EIP-7702 lisab Ethereumi võrku uut tüüpi tehingu, millel on eriväli nimega contract_code. See annab EOA-le tehingu ajal teatud nutilepinguomadused. Vaatame, kuidas see töötab.

Tehingu ettevalmistamine

Kasutaja alustab tehingu ettevalmistamisest, lisades tavaliselt sellised andmed nagu näiteks sihtaadress, gaasi piirnorm ja andmed, mis tuleb saata. Peale nende üksikasjade lisab ta väljale contract_code nutilepingu erikoodi. Selles koodis on ülevaade nutilepingu funktsioonidest, mis määratakse ajutiselt tema EOA-le.

Autoriseerimine 

Seejärel allkirjastab kasutaja tehingu. See allkiri on hädavajalik, sest selle abil tehing autenditakse ja seal on autoriseerimisloend. Selles loendis on lepingukoodi contact_code üksikasjad ja tingimused, mille alusel see täidetakse. Põhimõtteliselt kinnitab ja autoriseerib see nutilepingu koodi ajutise määramise EOA-le.

Teostamine

Kui tehing esitatakse Ethereumile, siis töötleb võrk seda, määrates ajutiselt EOA-le väljal contract_code kindlaks määratud lepingukoodi. Selles etapis töödeldakse tehingut nii, nagu oleks EOA nutileping, kasutades lepingukoodi contract_code funktsioone.

Tagasipööramine

Pärast tehingu lõpuleviimist eemaldab Ethereumi võrk EOA-lt automaatselt ajutise lepingukoodi contract_code. EOA algolek taastatakse ning see kaotab oma ajutised nutilepingufunktsioonid.

Kullerianaloogia

Kujuta ette, et Bob on kuller, kellel on tavaline sõiduauto, kuhu mahuvad ainult väiksed pakid. Ükskord palutakse Bobil kohale toimetada üks suur pakk. Tellimuse tagasilükkamise asemel otsustab Bob rentida kaubakasti, mille kinnitab auto külge. Ta toimetab paki kohale ja viib kaubakasti rendipoodi tagasi ning jätkab oma tavalise sõiduauto kasutamist.

Selles näites on järgmised analoogiad:

  • tavaline sõiduauto on EOA;

  • ajutine kaubakast on lisavõimalusi pakkuv contract_code;
  • kohaletoimetamine on tehing;

  • kaubakasti rentimine ja tagastamine näitab, et contract_code on ajutine ja aktiivne ainult tehingu ajal.

EIP-7702 eelised

Turvalisus

Automaatse ajutise lepingukoodi eemaldamine pärast tehingut vähendaks EIP-7702 volitamata toimingute riski. Sellisel juhul on funktsioonitäiustused aktiivsed ainult tehingu ajal ja see piirab võimalikke haavatavusi.

Paindlikkus

EIP-7702 annaks mitmesuguseid kasutusvõimalusi (nt tehingupakkide koostamine), kus ühe tehingu käigus saab teha mitu toimingut. Lisaks oleks sellel gaasi toetuse tugi, võimaldades ühel kontol tasuda teise konto tehingutasusid.

Nutirahakoti kasutamine

EIP-7702 võimaldab EOA-del ajutiselt toimida nutilepingutena, mis võiks julgustada nutirahakoti funktsioonide kasutamist ilma turbeohtudeta, mis kaasneksid EOA-de jäädava muutmisega.

Kokkuvõte

EIP-7702 on ettepanek, mis lahendab EOA-de piiratuse probleemi, andes neile ajutiselt nutilepingufunktsioonid. See võib täiustada turvet, aktiveerides nutilepingufunktsioonid ainult ühe tehingu ajaks. Lisaks võib see tehingupakkide koostamise, gaasi toetamise ja muude funktsioonide kaudu suurendada mitmekülgsust.

Ehkki EIP-7702 tulevik pole veel kindel, tundub sellele avaldatud märkimisväärse toetuse põhjal üsna tõenäoline, et see lisatakse eelseisvasse Ethereum Pectra versiooniuuendusse, mis antakse välja 2024. aasta lõpuks.