Cardano kirjaa siirrot niin sanotulla eUTXO-mallilla (extended unspent transaction output eli laajennettu käyttämätön transaktiotuloste). Se on yksi tärkeimmistä syistä siihen, miksi Cardano toimii teknisesti eri tavalla kuin moni muu älysopimusketju – etenkin Ethereum. Vaikka molemmat ovat lohkoketjuja, joilla voi ajaa älysopimuksia, niiden tapa tallentaa varat ja tilatieto on pohjimmiltaan erilainen. Tässä oppaassa eUTXO-malli selitetään selkokielellä, ilman esitietoja, ja verrataan sitä Ethereumin tilipohjaiseen malliin konkreettisin esimerkein.
Mitä eUTXO-malli tarkoittaa?
eUTXO on kirjanpitomalli eli tapa, jolla lohkoketju pitää kirjaa siitä, kuka omistaa mitäkin ja miten varat liikkuvat. Cardanon malli perustuu Bitcoinilta peräisin olevaan UTXO-malliin, jota on laajennettu niin, että sen päälle voidaan rakentaa monimutkaisia älysopimuksia. Lyhenteen jokainen osa kuvaa jotain olennaista:
- U = unspent (käyttämätön): kyse on tulosteista, joita ei ole vielä käytetty.
- TXO = transaction output (transaktiotuloste): jokainen siirto tuottaa uusia tulosteita, jotka sisältävät arvon ja lukon.
- e = extended (laajennettu): Cardano on lisännyt malliin ominaisuuksia, joiden avulla tulosteisiin voidaan liittää dataa ja ohjelmakoodia.
Yksinkertaisimmillaan eUTXO-malli tarkoittaa, että varat eivät ole ”saldona tilillä”, vaan ne ovat erillisinä paloina – käyttämättöminä tulosteina – jotka kukin voidaan käyttää vain kokonaan ja vain kerran. Tämä pieni periaate-ero muuttaa yllättävän paljon siinä, miten koko verkko käyttäytyy.
Pikafaktat
- Mikä: eUTXO = extended unspent transaction output (laajennettu käyttämätön transaktiotuloste)
- Perusta: Bitcoinin UTXO-malli, jota on laajennettu älysopimuksia varten
- Kolme lisäosaa: datum (tilatieto), redeemer (avausarvo) ja transaktion konteksti
- Tila: elää tulosteen sisällä; päivitys = vanha tuloste kulutetaan, uusi luodaan
- Validointi: paikallinen – riippuu vain transaktiosta ja sen syötteistä
- Vahvuus: determinismi (kulu ja lopputulos tiedetään etukäteen) ja rinnakkaisuus
- Haaste: samanaikaisuus jaetussa tilassa (esim. DEXit)
- Käyttöön: Alonzo-päivitys 12.9.2021; parannukset Vasil-päivityksessä (2022)
UTXO lyhyesti – perintö Bitcoinilta
Jotta eUTXO:n ymmärtää, kannattaa ensin katsoa alkuperäistä UTXO-mallia, jonka Bitcoin toi käyttöön. UTXO-mallissa lompakon ”saldo” ei ole mikään yksittäinen luku, vaan summa kaikista käyttämättömistä tulosteista, jotka osoitteesi voi avata. Hyvä vertaus on käteinen lompakossa: sinulla ei ole yhtä numeroa, vaan joukko seteleitä ja kolikoita.
Kun teet siirron, kulutat (käytät) yhden tai useamman käyttämättömän tulosteen kokonaan ja luot uusia tulosteita. Jos sinulla on 50 ADA:n tuloste ja haluat lähettää 30 ADA:a, tuloste kulutetaan kokonaan: 30 ADA:a menee vastaanottajalle ja loput palautuvat sinulle uutena tulosteena (miinus siirtokulu) – aivan kuten saat vaihtorahaa, kun maksat 50 euron setelillä 30 euron ostoksen. Jokainen verkon solmu ylläpitää luetteloa kaikista käyttämättömistä tulosteista, jota kutsutaan UTXO-joukoksi.
Bitcoinin alkuperäinen UTXO-malli on turvallinen ja ennustettava, mutta se on tahallaan hyvin rajoittunut: tulosteet sisältävät käytännössä vain arvon ja yksinkertaisen lukon (julkisen avaimen). Se ei riitä monimutkaiseen ohjelmointiin, jota älysopimukset vaativat.
Mikä tekee UTXO-mallista ”laajennetun”?
Cardanon kehittäjät laajensivat mallia kahdella keskeisellä tavalla. Ensinnäkin osoitteet yleistettiin: lukkona ei tarvitse olla pelkkä julkinen avain, vaan se voi olla mielivaltaista ohjelmalogiikkaa eli skripti. Toiseksi tulosteet voivat kantaa lähes mielivaltaista dataa arvon ja osoitteen lisäksi, mikä antaa skripteille paikan säilöä tilatietoa. Käytännössä laajennus koostuu kolmesta osasta, jotka on hyvä tuntea.
Datum – tilatieto tulosteen sisällä
Datum on tulosteeseen liitetty datapala. Se tallentaa älysopimuksen ”tilan” eli esimerkiksi tiedon siitä, kuka saa avata tulosteen tai millä ehdoilla. Koska tila elää tulosteen sisällä, sitä ei voi muuttaa suoraan: tilan päivittäminen tarkoittaa, että vanha tuloste kulutetaan ja luodaan uusi tuloste päivitetyllä datumilla.
Redeemer – avain, joka avaa lukon
Redeemer on arvo, jonka transaktio antaa skriptille silloin, kun se yrittää käyttää tulostetta. Se toimii kuin perustelu tai avain: skripti saa redeemerin ja datumin, ja niiden perusteella se päättää, saako tulosteen avata. Jokaiselle skriptillä lukitulle syötteelle annetaan oma redeemer.
Konteksti – näkymä koko transaktioon
Lisäksi skripti näkee transaktion kontekstin eli tiedot validoitavasta transaktiosta: sen syötteet, tulosteet ja muut ehdot. Yhdessä datum, redeemer ja konteksti antavat skriptille riittävästi tietoa vastatakseen yksinkertaiseen kysymykseen: hyväksytäänkö tämä käyttö vai ei – kyllä vai ei. Tämä ”kyllä/ei”-luonne on olennainen ero Ethereumiin, jossa sopimus voi suorittaa monivaiheista logiikkaa ja muuttaa tilaa matkan varrella.
Miksi Cardano ei toimi kuten Ethereum
Ethereum ja Cardano edustavat kahta eri koulukuntaa siinä, miten lohkoketju tallentaa varat ja tilan. Ero ei ole pelkkä tekninen yksityiskohta, vaan se vaikuttaa sovellusten suunnitteluun, kuluihin, ennustettavuuteen ja turvallisuuteen. Molempien ketjujen laajempaa vertailua käsitellään erikseen oppaassa Cardano vs Ethereum.
Ethereumin tilipohjainen malli
Ethereum käyttää tilipohjaista mallia (account-based model), joka muistuttaa pankkitiliä. Jokaisella osoitteella on saldo, ja älysopimuksilla on oma muokattava muisti (storage), johon tila tallennetaan. Kun teet siirron tai kutsut sopimusta, verkko lukee ja kirjoittaa näitä saldoja ja muistipaikkoja. Malli on intuitiivinen ja joustava: sopimukset voivat kutsua toisiaan vapaasti ja muuttaa jaettua tilaa kesken suorituksen.
Joustavuudella on hintansa. Koska monta transaktiota voi koskea samaa muokattavaa tilaa samanaikaisesti, lopputulos riippuu siitä, missä järjestyksessä ne päätyvät lohkoon. Transaktio voi myös epäonnistua kesken skriptin suorituksen – esimerkiksi loppuun käyvän kaasun (gas) tai muuttuneen tilan vuoksi – ja käyttäjä maksaa silti osan kuluista.
Cardanon eUTXO-malli
Cardanossa ei ole muokattavia tilejä, vaan joukko tulosteita. Transaktion kelpoisuus riippuu vain itse transaktiosta ja sen syötteistä – ei siitä, mitä muualla verkossa tapahtuu samaan aikaan. Tämä paikallinen validointi tekee lopputuloksesta ennustettavan: lompakko voi tarkistaa jo ennen lähettämistä, meneekö transaktio läpi ja paljonko se maksaa. Validoituva transaktio ei myöskään voi epäonnistua kesken skriptin suorituksen, kuten tilipohjaisessa mallissa.
Cardanon eUTXO otettiin käyttöön Alonzo-päivityksessä 12.9.2021, joka toi verkkoon samalla Plutus-älysopimukset. Mallin ansiosta tulosteet voivat myös kantaa useita eri omaisuuseriä – ADA:n lisäksi natiivitokeneita – ilman erillisiä token-sopimuksia.
Vertailu
| Ominaisuus | Cardano – eUTXO-malli | Ethereum – tilipohjainen malli |
|---|---|---|
| Varojen esitys | Erilliset käyttämättömät tulosteet | Muokattava saldo tilillä |
| Tila | Tulosteen sisällä (datum) | Sopimuksen muokattavassa muistissa |
| Tilan päivitys | Kuluta vanha, luo uusi tuloste | Kirjoitetaan suoraan muistiin |
| Validointi | Paikallinen – vain transaktio ja syötteet | Riippuu koko ketjun tilasta |
| Determinismi | Kyllä – kulu ja tulos tiedossa etukäteen | Rajallinen – tulos riippuu järjestyksestä |
| Epäonnistuminen kesken ajon | Ei validoituvalle transaktiolle | Mahdollista (esim. kaasu loppuu) |
| Rinnakkaisuus | Vahva riippumattomille transaktioille | Heikompi jaetun tilan vuoksi |
| Jaettu tila | Vaatii batchereita / tilan jakamista | Luontevaa suoraan |
Determinismi – näet lopputuloksen etukäteen
Determinismi tarkoittaa, että saman syötteen tuottaa aina sama lopputulos. eUTXO-mallissa transaktion vaikutus riippuu vain siitä, mitä tulosteita se kuluttaa ja luo. Siksi lompakko tai sovellus voi laskea etukäteen sekä siirtokulun että sen, onnistuuko transaktio.
Tilipohjaisessa mallissa näin ei ole, koska saldot ja sopimusten muisti muuttuvat jatkuvasti muiden käyttäjien toimien myötä. Käytännön hyötyjä Cardanon determinismistä ovat muun muassa:
- Ennustettavat kulut: siirtokulu tiedetään ennen allekirjoitusta, eikä se heilahtele täytettäessä lohkoa.
- Ei yllätysepäonnistumisia: jos transaktio validoituu, se joko menee läpi tai sitä ei edes voi lähettää – validoituvasta transaktiosta ei makseta turhaan epäonnistuneesta ajosta.
- Helpompi tarkistaa: koska skriptit näkevät vain rajatun kontekstin eivätkä koko ketjun tilaa, älysopimusten käyttäytymistä on helpompi ennakoida ja auditoida.
Ainoa tapa, jolla jo rakennettu validi transaktio voi ”epäonnistua”, on se, että joku toinen transaktio ehtii kuluttaa saman syötteen ensin. Silloin transaktio ei pääse lohkoon lainkaan – mutta siitä ei myöskään veloiteta.
Samanaikaisuus – eUTXO:n tunnetuin haaste
eUTXO-mallin kääntöpuoli on samanaikaisuus (concurrency). Koska jokaisen tulosteen voi käyttää vain kerran, usean käyttäjän yrittäessä käyttää samaa tulostetta samaan aikaan vain yksi onnistuu ja muut joutuvat yrittämään uudelleen. Tämä näkyy etenkin sovelluksissa, joissa on yksi suuri jaettu tila – klassinen esimerkki on hajautettu pörssi (DEX), jonka likviditeettipooli on yhdessä tulosteessa.
Cardanon varhaisina kuukausina tämä aiheutti otsikoita: testiverkon ensimmäinen DEX, Minswap, törmäsi juuri samanaikaisuusongelmaan. Kyse ei kuitenkaan ole virheestä vaan suunnittelun eroista. Tilipohjaisten ketjujen sovelluslogiikkaa ei voi siirtää sellaisenaan eUTXO:n päälle.
Näin kehittäjät ratkaisevat ongelman
Cardanon ekosysteemissä on kehitetty useita vakiintuneita ratkaisuja, joilla jaettu tila saadaan toimimaan sujuvasti:
- Batcherit (erän koostajat): käyttäjät jättävät tilauksensa omiin tulosteisiinsa, ja erillinen taho kokoaa ne yhteen transaktioon, joka päivittää jaetun tilan kerralla.
- Tilan jakaminen: sovellus pilkkoo yhden ison tilan moneen rinnakkaiseen tulosteeseen, jolloin useampi transaktio voi edetä yhtä aikaa.
- Referenssisyötteet ja inline-datumit: Vasil-päivitys (2022) toi CIP-31- ja CIP-32-parannukset, joiden ansiosta tuloste voidaan lukea sitä kuluttamatta. Näin esimerkiksi hintatieto tai oraakkelidata ei enää rajoita sovellusta yhteen toimintoon lohkoa kohden.
Näiden ratkaisujen taustalla on sama Proof of Stake -perusta, jota Ouroboros-protokolla hoitaa – samanaikaisuus on sovellustason suunnittelukysymys, ei konsensuksen ongelma.
eUTXO-mallin hyödyt ja rajoitukset
Kuten jokaisella teknisellä valinnalla, eUTXO-mallilla on sekä vahvuuksia että kompromisseja. Keskeiset hyödyt ovat:
- Ennustettavuus: kulut ja lopputulos tiedetään ennen lähettämistä.
- Turvallisuus: rajattu konteksti ja paikallinen validointi pienentävät yllättävän käytöksen riskiä.
- Rinnakkaisuus: toisistaan riippumattomat transaktiot voidaan validoida samanaikaisesti.
- Monen omaisuuserän tuki: tulosteet voivat kantaa useita tokeneita ilman erillisiä sopimuksia.
Rajoituksia ovat puolestaan:
- Erilainen ajattelutapa: kehittäjien on suunniteltava sovellukset tulosteille, ei muokattaville tileille.
- Samanaikaisuus jaetussa tilassa: vaatii erillisiä ratkaisuja, kuten batchereita.
- Vähemmän valmiita malleja: Ethereumin työkaluja ja koodia ei voi käyttää sellaisenaan.
Kenelle eUTXO-mallin ymmärtäminen on hyödyksi
Tavallisen käyttäjän ei tarvitse ajatella datumeja tai redeemereitä päivittäisessä käytössä – lompakko hoitaa ne puolestasi, ja ADA:n lähettäminen tuntuu yhtä yksinkertaiselta kuin muillakin ketjuilla. Mallin perusteiden tunteminen auttaa silti ymmärtämään, miksi Cardanon siirtokulut ovat ennustettavia, miksi jokin sovellus pyytää ”kokoamaan tilauksen” tai miksi DEXit käyttäytyvät eri tavalla kuin Ethereumissa.
Erityisen hyödyllistä tämä on kehittäjille, sijoittajille, jotka haluavat arvioida eri ketjujen teknisiä eroja, ja kaikille, jotka haluavat ymmärtää, miksi Cardano on rakennettu niin kuin se on. Jos haluat ensin kerrata perusteet, tutustu siihen mikä Cardano (ADA) on ja miten Cardano-osoite toimii.
Vastuuvapauslauseke
Tämä artikkeli on tarkoitettu ainoastaan tiedoksi ja koulutustarkoituksiin. Se ei ole sijoitus-, vero- eikä muuta taloudellista neuvontaa eikä kehotus ostaa tai myydä kryptovaluuttoja. Kryptovaluuttoihin liittyy merkittäviä riskejä, ja niiden arvo voi vaihdella voimakkaasti. Tee aina oma selvityksesi ja huomioi, että lohkoketjuteknologia kehittyy jatkuvasti. Lisätietoa kryptovaroista ja niiden sääntelystä Suomessa antaa Finanssivalvonta, ja kuluttajan oikeuksista Kilpailu- ja kuluttajavirasto.
Lähteet
- Cardano Docs – The Extended UTXO (eUTXO) model
- Cardano Developer Portal – UTXO model
- IOG – Cardano’s extended UTXO accounting model
- IOG – Concurrency and all that: Cardano smart contracts and the eUTXO model
- Cexplorer – eUTXO model offers determinism to users
- Cardano Docs – Vasil upgrade (reference inputs, inline datums)
Usein kysytyt kysymykset (UKK)
Mitä eUTXO tarkoittaa?
eUTXO on lyhenne sanoista extended unspent transaction output eli laajennettu käyttämätön transaktiotuloste. Se on Cardanon kirjanpitomalli, jossa varat ovat erillisinä tulosteina ja jossa tulosteisiin voidaan liittää dataa ja ohjelmalogiikkaa älysopimuksia varten.
Miten eUTXO eroaa Ethereumin mallista?
Ethereum käyttää tilipohjaista mallia, jossa saldot ja sopimusten tila ovat muokattavia. Cardanon eUTXO:ssa varat ovat tulosteina, joita ei muuteta vaan kulutetaan ja luodaan uudelleen. Siksi Cardanon transaktiot ovat deterministisiä: kulu ja lopputulos tiedetään ennen lähettämistä.
Mitä datum ja redeemer tarkoittavat?
Datum on tulosteeseen liitetty datapala, joka tallentaa älysopimuksen tilan. Redeemer on arvo, jonka transaktio antaa skriptille tulostetta käytettäessä. Skripti päättää datumin, redeemerin ja transaktion kontekstin perusteella, saako tulosteen avata.
Mikä on Cardanon samanaikaisuusongelma?
Koska jokaisen tulosteen voi käyttää vain kerran, usean käyttäjän koskiessa samaan jaettuun tilaan vain yksi onnistuu kerralla. Kehittäjät ratkaisevat tämän esimerkiksi batchereilla, jotka kokoavat tilaukset yhteen transaktioon, sekä tilan jakamisella useaan tulosteeseen.
Milloin eUTXO otettiin käyttöön Cardanossa?
eUTXO-malli tuli Cardanon pääverkkoon Alonzo-päivityksessä 12.9.2021, joka toi samalla käyttöön Plutus-älysopimukset. Vasil-päivitys vuonna 2022 paransi mallia referenssisyötteillä ja inline-datumeilla.



