0Pricing
Cryptology Academy · Lekcja

Proof of Work: wydobywanie i dostosowywanie trudności

Zaimplementować koparkę PoW i zrozumieć wyszukiwanie nonce’a oraz trudność celu

Proof of Work: wydobywanie i dostosowywanie trudności to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 3 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 Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Czym jest Proof of Work?

Proof of Work (PoW) wymaga od twórcy bloku wykonania kosztownego obliczeniowo zadania w celu dodania bloku. Zniechęca to do spamu i sprawia, że przepisanie łańcucha jest kosztowne. Weryfikacja dowodu jest tania (jeden skrót). Wykonanie pracy wymaga wielu obliczeń skrótów.

Wyzwanie wydobywania

PoW w Bitcoinie: znajdź nonce takie, że SHA256d(block_header) < target. Target to liczba 256-bitowa. Mniejszy target oznacza konieczność uzyskania większej liczby zer wiodących w wyniku haszowania, przez co prawidłowe wartości nonce są rzadsze i trudniejsze do znalezienia.

Przykład PoW w Pythonie

import hashlib def mine(data, difficulty): target = "0"*difficulty nonce = 0 while True: h = hashlib.sha256(f"{data}{nonce}".encode()).hexdigest() if h.startswith(target): return nonce, h nonce += 1 nonce, h = mine("block data", 4) print(nonce, h) # hash starts with "0000"

Target trudności

Nagłówek bloku Bitcoina zawiera pole „bits” kodujące bieżący target. Target = coefficient * 256^(exponent-3). Przykład: bits=0x1703a30c → target = 0x03a30c * 2^(8*(0x17-3)) = liczba 256-bitowa wymagająca około 72 zer wiodących w bitach.

Dostosowywanie trudności

Bitcoin dostosowuje trudność co 2016 bloków (około 2 tygodnie). Dostosowanie targetu: new_target = old_target * (actual_time / 2016 * 10 minut). Jeśli bloki powstawały średnio szybciej niż co 10 minut, target maleje (jest trudniej). Jeśli powstawały wolniej, target rośnie (jest łatwiej). Pozwala to utrzymać czas tworzenia bloku na poziomie około 10 minut.

Moc obliczeniowa a bezpieczeństwo

Moc obliczeniowa sieci (H/s) mierzy łączną moc wydobywczą. Wyższa moc obliczeniowa oznacza mniejsze prawdopodobieństwo znalezienia prawidłowego nonce przez przypadek w jednostce czasu. Aby przepisać k bloków, atakujący potrzebuje ponad 50% mocy obliczeniowej sieci utrzymywanej przez czas proporcjonalny do k*10 minut.

Atak 51%

Mając ponad 50% mocy obliczeniowej, atakujący może: (1) wydobywać tajne rozwidlenie, (2) uwzględniać transakcje lub je pomijać, (3) przeprowadzić atak podwójnego wydawania, publikując dłuższy łańcuch po potwierdzeniu płatności. Nie może: ukraść cudzych monet, tworzyć monet z niczego ani odwracać transakcji głęboko w łańcuchu.

Wydobywanie za pomocą ASIC a centralizacja

Wydobywanie Bitcoina z SHA256d jest zdominowane przez ASIC (Application-Specific Integrated Circuits) — układy zoptymalizowane pod kątem jednej funkcji skrótu. ASIC są 10^6 razy wydajniejsze od procesorów. Prowadzi to do koncentracji wydobywania w dużych centrach danych i budzi obawy dotyczące centralizacji.

PoW wymagający dużej ilości pamięci

Ethereum używało Ethash (obecnie wycofanego) — PoW wymagającego dużego zbioru danych DAG i dużej ilości pamięci. Wymagania pamięciowe utrudniają stosowanie ASIC-ów (przepustowość pamięci trudno tanio zoptymalizować). Monero używa RandomX (zoptymalizowanego pod kątem CPU i odpornego na ASIC-i). Zcash używa Equihash (wymagającego dużej ilości pamięci).

Samolubne wydobywanie

Strategia samolubnego wydobywania: zachowaj znaleziony blok w tajemnicy, wydobądź drugi blok, a następnie opublikuj oba jednocześnie. Jeśli moment zostanie odpowiednio dobrany, uczciwi górnicy zmarnują pracę na osieroconym bloku. Aby strategia była średnio opłacalna, wymaga około 33% mocy obliczeniowej, a nie 51%.

Alternatywa Proof of Stake

Proof of Stake (PoS, używany przez Ethereum po The Merge) zastępuje pracę obliczeniową stakowaną kryptowalutą. Walidatorzy są wybierani do proponowania bloków proporcjonalnie do posiadanego stake'u. PoS zużywa o 99,95% mniej energii niż PoW. Kompromis: inne założenia dotyczące zaufania i ekonomika ataków.

Szybkie sprawdzenie

Co ma utrzymywać dostosowywanie trudności w Bitcoinie?

Podsumowanie

PoW wymaga znalezienia nonce takiego, że SHA256d(header) < target. Trudność jest dostosowywana co 2016 bloków. Moc obliczeniowa na poziomie 51% umożliwia ataki podwójnego wydawania. W wydobywaniu Bitcoina dominują ASIC-i, a funkcje wymagające dużej ilości pamięci są odporne na ASIC-i. Następny temat: Bitcoin Script i podpisy UTXO.

Często zadawane pytania

Czy lekcja „Proof of Work: wydobywanie i dostosowywanie trudności” jest bezpłatna?

Tak — pełny tekst „Proof of Work: wydobywanie i dostosowywanie trudności” 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 Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Proof of Work: wydobywanie i dostosowywanie trudności”?

Zaimplementować koparkę PoW i zrozumieć wyszukiwanie nonce’a oraz trudność celu Ćwiczysz Cryptology Academy 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ąć Cryptology Academy?

Nie wymagamy żadnego doświadczenia. Cryptology Academy 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 3 z 4.

Ile czasu zajmuje lekcja „Proof of Work: wydobywanie i dostosowywanie trudności”?

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 Cryptology Academy?

Tak. Każda lekcja Cryptology Academy 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. Łańcuchy skrótów i łączenie bloków
  2. Drzewa Merkle’a: integralność transakcji na dużą skalę
  3. Proof of Work: wydobywanie i dostosowywanie trudności
  4. Bitcoin Script i weryfikacja podpisów UTXO
← Powrót do Cryptology Academy