Wstęp
Inteligentne kontrakty zostały po raz pierwszy opisane w latach 90. XX wieku przez Nicka Szabo. Zdefiniował inteligentny kontrakt jako narzędzie formalizujące i zabezpieczające sieci komputerowe poprzez połączenie protokołów z interfejsem użytkownika.
Szabo przyjrzał się zastosowaniu inteligentnych kontraktów w różnych obszarach, takich jak umowy, systemy kredytowe, przetwarzanie płatności i własność treści.
W świecie kryptowalut inteligentny kontrakt to aplikacja działająca na blockchainie. Działa jak umowa cyfrowa poparta zbiorem zasad. Reguły te określa kod komputerowy, który jest kopiowany i przetwarzany przez wszystkie węzły w sieci.
Inteligentne kontrakty umożliwiają tworzenie protokołów, które nie wymagają zaufania. Oznacza to, że obie strony mogą wchodzić w interakcje za pośrednictwem blockchainu bez konieczności wzajemnego zaufania. Uczestnicy procesu mogą być pewni, że niedotrzymanie warunków umowy skutkować będzie jej unieważnieniem. Ponadto zastosowanie inteligentnych kontraktów eliminuje potrzebę pośredników, znacznie obniżając koszty transakcyjne.
Choć protokół Bitcoin od wielu lat wspiera inteligentne kontrakty, swoją popularność zawdzięczają twórcy i współzałożycielowi Ethereum, Vitalikowi Buterinowi. Co więcej, każdy blockchain może wykorzystywać swój własny sposób wdrażania inteligentnych kontraktów.
W tym artykule skupiamy się na inteligentnych kontraktach działających na wirtualnej maszynie Ethereum (EVM), która jest kluczową częścią blockchainu Ethereum.
Jak to działa?
Krótko mówiąc, inteligentny kontrakt działa jak program deterministyczny. Wykonuje określone akcje po spełnieniu określonych warunków. Na tej podstawie system inteligentnych kontraktów często używa wyrażeń „jeśli… to…”. Wbrew ogólnie przyjętej terminologii, inteligentne kontrakty nie są ani umowami w sensie prawnym, ani „inteligentnymi”. To tylko fragmenty kodu działające w systemie rozproszonym (na blockchainie).
W sieci Ethereum inteligentne kontrakty odpowiadają za realizację transakcji pomiędzy użytkownikami (adresami). Każdy adres, który nie jest inteligentną umową, nazywany jest kontem indywidualnym (EOA). Zatem inteligentnymi kontraktami zarządza się za pomocą kodu programu, a kontami osobistymi zarządzają użytkownicy.
Zasadniczo inteligentne kontrakty Ethereum składają się z kodu kontraktu (zawierającego warunki wykonania) i dwóch kluczy publicznych. Pierwszy klucz publiczny jest udostępniany przez twórcę umowy. Drugi klucz reprezentuje samą umowę, będąc cyfrowym identyfikatorem unikalnym dla każdej inteligentnej umowy.
Wykonanie dowolnego inteligentnego kontraktu następuje podczas transakcji typu blockchain i można je aktywować po zainicjowaniu przez konto osobiste (lub inny inteligentny kontrakt). Jednak sekwencja inteligentnych kontraktów jest zawsze uruchamiana z konta osobistego (tj. użytkownika).
Główne cechy
Inteligentna umowa Ethereum często ma następujące cechy:
Dystrybucja. Inteligentne kontrakty są replikowane i dystrybuowane we wszystkich węzłach sieci Ethereum. Jest to jedna z głównych różnic między nimi a innymi rozwiązaniami wykorzystującymi scentralizowane serwery.
Determinizm. Inteligentne kontrakty wykonują działania, do których zostały zaprojektowane, po spełnieniu określonych wymagań. Ponadto wynik będzie zawsze taki sam, niezależnie od tego, kto spełni wymagania.
Autonomia. Inteligentne kontrakty mogą automatyzować wszelkiego rodzaju zadania, działając jako samowykonujący się program. W większości przypadków, jeśli inteligentny kontrakt nie zostanie zainicjowany, pozostaje „uśpiony” i nie wykonuje żadnych działań.
Niezmienność. Nie można zmienić procesu inteligentnego kontraktu po jego opracowaniu i aktywowaniu. Zmiany można wprowadzić tylko wtedy, gdy programiści zaimplementowali wcześniej określoną funkcję. Można zatem powiedzieć, że inteligentne kontrakty mogą zapewnić ochronę przed włamaniem do kodu poprzez dowód autentyczności.
Personalizacja. Inteligentne kontrakty można kodować na kilka sposobów, na przykład w celu tworzenia różnych typów zdecentralizowanych aplikacji (DApps). Dzieje się tak, ponieważ Ethereum zostało zaprojektowane tak, aby było kompletne w technologii Turing.
Brak zaufania. Dwie lub więcej stron może wchodzić w interakcje za pomocą inteligentnych kontraktów, nie znając się ani nie ufając sobie nawzajem. Ponadto technologia blockchain gwarantuje, że wszystkie dane są dokładne i uwzględnione.
Przezroczystość. Ponieważ inteligentne kontrakty opierają się na publicznym blockchainie, ich kod źródłowy jest dostępny dla każdego.
Czy mogę zmienić lub usunąć inteligentną umowę?
Użytkownicy Ethereum nie mogą dodawać nowych funkcji po aktywowaniu inteligentnej umowy. Jeśli jednak programista umieści w kodzie kontraktu funkcję o nazwie SELFDESTRUCT, może ją później usunąć i zastąpić nową. Bez tej funkcji usunięcie inteligentnej umowy nie będzie możliwe.
Warto zauważyć, że tak zwane inteligentne kontrakty z możliwością aktualizacji zapewniają programistom dostęp do zmian w kodzie, zapewniając w ten sposób większą elastyczność w porównaniu do umów niezmiennych. Istnieje wiele sposobów tworzenia tego typu inteligentnych kontraktów o różnym stopniu złożoności.
Spójrzmy na to na prostym przykładzie. Wyobraźmy sobie, że inteligentny kontrakt jest podzielony na kilka małych kontraktów. Niektórych z nich nie da się zmienić, innych można dzięki powyższej funkcji usunąć. Oznacza to, że część kodu (określoną liczbę inteligentnych kontraktów) można usunąć i zastąpić inną, a pozostała funkcjonalność pozostaje niezmieniona.
Korzyści i przypadki użycia
Ponieważ są programowalnym kodem, inteligentne kontrakty można w dużym stopniu dostosowywać i można je opracowywać na różne sposoby, oferując różne rodzaje usług i rozwiązań.
Jako zdecentralizowany i samoegzekwujący się program, inteligentne kontrakty mogą zapewnić większą przejrzystość i niższe koszty operacyjne. W zależności od branży mogą również poprawić wydajność i zmniejszyć koszty biurokratyczne.
Korzyści płynące ze stosowania inteligentnych kontraktów są szczególnie widoczne w przypadku przekazów pieniężnych lub wymiany środków pomiędzy dwiema lub więcej stronami.
Innymi słowy, inteligentne kontrakty można zaprojektować tak, aby odpowiadały szerokiej gamie przypadków użycia, w tym tworzeniu tokenizowanych aktywów, systemów głosowania, portfeli kryptograficznych, zdecentralizowanych giełd, gier i aplikacji mobilnych. Można je również wdrożyć wraz z innymi rozwiązaniami typu blockchain w obszarach opieki zdrowotnej, filantropii, łańcucha dostaw, zarządzania i zdecentralizowanych finansów (DeFi).
ERC-20
Tokeny emitowane na blockchainie Ethereum są zgodne ze standardem ERC-20, który opisuje ich główne funkcje. Często nazywane są tokenami ERC-20 i stanowią większość istniejących kryptowalut.
Wiele firm i startupów opracowuje inteligentne kontrakty w celu emisji własnych tokenów cyfrowych w sieci Ethereum. Po emisji większość z nich dystrybuuje swoje tokeny ERC-20 w ramach pierwszej oferty monet (ICO). Inteligentne kontrakty pozwalają na niezawodną i efektywną wymianę oraz dystrybucję środków.
Wady
Inteligentne kontrakty składają się z kodu komputerowego napisanego przez ludzi. Powoduje to wiele zagrożeń, ponieważ kod jest podatny na luki i błędy. Idealnie byłoby, gdyby rozwój był prowadzony przez doświadczonych programistów, szczególnie gdy w grę wchodzą poufne informacje lub duże sumy pieniędzy.
Uważa się, że większość rozwiązań i funkcji inteligentnych kontraktów mogą zapewnić systemy scentralizowane. Główna różnica polega na tym, że inteligentne kontrakty są realizowane w rozproszonej sieci P2P typu peer-to-peer, a nie na scentralizowanym serwerze. A ponieważ inteligentne kontrakty opierają się na blockchainie, zazwyczaj są niezmienne lub zbyt skomplikowane, aby można było wprowadzać w nich zmiany.
Czasami niezmienność jest przydatna, ale nie zawsze. Na przykład w 2016 roku hakerzy włamali się do zdecentralizowanej autonomicznej organizacji DAO i ukradli wielomilionowe etery (ETH), wykorzystując luki w kodzie inteligentnych kontraktów.
Ponieważ inteligentny kontrakt DAO był niezmienny, programiści nie byli w stanie naprawić kodu. Ostatecznie doprowadziło to do hard forku i pojawienia się drugiego łańcucha Ethereum. Mówiąc najprościej, jeden łańcuch cofnął włamanie i zwrócił środki prawowitym właścicielom (ten łańcuch jest częścią obecnego blockchainu Ethereum), natomiast drugi nie odpowiedział na włamanie, kierując się faktem, że zdarzenia w blockchainie nigdy nie powinny być zmieniony (ten łańcuch nazywa się teraz Ethereum Classic).
Należy zaznaczyć, że problem nie powstał w związku z działaniem blockchainu Ethereum. Zamiast tego błąd wynikał z nieprawidłowego wdrożenia inteligentnej umowy.
Kolejną wadą inteligentnych kontraktów jest ich niepewny status prawny. Dzieje się tak nie tylko dlatego, że w większości krajów technologia ta znajduje się w „szarej strefie”, ale także dlatego, że inteligentne kontrakty nie są zgodne z obowiązującymi ramami regulacyjnymi.
Na przykład głównym wymogiem wielu umów i kontraktów jest ścisła identyfikacja uczestników i wiek 18 lat. Anonimowość, jaką zapewnia technologia blockchain, w połączeniu z brakiem pośredników, może stanowić barierę w przestrzeganiu takich wymogów. Chociaż istnieją potencjalne rozwiązania tego problemu, główne obawy budzą prawne aspekty inteligentnych kontraktów, zwłaszcza jeśli chodzi o skalę globalną i sieci rozproszone.
Krytyka
Niektórzy entuzjaści blockchainu postrzegają inteligentne kontrakty jako rozwiązanie, które może zastąpić i zautomatyzować większość istniejących systemów komercyjnych i biurokratycznych. Choć jest to całkiem możliwe, inteligentne kontrakty dalekie są od bycia normą w tym obszarze.
Inteligentne kontrakty to z pewnością ciekawa technologia. Jednak jego rozproszony i deterministyczny charakter, a także przejrzystość i częściowa niezmienność sprawiają, że jest on mniej atrakcyjny w niektórych sytuacjach.
Zasadniczo cała krytyka opiera się na fakcie, że inteligentne kontrakty nie są odpowiednim rozwiązaniem wielu rzeczywistych problemów. I faktycznie, dla niektórych organizacji łatwiej i lepiej jest korzystać z konwencjonalnych serwerów alternatywnych.
W porównaniu do inteligentnych kontraktów, scentralizowane serwery są łatwiejsze i tańsze w utrzymaniu. Ponadto mogą również zapewnić większą wydajność pod względem szybkości i interoperacyjności z innymi sieciami.
Wznawiać
Bez wątpienia inteligentne kontrakty wywarły ogromny wpływ na świat kryptowalut i z pewnością zrewolucjonizowały dziedzinę technologii blockchain. Ponieważ użytkownicy końcowi mogą nie wchodzić w bezpośrednią interakcję z inteligentnymi kontraktami, mogą one w przyszłości służyć jako podstawa dla szerokiego zakresu zastosowań, od usług finansowych po zarządzanie łańcuchem dostaw.
Połączony potencjał inteligentnych kontraktów i blockchainu może mieć znaczący wpływ na niemal wszystkie obszary społeczeństwa. Jednak dopiero czas pokaże, czy te innowacyjne technologie będą w stanie pokonać bariery na drodze do powszechnego zastosowania.

