Está en la página 1de 2

Desarrollador presenta B’SST, un programa que rastrea errores en el código

de Bitcoin

Extracto: B’SST ejecuta simbólicamente los códigos de operaciones de Bitcoin para encontrar
problemas en los scripts que analiza.

El programa admite secuencias de comando Elements.

B’SST utiliza el Z3, un probador de teoremas de lógica de primer orden.

Un nuevo programa permite realizar análisis del código fuente de Bitcoin. El desarrollador Dmitriy
Petukhov divulgó, a través de la lista de correos de desarrolladores, el repositorio de Bitcoin Script
Symbolic Tracer (B’SST), una herramienta capaz de ejecutar códigos de operaciones y detectar
potenciales errores.

B'SST es capaz de analizar los scripts de Bitcoin “ejecutando simbólicamente todas las rutas de
ejecución posibles y rastreando las restricciones que los códigos de operación imponen a los
valores en los que operan”, indica Petukhov. Luego, el programa genera un informe basado en este
análisis.

El programa utiliza la biblioteca de código abierto Elements, diseñada por Google para el lenguaje
de programación Python. También utiliza el probador de teoremas de primer orden Z3, diseñado
por Microsoft Research, uno de los componentes más poderosos para detectar problemas de los
scripts (o conjunto de instrucciones escritas en lenguaje de programación). Según el repositorio de
B’SST, esta función permite un análisis minucioso. Sin embargo, se puede ejecutar el programa sin
Z3 para ciertos análisis “donde la velocidad de verificación es más importante que la
minuciosidad”.
Este programa debe usarse como una capa adicional de defensa en la lucha por detectar defectos y
comportamientos inesperados en los scripts, al igual que otras cosas como pruebas o auditorías de
código se usan para este propósito, simplemente reduciendo la probabilidad de que los defectos no
se detecten. También se puede utilizar como herramienta para comprender mejor el
comportamiento de los scripts analizados.

Dmitry Petukhov, repositorio de Bitcoin Script Symbolic Tracer

Para ejecutar este programa se necesita Python 3.10 o posterior. Además, requiere el uso de la
biblioteca secp256k1, diseñada específicamente para Bitcoin, para verificar la validez de las llaves
públicas. Este último es un requerimiento opcional, al igual que el uso del probador Z3.

En cuanto a su licencia de uso, B’SST es de código abierto: se registró como Prosperity Public
License 3.0.0., que es gratis para uso no comercial. Esta licencia otorga 30 días gratis si el programa
se utiliza con fines comerciales. Las instituciones educativas y de investigación están exentas.

B’SST también contiene partes del código de Bitcoin: el código de la clase CSHA256 de licencia MIT,
escrito por varios desarrolladores de Bitcoin Core y la función ripmd160, también de licencia MIT,
escrito por el desarrollador Pieter Wuille.
Entre las funciones de B’SST se encuentra la capacidad de informar sobre fallos de secuencias de
comando detectados, con el código que pudo haber causado el error; detectar rutas válidas para
la ejecución de los scripts; hacer una lista de restricciones que deben cumplirse para completar
exitosamente un script; y analiza posibles valores para distintas variables: por ejemplo, testigos,
resultados del script o campos de transacción.

Sin embargo, como advierte Pethukov, el programa “no puede garantizar que no haya problemas,
inconsistencias, errores, vulnerabilidades, etc. en el script analizado”. En este sentido, sugerimos
leer cuidadosamente la descripción del proyecto en GitHub, que contempla una serie más
detallada de factores que pueden derivar en un análisis exitoso y las posibles limitaciones del
programa.

Leyenda: En los últimos 5 días, se ha utilizado el programa para analizar al menos 6 scripts de
Bitcoin. Fuente: GitHub.

Petukhov indca que este tipo de desarrollos no habían sido objeto de trabajo de los
programadores de Bitcoin enmucho tiempo: “Solo conozco un proyecto que tuvo como objetivo
realizar este tipo de análisis anteriormente: el ‘SCRIPT Analyser’, pero no tuvo actualizaciones en su
repositorio de GitHub durante 5 años”.

La detección de errores es una parte vital del proceso de mejora de Bitcoin. A través de los años
se han encontrado y corregido numerosos errores. Por ejemplo, en 2018, los desarrolladores de
Bitcoin Core corrigieron una vulnerabilidad que pudo haber afectado la política monetaria de
bitcoin, como reportó CriptoNoticias.

También podría gustarte