Czym są inteligentne kontrakty: teoria z modelami i przykładami
- Luda Kukuetu
- 2024-04-08
- 9 min
- 0
- 844
Wszystko, co kiedykolwiek chciałeś wiedzieć o inteligentnych kontraktach, ich istocie, rodzajach, osobliwościach tworzenia i zastosowaniu w praktyce.
Czym jest inteligentny kontrakt w prostych słowach
Inteligentne kontrakty (smart kontrakty, smart contracts, intelligent contracts) są dziś na ustach każdego, kto w taki czy inny sposób interesuje się blockchainem i kryptowalutami.
Mówiąc najprościej, inteligentny kontrakt to algorytm, który umożliwia wymianę aktywów na jasno określonych warunkach bez pośredników.
Innymi słowy, jest to program, który wykonuje określone działania w odpowiedzi na spełnienie określonych warunków (zgodnie ze schematem "jeśli..., to...").
Dlaczego jest inteligentny?
Na to pytanie odpowiedział autor pomysłu, kryptograf-prawnik Nick Szabo:
Różne spojrzenia na istotę
Od tego czasu (a były to lata 90. ubiegłego wieku) wiele osób pracowało nad uwolnieniem potencjału inteligentnych kontraktów, zarówno w teorii, jak i w praktyce.
Oto kilka bardziej współczesnych terminów związanych z inteligentnymi kontraktami:
- Algorytm komputerowy zaprojektowany do generowania, kontrolowania i dostarczania informacji o własności czegoś. Najczęściej odnosi się do wykorzystania technologii blockchain.
- Umowa prawna lub jej element, który jest reprezentowany lub wykonywany w formie oprogramowania.
- To fragment kodu, algorytm komputerowy stworzony do wykonywania określonych zadań w określonych warunkach (definicja techniczna).
W zasadzie definicje te nie są ze sobą sprzeczne, po prostu rozpatrują przedmiot dyskusji z różnych punktów widzenia. Nie zagłębiajmy się w dyskusyjną dżunglę teorii i rozważmy smart kontrakt jako technologię opartą na blockchainie.
Trochę historii
Nick Szabo postrzegał inteligentny kontakt jako protokół komputerowy, który w oparciu o algorytmy matematyczne samodzielnie przeprowadza transakcje, w pełni kontrolując wypełnianie zobowiązań. W momencie jego wynalezienia nie istniała infrastruktura niezbędna do jego wdrożenia.
Inteligentne kontrakty Bitcoin
Wraz z upowszechnieniem się blockchaina, idea ta nabrała praktycznego znaczenia. Niektóre zasady inteligentnych kontraktów zostały zaimplementowane w protokole Bitcoin.
Początkowo protokół Bitcoin nie miał być protokołem inteligentnych kontraktów, a jedynie do przesyłania prostych danych (wejścia i wyjścia transakcji, szczegóły w artykule).
Nadal jednak możliwe jest wykonywanie najprostszych operacji logicznych na blockchainie Bitcoina i w rzeczywistości tworzenie kilku wariantów inteligentnych kontraktów, które nie mają kompletności Turinga (językiem inteligentnych kontraktów jest Script, przykład takich algorytmów znajduje się poniżej).
Przykłady inteligentnych kontraktów na blockchainie Bitcoina:
- Escrow - do użycia środków wymagany jest podpis strony trzeciej.
- Multisig - transakcja może zostać sfinalizowana tylko po podpisaniu przez kilka osób z określonej liczby "właścicieli" kontraktu, liczba i adresy uczestników są wstępnie ustalane w momencie tworzenia takiego portfela.
- Testamentowy - jeśli portfel jest nieaktywny, spadkobiercy otrzymują środki (dokładniej, właściciel adresu może wydać w dowolnym momencie, ale spadkobiercy mogą wydać wypłaty z portfela dopiero po bloku z określoną datą, każda nowa transakcja wysyła resztę z przedłużeniem tego okresu).
- Safe - środki nie mogą być dostępne do określonej daty.
- Swapy atomowe i skrypty do tworzenia kanałów płatności - warstwa 2 i zdecentralizowane giełdy.
Ze względu na trudności w implementacji bardziej złożonej logiki w blockchainie Bitcoina, opracowano nowe platformy.
Inteligentne kontrakty Ethereum
Potencjał inteligentnych kontraktów i wady BTC zostały kiedyś ocenione przez Vitalika Buterina. Opracował on platformę Ethereum, która umożliwia tworzenie pełnoprawnych inteligentnych kontraktów.
Główne różnice to język programowania Solidity i możliwość przechowywania informacji o stanie w łańcuchu bloków. Innymi słowy, sieć Ethereum postrzega każdą transakcję jako część systemu, podczas gdy Bitcoin traktuje ją jako całkowicie odrębną.
W Ethereum można również tworzyć inteligentne kontrakty do generowania tokenów. Najpopularniejszym z nich jest token ERC-20. Ta standaryzacja umożliwiła uproszczenie interakcji między portfelami, projektami, giełdami itp.
Obecnie wiele projektów opracowuje własne platformy dla inteligentnych kontraktów (Tron, NEO, EOS, Hyperledger Fabric, Aeternity, Waves, Ontology, VeChain, Stellar), które różnią się algorytmem konsensusu, przepustowością, kosztem przetwarzania transakcji i funkcjonalnością.
Jednak Ethereum ze standardem ERC-20 jest nadal najpopularniejszą platformą.
Rodzaje inteligentnych kontraktów
Przyjrzyjmy się klasyfikacji inteligentnych kontraktów według kilku kryteriów.
Środowisko wykonania:
- scentralizowane inteligentne kontrakty (działają na scentralizowanej platformie, z jednym walidatorem, rejestr znajduje się na jednym serwerze. Przykład: kontrakty dostawców usług mobilnych lub banków);
- zdecentralizowane (tworzone w łańcuchu bloków).
Proces ustalania zadań i wypełniania warunków inteligentnego kontraktu:
- dowolnie programowalny (pełny);
- ograniczony (niekompletny);
- predefiniowany (ściśle wpisany).
Poziom prywatności (w odniesieniu do warunków inteligentnego kontraktu):
- w pełni otwarty;
- częściowo otwarty;
- całkowicie poufny.
Jak działają inteligentne kontrakty w blockchainie
Inteligentny kontrakt to aplikacja (lub program), która jest tworzona i działa na blockchainie. Jest to umowa cyfrowa, w której spełnienie określonego warunku zawsze prowadzi do tego samego rezultatu - wymiany aktywów, praw i danych.
Elementy inteligentnych kontraktów:
- Platforma, na której napisany jest algorytm (na przykład Ethereum).
- Przedmiot: Aktywa podlegające wymianie na podstawie inteligentnego kontraktu (towary, usługi, kryptowaluty, dane).
- Warunki, które należy spełnić w celu wymiany.
- Strony uczestniczące w wymianie i posiadające unikalny podpis cyfrowy.
- Oracles (w razie potrzeby) - niezależne źródła informacji zewnętrznych.
Charakterystyczne cechy inteligentnych kontraktów:
- Dystrybucja (są replikowane i dystrybuowane we wszystkich węzłach sieci).
- Determinizm (jasny algorytm działań i zawsze przewidywalny wynik).
- Autonomia (po zainicjowaniu warunki są spełniane automatycznie, bez decyzji pośredników).
- Niezmienność (z reguły nie można ich zmienić po utworzeniu).
- Możliwość dostosowania (podczas procesu tworzenia można przepisać dowolny obliczony algorytm).
- Wiarygodność (strony ufają protokołowi, wszystkie dane są rejestrowane).
- Przejrzystość (większość kodu źródłowego jest otwarta. Istnieją wyjątki - MAST - ale po wykonaniu kod jest nadal otwarty).
Jak działają inteligentne kontrakty
Inteligentny kontrakt jest często aktywowany przez osobę, która chce dokonać wymiany. Prawidłowa zgodność z warunkami inteligentnego kontraktu jest potwierdzana przez węzły sieci.
Technologię inteligentnych kontraktów można schematycznie przedstawić w następujący sposób:
- Osoba inicjuje transakcję.
- Informacja o niej trafia do sieci składającej się z węzłów (blockchain nodes).
- W oparciu o określone algorytmy konsensusu węzły potwierdzają informacje o statusie inicjatora i samej transakcji.
- Po potwierdzeniu transakcja staje się częścią nowego bloku (który zawiera inne transakcje).
- Nowy blok jest dołączany do łańcucha bloków (blockchain).
- Transakcja zostaje zakończona.
Zastosowanie smart kontraktów
Obecnie jesteśmy świadkami wyłaniania się ery inteligentnych kontraktów. Ich potencjał i zalety pozwalają na wdrożenie ich w obszarach, w których wymagana jest jasna, przejrzysta i szybka realizacja prostych rutynowych zadań, które nie wymagają kosztownego wsparcia prawnego.
Na przykład kontrola dostaw (logistyka), sprzedaż online, prowadzenie rejestrów (rejestracja praw własności, dokumentacja medyczna), szereg usług bankowych (np. rozliczenia), księgowość, ubezpieczenia, głosowanie, identyfikacja osobista itp. Są to obszary, w których rutynowa praca urzędnika może być z powodzeniem zautomatyzowana, eliminując ryzyko związane z czynnikiem ludzkim.
Schemat aplikacji (na przykład zakup e-booka za kryptowalutę):
- Zgodnie z warunkami inteligentnego kontraktu, dostęp do książek jest przyznawany po zapłaceniu określonej ilości monet.
- Kupujący inicjuje prośbę o dostęp do książki i wysyła monety.
- Węzły, po otrzymaniu informacji od stron, sprawdzają zgodność z warunkami umowy (status stron, prawa stron do posiadania aktywów i ilość monet) i potwierdzają transakcje, jeśli warunki są spełnione.
- Transakcje te są dodawane do łańcucha bloków i do sieci.
- Transakcje są zakończone: sprzedający otrzymuje monety, a kupujący uzyskuje dostęp do księgi.
Jak dotąd najbardziej udanym przykładem wykorzystania inteligentnych kontraktów jest ICO (initial coin offering). Ponadto inteligentne kontrakty są aktywnie wykorzystywane na zdecentralizowanym rynku finansowym (DeFi), tokenizacji aktywów, przetwarzaniu płatności dla dApps i DEX, w grach i aplikacjach mobilnych.
Większość ICO wykorzystuje inteligentne kontrakty na platformie Ethereum.
Warunki funkcjonowania inteligentnych kontraktów
Aby inteligentne kontrakty mogły być szeroko stosowane w prawdziwym życiu, muszą zostać stworzone pewne warunki.
- Po pierwsze, wymaganym środowiskiem jest blockchain, czyli rozproszona księga, na której zostanie utworzony inteligentny kontrakt, oraz inna infrastruktura.
- Po drugie, ważne jest rozpowszechnienie kryptowaluty jako środka płatniczego (na razie żaden inny środek nie jest odpowiedni) i zwiększenie jej wiarygodności. Inteligentne kontrakty wykorzystują kryptowalutę jako paliwo i jednostkę rozliczeniową.
- Po trzecie, konieczne jest poszerzenie grona osób, które mają dostęp do inteligentnych kontraktów i mogą z nich korzystać.
- I po czwarte, potrzebna jest regulacja prawna użytkowania: inteligentne kontrakty i kryptowaluty podlegają regulacjom prawnym, które dopiero się pojawiają.
Zalety i wady inteligentnych kontraktów
Co zatem sprawia, że inteligentne kontrakty są tak obiecujące i pożądane? I co powstrzymuje je przed przejęciem władzy nad światem?
Zalety | Wady |
Niezależność (brak pośredników) | Reputacja (brak pełnego zaufania publicznego) |
Bezpieczeństwo (wszystkie informacje są bezpiecznie przechowywane w łańcuchu bloków w zaszyfrowanej formie) | Status prawny (nieuregulowany prawnie uniemożliwia wdrożenie w różnych sferach życia) |
Bezbłędność (brak czynnika ludzkiego, wysoka dokładność wykonania) | Ryzyko błędów w kodzie, poprawność prawna digitalizacji warunków umowy |
Szybkość (zautomatyzowane procesy są niemal natychmiastowe) | Złożoność wdrożenia (integracja zaawansowanych technologii we wszystkich sferach życia jest nadal zbyt zasobochłonna) |
Oszczędności (brak kosztów transakcji i pośredników, z wyjątkiem płatności za gaz) | Płatności w kryptowalucie (kryptowaluta nie jest uznawana za prawny środek płatniczy) |
Przejrzystość (wszystkie warunki i wyniki są znane z góry) | Oracles (potrzeba wiarygodnych zewnętrznych źródeł informacji) |
Niezmienność (nie można wprowadzać zmian do już utworzonego kontraktu) | Niezmienność (brak elastyczności warunków, brak możliwości skorygowania błędu) |
Tworzenie i rozwój inteligentnych kontraktów
Aby stworzyć własny inteligentny kontrakt, można skorzystać z usług profesjonalnych programistów lub spróbować zrobić to samodzielnie.
Instrukcje krok po kroku dotyczące tworzenia inteligentnego kontraktu można znaleźć w Internecie, ale podstawowa wiedza programistyczna jest niezbędna.
Na początek, w oparciu o cele projektu, należy wybrać zdecentralizowaną platformę do tworzenia inteligentnych kontraktów (Ethereum, Tron, Lisk, Cardano, Hyperledger Fabric, Nem, Stellar, NEO, Ontology...).
Główne języki programowania dla inteligentnych kontraktów: JavaScript, Solidity, Fe, Rust, Vyper, Script, Serpent.
Z reguły platformy inteligentnych kontraktów mają gotowe szablony, co oznacza, że nie trzeba pisać całego kodu programu. Wystarczy wpisać parametry umowy w specjalnie wyznaczone pola i potwierdzić jej wykonanie.
Przed użyciem kodu należy go przetestować, aby zidentyfikować różne błędy i ukryte luki w zabezpieczeniach.
Podsumowanie
Podsumowując, inteligentny kontrakt to hybryda umowy i kodu, algorytm, który automatycznie uruchamia określone konsekwencje po spełnieniu określonego warunku, bez udziału osób trzecich.
Jak dotąd wykorzystanie inteligentnych kontraktów w codziennym życiu jest ograniczone czynnikami technicznymi, prawnymi i społecznymi.
Już teraz wiadomo jednak, że smart kontrakty mają przed sobą przyszłość. Być może zrewolucjonizują one świat zarządzania i finansów. A może po prostu zautomatyzują standardowe procedury. Tak czy inaczej, potencjał tej technologii daje pole do nowych pomysłów.