Descompilador de Bitcoin

¿Existe alguna herramienta para descompilar la cadena de bloques de Bitcoin?

Veo noticias sobre Ethereum Decompiler , pero es algo como para Bitcoin?

Si llegó aquí como yo buscando algo para traducir un script a tokens legibles por humanos (más como un "desensamblador" para la multitud pedante), consulte bitcoin.stackexchange.com/questions/42576/… , especialmente github.com/ kallewoof/btcdeb .

Respuestas (1)

Hay una gran diferencia entre el lenguaje utilizado por la cadena de bloques de bitcoin y el utilizado en ethereum.

Los programadores de contratos inteligentes de Ethereum suelen escribir su código en un lenguaje de alto nivel (como la solidez) y luego lo compilan en un código de bytes difícil de leer.

Los programadores de scripts de Bitcoin escriben el código en un lenguaje que no está compilado, como si estuvieran escribiendo el código de bytes en sí (aunque en realidad no es un código de bytes).

Entonces, es lógico que no puedas descompilar un lenguaje que nunca fue compilado en primer lugar.

Lo que puede hacer es mirar las representaciones hexadecimales de bytes en un script de bitcoin y verificar qué operación representan.

Esta página tiene la lista de todos los comandos y su valor hexadecimal.

Editar

Cuando escribe un script en Bitcoin, ya es completamente transparente. Nunca se compila, NUNCA . Ya es completamente transparente porque nunca lo compilas. No necesita descompilarlo porque nunca se compiló, al igual que no puede destruir una casa que nunca se construyó en primer lugar.

¿Ya mencioné que no es necesario descompilar porque el código nunca se compila ?

Porque es muy importante entender que nunca se compila . Puedes leerlo tal como es.

Si ve una 0x6aen el código, se lee como OP_RETURNen el enlace que le di arriba. Puede leer la lista completa de caracteres hexadecimales en un script y decodificarlo así. No hay nada más que puedas hacer

Espero que quede claro ahora.

So it is logical that you can't decompile a language that was never compiled in the first place.¿Por qué lo crees? ¿Es imposible o poco práctico?
@Denis, compilar significa convertir el código fuente en otro código más básico (pero menos legible por humanos). Por ejemplo, convertir C++ en instrucciones x86. Ethereum tiene su propio conjunto de instrucciones, pero la mayoría de las personas usan un lenguaje de nivel superior y un compilador para convertirlo en las instrucciones de Ethereum. El script de Bitcoin es tan simple y limitado que nadie usa un lenguaje de nivel superior. Como tal, no existe un compilador para convertir este lenguaje inexistente en un script de Bitcoin, y no existe un descompilador para volver a convertirlo.
@Denis, ¿cómo puedes deshacer algo que nunca se hizo? No es imposible o impráctico, simplemente nunca sucedió.
@IvanoDonadi Necesito total transparencia para mis tareas
@Denis, simplemente no lo estás entendiendo. Lea mi edición por favor y trate de entender
No me refiero solo al script, sino a la estructura de la base de datos completa, todas las dependencias de la estructura y los árboles de flujo de valor, etc. El guión aquí es una pequeña parte de la pregunta.
El enlace que publicaste sobre el descompilador ethereum es estrictamente sobre el script. Lea alguna documentación básica sobre bitcoin y la cadena de bloques.
@IvanoDonadi muchas gracias! •sarcasmo•
Sugiero que antes de usar su maravilloso sarcasmo, lea la definición de wikipedia para descompilador: Un descompilador es un programa de computadora que toma un archivo ejecutable como entrada e intenta crear un archivo fuente de alto nivel que se puede volver a compilar con éxito. Por lo tanto, es lo opuesto a un compilador, que toma un archivo fuente y lo convierte en un ejecutable. y luego lea el artículo que publicó como referencia. Se utiliza un descompilador en el código.
@IvanoDonadi Creo que hay una barrera del idioma. Me refiero no totalmente a lo que me respondes. Pero acepto tu respuesta, ¡gracias por la ayuda!