Web3 & DApp Development Fundamentals · Lekcja

Proof of Work

Wydobywanie i trudność

Lekcja 1 z 413 kroki

Proof of Work to bezpłatna lekcja Web3 & DApp Development Fundamentals na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Web3 & DApp Development Fundamentals, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Web3 & DApp Development Fundamentals zawiera 4 lekcji w sumie.

Problem konsensusu

W otwartej sieci każdy może zaproponować następny blok. Jak sieć może uzgodnić jeden prawidłowy blok bez lidera?

Proof of Work (PoW) było pierwszą praktyczną odpowiedzią, wprowadzoną przez Bitcoin.

Czym jest Proof of Work?

Proof of Work wymaga od górników rozwiązania trudnej zagadki obliczeniowej, aby uzyskać prawo do dodania bloku.

Zagadkę trudno rozwiązać, ale łatwo zweryfikować wszystkim pozostałym — ta asymetria zabezpiecza łańcuch.

Zagadka wydobywania

Górnicy wielokrotnie haszują nagłówek bloku, zmieniając wartość nazywaną nonce, i szukają hasha niższego od wartości progowej.

Ponieważ wyników haszowania nie da się przewidzieć, jedyną strategią są próby i błędy.

target = 0x0000ffff...
loop:
    hash = sha256(header + nonce)
    if hash < target: SOLVED
    else: nonce = nonce + 1

Nonce

Nonce to pole zmieniane przez górników przy każdej próbie. Każdy nowy nonce tworzy całkowicie inny hash dzięki efektowi lawinowemu.

Znalezienie prawidłowego nonce może wymagać kwintylionów prób w całej sieci.

Trudność

Trudność określa, jak skomplikowana jest zagadka, ustalając, jak mały musi być docelowy hash. Mniejsza wartość docelowa oznacza konieczność uzyskania większej liczby początkowych zer.

Sieci automatycznie dostosowują trudność, aby utrzymać stały czas tworzenia bloków (w przypadku Bitcoina około 10 minut).

Easy   target: 0x00ffffff... (few zeros)
Hard   target: 0x000000ff... (many zeros)
More zeros required = more work

Dostosowanie trudności

Jeśli dołączą górnicy i bloki zaczną powstawać zbyt szybko, trudność wzrośnie. Jeśli górnicy odejdą i bloki będą powstawać wolniej, trudność spadnie.

To samoczynne dostrajanie utrzymuje przewidywalny średni odstęp między blokami niezależnie od całkowitej mocy wydobywczej.

Moc haszowania

Moc haszowania mierzy liczbę hashy obliczanych przez sieć w ciągu sekundy. Większa moc haszowania oznacza większe bezpieczeństwo, ponieważ atakujący musi obliczać hashe szybciej niż cała reszta sieci.

Współczesną moc haszowania Bitcoina mierzy się w eksahaszach (10^18) na sekundę.

Nagrody za bloki i zachęty

Górnicy otrzymują nowo utworzone monety oraz opłaty transakcyjne. Ta nagroda za blok zachęca ich do zużywania rzeczywistej energii elektrycznej na zabezpieczanie sieci.

Uczciwe wydobywanie jest bardziej opłacalne niż atakowanie, co łączy zachęty z bezpieczeństwem.

Atak 51%

Jeśli pojedynczy podmiot kontrolowałby ponad połowę mocy obliczeniowej sieci, mógłby potencjalnie przepisać ostatnie bloki — byłby to atak 51%.

W dużych sieciach jest to zaporowo kosztowne, co właśnie zapewnia bezpieczeństwo PoW.

Koszt energetyczny

Bezpieczeństwo PoW wynika z rzeczywistego zużycia energii, które krytycy uznają za marnotrawstwo.

Ta obawa przyczyniła się do powstania alternatyw, takich jak Proof of Stake, którym zajmiemy się w następnej kolejności. PoW wymienia energię na sprawdzone w praktyce bezpieczeństwo.

Łączymy wszystko w całość

Proof of Work zabezpiecza blockchain, sprawiając, że tworzenie bloków (wydobywanie) jest kosztowne, a ich weryfikacja — tania.

Trudność utrzymuje stabilny czas, nagrody skłaniają górników do uczciwości, a sam ogromny koszt haszowania odstrasza od ataków.

Szybkie sprawdzenie

Sprawdź swoją wiedzę o Proof of Work.

Podsumowanie: Proof of Work

Dowiedział się Pan / Dowiedziała się Pani, że:

  • PoW wymaga od górników rozwiązania trudnej łamigłówki haszującej
  • nonce jest zmieniana, aby znaleźć hash poniżej wartości target
  • Difficulty automatycznie się dostosowuje, aby utrzymać stabilny czas tworzenia bloków
  • Nagrody łączą interesy górników z bezpieczeństwem sieci
  • Atak 51% jest głównym zagrożeniem teoretycznym

Następnie: Proof of Stake.

Bezpłatny start

Ucz się Web3 & DApp Development Fundamentals dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
29
Lekcje
105

Często zadawane pytania

Czy lekcja „Proof of Work” jest bezpłatna?

Tak — pełny tekst „Proof of Work” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Web3 & DApp Development Fundamentals, przejdź na CoddyKit PRO. Kurs Web3 & DApp Development Fundamentals zawiera 4 lekcji w sumie.

Co nauczysz się w „Proof of Work”?

Wydobywanie i trudność Ćwiczysz Web3 & DApp Development Fundamentals z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Web3 & DApp Development Fundamentals?

Nie wymagamy żadnego doświadczenia. Web3 & DApp Development Fundamentals w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Proof of Work”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Web3 & DApp Development Fundamentals?

Tak. Każda lekcja Web3 & DApp Development Fundamentals zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Proof of Work
  2. Proof of Stake
  3. Inne mechanizmy
  4. Finalność i forki
← Powrót do Web3 & DApp Development Fundamentals