Co to Smart Kontrakt?
Inteligentny kontrakt to program komputerowy wdrożony na blockchainie, który wykonuje zestaw predefiniowanych instrukcji. Są przechowywane w publicznej bazie danych i nie mogą być modyfikowane, zmieniane ani fałszowane. Pozwalają na automatyczne przeprowadzanie transakcji bez potrzeby korzystania z osób trzecich, dzięki czemu nie są zależne od nikogo. Główną ideą stojącą za tą koncepcją jest zagwarantowanie mocy wiążącej umowy nie przez prawo, ale bezpośrednio przez kod komputerowy.
Jak w przypadku każdego programu komputerowego, złożoność każdego z nich jest różna. Niektóre implementują proste warunki, takie jak funkcja „if” (jeśli ten warunek zostanie spełniony, umowa zostanie wykonana), podczas gdy inne smart kontrakty są niezwykle złożone.
Jak działa?
Inteligentny kontrakt stanowi swego rodzaju komputerowy odpowiednik umowy papierowej. Podczas jego realizacji wszystkie kroki walidacji są rejestrowane na danym blockchainie (w tym przykładzie omawiamy Ethereum). Proces ten pozwala zabezpieczyć wszystkie dane, uniemożliwiając ich modyfikację lub późniejsze usunięcie.
W praktyce zdecydowana większość smart kontraktów służy do automatyzacji wymiany wartości w postaci kryptowalut. Wszystkie zapisy księgowe dotyczące tych wymian są systematycznie wprowadzane do łańcucha bloków. W ten sposób wszystkie transfery aktywów są publiczne, przewidywalne i nieodwołalne.
Warunki są bardzo jasno określone, a interpretacja kodu jednoznaczna, w przeciwieństwie do interpretacji ludzkiej, która zawsze pozostawia pole do negocjacji lub wykrycia błędu.
Większość inteligentnych kontraktów jest ustandaryzowana, podobnie jak umowy papierowe, dla których mamy możliwość korzystania z szablonów. Najbardziej znanym standardem jest ERC20, a jego główną funkcją jest umożliwienie tworzenia tokenów (aktywów cyfrowych) w sieci Ethereum. Pojawiło się jednak więcej standardów, takich jak ERC721 przeznaczonych dla przedmiotów kolekcjonerskich (na przykład CryptoKitties).
Jak smart kontrakt działa w sieci Ethereum
W sieci Ethereum smart kontrakty są napisane w języku programowania Solidity. Został tak opisany w Białej Księdze przez twórcę Ethereum Vitalika Buterina:
To, co Ethereum zamierza zapewnić, to łańcuch bloków z wbudowanym pełnoprawnym językiem programowania, posiadającym kompletność Turinga, który może być używany do tworzenia „kontraktów”, które mogą być używane do kodowania dowolnych funkcji zmiany stanu, umożliwiając użytkownikom tworzenie dowolnego z opisanych systemów powyżej, a także wielu innych, których jeszcze sobie nie wyobrażaliśmy, po prostu poprzez zapisanie logiki w kilku wierszach kodu
Kontrakty posiadają wiele zastosowań. Funkcjonują jako rachunki z wieloma podpisami (multisig), które sprawiają, że środki można wydać tylko po uzyskaniu zgody, czyli podpisów, od danej liczby uprawnionych użytkowników. Zarządzają umowami pomiędzy użytkownikami. Mogą być używane przez inne kontrakty, czy też przechowują informacje z aplikacji takie jak rejestry członków.
Po zakodowaniu są wykonywane na maszynie wirtualnej Ethereum (EVM, Ethereum Virtual Machine). Jest to rodzaj zdecentralizowanego systemu operacyjnego, w którym wykonywane są inteligentne kontrakty. Aby proces przebiegał sprawnie, kontrakty muszą spełniać trzy kryteria. Muszą być:
- Deterministyczne (dla tych samych argumentów funkcje kontraktów muszą zawsze zwracać ten sam wynik)
- Finalne (Muszą dojść do skutku)
- Odizolowane (Aby nie narażać całego systemu przy ewentualnych błędach lub wirusach)
Problem polega na tym, że w przypadku niektórych programów nie można wiedzieć, czy zostanie sfinalizowany pewnego dnia, czy też wpadnie w nieskończoną pętlę. Aby uniknąć tej pętli w sieci Ethereum, został wprowadzony Gas, jednostka miary, w postaci opłat, która umożliwia określenie czasu, przez jaki kontrakt lub transakcja Ethereum będzie wykonywana na blockchainie.
Poza Ethereum, który już teraz zawiera wiele zdecentralizowanych aplikacji zaprogramowanych za pomocą inteligentnych kontraktów, możliwość wdrażania inteligentnych kontraktów oferują też inne platformy, najbardziej znane to Binance Smart Chain, Polkadot, Tezos, Cosmos, Avalanche czy Cardano.