-
Varios de los grandes cambios que experimentará Bitcoin dependen de bifurcaciones de su protocolo.
-
Una máquina virtual, emisión de tokens y facilidades de ejecución de nodos llegarían en 2024.
El desarrollo técnico de Bitcoin tuvo un año emocionante, lleno de proyectos, debates y mejoras que sin duda posicionan a esta tecnología en la cima de los proyectos más seguros, auditados y estudiados en la actualidad. Una de las principales características de Bitcoin es que su desarrollo es de código abierto. Eso significa que los principios de programación de su software están sujetos a revisiones públicas, donde una comunidad de ingenieros, programadores y matemáticos constantemente proponen y reflexionan sobre los cambios que posteriormente se integran en el programa. Analizaremos algunas de las principales propuestas para mejorar Bitcoin, presentadas en 2023, que podrían cambiar la forma en que usamos el principal método de pago con moneda electrónica de mundo.
Durante 2023, se lanzaron dos actualizaciones mayores de Bitcoin Core, el principal cliente o software del protocolo. La primera de estas llegó en mayo con la versión de Bitcoin Core 25.0.0., donde destacó la disminución del tamaño mínimo de las transacciones a 65 bytes. Es decir, desde entonces Bitcoin permite transacciones más pequeñas, lo que refuerza al sistema contra potenciales vulnerabilidades y abre un campo de posibilidades. Sin embargo, esto abrió un camino para nuevos tokens BRC-20, que comúnmente utilizan transacciones pequeñas y en la actualidad colman la mempool (o memoria temporal para transacciones en espera) de la red.
También se introdujeron meras en la política de retransmisión. Destaca un RPC (Remote Procedure Call o llamada de procedimiento remoto) que permite establecer un valor máximo para las salidas no gastadas (UTXO). Aquellas transacciones que contengan salidas con un valor mayor al especificado no serán enviadas. Este cambio brinda mayor control sobre las transacciones y evita el envío de transacciones no deseadas. Además, se realizaron mejoras en otras RPC, como testmempoolaccept y decodescript, que brindan mayor información sobre comisiones y el tamaño de las transacciones.
En cuanto a la siguiente iteración de este cliente, la versión Bitcoin Core 26.0.0, lanzada en diciembre, destaca la integración del soporte experimental para la segunda generación del protocolo P2P de Bitcoin. Esta mejora se introdujo con la BIP-324 y utiliza un método de codificación denominado ElligatorSwift, desarrollado por Pieter Wuille, Marko Falke y Jonas Schnelli. Esta actualización protegerá a los nodos de ataques y censura a través de la encriptación “oportunista” de los mensajes. También reduce el ancho de banda que requieren las conexiones de la red.
El protocolo de transporte V2 no se encuentra activo de forma predeterminada por el momento, pero es compatible con otros pares que admitan y activen la función. La versión 1 del protocolo de transporte o P2P de Bitcoin sigue siendo compatible.
Bitcoin Inquisition
A comienzos de año, Anthony Towns, un desarrollador de Bitcoin Core, anunció Bitcoin Inquisition, una bifurcación del software de Bitcoin Core diseñada para probar las bifurcaciones suaves y otros cambios de protocolo importantes en la red de pruebas signet. A finales de año, contenía soporte para varias propuestas de covenants (o convenios para establecer condiciones en las transacciones y su cumplimiento) como SIGHASH_ANYPREVOUT, OP_CHECKTEMPLATEVERIFY y anclajes efímeros básicos (una propuesta que permite que una transacción sea transmitida incluso si no paga ninguna comisión, siempre que una segunda transacción pague suficiente por todo el conjunto). Estas mejoras son impulsadas en la actualidad por un grupo de trabajo que tiene el objetivo de cambiar la metodología para obtener consenso entre los desarrolladores, como reportó CriptoNoticias.
Si se consigue el consenso necesario, Bitcoin Inquisition podría ser la puerta de entrada para incluir en el código de Bitcoin otras solicitudes de integración (pull request) abiertas que darían soporte a OP_CAT y OP_VAULT, dos tipos de covenants, y la restricción contra transacciones de 64 bytes (transacciones que estarían por debajo del límite mínimo).
Simplificar la computación de Bitcoin con OP_CAT
Los covenants son propuestas que tienen el potencial de hacer que Bitcoin sea más flexible y tienen el potencial de hacer que su tecnología se masifique de manera práctica. Haremos una mención especial para uno de estos scripts (de más de una decena de propuestas). OP_CAT, un script cuya antigua versión fue eliminada como parte de la respuesta ante un incidente de desbordamiento de valor, que permitió la creación de más 184 mil millones de bitcoin, es un nuevo código de operaciones que permite concatenar dos valores en la pila. De esta manera es posible crear un mensaje (como una transacción serializada) agregando partes individuales del mensaje (por ejemplo, los campos de una transacción). Inicializar la pila con el mensaje ya dividido en partes simplifica la escritura de scripts que realizan pruebas en esas partes.
Por ejemplo, OP_CAT haría que sea más práctico construir protocolos como Bitstream, que permite el intercambio atómico de bitcoin por claves de cifrado. Es decir, un se trata de un protocolo para crear mercados donde se puedan vender, comprar y descargar datos sin intermediarios a través de Bitcoin. Esto se logra al eliminar la necesidad de hacer «computación verificable» (que demanda una gran cantidad de recursos). Otro protocolo que podría ser más práctico de construir con OP_CAT es BitVM, una máquina virtual que permitiría sustentar contratos inteligentes vinculados a Bitcoin y sobre lo que hablaremos en el siguiente apartado.
Otra herramienta que sería más fácil de implementar con OP_CAT es la «firma de árbol» (tree signature), que habilita la posibilidad de hacer scripts de firmas múltiples. Por ejemplo, una transacción de menos de 1 KB de tamaño podría admitir firmas de árbol con mil claves públicas.
OP_CAT es suficiente para crear bóvedas (vault o OP_VAULT), un tipo de covenant especializado propuesto en 2016, y que requeriría una bifurcación suave para su integración. Las bóvedas permiten a un usuario bloquear a un atacante que ha comprometido la clave secreta del usuario, para que no robe los fondos en esa salida. Estos son solo algunos de los posibles escenarios donde OP_CAT tendría relevancia al simplificar la escritura y ejecución de códigos.
BitVM, una máquina virtual para Bitcoin
El protocolo BitVM se puede definir como un sistema Turing completo. Es decir, es una máquina virtual universal capaz de emular matemáticamente cualquier programa o sistema computarizado. En principio, BitVM es un puente entre Bitcoin y cualquier programa externo que requiera ejecutarse en la cadena principal, como reportó CriptoNoticias. «Cualquier función computable se puede verificar en Bitcoin», explica su creador en el white paper del proyecto. En otras palabras, este protocolo verifica la validez de las solicitudes de programas computacionales que quieren ser compatibles con Bitcoin.
Robin Linus, un investigador enfocado en el desarrollo de Bitcoin y creador Bitstream y ZeroSync (sobre lo que hablaremos más adelante) se inspiró en las propiedades de los rollups de Ethereum para desarrollar BitVM. Sin embargo, la clave de BitVM está en su diseño. No requiere modificaciones de código o protocolo en la cadena principal para darle más expresividad a Bitcoin.
BitVM permitiría en principio ejecutar covenants [convenios], contratos inteligentes, proporcionaría un medio para crear quorums para cadenas laterales, tendría propiedades similares a Liquid o la EVM (Ethereum Virtual Machine), con lo que sería posible vincular rollups y crear nuevos mercados de altcoins. También permitiría crear sistemas para el control de congestión o agregadores CoinJoin, un protocolo que es capaz de «mezclar» los bitcoins, aumentar la privacidad de las traansacciones y evitar que sean rastreables.
El gran obstáculo de BitVM en la actualidad es probablemente el gasto computacional que exige a los programas que quieran ser compatible con Bitcoin. Aunque BitVM parece la puerta de entrada para una gran cantidad de plataformas y mercados DeFi, se estima que los costos económicos podrían ser demasiado elevados (la programación actual de Bitcoin dificulta la ejecución del código de BitVM). Excepto para herramientas más simples, como los oráculos (DLC). Sin embargo, algunos desarrolladores consideran que una bifurcación suave, por ejemplo OP_CAT, disminuirían esa exigencia computacional. Sería algo así como cambiar la cerradura en términos de programación. Este aspecto será crucial, pues depende del consenso de los desarrolladores ejecutar o no una bifurcación de este estilo.
ZeroSync, la prueba de conocimiento cero en Bitcoin
ZeroSync es un proyecto para llevar pruebas de conocimiento cero o zero knowledge (zk) proof al entorno de Bitcoin, que se encuentra en su fase inicial de desarrollo y ofrece un kit de herrramienta para programadores, como informó Criptonoticias. Zk proof es un procedimiento criptográfico que permitiría validar en un dispositivo la cadena de bloques de Bitcoin sin necesidad de descargarla por completo y sin confiar en un tercero. Este tipo de pruebas hace posible verificar la validez de una información sin revelar la información en sí misma y la utilizan, por ejemplo, los rollups de Ethereum.
Para los nodos completos, ZeroSync representará un método para sincronizar toda la información de manera inmediata, ya que requiere pocos recursos computacionales. También podrá ser especialmente útil para que dispositivos pequeños como teléfonos celulares o aplicaciones de wallet puedan verificar transacciones sin recurrir a otros nodos de la red (las herramientas que normalmente hacen este procedimiento se conocen como clientes ligeros y han existido desde los albores de Bitcoin, sin embargo no ofrecen tantas ventajas como la prueba de conocimiento cero).
Otro ejemplo de uso se relaciona con la verificación de transacciones que utilicen batching, un método que combina múltiples transacciones en una sola. Si esta técnica se utiliza con frecuencia, los nodos deben realizar múltiples verificaciones de cada transacción involucrada en el batching, lo que requiere una gran cantidad de cómputo (exige verificar buena parte del historial de Bitcoin en repetidas ocasiones), por lo que un celular no tiene la capacidad para hacerlo. La prueba utiliza una versión de utreexo, conocido como un acumulador dinámico de transacciones que sirve para verificar las UTXO, con una función hash optimizada para Bitcoin.
En su etapa inicial, ZeroSync ya concede a cualquier persona con un dispositivo local la posibilidad de conocer y validar el estado más reciente de la cadena de bloques a través de un navegador o un iPhone. La herramienta proporciona información sobre los cabezales de los bloques, que tienen un hash de identificación, información sobre la validez de las transacciones contenidas, la prueba de trabajo y el nivel de dificultad de la red.
Mejoras para Miniscript
Miniscript es un lenguaje de programación presentado por Pieter Wuielle en 2019 que facilita la escritura de scripts o instrucciones para implementar condiciones de gasto, que admitan combinaciones de firmas, bloqueo de hash y bloqueos temporales. Específicamente, Miniscript analiza automáticamente una instrucción. Además, debido a que Miniscript le dice a la wallet lo que debe hacer, los desarrolladores no tinen que escribir código nuevo cuando necesitan cambiar de un script a otro. Esto hace que las wallets sean más dinámicas porque se pueden componer o reemplazar las políticas de gasto de esas wallets con un lenguaje fácil de escribir.
En febrero, Bitcoin Core agregó soporte de firma para miniscripts basados en instrucciones de gasto de salida con P2WSH (transacciones SegWit empaquetadas o no nativas de SegWit, aquellas que comienzan con un 3). En octubre se actualizó la compatibilidad con Miniscript para admitir transacciones Taproot (P2TR), integrada en Bitcoin Core 26.0. El soporte permite firmar y ver este tipo de transacciones y requierió un cambio de código para transferir miniscripts a tapscrips, el lenguaje de programación de Taproot compatible con firmas Schnorr.
Versión 2 del protocolo P2P de Bitcoin
La actualización del protocolo P2P de Bitcoin, mediane el cual se ejecuta el consenso de la red, se ha estado discutiendo y mejorando desde 2019. Su versión más completa, lista para la integración, apareció en julio. En diciembre obtuvo soporte en Bitcoin Core 26.0, aunque de manera experimental (no predeterminada). Esta actualización no requiere una bifurcación del protocolo.
El protocolo de transporte P2P de Bitcoin V2 (BIP-324), como también se le conoce, propone el uso de «cifrado oportunista no autenticado» de las conexiones de los nodos de Bitcoin. Su objetivo es dificultar el rastreo de conexiones (incluso si se trata de un espía pasivo) y la potencial censura de gobiernos u otras entidades con suficiente poder para controlar los servidores de Internet de las conexiones P2P que pertenecen a usuarios de Bitcoin. También aumenta el costo de las operaciones de potenciales atacantes que intenten manipular esas conexiones (quienes además deben exponer su estado con cada intento), por ejemplo a través de un ataque de intermediario (o ataque de eclipse) a los mineros de Bitcoin.
El protocolo utiliza un método de cifrado denominado ElligatorSwift, que permite una codificación aleatoria uniforme para cada clave pública o clave privada (en un formato especial de 64 bytes) y se utiliza en la fase de intercambio de datos en el la versión 2 del protocolo P2P de Bitcoin. Con esto se crea un flujo de bytes pseudoaleatorio, incluso antes de que se establezca la clave de cifrado compartida.
RGB 0.10, contratos inteligentes y tokens para Bitcoin
RGB es un porotocolo capaz de crear, intercambiar y administrar tokens a través de contratos inteligentes, definidos y validados fuera de la cadena de bloques de Bitcoin, por ejemplo a través la red Lightning.
Entre las propiedades de RGB (que sigifica «realmente bueno para Bitcoin») destaca que los cambios en el estado del contrato inteligente que administra el token (por ejemplo, las transferencias) están asociados con las transacciones en cadena de bloques de una manera singular. No utiliza espacio de bloque adicional, en comparación con una transacción típica, y puede mantener toda la información de cada contrato (incluida su existencia) completamente privada. Esto se debe a que su paradigma de validación se encuentra completamente del lado del cliente (es decir, el software que ejecuta el protocolo).
RGB es un protocolo de conocimiento cero que utiliza computación distribuida y tiene el potencial de crear mercados de tokens con una mínima incidencia en la actividad de Bitcoin. Desde septiembre, RGB versión 0.10 está disponible para su desarrollo en distintas aplicaciones, debido a que los diseñadores de wallets pueden utilizar BDK (Bitcoin Development Kit), un kit de herramientas y una librería de código, que facilita la integración de RGB en aplicaciones. El protocolo está disponible en tres wallets: MyCitadel (escritorio), Iris (Android) y BitMask (web).
Taproot Asset, una Ethereum Killer
Taproot Assets v0.3, un protocolo que se basa parcialmente en RGB, ya está disponible en su versión alpha (activa en cadena de manera experimental) para ser integrado en apliacciones y wallets. Taproot Assets permite la emisión, transferencia y administración de activos en Bitcoin, utilizando Taproot.
Como indica el equipo de Lightning Labs, encargado de su desarrollo, esta versión del protocolo «admite la funcionalidad en cadena, y próximamente será compatible con Lightning». En principio, Taproot Asset se ha presentado como un medio para emitir stablecoins. Sin embargo, no existen reestricciones para emitir otros tipos de activos.
Los dearrolladores cuentan con distintas librerías y repositorios para implementar el protocolo. Entre estos se encuentran el repositorio Universe, con el cual las wallets pueden iniciar y descargar el estado de Taproot Asset; Polar, una herramienta para la creación de prototipos de aplicaciones; y litd v0.12, el paquete de herramientas de Lightning Labs que incluye el cliente LND (Lightning Network Daemon) para operar nodos.
A propósito, otra mejora relacionada con Taproot Asset tiene que ver con el desarrollo de los «canales Taproot simples», integrados en la versión LND 0.17. Los canales Taproot simples ofrecen el beneficio de reducir el peso de las transacciones y mejorar la privacidad cuando los canales se cierran de forma cooperativa. Básicamente, permite que las transacciones de compromiso y financiación de la red Lightning utilicen P2TR con soporte para firmas múltiples sin script, de un modo similar a MuSig2, cuando ambas partes cooperan.
A finales de octubre, Olaoluwa Osuntokun, CTO de Lightning Labs, presentó siete propuestas para ser incluidas como BIP (o propuestas para mejorar Bitcoin) relacionadas con Taproot Asset, como informó CriptoNoticias.
Pagos silenciosos en Bitcoin
En junio, los desarrolladores Josie Baker y Ruben Somsen publicaron un borrador de BIP para pagos silenciosos en Bitcoin, un tipo de código de pago reutilizable que produce una dirección en cadena única cada vez que se usa, evitando la vinculación de salida. Este método de pago, propuesto originalmente en 2022, posee ventajas y desventajas que han sido resumidas en un artículo de CriptoNoticias. También, podemos describirlo de la siguiente manera.
Los pagos silenciosos se pudieran comparar con enviar mensajes por medio de señales de humo, como hacían algunas tribus aborígenes en el pasado. En una realidad donde los pagos silenciosos son señales de humos, el equivalente a los pagos tradicionales serían las cartas.
Las cartas, así como las transacciones en Bitcoin, se envían directamente de una dirección a otra; mientras que, con las señales de humo, como sucede con los pagos silenciosos, el mensaje se publica a la vista de todos, pero solo podía ser descifrado por el pueblo o el receptor al que va dirigido.
El protocolo de pagos silenciosos en Bitcoin busca evadir la interacción directa entre la dirección que envía una transacción y la que la recibe; por esta razón la transacción no viaja directamente desde el remitente hasta el receptor, sino que debe ser detectada y decodificada por quien habrá de recibirla.
Como señalan sus desarrolladores, los pagos silenciosos pueden contribuir con la privacidad de sus usuarios. Sin embargo, requiere que las wallets escaneen toda la cadena de bloques para detectar el pago. De aquí se desprede uno de los objetivos del proyecto: mantener los costos y el tamaño de las transacciones que se realacionan con el escaneo, mezclar las transacciones con otras de manera que no se puedan distinguir, evitar la interacción entre el remitente y el receptor, no vincular múltiples pagos al mismo remitente, evitar la reutilización de pagos, ser compatible con otros protocolos como Coinjoin, entre otros.
Varios desarrolladores de Bitcoin se han involucrado en los debates y en general existe optimismo sobre la implementación de esta técnica. Además, ya se están ejecutando pagos silenciosos en la ed de pruebas signet.
Nodos de Bitcoin al alcance con AssumeUTXO
AssumeUTXO es una técnica que este año alcanzó un grado de desarrollo largo tiempo esperado, porque fue añadido al repositario de Bitcoin Core, aunque todavía no está habilitado en el código principal. AssumeUTXO permite arrancar un nodo completo de manera instantánea. Esto se logra asumiendo el estado actual de la cadena de bloques, mientras el programa realiza una sincronización de validación completa en segundo plano. Para establecer el estado de la cadena hace que las snapshot (o instántánas) de las UTXO se puedan cargar a través de un RPC o llamada de procedimiento remoto.
Este método de sincronización de Bitcoin podría ser la puerta de entrada para que numerosos usuarios, que en el pasado han encontrado obstáculos para correr nodos completos personales, puedan utilizar sus propios dispositivos para verificar transacciones. En la medida que crece el tamaño del archivo de Bitcoin (y las exigencias de almacenamiento y ancho de banda para ejecutar un nodo), soluciones como AssumeUTXO se vuelven cada vez más imprescindibles, tomando en cuenta que buena parte de la seguridad de Bitcoin depende del número de usuarios que posean una copia del archivo y tengan la capacidad de validar el estado de la cadena de bloques sin depender de terceros.
Libfloresta para ejecuatar nodos completos ligeros
Otro de los desarrollos enfocados en optimizar el trabjo de los nodos de Bitcoin es Libfloresta, un proyecto que puso a disposición de los desarrolladores una librería de código abierto para aplicaciones. Libfloresta está basada en utreexo, una alternativa propuesta al conjunto de las UTXO o transacciones no gastadas que permite a los nodos obtener y verificar información sobre las UTXO. A través del conjunto de herramientas de Libfloresta, las aplicaciones de Bitcoin pueden ejecutar un nodo completo ligero, precisamente porque una de las propiedades de utreexo es que disminuye los requerimientos de almacenamiento de las UTXO.
Musig2, multifirmas de segunda generación
En abril, se asignó la BIP-327 a Musig2, que es compatible con firmas y claves públicas Schnorr y permite derivar semillas (o cunjunto de 12 o 24 palabras clave de recuperación) como claves secundarias a partir de claves públicas agregadas. Además es posible crear salidas (pagos) con transacciones Taproot que utilizan rutas de claves y scripts, por lo que poseerán flexibilidad para incorporar diversas condiciones para los firmantes.
Más recientemente, el desarrollador Adrew Chow presentó dos borradores de BIP para Musig2 PSBT y Musig2 Descriptors, que también forman parte del conjunto de mejoras de la segunda generación del sistema para hacer firmas múltiples en Bitcoin, presentada por primera vez en 2020, como reportó CriptoNoticias.
La primera BIP propone campos adicionales para las firmas parciales (PSBT) que se generen con Musig2 (BIP-327). La razón es que los campos PSBT existentes no pueden admitir MuSig2 ya que introduce nuevos conceptos y rondas de comunicación adicionales. Los nuevos campos son necesarios para producir firmas válidas. La segunda propuesta hace posible expresar los descriptores de los script de salida (un descriptor es una forma de identificar un archivo y permite al programa controlar los archivos que están abiertos). En otras palabras, la propuesta es un procedimieto para instruir la manera en que Musig2 reune múltiples claves para crear una clave pública. Esto permite a las wallets usar Musig más fácilmente.
En concreto, Musig2 traerá mejoras en cuanto a la privacidad de las firmas múltiples y hará que las firmas sean más ligeras y eficientes.
Si llegaste hasta aquí, comprenderás que las propuestas, las investigaciones discutidas y las actualizaciones que experimentó el software de Bitcoin durante 2023 son cruciales para que Bitcoin se adapte a las necesidades de una comunidad de usuarios creciente. Nos espera un año donde el cambio será lo que consolide, aún más, el valor de Bitcoin como método de pago y como dinero efectivo electrónico seguro.