Comprar Cripto
Mercados
Spot
Futuros
Earn
Promoción
Más
reward-centerZona para nuevos usuarios
Análisis de informesDetalles
Investigaciones de la industria

BitVM, el Potencial de los Contratos Inteligentes en la Mainnet de Bitcoin

  • BTC0%
CoinEx logo
Publicado el 2023-11-01

El 9 de octubre, Robin Linus, un desarrollador de ZeroSync, publicó el libro blanco de BitVM, que atrajo una enorme atención de la comunidad. BitVM introduce un nuevo paradigma de computación capaz de expresar contratos de Bitcoin Turing-completos sin requerir modificaciones en las reglas de consenso de la red.

Contratos Inteligentes Descentralizados: Limitaciones y Objetivos

El Script de Bitcoin, un lenguaje basado en pila, proporciona estructuras de control fundamentales, como comprobaciones condicionales, para definir la lógica de validación de las transacciones. Exige firmas digitales válidas para gastar bitcoins a través de un simple proceso de validación condicional. Dicho esto, el Script fue diseñado para no ser Turing-completo. Aunque no admite características complejas de control de flujo como bucles, este diseño garantiza la simplicidad y seguridad del lenguaje. Estas limitaciones han dificultado que Script ejecute cálculos complejos, incluidos los que involucran contratos inteligentes.

Si bien algunas soluciones de Capa 2 diseñadas para Bitcoin pueden lograr funciones básicas de contratos inteligentes al bloquear activos, esencialmente dependen de direcciones multifirma y mapeos de activos entre cadenas, lo que requiere un cierto nivel de confianza centralizada. Esto compromete el compromiso de Bitcoin con la descentralización. Antes de la introducción de BitVM, la comunidad de Bitcoin había estado explorando métodos que fueran descentralizados, con confianza minimizada y capaces de realizar cálculos Turing-completos.

BitVM: Calcular Cualquier Cosa en Bitcoin

En el núcleo de su innovación, BitVM utiliza el sistema Script existente de Bitcoin para implementar puertas lógicas (esto incluye puertas AND, OR, NOT y XOR, permitiendo operaciones como AND, OR, NOT y XOR) para construir circuitos booleanos arbitrariamente complejos. Estos circuitos se utilizan para realizar operaciones lógicas en entradas binarias y dar salidas binarias; la computación booleana se puede implementar utilizando puertas lógicas para llevar a cabo operaciones como AND, OR, NOT y XOR. Específicamente, BitVM emplea Contratos Bloqueados por Tiempo Hash (HTLC) y Taproot (un soft fork para optimizar Script activado en noviembre de 2021) para representar puertas lógicas fundamentales, como puertas AND y OR. BitVM luego combina estas puertas lógicas básicas para construir circuitos de cualquier complejidad, esencialmente simulando una computadora programable en la cadena de bloques de Bitcoin.

Finalmente, en caso de disputas entre las partes involucradas en la transacción, se puede emplear un elegante protocolo de desafío-respuesta, similar a las pruebas de fraude en Bitcoin, para la validación. Un verificador hace una afirmación de que una función dada evalúa para algunas entradas particulares a una salida específica. Si esa afirmación es falsa, entonces el verificador puede realizar una prueba de fraude y castigar al verificador. Utilizando este mecanismo, cualquier función computable puede ser verificada en Bitcoin.

Diseño de BitVM

Compromiso de Valor Binario

El Compromiso de Valor Binario, un script de Bitcoin, emplea declaraciones if-else para implementar un esquema de compromiso. Esta primitiva criptográfica asegura que el remitente pueda confirmar el contenido del mensaje antes de enviarlo, y que el contenido no pueda ser alterado una vez que se haya revelado públicamente. Este esquema de compromiso abarca dos valores hash, hash0 y hash1. Si el valor devuelto será 0 o 1 se determina comparando el valor hash de la entrada con estos dos valores hash.

Figura 1: Una implementación concreta para un compromiso de 1 bit

Compromiso de Valor Binario

Fuente: https://bitvm.org/bitvm.pdf

Compromiso de Puerta Lógica

En la teoría de la computación, cualquier función computable puede ser representada como un circuito booleano. En particular, la puerta NAND es una puerta lógica universal que puede ser utilizada para construir todas las demás puertas lógicas complejas. BitVM incorpora dos compromisos de valor binario que representan las dos entradas y un tercer compromiso de valor binario que representa la salida para implementar la puerta NAND.

BitVM expresa ingeniosamente la puerta NAND a través de scripts de Bitcoin. Esto le permite construir circuitos lógicos booleanos arbitrariamente complejos, simulando efectivamente una computadora programable a través de Script.

Figura 2: Implementación de una puerta NAND usando compromisos de valor binario

Implementation of a NAND gate

Fuente: https://biquanlibai.notion.site/BitVM-2b8557e0ea004d0cbc52951782bc9754

Figura 3: Compromiso de puerta lógica para una operación NAND

Logic gate commitment

Fuente: https://bitvm.org/bitvm.pdf

El script calcula el valor NAND de las dos entradas para asegurar que coincida con el bit de salida comprometido.

Compromiso de Circuito Binario

BitVM puede expresar cualquier circuito mediante la composición de compromisos de puertas. Cada paso de la ejecución se compromete en un Tapleaf. Todos se combinan en la misma dirección Taproot, de modo que el probador puede ejecutar cualquier puerta en el circuito. Ejecutar una puerta requiere que el probador abra el compromiso de puerta correspondiente y establezca valores para sus bits de entrada y salida. Por ejemplo, en la Figura 4, A, B, C y D son compromisos de valor de bit predefinidos, cada uno representando un bit. Luego se llevan a cabo operaciones lógicas que involucran las ocho puertas NAND. Por ejemplo, si A NAND B produce E, y E se usa como entrada para la siguiente puerta NAND, la salida final de todo el circuito será VERDADERO. Este diseño de circuitos booleanos conecta las puertas NAND de compromisos de valor de bit y logra operaciones lógicas complejas, ofreciendo una representación compacta para la computación verificable en la cadena de bloques de Bitcoin.

Figura 4: Un circuito con ocho puertas NAND diferentes

Un circuito con ocho puertas NAND diferentes

Fuente: https://bitvm.org/bitvm.pdf

Desafíos y Respuestas

En BitVM, comprometerse con un solo circuito no es suficiente, y se requiere un mecanismo de desafío-respuesta para probar la corrección de los cálculos. Para lograrlo, el probador y el verificador deben pre-firmar una secuencia de transacciones durante la configuración. Las transacciones están vinculadas en el orden de "desafío - respuesta - desafío - respuesta", creando múltiples rondas de interacciones de desafío y respuesta. Si una de las partes deja de participar, entonces, después de un tiempo de espera, la otra parte gana el desafío y puede tomar ambos depósitos. Este mecanismo se requiere solo en caso de fraude. Mientras ambas partes cooperen, pueden liquidar conjuntamente cualquier contrato con una firma 2 de 2.

Veamos cómo funciona este mecanismo en un caso hipotético. Paul (probador) y Vicky (verificadora) pre-firmaron una secuencia de transacciones. Vicky puede entonces iniciar un desafío (TX 2) seleccionando un reto (hash7) de uno de los hashlocks en sus hojas Tapscript. Esto desbloquea para Paul un Tapscript específico y lo obliga a ejecutarlo, con entradas y salidas abiertas. Cualquier afirmación inconsistente puede ser refutada rápidamente repitiendo este procedimiento durante algunas rondas de consultas. Si el probador deja de colaborar, el verificador puede desbloquear una preimagen de hash que posee para forzar al probador a responder en la cadena. Cada ronda de consultas puede validar o refutar una puerta específica. Mediante búsqueda binaria (un algoritmo utilizado para localizar un elemento específico en un array ordenado), el verificador puede identificar rápidamente el error del probador después de solo unas pocas rondas de desafío y respuesta. Una vez que los dos compromisos del probador entran en conflicto, el verificador gana inmediatamente el desafío y se lleva el depósito.

Figura 5: Una secuencia de transacciones pre-firmadas para realizar múltiples rondas de desafío y respuesta

Una secuencia de transacciones pre-firmadas

Fuente: https://bitvm.org/bitvm.pdf

Este meticuloso diseño permite a BitVM realizar verificaciones en cadena de cualquier cómputo complejo, lo que asegura la eficiencia de la colaboración e impone penalizaciones en caso de fraude. Demuestra la posibilidad de verificar cómputos interactivos Turing-completos en la red Bitcoin.

Aspectos Clave del Diseño de BitVM

Cómputo Fuera de la Cadena y Verificación en la Cadena

BitVM coloca la carga de los cálculos complejos fuera de la cadena de bloques, reservando la cadena de bloques de Bitcoin únicamente para la verificación de resultados. Este enfoque evita ejecutar contratos complejos directamente en la cadena de bloques, lo que mitiga la inflación de la misma.

Puertas lógicas expresadas con cerraduras hash y scripts de Bitcoin

BitVM aprovecha las cerraduras hash y los códigos de operación de script compatibles con Bitcoin para representar puertas lógicas básicas, como las puertas AND y NOT. La conexión de estas puertas lógicas permite construir circuitos de complejidad arbitraria, permitiendo una computación Turing-completa.

Un mecanismo de teoría de juegos para el probador y el verificador

El mecanismo de validación de BitVM, que se asemeja a Optimistic Rollup, implica desafíos interactivos y respuestas entre las partes de la computación. Finalmente, el resultado correcto de la computación se confirma en la cadena. Si el probador hiciera trampa, el verificador podría ejecutar penalizaciones en la cadena de bloques de Bitcoin. Como tal, BitVM y Optimistic Rollup emplean mecanismos de interacción similares para la verificación en cadena, y la única diferencia es que BitVM utiliza directamente scripts de Bitcoin para implementar un proceso interactivo de desafío-respuesta.

Impacto mínimo en la cadena

El proceso de cálculo de BitVM tiene un impacto mínimo en la cadena de bloques de Bitcoin, dejando solo un pequeño número de transacciones en la cadena cuando surgen disputas. Esto preserva la eficiencia y la escalabilidad de Bitcoin.

No se necesitan bifurcaciones blandas

Como BitVM solo utiliza las capacidades existentes de los scripts de Bitcoin, no requiere ninguna modificación al protocolo de Bitcoin a través de bifurcaciones blandas. Esto facilita la integración de BitVM en la red principal de Bitcoin.

Conclusión

La mayor innovación de BitVM radica en su capacidad para implementar una verificación Turing-completa sin modificar el protocolo central de Bitcoin; logra esto haciendo un uso creativo de los scripts, especialmente los optimizados por Taproot. Este ingenioso diseño permite una integración perfecta con la red principal de Bitcoin sin introducir nuevos problemas de compatibilidad ni hacer que Bitcoin sea menos descentralizado.

La innovadora solución de BitVM tiene el potencial de introducir contratos inteligentes y aplicaciones descentralizadas en el ecosistema de Bitcoin. Por ejemplo, puede utilizarse para construir puentes entre cadenas de confianza mínima para conectar diferentes activos de blockchain, mejorando la interoperabilidad de Bitcoin. Además, BitVM también puede ayudar a construir capas de expansión zkRollup más eficientes para hacer que Bitcoin sea más escalable. En resumen, BitVM muestra las vastas posibilidades de impulsar el ecosistema de Bitcoin hacia una nueva era únicamente a través de la utilización innovadora de las características existentes.

Referencias:

https://bitvm.org/bitvm.pdf

https://github.com/supertestnet/tapleaf-circuits

https://biquanlibai.notion.site/BitVM-2b8557e0ea004d0cbc52951782bc9754