Czym S膮 Smart Kontrakty?
Strona G艂贸wna
Artyku艂y
Czym S膮 Smart Kontrakty?

Czym S膮 Smart Kontrakty?

艢rednio zaawansowany
Opublikowane Sep 16, 2019Zaktualizowane Jun 9, 2023
9m

Wprowadzenie

Nick Szabo po raz pierwszy opisa艂 smart kontrakty w latach 90 XX wieku. Wtedy zdefiniowa艂 smart kontrakt jako narz臋dzie, kt贸re formalizuje i zabezpiecza sieci komputerowe poprzez 艂膮czenie protoko艂贸w z interfejsami u偶ytkownika.

Szabo om贸wi艂 potencjalne wykorzystanie tej technologii w r贸偶nych dziedzinach, kt贸re obejmuj膮 umowy kontraktowe - takie jak systemy kredytowe, przetwarzanie p艂atno艣ci i zarz膮dzanie prawami do tre艣ci.

W 艣wiecie kryptowalut mo偶emy zdefiniowa膰 smart kontrakt jako aplikacj臋 lub program dzia艂aj膮cy na blockchainie. Zazwyczaj dzia艂aj膮 one jako umowa cyfrowa, kt贸ra jest egzekwowana przez okre艣lony zestaw regu艂. Regu艂y te s膮 predefiniowane przez kod komputerowy, kt贸ry jest replikowany i wykonywany przez wszystkie w臋z艂y w sieci.

Smart kontrakty na Blockchainie umo偶liwiaj膮 tworzenie protoko艂贸w, kt贸re wy艂膮czaj膮 czynnik zaufania. Oznacza to, 偶e dwie strony mog膮 podejmowa膰 zobowi膮zania za po艣rednictwem blockchainu, bez konieczno艣ci wzajemnego poznania si臋 lub zaufania kontrachentowi. Daje im to pewno艣膰, 偶e je艣li warunki nie zostan膮 spe艂nione, kontrakt nie zostanie wyegzekwowany. Poza tym wykorzystanie smart kontrakt贸w mo偶e wyeliminowa膰 potrzeb臋 po艣rednik贸w, znacznie obni偶aj膮c koszty operacyjne.

Chocia偶 protok贸艂 Bitcoina od wielu lat wspiera smart kontrakty, spopularyzowa艂 je tw贸rca i wsp贸艂za艂o偶yciel Ethereum, Vitalik Buterin. Warto jednak zauwa偶y膰, 偶e ka偶dy blockchain mo偶e prezentowa膰 inn膮 metod臋 wdra偶ania tego typu rozwi膮za艅.聽

W tym artykule skoncentrujemy si臋 na smart kontraktach dzia艂aj膮cych na wirtualnej maszynie Ethereum (EVM), kt贸ra jest istotn膮 cz臋艣ci膮 sieci blockchain Ethereum.


Jak dzia艂a Smart Kontrakt?

Kr贸tko m贸wi膮c smart kontrakt dzia艂a jak program deterministyczny. Oznacza to, i偶 wykonuje on okre艣lone zadanie, gdy spe艂nione zostan膮 okre艣lone w nim warunki. Smart kontrakty to w gruncie rzeczy zestawy regu艂 "je艣li鈥 to鈥". Pomimo swojej nazwy, smart kontrakty nie s膮 ani inteligentne, ani umowami sklasyfikowanymi prawnie. Ka偶dy smart kontrakt, to tak na prawd臋 fragment kodu, kt贸ry dzia艂a i funkcjonuje dzi臋ki rozproszonej sieci w臋z艂贸w (blockchain).

W sieci Ethereum smart kontrakty s膮 odpowiedzialne za wykonywanie i zarz膮dzanie okre艣lonymi operacjami w sieci blockchain, kt贸re maj膮 miejsce, gdy u偶ytkownicy (w艂a艣ciwie adresy) wejd膮 ze sob膮 w okre艣lone interakcje. Ka偶dy adres, kt贸ry nie jest smart kontraktem nazywany jest zewn臋trznie zarz膮dzanym kontem (EOA). M贸wi膮c wprost: smart kontrakty s膮 kontrolowane przez kod komputerowy, a EOA s膮 kontrolowane przez u偶ytkownik贸w.

Zasadniczo rzecz ujmuj膮c ka偶dy ze smart kontrakt贸w w sieci Ethereum sk艂ada si臋 z kodu i dw贸ch kluczy publicznych. Pierwszy klucz publiczny, to ten dostarczony przez tw贸rc臋 kontraktu. Drugi klucz natomiast reprezentuje sam膮 umow臋, dzia艂aj膮c jako jej identyfikator cyfrowy, kt贸ry jest unikalny dla ka偶dego smart kontraktu.

Uruchomienie jakiegokolwiek kontraktu wymaga wykonania si臋 transakcji w sieci blockchain. Dodatkowo, ka偶dy ze smart kontrakt贸w musi zosta膰 uruchomiony przez EOA (lub inny smart kontrakt). Niezale偶nie od 藕r贸d艂a aktywuj膮cego, pierwsza interakcja zawsze pochodzi od EOA (u偶ytkownika).


Kluczowe funkcje

Smart kontrakty tworzone w sieci Ethereum najcz臋艣ciej charakteryzuj膮 si臋 nast臋puj膮cymi cechami:

S膮 rozproszone. Smart kontrakty podlegaj膮 replikowacji i dystrybucji na wszystkie w臋z艂y obecne w sieci Ethereum. Spos贸b dystrybucji i uruchamiania smart kontrakt贸w, to ich najwi臋kszy plus w odniesieniu do tradycyjnych, scentralizowanych rozwi膮za艅.

S膮 deterministyczne. Smart kontrakty wykonuj膮 tylko te dzia艂ania, do kt贸rych zosta艂y zaprojektowane, pod warunkiem spe艂nienia zapisanych w nich za艂o偶e艅. Wyniki wykonania si臋 danego kontraktu zawsze b臋d膮 takie same, niezale偶nie od tego kto zainicjuje pierwsz膮 interakcj臋.

S膮 autonomiczne. Smart kontrakty 艣wietnie sprawdzaj膮 si臋 na polu automatyzacji wszelkiego rodzaju zada艅 - dzia艂aj膮 jak samowystarczalny program. Co jednak istotne: w wi臋kszo艣ci przypadk贸w, je艣li smart kontrakt nie zostanie uruchomiony, to znajduje si臋 on w stanie "u艣pienia" i nie wykona 偶adnej akcji.

S膮 niezmienne. Kodu ka偶dego ze smart kontrakt贸w nie mo偶na zmieni膰 po ich uruchomieniu. Mo偶na je "usun膮膰" tylko wtedy, gdy takowa funkcja zosta艂a wcze艣niej w nich zaimplementowana. Mo偶emy zatem powiedzie膰, 偶e zapisy w smart kontraktach s膮 odporne na modyfikacje.

S膮 konfigurowalne. Przed wdro偶eniem, smart kontrakty mo偶na zakodowa膰 na wiele r贸偶nych sposob贸w. Dzi臋ki temu, mog膮 one by膰 u偶ywane do tworzenia wielu rodzaj贸w zdecentralizowanych aplikacji ( DApps'贸w). Jest to zwi膮zane z faktem, 偶e Ethereum jest blockchainem, kt贸ry mo偶e pochwali膰 si臋 w艂a艣ciwo艣ci膮 Kompletno艣ci Turinga.

S膮 "Trustless". Dzi臋ki tej cesze ka偶da ze stron smart kontraktu mo偶e wchodzi膰 w interakcje z inn膮 stron膮 bez konieczno艣ci znania drugiej strony, ani darzenia jej jakimkolwiek stopniem zaufania. Na t臋 cech臋 sk艂ada si臋 r贸wnie偶 rzetelno艣膰 i niezmienno艣膰 danych zapisanych w 艂a艅cuchu sieci Blockchain.

S膮 transparentne. Bior膮c pod uwag臋 fakt, i偶 ka偶dy ze smart kontrakt贸w w sieci Ethereum oparty jest o publiczn膮 sie膰 blockchain, to ich kod 藕r贸d艂owy jest nie tylko niezmienny, ale tak偶e widoczny i dost臋pny dla ka偶dego, kto chcia艂by go sprawdzi膰 lub dokona膰 jego audytu.


Czy mo偶na zmienia膰 lub usuwa膰 smart kontrakty?

Po wdro偶eniu nie mo偶na dodawa膰 nowych funkcji do kontraktu na Ethereum. Je艣li jednak tw贸rca umie艣ci w kodzie funkcj臋聽SELFDESTRUCT,聽b臋dzie w stanie w przysz艂o艣ci 鈥瀠sun膮膰鈥 smart kontrakt 鈥 i zast膮pi膰 go nowym. Natomiast je艣li taka funkcja nie b臋dzie zaimplementowana z wyprzedzeniem, nie b臋dzie mo偶liwo艣ci usuni臋cia.

Przy tej okazji warto r贸wnie偶 wspomnie膰, i偶 smart kontrakty zapewniaj膮 swoim tw贸rcom osi膮gni臋cie odpowiedniej elastyczno艣ci w zakresie ich aktualizowania - nawet bior膮c pod uwag臋 jedn膮 z ich g艂贸wnych cech, jak膮 jest niezmienno艣膰. Istnieje wiele sposob贸w tworzenia smart kontrakt贸w, a przyj臋ta metoda rzutuje na to, jakie komponenty umowy mo偶na zmodyfikowa膰.

Najprostsz膮 metod膮 daj膮c膮 dost臋p do relatywnie 艂atwego sposobu aktualizowania smart kontraktu, jest podzielenie go na mniejsze smart kontrakty. Przy takiej konstrukcji jako tw贸rca kodu nadajesz odpowiednim komponentom (funkcjom) swojego kontraktu cechy niezmienno艣ci przy jednoczesnym uposa偶eniu innych komponent贸w w funkcj臋 'delete'.


Zalety i przyk艂ady wykorzystania

Bior膮c pod uwag臋 fakt, i偶 smart kontrakty sk艂adaj膮 si臋 z kodu komputerowego, s膮 one wysoce konfigurowalne i mog膮 by膰 zaprojektowane na wiele r贸偶nych sposob贸w, oferuj膮c wiele rodzaj贸w us艂ug i rozwi膮za艅.

B臋d膮c zdecentralizowanymi i samowykonalnymi programami, smart kontrakty s膮 w stanie zapewni膰 wi臋ksz膮 przejrzysto艣膰 i ni偶sze koszty operacyjne od swoich tradycyjnych odpowiednik贸w. W zale偶no艣ci od podej艣cia i wdro偶enia mog膮 r贸wnie偶 zwi臋kszy膰 efektywno艣膰 i zmniejszy膰 wydatki zwi膮zane z biurokracj膮.

Smart kontrakty okazuj膮 si臋 szczeg贸lnie przydatne w sytuacjach, kt贸re wymagaj膮 transferu aktyw贸w lub wymiany 艣rodk贸w mi臋dzy dwiema lub wi臋cej stronami.

Innymi s艂owy, smart kontrakty mo偶na zaprojektowa膰 pod k膮tem szerokiej gamy zastosowa艅. Niekt贸re przyk艂ady obejmuj膮 tworzenie tokenizowanych aktyw贸w, system贸w g艂osowania, portfeli krypto, zdecentralizowanych gie艂d, gier i aplikacji mobilnych. Mog膮 by膰 r贸wnie偶 wdra偶ane wraz z innymi rozwi膮zaniami blockchain, kt贸re maj膮 zastosowanie w dziedzinie opieki zdrowotnej, organizacji charytatywnych, 艂a艅cucha dostaw, zarz膮dzania i zdecentralizowanych finans贸w (DeFi).


ERC-20

Tokeny emitowane na blockchainie Ethereum s膮 zgodne ze standardem znanym jako ERC-20. Standard opisuje podstawowe funkcje wszystkich token贸w opartych na Ethereum. Jako takie, te zasoby cyfrowe s膮 cz臋sto okre艣lane jako tokeny ERC-20 i stanowi膮 znaczn膮 cz臋艣膰 istniej膮cych kryptowalut.
Wiele firm blockchain i startup贸w wdro偶y艂o smart kontrakty w celu wydawania swoich cyfrowych token贸w w sieci Ethereum. Po emisji, wi臋kszo艣膰 z tych firm rozprowadza艂a swoje tokeny ERC-20 za po艣rednictwem wydarze艅 zwanych Initial Coin Offering (ICO). W wi臋kszo艣ci przypadk贸w wykorzystanie smart kontrakt贸w umo偶liwi艂o wymian臋 艣rodk贸w i dystrybucj臋 token贸w w spos贸b niewymagaj膮cy zaufania oraz efektywny.


Ograniczenia

Bior膮c pod uwag臋 fakt, i偶 smart kontrakty sk艂adaj膮 si臋 z kodu komputerowego napisanego przez ludzi, nios膮 ze sob膮 wiele zagro偶e艅. Ka偶dy kod napisany przez cz艂owieka jest potencjalnie podatny na luki i b艂臋dy. Co do zasady smart kontrakty tworzone s膮 przez do艣wiadczonych programist贸w, ale jako i偶 sfera ta zyskuje coraz wi臋ksz膮 popularno艣膰, to warto mie膰 艣wiadomo艣膰 tego, i偶 藕le wdro偶ony kod mo偶e doprowadzi膰 do nieodwracalnych strat materialnych.

Co wi臋cej, niekt贸rzy twierdz膮, 偶e scentralizowane systemy mog膮 obs艂ugiwa膰 wi臋kszo艣膰 rozwi膮za艅 i funkcjonalno艣ci oferowanych przez smart kontrakty. G艂贸wna r贸偶nica polega jednak na tym, 偶e smart kontrakty dzia艂aj膮 w rozproszonej sieci P2P, a nie na scentralizowanym serwerze. A jako i偶 opieraj膮 si臋 na systemie blockchain, s膮 albo niezmienne, albo bardzo trudne do zmiany.

Niezmienno艣膰 mo偶e by膰 wspania艂a w niekt贸rych sytuacjach, ale bardzo z艂a w innych. Na przyk艂ad, kiedy zdecentralizowana organizacja autonomiczna (DAO) o nazwie 鈥濼he DAO鈥 zosta艂a zhakowana w 2016 roku, miliony etheru (ETH) zosta艂y skradzione z powodu b艂臋d贸w w ich kodzie kontraktu.

Poniewa偶 ich smart kontrakt by艂 niezmienny, programi艣ci nie byli w stanie naprawi膰 kodu. Doprowadzi艂o to w ko艅cu do hard forka, daj膮cego pocz膮tek drugiemu 艂a艅cuchowi Ethereum. M贸wi膮c najpro艣ciej, jeden 艂a艅cuch 鈥瀘dwr贸ci艂鈥 w艂amanie i zwr贸ci艂 艣rodki prawowitym w艂a艣cicielom (stanowi on r贸wnie偶 cz臋艣膰 obecnego blockchainu Ethereum). Drugi 艂a艅cuch postanowi艂 nie ingerowa膰 w hack, stwierdzaj膮c, 偶e rzeczy, kt贸re dziej膮 si臋 na blockchainie, nigdy nie powinny by膰 zmieniane (ten 艂a艅cuch nazywa si臋 teraz Ethereum Classic).

Przy tej okazji nale偶y jednak podkre艣li膰 fakt, i偶 b艂膮d ani fork nie jest efektem b艂臋du w sieci blockchain Ethereum. Obydwa wydarzenia, to skutki tego, co zosta艂o 藕le zaprogramowane w smart kontrakcie organizacji The DAO - najwi臋kszej na tamten czas zdecentralizowanej i autonomicznej organizacji.

Kolejne z ogranicze艅 smart kontrakt贸w wi膮偶e si臋 z ich niepewnym statusem prawnym. Nie tylko dlatego, 偶e dziedzina ta obecnie znajduje si臋 w tzw. szarej strefie w wi臋kszo艣ci kraj贸w, ale w g艂贸wnej mierze dlatego, 偶e smart kontrakty nie odpowiadaj膮 obecnym na 艣wiecie ramom prawnym.

Dzieje si臋聽tak poniewa偶 w wielu krajach tradycyjne umowy, aby uzna膰 je za zgodne z prawem, wymagaj膮 prawid艂owej identyfikacji to偶samo艣ci obu (lub wi臋cej) stron umowy i uko艅czenia przez nie 18 lat, je偶eli m贸wimy o umowach zawieranych pomi臋dzy osobami fizycznymi. Pseudo-anonimowo艣膰 zapewniana przez technologi臋 blockchain w po艂膮czeniu z wy艂膮czeniem po艣rednik贸w z procesu podpisywania stoi w opozycji do tych wymog贸w. Chocia偶 istniej膮 potencjalne rozwi膮zania tego problemu, uprawomocnienie wykonalno艣ci zapis贸w smart kontrakt贸w jest prawdziwym wyzwaniem - szczeg贸lnie je偶eli we藕miemy pod uwag臋 to, jak globalnie rozproszone s膮 sieci blockchain.


Krytyka

Niekt贸rzy entuzja艣ci technologii blockchain postrzegaj膮 smart kontrakty jako rozwi膮zanie, kt贸re wkr贸tce zast膮pi i zautomatyzuje du偶膮 cz臋艣膰 komercyjnych i pa艅stwowych system贸w lub proces贸w. O ile taki scenariusz jest mo偶liwy, to jednak daleko do uzyskania takiego stanu rzeczy.

Smart kontrakty s膮 z pewno艣ci膮 interesuj膮c膮 i prze艂omow膮 technologi膮. To, co jednak stanowi ich zalety - cechy takiej jak rozproszony charakter, deterministyczno艣膰, transparentno艣膰 oraz w pewnym sensie niemodyfikowalno艣膰 - bardzo szybko mo偶e przerodzi膰 si臋 w ich wady.

Przy okazji krytyki smart kontrakt贸w, sceptycy tej technologii najcz臋艣ciej podnosz膮 argument, i偶 smart kontrakty w rzeczywisto艣ci nie okazuj膮 si臋 tak 艣wietnym rozwi膮zaniem dla wielu rzeczywistych problem贸w, o czym pr贸buj膮 przekona膰 ich fascynaci. W rzeczywisto艣ci niekt贸rym organizacjom lepiej i 艂atwiej jest skorzysta膰 z konwencjonalnych alternatyw opartych na scentralizowanym serwerze ani偶eli opiera膰 swoje rozwi膮zania i systemy o technologi臋 blockchain.聽

W por贸wnaniu ze smart kontraktami, to na dzie艅 dzisiejszy w艂a艣nie scentralizowane serwery okazuj膮 si臋 艂atwiejsze i ta艅sze w utrzymaniu. Wykazuj膮 r贸wnie偶 wy偶sz膮 wydajno艣膰 pod wzgl臋dem szybko艣ci i komunikacji z innymi sieciami (s膮 bardziej interoperacyjne).


Przemy艣lenia ko艅cowe

Po przeczytaniu tego artyku艂u nikt nie powinien mie膰 偶adnych w膮tpliwo艣ci, i偶 smart kontrakty wywar艂y ju偶 znacz膮cy wp艂yw na 艣wiat kryptowalut i z pewno艣ci膮 zrewolucjonizowa艂y przestrze艅 blockchain. To, 偶e u偶ytkownicy ko艅cowi mog膮 nawet nie wiedzie膰, i偶 w danym momencie wchodz膮 w interakcj臋 ze smart kontraktem idealnie podsumowuje szeroki zakres na polu potencjalnych implementacji - od us艂ug finansowych po zarz膮dzanie 艂a艅cuchem dostaw.

Smart kontrakty w po艂膮czeniu z blockchainem maj膮 potencja艂, by namiesza膰 w prawie wszystkich obszarach naszego 偶ycia spo艂ecznego. Natomiast tylko czas poka偶e, czy te prze艂omowe technologie zdo艂aj膮 pokona膰 wiele barier utrudniaj膮cych adopcj臋 na du偶膮 skal臋.