Pametne pogodbe ali smart contract so srčika tehnologije blockchain in glavna sestavina decentraliziranih aplikacij (dapp). Ponujajo varnost, zanesljivost in dostopnosti tehnologije blockchain, hkrati pa zapleteno peer-to-peer funkcionalnost peer-to-peer. Poglejmo, kaj so pametne pogodbe in kako delujejo.
Dandanes vsakdo pozna aplikacije in trgovine z aplikacijami. Brskate po njih, prenesete želeno aplikacijo in jo v hipu naložite. Za čudovitimi UX in UI vmesniki mobilnih naprav te aplikacije izvajajo poseben sklop navodil, ki jih je določil njihov ustvarjalec. To je lahko igra, fitnes aplikacija ali način za nakup blaga in storitev. No, pametne pogodbe imajo zelo podobno funkcijo.
Kaj je pametna pogodba?
Pametna pogodba (smart contract) je program, ki se sam izvaja in avtomatizira dejanja, zahtevana v sporazumu ali pogodbi. Ko so transakcije končane, jih je mogoče spremljati in so nepovratne. Pametne pogodbe nadgrajujejo osnovno idejo Bitcoina – opravljanje transakcij brez posrednika. Noben akter ne hrani vaših podatkov ali jih preverja, saj to počne blockchain namesto nas.
Ethereumova skupnost z Vitalikom Buterinom na čelu verjame, da je to prihodnost blockchaina. Če je Bitcoin zlato poslovnega sveta, so pametne pogodbe nafta, na katero deluje poslovni svet. Ethereum je prvo in največje omrežje za pametne pogodbe.
Zanimivost: Nick Szabo, ameriški računalničar, ki je leta 1998 izumil virtualno valuto Bit Gold, je pametne pogodbe opredelil kot računalniško podprte protokole transakcij, ki izvršujejo pogoje pogodbe.
Kako delujejo pametne pogodbe?
Za enostavno predstavo si naprej poglejmo običajno transakcijo nakupa avtomobila brez pametne pogodbe. Za celotni proces potrebujete:
- Spletno stran s seznamom avtomobilov in informacije, ki si jih želite ogledati
- Način komuniciranja s prodajalci
- Plačilni sistem, ki vam omogoča izmenjavo denarja, ko najdete svoj avtomobil
- Nekaj možnosti za vračilo denarja, če se avto ne izkaže za to, kar ste plačali
- Način za registracijo spremembe lastništva avtomobila pri pristojnih organih
Kot vemo iz iskušenj, vsaka od teh točk zahteva določeno stopnjo zaupanja med vami in zadevnim spletnim mestom ali storitvijo. Poleg tega vsak del tega postopka običajno nadzoruje drugo podjetje ali posameznik. To pa pomeni, da obstaja tveganje, da se zahrbtna oseba ali organizacija kaj hitro vmeša v katerega koli od zgornjih elementov in tako posega v ali izniči celoten postopek.
In tukaj pridejo v igro pametne pogodbe, ki lahko odpravijo potrebo po zaupanju več strankam v postopku nakupa. Glavne prednosti pametne pogodbe so torej:
- Varnost: Uporabljajo kriptografijo za preprečevanje spreminjanja zapisov.
- Transparentnost: Vsakdo lahko vidi, kaj je pametna pogodba in za kaj se uporablja.
- Brez potrebe po tretjih osebah: Pametne pogodbe ne potrebujejo posrednika, ki bi jih preverjal, saj to počne tehnologija blockchain.
- Avtonomnost: Delujejo samodejno, zato ni treba čakati na človeško posredovanje.
- Natančnost: Ker so pametne pogodbe napisane v kodi, imajo manj napak kot pisani ali govorjeni jeziki.
Pametne pogodbe: Pomanjkljivosti
- Trajnost: Po zagonu pogodb ni mogoče spreminjati ali nadgrajevati, kar lahko privede do katastrofalnih posledic, če se v kodi pojavijo težave.
- Človeški dejavnik: odvisni so od programerja, ki zagotavlja, da bo koda upoštevala pogodbene pogoje.
- Vrzeli: V kodi so lahko vrzeli, ki omogočajo, da se pogodbe izvajajo v slabi veri. To je morda najbolje razvidno iz vdora v sistem Ethereum DAO iz leta 2016, ko je neznani heker z izkoriščanjem vrzeli v funkciji razdelitve sistema DAO odtujil približno 50 milijonov dolarjev vrednosti v ETH.
»Če se zgodi to, potem naredi to«
Glavna mantra pametnih pogodb je mehanizem, ki preko računalniške kode povzroči, da se v primeru določenega dogodka stori določena stvar. Ta mehanizem že obstaja. Recimo, da želite nekaj plačati s s kreditno kartico. Programska oprema, ki jo uporablja vaša banka, bo funkcijo “če se zgodi to, potem naredi to” uporabila na naslednji način:
- Če je znesek na bančnem računu višji od zahtevanega, sprosti sredstva.
- Če je znesek na bančnem računu manjši od zahtevanega zneska, sredstev ne sprosti.
Razlika pri pametnih pogodbah je v tem, da namesto banke oz. tretje osebe to odločitev sprejme blockchain. Če vzamemo zgornji primer in ga uporabimo za pametno pogodbo, dobimo naslednje:
- Če je znesek v digitalni denarnici večji in še ni bil porabljen, sprosti sredstva.
- Če je znesek v digitalni denarnici manjši ali je bil že porabljen, sredstev ne sprosti.
Fascinantna stvar pri pametnih pogodbah je, da lahko vsakdo sklene pogodbo s komer koli drugim, blockchain vse skupaj zabeleži; in kdorkoli lahko kadarkoli pogleda v verigo blokov in se prepriča o transakciji.
Uporaba pametnih pogodb
Pametne pogodbe razvijalcem omogočajo izdelavo najrazličnejših decentraliziranih aplikacij (DEX) in žetonov. Imajo širok spekter uporabe, od novih finančnih orodij do logistike in igralnih izkušenj, shranjene pa so v blockchainu kot vse druge kripto transakcije. Ko je aplikacija s pametno pogodbo enkrat dodana v verigo blokov, je na splošno ni mogoče razveljaviti ali spremeniti (razen v primeru redkih izjem).
DeFi aplikacije imetnikom kriptovalut omogočajo izvajanje kompleksnih finančnih transakcij – varčevanje, posojila, zavarovanje -, ne da bi jim banka ali druga finančna ustanova pri tem kaj »ukradla«, in to kjer koli na svetu. Nekatere izmed bolj priljubljenih trenutnih DeFi aplikacij so:
- Uniswap: Decentralizirana kripto borza, ki uporabnikom prek pametne pogodbe omogoča trgovanje z določenimi vrstami kriptovalut, ne da bi osrednji organ določal menjalne tečaje.
- Maker DAO: Decentralizirana finančna aplikacija (DeFi), ki uporabnikom omogoča posojanje in izposojanje kriptovalut brez posrednika.
- Axie Infinity: Najbolj igrana play-to-earn igra, pri kateri igralci vzrejajo pošasti in se z njimi borijo.
- USDC: Gre za kriptovaluto, ki je prek pametne pogodbe vezana na ameriški dolar, tako da je en USDC vreden en ameriški dolar. UDDC je del novejše kategorije digitalnega denarja, imenovane stablecoini.
Ni pa uporaba pametnih pogodb omejena le na podjetja v kripto sceni, saj so jih začela uporabljati tudi cela vrsta podjetij ter celo nekatere vlade. Spodaj navajamo nekaj primerov:
- Švedska vlada: Švedska vlada je preizkusila zemljiški kataster, ki temelji na verigi blokov za dokazovanje lastništva zemljišč in je zasnovan na pametnih pogodbah.
- ING: Nizozemska banka ING je soustvarila Fnality, sistem za sklepanje poslov na podlagi veriženja blokov z uporabo pametnih pogodb. Sodeluje tudi v številnih drugih blockchain pobudah.
- Ubisoft: Med številnimi pobudami na področju blockchiana je Ubisoft oblikoval posebej zasnovane pametne pogodbe, ki uporabnikom omogočajo posedovanje, prenos in zahtevanje redkih NFT-jev, ki temeljijo na priljubljeni igralni franšizi Rabbids ter tudi lansiral Ubisoft Quartz.
Zgodovina pametnih pogodb
Tako kot tehnologija blockchain, ki se uporablja za večino kriptovalut, so tudi pametne pogodbe nastale iz prejšnjih tehnologij, ki niso bile povsem dokončane. V primeru pametnih pogodb izhajajo iz prejšnjih programov za izvajanje elektronskih navodil, ki so uporabljali stavke s pogojno logiko za samodejno izdelavo rezultata na podlagi predloženih informacij.
Izraz »pametna pogodba« je leta 1994 v svojem eseju prvič predlagal Nick Szabo, ameriški računalničar, ki je leta 1998, deset let pred uvedbo Bitcoina, izumil virtualno valuto Bit Gold. Pravzaprav se pogosto govori, da je Szabo pravi Satoshi Nakamoto, anonimni izumitelj Bitcoina, kar pa je ta zanikal.
Szabo je pametno pogodbo primerjal s prodajnim avtomatom. Predstavljajte si avtomat, ki prodaja pločevinke coca-cole za 25 centov. Če v avtomat vržete dolar in izberete gazirano pijačo, je avtomat trdno sprogramiran tako, da vam pripravi pijačo in 75 centov drobiža ali (če je vaša izbira razprodana) vas pozove k drugi izbiri ali pa vam vrne dolar. To je primer preproste pametne pogodbe.
Ethereum je trenutno vodilna platforma za pametne pogodbe
Trenutno je Ethereum najbolj priljubljena platforma za pametne pogodbe, vendar jih lahko izvajajo tudi številne druge verige blokov, kot so EOS, Neo, Tezos, Tron, Polkadot, Algorand… Pametno pogodbo lahko ustvari in v verigo blokov namesti kdor koli. Njihova koda je pregledna in javno preverljiva, kar pomeni, da lahko vsaka zainteresirana stran natančno vidi, po kakšni logiki pametna pogodba deluje, ko prejme digitalna sredstva.
Pametne pogodbe so napisane v različnih programskih jezikih, kot so Solidity, Web Assembly in Michelson. V omrežju Ethereum je koda vsake pametne pogodbe shranjena v verigi blokov, kar omogoča, da lahko vsaka zainteresirana stranka pregleda kodo pogodbe in njeno trenutno stanje ter preveri njeno delovanje.
Vsak računalnik v omrežju (ali »vozlišče« oz. »node«) poleg verige blokov in podatkov o transakcijah hrani kopijo vseh obstoječih pametnih pogodb in njihovo trenutno stanje. Ko pametna pogodba prejme sredstva od uporabnika, njeno kodo izvedejo vsa vozlišča v omrežju, da bi dosegli soglasje o izidu in posledičnem toku vrednosti.
Za izvedbo pametne pogodbe v omrežju Ethereum morate običajno plačati pristojbino, imenovano plin oz. gas. Ko so pametne pogodbe enkrat nameščene v verigi blokov, jih na splošno ne more spremeniti niti njihov ustvarjalec.
Največje platforme s pametnimi pogodbami po tržni kapitalizaciji:
- Ethereum: Ethereum je zasnovan tako, da deluje kot decentraliziran “svetovni računalnik”, ki se lahko uporablja kot platforma, na kateri lahko delujejo dappi.
- BNB Chain: BNB je kratica za “Build and Build”, ki jo je razvila borza kriptovalut Binance.
- Cardano: Cardano (ADA) je odprtokodni javni projekt veriženja blokov. Trdi, da je prva strokovno pregledana veriga blokov na svetu, saj mreža akademikov in znanstvenikov preverja njene protokole, preden so objavljeni.
- Avalanche: Odprtokodna platforma za nove finančne in decentralizirane aplikacije, ki jo je razvilo podjetje Ava Labs.
Revizija pametnih pogodb
Čeprav so pametne pogodbe zavarovane s tehnologijo blockchain, na kateri temeljijo, morajo biti varne tudi po svoji zasnovi. Kot smo navedli zgoraj pri pomanjkljivostih, je mogoče izkoristiti nekatere funkcije ali napake v njihovi kodi. To se je v preteklosti že večkrat zgodilo in je še vedno eden največjih izzivov za širše sprejetje. Po podatkih podjetja CertiK, ki se ukvarja z varnostjo veriženja blokov, je bilo samo v letu 2021 zaradi vdorov v sisteme DeFi izgubljenih 1,3 milijarde dolarjev. Skupno je bilo torej iz nezavarovanih pametnih pogodb odtujeno premoženje v vrednosti več milijard dolarjev.
Da bi to tveganje zmanjšali, številna zunanja razvojna in varnostna podjetja, kot sta Mythx in ConsenSys Diligence, zdaj ponujajo storitve revidiranja pametnih pogodb. Pri tem je treba natančno pregledati kodo pametne pogodbe in ugotoviti ranljivosti, ki jih je nato mogoče odpraviti. To se običajno zgodi, preden je pametna pogodba objavljena.
Ko potegnemo črto
Pametne pogodbe so koda, zapisana v verigi blokov, ki izvaja pogoje sporazuma ali pogodbe zunaj verige. Avtomatizira dejanja, ki bi jih sicer opravile stranke v sporazumu, s čimer odpade potreba po medsebojnem zaupanju obeh strank. Glede na njihovo funkcionalnost lahko pričakujemo, da bodo pametne pogodbe postale del našega vsakdana na več nivojih. Danes ima večina verig blokov funkcije pametnih pogodb, aktivne skupnosti razvijalcev pa ustvarjajo dappse, ki uporabljajo pametne pogodbe. Obseg zmogljivosti pametnih pogodb lahko sega od zelo preprostih na podlagi nečesa, kot sta Bitcoin ali Litecoin, do bolj naprednih, ki podpirajo decentralizirane aplikacije, kot sta Ethereum in Cardano.
Pogosta vprašanja
Kaj je primer pametne pogodbe?
Najpreprostejši primer pametne pogodbe je transakcija med potrošnikom in podjetjem, pri kateri pride do prodaje. Pametna pogodba izvede kupčevo plačilo in poslovno pošiljko ali prenos lastništva.
Kako so podatki shranjeni v pametni pogodbi?
Podatki pametne pogodbe se v glavni knjigi hranijo kot del stanja pametne pogodbe, ki je vezano na njen naslov. Ko je nameščena nova različica pametne pogodbe, dobi nov naslov.
Katere so največje platforme s pametnimi pogodbami?
Ethereum, Cardano, Avalanche, BNB…
Se lahko napisana pametna pogodba spreminja?
Kratek odgovor je – ne, saj so pametne pogodbe trajne in nespremenljive, ko so enkrat nameščene v verigi blokov. Toda obstajajo redke izjeme.