Wydobywanie
Ostatnia edycja: @HiroyukiNaito(opens in a new tab), 13 marca 2024
Wymagania wstępne
Aby lepiej zrozumieć tę stronę, zalecamy najpierw zapoznanie się z transakcjami, blokami i proof-of-work.
Czym jest wydobycie w Ethereum?
Wydobycie to proces tworzenia bloku złożonego z transakcji, aby dodać go do blockchaina Ethereum.
Ethereum, tak jak Bitcoin, obecnie korzysta z mechanizmu konsensusu proof-of-work (PoW). Górnictwo jest siłą napędową proof-of-work. Górnicy Ethereum - komputery obsługujące oprogramowanie - wykorzystują czas i moc obliczeniową do przetwarzania transakcji i produkcji bloków.
Dlaczego górnicy istnieją?
W zdecentralizowanych systemach, takich jak Ethereum, musimy dopilnować, aby wszyscy zgodzili się na kolejność transakcji. Górnicy pomagają w tym poprzez rozwiązywanie trudnych obliczeniowo łamigłówek w celu produkcji bloków, które służą jako sposób zabezpieczenia sieci przed atakami.
Jak są wydobywane transakcje Ethereum
- Użytkownik pisze i podpisuje żądanie transakcji kluczem prywatnym niektórych kont.
- Użytkownik wysyła żądanie transakcji do całej sieci Ethereum z jakiegoś węzła.
- Po usłyszeniu o nowym żądaniu transakcji, każdy węzeł w sieci Ethereum dodaje żądanie do swojej lokalnej pamięci, listy wszystkich żądań transakcji, o których słyszał, a które nie zostały jeszcze zatwierdzone do blockchaina w bloku.
- W pewnym momencie węzeł górniczy agreguje kilkadziesiąt lub kilkaset żądań transakcji w potencjalny blok, w sposób maksymalizujący zarabiane opłaty transakcyjne, ale nie przekraczając limitu gazu blokowego. Następnie węzeł wydobywczy:
- Weryfikuje ważność każdego żądania transakcji (tj. nikt nie próbuje przenieść eteru z konta, dla którego nie złożył podpisu, żądanie nie jest zniekształcone itp.), a następnie wykonuje kod żądania, zmieniając stan ich lokalnej kopii EVM. Górnik otrzymuje opłatę transakcyjną za każde takie żądanie transakcji na własny rachunek.
- Rozpoczyna proces tworzenia „certyfikatu legalności” proof-of-work dla potencjalnego bloku, gdy wszystkie żądania transakcji w bloku zostaną zweryfikowane i wykonane na lokalnej kopii EVM.
- W końcu górnik zakończy produkcję certyfikatu dla bloku, który zawiera nasze konkretne żądanie transakcji. Górnik następnie emituje wypełniony blok, który zawiera certyfikat i sumę kontrolną żądanego nowego stanu EVM.
- Inne węzły słyszą o nowym bloku. Weryfikują certyfikat, samodzielnie wykonują wszystkie transakcje na bloku (w tym transakcję oryginalnie wyemitowaną przez naszego użytkownika) i sprawdzają, czy suma kontrolna ich nowego stanu EVM po wykonaniu wszystkich transakcji jest zgodna z sumą kontrolną stanu zgłaszanego przez blok górnika. Dopiero wtedy węzły dołączają ten blok do ogona swojego blokchaina i akceptują nowy stan EVM jako stan kanoniczny.
- Każdy węzeł usuwa wszystkie transakcje w nowym bloku z lokalnej pamięci niespełnionych żądań transakcji.
- Nowe węzły dołączające do sieci pobierają kolejno wszystkie bloki, w tym blok zawierający naszą interesującą transakcję. Inicjują lokalną kopię EVM (która zaczyna się jako EVM w stanie pustym), a następnie przechodzą przez proces wykonywania każdej transakcji w każdym bloku na wierzchu ich lokalnej kopii EVM, weryfikując po drodze sumy kontrolne stanu w każdym bloku.
Każda transakcja jest wydobywana (zawarta w nowym bloku i po raz pierwszy propagowana) jednorazowo, ale wykonywana i weryfikowana przez każdego uczestnika procesu przechodzenia do stanu kanonicznego EVM. Podkreśla to jedną z głównych mantr blockchain: Nie ufaj, weryfikuj.
Demo wizualne
Zobacz, jak Austin poprowadzi Cię przez wydobycie i blockchain typu „proof-of-work”.