Fuente: Bitcoin Magazine; Compilado por: Wuzhu, Golden Finance
Los rollups se han convertido recientemente en el foco del escalado de BTC, convirtiéndose en lo primero que realmente "roba el espectáculo" de Lighting Network, en términos de una atención más amplia. Los rollups están diseñados para ser una capa 2 fuera de la cadena que no está restringida ni restringida por las restricciones centrales de Liquidez de Lighting Network, es decir, el usuario final necesita que alguien asigne (o "preste") los fondos por adelantado para recibir el dinero, o el enrutamiento intermedio Nodo necesita el saldo del canal para facilitar el flujo del monto del pago desde el remitente hasta el receptor.
Estos sistemas fueron originalmente implementados en Ethereum y otros sistemas Turing completo, pero recientemente se ha centrado en la adaptación a blockchains basadas en UTXO como Bitcoin. Este artículo no pretende discutir la implementación actual en Bitcoin, sino hablar sobre las características de un Rollup idealizado que se basa en la capacidad de Bitcoin de verificar pruebas de conocimiento cero (ZKP) directamente en la cadena, una funcionalidad que Bitcoin no admite actualmente.
La estructura básica de Roll es la siguiente: una única cuenta (UTXO en BTC) que guarda los saldos de todos los usuarios en Rollup. Esta UTXO contiene un compromiso que existe en forma de raíz de Merkle del árbol de Merkle, comprometiendo todos los saldos actuales de la cuenta en Rollup. Todas estas cuentas están autorizadas con la Llave pública/Llave privada, por lo que para realizar gastos off-chain, los usuarios aún deben firmar cierto contenido con la Llave secreta. Esta parte de la estructura permite a los usuarios salir en cualquier momento sin permiso, simplemente demostrando que su cuenta es parte del árbol de Merkle haciendo una transacción, pueden salir unilateralmente de Rollup sin necesidad de permiso del operador.
Los operadores de Rollup deben incluir una prueba de conocimiento cero (ZKP) en las transacciones para actualizar la raíz del merkle del saldo de la cuenta en la cadena de bloques durante el proceso de finalización de las transacciones fuera de la cadena. Sin esta 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 el saldo de la cuenta fuera de la cadena están debidamente autorizados por el titular de la cuenta y si el operador no actualiza 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 verlo y acceder a él, ¿cómo pueden colocar sus ramas en el árbol para poder salir en el momento que deseen sin necesidad de permiso?
Rollup adecuado
En 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 el blockchain. No es todo el árbol, eso sería demasiado absurdo, sino la información necesaria para reconstruir el árbol. En una implementación simple, el resumen de todas las cuentas existentes en Rollup contendrá el saldo y las cuentas solo se agregarán en las transacciones de actualización de Rollup.
En implementaciones más avanzadas, utiliza la diferencia de saldos. Esto esencialmente resume qué cuentas han aumentado o disminuido los fondos durante el proceso de actualización. Esto hace que cada actualización de Rollup solo contenga cambios en el saldo de la cuenta que han ocurrido. Luego, los usuarios pueden simplemente escanear la cadena y "calcular" desde el comienzo del Rollup para obtener el 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 bloque (ahorrando así dinero), al tiempo que permite a los usuarios asegurarse de que tengan acceso a la información necesaria para salir unilateralmente. Las reglas de rollup requieren que estos datos se incluyan en el rollup formal proporcionado a los usuarios a través de la cadena de bloques, es decir, las transacciones que no incluyen un resumen de cuenta o una diferencia de cuenta se consideran inválidas.
Periodo de validez
Otra forma de abordar el problema de la disponibilidad de los datos de retiro de usuarios es colocar los datos en otro lugar fuera de la cadena de Bloquear. Esto plantea sutiles problemas, rollup todavía necesita garantizar que los datos estén disponibles en otro lugar. Tradicionalmente, otras cadenas de Bloquear se utilizan para este propósito, diseñadas específicamente como capas de disponibilidad de datos para sistemas como rollup.
Esto ha creado un dilema de seguridad igualmente importante. Cuando los datos se publican directamente en la cadena de bloques de Bitcoin, las reglas de consenso pueden garantizar que sean absolutamente correctos. Sin embargo, cuando se publican en un sistema externo, lo mejor que se puede hacer es verificar la prueba SPV, es decir, que los datos se han publicado en otro sistema.
Esto requiere la verificación de que los datos existen en una prueba on-chain. Esto es en última instancia un problema de Máquina de oráculo. La cadena Bloquear de BTC no puede verificar completamente nada más que lo que sucede en su propia cadena Bloquear on-chain. Lo mejor que puede hacer es verificar ZKP. Sin embargo, ZKP no puede verificar si los datos de rollup incluidos en el bloque Bloquear después de su generación realmente se transmiten públicamente. No puede verificar si la información externa realmente se hace pública para todos.
Esto abre la puerta a ataques de retención de datos, es decir, crear compromisos con datos publicados y usarlos para promover el rollup , pero los datos en realidad no están disponibles. 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 que no sean BTC.
Dilema
Esto plantea un dilema para rollup. Cuando se trata de problemas de disponibilidad de datos, básicamente hay una elección binaria entre publicar los datos en la cadena de bloques de BTC o en otro lugar. Esta elección tiene un impacto significativo en la seguridad, la soberanía y la escalabilidad de rollup.
Por un lado, el uso de la cadena de bloques Bitcoin como capa de disponibilidad de datos establecerá un límite máximo para la escalabilidad de rollup. El espacio de bloquear es limitado, lo que establece un límite para la cantidad de rollup que puede existir a la vez y la cantidad total de transacciones que pueden ser procesadas fuera de la cadena. Cada actualización de rollup requiere un espacio de 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, por lo que no hay más potencial de escalabilidad en este sentido.
Por otro lado, el uso de diferentes capas para lograr la disponibilidad de datos eliminará el límite duro en los beneficios 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 de los sistemas externos utilizados para resistir el engaño 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 al producir Bloquear en lugar de difundirlo realmente, lo que permite que los datos estén disponibles.
Entonces, ¿cómo sería si realmente logramos una implementación Rollup ideal en BTC y logramos retiros unilaterales de usuarios?
Bitcoin Magazine: ¿Qué desafíos enfrenta Rollup?
Fuente: Bitcoin Magazine; Compilado por: Wuzhu, Golden Finance
Los rollups se han convertido recientemente en el foco del escalado de BTC, convirtiéndose en lo primero que realmente "roba el espectáculo" de Lighting Network, en términos de una atención más amplia. Los rollups están diseñados para ser una capa 2 fuera de la cadena que no está restringida ni restringida por las restricciones centrales de Liquidez de Lighting Network, es decir, el usuario final necesita que alguien asigne (o "preste") los fondos por adelantado para recibir el dinero, o el enrutamiento intermedio Nodo necesita el saldo del canal para facilitar el flujo del monto del pago desde el remitente hasta el receptor.
Estos sistemas fueron originalmente implementados en Ethereum y otros sistemas Turing completo, pero recientemente se ha centrado en la adaptación a blockchains basadas en UTXO como Bitcoin. Este artículo no pretende discutir la implementación actual en Bitcoin, sino hablar sobre las características de un Rollup idealizado que se basa en la capacidad de Bitcoin de verificar pruebas de conocimiento cero (ZKP) directamente en la cadena, una funcionalidad que Bitcoin no admite actualmente.
La estructura básica de Roll es la siguiente: una única cuenta (UTXO en BTC) que guarda los saldos de todos los usuarios en Rollup. Esta UTXO contiene un compromiso que existe en forma de raíz de Merkle del árbol de Merkle, comprometiendo todos los saldos actuales de la cuenta en Rollup. Todas estas cuentas están autorizadas con la Llave pública/Llave privada, por lo que para realizar gastos off-chain, los usuarios aún deben firmar cierto contenido con la Llave secreta. Esta parte de la estructura permite a los usuarios salir en cualquier momento sin permiso, simplemente demostrando que su cuenta es parte del árbol de Merkle haciendo una transacción, pueden salir unilateralmente de Rollup sin necesidad de permiso del operador.
Los operadores de Rollup deben incluir una prueba de conocimiento cero (ZKP) en las transacciones para actualizar la raíz del merkle del saldo de la cuenta en la cadena de bloques durante el proceso de finalización de las transacciones fuera de la cadena. Sin esta 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 el saldo de la cuenta fuera de la cadena están debidamente autorizados por el titular de la cuenta y si el operador no actualiza 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 verlo y acceder a él, ¿cómo pueden colocar sus ramas en el árbol para poder salir en el momento que deseen sin necesidad de permiso?
Rollup adecuado
En 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 el blockchain. No es todo el árbol, eso sería demasiado absurdo, sino la información necesaria para reconstruir el árbol. En una implementación simple, el resumen de todas las cuentas existentes en Rollup contendrá el saldo y las cuentas solo se agregarán en las transacciones de actualización de Rollup.
En implementaciones más avanzadas, utiliza la diferencia de saldos. Esto esencialmente resume qué cuentas han aumentado o disminuido los fondos durante el proceso de actualización. Esto hace que cada actualización de Rollup solo contenga cambios en el saldo de la cuenta que han ocurrido. Luego, los usuarios pueden simplemente escanear la cadena y "calcular" desde el comienzo del Rollup para obtener el 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 bloque (ahorrando así dinero), al tiempo que permite a los usuarios asegurarse de que tengan acceso a la información necesaria para salir unilateralmente. Las reglas de rollup requieren que estos datos se incluyan en el rollup formal proporcionado a los usuarios a través de la cadena de bloques, es decir, las transacciones que no incluyen un resumen de cuenta o una diferencia de cuenta se consideran inválidas.
Periodo de validez
Otra forma de abordar el problema de la disponibilidad de los datos de retiro de usuarios es colocar los datos en otro lugar fuera de la cadena de Bloquear. Esto plantea sutiles problemas, rollup todavía necesita garantizar que los datos estén disponibles en otro lugar. Tradicionalmente, otras cadenas de Bloquear se utilizan para este propósito, diseñadas específicamente como capas de disponibilidad de datos para sistemas como rollup.
Esto ha creado un dilema de seguridad igualmente importante. Cuando los datos se publican directamente en la cadena de bloques de Bitcoin, las reglas de consenso pueden garantizar que sean absolutamente correctos. Sin embargo, cuando se publican en un sistema externo, lo mejor que se puede hacer es verificar la prueba SPV, es decir, que los datos se han publicado en otro sistema.
Esto requiere la verificación de que los datos existen en una prueba on-chain. Esto es en última instancia un problema de Máquina de oráculo. La cadena Bloquear de BTC no puede verificar completamente nada más que lo que sucede en su propia cadena Bloquear on-chain. Lo mejor que puede hacer es verificar ZKP. Sin embargo, ZKP no puede verificar si los datos de rollup incluidos en el bloque Bloquear después de su generación realmente se transmiten públicamente. No puede verificar si la información externa realmente se hace pública para todos.
Esto abre la puerta a ataques de retención de datos, es decir, crear compromisos con datos publicados y usarlos para promover el rollup , pero los datos en realidad no están disponibles. 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 que no sean BTC.
Dilema
Esto plantea un dilema para rollup. Cuando se trata de problemas de disponibilidad de datos, básicamente hay una elección binaria entre publicar los datos en la cadena de bloques de BTC o en otro lugar. Esta elección tiene un impacto significativo en la seguridad, la soberanía y la escalabilidad de rollup.
Por un lado, el uso de la cadena de bloques Bitcoin como capa de disponibilidad de datos establecerá un límite máximo para la escalabilidad de rollup. El espacio de bloquear es limitado, lo que establece un límite para la cantidad de rollup que puede existir a la vez y la cantidad total de transacciones que pueden ser procesadas fuera de la cadena. Cada actualización de rollup requiere un espacio de 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, por lo que no hay más potencial de escalabilidad en este sentido.
Por otro lado, el uso de diferentes capas para lograr la disponibilidad de datos eliminará el límite duro en los beneficios 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 de los sistemas externos utilizados para resistir el engaño 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 al producir Bloquear en lugar de difundirlo realmente, lo que permite que los datos estén disponibles.
Entonces, ¿cómo sería si realmente logramos una implementación Rollup ideal en BTC y logramos retiros unilaterales de usuarios?