Bitcoin.org publicó hoy en su sitio web una notificación referente a ciertos inconvenientes que se están presentando en la red debido a problemas presentados con la actualización planificada del conjunto de normas acordado BIP66 que algunas versiones del Bitcoin Core no conocen.
Según la publicación, las transacciones realizadas antes de las 16:00h UTC están aseguradas. Luego de éste punto en el tiempo, las puntuaciones de confirmación para las transacciones de bitcoin recibidas son significativamente menos fiables para los usuarios de un determinado software.
En específico:
• Usuarios de carteras (SPV): deben esperar otras 30 confirmaciones más de lo que normalmente esperan.
• Usuarios con Bitcoin Core 0.9.4 o versiones anteriores: deben esperar otras 30 confirmaciones más de lo que normalmente esperan o actualizar a Bitcoin Core 0.10.2.
• Usuarios con carteras web: deben esperar otras 30 confirmaciones más de lo que normalmente se espera, a menos que sepa con seguridad que su cartera está garantizado por la versión Bitcoin Core 0.9.5 o posterior.
Los usuarios con el Bitcoin Core 0.9.5 o posterior no se ven afectados. Bitcoin.org recomienda la actualización a la versión 0.10.2 debido a las vulnerabilidades en ésta versión no están relacionadas con esta alerta de denegación de servicio.
Los efectos en la minería bitcoin
Bitcoin.org recomienda a quienes minen en grupos cambiar a uno que valide correctamente los bloques generados. La página Wiki de Comparación de Minería en Grupos actualmente contiene una lista de grupos conocidos (o sospechosos) buenos y malos. Para los usuarios que minan en solitario, se les pide cambiar a la versión Bitcoin Core 0.10.2 para evitar tales inconvenientes.
El problema que se menciona es que los mineros están creando bloques no válidos. Algún software puede detectar que esos bloques no son válidos y los rechazan; otros no puede detectar que los bloques no son válidos, por lo que muestran las confirmaciones que no son reales.
La versión Bitcoin Core 0.9.5 y posteriores nunca tuvieron ningún problema, ya que podrían detectar qué bloques eran válidos. Pero Bitcoin Core 0.9.4 y anteriores no proporcionan tanta seguridad como las versiones posteriores de Bitcoin Core, ya que no sabe nada de las normas adicionales del consenso BIP66. Se recomienda la actualización para volver a la seguridad de nodo completo.
Las billeteras ligeras (SPV) no son seguras para menos de 30 confirmaciones hasta que todas los grandes grupos de minería cambien a la validación completa. Las billeteras Web son muy diversas en lo que a las infraestructura que corren se trata y cómo manejan el gasto doble, así que a menos que sepamos con seguridad que utilizan Bitcoin Core 0.9.5 o posterior para la validación completa, se debe asumir que tienen la misma seguridad que las carteras ligeras descritas anteriormente.
La causa de la generación de bloques inválidos
En resumen algunos mineros están actualmente generando bloques no válidos. Casi todo el software (aparte de Bitcoin Core 0.9.5 y posteriores) aceptarán estos bloques no válidos en determinadas condiciones. Los párrafos que siguen explican la causa más a fondo:
Desde hace varios meses, una cantidad cada vez mayor de la tasa de hash en la minería ha estado señalando su intención de comenzar a hacer cumplir las estrictas firmas DER de las reglas BIP66. Como parte de las normas BIP66, una vez que 950 de los últimos 1.000 bloques eran de la versión 3 (v3) bloques, todos los mineros mejorados rechazarían la versión 2 (v2) bloques.
Temprano en la mañana del 4 de julio de 2015, se alcanzó el umbral 950/1000 (95%). Poco después, un pequeño minero (parte del 5% no actualizado) extrae un bloque no válido como parte de un acontecimiento esperado. Por desgracia, resultó que aproximadamente la mitad del hashrate estaba minando sin validaciones completas de bloques (llamados mineras SPV), y construyó nuevos bloques en la parte superior de ese bloque no válido.
Tenga en cuenta que aproximadamente el 50% de la red que estaba minando en SPV había indicado explícitamente que iban a hacer cumplir las normas BIP66. Al no hacerlo, varios mineros grandes han perdido más de 50,000 $ dólares en ingresos de minería hasta el momento.
Todo el software que asume que los bloques son válidos (porque los bloques no válidos cuestan dinero a los mineros) está en riesgo de mostrar las transacciones como confirmadas cuando en realidad no lo son. Esto afecta especialmente a las billeteras ligeras (SPV) y con software tales como las versiones antiguas de Bitcoin Core que han sido degradados a la seguridad a nivel de SPV por las nuevas reglas de consenso BIP66.
La solución inmediata, que está en marcha a partir del anuncio de Bitcoin.org, es conseguir que todos los mineros estén fuera de la minería SPV y de nuevo a la validación completa (al menos temporalmente). De acuerdo como esto progrese, se recomienda esperar 30 confirmaciones adicionales para validar las transacciones.