Kripto ir Web3 terminai

Išmanioji sutartis (smart contract)

Dar vadinama: smart contract, išmanusis kontraktas, išmaniosios sutartys, smartcontract, Solidity sutartis

Išmanioji sutartis (angl. smart contract) – tai blokų grandinėje įrašyta programa, kuri automatiškai vykdo iš anksto užprogramuotas taisykles, pvz., perveda žetonus, kai įvykdomos sąlygos. Jos kodo po paskelbimo dažniausiai negalima pakeisti, todėl klaida kode gali reikšti negrįžtamą lėšų praradimą.

Atnaujinta 2026 m. spalio 13 d.

Kas yra Išmanioji sutartis (smart contract)

Svarbiausia trumpai
  • 2016 m. birželio 17 d. per pasikartojančio iškvietimo (angl. reentrancy) klaidą iš The DAO išmaniosios sutarties išsiurbta per 3,6 mln. ETH; Ethereum tinklas dėl to 2016 m. liepos 20 d. buvo pakeistas bloke 1 920 000.
  • 2022 m. kovo 23 d. kompromitavus Ronin tilto validatorių raktus pavogta 173 600 ETH ir 25,5 mln. USDC.
  • 2023 m. kovo 13 d. Euler Finance skolinimo protokolas prarado apie 197 mln. USD per sutarties logikos klaidą; lėšos vėliau grąžintos.
  • FBI 2025 m. vasario 26 d. pranešė, kad apie 1,5 mlrd. USD vagystę iš Bybit biržos 2025 m. vasario 21 d. įvykdė Šiaurės Korėja; ataka nukreipta į daugiaparašės piniginės pasirašymo procesą.
  • ES Duomenų aktas (Reglamentas (ES) 2023/2854) 36 straipsniu nustatė esminius reikalavimus išmaniosioms sutartims, vykdančioms duomenų dalijimosi susitarimus, įskaitant saugaus nutraukimo galimybę; taikoma nuo 2025 m. rugsėjo 12 d.
  • Ethereum tinkle naujas blokas, kuriame vykdomos sutartys, sukuriamas kas 12 sekundžių.

Išmanioji sutartis (smart contract) išsamiai

Išmaniosios sutarties gyvavimo ciklas nuo kodo iki stebėsenosIšmaniosios sutarties kelias į gamybą1. SpecifikacijaTaisyklės irinvariantai2. KodasSolidity,testai3. AuditasĮrankiai +rankinė peržiūra4. DiegimasAdresasgrandinėje5. StebėsenaBug bounty,incidentų planasIncidentai, nuo kurių apsaugo kiekvienas žingsnis2016-06-17 The DAO – per 3,6 mln. ETH: reentrancy klaida (2–3 žingsnis)2022-03-23 Ronin – 173 600 ETH ir 25,5 mln. USDC: raktų valdymas (4–5 žingsnis)2023-03-13 Euler – apie 197 mln. USD: logikos klaida po pakeitimo (3 žingsnis)2025-02-21 Bybit – apie 1,5 mlrd. USD: pasirašymo sąsaja (4–5 žingsnis)
Penki išmaniosios sutarties gyvavimo ciklo žingsniai ir žinomi incidentai, kurių priežastys susijusios su konkrečiais žingsniais.

Išmanioji sutartis nėra sutartis teisine prasme – tai programinis kodas, kuris saugo lėšas ar duomenis ir pats vykdo taisykles. Sąvoka žinoma nuo 10-ojo dešimtmečio, bet praktiškai paplito su Ethereum tinklu, paleistu 2015 m. liepos 30 d. Iš išmaniųjų sutarčių sudaryti visi ERC-20 žetonai, stabiliosios monetos, NFT, DeFi protokolai ir DAO. Lietuviškai vartojami ir „išmanusis kontraktas“, ir „išmanioji sutartis“; paieškose dominuoja angliškas „smart contract“.

Kaip veikia išmanioji sutartis

  1. Kodas. Programuotojas parašo sutartį, dažniausiai Solidity kalba Ethereum suderinamiems tinklams (Ethereum, Polygon, Base) arba savomis kalbomis kitiems tinklams, pvz., TON.
  2. Kompiliavimas ir diegimas. Kodas kompiliuojamas į baitkodą, kuris viena operacija įrašomas į blokų grandinę. Sutartis gauna savo adresą.
  3. Iškvietimas. Naudotojas savo pinigine (pvz., MetaMask) iškviečia sutarties funkciją ir sumoka tinklo mokestį (angl. gas).
  4. Vykdymas. Kiekvienas tinklo mazgas įvykdo tą patį kodą ir gauna tą patį rezultatą. Jei sąlyga netenkinama, visa operacija atšaukiama.
  5. Būsena. Sutarties duomenys (likučiai, savininkai, nustatymai) saugomi grandinėje ir matomi visiems.

Išmaniosios sutartys versle: panaudojimo pavyzdžiai

PanaudojimasKą daro sutartisKam naudinga
Mokėjimų priėmimasPriima stabiliąją monetą, susieja su užsakymo numeriu, perveda į iždo piniginęEl. parduotuvėms, priimančioms kriptoturtą be tarpininko
Sąlyginis mokėjimas (angl. escrow)Laiko lėšas, kol abi šalys patvirtina pristatymąPrekyvietėms, laisvai samdomiems darbams
Bilietai ir sertifikataiIšleidžia NFT, riboja perpardavimą ar kainąRenginių organizatoriams, gamintojams (garantijos)
Lojalumo žetonaiIšleidžia ir sudegina taškus pagal pirkimusPrekių ženklams su partnerių tinklu
Išmokų paskirstymasAutomatiškai dalija pajamas tarp kelių gavėjų pagal procentusKūrėjams, bendriems projektams
BalsavimasSkaičiuoja balsus pagal žetonus, vykdo priimtą sprendimąDAO ir bendruomenėms
Dokumentų laiko žymosĮrašo dokumento maišos kodą ir laikąLogistikai, intelektinės nuosavybės įrodymams

Išmanioji sutartis ir teisinė sutartis: ar kodas yra sutartis

Lietuvos civilinis kodeksas atskiros „išmaniosios sutarties“ sąvokos neturi. Teisiškai saistantis yra šalių susitarimas, o kodas – jo vykdymo įrankis. Todėl verslo santykiuose rekomenduojama turėti įprastą rašytinę sutartį ar naudojimo sąlygas, kuriose nurodoma, kad atsiskaitymas vykdomas konkrečia išmaniąja sutartimi (adresu), kas atsako už kodo klaidas ir kaip sprendžiami ginčai. ES Duomenų aktas (Reglamentas (ES) 2023/2854) nuo 2025 m. rugsėjo 12 d. 36 straipsniu reikalauja, kad išmaniosios sutartys, vykdančios duomenų dalijimosi susitarimus, būtų patikimos, turėtų saugaus nutraukimo ar pertraukimo mechanizmą, duomenų archyvavimą ir prieigos kontrolę.

Žinomi išmaniųjų sutarčių incidentai: datos ir sumos

DataIncidentasNuostolisPriežastisPamoka
2016-06-17The DAOPer 3,6 mln. ETHPasikartojantis iškvietimas (reentrancy) funkcijoje „split“Pirmiausia keisti būseną, tik tada siųsti lėšas; naudoti reentrancy apsaugą
2022-03-23Ronin tiltas173 600 ETH ir 25,5 mln. USDCKompromituoti tilto validatorių raktaiRaktų paskirstymas tarp nepriklausomų šalių, stebėsena
2023-03-13Euler FinanceApie 197 mln. USD (vėliau grąžinta)Sutarties logikos klaida, išnaudota su žaibo paskola (angl. flash loan)Auditas po kiekvieno pakeitimo, ne tik pradinės versijos
2025-02-21BybitApie 1,5 mlrd. USDAtaka per daugiaparašės piniginės pasirašymo sąsają; FBI priskyrė Šiaurės KorėjaiTikrinti, ką pasirašai, nepriklausomai nuo sąsajos

Po The DAO atakos Vitalikas Buterinas Ethereum fondo tinklaraštyje 2016 m. birželio 17 d. patarė kūrėjams kol kas vengti sutarčių, kuriose laikoma daugiau nei apie 10 mln. USD vertės. Ši pamoka aktuali ir dabar: kuo didesnė suma sutartyje, tuo daugiau atakų ji pritraukia.

Išmaniosios sutarties auditas: kaip jis vyksta

Auditas – nepriklausoma kodo peržiūra prieš paskelbiant sutartį. Jis nesuteikia garantijos, bet sumažina tikimybę, kad akivaizdi klaida pateks į gamybinę aplinką.

  1. Specifikacija. Užsakovas aprašo, ką sutartis turi daryti ir ko neturi leisti (invariantai, pvz., „bendras likutis niekada neviršija įneštos sumos“).
  2. Automatiniai įrankiai. Statinė analizė (pvz., Slither), fuzzing testai (Foundry, Echidna) ieško žinomų pažeidžiamumų šablonų.
  3. Rankinė peržiūra. Bent du auditoriai nepriklausomai perskaito kodą eilutė po eilutės, ypač teisių valdymą, išorinius iškvietimus ir matematiką.
  4. Ataskaita. Radiniai skirstomi pagal svarbą (kritinis, aukštas, vidutinis, žemas, informacinis).
  5. Pataisymai ir pakartotinė peržiūra. Auditoriai patikrina, ar pataisymai nepridėjo naujų klaidų.
  6. Po paskelbimo. Klaidų premijų programa (angl. bug bounty), stebėsena ir aiškus incidento planas.
Dažna pažeidžiamumo rūšisKas nutinkaApsauga
Pasikartojantis iškvietimas (reentrancy)Išorinė sutartis iškviečia funkciją pakartotinai prieš atnaujinant likutįPatikrinimai–pakeitimai–sąveika tvarka, apsauginis modifikatorius
Prieigos kontrolės klaidaBet kas gali iškviesti administratoriaus funkcijąRolės, daugiaparašis administratorius, laiko užrakas
Orakulo manipuliacijaKaina paimama iš lengvai paveikiamo šaltinioPatikimi orakulai, laiko vidurkiai
Atnaujinamos sutarties rizikaAdministratorius gali pakeisti logikąLaiko užraktas, daugiaparašė kontrolė, viešas pranešimas
Apvalinimo ir tikslumo klaidosMaži nuokrypiai kartojami tūkstančius kartųInvariantų testai, fuzzing

Kaip patikrinti svetimą išmaniąją sutartį prieš ja naudojantis

Prieš priimdami naują žetoną, jungdamiesi prie DeFi protokolo ar suteikdami leidimą, verta per 10 minučių patikrinti šiuos dalykus:

  1. Ar kodas patvirtintas tinklo naršyklėje. Etherscan ar Polygonscan žymi sutartis, kurių šaltinio kodas paskelbtas ir sutampa su baitkodu. Nepatvirtintas kodas – raudona vėliava.
  2. Ar yra viešas auditas. Audito ataskaita turi nurodyti tą pačią sutarties versiją (commit ar adresą), kurią naudojate.
  3. Kas yra administratorius. Jei sutartį gali keisti vienas adresas, jūsų lėšų saugumas priklauso nuo vieno rakto. Geriau – daugiaparašė piniginė su laiko užraktu.
  4. Ar sutartis atnaujinama. Tarpinė (angl. proxy) sutartis leidžia pakeisti logiką; patikrinkite, kas ir per kiek laiko tai gali padaryti.
  5. Ar žetonas turi užšaldymo ar mokesčio funkcijų. Kai kurie žetonai ima mokestį už pervedimą ar leidžia savininkui užblokuoti adresus.
  6. Kokį leidimą prašoma suteikti. Suteikite leidimą tik reikiamai sumai ir vėliau jį atšaukite.

Ką turi turėti mokėjimų išmanioji sutartis el. parduotuvei

  • Užsakymo identifikatoriaus susiejimą su mokėjimu, kad sistema automatiškai pažymėtų užsakymą apmokėtu.
  • Leistinų žetonų sąrašą – pvz., tik MiCA atitinkantys USDC ir EURC, kad nebūtų priimami nežinomi žetonai.
  • Lėšų perkėlimą į daugiaparašę iždo piniginę, o ne laikymą pačioje sutartyje.
  • Grąžinimo funkciją, kurią gali inicijuoti tik įgaliotas administratorius.
  • Įvykių (angl. events) žurnalą, iš kurio apskaita gauna sumą, laiką ir operacijos maišos kodą.
  • Pristabdymo funkciją incidento atveju – tai atitinka ir ES Duomenų akto saugaus nutraukimo logiką.

Kada išmanioji sutartis verslui tinka, o kada ne

Tinka, kai: kelios nepriklausomos šalys turi pasitikėti tuo pačiu atsiskaitymu; taisyklės aiškios ir retai keičiasi; reikia atsiskaitymų visą parą ir tarptautiniu mastu; norima, kad bet kas galėtų patikrinti, kaip skirstomos lėšos.

Netinka, kai: taisyklės dažnai keičiasi ar reikalauja žmogaus sprendimo; tvarkomi asmens duomenys (jų negalima ištrinti iš grandinės); sumos mažos, o audito kaina didelė; visas procesas vyksta vienoje įmonėje. Dažnai geriausias sprendimas – naudoti jau audituotas standartines sutartis (pvz., ERC-20, ERC-721 iš atvirojo kodo bibliotekų) ar licencijuoto tarpininko paslaugą, o ne kurti savo logiką. Tokio principo verta laikytis ir kripto integracijų projektuose.

Ar išmaniajai sutarčiai taikomas MiCA

Pati sutartis – technologija, ne paslauga. Tačiau jei jūsų sutartis laiko klientų kriptoturtą, keičia jį ar išleidžia žetoną, kuris siūlomas visuomenei, gali būti taikomas MiCA reglamentas: saugojimo ar keitimo paslaugai reikia licencijos, viešam žetono pasiūlymui – baltosios knygos. Tai nėra investavimo rekomendacija – sutartis su lėšomis visada turi riziką.

Pavyzdys: savo išmanioji sutartis ar licencijuotas tarpininkas mokėjimams priimti

Prielaidos: el. parduotuvė per metus planuoja priimti 120 000 € stabiliosiomis monetomis. Lyginame dvejų metų sąnaudas. Kūrimo, audito ir tarpininko kainos yra prielaidos skaičiavimui – realios priklauso nuo pasiūlymų ir sutarties sudėtingumo.

Sąnaudos per 2 metusA. Sava išmanioji sutartisB. Licencijuotas tarpininkas
Sutarties kūrimas ir testai6 000 €0 €
Nepriklausomas auditas8 000 €0 €
Integracija su parduotuve3 000 €1 500 €
Tarpininko mokestis 1 % × 240 000 €0 €2 400 €
Konvertavimas į eurus per CASP 0,5 % × 240 000 €1 200 €įskaičiuota
Iš viso18 200 €3 900 €

Lūžio taškas: A pastoviosios sąnaudos (17 000 €) atsiperka tik tada, kai sutaupytas 0,5 % skirtumas (1 % − 0,5 %) jas padengia: 17 000 € / 0,005 = 3,4 mln. € apyvartos. Esant 120 000 € per metus, savos sutarties kūrimas finansiškai neatsiperka; jis prasmingas tik tada, kai reikia funkcijų, kurių tarpininkas neturi, pvz., automatinio pajamų dalijimo tarp kelių gavėjų.

Dažniausios klaidos

  1. Paskelbti sutartį be nepriklausomo audito, nes „kodas paprastas“. The DAO, Euler ir daugelis kitų incidentų prasidėjo nuo smulkios logikos klaidos.
  2. Audituoti tik pirmą versiją. Kiekvienas atnaujinimas gali įvesti naują pažeidžiamumą, todėl auditą reikia kartoti po pakeitimų.
  3. Laikyti administratoriaus raktą viename kompiuteryje. Administravimui naudokite daugiaparašę piniginę ir laiko užraktą.
  4. Rašyti asmens duomenis į sutarties būseną. Jie bus vieši ir neištrinami.
  5. Neturėti teisinės sutarties šalia kodo. Be jos neaišku, kas atsako už kodo klaidą ir kaip spręsti ginčą.
  6. Pasirašyti operaciją pasitikint tik sąsaja. Bybit incidentas parodė, kad sąsaja gali rodyti ne tai, ką iš tikrųjų pasirašote.
  7. Kurti savo žetono logiką, kai pakanka standartinės audituotos ERC-20 ar ERC-721 bibliotekos.

Išmanioji sutartis (smart contract) Lietuvoje

Lietuvoje išmaniųjų sutarčių atskiras įstatymas nereguliuoja: jos vertinamos pagal bendrąsias Civilinio kodekso nuostatas apie sandorius ir sutartis, o jei sutartis susijusi su kriptoturto paslaugomis ar viešu žetonų siūlymu – pagal MiCA ir Kriptoturto rinkų įstatymą Nr. XIV-2879, kurių priežiūrą vykdo Lietuvos bankas. Duomenų dalijimosi išmaniosioms sutartims nuo 2025 m. rugsėjo 12 d. taikomas ES Duomenų akto 36 straipsnis.

Lietuvos bankas savo LBChain bandomojoje aplinkoje (Hyperledger Fabric ir Corda) leido 11 įmonių iš 8 šalių išbandyti blokų grandinės sprendimus, įskaitant sutarčių logiką, prieš juos diegiant rinkoje. Kriptoturto, gauto per išmaniąsias sutartis, apmokestinimą aiškina VMI.

Susiję terminai

Ką darome šioje srityje
  • Įvertiname, ar jūsų užduočiai reikia savos išmaniosios sutarties, ar pakanka standartinės audituotos sutarties ar licencijuoto tarpininko.
  • Integruojame išmaniąsias sutartis su svetaine ar el. parduotuve: mokėjimai, NFT bilietai, lojalumo žetonai.
  • Parengiame specifikaciją ir testus, su kuriais galite kreiptis į nepriklausomą auditorių.
  • Įdiegiame administravimą per daugiaparašę piniginę ir operacijų stebėseną.
Plačiau apie paslaugą

Dažni klausimai

Kas yra išmanioji sutartis?

Išmanioji sutartis – tai blokų grandinėje įrašyta programa, kuri automatiškai vykdo užprogramuotas taisykles, pvz., perveda žetonus įvykdžius sąlygą. Jos kodas matomas visiems, o po paskelbimo dažniausiai nekeičiamas.

Ar išmanioji sutartis yra teisiškai galiojanti sutartis?

Lietuvos teisėje atskiros išmaniosios sutarties sąvokos nėra. Teisiškai saistantis yra šalių susitarimas, o kodas – jo vykdymo įrankis, todėl verslui rekomenduojama turėti ir įprastą rašytinę sutartį ar naudojimo sąlygas.

Kas yra smart contract auditas?

Tai nepriklausoma išmaniosios sutarties kodo peržiūra prieš paskelbimą: automatinė analizė, rankinė peržiūra, ataskaita su radiniais pagal svarbą ir pataisymų patikra. Auditas sumažina, bet nepanaikina rizikos.

Kokia kalba rašomos išmaniosios sutartys?

Ethereum ir su juo suderinamuose tinkluose (Polygon, Base ir kt.) dažniausiai Solidity, rečiau Vyper. Kiti tinklai, pvz., TON ar Solana, naudoja savas kalbas.

Ar galima pakeisti išmaniąją sutartį po paskelbimo?

Paprastos sutarties – ne. Atnaujinamos sutartys naudoja tarpinę sutartį, per kurią administratorius gali pakeisti logiką, bet tai sukuria papildomą riziką, todėl naudojamas laiko užraktas ir daugiaparašė kontrolė.

Kokie buvo didžiausi išmaniųjų sutarčių įsilaužimai?

Žinomiausi: The DAO 2016-06-17 (per 3,6 mln. ETH), Ronin 2022-03-23 (173 600 ETH ir 25,5 mln. USDC), Euler 2023-03-13 (apie 197 mln. USD) ir Bybit 2025-02-21 (apie 1,5 mlrd. USD).

Kiek kainuoja išmaniosios sutarties sukūrimas?

Priklauso nuo sudėtingumo: standartinis ERC-20 žetonas iš audituotos bibliotekos kainuoja mažai, o sava logika su lėšų valdymu reikalauja kūrimo, testų ir nepriklausomo audito, kurie dažniausiai sudaro didžiąją biudžeto dalį.

Ar išmaniosioms sutartims taikomas MiCA?

Pačiai technologijai – ne. Bet jei sutartis saugo klientų kriptoturtą, keičia jį ar išleidžia viešai siūlomą žetoną, taikomi MiCA reikalavimai: licencija ar baltoji knyga.

Šaltiniai

  1. CRITICAL UPDATE Re: DAO Vulnerability (2016-06-17) – Ethereum Foundation
  2. Timeline of all Ethereum forks (DAO fork) – ethereum.org
  3. Introduction to smart contracts – ethereum.org
  4. Smart contract security – ethereum.org
  5. North Korea Responsible for $1.5 Billion Bybit Hack (PSA, 2025-02-26) – FBI / IC3
  6. War & Peace: Behind the Scenes of Euler's $240M Exploit Recovery – Euler Finance
  7. Ronin Network: What a $600m hack says about the state of crypto – BBC
  8. Reglamentas (ES) 2023/2854 (Duomenų aktas) – EUR-Lex
  9. Reglamentas (ES) 2023/1114 dėl kriptoturto rinkų – EUR-Lex
  10. LBChain – Lietuvos bankas
Reikia pagalbos su projektu?

Pasiūlymas su kaina ir terminais raštu, prieš pradedant darbus.

Gauti pasiūlymą