zkLedger es una tecnología que demuestra que es posible mejorar la seguridad, velocidad, privacidad y descentralización, utilizando la criptografía y otras tecnologías asociadas a la cadena de bloques.
La privacidad en blockchain siempre es un campo en constante investigación, y una clara muestra es zkLedger, una tecnología que pretende aprovechar lo mejor del mundo de las ZKP o Pruebas de Conocimiento Cero, para construir plataformas blockchain enfocadas en la seguridad y la privacidad.
Pero ¿Qué diferencia a las zkLedger del resto de tecnología blockchain que ya existen? ¿Cuáles son sus ventajas? ¿Cómo funciona?
zkLedger, una blockchain de alta velocidad, privacidad y seguridad
El desarrollo de zkLedger comenzó con un paper presentado en el evento 15th USENIX Symposium on Networked Systems Design and Implementation (NSDI 2018) por Neha Narula (MIT Media Lab), Willy Vasquez (Universidad de Texas) y Madars Virza (MIT Media Lab). Durante el evento, Narula describió a zkLedger de la siguiente forma:
zkLedger, es el primer sistema diseñado para proteger la privacidad de los participantes del libro mayor y proporcionar una auditoría rápida y demostrablemente correcta en toda circunstancia, que está especialmente pensada para empresas, bancos y entes financieros.
La idea en este sentido es clara: crear un sistema que pueda ser fácilmente auditado, sin que merme en ningún momento la privacidad de las personas que usan dicho sistema.
Para lograr esto, zkLedger apoya su sistema de auditoría en un esquema de criptografía que utiliza pruebas de conocimiento cero no interactivas de tipo Schnorr. Esta es una alternativa a las conocidas zk-SNARK y zk-STARK. La principal diferencia es que las ZKP del tipo Schnorr, no requieren de una configuración confiable y solo dependen de supuestos criptográficos ampliamente utilizados. Además, estos supuestos criptográficos son más sencillos de programar y, por tanto, más fáciles de depurar e implementar.
Integridad es la clave de zkLedger
Por otro lado, zkLedger proporciona un sistema de integridad, cuya base se encuentra en que el ledger, o libro mayor, no puede ocultar transacciones del auditor, y los participantes pueden usar mecanismos para producir y verificar transacciones rápidamente. Esta característica ofrece dos ventajas:
- La capacidad de auditoría de la red garantiza que todo en el ledger es visible para el auditor (o aquel quien tenga este rol dentro del sistema), dejando al resto con acceso necesario para verificar que una transacción se realizó y nada más. Es decir, información como el “grafo o enlace de transacciones”, cantidades, direcciones o cualquier dato que ponga en riesgo la privacidad de las partes, está disponible de forma “abierta” al público.
- Ofrece una velocidad de procesamiento muy alta, dado que las pruebas Schnorr son más cortas, fáciles de generar y procesar. Además, el uso de caché hace que el sistema de transacciones y auditoría sea rápido. Un buen ejemplo de ello, es que un proceso de auditoría sobre una zkLedger puede llevar cerca de 10 milisegundos para verificar 100 mil transacciones.
Auditorías, el punto fuerte de zkLedger
Lo anterior se ve potenciado debido a que; zkLedger cuenta desde sus bases y código con una serie de funcionalidades pensadas para facilitar las auditorías. Por ejemplo, zkLedger tiene funciones de auditoría nativas, que le permiten obtener fácilmente sumas, promedios móviles, variaciones, desviación estándar y proporciones.
De esta manera, un auditor puede usar estas primitivas para medir el apalancamiento financiero, la liquidez de los activos, las exposiciones al riesgo de contraparte y la concentración del mercado, para el sistema en su conjunto o para los participantes individuales.
Tal como se ve, este tipo de tecnología resulta especialmente útil para empresas, bancos, servicios financieros que desean y requieren de este nivel de auditoría con el fin de cumplir con exigencias regulatorias, pero al mismo tiempo, necesitan la flexibilidad y potencia de la blockchain para sus operaciones.
Principales características de zkLedger
Entre las principales características de zkLedger podemos mencionar las siguiente:
Es una blockchain con amplias capacidades de privacidad y auditoría
zkLedger tiene el objetivo de mantener un alto nivel de privacidad y auditoría en sus sistemas. Para lograr ambos objetivos, zkLedger basa su funcionamiento criptográfico en un nuevo tipo de pruebas ZKP del tipo Schnorr, para ser más precisos, en las Pruebas Generales de Schnorr y un sistema de compromisos Pedersen.
Los compromisos Pedersen, le permiten a zkLedger mantener la privacidad del sistema y al mismo tiempo aceptar el funcionamiento de un sistema auditor. Esto es posible porque los compromisos de Pedersen le permiten a zkLedger, crear estructuras a nivel de consenso de la red, que luego el auditor puede verificar y hacer su trabajo. El auditor en todo caso, solo podrá acceder a la información que necesita, y que está dentro del sistema de consenso de la red, negando acceso privilegiado a cualquier información no permitida. En un sentido, el esquema Pedersen solo ofrece información de trabajo al auditor.
La información ofrecida por el esquema Pedersen está protegida en todo caso por una ZKP del tipo Schnorr (Pruebas Generales de Schnorr). Así la información ofrecida es solo un resultado criptográfico que el auditor puede verificar en la red, sin que en realidad tenga acceso a los datos reales de nuestras operaciones.
Una blockchain de alta eficiencia
El uso de compromisos Pedersen y ZKP del tipo Schnorr, también hace de zkLedger una red creada para ser altamente eficiente. Schnorr es una tecnología diseñada con el principio de ser rápida de generar y verificar que ocupe muy poco espacio de almacenamiento. En este caso, hacer uso de Schnorr en zkLedger garantiza que los nodos no deben ser extremadamente potentes para hacer su trabajo. Además, los requisitos de almacenamiento se ven drásticamente reducidos.
El consenso de verificación de zkLedger implementa un sistema de roles bastante interesante que ofrece transacciones muy rápidas. En primer lugar, los participantes no tienen que interactuar para construir las pruebas de la transacción, en su lugar, el gastador puede crear la transacción por sí solo. En este punto, si un actor malintencionado intenta codificar valores incorrectos en los compromisos de otros actores, estos fallaran ya que solo las partes que tienen la información correspondiente al gasto (el gastador que construyó la transacción, el cobrador que sabe cuánto tiene que pagar) pueden responder con certeza a la prueba criptográfica y la auditoría posterior de la red.
A este sistema se le conoce como token de auditoría y pruebas de coherencia de zkLedger, y puede ser verificado de forma pública, mejorando la seguridad en los pagos, y al mismo tiempo, haciendo que sean muy rápidos. Además, para evitar la generación de monedas que no existen, zkLedger incluye una serie de reglas de consenso que evitan este comportamiento (al mismo estilo de lo que sucede en Monero (XMR)) creando una serie de pruebas de rangos que evitan este ataque.
Prueba de Balance, el algoritmo de consenso de zkLedger
Una de las principales características de zkLedger es su algoritmo de consenso conocido como Proof of Balance (PoBal) o Prueba de Balance. El Proof of Balance, tiene como objetivo dos cosas:
- Que zkLedger sea una red de alta velocidad.
- Que sea imposible ocultar balances o información de las cuentas.
De este modo, Proof of Balance cumple con ambas necesidades usando una serie de pruebas criptográficas diseñadas para tal fin. En primer lugar, una transacción en zkLedger es una entrada para cada “banco”, esa entrada tiene una serie de compromisos criptográficos únicos que los unen de forma inequívoca a dicha transacción. El objetivo de este primer sistema es garantizar que:
- Una transacción de transferencia no puede crear ni destruir activos.
- El “banco de gastos” debe dar su consentimiento para la transferencia.
En esta situación, zkLedger ha creado una serie de pruebas criptográficas para garantizar que el gastador puede manejar esos fondos y usarlos con libertad y autonomía. La primera de esas pruebas es la Prueba de Saldos que permite saber que el gastador realmente tiene en su poder activos para la operación.
A continuación, se realiza una segunda prueba que permite asegurar que el “banco” realmente tiene los activos para transferir. Esto es posible gracias a la Prueba de Activos, la idea de esta prueba es demostrar que realmente el usuario cuenta con los activos dentro del banco de gastos para realizar la transacción.
Diferencia con otros modelos
En una blockchain normal (como en Bitcoin (BTC)) esto es posible por las UTXO y el árbol de transacciones que es creado por las transacciones anteriores hasta llegar a la coinbase.
Sin embargo, zkLedger no sigue este sistema, de hecho, zkLedger no hace público el árbol de transacciones en ningún momento, así que la Prueba de Activos, se encarga de comprobar criptográficamente que el usuario tiene activos y que se puede realizar dicha transacción sin problemas de doble gasto o generación de monedas inexistentes.
Finalmente, la Prueba de Coherencia se encarga de que los bancos no puedan agregar datos al libro mayor que impidan a otro banco poder abrir sus compromisos para el Auditor. De esta forma, se protege al sistema para que todos puedan participar en el mismo en igualdad de condiciones.
Velocidad de transacción
Proof of Balance (PoBal) es la clave de la alta velocidad de operación de zkLedger. En pruebas de laboratorio, zkLedger fue capaz de ofrecer un rendimiento muy superior a otras tecnologías blockchain conocidas. En una red de 12 servidores Xeon (4 Core) y 24 GB de RAM, zkLedger fue capaz de:
- Auditar 100 mil transacciones en 6 milisegundos, en modo online.
- Auditar 100 mil transacciones en 3500 milisegundos, en modo offline.
- Crear una entrada (transacción) en 8 milisegundos. Esto traducido a segundos es 125 transacciones por segundo, pero la configuración escala en modo lineal. Además, el sistema es paralelizable aumentando la capacidad de procesamiento a medida que la red aumenta de tamaño.
Esto pone a zkLedger, a nivel de redes privadas de alta velocidad como el caso de HyperLedger, con la salvedad de que su sistema es más abierto y público de cara a la verificación de información.
Casos de uso de zkLedger
Como comentamos en un principio, el principal caso de uso de zkLedger se centra en la oportunidad de ofrecer infraestructura blockchain a bancos, empresas y otros entes financieros. La utilidad de la tecnología en este ambiente es indudable y es donde más deslumbran sus capacidades de auditoría, velocidad y propiedades de privacidad.
Un buen caso de uso de la tecnología sería la creación de una CBDC o moneda digital del banco central, donde realmente se respeten los principios de privacidad que el dinero y estos sistemas deben tener en todo momento.
Otro ambiente que puede beneficiarse de este sistema es el de las empresas de seguros. En estos casos, zkLedger puede garantizar la idoneidad de la información compartida entre las empresas de seguros, los bancos y otros entes, todo a la vez que se mantiene la auditabilidad del sistema en todos los sentidos, sin tener que revelar información sensible entre los actores involucrados, incluyendo los clientes y las condiciones en las que sus cláusulas de seguro fueron activadas.
Curso de Ethereum 101
Nivel medioEn este Curso de Ethereum 101 profundizarás en tus conocimientos cripto adentrándote en el ecosistema Ethereum y conociendo todo sobre sus características, evolución y herramientas.