BitVM, una propuesta para smart contracts Turing Completo para Bitcoin

La nueva propuesta de BitVM busca equiparar las capacidades de smart contracts de Bitcoin con las que podemos ver en redes como Ethereum y derivadas Turing Completo.

La nueva propuesta de BitVM busca equiparar las capacidades de smart contracts de Bitcoin con las que podemos ver en redes como Ethereum y derivadas Turing Completo.

En un reciente post en la red social X, Robin Linus, un conocido desarrollador de Bitcoin y del protocolo ZeroSync, ha publicado un interesante paper en el que da a conocer una nueva propuesta: BitVM.

Con este desarrollo, Linus busca llevar la funcionalidad de contrato inteligente similar a Ethereum al ecosistema de Bitcoin, permitiendo que la red Bitcoin sea capaz de operar smart contracts avanzados del tipo Turing Completo. Este desarrollo tiene el potencial de remodelar el panorama de las finanzas descentralizadas (DeFi) y abrir nuevas oportunidades de innovación en la cadena de bloques de Bitcoin.

Cerrando la brecha entre Bitcoin y Ethereum

Bitcoin es la criptomoneda más antigua y establecida del mundo, pero su lenguaje de programación, Bitcoin Script, es relativamente limitado y carece de soporte para contratos inteligentes complejos. Ethereum, por otro lado, es una plataforma blockchain más nueva que fue diseñada específicamente para admitir contratos inteligentes. Sin embargo, Ethereum ha sido criticado por sus altas tarifas de transacción y problemas de escalabilidad.

BitVM busca cerrar la brecha entre Bitcoin y Ethereum al proporcionar un método para generar una máquina virtual que permite a los desarrolladores escribir e implementar contratos inteligentes, usando para ello lógica NAND (puestas lógicas sobre Bitcoin) y Tapscript, el lenguaje de script habilitado por Taproot. BitVM permitiría así, ejecutar contratos sobre la cadena de bloques de Bitcoin. Todo ello, sin modificar el protocolo, utilizando Taproot y las capacidades de seguridad de las UTXO de Bitcoin, para llevar estos smarts contracts a la red Bitcoin. E incluso, a las sidechains de esta red, como lo son Lightning Network o Ark, lo que significa que todo el ecosistema podría beneficiarse de este proyecto.

Aspectos técnicos de BitVM

Si bien BitVM es solo una propuesta en temprano desarrollo, no cabe duda que la misma tiene el potencial de ser una plataforma para contratos inteligentes en Bitcoin. Al hacer uso de Taproot, UTXO y las capacidades de scripting nativas de Bitcoin, BitVM no necesitaría de un soft-fork o hard-fork para empezar su construcción, al menos en sus partes más básicas. Hablamos de alcanzar las capacidades de smart contracts de Ethereum y superar la seguridad de esta blockchain (y derivadas) gracias al uso de UTXO y las capacidades nativas de Bitcoin.

Sin embargo, para alcanzar ciertas funciones de forma óptima, quizás si sea necesario un soft-fork o hard-fork completo para incluir nuevos códigos de operación que ayuden a optimizar el funcionamiento de BitVM, de cara a ser Turing Completo. Por ejemplo, construir un smart contract con BitVM requerirá de hacer un Taptree (un árbol de decisión utilizando Taproot). Así, podemos tener desde un centenar de opciones condicionales (cada una activando una salida dada del smart contract generado) a cientos de miles millones. Todo ello dependiendo de la complejidad del smart contract (Bitcoin, es capaz de aceptar Taptrees con 2^127 leaves u hojas).  Esto de hecho, es algo que el mismo Linus ha aceptado:

Y esto es un problema, porque haría que los contratos ocupen enormes cantidades de datos en la cadena, pudiendo ocupar perfectamente los 4 MB máximos de un bloque en Bitcoin. No solo eso, también los haría lentos y con una enorme sobrecarga computacional, tanto en el momento de generación (se deben establecer preimágenes SHA256 para cada leaf) como para el momento de ejecución/confirmación del mismo.

Enormes desafíos técnicos

Pero el desafío técnico no termina aquí. BitVM depende de un sistema de pruebas de fraudes (fraud proof), en la que los participantes del smart contract deben comprobar computacionalmente el cumplimiento de las condiciones inscritas en el smart contract, por medio de commits. Para ello, por ejemplo, se pueden usar pruebas zk-SNARKS permitiendo hacer estas pruebas computacionalmente sencillas y muy seguras. Estas se unirían en un sistema pruebas Taproot que verificaría la autenticidad de las pruebas dadas y daría su respuesta final de acuerdo a estas.

Sin embargo, Bitcoin en este momento no tiene ninguna primitiva en Bitcoin Script que permita aplicar zk-SNARKs directamente. Solo quedan dos opciones: incluir el código de operación (un hard fork para incluir esta capacidad en Bitcoin) o crear el código dentro del propio Taptree utilizando Tapscript. De hecho, operaciones más sencillas como la multiplicación, la división de números en Bitcoin o la generación de ciclos condicionales, deben ser solucionadas para que BitVM pueda ser práctico y sobre todo, eficiente a la hora de funcionar.

Así, el mayor desafío potencial de solucionar todos estos problemas, más lo que se puedan ver a futuro, incluyendo la posible bifurcación del protocolo Bitcoin para optimizar Bitcoin para este desarrollo. Sin embargo, los beneficios de BitVM son significativos y es probable que la comunidad Bitcoin apoye su implementación. Solo queda ver cuál será la respuesta de la comunidad y los desarrolladores, para que empecemos a ver avances en esta interesante propuesta.

Continúa leyendo: Polygon Miden, una solución que enfatiza la privacidad y la escalabilidad para Web3