Una Block Template reúne los datos para construir un bloque candidato en la red Bitcoin. Después, el minero busca una prueba de trabajo válida sobre su cabecera, el resumen compacto de los datos del bloque. La plantilla relaciona las transacciones elegidas, la recompensa y las reglas de construcción; obtenerla no significa haber minado un bloque ni que la red lo haya aceptado.
Cada bloque nuevo se construye sobre un predecesor concreto. La plantilla lo identifica mediante previousblockhash, su huella única, mientras height indica la posición del bloque propuesto en la cadena. También incluye version, la versión de la cabecera; bits, una codificación compacta del objetivo que debe cumplir el resultado minero; y datos de tiempo. Son instrucciones para construir un bloque concreto, no una lista independiente de pagos. Las mismas transacciones sobre otro predecesor ya forman una tarea distinta. [1]
Anna recibe bitcoin y luego paga con él. Si ambas transferencias van en el mismo bloque, primero debe aparecer la transacción que le asignó esos fondos y después la que los gasta. BIP 22, el documento técnico que describe el formato de la plantilla, define el campo depends para estas relaciones: remite a entradas anteriores mediante posiciones que empiezan en uno dentro de la lista transactions. La lista no incluye coinbase, la primera transacción especial que asigna la recompensa minera. Si falta depends, las dependencias son desconocidas; no se confirma que sean inexistentes. El software no puede tratar esa ausencia como una lista vacía. [1]
La recompensa incluye los bitcoins nuevos según las reglas de esa altura y las comisiones de las transacciones realmente incluidas. Así la calcula también Bitcoin Core v29.0, la versión citada de un programa que verifica bloques y transacciones y también prepara plantillas para minar. En nuestro ejemplo, las transacciones aportan 10000 sats; al retirar una transacción independiente con una comisión de 3000 sats, quedan 7000 sats en comisiones. Los sats son unidades pequeñas de bitcoin. El campo coinbasevalue indica la recompensa máxima que el minero puede asignarse con la selección original de transacciones. Si cambia esa selección, hay que recalcular el importe. El cálculo debe basarse en las comisiones reales, no en la suma del contenido anterior. [4] [1]
Un bloque también contiene huellas criptográficas que permiten verificar sus datos. BIP 141 describe el witness commitment, una huella criptográfica que vincula el bloque con los datos witness, donde figuran, por ejemplo, firmas que demuestran autorización para gastar. Se deriva de identificadores wtxid que incluyen esos datos. Bitcoin Core 29 ofrece default_witness_commitment para una plantilla sin modificar. Si cambian las transacciones pertinentes o su orden, hay que comprobar o recalcular esa huella. La Merkle root, la huella conjunta de las transacciones en la cabecera, también debe calcularse a partir de los identificadores TXID finales, incluido el de la coinbase modificada. Un sello antiguo no sirve para un contenido cambiado. [5] [3]
El espacio del bloque es limitado y el minero decide qué incluir. Bitcoin Core v29.0 evalúa paquetes de transacciones relacionadas, su peso, una medida de carga de datos, y sigops, las operaciones de comprobación de firmas que cuentan para el límite del bloque. Ajustes como blockmaxweight y blockmintxfee influyen en el tamaño del bloque construido y en la tasa de comisión exigida. Esto es política de selección. Un pago omitido por esa política no es necesariamente inválido según las reglas de la red. La configuración del minero tampoco eleva los límites de red que verifican los demás nodos. [4] [3]
En BIP 23, mutable enumera los cambios que permite el servidor, como ajustar el tiempo o añadir transacciones. Es un acuerdo para trabajar con una plantilla concreta. El permiso no anula el consenso, es decir, las reglas de validez que otros participantes comprueban de forma independiente. El predecesor, el tiempo, la dificultad y las transacciones deben seguir siendo correctos. Acceder a la plantilla tampoco implica que cualquier dispositivo conectado pueda cambiar libremente su contenido; depende del sistema y de la tarea que reciba. [2]
Otro minero puede ampliar la cadena mientras siguen los cálculos. Para continuar sobre el último bloque aceptado, no basta con sustituir la huella del predecesor en la plantilla antigua. Algunas transacciones quizá ya estén confirmadas, y cambian la altura y otras condiciones. BIP 23 describe expires como un límite temporal del trabajo y prevblock como permiso para usarlo con otro predecesor. Incluso ese permiso no sustituye la validación: hay que revisar las transacciones, la recompensa y todo el contexto nuevo. [2]
Es mejor descubrir un error en el borrador antes de una búsqueda larga. El modo proposal de BIP 23 permite someterlo a revisión sin exigir una Proof of Work válida, es decir, un resultado ya encontrado que demuestre el trabajo computacional necesario. Una valoración positiva no significa que se haya encontrado o difundido un bloque ni garantiza su lugar permanente en la cadena. Significa que el borrador superó esa comprobación previa. Al enviarse, el bloque terminado todavía debe pasar la validación correspondiente, incluida la prueba de trabajo. [2]
Para obtener la imagen más completa, lee esta entrada junto con Mining Pool, Block Header, Extranonce, Merkle Tree, Bitcoin, Bitcoin Core. También enlazan con esta entrada Transacción coinbase, ASIC Miner, Mining Pool, Nonce.