OP_CHECKTEMPLATEVERIFY una vez más se ha convertido en un punto focal en la conversación sobre mejoras para escalar Bitcoin. Esta vez se proponen muchos más diseños alternativos para los convenios y diseños concretos reales que utilizan CTV como soluciones de escala (Árboles de tiempo de espera y Arca). La conversación tiene una profundidad mucho mayor de conceptos a considerar, tanto en términos de alternativas que podrían adoptarse como de propuestas concretas que CTV podría habilitar.
Una narrativa que circula desde el campo de personas contra CTV es que “CTV no escala Bitcoin”. Interpretemos caritativamente que eso significa que CTV en sí no escala Bitcoin, las cosas que puedes construir con él sí lo hacen. Bueno, entonces ese no es un argumento coherente. Testigo Segregado no escaló Bitcoin. CHECKLOCKTIMEVERIFY y CHECKSEQUENCEVERIFY no escalaron Bitcoin. Pero Lightning Network, que esas tres propuestas habilitaron, escala Bitcoin. Añaden una enorme cantidad de gastos generales para que el rendimiento transaccional crezca más allá de las limitaciones del cadena de bloques sí mismo.
Los rayos literalmente no podrían existir sin esas primitivas de la capa base. Sin embargo, el problema con Lightning es que solo aumenta la cantidad de transacciones que se pueden procesar. De ninguna manera ayuda a mejorar la escalabilidad de la propiedad de los UTXO ni a aumentar la cantidad de usuarios que pueden controlar uno. Actualmente, Lightning no es capaz de hacer eso con su diseño actual y el conjunto actual de primitivas de consenso disponibles en el script de Bitcoin.
CTV puede cambiar eso.
UTXO y UTXO virtuales
Parte del problema de la deficiencia de Lightning con respecto a la escalabilidad de la propiedad de Bitcoin es que para abrir un canal o controlar un UTXO, en realidad hay que realizar transacciones en la capa base. Después de eso, Lightning puede facilitar una gran cantidad de transacciones fuera de la cadena, pero un usuario aún debe realizar transacciones en la cadena para incorporarse a Lightning. Aumenta enormemente la cantidad de transacciones que Bitcoin puede procesar, pero no hace nada en absoluto para aumentar la cantidad de personas que pueden poseer bitcoins.
Este es otro gran problema con el que CTV puede ayudar. Burak acuñó el término “UTXO virtual” para su propuesta de Ark, pero creo que esta terminología es un término general perfecto y útil mucho más allá del contexto de Ark. Un UTXO virtual es aquel que se compromete a ser creado en el futuro, a través de mecanismos como un pre- transacción firmada, pero que en realidad aún no se ha creado en la cadena. Bitcoin no tiene el espacio de bloques para que todos puedan crear un único UTXO a escala de la población mundial, pero definitivamente existe la posibilidad de que las personas tengan su propio UTXO virtual independiente si el proceso de comprometerse con ellos puede hacerse escalable.
El problema es ampliar la creación de compromisos con vUTXO. En este momento no hay forma de crearlos excepto mediante el uso de transacciones prefirmadas, y esto introduce un cuello de botella que debe abordarse. La cantidad de vUTXO con los que cualquier UTXO real puede comprometerse está limitada por el tamaño del conjunto multifirma que firma estas transacciones. Para crear vUTXO sin confianza, el propietario de cada vUTXO debe ser parte de la clave multifirma que firma las transacciones que se comprometen a crearlos; de lo contrario, no tienen garantía de que no se generarán transacciones conflictivas que anulan su capacidad de reclamar su vUTXO si es necesario. . El problema de coordinar la firma de esto entre cada miembro del conjunto introduce consideraciones prácticas que, en última instancia, limitarán severamente el tamaño al que puede crecer cualquier grupo de vUTXO. La única otra alternativa es hacer que alguna parte o partes de confianza firmen las transacciones comprometiéndose con los vUTXO de todos y simplemente confiar en que no robarán esos fondos a los propietarios legítimos.
CTV ofrece una solución a ambos problemas. Al poder comprometerse de forma no interactiva con un conjunto de transacciones futuras de la misma manera que lo hacen las transacciones prefirmadas, pero sin requerir que todos los propietarios de los vUTXO que esas transacciones crean coordinen la firma, se resuelve el problema de coordinación. Al mismo tiempo, como nadie necesita interactuar, una sola persona podría asumir el papel de financiar la producción de CTV que se compromete a que los vUTXO de todos se desplieguen en la cadena, y no se requiere ninguna confianza en esa persona después de que se confirme la transacción de financiamiento. Una vez que ese UTXO real se confirma en un bloque, la persona que lo financió no tiene capacidad para deshacer o gastar dos veces las transacciones futuras a las que se ha comprometido.
Ten en cuenta que un vUTXO puede ser lo que quieras que sea. Puede ser un canal Lightning, un script multifirma para almacenamiento en frío, etc. CTV hace lo que la forma actual de Lightning no hace: escala la propiedad real de Bitcoin, no solo la cantidad de transacciones que puede procesar.
Cortar el atajo
Una de las otras críticas a CTV por “no escalar Bitcoin” es que al comprometerse con transacciones futuras no se evita la necesidad de ponerlas en cadena eventualmente y, por lo tanto, CTV en realidad no ayuda a mejorar la escalabilidad. Me gusta llamar a esto “la falacia OP_IF”. es decir, una vez que la gente empieza a hablar de CTV, olvidan que OP_IF existe y que los scripts pueden tener múltiples condiciones de gasto para elegir.
Las cosas más poderosas de Taproot son la capacidad de construir firmas múltiples con solo agregar dos claves públicas y firmarlas con una sola firma agregada, y revelar solo selectivamente una única rama “IF” de un script que tiene múltiples formas de gastarse. . Combinado con CTV, esto ofrece una forma muy poderosa de utilizar los compromisos de vUTXO. En lugar de realizar una cadena de transacciones utilizando exclusivamente CTV, se pueden construir con la ruta de gasto de CTV enterrada dentro de un árbol de raíz principal. El final de la cadena de transacciones son todos los vUTXO individuales que posee cada participante, bloqueados únicamente con la clave pública de ese usuario. A medida que avanza hacia la raíz del árbol, cada conjunto de claves que se encuentran debajo de cualquier nodo en el árbol se puede simplemente agregar y usar como clave multifirma de Schnorr bajo la cual está enterrada la ruta de gasto de CTV.
Esto significa que en cualquier punto de la cadena de transacciones que se despliegan en la cadena para convertir los vUTXO en UTXO reales donde puede hacer que cada participante en un UTXO intermedio se coordine entre sí, todos pueden simplemente firmar cooperativamente una transacción moviendo sus monedas donde quieren hacerlo de una manera más eficiente que simplemente dejar que el flujo de transacciones predefinido se despliegue hasta el final para transformar sus vUTXO en reales. Esto permite que los pequeños subgrupos eviten la necesidad de desplegar todo el conjunto de transacciones previamente comprometidas en la cadena, sin introducir partes confiables en las que confiar ni debilitar la seguridad del reclamo de cada usuario sobre sus propios vUTXO.
Estas dos realidades simples ofrecen una enorme ganancia en escalabilidad para Bitcoin sin comprometer la soberanía o la seguridad individual al hacerlo, y todo lo que necesitamos para realizarlas es CTV.
Agradecimientos: Me gustaría agradecer a todos los que participan en Chicago Bitdevs por ayudarme a formular estas observaciones de manera concisa a través de la discusión.