Smart Contract Audits: Veiligheid voor Spelers
Lokakuussa 2024 yksi asiakas lähetti minulle linkin uuteen kasinoon, jonka markkinoinnissa vakuutettiin ”auditoidut älysopimukset” -lupauksilla. Sivuston etusivulla oli kolme logoa – CertiK, Hacken ja PeckShield. Pyysin nähdä varsinaiset auditointiraportit. Yksi linkeistä johti kahden vuoden vanhaan raporttiin, toinen rikkinäiselle sivulle, kolmas ei ollut linkki vaan kuva. Tämä on tyypillinen kuvio: auditointi-merkki on markkinointiväline ennemmin kuin todistus, eikä useimmilla pelaajilla ole tapaa tarkistaa sitä.
Älysopimusten auditointi on prosessi, jossa kolmannen osapuolen turvallisuusyritys käy läpi sopimuksen koodin, etsii haavoittuvuuksia ja antaa raportin löydöksistä. Hyvä auditointi voi maksaa 5 000-30 000 dollaria yhdestä sopimuksesta, ja monimutkaisemmissa tapauksissa hinta voi nousta sadoiksi tuhansiksi. Tämä on syy, miksi vain vakavasti otettavat alustat tilaavat oikean auditin – pinnallinen merkki saadaan halvemmalla.
Tässä artikkelissa käyn läpi, mitä auditointi todellisuudessa kattaa, mitkä yritykset tekevät sitä luotettavasti, miten raportin lukee, ja mitä auditointi ei takaa. Lopussa annan käytännön tarkistuslistan, jonka voit käydä läpi minkä tahansa kasinoauditin yhteydessä.
Luota tekniikkaan ja tutustu aloitussivuun.
Mitä auditointi käytännössä kattaa
Älysopimuksen auditointi koostuu tyypillisesti viidestä vaiheesta. Ensimmäinen on staattinen analyysi, jossa työkalut kuten Slither tai Mythril käyvät koodin läpi automaattisesti ja merkitsevät tunnetut haavoittuvuusmallit – reentrancy, integer overflow, access control -ongelmat. Toinen on käsin tehty koodikatselmus, jossa auditointitiimi lukee jokaisen rivin ja tutkii loogiset virheet, joita työkalut eivät löydä.
Kolmas vaihe on dynaaminen testaus – fuzzing – jossa sopimusta ajetaan satunnaisilla syötteillä etsien tilanteita, joissa se käyttäytyy odottamattomasti. Neljäs on formal verification, jossa matemaattisesti todistetaan, että sopimus käyttäytyy spesifikaation mukaan tietyissä rajatuissa tapauksissa. Viides on hyökkäysmallinnus, jossa tiimi yrittää aktiivisesti murtaa sopimuksen erilaisilla strategioilla.
Älysopimukset itsessään lisäävät transaktioiden läpinäkyvyyttä noin 40 prosenttia verrattuna perinteisiin maksujärjestelmiin, mutta tämä ei tarkoita, että ne olisivat automaattisesti turvallisia. Avoin koodi tarkoittaa, että hyökkääjätkin näkevät logiikan – jos haavoittuvuus jää, se löydetään yleensä nopeasti. Hyvin tehty auditointi on siksi kriittinen ennen sopimuksen julkaisua mainnetiin.
Käytännössä auditointi tuottaa raportin, jossa löydökset luokitellaan vakavuuden mukaan: critical, high, medium, low, informational. Vakavin haavoittuvuus voi mahdollistaa kassan tyhjentämisen yhdellä transaktiolla. Lievin voi olla tyylillinen huomautus tai gas-optimoinnin ehdotus. Pelaajan kannalta tärkeintä on, että critical- ja high-tason löydökset on korjattu ja vahvistettu uudelleen-auditoinnissa ennen sopimuksen ottamista käyttöön.
Vakavasti otettavat auditointiyritykset 2026
Markkinoilla on noin tusina yritystä, joiden työ on alalla vakiintuneesti hyväksyttyä. CertiK on yksi suurimpia, ja sen raportit ovat tunnettuja perusteellisuudesta. Yhtiön Skynet-järjestelmä myös valvoo sopimuksia auditoinnin jälkeen reaaliaikaisesti – tämä on poikkeuksellista, koska useimmat auditointiyritykset jättävät asiakkaan oman onnensa nojaan raportin valmistuttua.
Trail of Bits, OpenZeppelin ja ConsenSys Diligence ovat yhdysvaltalaisia ja teknisesti syvällisiä. Niiden raportit ovat usein lyhyempiä ja tiukempia – he keskittyvät kriittisiin asioihin eivätkä raportoi tyylillisiä löydöksiä yhtä laajasti kuin CertiK. Hacken on ukrainalainen yritys, jolla on vahva maine erityisesti DeFi- ja peli-sopimusten auditoinnissa.
PeckShield ja SlowMist ovat aasialaisia auditointiyrityksiä, joiden työ on alalla arvostettua. Erityisesti SlowMistin julkinen tietoturvatutkimus – myös hyökkäysten jälkianalyysi – on jatkuvaa korkealaatuista työtä. Quantstamp on toinen vakiintunut nimi, joka on ollut alalla ensimmäisten joukossa.
Pelaajan kannalta tärkeintä on, että auditointiyritys julkaisee koko raportin. Useat alustat ladataan vain ”audit summary” -dokumentin, joka kertoo, että auditointi on tehty, mutta ei näytä löydöksiä. Tämä on punainen lippu – vakavasti otettava alusta julkaisee koko raportin, mukaan lukien kaikki critical- ja high-tason löydökset ja niiden korjaukset.
Olen pitänyt itse listaa noin 20 alustasta, joiden auditointiraportit olen lukenut alusta loppuun. Ero hyvän ja huonon auditoijan välillä on selvä – hyvä raportti näyttää 15-40 löydöstä, joista 2-5 on kriittistä, ja kaikki on korjattu. Huonon auditoijan raportti näyttää 0-3 lievää löydöstä, ja kriittisiä ei mainita lainkaan. Tämä on usein merkki siitä, että auditointi on ollut pintapuolinen tai että pelialustan tiimi ja auditoija ovat olleet liian läheisessä yhteydessä keskenään.
Raportin lukeminen pelaajan näkökulmasta
Tyypillinen auditointiraportti on 30-80 sivua. Pelaajalla ei tarvitse olla valmiuksia lukea koko dokumenttia, mutta muutamalla minuutilla voi varmistaa olennaiset asiat. Aloita lukemalla raportin ensimmäinen sivu, joka sisältää tiivistelmän – milloin auditointi tehtiin, mille version sopimuksesta, mitä se kattoi ja mikä oli lopputulos.
Tarkista päivämäärä. Auditointi vanhenee – jos sopimusta on muutettu auditin jälkeen, raportti ei enää koske nykyistä versiota. Vakavasti otettavat alustat tilaavat uuden auditin jokaisen merkittävän päivityksen yhteydessä. Jos viimeisin auditointi on yli 12 kuukautta vanha, pelaajan kannattaa olla varovainen.
Toinen tärkeä asia on, mitä auditointi kattoi. Raportti listaa tarkasti, mitkä sopimustiedostot ovat olleet auditoinnin kohteena. Jos kasino käyttää 12 sopimusta, mutta auditoitu on vain kolme, kahdeksan jää ulkopuolelle. Tämä on yleinen tapa luoda harhakuva – vain pieni osa järjestelmästä on todella auditoitu.
Kolmas tarkistuskohta on löydösten korjaustila. Hyvä raportti listaa jokaisen löydöksen ja sen korjaustilan: ”Fixed”, ”Acknowledged” tai ”Won’t fix”. Critical- ja high-tason löydökset, joita ei ole korjattu vaan vain ”tunnustettu”, ovat punainen lippu. Tämä tarkoittaa, että alusta tietää haavoittuvuudesta mutta ei ole korjannut sitä.
Neljäs kohta on, mille verkolle ja mille osoitteelle sopimus on. Auditointi koskee tiettyä bytecode-versiota tietyssä osoitteessa. Sopimus, jota nyt käytetään tuotannossa, voi olla aivan eri kuin auditoitu – varsinkin jos sitä on päivitetty proxy-mallin kautta. Vertaa auditin osoite ja nykyinen tuotantosopimus. Etherscanissa voit käyttää ”Read Contract” -toimintoa varmistaaksesi versionumeron.
Mitä auditointi ei takaa
Tämä on osa-alue, jossa monet pelaajat erehtyvät. Auditointi ei takaa, että sopimus on turvallinen – se vain tarkoittaa, että tietty tiimi on käynyt läpi koodin tiettynä ajankohtana ja tehnyt parhaansa haavoittuvuuksien löytämisessä. Useat suuret hyökkäykset ovat tapahtuneet auditoiduille sopimuksille, koska auditointi ei voi löytää kaikkia mahdollisia ongelmia.
Auditointi on perusta, jolle provably fair periaatteet rakentuvat.
Toinen rajoite on, että auditointi koskee yleensä vain teknistä turvallisuutta, ei pelilogiikan rehellisyyttä. Sopimus voi olla teknisesti haavoittumaton mutta silti pyörittää peliä, jossa huoneen etu on huomattavasti suurempi kuin alusta väittää. Provably fair -mekanismit voivat olla auditoitu, mutta itse RNG-lähde voi olla haavoittuva tai ennakoitava – tämän tunnistaminen vaatii erikseen tilattua peliarvioita, ei vain koodikatselmusta.
Kolmas rajoite on, että auditointi ei kata operaattorin riskiä. Vaikka sopimus olisi täydellinen, alustan ylläpitäjillä voi olla admin-oikeudet, joilla he voivat muuttaa sopimusta tai jäädyttää varat. Tämä on usein piilotettu sopimuksen syvyyksiin, eikä jokainen auditointi nosta sitä esille riittävän selvästi. Lue raportti läpi katsoen erityisesti ”centralization risks” -osiota.
Neljäs ja viimeinen huomio. Auditointi ei suojaa social engineering -hyökkäyksiltä, lompakon kompromiseilta tai uudemmilta hyökkäysvektoreilta, joita ei tunnettu auditin tekoaikana. Tämä on yksi syy, miksi MEV-suojaus on noussut tärkeämmäksi 2024-2026 – kyseessä on hyökkäystyyppi, joka ei kuulu perinteisen auditin kattavuusalueelle. Lisätietoa MEV-suojauksesta löydät artikkelistani MEV-suojaus Ethereum-vedonlyönnissä, jossa avaan tämän erillisen turva-alueen kokonaisuudessaan.
Pitääkö pelaajan itse osata lukea auditointiraportti?
Pinnallinen tarkistus – päivämäärä, kattavuus, korjaustila – onnistuu kymmenessä minuutissa kenenkään sähköisesti lukutaitoisen henkilön voimin. Syvempi tekninen analyysi vaatii ohjelmointiosaamista. Useimmille pelaajille pinnallinen tarkistus on riittävä, ja se erottaa jo huijausalustat vakavasti otettavista.
Mistä löydän alustan auditointiraportin?
Vakavasti otettavat alustat julkaisevat raportin oman sivustonsa security-osiossa, ja auditointiyritys yleensä myös julkaisee sen omalla sivustollaan. Jos linkkiä ei löydy, lähetä asiakaspalveluun viesti ja pyydä raporttia. Jos sitä ei toimiteta tai linkki on rikki, se on syy harkita uudelleen.
Onko useammat auditoinnit aina parempi kuin yksi?
Yleensä kyllä, mutta laatu on tärkeämpi kuin määrä. Yksi tarkka auditointi luotettavalta yritykseltä on parempi kuin kolme pintapuolista pienemmiltä toimijoilta. Useamman auditoinnin tilaaminen on myös hyvä signaali siitä, että alusta on valmis maksamaan turvallisuudesta – yksittäinen vakava auditi maksaa helposti yli 20 000 dollaria.
