Artikkeli · w-008
EIP-7702-valtuutus: mitä tilin delegointi muuttaa?
Tuote-esimerkki kuvaa dokumentaatiota, ei testattua käyttöliittymää tai saatavuutta Suomessa.
Jos Ethereum-lompakko tai sovellus ehdottaa tilin muuttamista älytiliksi, tärkeä kysymys ei ole vain, paljonko jokin yksittäinen token-lupa sallii. Selvitä myös, muuttaako pyyntö tilin käyttämää koodia ja mihin osoitteeseen delegointi kohdistuu. Jos et ymmärrä pyyntöä tai sen alkuperää, keskeytä. Älä allekirjoita selvittämättömän ohjeen vuoksi.
Delegointi koskee tilin toimintaa
EIP-7702 määrittelee valtuutuksen, jolla tavallisen yksityisavaimella hallitun Ethereum-tilin eli EOA-tilin koodiin asetetaan osoitin toisen osoitteen koodiin. Kun tiliä käytetään tietyissä koodin suorittamistilanteissa, osoitettu koodi suoritetaan tilin kontekstissa. Valtuutus ei ole sama asia kuin varojen tavallinen siirtäminen toiselle osoitteelle.1
Ajatus voi mahdollistaa esimerkiksi useamman toiminnon yhdistämisen tai erilaisia tilin käyttötapoja, mutta ominaisuudet riippuvat kohdekoodista ja toteutuksesta. Ethereum.org varoittaa, että pahantahtoinen delegointikohde voi antaa hyökkääjälle mahdollisuuden viedä varat.2 Osoitteen ja toteutuksen aitoutta ei voi päätellä pelkästä tutusta palvelunimestä tai siitä, että pyyntö näyttää teknisesti uskottavalta.
Valtuutuksen verkkorajaus on myös tärkeä. Ethereum.orgin mukaan chain_id=0 voi tehdä valtuutuksesta useissa ketjuissa kelpaavan; soveltuminen riippuu silti kunkin verkon tuesta ja muista kelpoisuusehdoista. Samaa osoitetta ei pidä tarkastella vain yhden verkon näkökulmasta.1, 2
Yksityisavain säilyttää tilin hallinnan myös delegoinnin jälkeen. Se ei kuitenkaan tee haitallista kohdetta turvalliseksi tai tarkoita, että käyttäjä ehtisi estää varojen menetyksen.2
Miten tämä eroaa tokenin käyttöluvasta?
ERC-20-tokenin hyväksyntä koskee tietyn token-sopimuksen ylläpitämää käyttörajaa: se voi antaa nimetylle kuluttajalle oikeuden käyttää omistajan tokeneita. EIP-7702:n delegointi puolestaan määrittää tilin suorittaman koodin osoittimen. Ne ovat eri mekanismeja, vaikka sama sovellus voi pyytää molempiin liittyviä toimia.1, 6
Siksi yksittäisen tokenin luvan poistamista ei pidä esittää tapana poistaa 7702-delegointi. Vastaavasti delegoinnin poistaminen ei itsessään todista, että erilliset token-luvat tai muut oikeudet olisi poistettu. Tilin, verkon, luvan ja sovelluksen tarkistus ovat erillisiä tehtäviä.
Esimerkki: mitä MetaMaskin ohje kertoo?
MetaMaskin omassa ohjeessa puhutaan Smart account -ominaisuudesta. Ohje sijoittaa asetuksen tilin tietoihin ja kuvaa muutoksen verkkokohtaisilla valinnoilla. Valmistajan mukaan sen älytiliksi vaihtaminen osoittaa EOA-tilin MetaMaskin sopimukseen; osoite ei vaihdu eikä vaihto itsessään siirrä varoja. Ohje myös kuvaa paluun tavalliseen tiliin verkkotapahtumana, josta peritään verkkomaksu.3
Tämä on yhden palveluntarjoajan dokumentoima esimerkki, ei lupaus siitä, että kaikki lompakot käyttävät samaa näkymää, näyttävät delegointikohteen selkeästi tai tarjoavat saman palautustavan. Ohje voi muuttua. Emme ole testanneet versiota, verkkoa tai toimintoa emmekä arvioineet tuen saatavuutta Suomessa. Ulkopuolinen kiirehtivä viesti, jossa vaaditaan älytiliin päivittämistä, on syy pysähtyä, ei syy jatkaa.
Jos valtuutus tai tapahtuma epäilyttää
Valtuutuksen allekirjoittaminen ja sen käyttö verkossa ovat eri vaiheita: asian selvittäminen riippuu siitä, mitä tarkalleen tapahtui. Älä kokeile satunnaista peruutustyökalua, hyväksy tuntemattomia tapahtumia tai siirrä lisää varoja tilille selvityksen nimissä. Älä luovuta palautussanoja, yksityisavainta tai kirjautumiskoodeja tukena esiintyvälle taholle.
Ethereum.org kuvaa delegoinnin nollaamisen protokollatasolla, mutta turvallinen käytännön menettely riippuu lompakosta ja tilanteesta.2 Erityisesti epäillyssä vaarantumisessa pyydä apua riippumattomasta, itse tarkistamastasi virallisesta tukikanavasta tai osaavalta asiantuntijalta. Peruutus ei palauta jo menetettyjä varoja eikä ole yleinen korjaus kaikkiin riskeihin.
Huomaa myös, että EIP-7702:n mukaan käsitelty delegointiosoitin ei välttämättä palaudu ennalleen, vaikka tapahtuman varsinainen suoritus epäonnistuisi.1 Epäonnistumisilmoitusta ei siis pidä yksin tulkita todisteeksi siitä, ettei delegoinnin tila muuttunut.