En la Parte I, cubrimos el concepto de interoperabilidad de blockchain y cómo su importancia solo aumentará a medida que surjan L1, L2 y cadenas de aplicaciones alternativas. La gran cantidad de capital que se mueve a través de los puentes los convierte en objetivos atractivos para los piratas informáticos y en 2022 vimos una pérdida de 2.500 millones de dólares debido a vulnerabilidades de contratos inteligentes y multifirma. De todas las hazañas que ocurrieron ese año, un asombroso 69% estuvo relacionado con puentes.
En el centro de estas pérdidas se encontraban las fallas en el paso de verificación del puente, donde el mecanismo de confianza utilizado para verificar la validez de la transacción estaba respaldado por humanos y firmas múltiples:
Dadas estas vulnerabilidades, el paso de verificación en el proceso de conexión se realiza mucho mejor mediante métodos de confianza minimizada que se basan en código y matemáticas.
Aquí es donde las pruebas de consenso entran en juego como una posible solución. El enfoque se basa en un probador que verifica el consenso de blockchain de la cadena de origen y utiliza pruebas de conocimiento cero para dar fe de la validez de una transacción antes de liberar fondos a un destino.
Hay mucho que analizar, así que primero definamos qué queremos decir con verificar el consenso de blockchain.
En esencia, las cadenas de bloques son libros de contabilidad que registran transacciones entre cuentas mantenidas por nodos que no confían entre sí. Dado que hay muchos nodos que validan una red blockchain, se debe llegar a un acuerdo entre estos validadores sobre qué bloque es el agregado más recientemente, es decir, deben llegar a un "consenso" sobre el último estado.
Fuente: Adaptado de Ethereum EVM ilustrado
Verificar de manera confiable el consenso de la cadena de origen en la cadena de destino es clave para establecer un puente porque si puede verificar el último bloque de la cadena de origen de una manera que minimice la confianza, determina la última "verdad" y luego tiene la comodidad de ejecutar la acción correspondiente en la cadena de destino.
Verificar el consenso de la cadena de origen para permitir la conexión
Para el puente, el protocolo debe determinar que se realizó válidamente una transacción de "depósito" en la cadena de origen. En la práctica esto implica verificar dos cosas:
Tras la verificación de ambos, la cadena de destino puede liberar activos al usuario.
Listo, activos puenteados.
En teoría, esto suena simple, pero la parte complicada es el paso 1: no es tan fácil para un contrato inteligente en una cadena verificar el consenso de otra (generalmente Ethereum como cadena fuente).
El primer desafío a señalar es que diferentes cadenas de bloques tienen diferentes mecanismos de consenso y demostrar el consenso en cada cadena de origen requiere un trabajo de ingeniería muy específico para su configuración. Esto significa que el paso de verificación del consenso deberá personalizarse para cada cadena de origen. Por ahora, centrémonos en demostrar el consenso de Ethereum, dado que tiene la mayor parte de TVL y es el puente típico de los usuarios de L1.
Ethereum tiene un gran conjunto de validadores de más de 700.000, de los cuales más de 21.000 validadores votan en un bloque en una ranura. Para lograr la finalidad, un bloque debe obtener votos de ⅔ del conjunto de validadores, lo que equivale aproximadamente a 450.000 votos de validadores. Verificar el consenso total significaría comprobar la validez de 450.000 firmas.
Un método menos engorroso para comprobar el consenso de Ethereum implica el "protocolo de cliente ligero". Esto utiliza un comité de sincronización (512 validadores seleccionados al azar cada 27,3 horas) para dar fe de que el último bloque propuesto es válido. En este caso, verificar el consenso significa verificar la validez de 512 firmas agregadas.
En un contexto puente, un contrato inteligente en la cadena de destino puede utilizar el protocolo de cliente ligero y actuar como un "cliente ligero" en la cadena para verificar el último estado de la cadena de origen y garantizar que se haya realizado un "depósito". Si se cumple, el contrato inteligente libera fondos en la cadena de destino.
Verificación del consenso de la cadena fuente (en Ethereum) a través del comité de sincronización
Este enfoque no es muy práctico porque verificar 512 firmas agregadas directamente en un contrato inteligente en cadena es prohibitivamente costoso sin precompilaciones, dado que los validadores de Ethereum usan firmas BLS.
Entonces, la clave para hacer esto posible es dar el paso de verificación fuera de la cadena...
… y aquí es donde entran las pruebas de consenso.
Las pruebas de conocimiento cero han surgido como una solución viable para ayudar a las cadenas de bloques a realizar costosos cálculos fuera de la cadena y verificar el resultado dentro de la cadena. Esto permite que un contrato inteligente puente en la cadena de destino mueva cálculos costosos (como validar el consenso de la cadena de origen) a un probador de conocimiento cero fuera de la cadena:
La verificación con pruebas zk nos permite acercarnos a un puente de confianza minimizada
Después de estos dos pasos, el contrato inteligente de destino puede liberar fondos de forma segura en la cadena de destino.
El uso de Consensus Proofs para verificar el estado de la cadena de bloques de origen es un paso importante hacia un puente que minimice la confianza, pero confiar en el protocolo de cliente ligero y los validadores 512 tiene algunas limitaciones (destacadas en la siguiente tabla).
Limitaciones al depender del comité de sincronización para verificar el consenso
Como tal, algunos equipos están trabajando para demostrar el consenso total de Ethereum, lo cual es una tarea compleja e implicaría verificar 450.000 firmas al momento de escribir este artículo. Hacerlo en un circuito de conocimiento cero no es tarea fácil, pero equipos como Polyhedra Network y Succinct se han comprometido a lograrlo.
¿Qué es mejor que demostrar 512 firmas? ¡450.000 firmas!
Polyhedra Network anunció recientemente que lograron verificar 21.000 firmas de validadores que firman un bloque en una ranura determinada en ZK y están trabajando para verificar las 450.000 firmas. Se pueden encontrar más detalles sobre su enfoque y sistema de prueba en su artículo zkBridge.
Una vez que podamos verificar el consenso completo de Ethereum con conocimiento cero, verificar el consenso de otras cadenas con conjuntos de validadores más pequeños con conocimiento cero debería ser relativamente sencillo.
Si bien la tecnología de conocimiento cero y las pruebas de consenso resuelven la falibilidad humana, la discusión estaría incompleta sin reconocer algunos de los riesgos que surgen al usarlas como puente.
La tecnología de conocimiento cero está cambiando rápidamente a medida que siguen surgiendo nuevos algoritmos y sistemas. Algunas de estas implementaciones no están auditadas y podrían contener vulnerabilidades, haciéndolas susceptibles a posibles ataques cuando surgen incentivos importantes. Además, incluso después de las auditorías, estos sistemas criptográficos complejos pueden contener vectores de ataque no descubiertos que serán identificados y rectificados con el tiempo, para alcanzar un estado maduro y endurecido.
Además, queda por ver en qué volumen de transacciones el gasto de generar y verificar pruebas de conocimiento cero se amortiza lo suficiente como para considerarse rentable.
Para concluir, destacaremos algunos de los actores que crean soluciones en este espacio. Si bien tienen enfoques y mercados ligeramente diferentes, están superando los límites de lo que pueden hacer los puentes basados en zk y anunciando el surgimiento de una interoperabilidad minimizada en la confianza.
Entre ellos tenemos:
Equipos trabajando en pruebas de consenso
La interoperabilidad es una parte central de la infraestructura blockchain. En las primeras etapas de la transición se vieron mecanismos de confianza respaldados por firmas múltiples y comprometidos por la dependencia de los humanos. Ahora estamos empezando a entrar en el ámbito de los puentes asegurados mediante criptografía y matemáticas, que son factibles gracias a la aplicación de pruebas de conocimiento cero en el contexto de los puentes.
En esta parte cubrimos cómo las Pruebas de Consenso ayudan a resolver los puentes verificando el último consenso de blockchain fuente finalizado.
Sin embargo, esta tecnología se puede ampliar aún más para verificar el consenso histórico que permite casos de uso entre cadenas más flexibles más allá de la simple conexión en este momento. Y eso es lo que exploraremos en la Parte III de nuestra serie sobre Interoperabilidad: Pruebas de almacenamiento y los casos de uso que desbloquean.
En la Parte I, cubrimos el concepto de interoperabilidad de blockchain y cómo su importancia solo aumentará a medida que surjan L1, L2 y cadenas de aplicaciones alternativas. La gran cantidad de capital que se mueve a través de los puentes los convierte en objetivos atractivos para los piratas informáticos y en 2022 vimos una pérdida de 2.500 millones de dólares debido a vulnerabilidades de contratos inteligentes y multifirma. De todas las hazañas que ocurrieron ese año, un asombroso 69% estuvo relacionado con puentes.
En el centro de estas pérdidas se encontraban las fallas en el paso de verificación del puente, donde el mecanismo de confianza utilizado para verificar la validez de la transacción estaba respaldado por humanos y firmas múltiples:
Dadas estas vulnerabilidades, el paso de verificación en el proceso de conexión se realiza mucho mejor mediante métodos de confianza minimizada que se basan en código y matemáticas.
Aquí es donde las pruebas de consenso entran en juego como una posible solución. El enfoque se basa en un probador que verifica el consenso de blockchain de la cadena de origen y utiliza pruebas de conocimiento cero para dar fe de la validez de una transacción antes de liberar fondos a un destino.
Hay mucho que analizar, así que primero definamos qué queremos decir con verificar el consenso de blockchain.
En esencia, las cadenas de bloques son libros de contabilidad que registran transacciones entre cuentas mantenidas por nodos que no confían entre sí. Dado que hay muchos nodos que validan una red blockchain, se debe llegar a un acuerdo entre estos validadores sobre qué bloque es el agregado más recientemente, es decir, deben llegar a un "consenso" sobre el último estado.
Fuente: Adaptado de Ethereum EVM ilustrado
Verificar de manera confiable el consenso de la cadena de origen en la cadena de destino es clave para establecer un puente porque si puede verificar el último bloque de la cadena de origen de una manera que minimice la confianza, determina la última "verdad" y luego tiene la comodidad de ejecutar la acción correspondiente en la cadena de destino.
Verificar el consenso de la cadena de origen para permitir la conexión
Para el puente, el protocolo debe determinar que se realizó válidamente una transacción de "depósito" en la cadena de origen. En la práctica esto implica verificar dos cosas:
Tras la verificación de ambos, la cadena de destino puede liberar activos al usuario.
Listo, activos puenteados.
En teoría, esto suena simple, pero la parte complicada es el paso 1: no es tan fácil para un contrato inteligente en una cadena verificar el consenso de otra (generalmente Ethereum como cadena fuente).
El primer desafío a señalar es que diferentes cadenas de bloques tienen diferentes mecanismos de consenso y demostrar el consenso en cada cadena de origen requiere un trabajo de ingeniería muy específico para su configuración. Esto significa que el paso de verificación del consenso deberá personalizarse para cada cadena de origen. Por ahora, centrémonos en demostrar el consenso de Ethereum, dado que tiene la mayor parte de TVL y es el puente típico de los usuarios de L1.
Ethereum tiene un gran conjunto de validadores de más de 700.000, de los cuales más de 21.000 validadores votan en un bloque en una ranura. Para lograr la finalidad, un bloque debe obtener votos de ⅔ del conjunto de validadores, lo que equivale aproximadamente a 450.000 votos de validadores. Verificar el consenso total significaría comprobar la validez de 450.000 firmas.
Un método menos engorroso para comprobar el consenso de Ethereum implica el "protocolo de cliente ligero". Esto utiliza un comité de sincronización (512 validadores seleccionados al azar cada 27,3 horas) para dar fe de que el último bloque propuesto es válido. En este caso, verificar el consenso significa verificar la validez de 512 firmas agregadas.
En un contexto puente, un contrato inteligente en la cadena de destino puede utilizar el protocolo de cliente ligero y actuar como un "cliente ligero" en la cadena para verificar el último estado de la cadena de origen y garantizar que se haya realizado un "depósito". Si se cumple, el contrato inteligente libera fondos en la cadena de destino.
Verificación del consenso de la cadena fuente (en Ethereum) a través del comité de sincronización
Este enfoque no es muy práctico porque verificar 512 firmas agregadas directamente en un contrato inteligente en cadena es prohibitivamente costoso sin precompilaciones, dado que los validadores de Ethereum usan firmas BLS.
Entonces, la clave para hacer esto posible es dar el paso de verificación fuera de la cadena...
… y aquí es donde entran las pruebas de consenso.
Las pruebas de conocimiento cero han surgido como una solución viable para ayudar a las cadenas de bloques a realizar costosos cálculos fuera de la cadena y verificar el resultado dentro de la cadena. Esto permite que un contrato inteligente puente en la cadena de destino mueva cálculos costosos (como validar el consenso de la cadena de origen) a un probador de conocimiento cero fuera de la cadena:
La verificación con pruebas zk nos permite acercarnos a un puente de confianza minimizada
Después de estos dos pasos, el contrato inteligente de destino puede liberar fondos de forma segura en la cadena de destino.
El uso de Consensus Proofs para verificar el estado de la cadena de bloques de origen es un paso importante hacia un puente que minimice la confianza, pero confiar en el protocolo de cliente ligero y los validadores 512 tiene algunas limitaciones (destacadas en la siguiente tabla).
Limitaciones al depender del comité de sincronización para verificar el consenso
Como tal, algunos equipos están trabajando para demostrar el consenso total de Ethereum, lo cual es una tarea compleja e implicaría verificar 450.000 firmas al momento de escribir este artículo. Hacerlo en un circuito de conocimiento cero no es tarea fácil, pero equipos como Polyhedra Network y Succinct se han comprometido a lograrlo.
¿Qué es mejor que demostrar 512 firmas? ¡450.000 firmas!
Polyhedra Network anunció recientemente que lograron verificar 21.000 firmas de validadores que firman un bloque en una ranura determinada en ZK y están trabajando para verificar las 450.000 firmas. Se pueden encontrar más detalles sobre su enfoque y sistema de prueba en su artículo zkBridge.
Una vez que podamos verificar el consenso completo de Ethereum con conocimiento cero, verificar el consenso de otras cadenas con conjuntos de validadores más pequeños con conocimiento cero debería ser relativamente sencillo.
Si bien la tecnología de conocimiento cero y las pruebas de consenso resuelven la falibilidad humana, la discusión estaría incompleta sin reconocer algunos de los riesgos que surgen al usarlas como puente.
La tecnología de conocimiento cero está cambiando rápidamente a medida que siguen surgiendo nuevos algoritmos y sistemas. Algunas de estas implementaciones no están auditadas y podrían contener vulnerabilidades, haciéndolas susceptibles a posibles ataques cuando surgen incentivos importantes. Además, incluso después de las auditorías, estos sistemas criptográficos complejos pueden contener vectores de ataque no descubiertos que serán identificados y rectificados con el tiempo, para alcanzar un estado maduro y endurecido.
Además, queda por ver en qué volumen de transacciones el gasto de generar y verificar pruebas de conocimiento cero se amortiza lo suficiente como para considerarse rentable.
Para concluir, destacaremos algunos de los actores que crean soluciones en este espacio. Si bien tienen enfoques y mercados ligeramente diferentes, están superando los límites de lo que pueden hacer los puentes basados en zk y anunciando el surgimiento de una interoperabilidad minimizada en la confianza.
Entre ellos tenemos:
Equipos trabajando en pruebas de consenso
La interoperabilidad es una parte central de la infraestructura blockchain. En las primeras etapas de la transición se vieron mecanismos de confianza respaldados por firmas múltiples y comprometidos por la dependencia de los humanos. Ahora estamos empezando a entrar en el ámbito de los puentes asegurados mediante criptografía y matemáticas, que son factibles gracias a la aplicación de pruebas de conocimiento cero en el contexto de los puentes.
En esta parte cubrimos cómo las Pruebas de Consenso ayudan a resolver los puentes verificando el último consenso de blockchain fuente finalizado.
Sin embargo, esta tecnología se puede ampliar aún más para verificar el consenso histórico que permite casos de uso entre cadenas más flexibles más allá de la simple conexión en este momento. Y eso es lo que exploraremos en la Parte III de nuestra serie sobre Interoperabilidad: Pruebas de almacenamiento y los casos de uso que desbloquean.