¿Qué es la minería SPV y cómo (inadvertidamente) causó la bifurcación después de que se activó BIP66?

Tengo curiosidad por escuchar una explicación detallada de la bifurcación dura y cómo se produjo; He escuchado/leído mucho, pero me falta una explicación cohesiva.

Respuestas (1)

La minería SPV es el término comúnmente utilizado para la minería de "validación de nodo inferior a la completa". Por lo general, significa que los mineros omiten la verificación del bloque y las transacciones dentro, e inmediatamente comienzan a extraer un nuevo bloque que hace referencia al encabezado del bloque recién resuelto. Sin embargo, dado que no saben qué hay en el último bloque, tienen que minar sin ninguna transacción (excepto la transacción de la base de monedas), para asegurarse de no minar un bloque con transacciones que entren en conflicto con las transacciones anteriores. bloquear.

Después de que BIP 66 se hizo cumplir, aproximadamente el 5 % de la red todavía estaba resolviendo bloques de la versión 2 (BIP 66 hace cumplir los bloques que usan el número de versión >= 3). Uno de los mineros en este 5 % resolvió un bloque con la versión 2, y si todos hubieran estado haciendo una validación completa, su bloque habría sido ignorado y reemplazado por un bloque de la versión 3. Eso es lo que se suponía que iba a pasar.

Pero, desafortunadamente, algunos grupos (F2Pool fue el más grande, creo), comenzaron a extraer un nuevo bloque que hacía referencia al encabezado del bloque no válido sin verificar las transacciones en él o que el nuevo encabezado usaba un número de versión de 3 (como acaba de convertirse forzado). Los mineros a veces conectan directamente sus nodos completos o monitorean las API de trabajo de los demás para ver cuándo otro grupo ha resuelto un bloque, para que puedan comenzar a trabajar en un nuevo bloque lo más rápido posible. En este caso, algunos grupos escucharon que las pepitas de BTC resolvieron un bloqueo al escuchar su API Stratum y comenzaron a extraerlo. Ni siquiera tenían el encabezado del bloque, solo el hash del encabezado del bloque.

https://en.bitcoin.it/wiki/July_2015_Forks#Invalid_Block_Hashes muestra los bloques no válidos:

  • 0000000000000000009cc829aa25b40b2cd4eb83dd498c12ad0d26d90c439d99 extraído por BTC Nuggets (98 transacciones sin base de monedas)
  • 0000000000000000155f2519d35cd5d2869900bcc5093594b27763a0315390b4 extraído por F2Pool (0 transacciones sin base de monedas)
  • 00000000000000000cb7a20ee4e199e347ad7369936abae53a1518efa531ec61 extraído por F2Pool (0 transacciones sin base de monedas)
  • 00000000000000000966d65e0fd87d1d5a8f154a2c955816c28e2006e381aa18 extraído por AntPool (0 transacciones sin base de monedas)
  • 00000000000000001301bfd6f566a421c7eeba103d09b312032ca065cb185de7 extraído por F2Pool (0 transacciones sin base de monedas)
  • 000000000000000013fe26675faa8f7dccd55ce5485bb6d0373fa66345901436 extraído por F2Pool (0 transacciones sin base de monedas)

Uno de los desarrolladores principales, Gregory Maxwell, también publicó una explicación aquí , que puede resultarle útil.

Tengo entendido que cuando comenzaron a minar, ni siquiera tenían el encabezado del bloque anterior (solo su hash). Vea mi comentario en Reddit aquí . ( Fuente ) Debido a que el bloque no era válido, probablemente nunca recibieron el bloque o su encabezado a través de la red de retransmisión P2P normal.
@DavidA.Harding, wow, eso es aún peor. Pensé que habían recibido el encabezado por retransmisión P2P. Actualizaré mi respuesta ahora, entonces.
Eso es correcto, están minando en otras respuestas de estrato de grupos, no en encabezados P2P de Bitcoin.