Co tak naprawdę rozwiązują górnicy bitcoinów?

Podobnie jak w przypadku kopania, co tak naprawdę rozwiązują kopacze bitcoinów? Czytałem, że rozwiązują hashe, ale co to naprawdę oznacza. Czy możemy zobaczyć, co rozwiązują? Czy ktoś może podać przykład tego, co maszyna do wydobywania bitcoinów ma rozwiązać?

Komentarze

  • Powiązane: bitcoin.stackexchange.com/q/148/153
  • OK, ale JAKIE dane wydobywamy! Wydaje się, że nikt nie wie. Nie ' nie obchodzi mnie, jak to działa Chcę wiedzieć, skąd pochodzą dane z wydobywania bitów to deszyfrowanie lub szyfrowanie.

Odpowiedź

Próbują znaleźć losowy numer jednorazowy (trochę losowych danych), który trafia do bloku i sprawia, że blok ma (SHA256) skrót, który (binarny ) zaczyna się od pewnej liczby 0 „s. Im więcej zer, tym rzadszy jest hasz. Dobry wynik” haszowania „nie jest przewidywalny, więc musisz wiele razy próbować znaleźć dobry nonce.

Liczba zer zależy od tego, jak trudne powinno być znalezienie bloku. W Bitcoin dostosowuje się, aby mieć nowy blok co 10 minut (średnio, biorąc pod uwagę tempo, w jakim znajdują się poprzednie bloki).

Interesujące: ponieważ skróty są nieprzewidywalne, nie ma znaczenia, jak zmienia się nonce ! W większości przypadków jest to tylko liczba odliczająca od 0 w górę!

Odpowiedź

Oto niezwykle uproszczony szkic problemu, ale powinien dać całkiem dobre wyobrażenie o tym, na czym polega problem.

Dane:

To jest skrót ostatniego bloku (skrócony do 30 znaków):

00000000000001adf44c7d69767585 

Te to skróty kilku ważnych transakcji czekających na uwzględnienie (skrócone).

5572eca4dd4 db7d0c0b845 

A to jest skrót jednej specjalnej transakcji, którą właśnie stworzyłeś, co daje 25BTC (aktualna nagroda) dla siebie:

916d849af76 

Budowa następnego bloku:

Teraz użyjmy grubego przybliżenia tego, jak mógłby wyglądać nowy blok (prawdziwy używa formatu binarnego). Zawiera hash poprzedniego bloku i skróty tych 3 transakcji:

00000000000001adf44c7d69767585--5572eca4dd4-db7d0c0b845-916d849af76-- 

Teraz zróbmy wydobycie ręcznie! Naszym celem jest dokończenie tego blok z nonce (kawałkiem śmieci) taki, że hash nowego bloku zaczyna się od 13 zer (biorąc pod uwagę poprzedni hash, wygląda na to, że obecna trudność to 13 zer!).

Wydobywanie (próba sfinalizowania tego bloku):

Spróbujmy z nonce = 1 i obliczmy hash bloku (ja „m używam algorytmu haszującego md5, ale Bitcoin używa podwójnego sha256):

> echo "00000000000001adf44c7d69767585--5572eca4dd4-db7d0c0b845-916d849af76--1" | md5sum 8b9b994dcf57f8f90194d82e234b72ac 

Nie ma szczęścia, hasz nie zaczyna się od 0 … Spróbujmy z nonce = 2

> echo "00000000000001adf44c7d69767585--5572eca4dd4-db7d0c0b845-916d849af76--2" | md5sum 5b7ce5bcc07a2822f227fcae7792fd90 

Nie powodzenia…

Jeśli będziemy kontynuować do nonce = 16, otrzymujemy pierwsze wiodące zero.

> echo "00000000000001adf44c7d69767585--5572eca4dd4-db7d0c0b845-916d849af76--16" | md5sum 03b80c7a34b060b33dd8fbbece79cee3 

Dla nonce = 208 otrzymujemy dwa wiodące zera!

> echo "00000000000001adf44c7d69767585--5572eca4dd4-db7d0c0b845-916d849af76--208" | md5sum 0055e55df5758517c9bed0981b52ce4a 

Kontynuuj w ten sposób… Jeśli w końcu znajdziesz skrót zawierający 13 wiodących zer… jesteś zwycięzcą! Inni górnicy będą teraz budować na Twoim bloku, właśnie dostałeś 25BTC.

Ale musisz być szybki!

Wróć do kroku 1…

Jeśli komuś uda się zbudować blok, zanim to zrobisz, będziesz musiał zacząć od nowa od nowego bloku „s hash (ten ze zwycięzcy).

Komentarze

  • Również twój przykład pod względem koncepcyjnym zmierza we właściwym kierunku, ale prawdziwym sukcesem jest gdy wartość skrótu sha256 nagłówka jest mniejsza niż wartość docelowa. Przykładowy cel: 00000000000001ae00000000000000 jest większy niż 00000000000001adf44c7d69767585 < – to byłby prawidłowy hash .
  • @Reonarudo, niezupełnie, to jest bardzo uproszczony szkic tego, co zostało faktycznie zrobione. Transakcje są dokonywane za pomocą skryptów, które często są tworzone z adresów, więcej informacji można znaleźć na wiki Bitcoin.
  • Zasadniczo brzmi to jak ładne (uproszczone) podsumowanie, ale w którym momencie sieć bitcoin to akceptuje jako następny prawidłowy blok i co się stanie w (mało prawdopodobnym) przypadku, gdy dwóm różnym kopaczom udało się przesłać prawidłowy blok prawie jednocześnie?
  • Wow, świetna odpowiedź! ' jest jeszcze kilka rzeczy, których nadal nie mogłem ' się rozejrzeć: Niech ' mówi, że ' szukałeś rozwiązania przez 6 minut i nadchodzi nowa transakcja. 1) co się teraz dzieje? jeśli muszę zaczynać od nowa, to brzmi tak, jakby każdy musiał zaczynać od nowa. Jak więc blockchain może zagwarantować znalezienie bloku w ~ 10 minut? 2) Jak zresztą doszło do tej transakcji?3) Co się stanie, jeśli znajdę rozwiązanie dla tego bloku, a następnie nowa transakcja przychodzi do mnie z innego węzła, który zaakceptował ją dla bloku, który właśnie zamknąłem?
  • 1) Tak, każdy zaczyna od nowa, jeśli budujesz nad starym blokiem istnieje ' szansa, że bloki staną się częścią dłuższego łańcucha i zostaną zignorowane przez resztę sieci. Nie ma gwarancji, że blok zostanie znaleziony w ciągu 10 minut, jest to ' zwykły wynik statystyczny. 2) Jaka transakcja? Bloki są nadawane przez tego, kto je wydobył i przekazywane przez inne węzły. 3) Nic nie zmusza Cię do uwzględnienia wszystkich oczekujących transakcji, ale im więcej transakcji uwzględnisz, tym więcej opłat możesz pobrać.

Odpowiedź

Poniżej znajduje się opis globalnej, statystycznej gry hazardowej rozgrywanej co około 10 minut. Interwał gry jest kontrolowany przez poziom trudności , który mówi, ile „haszów” jest potrzebnych na interwał.

Innymi słowy, difficulty i target określają „szanse na wygraną” w porównaniu z szansą na zdobycie zwycięski hash SHA. nonce to obszar „zdrapany”.

Każdy haszysz zużywa energię elektryczną i emituje ciepło, co wymaga dodatkowego chłodzenia.

Oto, co robi się z każdym hashem:

Krok 1

Na wysokim poziomie oprogramowanie górnika pobiera listę aktywnych transakcji, a następnie grupuje je w coś, co nazywa się „blokiem”.

Albo dokładniej mówiąc: Oprogramowanie górnika ukrywa wszystkie transakcje w widoku podsumowania zwanym „merkle root” i haszuje go, który jest reprezentatywny dla transakcji.

Krok 2

Następnie oprogramowanie do wydobywania konwertuje to na format binarny zwany Nagłówek bloku , który również odwołuje się do poprzednich bloków (nazywanych także łańcuchem).

Field Purpose Updated when... Size (Bytes) Version Block version number You upgrade the software and 4 it specifies a new version hashPrevBlock 256-bit hash of the previous A new block comes in 32 block header hashMerkleRoot 256-bit hash based on all A transaction is accepted 32 the transactions in the block Time Current timestamp as seconds Every few seconds 4 since 1970-01-01T00:00 UTC Bits Current target in compact format The difficulty is adjusted 4 Nonce 32-bit number (starts at 0) A hash is tried (increments) 4 

Krok 3:

Sprzęt górnika zmienia niewielką część tego bloku zwaną „nonce” .

Krok 4:

Nagłówek bloku jest haszowany i porównywany z celem tak, jakby to była po prostu duża liczba, np. 10 000 000> 7 000 000 (liczby rzeczywiste są znacznie większe i szesnastkowe). Cel jest kompresowany i zapisywany w każdym bloku w polu zwanym bitami.

Rozwinięty cel wygląda następująco:

 Target 0000000000000083ef00000000000000000000000000000000000000000000000 

A Celem jest upewnienie się, że SHA256 hash bloku jest mniejsza wartość. W poniższym przykładzie „83ee” jest mniejsze niż „83ef

Aby uprościć tę koncepcję, możesz cel, licząc zera wiodące (jak wyjaśnia druga odpowiedź). Oto przykład:

Oto przykładowy blok z transakcjami, które można wyświetlić na BlockChain.info. Spójrz w prawy górny róg strony internetowej dla tego skrótu:

 Hash 0000000000000083ee9371ddff055eed7f02348e4eda36c741a2fc62c85bc5cf 

Ten poprzedni hash pochodzi z dnia dzisiejszego i ma 14 wiodących zer. Porównajmy to z tym, co było potrzebne 3 lata temu, z blokiem 100 , który ma 8 wiodących zer.

 Hash 00000000a8ed5e960dccdf309f2ee2132badcc9247755c32a4b7081422d51899 

Podsumowanie

Podsumowując, wszystko, co robi górnik to:

  1. Weź nagłówek bloku jako dane wejściowe
  2. Zmień wartość jednorazową
  3. Sprawdź, czy nagłówek bloku hash jest mniejsza niż wartość Target. Jeśli tak, wygrywasz.
  4. Przejdź do kroku 2 (lub przejdź do kroku 1, jeśli ktoś inny wygrał blok).

Chcesz zobaczyć, co robi Bitcoin-QT, gdy znajdzie blok? … Opublikowałem to tutaj. . Informacje w tym poście będą pomóc Ci zrozumieć, co się stało.

Komentarze

  • Isn ' t the nonce (32 bits) daleko zbyt mały, aby móc znaleźć hash, który musi zaczynać się od 14 wiodących zer (14×4 = 56 bitów)? Znalezienie takiego skrótu wymagałoby średnio 2 ^ 56/2 prób i 32-bitowego nie nce tylko 2 ^ 32 próby są możliwe, zanim wszystkie możliwe wartości jednorazowe zostaną wyczerpane. Edycja: czas zmienia się co sekundę, wydaje mi się, że ma to zastosowanie tylko wtedy, gdy szybkość mieszania przekracza 4 GH / s (co myślę, że tak …)
  • Tak, ' w prawo, … z adresu URL w nagłówku bloku: Whenever Nonce overflows (which it does frequently), the extraNonce portion of the generation transaction is incremented, which changes the Merkle root.

Odpowiedź

Wydobywanie umożliwia osiągnięcie porozumienia co do tego, jak powinna wyglądać księga transakcji i wiedzieć, że nikt nie oszukuje.

To nietechniczna definicja górnictwa .

„Autorytetem” w przypadku podwójnych wydatków jest łańcuch bloków. Blockchain składa się z historii wszystkich bloków w łańcuchu bloków oraz następnego bloku transakcji. Dotacja do nagrody wynosi obecnie 25 BTC dla strony, która przesyła następny blok. Ale hej … chciałbyś tych 25 BTC (obecnie wartych około 825 $), tak jak ja, tak jak wszyscy inni. Jak więc to zrobić, abym nie mógł sam oszukiwać i odebrać blokady?

Cóż, wprowadziłeś system, w którym ty i ja musimy konkurować. To właśnie daje dowód pracy – sprawia, że kiedy odbieram nagrodę, łatwo jest udowodnić, że naprawdę wykonałem swoją pracę. Aby mieć 2% szans na rozwiązanie bloku, muszę włożyć 2% pracy wydobywczej. Nie ma sposobu, abym włożył mniej niż 2% całej pracy i nadal rozwiązywał bloki przez co najmniej 2% czasu (średnio).

W rezultacie, gdy transakcja blokuje wszyscy partnerzy sprawdzają, czy nie było podwójnych wydatków, czy wnioskowano o odpowiednią kwotę dotacji i czy osoba zgłaszająca rzeczywiście włożyła pracę niezbędną do tego rozwiązania. Przy tych trzech zasadach nie ma potrzeby centralny organ zarządzający procesem lub zdolny do kontrolowania wyniku.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *