Ethereum: jak działają inteligentne kontrakty?

Inteligentne kontrakty to główna cecha, która zapewniła Ethereum taki sukces. 

Czym są inteligentne kontrakty i do czego służą

Protokół Bitcoin nie przewiduje takiej możliwości tworzenie naprawdę złożonych inteligentnych kontraktów, ponieważ w zasadzie został zaprojektowany tylko w celu umożliwienia transakcji. 

Natomiast Ethereum, które narodziło się 6 lat po Bitcoinie, od początku było projektowane jako sieć zdolna do hosting i realizacja inteligentnych kontraktów

W 2014 roku współzałożyciel Ethereum Vitalik Buterin napisał wyraźnie w oficjalny dokument że projektowana przez niego sieć to a platforma nowej generacji oparta na inteligentnych kontraktachoraz że alternatywne zastosowania Bitcoina oparte na technologii blockchain obejmują również wykorzystanie zasobów cyfrowych do reprezentowania niestandardowych walut i instrumentów finansowych, aktywów niewymiennych i bardziej złożonych aplikacji. 

W szczególności te ostatnie, czyli inteligentne kontrakty, zdefiniowano jako aplikacje polegające na bezpośredniej kontroli zasobów cyfrowych przez kod implementujący arbitralne reguły, czyli zdecentralizowane organizacje autonomiczne oparte na blockchainie, tzw. DAO.  

Vitalik napisał: 

„To, co Ethereum zamierza zapewnić, to blockchain z wbudowanym kompletnym językiem programowania Turing, którego można używać do tworzenia „umów”, które można wykorzystać do kodowania dowolnych funkcji zmiany stanu, umożliwiając użytkownikom tworzenie dowolnego z opisanych powyżej systemów – a także wiele innych, których jeszcze sobie nie wyobrażaliśmy – po prostu pisząc logikę w kilku linijkach kodu”.

Zatem inteligentne kontrakty na Ethereum to linie kodu, dzięki którym jest to możliwe zaprogramować automatyczne wykonywanie instrukcji przez sieć, gdy zostaną spełnione określone warunki, bez konieczności powierzania ich wykonania pośrednikowi.

Tak naprawdę sam Buterin umieścił termin „umowy” w cudzysłowie, ponieważ zamiast rzeczywistych umów między stronami, są one programy komputerowe wykonywane w sposób zdecentralizowany sieci. 

Z ogólnego punktu widzenia zatem ich obsługa nie jest bardzo skomplikowana. 

inteligentna umowa
Do realizacji inteligentnych kontraktów dochodzi po zweryfikowaniu warunków w nich zawartych

Wdrażanie inteligentnych kontraktów na blockchainie Ethereum

Przede wszystkim jeden lub więcej programistów musi oczywiście stworzyć inteligentną umowę, pisząc odpowiednie linie kodu, a następnie muszą wyślij go do sieci Ethereum. 

Z technicznego punktu widzenia opublikowanie go na blockchainie Ethereum oznacza, że ​​wszystkie węzły w sieci go otrzymają i wykonają. Po opublikowaniu wszystkie zawarte w nim instrukcje będą zawsze wykonywane przez wszystkie węzły dokładnie w ten sam sposób. 

Dlatego nie tylko jego publikacja, ale także wykonanie instrukcji jest nieodwracalne po opublikowaniu na blockchainie. 

Dlatego naprawdę ważne są zawarte w nim instrukcje – które mogą być bardzo różnorodne – i to, ile osób z nich korzysta. Rzeczywiście, aby instrukcje inteligentnego kontraktu mogły faktycznie zostać wykonane, muszą istnieć jedną lub więcej transakcji, które je wywołują

Warto też pamiętać, że instrukcje te z reguły wiążą się z wykorzystaniem zasobów, takich jak dane czy tokeny, zatem aby mogły zostać faktycznie wykonane, muszą zostać spełnione wszystkie wymagane warunki. 

Czasami dane te pochodzą z zewnątrz, dzięki tzw. wyroczniom, a czasami po prostu pochodzą z transakcji na blockchainie. 

Zwykle transakcja, która uruchamia wykonanie instrukcji zawartych w inteligentnym kontrakcie polega na zapłacie a opłata w ETH, a w wielu przypadkach faktyczne uruchomienie realizacji wymaga również zapłaty lub wysłania tokenów specyficznych dla samego inteligentnego kontraktu lub innych inteligentnych kontraktów. 

Technicznie rzecz biorąc, inteligentne kontrakty są rodzajem konta na platformie Ethereum blockchain, „kontrolowany” przez sieć, a nie przez jednostkę centralną. Mogą przechowywać ETH lub tokeny, a także mogą wysyłaj transakcje w sieci autonomicznie.

Jak wchodzić w interakcję z kodem i ogólnie z dApps

Użytkownicy mogą wchodzić w interakcję z inteligentnymi kontraktami, wysyłając transakcje wywołać jedną z funkcji zdefiniowanych w ich kodzie. 

Dlatego też funkcjonowanie inteligentnych kontraktów na Ethereum jest generalnie bardzo proste: wystarczy wysłać transakcję określonego rodzaju do inteligentnego kontraktu, a to spowoduje wykonanie przez węzły wszystkich instrukcji zawartych w funkcji inteligentnego kontraktu wywołanej przez samą transakcję. 

Oczywiście, w zależności od tego, jakie instrukcje zawarte są w wywoływanej funkcji, mogą zostać wygenerowane bardzo różne konsekwencje, różniące się nie tylko w zależności od inteligentnego kontraktu, ale także od funkcji do funkcji. 

Ogromna złożoność inteligentnych kontraktów wynika zatem właśnie z tego, co robią poszczególne inteligentne kontrakty, a nie w ogóle z faktu, że sieć Ethereum je obsługuje i realizuje. Co więcej, absolutnie niemożliwe jest wyliczenie, jak faktycznie działają wszystkie rodzaje inteligentnych kontraktów w sieci. 


Źródło: https://en.cryptonomist.ch/2022/06/11/ethereum-smart-contracts-3/