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

Kryptoista selkoa.
Ilman hypetystä.

Artikkeli

Älysopimuksen ylläpitäjä voi vaihtaa säännöt: tarkista päivitysvalta

Tietojen ja lähteiden vastaavuutta ei ole vahvistettu.

Älysopimuksen päivitysvalta voi tarkoittaa, että palvelun toimintalogiikka muuttuu myös sen jälkeen, kun olet tallettanut varoja. Tarkista siis muutakin kuin se, onko koodi julkaistu tai auditoitu: mikä sopimus vastaanottaa toimintosi, kuka saa muuttaa sen toimintaa ja miten muutoksesta päätetään. Ethereum.org kuvaa useita rakenteita, joissa toimintalogiikka voidaan vaihtaa, vaikka lohkoketjuun jo tallennettua koodia ei muokata suoraan. 15

Tämä opas auttaa muodostamaan kysymykset ennen talletusta. Se ei tunnista minkään yksittäisen palvelun oikeuksia eikä todista, että tietty sopimus olisi turvallinen. Jos et pysty selvittämään oikeuksia luotettavasti, käsittele niitä tuntemattomina, älä puuttuvina.

Miksi muuttumaton koodi voi silti tarkoittaa muuttuvaa palvelua?

Lohkoketjuun julkaistua sopimuskoodia ei tavallisesti muokata kuin verkkosivun tekstiä. Päivitettävä palvelu voidaan silti rakentaa useasta sopimuksesta: yksi osa säilyttää tietoja tai toimii käyttäjän yhteyspisteenä, ja toinen sisältää vaihdettavan toimintalogiikan. Ethereum.org kuvaa muun muassa datan erottamisen ja proxy-rakenteen vaihtoehtoina. 15

Proxy eli välityssopimus on osoite, jonka kautta käyttäjä toimii. Kuvatussa rakenteessa proxy säilyttää tietoja ja ohjaa kutsut logiikkasopimukselle. Kun viittaus logiikkaan vaihdetaan, sama käyttäjän näkemä osoite voi jatkossa suorittaa erilaista toimintaa. Toteutusten yksityiskohdat vaihtelevat: pelkän sanan proxy näkeminen ei vielä kerro, kuka muutoksen voi tehdä tai miten varoja käsitellään. 15

Tämä ero on käytännössä tärkeä. Voi olla, että tarkastit aiemmin voimassa olleen logiikan, mutta myöhemmin palveluun lisätään uusia nostoehtoja tai muu käyttäjään vaikuttava toiminto. Tämä on mahdollinen seuraus päivitysvallasta, ei väite siitä, että jokainen päivitys sisältäisi tällaisia ehtoja. Muutoksen todellinen vaikutus riippuu koodista ja järjestelmän oikeuksista. 15

Mitä kannattaa selvittää ensin?

Aloita palvelun omista dokumenteista, mutta pidä väitteet ja varmistettu havainto erillään. Kirjaa verkko, talletuksessa käytettävän sopimuksen osoite ja dokumentaation ilmoittama päivitysmalli. Tarkista, koskeeko osoite juuri sitä tuotetta ja verkkoa, jota aiot käyttää. Samanniminen palvelu voi käyttää eri sopimuksia eri käyttötapauksissa.

Etsi sen jälkeen vastaus näihin kysymyksiin:

  • Onko käyttäjän käyttämä sopimus välityssopimus tai osa muuta päivitettävää rakennetta?
  • Missä nykyisen logiikan osoite tai sitä vastaava tieto näkyy, ja miten se varmistetaan kyseisessä toteutuksessa?
  • Millä oikeudella logiikkaa voidaan vaihtaa? Voiko sama toimija myös muuttaa päivitysoikeuden haltijaa?
  • Onko toimijana yksittäinen avain, usean allekirjoituksen lompakko, hallintoprosessi vai näiden yhdistelmä?
  • Onko muutokselle odotusaika, voiko sen ohittaa ja miten tulevasta muutoksesta saa tiedon?
  • Koskeeko mahdollinen tauko- tai muu erityisoikeus talletusta, nostoa vai molempia?

Kysymykset ovat tarkistuslista, eivät oletus siitä, että jokaisessa sopimuksessa on nämä ominaisuudet. Oikeudet voivat olla eri sopimuksissa, ja niiden ehdot on varmistettava toteutuskohtaisesti. Jos dokumentaatio lupaa yhden asian mutta ketjussa näkyvä rakenne näyttää toiselta, pyydä palvelulta täsmennys ennen toimimista.

Admin-avain, multisig ja hallinto eivät ole sama asia

Ylläpitäjän eli adminin oikeus tarkoittaa tässä valtuutta tehdä sopimuksessa erityinen hallintatoimi. Sana ei yksin paljasta toimivallan laajuutta. Yksi oikeus voi koskea logiikan vaihtamista ja toinen jotakin asetusta. Ethereum.org huomauttaa, että kuvaamassaan proxy-mallissa päivitysfunktioon pääsevä taho voi vaihtaa koko logiikan; toisenlaisissa rakenteissa oikeuksia voidaan rajata osiin. 15

Jos oikeus on yksittäisellä osoitteella, selvitä, mitä kyseinen osoite edustaa. Osoite ei yksin kerro, kuka sitä hallitsee tai miten avainta säilytetään. Jos haltija on multisig eli usean allekirjoituksen lompakko, tarkista kyseisen lompakon säännöt: montako hyväksyntää vaaditaan, ketkä allekirjoittajat ovat ja voiko allekirjoittajia vaihtaa. Multisig voi jakaa päätösvaltaa, mutta sen olemassaolo ei yksin kerro, ovatko allekirjoittajat riippumattomia toisistaan.

Jos dokumentaatiossa mainitaan yhteisöhallinto, selvitä lisäksi, mitä äänestyksen jälkeen tapahtuu. Äänestys, sen tuloksen toimeenpano ja tekninen päivitysoikeus eivät ole välttämättä sama asia. Kysy, onko jollakin erillinen oikeus ohittaa tai keskeyttää prosessi. Jos näihin ei löydy vastausta, älä päättele hallintomallia pelkästä markkinointisanasta.

Viive voi antaa aikaa, mutta ei takaa poistumista

Päivitysviive eli timelock tarkoittaa tavallisesti sitä, että ilmoitetun toimen ja sen toteutuksen välissä on odotusaika. Tarkista kyseisen järjestelmän säännöistä, mihin toimiin viive todella soveltuu, mistä ajastin alkaa ja onko olemassa poikkeus- tai ohitusoikeuksia. Ethereum.org esittää timelockin eräänä tapana lieventää päivitysten hallintariskiä. 15

Viiveestä on käyttäjälle hyötyä vain, jos hän saa tiedon ja pystyy reagoimaan omaan tilanteeseensa. Kysy esimerkiksi, mitä kanavaa pitäisi seurata, voiko noston tehdä odotusaikana ja voiko jokin muu sopimuksen ehto tai markkinatilanne estää noston. Älä oleta, että viive merkitsee automaattista ilmoitusta tai varmaa mahdollisuutta poistua.

Merkitystä on myös sillä, voiko viivettä tai sitä hallitsevaa tahoa myöhemmin muuttaa. Jos ohjeesta ei käy ilmi, mitä tapahtuu kiireellisessä poikkeustilanteessa, sekin on kysymys palvelulle. Yksittäisen asetuksen numero ilman oikeuksien kokonaiskuvaa ei riitä kertomaan koko riskistä.

Havainnollistava esimerkki: sama osoite, eri logiikka

Kuvitellaan palvelu, jossa käyttäjä tallettaa varoja proxy-sopimuksen kautta. Palvelu kertoo dokumentaatiossaan, että määrätty hallintataho voi vaihtaa logiikkasopimuksen viiveen jälkeen. Käyttäjä tallentaa sopimuksen osoitteen ja tarkistaa, mistä tulevat päivitykset ilmoitetaan.

Myöhemmin hallintataho ehdottaa uutta logiikkaa. Vaikka käyttäjän asiointiosoite pysyy samana, tulevien toimintojen ehdot voivat muuttua, jos päivitys toteutetaan. Käyttäjän kannalta olennainen kysymys ei ole vain, pysyikö osoite samana, vaan myös, mitä uusi logiikka tekee olemassa oleville talletuksille. Esimerkki kuvaa mahdollista rakennetta, ei todellista palvelua tai toteutunutta muutosta. 15

Ennen päätöstä käyttäjä vertaa ehdotettua muutosta dokumentaatioon, tarkistaa mahdollisen voimaantuloajan ja selvittää, mitä nostoihin sovelletaan. Jos teknistä sisältöä ei voi itsenäisesti arvioida, ulkopuolinen asiantuntija voi auttaa lukemisessa. Auditointiraportti voi olla yksi lähde, mutta tarkista, mitä sopimusversiota ja mitä osia raportti koskee. Vanhan version tarkastus ei sellaisenaan todista uuden logiikan turvallisuutta.

Miten tarkistat väitteen käytännössä?

Varmista ensin, että lähde koskee oikeaa verkkoa ja sopimusosoitetta. Vertaa palvelun dokumentaatiota kyseisen verkon lohkoketjuselaimessa näkyviin sopimustietoihin. Osa selaimista näyttää välityssopimuksen tai logiikan tiedot, mutta näkymät ja tunnistustavat vaihtelevat. Näkyvä merkintä ei ole riippumaton turvatakuu, eikä puuttuva merkintä osoita, ettei päivitysmahdollisuutta ole.

Jos lähdekoodi on nähtävissä, etsi dokumentaation mainitsemat hallintatoiminnot ja niitä rajoittavat ehdot. Samalla on tarkistettava, mikä taho hallitsee oikeuksien haltijaa. Tämä saattaa vaatia usean sopimuksen tutkimista eikä ole aloittelijalle välttämättä yksiselitteistä. Älä suorita hallintatoimintoja tai allekirjoita tapahtumia pelkän tarkastelun vuoksi.

Kirjaa tarkistuksen ajankohta ja lähteet. Hallinta voi muuttua myöhemmin, joten vanha kuvakaappaus osoittaa korkeintaan, mitä tarkistuksessa näkyi silloin. Seuraa sen tuotteen tiedotteita, jonka sopimukseen varoja on talletettu, ja vertaa olennaisia muutoksia alkuperäiseen päätökseesi.

Entä jos osat ovat eri paikoissa?

Yksittäisen sopimuksen tarkastaminen ei välttämättä vastaa koko palvelua koskevaan kysymykseen. Palvelussa voi olla talletukselle oma sopimus, varojen käsittelylle toinen ja hallinnolle kolmas. Kirjaa, mistä dokumentista kukin osoite löytyi ja mikä sen kerrottu tehtävä on. Jos dokumentaatio käsittelee vanhaa käyttöönottoa, vertaa osoitteet siihen, mitä itse olet käyttämässä.

Pyydä tarvittaessa selkeä vastaus esimerkiksi näin: ”Mikä sopimus käsittelee tämän tuotteen talletukseni ja kuka voi muuttaa sen toimintaa? Koskeeko viive jokaista päivitystä, ja voiko joku ohittaa sen?” Pyydä samalla viittaus dokumentaatioon tai ketjussa varmennettavissa olevaan tietoon. Tukivastaus voi auttaa löytämään lähteen, mutta se ei yksin korvaa teknistä tarkastusta.

Jos vastaus luettelee pelkkiä organisaatioiden nimiä, selvitä vielä, millä teknisellä oikeudella kukin toimii. Jos vastaus taas sisältää vain osoitteita, kysy, ketkä niistä käytännössä vastaavat. Päätösvalta on helpompi ymmärtää, kun sekä tekninen valtuus että sitä käyttävä taho on tunnistettu.

Miten suhtaudut keskeneräiseen selvitykseen?

Kaikkia yksityiskohtia ei tarvitse osata itse ohjelmoida, jotta osaa tunnistaa puuttuvan vastauksen. Voit jättää talletuksen tekemättä, kunnes valtuudet ja niiden vaikutukset ovat ymmärrettävissä. Jos sinulla on jo varoja palvelussa, selvitä ensin oman sopimuksesi nykyiset ehdot ja mahdolliset nostorajoitukset. Tämä ei ole kehotus tehdä kiireistä siirtoa, vaan muistutus verrata päätöstä nimenomaan omaan tilanteeseen.

Usein kysyttyä

Onko päivitettävä sopimus automaattisesti huono?

Ei. Päivitysmahdollisuudella voidaan esimerkiksi korjata ohjelmistovirheitä tai lisätä toimintoja, mutta sama valta luo riippuvuuden sitä käyttävistä tahoista. Ethereum.org käsittelee päivitettävyyden sekä hyötyjä että siihen liittyviä riskejä. 15 Ratkaisevaa on, mitä valtuuksia kyseisessä järjestelmässä on ja hyväksytkö niiden seuraukset.

Riittääkö, että projekti sanoo luopuneensa admin-avaimesta?

Ei ilman tarkempaa selvitystä. Kysy, mistä oikeudesta luovuttiin, missä sopimuksessa ja voiko jokin toinen rooli edelleen muuttaa logiikkaa tai valtuuksia. Lausuma voi koskea vain yhtä osaa kokonaisuudesta. Tarvittaessa pyydä asiantuntijaa tarkistamaan väite juuri sen osoitteen ja verkon osalta, jota käytät.

Voiko päivitys vaikuttaa jo talletettuihin varoihin?

Voi, jos talletuksen käsittely tai nostaminen riippuu muutettavasta logiikasta. Vaikutusta ei voi päätellä yleisesti: se riippuu sopimusrakenteesta ja uudesta toteutuksesta. Jos et löydä vastausta, kysy mitä tapahtuu nykyisille talletuksille ja millä ehdoilla ne ovat nostettavissa mahdollisen muutoksen jälkeen. 15

Päätöksen ydin on yksinkertainen: tarkista, kuka voi muuttaa mitäkin ja millä menettelyllä. Jos vastaus jää epäselväksi, myös se on olennainen tieto ennen varojen sitomista.