Certified Crypto Market

Czym jest smart kontrakt?

Czym jest smart kontrakt? Dowiedz się, jak działają samowykonujące się programy na blockchainie, co napędzają, jakie mają ograniczenia i ryzyka oraz jak sprawdzić kontrakt przed użyciem.

CCM ResearchCertified Crypto Market4 paź 20265 min czytania

Smart kontrakt (inteligentny kontrakt) to program zapisany na blockchainie, który uruchamia się automatycznie po spełnieniu z góry określonych warunków. Może przechowywać i przesyłać środki zgodnie ze swoim kodem, bez banku, brokera czy innego pośrednika decydującego o wykonaniu każdego kroku.

Smart kontrakty napędzają niemal wszystko w kryptowalutach, co wykracza poza proste płatności: tokeny, zdecentralizowane giełdy, protokoły pożyczkowe, NFT i DAO. Zrozumienie, co potrafią, a czego nie, pomaga ocenić zarówno szanse, jak i ryzyka związane z ich używaniem.

Jak działają smart kontrakty

Ideę umów egzekwowanych przez kod opisał w latach 90. informatyk Nick Szabo, posługując się analogią automatu z przekąskami: wrzucasz odpowiednie monety, wybierasz produkt, a maszyna go wydaje bez udziału sprzedawcy.

Na blockchainie proces wygląda tak:

  1. 1Programista pisze kod, na przykład w Solidity dla Ethereum lub w Rust dla niektórych innych sieci.
  2. 2Kod zostaje wdrożony w transakcji i otrzymuje własny adres.
  3. 3Użytkownicy wywołują kontrakt, wysyłając transakcje na ten adres, często z dołączonymi tokenami.
  4. 4Każdy węzeł wykonuje kod i uzgadnia wynik, więc rezultat jest taki sam dla wszystkich.
  5. 5Stan kontraktu zostaje zaktualizowany — salda, rejestry własności lub ustawienia zmieniają się on-chain.

Każdy krok kosztuje opłatę sieciową. W Ethereum ta opłata nazywa się gas; zobacz, czym jest gas w Ethereum, aby dowiedzieć się, jak działa.

Do czego służą smart kontrakty

ZastosowanieCo robi kontraktPrzykład
TokenyŚledzi salda i transferyKontrakt tokena ERC-20
Zdecentralizowane giełdyPrzechowuje pule tokenów i wycenia transakcje za pomocą wzoruAutomatyczny animator rynku (AMM)
PożyczkiPrzyjmuje zabezpieczenia, udziela pożyczek, likwiduje ryzykowne pozycjeRynek pieniężny DeFi
NFTRejestruje własność unikalnych przedmiotówKontrakt NFT danej kolekcji
DAOLiczy głosy i wykonuje zatwierdzone propozycjeKontrakt zarządzania on-chain
Portfele multisigWymaga kilku zatwierdzeń, by przenieść środkiSkarbiec projektu

Wiele z tych kontraktów wywołuje się nawzajem, dlatego DeFi bywa opisywane jako „pieniężne klocki lego”. Nasz przewodnik po DeFi pokazuje, jak te elementy do siebie pasują.

Smart kontrakty a tradycyjne umowy

Warto porównać smart kontrakty z papierowymi umowami, które zna większość ludzi.

Tradycyjna umowaSmart kontrakt
Zapisana wJęzyku naturalnymKodzie programu
Egzekwowana przezSądy, instytucje, dobrą wolę stronSieć blockchain wykonującą kod
ElastycznośćMożna ją renegocjować lub interpretowaćDziała dokładnie tak, jak napisano, chyba że zbudowano go z możliwością aktualizacji
PrzejrzystośćZwykle poufnaKod i aktywność są często publiczne on-chain
Rozstrzyganie sporówSędziowie, arbitrzy, prawnicyBrak wbudowanego sposobu rozstrzygania sporów poza kodem
SzybkośćOd dni do miesięcy na rozliczenieOd sekund do minut, zależnie od sieci

Mocne strony to szybkość, przejrzystość i wyeliminowanie pośredników. Słabością jest sztywność: kod nie potrafi ważyć sprawiedliwości ani kontekstu. Jeśli wydarzy się coś nieoczekiwanego, czego twórcy nie przewidzieli, kontrakt po prostu wykona swoje reguły — nawet gdy wynik w oczywisty sposób nie jest tym, czego ktokolwiek chciał. Szerzej piszemy o tym w artykule Czym są testnet i mainnet?

Kto pisze i kontroluje smart kontrakty

Każdy może wdrożyć smart kontrakt; na publicznych blockchainach nie ma procesu zatwierdzania. Ta otwartość umożliwia szybkie innowacje, ale oznacza też, że oszukańcze kontrakty wdraża się równie łatwo jak uczciwe. Po wdrożeniu kontrola zależy od tego, jak kontrakt napisano: niektóre nie mają żadnego właściciela, inne kontroluje jeden portfel, a jeszcze inne multisig lub głosowanie DAO z opóźnieniem czasowym. Wiedza o tym, który model obowiązuje, to kluczowy element oceny ryzyka każdej aplikacji. Powiązana lektura: Ataki na smart kontrakty.

Czego smart kontrakty nie potrafią

Smart kontrakty są potężne, ale mają wąski zakres.

  • Znają tylko dane on-chain. Aby korzystać z informacji ze świata rzeczywistego, takich jak ceny czy wyniki sportowe, polegają na wyroczniach, które wprowadzają zewnętrzne dane do blockchaina i mogą zawieść lub zostać zmanipulowane.
  • Nie rozumieją intencji. Jeśli wyślesz środki do niewłaściwej funkcji lub podpiszesz złośliwe zatwierdzenie, kontrakt zrobi to, co mówi kod.
  • Nie są automatycznie umowami prawnymi. Wykonanie kodu i wykonalność prawna to odrębne kwestie.
  • Nie mogą cofnąć pomyłek. Zakończona transakcja zwykle pozostaje zakończona.

Ryzyka korzystania ze smart kontraktów

Błędy i exploity

Kod piszą ludzie, a ludzie popełniają błędy. Atakujący szukają luk i mogą wyprowadzić środki w jednej transakcji. Audyty pomagają, ale nie gwarantują bezpieczeństwa — zobacz, jak ocenić raport z audytu smart kontraktu.

Klucze administratora i aktualizacje

Wiele kontraktów można aktualizować lub ma funkcje właściciela, które pozwalają wstrzymać handel, zmienić opłaty lub wybić nowe tokeny. Mogą one chronić użytkowników w sytuacji awaryjnej, ale stwarzają też możliwość nadużyć lub kradzieży klucza administratora. Powiązana lektura: Abstrakcja kont w pigułce.

Złośliwe kontrakty

Oszukańcze tokeny mogą zawierać ukryte reguły, na przykład blokadę sprzedaży lub ogromne podatki od transferów. Kontrakt może wyglądać normalnie na stronie tokena, a w praktyce zachowywać się zupełnie inaczej. Zobacz też: ICO vs IEO vs IDO.

Zatwierdzenia

Korzystanie z DeFi często wymaga zatwierdzenia kontraktu do wydawania twoich tokenów. Nieograniczone zatwierdzenia dla wadliwego lub złośliwego kontraktu mogą później posłużyć do zabrania tych tokenów. Jeśli chcesz pójść dalej, przeczytaj Czym jest mempool?

Jak sprawdzić smart kontrakt przed użyciem

  1. 1Potwierdź adres na oficjalnej stronie projektu i w niezależnym źródle.
  2. 2Wyszukaj go w eksploratorze bloków, aby zobaczyć datę utworzenia, aktywność i to, czy kod źródłowy jest zweryfikowany.
  3. 3Sprawdź audyty znanych firm i przeczytaj, czy wykryte problemy zostały naprawione.
  4. 4Ustal, kto kontroluje funkcje administratora — multisig, timelock czy pojedynczy portfel.
  5. 5Zacznij od małych kwot i ograniczaj zatwierdzenia tokenów do potrzebnej kwoty.

Nasz przewodnik o tym, jak zweryfikować oficjalny adres kontraktu tokena, szczegółowo omawia pierwsze dwa kroki.

Podsumowanie

Smart kontrakt to samowykonujący się kod na blockchainie, który może przechowywać i przesyłać wartość bez pośrednika. Umożliwia to otwarte, programowalne finanse, ale oznacza też, że błędy, ukryte uprawnienia administratora i złośliwy kod działają natychmiast i nieodwracalnie. Zweryfikuj adres, dowiedz się, kto kontroluje kontrakt, i zatwierdzaj tylko to, czego potrzebujesz.

Najczęściej zadawane pytania

Czy smart kontrakty są prawnie wiążące?

Nie automatycznie. Smart kontrakt to oprogramowanie działające na blockchainie, a nie umowa prawna sama w sobie. Niektóre systemy prawne mogą uznawać umowy zapisane lub wykonywane za pomocą kodu, ale zależy to od kraju i okoliczności. Jeśli liczy się wykonalność prawna, sprawdź lokalne przepisy lub zapytaj wykwalifikowanego specjalistę.

Czy smart kontrakt można zmienić po wdrożeniu?

Samego wdrożonego kodu zwykle nie da się edytować. Wiele projektów stosuje jednak rozwiązania umożliwiające aktualizację, takie jak kontrakty proxy, które pozwalają administratorowi skierować użytkowników do nowego kodu. Ta elastyczność pomaga naprawiać błędy, ale oznacza też, że ktoś ma władzę zmieniać zasady. Sprawdź, kto kontroluje klucze aktualizacji lub administratora.

Które blockchainy obsługują smart kontrakty?

Ethereum spopularyzowało smart kontrakty ogólnego przeznaczenia, a obsługuje je wiele innych sieci, w tym BNB Chain, Solana, Avalanche, Cardano oraz sieci warstwy 2 Ethereum. Bitcoin celowo obsługuje jedynie ograniczone skrypty. Każda platforma ma własne języki i narzędzia, więc kontraktów nie da się automatycznie przenosić między nimi.

Co się dzieje, gdy smart kontrakt ma błąd?

Kod wykonuje się dokładnie tak, jak został napisany, łącznie z błędem. Atakujący mogą go wykorzystać do wyprowadzenia środków, a transakcji zwykle nie da się cofnąć. Niektóre projekty mogą wstrzymać lub zaktualizować kontrakty, aby ograniczyć szkody, natomiast niezmiennych kontraktów nie da się w ogóle naprawić. Audyty i programy bug bounty zmniejszają to ryzyko, ale go nie eliminują.

Ten artykuł ma charakter wyłącznie edukacyjny i nie stanowi porady finansowej, prawnej ani podatkowej. Kryptowaluty są zmienne i możesz stracić pieniądze. Zanim podejmiesz działanie, sprawdź aktualne ceny i szczegóły projektu na stronie każdej monety.