Sisältö ei ole yksilöllistä sijoitus-, vero-, oikeus- tai tietoturvaneuvontaa.
Kryptoville.

Kryptoista selkoa.
Ilman hypetystä.

Artikkeli

Lompakon yhdistäminen sivustoon ei ole sama kuin käyttöoikeuden antaminen

Tietojen ja lähteiden vastaavuutta ei ole vahvistettu.

Kun sivusto pyytää yhdistämään kryptolompakon, se ei vielä tarkoita samaa kuin lupa käyttää lompakon tokeneita. Yhdistäminen, viestin allekirjoittaminen ja tokenin käyttöluvan antaminen ovat eri toimia. Niiden seuraukset pitää silti lukea erikseen jokaisesta pyynnöstä: pelkkä painikkeen nimi ei kerro koko tapahtumaa.

Tässä oppaassa tarkastellaan erityisesti Ethereum-tyyppisiä lompakoita ja ERC-20-tokeneita. Eri verkkojen, lompakoiden ja sovellusten toteutukset eroavat toisistaan. Jos et ymmärrä, mitä lompakko pyytää hyväksymään, voit pysähtyä ennen vahvistusta.

Mitä yhdistäminen yleensä tekee?

Hajautettu sovellus eli dApp tarvitsee usein tiedon siitä, mitä osoitetta haluat käyttää. Yhdistäminen voi antaa sivustolle pääsyn valitsemaasi julkiseen osoitteeseen ja tietoon käytössä olevasta verkosta. Sen perusteella sovellus voi näyttää osoitteeseen liittyviä tietoja ja ehdottaa myöhempiä toimia. Se, mitä käyttöliittymä näyttää ja jakaa, riippuu lompakosta ja yhteystavasta.

Julkinen osoite ei ole sama asia kuin yksityinen avain. Ethereum-verkon tietoja voi myös lukea ilman tilaa muuttavaa tapahtumaa. Älysopimuksen tilaa muuttava toiminto taas edellyttää tapahtumaa; käyttäjän lompakko huolehtii sovelluksessa allekirjoittamisesta.18

Yhdistäminen ei siis ole yleinen valtakirja siirtää kaikki varat. Se ei kuitenkaan tee seuraavista pyynnöistä automaattisesti turvallisia. Sivusto voi yhteyden muodostamisen jälkeen pyytää allekirjoitusta tai erillistä tapahtumaa, ja jokainen pyyntö pitää arvioida oman sisältönsä perusteella.

On hyödyllistä erottaa toisistaan yhteyden muodostaminen ja se, mitä sivusto voi päätellä näkyvästä osoitteesta. Yhdistetty osoite voi olla sama, jolla olet tehnyt muitakin julkisia tapahtumia. Mieti siis myös yksityisyyttä: tarvitseeko kyseinen sovellus tämän osoitteen juuri nyt?

Viestin allekirjoitus ei ole aina pelkkä kirjautuminen

Viestin allekirjoituksella voidaan esimerkiksi osoittaa, että hallitset osoitetta. Tällainen pyyntö saattaa olla osa kirjautumista eikä välttämättä lähetä itsessään lohkoketjutapahtumaa. Silti allekirjoituksen sisältö ratkaisee, mihin sitoudut tai mitä sen vastaanottaja voi tehdä.

Eräissä tokenitoteutuksissa allekirjoitettua viestiä voidaan käyttää käyttöluvan muodostamiseen. ERC-2612-standardissa permit-allekirjoitus voi antaa määritellylle toimijalle oikeuden käyttää tiettyä tokenimäärää, kun kelvollinen allekirjoitus toimitetaan sopimukselle. Mukana on myös määräaika; tämä ei ole kuvaus kaikkien allekirjoitusten tai kaikkien tokenien toiminnasta.19

Siksi väite ”allekirjoitus ei maksa verkkomaksua, joten se ei voi vaikuttaa varoihin” on liian laaja. Maksuttomuus allekirjoitushetkellä ei yksin kerro, mihin allekirjoitusta voidaan myöhemmin käyttää. Tarkista pyynnön tyyppi, kohde, mahdollisesti näkyvä määrä ja muut ehdot. Jos lompakko näyttää tiedot epäselvästi, se ei muuta epäselvää pyyntöä ymmärretyksi.

Viestin sisältö voi olla myös teknistä dataa, jota ei ole helppo arvioida pelkän otsikon perusteella. Älä hyväksy sitä vain siksi, että edellisessä vaiheessa päätit kokeilla palvelua. Voit keskeyttää ja tutustua sovelluksen sekä oman lompakkosi ohjeisiin ennen jatkamista.

Käyttölupa koskee tiettyä oikeutta

Tokenin kulutuslupa, usein allowance tai approval, on eri asia kuin lompakon yhteys sivustoon. Tavanomaisessa ERC-20-mallissa tokenin omistaja voi hyväksyä toiselle osoitteelle oikeuden käyttää määrätyn määrän tokeneita. Standardi määrittelee myös mahdollisuuden tarkistaa voimassa olevan määrän.20

Kun luet hyväksyntäpyyntöä, etsi ainakin nämä asiat:

  • Verkko ja lompakko: missä verkossa ja mistä osoitteesta lupa annetaan?
  • Token: mitä omaisuutta lupa koskee? Nimi ja tunnus eivät yksin todista tokenin oikeellisuutta.
  • Oikeuden saaja: mille sopimukselle tai osoitteelle oikeus annetaan?
  • Määrä: onko raja pieni, haluttuun toimeen liittyvä vai erittäin suuri tai rajattomaksi kuvattu?
  • Toimen tyyppi: onko kyse luvasta vai esimerkiksi varsinaisesta siirrosta?

Nämä eivät ole lupaus siitä, että kaikki riskit näkyvät lompakossa. Jos saajaa tai pyynnön tarkoitusta ei pysty selvittämään, jätä hyväksymättä. Määrän rajaaminen voi pienentää kyseiseen lupaan liittyvää altistusta, mutta se ei poista muita sopimukseen tai sovellukseen liittyviä riskejä.

Ethereum.org varoittaa erityisesti laajoista token-oikeuksista: jos sopimuksella on rajaton käyttöoikeus, varojen palauttaminen palvelusta omaan osoitteeseen ei välttämättä poista oikeutta käyttää kyseisiä tokeneita. Joissakin lompakoissa määrää voi rajoittaa; tarkka toiminto riippuu lompakosta.17

Sama näkymä, eri päätökset

Kuvitteellinen esimerkki: Aino avaa tokenien vaihtosovelluksen ja yhdistää lompakkonsa, jotta sovellus voi näyttää hänen osoitteensa. Sen jälkeen lompakko näyttää pyynnön allekirjoittaa viesti. Aino lukee viestin tarkoituksen ja huomaa, ettei se ole sama näkymä kuin tokenin käyttöluvan hyväksyntä. Myöhemmin sovellus pyytää erillistä lupaa käyttää tiettyä tokenia.

Ainon ei tarvitse päätellä ensimmäisestä klikkauksesta, että kaikki myöhemmät pyynnöt kuuluvat automaattisesti samaan päätökseen. Hän tarkistaa verkon, tokenin, oikeuden saajan ja määrän. Jos hän ei pysty yhdistämään näkyvää saajaa palvelun luotettavaan dokumentaatioon, hän keskeyttää. Esimerkissä ei oteta kantaa siihen, onko mikään tietty sovellus turvallinen.

Varsinainen vaihto tai siirto voi tulla vasta käyttöluvan jälkeen. Silloinkin tarkistetaan uuden pyynnön sisältö erikseen: mikä lähtee, minne tai minkä sopimuksen kautta, ja mitä kuluja käyttöliittymä näyttää. Luvan antaminen ei tarkoita, että suunniteltu vaihto olisi jo toteutunut.

Yhteyden katkaisu ja luvan peruminen

Kun lopetat sovelluksen käytön, voit katkaista lompakkoyhteyden lompakon tai palvelun tarjoamalla tavalla. Se on hyödyllinen tapa hallita yhteyksiä, mutta se ei ole sama asia kuin aiemmin annetun tokenin kulutusluvan poistaminen. Ethereum.orgin oppaan mukaan olemassa oleva allowance voi pysyä käytössä yhteyden katkaisusta huolimatta.17

Luvan tarkistamiseen tarvitaan verkolle sopiva tapa nähdä osoitteeseen liitetyt käyttöoikeudet. Tarkista, että katsot oikeaa verkkoa ja oikeaa osoitetta. Ethereum.org huomauttaa, että valitun verkon näkymä ei automaattisesti näytä muiden verkkojen sopimuksia.17

Peruminen on yleensä erillinen hyväksyntä lohkoketjuun ja siitä voi syntyä verkkomaksu. Ethereum.org neuvoo tarkistamaan perumisen jälkeen uudelleen, että kyseinen oikeus on poistunut näkymästä. Myöhemmin sama sovellus voi tarvita uuden luvan, jos haluat käyttää sitä uudelleen.17

Lupaluettelo ei ole välttämättä täydellinen kuva kaikista mahdollisista allekirjoituksista tai sopimusjärjestelyistä. Tavallisen allowance-luvan, erillisen permit-allekirjoituksen ja muiden sovelluskohtaisten oikeuksien käsittely voi poiketa toisistaan. Tarkista oman tokenin ja käytetyn työkalun dokumentaatio sen sijaan, että olettaisit yhden näkymän kattavan kaiken.

Miten rajattu lupa kannattaa ymmärtää?

Käyttöluvan määrä ei ole sama asia kuin senhetkinen saldo. Lupa kertoo, kuinka paljon tietty saaja saa kyseisen mallin mukaan käyttää; se ei itsessään tarkoita, että koko määrä olisi jo siirretty. Jos varoja tulee samaan osoitteeseen myöhemmin lisää, vanha lupa voi edelleen olla merkityksellinen. Tarkista siis oikeudet myös käytön päätyttyä, ei vain silloin, kun saldo näyttää pieneltä.17

Luvan rajaaminen juuri suunniteltuun käyttötarpeeseen voi tuntua ylimääräiseltä vaiheelta, jos sovellus ehdottaa valmiiksi suurta määrää. Päätös on silti oma: selvitä, voiko määrää muuttaa ja mitä sovellus tarvitsee. Älä oleta, että jokainen käyttöliittymä tarjoaa saman säädön tai että sen oletusarvo vastaa omaa tarkoitustasi.

Tarkista myös saaja huolellisesti. Sovelluksen nimi, selainikkuna ja luvan saajana näkyvä sopimusosoite ovat eri tietoja. Jos dokumentaatiosta löytyy sopimusosoite, vertaa koko osoitetta siihen, jonka lompakko näyttää, ja varmista dokumentaation koskevan samaa verkkoa. Osoitteen täsmääminen ei yksin todista sopimusta turvalliseksi, mutta ristiriita on syy jättää pyyntö vahvistamatta.

Allekirjoituksen lukemisen rajat

Lompakko voi näyttää pyynnölle otsikon, teknisen rakenteen tai vain osan tiedoista. Selkeäkin otsikko on sovelluksen esitys, ei riippumaton turvallisuustakuu. Vertaa näkyviä tietoja siihen toimintaan, jonka itse aloitit. Jos tarkoitus oli vain kirjautua mutta pyyntö puhuu tokenista ja käyttöoikeuden saajasta, selvitä miksi ennen kuin jatkat.

ERC-2612:n permit sisältää esimerkiksi omistajan, oikeuden saajan, määrän, määräajan ja kertakäyttöisyyteen liittyvän nonce-arvon. Ne ovat standardin kenttiä, eivät lupaus siitä, että jokainen lompakko esittää ne helposti ymmärrettävästi.19 Määräajan umpeutumista ei myöskään pidä sekoittaa siihen, kuinka pitkään allekirjoituksen perusteella jo syntynyt käyttöoikeus voi olla voimassa.

Jos palvelu pyytää useita hyväksyntöjä, lue jokainen erillisenä päätöksenä. Ensimmäisen pyynnön ymmärtäminen ei selitä seuraavaa. Jos jokin kohta jää epäselväksi, sulje pyyntö ja tarkista ensin viralliset ohjeet. Ohjeesta on hyötyä vasta, kun se kuvaa samaa toimintoa, verkkoa ja käyttöliittymän versiota.

Kun tarkistat vanhoja oikeuksia

Aloita siitä osoitteesta ja verkosta, jota todella käytit sovelluksessa. Saman käyttäjän toinen osoite voi näyttää aivan eri oikeudet, eikä yhden verkon näkymä välttämättä kata toista. Kirjaa itsellesi, mitä sovellusta tai sopimusta tarkistus koskee, jotta et sekoita käyttöluvan saajaa tokenin omaan sopimusosoitteeseen.

Jos et tunnista vanhaa oikeutta, älä päättele sen tarkoitusta pelkästään tutulta kuulostavasta nimestä. Vertaa tietoja luotettavaan dokumentaatioon ja tarkista, tarvitsetko lupaa edelleen. Perumisen jälkeen tarkista tapahtuman tila ja päivitetty oikeusnäkymä. Epäselvä tai epäonnistunut perumistapahtuma ei itsessään osoita, että oikeus olisi poistunut.

Ennen seuraavaa vahvistusta

Pysähdy aina siihen kohtaan, jossa lompakko pyytää päätöstä. Kysy itseltäsi: olenko vain näyttämässä osoitteen, allekirjoittamassa viestiä, antamassa käyttöluvan vai tekemässä tapahtumaa? Tarkista tiedot luotettavasta lähteestä ja varmista, että pyyntö vastaa sitä, mitä olit tekemässä.

Älä syötä palautuslauseketta tai yksityistä avainta sivustolle yhteyden muodostamiseksi. Jos et pysty selvittämään pyynnön vaikutusta, hyväksyntää ei tarvitse antaa. Myös keskeneräiseksi jätetty toiminto on päätös: sitä voi jatkaa vasta, kun tarvittavat tiedot ovat selvillä.

Lähteet

  • 17 Ethereum.org: token-oikeuksien tarkastelu ja peruminen.
  • 18 Ethereum.org: älysopimusten lukeminen ja muuttaminen.
  • 19 ERC-2612: permit-allekirjoitus.
  • 20 ERC-20: approve ja allowance.