Wprowadzenie

Nick Szabo po raz pierwszy opisał smart kontrakty w latach 90. XX wieku. Wówczas zdefiniował smart kontrakt jako narzędzie, które formalizuje i zabezpiecza sieci komputerowe, łącząc protokoły i interfejsy użytkownika.

Szabo wspomniał o potencjalnym zastosowaniu smart kontraktów w różnych dziedzinach związanych z umowami, takich jak systemy kredytowe, przetwarzanie płatności i zarządzanie prawami do treści.

W świecie kryptowalut możemy zdefiniować inteligentny kontrakt jako aplikację lub program, który działa na blockchainie. Generalnie działają jak umowa cyfrowa, która jest egzekwowana przez zestaw specyficznych reguł. Te reguły są zdefiniowane przez kod komputerowy, który jest replikowany i wykonywany przez wszystkie węzły sieci.

Inteligentne kontrakty blockchain umożliwiają tworzenie protokołów bez zaufania. Oznacza to, że dwie strony mogą podejmować zobowiązania za pośrednictwem blockchain, nie musząc się znać lub sobie ufać. Mogą być pewni, że jeśli warunki nie zostaną spełnione, kontrakt nie zostanie wykonany. Ponadto użycie inteligentnych kontraktów może wyeliminować potrzebę pośredników, co znacząco obniża koszty operacyjne.

Chociaż protokół Bitcoin obsługuje inteligentne kontrakty od wielu lat, stały się one popularne dzięki twórcy i współzałożycielowi Ethereum, Vitalikowi Buterinowi. Należy jednak zauważyć, że każdy blockchain może mieć inną metodę wdrażania inteligentnych kontraktów.

Ten artykuł koncentruje się na inteligentnych kontraktach działających na wirtualnej maszynie Ethereum (EVM), która jest istotną częścią blockchaina Ethereum.


Więc jak to działa?

Mówiąc prosto, inteligentny kontrakt działa jak program deterministyczny. Wykonuje określone zadanie, gdy i jeśli pewne warunki są spełnione. W związku z tym system inteligentnych kontraktów często stosuje funkcje „jeśli... to...”. Ale mimo terminologii, inteligentne kontrakty nie mają wartości prawnej i nie są inteligentne. To po prostu kod wykonywany w systemie rozproszonym (blockchain).

W sieci Ethereum inteligentne kontrakty są odpowiedzialne za wykonywanie i zarządzanie operacjami blockchain, które mają miejsce, gdy użytkownicy (adresy) wchodzą w interakcje między sobą. Każdy adres, który nie jest inteligentnym kontraktem, nazywa się kontem zewnętrznym (EOA). W ten sposób inteligentne kontrakty są kontrolowane przez kod komputerowy, a EOA są kontrolowane przez użytkowników.

Zasadniczo inteligentne kontrakty Ethereum składają się z kodu kontraktu i dwóch kluczy publicznych. Pierwszy klucz publiczny jest tym, który dostarcza twórca kontraktu. Drugi klucz reprezentuje sam kontrakt, działając jako unikalny identyfikator cyfrowy dla każdego inteligentnego kontraktu.

Wdrożenie inteligentnego kontraktu odbywa się za pośrednictwem transakcji blockchain. Może być aktywowany tylko wtedy, gdy jest wywoływany przez EOA (lub przez inne inteligentne kontrakty). Jednak pierwszy wyzwalacz zawsze pochodzi od EOA (użytkownika).


Główne cechy

Inteligentny kontrakt Ethereum często posiada następujące cechy:

Rozproszony. Inteligentne kontrakty są replikowane i dystrybuowane we wszystkich węzłach sieci Ethereum. To jedna z głównych różnic w porównaniu do innych rozwiązań, które opierają się na scentralizowanych serwerach.

Deterministyczny. Inteligentne kontrakty wykonują tylko te działania, do których zostały zaprojektowane, pod warunkiem, że wymagania są spełnione. Ponadto wynik zawsze będzie taki sam, niezależnie od tego, kto je wykonuje.

Autonomiczny. Inteligentne kontrakty mogą automatyzować wszelkiego rodzaju zadania, działając jak program samowykonawczy. W większości przypadków jednak, jeśli inteligentny kontrakt nie zostanie wyzwolony, pozostanie „w uśpieniu” i nie wykona żadnej akcji.

Niezmienny. Inteligentne kontrakty nie mogą być modyfikowane po ich wdrożeniu. Mogą być „usunięte” tylko wtedy, gdy wcześniej wdrożono określoną funkcję. Tak więc możemy powiedzieć, że inteligentne kontrakty mogą zapewnić kod niepodważalny.

Dostosowywalny. Przed ich wdrożeniem, inteligentne kontrakty mogą być kodowane na różne sposoby. Mogą być więc używane do tworzenia wielu rodzajów zdecentralizowanych aplikacji (DApps). To dlatego, że Ethereum jest blockchainem Turing-complete.

Bez zaufania. Dwie lub więcej stron mogą wchodzić w interakcje za pośrednictwem inteligentnych kontraktów bez znajomości się lub ufania sobie. Ponadto technologia blockchain zapewnia dokładność danych.

Przejrzystość. Inteligentne kontrakty, ponieważ są oparte na publicznym blockchainie, ich kod źródłowy jest nie tylko niezmienny, ale także widoczny dla wszystkich.


Czy mogę zmodyfikować lub usunąć inteligentny kontrakt?

Nie można dodać nowych funkcji do inteligentnego kontraktu Ethereum po jego wdrożeniu. Jednak jeśli jego twórca uwzględni funkcję o nazwie SELFDESTRUCT w kodzie, będzie mógł „usunąć” inteligentny kontrakt w przyszłości i zastąpić go nowym. Z drugiej strony, jeśli funkcja nie została wcześniej uwzględniona w kodzie, nie można go usunąć.

Co ciekawe, inteligentne kontrakty rozwijające się pozwalają deweloperom na większą elastyczność w zakresie niezmienności kontraktów. Istnieje wiele sposobów na tworzenie inteligentnych kontraktów rozwijających się, o różnym stopniu złożoności.

W uproszczonym przykładzie wyobraźmy sobie, że inteligentny kontrakt jest podzielony na kilka małych kontraktów. Niektóre z nich są zaprojektowane jako niezmienne, podczas gdy inne mają włączoną funkcję „Usuń”. To oznacza, że część kodu (inteligentne kontrakty) może być usunięta i zastąpiona, podczas gdy inne funkcje pozostają nienaruszone.


Zalety i przypadki użycia

Jako programowalny kod, inteligentne kontrakty są wysoce dostosowywalne i mogą być projektowane na różne sposoby, oferując tym samym wiele rodzajów usług i rozwiązań.

Jako zdecentralizowane i samowykonawcze programy, inteligentne kontrakty mogą oferować zwiększoną przejrzystość i zmniejszać koszty operacyjne. W zależności od ich wdrożenia, mogą również zwiększać efektywność i ograniczać wydatki administracyjne.

Inteligentne kontrakty są szczególnie przydatne w sytuacjach obejmujących transfer lub wymianę funduszy między dwiema stronami lub więcej.

Innymi słowy, inteligentne kontrakty mogą być projektowane dla szerokiej gamy przypadków użycia. Do przykładów należą tworzenie tokenizowanych aktywów, systemów głosowania, portfeli kryptowalutowych, zdecentralizowanych giełd, gier i aplikacji mobilnych. Mogą być również wdrażane z innymi rozwiązaniami blockchain, które dotyczą dziedzin takich jak opieka zdrowotna, organizacje charytatywne, łańcuch dostaw, zarządzanie i zdecentralizowane finanse (DeFi).


ERC-20

Tokeny emitowane na blockchainie Ethereum podążają za normą znaną jako ERC-20. Norma ta opisuje podstawowe funkcje wszystkich tokenów opartych na Ethereum. W związku z tym, te aktywa cyfrowe często nazywane są tokenami ERC-20 i stanowią dużą część istniejących kryptowalut.

Wiele firm i startupów blockchain wdrożyło inteligentne kontrakty, aby emitować swoje tokeny cyfrowe w sieci Ethereum. Po emisji, większość z tych firm dystrybuowała swoje tokeny ERC-20 za pośrednictwem początkowych ofert monet (ICO). W większości przypadków wykorzystanie inteligentnych kontraktów umożliwiło wymianę funduszy i dystrybucję tokenów w sposób niezawodny i efektywny.


Ograniczenia

Inteligentne kontrakty składają się z kodu komputerowego napisanego przez ludzi. To stwarza wiele ryzyk, ponieważ kod jest narażony na podatności i błędy. Idealnie, powinny być pisane i wdrażane przez doświadczonych programistów, zwłaszcza gdy dotyczą wrażliwych informacji lub dużych sum pieniędzy.

Ponadto niektórzy twierdzą, że systemy scentralizowane mogą dostarczyć większość rozwiązań i funkcji oferowanych przez inteligentne kontrakty. Główna różnica polega na tym, że inteligentne kontrakty działają w sieci P2P, a nie na centralnym serwerze. I ponieważ opierają się na systemie blockchain, mają tendencję do bycia niezmiennymi lub bardzo trudnymi do modyfikacji.

Bycie niezmiennym może być świetne w niektórych sytuacjach, ale bardzo złe w innych. Na przykład, gdy zdecentralizowana organizacja autonomiczna (DAO) znana jako „DAO” została zhakowana w 2016 roku, miliony etherów (ETH) zostały skradzione z powodu wad w ich kodzie inteligentnych kontraktów.

Ponieważ ich inteligentny kontrakt był niezmienny, deweloperzy nie mogli poprawić kodu. To ostatecznie doprowadziło do twardego forku, dając początek drugiemu łańcuchowi Ethereum. Mówiąc prosto, jeden łańcuch „anulował” włamanie i zwrócił środki do legalnych właścicieli (to część obecnego blockchaina Ethereum). Drugi łańcuch postanowił nie ingerować w włamanie, wskazując, że rzeczy, które dzieją się na blockchainie, nigdy nie powinny być modyfikowane (ten łańcuch nazywa się teraz Ethereum Classic).

Ważne jest, aby zauważyć, że problem nie pochodzi z blockchaina Ethereum. Zamiast tego został spowodowany złym wdrożeniem inteligentnego kontraktu.

Innym ograniczeniem inteligentnych kontraktów jest ich niepewny status prawny. Nie tylko dlatego, że jest to strefa szarości w większości krajów, ale także dlatego, że inteligentne kontrakty nie pasują do obecnego ramy prawnego.

Na przykład, wiele kontraktów wymaga, aby obie strony były poprawnie zidentyfikowane i miały więcej niż 18 lat. Pseudonimowość zapewniana przez technologię blockchain, w połączeniu z brakiem pośredników, może zagrażać tym wymaganiom. Chociaż istnieją potencjalne rozwiązania tego problemu, stosowalność prawna inteligentnych kontraktów jest prawdziwym wyzwaniem, zwłaszcza gdy chodzi o sieci rozproszone bez granic.


Krytyka

Niektórzy entuzjaści blockchain uważają, że inteligentne kontrakty są rozwiązaniem, które wkrótce zastąpi i zautomatyzuje dużą część naszych systemów biznesowych i administracyjnych. Chociaż to możliwe, prawdopodobnie jest to dalekie od stania się normą.

Inteligentne kontrakty są z pewnością interesującą technologią. Ale fakt, że są rozproszone, deterministyczne, przejrzyste i w pewnym stopniu niezmienne, może sprawić, że będą mniej atrakcyjne w niektórych sytuacjach.

Krytyka opiera się zasadniczo na tym, że inteligentne kontrakty nie stanowią odpowiedniego rozwiązania dla wielu problemów świata rzeczywistego. W rzeczywistości niektóre organizacje mają interes w stosowaniu klasycznych rozwiązań opartych na serwerach.

W porównaniu z inteligentnymi kontraktami, serwery scentralizowane są łatwiejsze i tańsze w utrzymaniu, a także mają tendencję do wykazywania zwiększonej efektywności pod względem szybkości i komunikacji między sieciami (interoperacyjności).


Podsumowując

Nie ma wątpliwości, że inteligentne kontrakty miały znaczący wpływ na świat kryptowalut i z pewnością zrewolucjonizowały przestrzeń blockchain. Nawet jeśli użytkownicy końcowi nie interagują bezpośrednio z inteligentnymi kontraktami, mogą one napędzać szeroki zakres aplikacji w przyszłości, obejmujących usługi finansowe i zarządzanie łańcuchem dostaw.

Razem inteligentne kontrakty i blockchain mają potencjał do zakłócenia prawie wszystkich dziedzin naszej społeczeństwa. Ale tylko czas pokaże, czy te rewolucyjne technologie zdołają pokonać wiele przeszkód na drodze do ich szerokiej adopcji.