El 9 de octubre, Robin Linus, un desarrollador de ZeroSync, publicó el libro blanco de BitVM, que atrajo una gran atención de la comunidad. BitVM introduce un nuevo paradigma informático capaz de expresar contratos Bitcoin Turing completos sin necesidad de modificar 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 transacciones. Exige firmas digitales válidas para gastar bitcoins a través de un proceso de validación condicional. Dicho esto, el Script fue diseñado para no ser Turing completo. Aunque no admite características de control de flujo complejas como bucles, este diseño garantiza la simplicidad y seguridad del lenguaje. Estas limitaciones han dificultado que el Script ejecute cálculos complejos, incluidos los contratos inteligentes.
Aunque algunas soluciones de Capa 2 diseñadas para Bitcoin pueden lograr funciones básicas de contratos inteligentes bloqueando activos, dependen esencialmente de direcciones de múltiples firmas y asignaciones 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 un mínimo de confianza y capaces de realizar cálculos Turing completos.
BitVM: Calculando cualquier cosa en Bitcoin
En el núcleo de su innovación, BitVM utiliza el sistema Script existente de Bitcoin para implementar compuertas lógicas (que incluyen compuertas AND, OR, NOT y XOR, lo que permite 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 compuertas lógicas para llevar a cabo operaciones como AND, OR, NOT y XOR. Específicamente, BitVM emplea Contratos de Bloqueo Temporal Hash (HTLC) y Taproot (una bifurcación suave para optimizar el Script activada en noviembre de 2021) para representar compuertas lógicas fundamentales, como las compuertas AND y OR. Luego, BitVM combina estas compuertas lógicas básicas para construir circuitos de cualquier complejidad, simulando en esencia una computadora programable en la cadena de bloques de Bitcoin.
Finalmente, en caso de disputas entre las partes que realizan transacciones, se puede utilizar un elegante protocolo de desafío y respuesta, similar a las pruebas de fraude en Bitcoin, para la validación. Un demostrador hace una afirmación de que una función dada se evalúa para algunas entradas específicas con una salida específica. Si esa afirmación es falsa, entonces el verificador puede realizar una prueba de fraude y castigar al demostrador. Utilizando este mecanismo, cualquier función computable se puede verificar en Bitcoin.
Diseño de BitVM
Compromiso del valor de Bit
El compromiso del valor de Bit, un script de Bitcoin, utiliza declaraciones de si-entonces para implementar un esquema de compromiso. Esta primitiva criptográfica garantiza que el remitente pueda confirmar el contenido del mensaje antes de enviarlo y que el contenido no se pueda alterar una vez que se haya hecho público. 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
Fuente: https://bitvm.org/bitvm.pdf
Compromiso de compuerta lógica
En la teoría de la computación, cualquier función computable se puede representar como un circuito booleano. En particular, la compuerta NAND es una compuerta lógica universal que se puede utilizar para construir todas las demás compuertas lógicas complejas. BitVM incorpora dos compromisos de valor de bit que representan las dos entradas y un tercer compromiso de valor de bit que representa la salida para implementar la compuerta NAND.
BitVM ingeniosamente expresa la compuerta NAND a través de scripts de Bitcoin. Esto le permite construir circuitos de lógica booleana arbitrariamente complejos, simulando eficazmente una computadora programable a través de Script.
Figura 2: Implementación de una compuerta NAND utilizando compromisos de valor de bit
Fuente: https://biquanlibai.notion.site/BitVM-2b8557e0ea004d0cbc52951782bc9754
Figura 3: Compromiso de compuerta lógica para una operación NAND
Fuente: https://bitvm.org/bitvm.pdf
Compromiso de compuerta lógica para una operación NAND
El script calcula el valor NAND de las dos entradas para asegurarse de que coincida con el bit de salida comprometido.
Compromiso de circuito binario
BitVM puede expresar cualquier circuito mediante la composición de compromisos de compuertas. Cada paso de la ejecución se compromete en un Tapleaf. Todos se combinan en la misma dirección Taproot, de modo que el demostrador pueda ejecutar cualquier compuerta en el circuito. La ejecución de una compuerta requiere que el demostrador abra el compromiso de compuerta correspondiente y establezca valores para sus entradas y salidas. 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 realizan operaciones lógicas que involucran las ocho compuertas NAND. Por ejemplo, si A NAND B produce E y E se utiliza como entrada para la siguiente compuerta NAND, la salida final de todo el circuito será VERDADERA. Este diseño de circuitos booleanos conecta las compuertas NAND de los 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 compuertas 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 y respuesta para demostrar la corrección de los cálculos. Para lograrlo, el demostrador y el verificador deben prefirmar 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 período de tiempo, la otra parte gana el desafío y puede tomar ambos depósitos. Este mecanismo solo es necesario en caso de fraude. Si ambas partes son cooperativas, pueden liquidar conjuntamente cualquier contrato con una firma 2-de-2.
Veamos cómo funciona este mecanismo en un caso hipotético. Paul (demostrador) y Vicky (verificadora) prefirmaron una secuencia de transacciones. Vicky puede entonces iniciar un desafío (TX 2) seleccionando un desafío (hash7) de uno de los bloqueos de hash en sus hojas de Tapscript. Esto desbloquea un Tapscript específico para Paul y lo obliga a ejecutarlo, con entradas y salidas abiertas. Cualquier reclamación inconsistente puede ser refutada rápidamente repitiendo este procedimiento durante algunas rondas de consultas. Si el demostrador deja de colaborar, el verificador puede desbloquear una imagen de hash que posee para obligar al demostrador a responder en la cadena de bloques. Cada ronda de consultas puede validar o refutar una compuerta específica. A través de la búsqueda binaria (un algoritmo utilizado para localizar un elemento específico en un arreglo ordenado), el verificador puede identificar rápidamente el error del demostrador después de solo algunas rondas de desafío y respuesta. Una vez que los dos compromisos del demostrador entran en conflicto, el verificador gana de inmediato el desafío y toma el depósito.
Figura 5: Una secuencia de transacciones prefirmadas para realizar múltiples rondas de desafío y respuesta.
Fuente: https://bitvm.org/bitvm.pdf
Esta cuidadosa diseño permite a BitVM llevar a cabo la verificación en cadena de cualquier cálculo complejo, lo que asegura la eficiencia de la colaboración y establece sanciones en caso de fraude. Demuestra la posibilidad de verificar la computación interactiva Turing completa en la red de Bitcoin.
Aspectos clave del diseño de BitVM
Cómputo fuera de cadena y verificación en cadena
BitVM coloca la carga de cálculos complejos fuera de la cadena de bloques, reservando la cadena de bloques de Bitcoin únicamente para verificar resultados. Este enfoque evita la ejecución de contratos complejos directamente en la cadena de bloques, lo que mitiga la expansión de la cadena de bloques.
Compuertas lógicas expresadas con bloqueos de hash y scripts de Bitcoin
BitVM aprovecha bloqueos de hash y opcodes de script admitidos por Bitcoin para representar compuertas lógicas básicas, como compuertas AND y NOT. La conexión de estas compuertas lógicas le permite construir circuitos de complejidad arbitraria, lo que habilita la computación Turing completa.
Un mecanismo de teoría de juegos para el demostrador y el verificador
El mecanismo de validación de BitVM, que se asemeja a Optimistic Rollup, implica desafíos y respuestas interactivas entre las partes de la computación. En última instancia, el resultado correcto de la computación se confirma en la cadena de bloques. Si el demostrador hace trampa, el verificador puede ejecutar penalizaciones en la cadena de bloques de Bitcoin. Por lo tanto, BitVM y Optimistic Rollup utilizan 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 de desafío y respuesta interactivo.
Impacto mínimo en cadena
El proceso de cómputo 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 escalabilidad de Bitcoin.
No requiere Soft Forks
Dado que BitVM utiliza únicamente las capacidades existentes de scripts de Bitcoin, no requiere ninguna modificación en el protocolo de Bitcoin a través de bifurcaciones suaves. 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 la verificación Turing completa sin modificar el protocolo central de Bitcoin; lo logra mediante el uso creativo de scripts, especialmente los optimizados por Taproot. Este diseño ingenioso permite una integración fluida con la red principal de Bitcoin sin introducir nuevos problemas de compatibilidad ni disminuir la descentralización de Bitcoin.
La solución innovadora de BitVM tiene el potencial de introducir contratos inteligentes y aplicaciones descentralizadas en el ecosistema de Bitcoin. Por ejemplo, se puede utilizar para construir puentes de confianza mínima entre cadenas 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 llevar al ecosistema de Bitcoin a una nueva era solo a través del uso innovador de características existentes.
Referencias
- https://bitvm.org/bitvm.pdf
- https://github.com/supertestnet/tapleaf-circuits
- https://biquanlibai.notion.site/BitVM-2b8557e0ea004d0cbc52951782bc9754
Acerca de CoinEx
Haciendo más fácil el trading de criptomonedas.
Fundada en 2017, CoinEx es una plataforma global de intercambio de criptomonedas comprometida a simplificar el trading. La plataforma ofrece una variedad de servicios, incluyendo trading spot y de margen, futuros, swaps, creador de mercado automatizado (AMM) y servicios de gestión financiera para más de 5 millones de usuarios en más de 200 países y regiones. Fundada con la intención inicial de crear un entorno de criptomonedas igualitario y respetuoso, CoinEx se dedica a derribar las barreras de las finanzas tradicionales, ofreciendo productos y servicios fáciles de usar para que el trading de criptomonedas sea accesible para todos.
Llega a CoinEx a través de:
Sitio web | Registro | Discord | Facebook | Instagram | Publish0x | Telegram | Telegram Noticias | Twitter | YouTube
API | Descarga la APP
El Grupo ViaBTC es
CoinEx Charity: Fondo de caridad basado en la blockchain.
CoinEx Exchange: Intercambio de criptomonedas y sus derivados.
CoinEx Smart Chain: Sistema descentralizado de cadena pública.
OneSwap: Intercambio descentralizado.
ViaBTC Capital: Plataforma de inversión que integra capital.
ViaBTC Pool: Pool de minería de múltiples criptomonedas.
ViaWallet: Billetera móvil de múltiples criptomonedas.
ViaBTC: haciendo del mundo un lugar mejor.