Ce conține un bloc: antet, înălțime, mărime, subvenție
Un bloc este un antet mic și fix plus un corp de tranzacții. Cele șase câmpuri ale antetului, ce hashează mining-ul și ce înseamnă înălțimea și mărimea.
Din ce este alcătuit un bloc?
Un bloc are două părți, un antet și un corp. Mining-ul hashează doar antetul.
- Corpul conține tranzacțiile. Poate avea câteva sute de octeți sau câțiva megaocteți, în funcție de cât de aglomerat este lanțul.
- Antetul este un rezumat fix al blocului. Pe majoritatea lanțurilor are exact 80 de octeți.
- Mining-ul hashează antetul și nimic altceva.
Ultimul punct este cel mai util fapt din acest articol. Un miner încearcă miliarde de variante pe secundă. Nu ar putea face asta dacă fiecare încercare ar însemna să hasheze din nou un bloc plin de tranzacții. Hashează din nou doar 80 de octeți.
Care sunt cele șase câmpuri din antet?
Antetul conține șase câmpuri. Fiecare este acolo cu un motiv, iar două dintre ele fac cea mai mare parte a muncii.
- Versiunea.
- Hash-ul blocului anterior.
- Rădăcina Merkle, un singur hash care rezumă toate tranzacțiile.
- Un marcaj de timp.
- Biții de dificultate.
- Nonce-ul, un contor pe care minerul îl poate schimba.
Hash-ul blocului anterior face din blocuri un lanț. Fiecare antet numește blocul dinaintea lui. Rescrierea unui bloc vechi i-ar schimba hash-ul. Asta ar strica antetul următor, și pe următorul, până la vârf. Acest singur câmp este întregul argument de securitate al proof of work.
Rădăcina Merkle rezumă toate tranzacțiile din corp. Schimbați o tranzacție cu un singur octet și rădăcina Merkle se schimbă. Atunci se schimbă și antetul, iar fiecare hash încercat până atunci nu mai valorează nimic. Așa pot 80 de octeți să țină locul, cinstit, unui bloc de orice mărime.
Biții de dificultate sunt ținta sub care trebuie să ajungă hash-ul, într-o formă compactă. Marcajul de timp arată aproximativ când a fost creat blocul și poate fi inexact. Nonce-ul este câmpul pe care minerul îl poate schimba liber. Această libertate face căutarea posibilă.
Ce se întâmplă când nonce-ul se epuizează?
Nonce-ul este un contor mic. Un miner modern consumă aproape instantaneu toate valorile pe care le poate avea. Nu este o fundătură. Nonce-ul este doar lucrul cel mai ușor de schimbat, niciodată singurul.
Când se epuizează, minerul schimbă altceva care intră în antet.
- Marcajul de timp se poate muta.
- Tranzacția coinbase (prima tranzacție din bloc, explicată mai jos) poate fi modificată ușor. Asta schimbă rădăcina Merkle și oferă un antet complet nou de căutat.
Pe un pool, la asta servește extra nonce-ul. Pool-ul dă fiecărui miner un alt punct de pornire. Astfel, niciun miner nu încearcă aceleași numere ca altul.
Ce este înălțimea blocului?
Înălțimea blocului este numărul de blocuri dinaintea unui bloc dat. Blocul genesis, primul dintre toate, are înălțimea zero. Următorul are unu și așa mai departe. Este numărul de lângă fiecare rând de pe pagina de blocuri a pool-ului și din orice explorer.
Înălțimea nu este de fapt stocată în antet. Vine din locul blocului în lanț.
Pe majoritatea lanțurilor moderne, înălțimea este scrisă și în tranzacția coinbase. Regula a fost adăugată mai târziu, ca două blocuri de la înălțimi diferite să nu poată fi niciodată identice octet cu octet. Totuși, răspunsul de referință pentru înălțimea unui bloc este poziția lui.
Înălțimea este și modul firesc de a număra confirmările. O tranzacție îngropată la șase blocuri adâncime stă într-un bloc cu șase sub vârf. Fiecare bloc în plus face rescrierea ei mai scumpă.
Ce măsoară mărimea blocului?
Mărimea blocului este, în esență, mărimea corpului. Antetul este neglijabil pe lângă el. O limită de mărime a blocului privește câte tranzacții încap, nu antetul.
Un bloc plin și un bloc gol cer exact aceeași muncă de mining. Dificultatea decide cât de greu de găsit este un bloc. Mărimea decide cât transportă blocul. Cele două nu au legătură, iar confundarea lor duce la multe intuiții greșite despre taxe.
Mărimea influențează totuși piața taxelor. Când mai multe tranzacții vor să intre decât încap, cele care oferă taxe mai mari intră primele. Taxele totale din bloc cresc, iar asta trece direct în ce plătește blocul.
Ce este tranzacția coinbase?
Prima tranzacție din fiecare bloc este specială. Nu are expeditor. Creează monede din nimic și le plătește celui care a făcut blocul.
Se numește tranzacția coinbase. Nu are nicio legătură cu exchange-ul cu același nume.
Ea plătește recompensa de bloc, care are două părți.
- Subvenția, monedele nou emise. Calendarul de emisie al lanțului o stabilește, iar la majoritatea monedelor scade în timp.
- Taxele tuturor celorlalte tranzacții din bloc. Utilizatorii le adaugă ca tranzacțiile lor să fie incluse.
Pe un pool, coinbase-ul plătește pool-ul. Pool-ul împarte apoi recompensa între toți cei care au trimis share-uri în acea rundă. Nu este un ocol. Așa plătește un pool mulți oameni dintr-o recompensă care sosește ca o singură plată indivizibilă.
De ce contează asta cât timp minați?
Odată ce forma unui bloc este clară, trei lucruri devin evidente. Toate trei apar mereu.
- Un bloc nou face instantaneu munca dumneavoastră inutilă. Hash-ul blocului anterior s-a schimbat, deci antetul pe care îl căutați nu mai există. Orice trimiteți pentru el după aceea este un stale share, iar nicio viteză nu repară asta.
- Pool-ul vă trimite des muncă nouă. Fiecare tranzacție nouă pe care pool-ul vrea să o includă schimbă rădăcina Merkle. Munca mai proaspătă aduce mai multe taxe, adică o recompensă mai mare pentru același efort.
- Mărimea blocului nu apare niciodată într-o estimare a câștigului. Ce câștigați depinde de dificultate, de subvenție și de taxe. Nu depinde de octeții din corp.
Pagina de blocuri a pool-ului arată înălțimea fiecărui bloc, recompensa lui și când a fost găsit. Acel rând este partea utilă din tot ce s-a spus mai sus. Explorer-ul arată restul, inclusiv tranzacția coinbase care l-a plătit.