ASICBoost comparte el cálculo del message schedule de SHA-256 entre candidatos adecuados de cabecera. Tienen una parte común del mensaje y distintos estados intermedios; no se trata de encontrar dos hashes finales de Bitcoin idénticos.
Timo Hanke describió ASICBoost en 2016 y reconoció la colaboración de Sergio Demian Lerner. Combina preparación fuera del ASIC y organización dentro del chip. No cambia SHA-256 ni la exigencia de que el doble hash final cumpla el objetivo; ahorra operaciones repetidas. [Timo Hanke — AsicBoost, 2016]
La cabecera de Bitcoin tiene 80 bytes. El primer SHA-256 la divide en 64 bytes y otros 16 completados con padding. El Merkle root ocupa ambas partes: sus últimos 4 bytes están en la segunda, con tiempo, bits y nonce. Importa la posición exacta de los datos modificados. [Timo Hanke — AsicBoost, 2016]
Hanke llama colliding work items a trabajos con el mismo Message y distintos midstate de la primera parte. Para un nonce elegido se reutiliza el message schedule de la segunda parte del primer SHA-256 entre esos estados. No es una colisión del SHA-256 completo ni igualdad de las primeras partes: estas difieren. [Timo Hanke — AsicBoost, 2016]
Lerner distingue overt, que modifica nVersion, y covert, que busca Merkle root con los mismos últimos 4 bytes y distinta primera parte. Covert puede cambiar transacciones o su orden, conservando compromisos y dependencias válidos. Un nVersion variable por sí solo no demuestra un ahorro concreto ni la identidad del operador. [Sergio Demian Lerner — Overt and covert AsicBoost, 2017]
BIP310 utiliza mining.configure y version-rolling.mask; la respuesta es la intersección de las capacidades del servidor y del minero. Al enviar debe cumplirse version_bits & ~last_mask == 0. mining.set_version_mask entra en vigor inmediatamente, no en el siguiente trabajo. Version rolling no autoriza cambiar cualquier bit ni ignorar la nueva máscara. [BIP310 — Stratum protocol extensions]
En la fecha de revisión, BIP320 tiene estado Draft y describe 16 bits generales de nVersion; BIP323 también es Draft y propone sustituirlos por 24 bits. Distinga estos documentos de la máscara y el software realmente usados en cada conexión. Un número BIP no demuestra compatibilidad universal ni cambios arbitrarios de consenso. [BIP320 — General-purpose nVersion bits] [BIP323 — 24 general-purpose nVersion bits]
El modelo de Hanke da x × (n − 1) / n, donde x es el porcentaje de expansión compartida y n el número de trabajos adecuados. Con x = 25% y n = 4 resulta 18.75%. Modela trabajo computacional bajo esa hipótesis, no automáticamente el mismo ahorro de vatios, precio o aumento de hashrate de todos los mineros. [Timo Hanke — AsicBoost, 2016]
Documente soporte del chip y firmware, máscara negociada, trabajo aceptado y consumo en condiciones comparables. Los J/TH del dispositivo completo no se sustituyen por el nombre de una función ni por un porcentaje teórico. ASICBoost no equivale a overclocking ni garantiza encontrar un bloque o ganar dinero. [Timo Hanke — AsicBoost, 2016] [BIP310 — Stratum protocol extensions]
Para obtener la imagen más completa, lee esta entrada junto con ASIC Miner, Minería, Cabecera de bloque, Proof of Work. También enlazan con esta entrada Mining Firmware.