Què hi ha dins d'un bloc: capçalera, alçada, mida i subvenció
Un bloc és una capçalera petita i fixa més un cos de transaccions. Saber quin és quin explica de què calcula realment el hash la mineria i per què.
Dues parts, i només una es passa pel hash
Un bloc té una capçalera i un cos. El cos són les transaccions, i pot ocupar uns quants centenars de bytes o diversos megabytes segons l'activitat de la cadena. La capçalera és un resum fix del bloc, i en la majoria de cadenes fa exactament 80 bytes.
La mineria calcula el hash de la capçalera i de res més. És el fet més útil d'aquest article, perquè explica una cosa que altrament sembla impossible: un programari de mineria prova milers de milions de variacions per segon, i no ho podria fer si cada intent volgués dir tornar a calcular el hash d'un bloc ple de transaccions. No ho fa. Torna a calcular el hash de 80 bytes.
Els sis camps de la capçalera
La capçalera conté una versió, el hash del bloc anterior, l'arrel de Merkle, una marca de temps, els bits de dificultat i el nonce. Tots hi són per algun motiu, i dos fan la major part de la feina.
El hash del bloc anterior és el que en fa una cadena. Cada capçalera esmenta l'anterior, de manera que reescriure un bloc antic canviaria el seu hash, cosa que trencaria la capçalera següent, i la següent, fins a l'extrem de la cadena. Aquest és tot l'argument de seguretat de la prova de treball en un sol camp.
L'arrel de Merkle és un sol hash que resumeix totes les transaccions del cos. Si canvieu una transacció, encara que sigui un sol byte, l'arrel de Merkle canvia, per tant la capçalera canvia, i per tant tots els hashes provats fins aleshores no serveixen de res. Així és com 80 bytes poden representar honestament un bloc de qualsevol mida.
Els bits de dificultat són l'objectiu per sota del qual ha de quedar el hash, en una forma compacta. La marca de temps és aproximadament quan es va fer el bloc, i pot ser aproximada. El nonce és el camp que el programari de mineria pot canviar lliurement, i és el que fa possible la cerca.
El nonce s'esgota, i no passa res
El nonce és un comptador petit, i un programari de mineria modern n'esgota tots els valors possibles gairebé a l'instant. Sembla un carreró sense sortida i no ho és, perquè el nonce només és el que és més còmode de canviar, mai l'únic.
Quan s'esgota, el programari de mineria canvia una altra cosa que alimenta la capçalera. La marca de temps es pot moure. La transacció coinbase es pot modificar lleugerament, cosa que canvia l'arrel de Merkle i dona una capçalera completament nova on buscar. En un pool, això és exactament per al que serveix l'extranonce: permet al pool donar a cada miner un punt de partida diferent perquè no n'hi hagi dos que provin els mateixos números.
L'alçada és una posició, no un camp
L'alçada del bloc és quants blocs hi ha abans d'un bloc donat. El bloc gènesi és l'alçada zero, el següent és l'u, i així successivament. És el número que veieu al costat de cada entrada a la pàgina Blocs del pool i a qualsevol explorador.
Val la pena saber que l'alçada en realitat no es desa a la capçalera. Es dedueix d'on és el bloc dins de la cadena. En la majoria de cadenes modernes l'alçada també s'escriu a la transacció coinbase, una norma afegida més tard perquè dos blocs a alçades diferents no puguin ser mai idèntics byte a byte, però la resposta definitiva a quina alçada té un bloc continua sent la seva posició.
També per això l'alçada és la manera natural de parlar de les confirmacions. Una transacció enterrada a sis blocs de profunditat és aquella el bloc de la qual té una alçada sis per sota de l'extrem, i cada bloc addicional fa que reescriure-la sigui encara més car.
La mida és el cos, i és el que s'omple
La mida del bloc és essencialment la mida del cos, perquè la capçalera és insignificant al seu costat. Quan la gent diu que una cadena té un límit de mida de bloc, parla de quantes transaccions hi caben, no de la capçalera.
Un bloc ple i un bloc buit requereixen exactament el mateix treball de mineria. La dificultat decideix com de difícil és trobar un bloc; la mida decideix quant transporta el bloc. No hi tenen res a veure, i confondre-les és l'origen de moltes intuïcions errònies sobre les comissions.
El que sí que afecta la mida és el mercat de comissions. Quan hi ha més transaccions que volen entrar de les que hi caben, entren primer les que ofereixen comissions més altes, i les comissions totals del bloc pugen. Això repercuteix directament en el que paga el bloc.
La transacció coinbase i la subvenció
La primera transacció de cada bloc és especial. No té remitent, crea monedes del no-res i les paga a qui ha fet el bloc. S'anomena transacció coinbase, i no té res a veure amb la plataforma d'intercanvi del mateix nom.
El que paga és la subvenció més les comissions de totes les altres transaccions del bloc. La subvenció és la part d'emissió nova, fixada pel calendari d'emissió de la cadena i reduïda amb el temps en la majoria de monedes. Les comissions són el que els usuaris han afegit a les seves transaccions perquè s'incloguin. Juntes formen la recompensa del bloc.
En un pool, la coinbase paga el pool, que després reparteix la recompensa entre tots els que han aportat shares a aquella ronda. No és un rodeig: és la manera com un pool pot pagar moltes persones per una recompensa que arriba com un sol pagament indivisible.
Per què importa tot això mentre mineu
Tres coses esdevenen evidents un cop és clara la forma d'un bloc, i totes tres surten constantment.
- Per què un bloc nou invalida el vostre treball a l'instant. El camp del hash del bloc anterior ha canviat, de manera que la capçalera que buscàveu ja no existeix. Qualsevol cosa que envieu per a aquella capçalera després és una share obsoleta, i cap velocitat no ho soluciona.
- Per què el pool us envia treball nou tan sovint. Cada transacció nova que el pool vol incloure canvia l'arrel de Merkle, i una plantilla més recent porta més comissions, que vol dir més recompensa pel mateix esforç.
- Per què la mida del bloc no apareix mai en una estimació de guanys. El que guanyeu ho decideixen la dificultat, la subvenció i les comissions, no quants bytes hi havia al cos.
La pàgina Blocs d'aquest pool mostra l'alçada, la recompensa i quan es va trobar, que és la part útil de tot l'anterior condensada en una fila. L'explorador us mostrarà la resta, inclosa la transacció coinbase que el va pagar.