Na czym polega kopanie bitcoinów?

15 848

Jak odbywa się kopanie bitcoinów? Dlaczego wydobycie bloku zajmuje 10 minut? Na czym zarabiają górnicy? Po przeczytaniu tego artykułu poznasz odpowiedzi na te i wiele innych intrygujących pytań.

Jaki jest cel kopania bitcoinów?

Spróbuj odpowiedzieć na pytanie: „dlaczego wykopanie bloku w Bitcoin zajmuje 10 minut?” Jeśli Twoja odpowiedź brzmi: „Ponieważ górnicy muszą rozwiązać bardzo skomplikowaną zagadkę kryptograficzną”, prawdopodobnie nie potrafisz odpowiedzieć na to pytanie w sposób pełny.

Dlaczego ludzie kopią bitcoiny? Co to jest kopanie BTC? Jak ludzie kopią kryptowalutę?

Z czego składa się blok w sieci Bitcoin?

Blok składa się z następujących pól:

  • Indeks bloku w łańcuchu
  • Dane (w przypadku Bitcoina transakcje)
  • Poprzedni hash, który jest skrótem poprzedniego bloku.
  • Nonce
  • Znacznik czasu (timestamp)
  • Hash (skrót) bloku

Pierwsze trzy pozycje na powyższej liście to elementy, których nikt nie może zmienić, nawet podczas wydobycia. Indeksu bloku nie może ulec zmianie, ponieważ jest to miejsce bloku w łańcuchu. Danych nie można zmienić, ponieważ byłoby to postrzegane jako manipulowanie blokiem. Hasha poprzedzającego bloku również nie można zmienić, ponieważ węzły w sieci powiedziałyby: „Hej, ten hash nie jest hashem poprzedniego bloku”. Wreszcie, hash jest po prostu kulminacją wszystkich pozostałych pozycji.

Jedną z rzeczy, które warto zauważyć, jest to, że chociaż wszystkie łańcuchy bloków mogą haszować dane każdego bloku, nie wszystkie używają tych samych algorytmów haszujących. Na przykład algorytm haszujący, którego używa Bitcoin, SHA-256 – stworzony przez Narodową Agencję Bezpieczeństwa (NSA) – jest innym algorytmem niż ten, którego używa na przykład Ethereum, korzystające z algorytmu haszującego Keccak-256. Pamiętaj też, że algorytmy haszujące różnią się od algorytmów szyfrowania. Jeżeli chciałbyś zgłębić ten temat, zajrzyj pod ten link.

Kluczowa jest liczba zer, od których rozpoczyna się hash

„256” w SHA-256 to 256 bitów. Oznacza to, że po konwersji do postaci szesnastkowej pojawiają się 64 znaki. Rozważ losowy ciąg 256 cyfr o podstawie dwa. Następnie powiedzmy, że po przekonwertowaniu na liczbę szesnastkową daje to wyjście: 3F79BB7B435B05321651DAEFD374CDC681DC06FAA65E374E38337B88CA046DEA.

Każda cyfra szesnastkowa składa się z czterech cyfr binarnych. Ważna kwestia to liczba zer, które pojawiają się na samym początku hashu. Jeśli mamy, powiedzmy, 6 zer, hash będzie zaczynał się tak: 000000xxx…xxx (58 x). Powodem, dla którego ta koncepcja jest tak ważna, jest to, że odnosi się bezpośrednio się do celu wydobycia, o którym powiemy sobie za moment. Na razie jednak przemyśl następującą kwestię:

W ciągu szesnastkowym każda cyfra może mieć wartość 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E lub F. W związku z tym łączna liczba możliwych kombinacji, które możesz uzyskać 64-cyfrową liczbą szesnastkową, wynosi 16 do potęgi 64. To równa się około 1,1 * 10^77. Przeanalizuj inny przykład: gdybyś miał 18 zer, od których zaczyna się hash, mógłbyś utworzyć 16^46 kombinacji. To około 2,5 * 10^55. Również dużo, prawda?

W porównaniu z naszym pierwszym numerem – wcale nie dużo. Aby szybko zorientować się, ile wynosi 2,5 * 10^55 w porównaniu do 1,1 * 10^77, prawdopodobieństwo otrzymania losowo wybranej 64-cyfrowej liczby szesnastkowej z 18 poprzedzającymi zerami wynosi w przybliżeniu:

2,1 * 10^(-22) z 1.

Inaczej mówiąc: 0,0000000000000000000021%.

Wychodzi na to, że masz znacznie większą szansę na wygraną na loterii niż losowe wybranie liczby szesnastkowej, która zaczyna się 18 zerami.

Cel wydobycia

Cel miningu to zasadniczo liczba, która mówi: „Hej! Górnicz! Musicie rozwiązać mój hash, bo inaczej nie będziecie mogli dodać swojego bloku do łańcucha!” Cel wydobycia został zasadniczo stworzony po to, aby rzucić wyzwanie górnikom, którzy chcą zarabiać pieniądze.

Weźmy na przykład cel wydobycia: 00000000000000000000FFFFFFxxx…xxx (40 x).

Skrót wygenerowany przez algorytm hashujący, który wydaje się prawie losowy, musi być niższy. Ale – jak widzieliśmy wcześniej – szansa, że ​​hash będzie mniejszy niż ta liczba, jest niezwykle niska. Jakie jest zatem rozwiązanie?

Nonce

Satoshi Nakamoto przewidywał, że cena bitcoina będzie rosła, a wraz z postępem technologicznym, górnicy będą musieli stawić czoła coraz większym wyzwaniom. Twórca Bitcoina przewidział, że ​​ludzie w końcu zrezygnują z kopania z powodu niewiarygodnie niskich szans na wygraną.

Z tego powodu powstało pole zwane nonce. To jest pole 32-bitowe, więc może wzrosnąć tylko do 4294967296. Protokół Bitcoin sprawia, że ​​kiedy ktoś kopie, iteruje przez nonce, aż uzyska cyfrę, która mieści się w celu kopania. Ze względu na efekt lawiny, za każdym razem uzyskuje się inną nonce.

Teraz, jeśli pomnożymy 4294967296 przez 0,0000000000000000000021%, otrzymamy…

0,00000000009%

Nawet jeśli przeszedłbyś przez wszystkie 4 miliardy nonce w ciągu jednej sekundy, wciąż jest bardzo mała szansa, że ​​otrzymasz hash, który ma na początku 18 zer.

Znacznik czasu

Znacznik czasu w bloku mówi, kiedy ten blok jest tworzony. Z każdą upływającą sekundą zmienia się cały hash i pojawia się nowa możliwość uzyskania wymaganej liczby zer, od których zaczyna się hash.

Ale jaki format jest używany do publikowania znacznika czasu? Czy to „rrrr-mm-dd”, „rrrr-dd-mm” czy „rr-mm-dd”? Zdziwisz się, gdy usłyszysz, że to żaden z nich. Zamiast tego jest coś, co nazywa się czasem uniksowym. Czas uniksowy to liczba sekund, które minęły od epoki uniksowej, która miała miejsce w dniu 00:00:00, 1 stycznia 1970 r. Czas uniksowy jest czymś, co nigdy się nie resetuje i nie wymaga żadnego formatowania ani analizowania przez jakikolwiek program, aby nadać temu sens. Program będzie musiał tylko sprawdzić, jaki jest numer, aby upewnić się, że wszystko w łańcuchu bloków jest pod kontrolą.

Satoshi Nakamoto rozumiał, że postęp technologiczny pozwoli ludziom dojść w końcu do momentu, gdy uda się przejść przez wspomniane 4 miliardy nonce w mniej niż sekundę i to właśnie dzieje się teraz. Kiedy czytasz ten artykuł, ktoś wydobywa blok. Ktoś ciągle przegląda te miliardy nonce i znacznik czasu aktualizuje się za każdym razem, gdy ktoś nie może znaleźć hasha.

Może są jacyś okazjonalni górnicy, którzy potrafią iterować tylko przez 150 MH/s (mega-hash czyli milion hashów na sekundę). Zapaleni górnicy jednak – ci posiadający ogromne zasoby sprzętowe – mogą uzyskać kilka TH/s (terahaszy na sekundę)!

Pytanie brzmi: „Co górnicy robią z całym swoim dodatkowym czasem podczas kopania?”

Memopool

Powiedzmy, że jesteś dobrym górnikiem. Dysponujesz średnią mocą na poziomie około 10 GH/s. Tak więc przejście przez wszystkie iteracje nonce zajmuje Ci średnio około 0,43 sekundy. Co robisz z pozostałymi 0,57 sekundy? Na szczęście protokół Bitcoin ma już wbudowaną funkcję przełączania danych, więc teraz możesz spróbować ponownie z 4 miliardami nonce.

Co to jest mempool?

Memopool to rozproszona lista transakcji, które nie przeszły jeszcze do zamierzonego odbiorcy. Są to transakcje, których górnicy używają do dodawania do swoich bloków. W każdym bloku przechowywanych jest około 1000 transakcji.

Każda transakcja wiąże się z pewnymi opłatami. Oznacza to, że jeśli górnik wydobywa blok, otrzymuje opłaty związane z każdą transakcją w bloku wraz z nagrodą za wydobycie (obecnie 6,25 BTC). Tak więc protokół Bitcoina automatycznie wybiera najwyższe opłaty, które trafiają do bloku.

Wracając do naszego ostatniego scenariusza, w którym jesteś zapalonym górnikiem – w ciągu tych 0,57 sekundy można zrobić naprawdę dużo. Protokół Bitcoin wykrywa, kiedy górnik przechodzi przez wszystkie 4 miliardy nonce w mniej niż sekundę (lub zanim dojdzie do aktualizacji znacznika czasu).

Co możesz teraz zmienić w tym bloku?

  • Nie możesz zmienić indeksu bloku.
  • Nie możesz zmienić poprzedniego skrótu.
  • Nie możesz zmienić znacznika czasu (oczywiście, dopóki nie zostanie zaktualizowany).
  • Nie możesz zamienić nonce (jeszcze!).
  • Możesz zmienić transakcje wymienione w danych.

Trochę o opłatach

Powiedzmy, że chciałeś wysłać swojemu przyjacielowi trochę bitcoina, np. 0,003 BTC. Górnicy, którzy chcą zarabiać, wybierają transakcje z najwyższymi opłatami. Jeśli Twoja płatność nie uwzględnia opłat, to górnicy nigdy jej nie przeprocesują (jeśli Twoja transakcja nie przejdzie w ciągu 72 godzin, wysłane bitcoiny zostaną Ci zwrócone).

Kolejną rzeczą, na którą warto zwrócić uwagę, jest to, że w grę wchodzi również idea akcji. Gdy popyt rośnie, zwykle rośnie również cena. Gdy więcej osób chce wysłać pieniądze w tym samym czasie do kogoś innego, dość szybko zdają sobie sprawę z tego, że nie są sami. W tym samym czasie bowiem setka innych osób może chcieć zrobić to samo. Zakładając, że ktoś chce, aby to właśnie jego transakcja została zatwierdzona przez jako pierwsza, musi zwiększyć opłatę dla górników. Ostatecznie wszystko sprowadza się do tego, komu zależy na jak najszybszym przeprocesowaniu jego transakcji.

Podsumowanie

Kwestie związane z „wydobywaniem” bitcoinów nie są wcale oczywiste. Mamy jednak nadzieję, że po leturze tego tekstu co nieco udało się wyjaśnić. Gdybyś miał ochotę „pogrzebać” przy tym temacie nieco więcej, zachęcamy do przeczytania poniższych opracowań:

Komentarze