Fuente: Bitcoin Magazine; Compilación: Wuzhu, Golden Finance
Rollups se ha convertido recientemente en el foco de la expansión de BTC, convirtiéndose en la primera cosa que realmente roba protagonismo de la Red Lighting, en términos de una atención más amplia. Rollups tiene como objetivo ser una capa 2 off-chain que no esté limitada o restringida por la liquidez central de Lighting Network, es decir, los usuarios finales necesitan tener fondos asignados (o “prestados”) con anticipación para recibir dinero, o los nodos intermedios necesitan saldos de canal para facilitar el flujo completo de los pagos desde el remitente hasta el destinatario.
Estos sistemas originalmente se ejecutaban en Ethereum y otros sistemas Turing completo, pero recientemente se ha centrado en trasladarlos a cadenas de bloques basadas en UTXO (por ejemplo, BTC). Este artículo no pretende discutir la implementación actual en BTC, sino discutir las funciones de Rollup idealizadas que las personas han estado buscando durante mucho tiempo, lo que depende de la capacidad que actualmente no es compatible con BTC, es decir, la capacidad de verificar Prueba de conocimiento cero (ZKP) directamente en BTC.
La estructura básica de Roll es la siguiente: una única cuenta (denominada UTXO en BTC) almacena el saldo de todos los usuarios en Rollup. Este UTXO contiene un compromiso, que existe en forma de raíz de Merkle del árbol Merkle, comprometiendo todos los saldos actuales de cuenta en Rollup. Todas estas cuentas están autorizadas con la llave pública/llave privada, por lo que para hacer gastos fuera de la cadena, los usuarios todavía deben firmar cierto contenido con la llave secreta. Esta parte de la estructura permite a los usuarios salir en cualquier momento sin permiso, solo presentando una prueba de transacción que demuestre que su cuenta es parte del árbol Merkle, pueden salir de Rollup unilateralmente, sin necesidad de permiso del operador.
Los operadores de Rollup deben incluir un ZKP en las transacciones para actualizar el saldo de la cuenta on-chain durante el proceso de completar las transacciones off-chain. Sin este ZKP, la transacción será inválida y no se puede incluir en el bloque. Esta prueba permite a las personas verificar si todos los cambios en la cuenta off-chain han sido autorizados adecuadamente por el titular de la cuenta, y si el operador no ha actualizado maliciosamente el saldo para robar fondos de los usuarios o redistribuirlos deshonestamente a otros usuarios.
El problema es que si solo se publica la raíz del árbol de Merkle en la cadena, los usuarios pueden ver y acceder a ella, entonces ¿cómo colocan sus ramas en el árbol para poder salir sin permiso cuando lo deseen?
Rollup adecuado
En un Rollup adecuado, cada vez que se confirma una nueva transacción off-chain y cambia el estado de la cuenta Rollup, la información se coloca directamente en la cadena de bloques. No es todo el árbol, eso sería absurdo, sino la información necesaria para reconstruir el árbol. En una implementación simple, el resumen de todas las cuentas existentes en el Rollup contendrá los saldos, y las cuentas solo se agregarán en las transacciones de actualización del Rollup.
En implementaciones más avanzadas, se utilizan desviaciones de saldo. Este es esencialmente un resumen de qué CUENTA han aumentado o disminuido los fondos durante el proceso de actualización. Esto permite que cada actualización de Rollup incluya solo los cambios de saldo de cuenta que se producen. A continuación, los usuarios pueden simplemente escanear la cadena y “calcular” desde el principio del Rollup para llegar al estado actual del saldo de la cuenta, lo que les permite reconstruir el árbol de Merkle del saldo actual.
Esto permite ahorrar una gran cantidad de gastos y espacio de Bloquear (ahorrando así fondos), al tiempo que permite a los usuarios garantizar el acceso a la información necesaria para la salida unilateral. Las reglas de rollup requieren que estos datos se incluyan en el rollup formal proporcionado a los usuarios mediante la cadena de Bloquear, por lo que las transacciones que no incluyen un resumen de cuenta o una diferencia de cuenta se consideran inválidas.
Período de validez
Otra forma de abordar el problema de la disponibilidad de los datos de extracción del usuario es colocar los datos en otro lugar fuera de la cadena de bloques. Esto plantea problemas sutiles, ya que rollup aún debe garantizar que los datos estén disponibles en otro lugar. Tradicionalmente, otras cadenas de bloques se utilizan para este propósito, especialmente diseñadas como capa de disponibilidad de datos para sistemas como rollup.
Esto ha creado un dilema de seguridad igualmente poderoso. Cuando los datos se publican directamente en la cadena de bloques Bitcoin, las reglas de consenso pueden garantizar que sean absolutamente correctos. Sin embargo, cuando se publican en sistemas externos, lo mejor que pueden hacer es verificar la prueba SPV, es decir, que los datos se hayan publicado en otro sistema.
Esto requiere la verificación de que los datos existen en una prueba on-chain de otro bloque, que es en última instancia un problema de Máquina de oráculo. La cadena de bloques de BTC no puede verificar completamente nada que ocurra fuera de su propia cadena de bloques, excepto validar ZKP. Sin embargo, ZKP no puede verificar si los datos del rollup en un bloque se han difundido públicamente después de su generación. No puede verificar si la información externa realmente está disponible para todos.
Esto abre la puerta a ataques de retención de datos, es decir, crear compromisos para los datos publicados y utilizarlos para avanzar en el rollup, pero los datos no están disponibles en realidad. Esto hace que los usuarios no puedan retirar fondos. La única solución real es depender completamente del valor y la estructura de incentivos de sistemas distintos al BTC.
Entre la espada y la pared
Esto ha llevado a un dilema para rollup. Cuando se trata de problemas de disponibilidad de datos, básicamente existe una elección binaria entre publicar datos en la cadena de bloques BTC o en otro lugar. Esta elección tiene un gran impacto en la seguridad, soberanía y escalabilidad de rollup.
Por un lado, utilizar la cadena de bloques de Bitcoin como capa de disponibilidad de datos establece un límite máximo para la escalabilidad de rollup. El espacio en bloquear es limitado, lo que establece un límite para la cantidad de rollups que pueden existir y la cantidad total de transacciones que se pueden procesar fuera de la cadena. Cada actualización de rollup requiere espacio en bloquear proporcional a la cantidad de cuentas cuyo saldo ha cambiado desde la última actualización. La teoría de la información solo permite comprimir los datos hasta cierto punto, y en este punto no hay más potencial de expansión.
Por otro lado, el uso de capas diferentes para lograr la disponibilidad de datos eliminará el límite máximo de escalabilidad, pero también traerá nuevos problemas de seguridad y soberanía. En el Rollup que utiliza BTC para lograr la disponibilidad de datos, si los usuarios necesitan extraer datos que no se hayan publicado automáticamente en la cadena de bloques, el estado del Rollup no puede cambiar. Con Validiums, esta garantía depende completamente de la capacidad del sistema externo utilizado para resistir el fraude y ocultar datos.
Ahora, cualquier productor de Bloquear en el sistema de disponibilidad de datos externos puede secuestrar los fondos de los usuarios de BTCRollup mediante la producción de Bloquear en lugar de transmitirlo realmente, para que los datos estén disponibles.
Entonces, si realmente logramos una implementación ideal de Rollup en BTC, logrando verdaderamente retiros unilaterales de los usuarios, ¿cómo sería eso?
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
Bitcoin Magazine: ¿Qué desafíos enfrenta Rollup?
Fuente: Bitcoin Magazine; Compilación: Wuzhu, Golden Finance
Rollups se ha convertido recientemente en el foco de la expansión de BTC, convirtiéndose en la primera cosa que realmente roba protagonismo de la Red Lighting, en términos de una atención más amplia. Rollups tiene como objetivo ser una capa 2 off-chain que no esté limitada o restringida por la liquidez central de Lighting Network, es decir, los usuarios finales necesitan tener fondos asignados (o “prestados”) con anticipación para recibir dinero, o los nodos intermedios necesitan saldos de canal para facilitar el flujo completo de los pagos desde el remitente hasta el destinatario.
Estos sistemas originalmente se ejecutaban en Ethereum y otros sistemas Turing completo, pero recientemente se ha centrado en trasladarlos a cadenas de bloques basadas en UTXO (por ejemplo, BTC). Este artículo no pretende discutir la implementación actual en BTC, sino discutir las funciones de Rollup idealizadas que las personas han estado buscando durante mucho tiempo, lo que depende de la capacidad que actualmente no es compatible con BTC, es decir, la capacidad de verificar Prueba de conocimiento cero (ZKP) directamente en BTC.
La estructura básica de Roll es la siguiente: una única cuenta (denominada UTXO en BTC) almacena el saldo de todos los usuarios en Rollup. Este UTXO contiene un compromiso, que existe en forma de raíz de Merkle del árbol Merkle, comprometiendo todos los saldos actuales de cuenta en Rollup. Todas estas cuentas están autorizadas con la llave pública/llave privada, por lo que para hacer gastos fuera de la cadena, los usuarios todavía deben firmar cierto contenido con la llave secreta. Esta parte de la estructura permite a los usuarios salir en cualquier momento sin permiso, solo presentando una prueba de transacción que demuestre que su cuenta es parte del árbol Merkle, pueden salir de Rollup unilateralmente, sin necesidad de permiso del operador.
Los operadores de Rollup deben incluir un ZKP en las transacciones para actualizar el saldo de la cuenta on-chain durante el proceso de completar las transacciones off-chain. Sin este ZKP, la transacción será inválida y no se puede incluir en el bloque. Esta prueba permite a las personas verificar si todos los cambios en la cuenta off-chain han sido autorizados adecuadamente por el titular de la cuenta, y si el operador no ha actualizado maliciosamente el saldo para robar fondos de los usuarios o redistribuirlos deshonestamente a otros usuarios.
El problema es que si solo se publica la raíz del árbol de Merkle en la cadena, los usuarios pueden ver y acceder a ella, entonces ¿cómo colocan sus ramas en el árbol para poder salir sin permiso cuando lo deseen?
Rollup adecuado
En un Rollup adecuado, cada vez que se confirma una nueva transacción off-chain y cambia el estado de la cuenta Rollup, la información se coloca directamente en la cadena de bloques. No es todo el árbol, eso sería absurdo, sino la información necesaria para reconstruir el árbol. En una implementación simple, el resumen de todas las cuentas existentes en el Rollup contendrá los saldos, y las cuentas solo se agregarán en las transacciones de actualización del Rollup.
En implementaciones más avanzadas, se utilizan desviaciones de saldo. Este es esencialmente un resumen de qué CUENTA han aumentado o disminuido los fondos durante el proceso de actualización. Esto permite que cada actualización de Rollup incluya solo los cambios de saldo de cuenta que se producen. A continuación, los usuarios pueden simplemente escanear la cadena y “calcular” desde el principio del Rollup para llegar al estado actual del saldo de la cuenta, lo que les permite reconstruir el árbol de Merkle del saldo actual.
Esto permite ahorrar una gran cantidad de gastos y espacio de Bloquear (ahorrando así fondos), al tiempo que permite a los usuarios garantizar el acceso a la información necesaria para la salida unilateral. Las reglas de rollup requieren que estos datos se incluyan en el rollup formal proporcionado a los usuarios mediante la cadena de Bloquear, por lo que las transacciones que no incluyen un resumen de cuenta o una diferencia de cuenta se consideran inválidas.
Período de validez
Otra forma de abordar el problema de la disponibilidad de los datos de extracción del usuario es colocar los datos en otro lugar fuera de la cadena de bloques. Esto plantea problemas sutiles, ya que rollup aún debe garantizar que los datos estén disponibles en otro lugar. Tradicionalmente, otras cadenas de bloques se utilizan para este propósito, especialmente diseñadas como capa de disponibilidad de datos para sistemas como rollup.
Esto ha creado un dilema de seguridad igualmente poderoso. Cuando los datos se publican directamente en la cadena de bloques Bitcoin, las reglas de consenso pueden garantizar que sean absolutamente correctos. Sin embargo, cuando se publican en sistemas externos, lo mejor que pueden hacer es verificar la prueba SPV, es decir, que los datos se hayan publicado en otro sistema.
Esto requiere la verificación de que los datos existen en una prueba on-chain de otro bloque, que es en última instancia un problema de Máquina de oráculo. La cadena de bloques de BTC no puede verificar completamente nada que ocurra fuera de su propia cadena de bloques, excepto validar ZKP. Sin embargo, ZKP no puede verificar si los datos del rollup en un bloque se han difundido públicamente después de su generación. No puede verificar si la información externa realmente está disponible para todos.
Esto abre la puerta a ataques de retención de datos, es decir, crear compromisos para los datos publicados y utilizarlos para avanzar en el rollup, pero los datos no están disponibles en realidad. Esto hace que los usuarios no puedan retirar fondos. La única solución real es depender completamente del valor y la estructura de incentivos de sistemas distintos al BTC.
Entre la espada y la pared
Esto ha llevado a un dilema para rollup. Cuando se trata de problemas de disponibilidad de datos, básicamente existe una elección binaria entre publicar datos en la cadena de bloques BTC o en otro lugar. Esta elección tiene un gran impacto en la seguridad, soberanía y escalabilidad de rollup.
Por un lado, utilizar la cadena de bloques de Bitcoin como capa de disponibilidad de datos establece un límite máximo para la escalabilidad de rollup. El espacio en bloquear es limitado, lo que establece un límite para la cantidad de rollups que pueden existir y la cantidad total de transacciones que se pueden procesar fuera de la cadena. Cada actualización de rollup requiere espacio en bloquear proporcional a la cantidad de cuentas cuyo saldo ha cambiado desde la última actualización. La teoría de la información solo permite comprimir los datos hasta cierto punto, y en este punto no hay más potencial de expansión.
Por otro lado, el uso de capas diferentes para lograr la disponibilidad de datos eliminará el límite máximo de escalabilidad, pero también traerá nuevos problemas de seguridad y soberanía. En el Rollup que utiliza BTC para lograr la disponibilidad de datos, si los usuarios necesitan extraer datos que no se hayan publicado automáticamente en la cadena de bloques, el estado del Rollup no puede cambiar. Con Validiums, esta garantía depende completamente de la capacidad del sistema externo utilizado para resistir el fraude y ocultar datos.
Ahora, cualquier productor de Bloquear en el sistema de disponibilidad de datos externos puede secuestrar los fondos de los usuarios de BTCRollup mediante la producción de Bloquear en lugar de transmitirlo realmente, para que los datos estén disponibles.
Entonces, si realmente logramos una implementación ideal de Rollup en BTC, logrando verdaderamente retiros unilaterales de los usuarios, ¿cómo sería eso?