Smart Kontrakty: Czym Są i Jak z Nich Korzystać?
Czym Są Smart Kontrakty? Wyjaśnienie w Pigułce
Smart kontrakty to automatycznie egzekwowane umowy zapisane na technologii blockchain, które eliminują potrzebę trzeciego podmiotu do realizacji porozumienia pomiędzy dwiema stronami.
Najprościej mówiąc, inteligentne kontrakty to po prostu kod zaprogramowany na blockchainie, najczęściej przy użyciu języka Solidity.
Działają one na zasadzie algorytmów, który w uproszczonej formie można porównać do funkcji JEŻELI w Excelu, czyli jeśli X (pewien warunek) jest spełniony, to Y (pewien rezultat) zostanie uruchomiony.
Warunki, o których właśnie mówiliśmy, są również weryfikowane przez walidatorów blockchaina (górników), którzy dzielą się mocą obliczeniową swoich komputerów.
Jeśli wszystkie warunki zostały zatwierdzone i opłata GAS została opłacona, smart kontrakt zostaje automatycznie uruchomiony, egzekwując zapisany w nim końcowy rezultat.
Uproszczony Przykład
Marek chce sprzedać swoje NFT, więc postanawia wystawić je na aukcji na OpenSea (jednej z bardziej popularnych zdecentralizowanych platform do sprzedaży i kupna NFT), a Kasia postanawia kupić je od Marka za pośrednictwem tej platformy.
Zawsze gdy używasz zdecentralizowanych platform do transakcji takich jak np. OpenSea, smart kontrakt będzie działał w tle, aby upewnić się, że cała operacja przejdzie płynnie.
W naszym przykładzie, inteligentny kontrakt sprawdza, czy Kasia przekazała odpowiednią ilość kryptowalut Markowi i sprawdza, czy NFT zostało przekazane Kasi. Cała operacja zostaje zakończona tylko wtedy, gdy każdy warunek umowy zostanie spełniony i zatwierdzony.
Górnicy blockchaina potwierdzają te zdarzenia, aby inteligentny kontrakt mógł uruchomić zakodowany rezultat. Kasia musi również pokryć opłatę GAS, zanim cała operacja zostanie zakończona.
Smart kontrakt jest wtedy automatycznie realizowany, Kasia dostaje swoje NFT, Marek dostaje swoje kryptowaluty, wszyscy żyją długo i szczęśliwie, a cała interakcja zostaje zapisana na blockchainie.
Chcesz wiedzieć więcej?
Jeśli nadal jesteś ciekawy i chcesz dowiedzieć się więcej o inteligentnych kontraktach, czytaj dalej. Ten temat jest dość obszerny.
Zrobimy wszystko, aby w jak najprostszy sposób wyjaśnić Ci czym właściwie są smart kontrakty, jak działają, czy są bezpieczne, czy jest w nich miejsce na błędy, jak używać inteligentnych kontraktów i więcej.
Chcemy też zaznaczyć, że nasz artykuł jest podzielony na proste użycie inteligentnych kontraktów, które nie wymaga żadnego programowania, jak na przykład podczas wykonywania transakcji na zdecentralizowanej platformie, oraz na bardziej złożone użycie inteligentnych kontraktów, które wymaga umiejętności programowania.
Zaczynamy!
Czym Są Smart Kontrakty? Szczegółowe Wyjaśnienie
Definicja smart kontraktu z Wikipedii mówi, że jest to program komputerowy lub protokół transakcji, który jest ustawiony na wykonywanie, dokumentowanie i kontrolowanie umów i ich warunków w sposób automatyczny.
W wielkim skrócie jest to kod programistyczny oparty na technologii blockchain, który działa na zasadzie algorytmów. Inteligentny kontrakt jest zaprogramowany tak, aby uruchomić określone zdarzenia jedynie pod warunkiem, że poprzedzające je zdarzenia miały miejsce i zostały zatwierdzone przez górników blockchain’a.
Jaki Język Programowania Jest Używany Do Inteligentnych Kontraktów?
Język programowania, który jest przywoływany jako najczęściej używany do kodowania inteligentnych kontraktów, to Solidity.
Solidity został wymyślony dokładnie do pisania i wdrażania inteligentnych kontraktów, skupiając się głównie na blockchainie Ethereum.
Opłaty i Górnicy
Jak już pokrótce wspomniano, smart kontrakty opierają się nie tylko na algorytmach sprawdzających i zatwierdzających różne zdarzenia lub warunki. Górnicy sieci blockchain również zatwierdzają zdarzenia zakodowane w smart kontraktach i ich warunki.
Zasadniczo dzielą się mocą obliczeniową swoich komputerów, aby zatwierdzać różne zdarzenia w zdecentralizowanej sieci.
Bezpośrednio związana z walidatorami jest opłata GAS, która stanowi opłatę transakcyjną płaconą walidatorom sieci jako zachęta lub nagroda.
Za każdym razem, gdy inteligentny kontrakt jest uruchamiany, opłata GAS musi być opłacona. W przypadku, gdy opłata GAS nie zostanie całkowicie pokryta, smart kontrakt nie uruchomi zakodowanych rezultatów.
Rzeczywista wysokość opłaty GAS jest bardzo zmienna i zależy od wielu różnych czynników. Na przykład, wysoka liczba użytkowników sieci blockchain, oznacza więcej osób konkurujących o pierwszeństwo transakcji, co powoduje wyższą opłatę GAS.
A dzieje się tak dlatego, że im wyżej ustawisz swoją opłatę GAS, tym szybciej Twoja transakcja zostanie sfinalizowana.
Co ciekawe, opłata GAS jest mierzona w gwei, czyli bardzo małym nominale Etheru.
Jeśli chcesz dowiedzieć się więcej o samych opłatach GAS i chciałbyś poznać wzór na obliczenie jednej z nich, tutaj znajdziesz dogłębny artykuł na ten temat.
Gdzie Przechowywane Są Smart Kontrakty?
Ponieważ smart kontrakty są napisane i zatwierdzane na technologii blockchain, są one również przechowywane na blockchainie.
Co oznacza, że są przechowywane na zdecentralizowanej, rozproszonej bazie danych. Czyli zasadniczo w obrębie bloków blockchaina, o których więcej mówimy tutaj.
Czy Smart Kontrakty Mogą Pozyskiwać Dane Spoza Blockchaina?
Smart kontrakty nie są ograniczone do pozyskiwania danych tylko z wnętrza sieci blockchain. A rzecz, która pomaga inteligentnym kontraktom pozyskiwać dane spoza blockchaina, nazywa się oracle.
W uproszczeniu, oracles są kanałami danych, które pomagają inteligentnym kontraktom otrzymywać informacje z zewnętrznego (poza blockchainem) świata, aby wyeliminować ograniczenie polegające na konieczności pracy tylko w oparciu o dane dostępne na blockchainie.
Oracles wykorzystują oracle nodes do wyodrębniania danych z różnych źródeł zewnętrznych, na przykład interfejsów API z serwerów stron trzecich i przenoszenia ich z off-chain na on-chain.
Oficjalne dokumenty Ethereum podają przykład zdecentralizowanej aplikacji, która oferuje zakłady i nagrody pieniężne. Przykład, który podali, to ktoś obstawiający zwycięzce następnych wyborów prezydenckich i stawiający 20 ETH. W tym przypadku inteligentny kontrakt potrzebuje zewnętrznych informacji na temat zwycięzcy wyborów, a oracles są tym, co pomoże wydobyć te informacje z off-chain (dane ze świata rzeczywistego) i umieścić je na on-chain dla inteligentnego kontraktu, aby mógł uruchomić kolejne zdarzenia, w tym przypadku przekazać nagrodę do osoby obstawiającej zakład.
Oracles mogą również przenosić informacje z blockchaina do źródeł off-chain, jeśli zajdzie taka potrzeba.
Jak Używać Smart Kontraktów?
Teraz coś na co wszyscy czekali: używanie smart kontraktu.
Czy musisz być programistą lub znać jakikolwiek język programowania, aby używać już dostępnego inteligentnego kontraktu?
Odpowiedź brzmi: nie.
Wielu użytkowników kryptowalut już korzystało z inteligentnych kontraktów, nawet jeśli nieświadomie. Ponieważ zawsze, gdy używasz zdecentralizowanej platformy do wymiany walut, która jest oparta na technologii blockchain, każda operacja dzieje się automatycznie z inteligentnym kontraktem czuwającym nad jej prawidłowym przebiegiem.
Zwykłe Użycie Smart Kontraktu
Korzystanie z Zdecentralizowanej i Scentralizowanej Giełdy
Jak już zostało powiedziane, za każdym razem, gdy używasz zdecentralizowanej platformy do wymiany walut, smart kontrakt czuwa w tle i automatyzuje twoje operacje.
W przeciwieństwie do korzystania ze scentralizowanej giełdy, takiej jak np. Binance. Główną różnicą jest to, że na scentralizowanych platformach, opłata, którą opłacamy przy każdej operacji należy do firmy, która stworzyła daną platformę i oni z kolei zajmują się zatwierdzaniem operacji.
Jeśli chodzi o giełdy zdecentralizowane, opłata trafia do wszystkich górników sieci, które udostępniają swoje urządzenia i moc obliczeniową do zatwierdzania różnych operacji i pomagają wspierać całą sieć. Jak już wyjaśniliśmy, opłata w tym przypadku nazywa się opłatą GAS, a jej wysokość zależy głównie od liczby użytkowników sieci konkurujących o pierwszeństwo transakcji.
Ale jak właściwie wygląda używanie inteligentnego kontraktu na zdecentralizowanej platformie?
Cóż, dobrze, że pytasz, ponieważ przygotowaliśmy prosty przykład operacji przy użyciu inteligentnego kontraktu.
Prosty Przykład Użycia Smart Kontraktu
W celu pokazania, jak proste jest korzystanie z już dostępnego smart kontraktu, użyjemy Uniswap.
Uniswap jest jedną z najpopularniejszych zdecentralizowanych giełd, która działa na blockchainie Ethereum.
Załóżmy teraz, że chcemy dokonać prostej wymiany walut na Uniswap.
Co musimy zrobić?
Po dotarciu na stronę Uniswap, wybieramy opcję Zamień z górnego menu i postępujemy zgodnie z wytycznymi i krokami, przez które prowadzi nas aplikacja.
Tak więc, po pierwsze, musimy podłączyć nasz portfel. W naszym przykładzie był to portfel MetaMask, który jest jednym z najbardziej popularnych rozszerzeń portfela do wykorzystania przy tego typu operacjach.
Po podłączeniu portfela wybieramy tokeny, które chcemy wymienić, klikamy przycisk Zamień, sprawdzamy opłaty, klikamy Potwierdź , a następnie sprawdzamy ostateczną opłatę GAS naliczoną za przeprowadzenie tej operacji.
Jeśli jesteśmy pewni, że nasz portfel jest w stanie pokryć wyliczoną opłatę GAS, klikamy w ostateczny przycisk Potwierdź. Proces wymiany rozpoczyna się bez dalszego zaangażowania z naszej strony.
Wszystko, przez co właśnie przeszliśmy, widać na poniższych ilustracjach krok po kroku.
Disclaimer: użyliśmy platformy Uniswap i rozszerzenia Metamask do celów pokazania uruchomienia inteligentnego kontraktu i łatwości ich użycia podczas wykonywania operacji na zdecentralizowanej giełdzie. Jednak zarówno platforma jak i portfel są przykładowe i ta sama operacja przy użyciu różnych narzędzi, może oczywiście wyglądać inaczej.
Krok Pierwszy: Zamiana Walut
Krok Drugi: Podłączenie Portfela
Krok Trzeci: Portfel Podłączony
Krok Czwarty: Wybór Walut
Krok Piąty: Zamiana
Krok Szósty: Zatwierdzenie Zamiany
Krok Siódmy: Opłata GAS i Ostateczne Potwierdzenie
Jak widać, to nic skomplikowanego. Kiedykolwiek zdecydujesz się na korzystanie ze zdecentralizowanej platformy do wymiany walut, każda operacja będzie miała miejsce z inteligentnym kontraktem pracującym w tle.
Więc dla zwykłego użytkownika, korzystanie z smart kontraktów jest czymś, co przychodzi łatwo. Nie ma tu żadnego kodowania, żadnego programowania, żadnej zaawansowanej czy trudnej wiedzy. Musimy po prostu przejść przez transakcję tak, jakbyśmy kupowali coś online, z kilkoma krokami i kilkoma kliknięciami myszy, a wszystko to dzieje się na przyjemnym dla oka interfejsie.
Deweloperzy natomiast mogą pisać smart kontrakty do bardziej skomplikowanych zastosowań, co jest dość zaawansowane i wymaga programowania na blockchainie. Ale to nie jest coś, co powinno zawracać głowę zwykłym użytkownikom.
Zaawansowane Użycia Smart Kontraktu
Teoretyczny Przykład
Zakładając, że potrafisz programować i jesteś w stanie napisać smart kontrakt do użytku osobistego.
Podamy Ci teoretyczny przykład, w którym mógłbyś użyć inteligentnego kontraktu, aby lepiej zilustrować, jak ta technologia może być faktycznie używana.
Wyobraźmy sobie, że chcesz zapisać swoje oszczędności w kryptowalutach swojej drugiej połowie, ale niekoniecznie chcesz korzystać z usług notariusza.
Zamiast tego mógłbyś potencjalnie zrobić to za pomocą inteligentnego kontraktu.
Musiałbyś napisać smart kontrakt, który jest uruchamiany pod warunkiem, że przez rok nie wykonałeś żadnych operacji na Twoim portfelu. Twoje oszczędności kryptowalutowe zostałyby automatycznie przeniesione na adres portfela Twojej drugiej połowy, gdy ten warunek zostanie spełniony.
Jeśli więc masz zakodowany na blockchainie warunek i rezultat, który powinien zostać wykonany przez smart kontrakt, to ta operacja lub „umowa” powinna zostać wykonana automatycznie.
Oczywiście to wszystko pozostaje na razie teorią, a takie przypadki są ekstremalne, bo napisanie smart kontraktu jest dość skomplikowane.
Miejsce Na Błędy i Kwestia Bezpieczeństwa: Jak Uniknąć Oszustw?
W jednym z naszych artykułów powiedzieliśmy, że najlepszym sposobem na uniknięcie oszustw lub niebezpiecznych sytuacji korzystając ze smart kontraktów, jest wybranie tych, które są już dostępne na rynku i które mają dobrą historię.
Rozwińmy to.
To stwierdzenie jest często prawdziwe, gdy angażujemy się w DeFi, czyli zdecentralizowane finanse. Jeśli nie czytałeś naszego artykułu o DeFi, zdecentralizowane finanse są w zasadzie lustrzanym odbiciem scentralizowanych finansów (naszego tradycyjnego systemu finansowego), ale zbudowane na technologii blockchain i eliminujące strony trzecie w operacjach.
Więc w DeFi, można wykonać te same operacje, jak w tradycyjnym systemie finansowym, ale bez trzeciej strony i ich narzucanych opłat.
Oznacza to, że istnieje wersja DeFi w zakresie udzielania kredytów, pożyczek, przesyłania pieniędzy i innych.
Dlaczego o tym wspominamy?
Ponieważ DeFi używa smart kontraktów do wykonywania wszystkich tych operacji.
Jeśli miałbyś zaangażować się w pożyczki DeFi, używałbyś inteligentnych kontraktów w nieco bardziej zaawansowany sposób niż po prostu używając zdecentralizowanej giełdy, która prowadzi Cię przez wszystkie kroki i wykonuje całą nieprzyjemną pracę za Ciebie.
W takim przypadku musiałbyś upewnić się, że inteligentny kontrakt, który wybierasz, został napisany w taki sposób, aby był nieedytowalny i był publicznie dostępny do sprawdzenia.
Jedną rzeczą, o której zawsze musimy pamiętać jest to, że smart kontrakty są programowane przez ludzi. Oznacza to, że istnieje miejsce na błędy i dlatego najlepiej jest korzystać z smart kontraktów, które są już na rynku przez jakiś czas i są znane z tego, że działają dobrze.
Smart Kontrakty a Zdecentralizowane Aplikacje (dAPPs)
Jeśli chodzi o inne zaawansowane zastosowania smart kontraktów, musimy krótko wspomnieć o dAPPs, ponieważ inteligentne kontrakty odgrywają dużą rolę w ich budowaniu.
DAPPs to zdecentralizowane aplikacje zakodowane na technologii blockchain, co oznacza, że eliminują potrzebę istnienia jednej, centralnej strony zarządzającej wszystkimi danymi użytkownika. Zamiast tego dane są rozłożone na blockchainie, a cała sieć jest wspierana przez górników, ich moc obliczeniową i przez nich walidujących operacje.
Może to prowadzić do budowania lustrzanych odbić aplikacji i systemów, które znamy obecnie, ale w sposób zdecentralizowany, aby zapewnić większe bezpieczeństwo danych i brak cenzury.
Na przykład, moglibyśmy mieć zdecentralizowaną wersję Allegro, która niekoniecznie ogranicza swoich użytkowników co do tego, co mogą wystawić na sprzedaż.
Z drugiej strony, brak cenzury może prowadzić do tego, że nieletni użytkownicy łatwiej napotkają treści dla dorosłych.
Ale same zdecentralizowane aplikacje to dość obszerny temat, więc zajmiemy się nim w osobnym artykule.
Nasze Przemyślenia Na Temat Smart Kontraktów
Wniosek jest taki, że smart kontrakty są dość rewolucyjne i na pewno w jakiś sposób ukształtują naszą przyszłość. Jednak przed nami jeszcze długa droga, aby móc w pełni wykorzystać potencjał inteligentnych kontraktów i zdecentralizowanych aplikacji.
Nie każda branża może jeszcze skorzystać ze smart kontraktów, podczas gdy w innych mogą one zoptymalizować i przyspieszyć niektóre procesy, zmniejszyć koszty operacyjne i pozbyć się wszelkich problemów operacyjnych.
Już teraz odgrywają one dużą rolę we wszelkich operacjach wykonywanych na zdecentralizowanych giełdach, takich jak nasz artykułowy przykład Uniswap. Inteligentny kontrakt działa w tle, aby upewnić się, że wszystko przebiega sprawnie, walidatory sieci pomagają w zatwierdzaniu zdarzeń, które wymagają potwierdzenia, a zwykły użytkownik otrzymuje przyjemny i łatwy w użyciu interfejs do wykonywania swoich operacji.
Zaawansowane zastosowania obejmują budowanie zdecentralizowanych aplikacji – dAPPs, udzielanie kredytów, pożyczek w DeFi, a także bardziej unikalne zastosowania, takie jak e-głosowanie, prowadzenie dokumentacji klinicznej lub obsługa NFT.