Techniczne wprowadzenie do Ethereum
Czym jest blockchain?
Blockchain to publiczna baza danych, która jest aktualizowana i współdzielona przez wiele komputerów w sieci.
"Blok" odnosi się do danych i stanu przechowywanych w kolejnych grupach znanych jako "bloki". Jeśli wysyłasz ETH do kogoś innego, dane transakcji muszą zostać dodane do bloku, aby zakończyła się ona sukcesem.
"Łańcuch" odnosi się do faktu, że każdy blok kryptograficznie odwołuje się do swojego rodzica. Innymi słowy, bloki są ze sobą połączone w łańcuch. Dane w bloku nie mogą ulec zmianie bez zmiany wszystkich kolejnych bloków, co wymagałoby konsensusu całej sieci.
Każdy komputer w sieci musi wyrazić zgodę na każdy nowy blok i łańcuch jako całość. Te komputery są znane jako "węzły". Węzły zapewniają, że każdy wchodzący w interakcję z blockchainem ma te same dane. Aby osiągnąć to rozproszone porozumienie, blockchainy potrzebują mechanizmu konsensusu.
Ethereum wykorzystuje mechanizm konsensusu oparty na dowodzie stawki (PoS). Każdy, kto chce dodawać nowe bloki do łańcucha, musi stakować ETH – natywną walutę w Ethereum – jako zabezpieczenie i uruchomić oprogramowanie walidatora. Ci "walidatorzy" mogą być następnie losowo wybierani do proponowania bloków, które inni walidatorzy sprawdzają i dodają do blockchaina. Istnieje system nagród i kar, który silnie motywuje uczestników do bycia uczciwymi i dostępnymi online tak często, jak to możliwe.
Jeśli chcesz zobaczyć, jak dane blockchaina są hashowane, a następnie dołączane do historii odniesień do bloków, koniecznie sprawdź to demo (opens in a new tab) autorstwa Andersa Brownwortha i obejrzyj poniższy film.
Obejrzyj, jak Anders wyjaśnia hashe w blockchainach:
Czym jest Ethereum?
Ethereum to blockchain z wbudowanym komputerem. Jest to fundament do budowania aplikacji i organizacji w sposób zdecentralizowany, niewymagający pozwoleń i odporny na cenzurę.
W świecie Ethereum istnieje jeden, kanoniczny komputer (zwany Maszyną Wirtualną Ethereum, ang. Ethereum Virtual Machine lub EVM), co do którego stanu zgadzają się wszyscy w sieci Ethereum. Każdy, kto uczestniczy w sieci Ethereum (każdy węzeł Ethereum), przechowuje kopię stanu tego komputera. Dodatkowo, każdy uczestnik może rozgłosić żądanie, aby ten komputer wykonał dowolne obliczenia. Za każdym razem, gdy takie żądanie jest rozgłaszane, inni uczestnicy w sieci weryfikują, walidują i przeprowadzają ("wykonują") te obliczenia. To wykonanie powoduje zmianę stanu w EVM, która jest zatwierdzana i propagowana w całej sieci.
Żądania obliczeń nazywane są żądaniami transakcji; zapis wszystkich transakcji i obecny stan EVM są przechowywane na blockchainie, który z kolei jest przechowywany i uzgadniany przez wszystkie węzły.
Mechanizmy kryptograficzne zapewniają, że po zweryfikowaniu transakcji jako ważnych i dodaniu ich do blockchaina, nie można przy nich później manipulować. Te same mechanizmy zapewniają również, że wszystkie transakcje są podpisywane i wykonywane z odpowiednimi "uprawnieniami" (nikt nie powinien móc wysyłać aktywów cyfrowych z konta Alice, z wyjątkiem samej Alice).
Czym jest ether?
Ether (ETH) to natywna kryptowaluta Ethereum. Celem ETH jest umożliwienie istnienia rynku obliczeń. Taki rynek zapewnia zachętę ekonomiczną dla uczestników do weryfikowania i wykonywania żądań transakcji oraz dostarczania zasobów obliczeniowych do sieci.
Każdy uczestnik, który rozgłasza żądanie transakcji, musi również zaoferować sieci pewną ilość ETH jako nagrodę. Sieć spali część tej nagrody, a resztę przyzna temu, kto ostatecznie wykona pracę polegającą na weryfikacji transakcji, jej wykonaniu, zatwierdzeniu w blockchainie i rozgłoszeniu w sieci.
Ilość zapłaconego ETH odpowiada zasobom wymaganym do wykonania obliczeń. Te nagrody zapobiegają również celowemu zapychaniu sieci przez złośliwych uczestników poprzez żądanie wykonania nieskończonych obliczeń lub innych skryptów wymagających dużych zasobów, ponieważ uczestnicy ci muszą płacić za zasoby obliczeniowe.
ETH jest również wykorzystywane do zapewnienia kryptoekonomicznego bezpieczeństwa sieci na trzy główne sposoby: 1) służy jako środek do nagradzania walidatorów, którzy proponują bloki lub demaskują nieuczciwe zachowanie innych walidatorów; 2) jest stakowane przez walidatorów, działając jako zabezpieczenie przed nieuczciwym zachowaniem – jeśli walidatorzy spróbują zachować się niewłaściwie, ich ETH może zostać zniszczone; 3) służy do ważenia "głosów" na nowo proponowane bloki, co stanowi część mechanizmu konsensusu odpowiedzialną za wybór rozwidlenia (fork-choice).
Czym są inteligentne kontrakty?
W praktyce uczestnicy nie piszą nowego kodu za każdym razem, gdy chcą zażądać obliczeń w EVM. Zamiast tego programiści aplikacji wdrażają programy (fragmenty kodu wielokrotnego użytku) do stanu EVM, a użytkownicy zgłaszają żądania wykonania tych fragmentów kodu z różnymi parametrami. Programy wdrożone do sieci i przez nią wykonywane nazywamy "inteligentnymi kontraktami".
Na bardzo podstawowym poziomie można myśleć o inteligentnym kontrakcie jak o automacie sprzedającym: skrypcie, który po wywołaniu z określonymi parametrami wykonuje pewne działania lub obliczenia, jeśli spełnione są określone warunki. Na przykład prosty inteligentny kontrakt sprzedawcy mógłby utworzyć i przypisać własność aktywa cyfrowego, jeśli wywołujący wyśle ETH do określonego odbiorcy.
Każdy programista może utworzyć inteligentny kontrakt i udostępnić go publicznie w sieci, wykorzystując blockchain jako warstwę danych, za opłatą uiszczaną na rzecz sieci. Każdy użytkownik może następnie wywołać inteligentny kontrakt, aby wykonać jego kod, ponownie za opłatą uiszczaną na rzecz sieci.
Dzięki inteligentnym kontraktom programiści mogą budować i wdrażać dowolnie złożone aplikacje i usługi skierowane do użytkowników, takie jak: rynki, instrumenty finansowe, gry itp.
Terminologia
Blockchain
Sekwencja wszystkich bloków, które zostały zatwierdzone w sieci Ethereum w historii sieci. Nazwa wzięła się stąd, że każdy blok zawiera odniesienie do poprzedniego bloku, co pomaga nam utrzymać porządek wszystkich bloków (a tym samym dokładną historię).
ETH
Ether (ETH) to natywna kryptowaluta Ethereum. Użytkownicy płacą ETH innym użytkownikom za realizację ich żądań wykonania kodu.
EVM
Maszyna Wirtualna Ethereum (EVM) to globalny wirtualny komputer, którego stan przechowuje i uzgadnia każdy uczestnik sieci Ethereum. Każdy uczestnik może zażądać wykonania dowolnego kodu w EVM; wykonanie kodu zmienia stan EVM.
Węzły
Rzeczywiste maszyny, które przechowują stan EVM. Węzły komunikują się ze sobą w celu propagowania informacji o stanie EVM i nowych zmianach stanu. Każdy użytkownik może również zażądać wykonania kodu, rozgłaszając żądanie wykonania kodu z węzła. Sama sieć Ethereum jest zbiorem wszystkich węzłów Ethereum i ich komunikacji.
Konta
Miejsce, w którym przechowywane jest ETH. Użytkownicy mogą inicjować konta, wpłacać na nie ETH i transferować ETH ze swoich kont do innych użytkowników. Konta i ich salda są przechowywane w dużej tabeli w EVM; są one częścią ogólnego stanu EVM.
Transakcje
"Żądanie transakcji" to formalne określenie żądania wykonania kodu w EVM, a "transakcja" to zrealizowane żądanie transakcji i powiązana z nim zmiana stanu EVM. Każdy użytkownik może rozgłosić żądanie transakcji do sieci z węzła. Aby żądanie transakcji wpłynęło na uzgodniony stan EVM, musi zostać zwalidowane, wykonane i "zatwierdzone w sieci" przez inny węzeł. Wykonanie dowolnego kodu powoduje zmianę stanu w EVM; po zatwierdzeniu ta zmiana stanu jest rozgłaszana do wszystkich węzłów w sieci. Kilka przykładów transakcji:
- Wyślij X ETH z mojego konta na konto Alice.
- Opublikuj kod inteligentnego kontraktu w stanie EVM.
- Wykonaj kod inteligentnego kontraktu pod adresem X w EVM, z argumentami Y.
Bloki
Wolumen transakcji jest bardzo wysoki, więc transakcje są "zatwierdzane" w partiach, czyli blokach. Bloki zazwyczaj zawierają od kilkudziesięciu do kilkuset transakcji.
Inteligentne kontrakty
Fragment kodu wielokrotnego użytku (program), który programista publikuje w stanie EVM. Każdy może zażądać wykonania kodu inteligentnego kontraktu, składając żądanie transakcji. Ponieważ programiści mogą pisać dowolne aplikacje wykonywalne w EVM (gry, rynki, instrumenty finansowe itp.) poprzez publikowanie inteligentnych kontraktów, są one często nazywane zdecentralizowanymi aplikacjami (dapp).
Więcej o inteligentnych kontraktach
Co dalej
Większość czytelników czyta dokumentację po kolei, ale najkrótsza ścieżka zależy od tego, co próbujesz zbudować:
- Zdecentralizowane aplikacje (dapp) wchodzące w interakcję z Ethereum: konta i transakcje, a następnie wybierz framework.
- Tworzenie inteligentnych kontraktów: inteligentne kontrakty i języki programowania.
- Węzły i staking: węzły i klienci, a następnie mechanizmy konsensusu.
Dalsza lektura
- Biała księga Ethereum
- Jak właściwie działa Ethereum? (opens in a new tab) – Preethi Kasireddy (Uwaga: ten zasób jest nadal wartościowy, ale pamiętaj, że powstał przed The Merge i dlatego nadal odnosi się do mechanizmu dowodu pracy (PoW) w Ethereum – obecnie Ethereum jest zabezpieczone za pomocą dowodu stawki (PoS))
Wolisz uczyć się wzrokowo?
Ta seria filmów oferuje dokładne omówienie podstawowych tematów:
Playlista z podstawami Ethereum (opens in a new tab)
Znasz zasób społeczności, który Ci pomógł? Edytuj tę stronę i dodaj go!
Powiązane samouczki
- Przewodnik po Ethereum dla programistów, część 1 – Bardzo przyjazne dla początkujących wprowadzenie do Ethereum z użyciem języka Python i biblioteki web3.py