Bitcoin SV presenta una vulnerabilidad grave de seguridad en sus direcciones multifirmas que permiten la pérdida de los fondos almacenados de sus usuarios.

El conocido desarrollador y cofundador de Blockstream, Gregory Maxwell, publicó en su cuenta de Reddit los resultados de una investigación que realizó sobre las wallets multifirma de Bitcoin SV, donde detalla cómo varios errores y vulnerabilidades de seguridad están permitiendo que los usuarios pierdan sus fondos. Maxwell, que en Reddit se muestra como el usuario u/nullc, señala que la bifurcación de la criptomoneda Bitcoin SV (BSV) desde Bitcoin Cash (BCH), ocasionó que varias de las características técnicas propias de Bitcoin (BTC) y Bitcoin Cash (BCH) se destruyeran, lo que en este momento está provocando graves errores de seguridad y la posible pérdida de los fondos de los usuarios. 

“Bitcoin SV (BSV) se bifurcó de Bitcoin Cash (BCH)… Al hacerlo, destruyó algunas de las características clave de Bitcoin; ahora, es peor”.

Según explica el desarrollador, los contratos multifirma de Bitcoin SV ya no garantizan seguridad a sus usuarios, y actualmente están provocando la pérdida de todos los tokens BSV. Así mismo, Maxwell también señala que, hasta el momento, los fondos de los usuarios reales no se han visto afectados por el error crítico descubierto, a excepción de Shou que informó la pérdida de 600 BSV. 

Te puede interesar: Los productos de Windows, iOS, Samsung y Google fueron hackeados en la competencia china Tianfu Cup

El origen del problema

Al parecer, cuando Bitcoin SV se bifurcó de Bitcoin Cash, los desarrolladores de la criptomoneda eliminaron la función P2SH (Pay to Script Hash), un tipo de dirección especial para transacciones en Bitcoin que permite las multifirmas, del código fuente de BSV, y la reemplazaron con una «versión pirata y débil» llamada «accumulator multisig» que utiliza direcciones con un formato parecido a las P2PKH (Pay to Public Key Hash). Además, Maxwell señala que al momento de hacer estos cambios, los desarrolladores utilizaron un número de firmas «menor o igual que» en lugar de «mayor o igual», lo que resultó en el exploit actual.

“Me parece que se utilizó un mayor o menor igual en lugar de menor o igual para su comparación final, probablemente debido a la confusión del autor sobre el orden de los elementos en la pila”. 

El resultado es que estos scripts no tienen una buena seguridad, por lo que los fondos pueden ser gastados por un script con un número menor de firmas válidas fácilmente. Según explica Maxwell, los desarrolladores no realizaron las pruebas debidas, ni comprobaron el funcionamiento de su producto con suficientes firmas, como estaba previsto. 

La falta de pruebas básicas

La apreciación de Maxwell es que; los desarrolladores solo probaron si las transacciones multifirmas funcionarían con la cantidad de firmas requeridas para enviar las transacciones, y no con un número mayor o menor de firmas. Así, el error crítico hace que los gastos en una transacción fallen si se utiliza un número mayor de las firmas mínimas necesarias, como también permite el robo de los fondos si se usa un número menor de las firmas, o incluso ninguna. 

Por otra parte, el desarrollador afirma que de haber ejecutado las pruebas y comprobaciones básicas, el problema se habría solucionado desde el inicio. Maxwell alega que este error crítico puede tratarse de un fallo accidental y no de algo intencional ni premeditado por los desarrolladores. 

Recomendaciones de seguridad

En primer lugar Maxwell señala que los usuarios deben percatarse y estar lo suficientemente seguros al momento de utilizar scripts personalizados, ya que este tipo de «protocolos criptográficos personalizados» deben estar diseñados con el mismo cuidado que cualquiera de los otros protocolos criptográficos existentes y conocidos, y que los usuarios deben de saber para evitar ser víctimas de «estafas obvias» o vulnerabilidades que arriesguen la seguridad de sus fondos. 

Por otra parte, los desarrolladores de Electrum SV, la wallet usada por Aaron Zhou, publicaron en su cuenta de Twitter una advertencia para los usuarios, destacando que no deben cambiar el tipo de script de sus wallets, y en especial, no cambiar a «accumulator multisig», ya que esto puede resultar en la pérdida de todos los fondos. 

600 BSV perdidos por este exploit

Roger Taylor, desarrollador de Electrum VS, publicó un artículo donde informa que un usuario perdió gran cantidad de tokens BSV, debido al cambio del tipo de script de su wallet multifirma hacia el script «accumulator multisig», lo que resultó en el robo del cual fue victima Aaron Zhou, con lo que perdió 600 BSV en un ataque que explotaba esta debilidad. 

Taylor informa que actualmente la función «accumulator multisig» está deshabilitada por defecto en la versión 1.3.7 de Electrum SV. Por último, los desarrolladores recuerdan la importancia de la seguridad en la implementación o mejora de los códigos. En el caso de Bitcoin SV, los cambios efectuados al código de la criptomoneda fueron realizados para que esta permitiera transacciones veloces, criticando el «lento y conservador» desarrollo de Bitcoin. Ahora, desafortunadamente, muchos pueden comprobar que un desarrollo rápido no significa precisamente seguro; muchas veces se pueden cometer graves errores como este, que sacrifican la seguridad por buscar velocidad. 

Continúa leyendo: Usuario pierde 1.400 BTC almacenados en una wallet Electrum durante ataque phishing