Compartir este artículo

La tendencia hacia la Privacidad en blockchain: pruebas de conocimiento cero

George Samman, ex CMO de Fuzo, LOOKS cómo soluciones como las pruebas de conocimiento cero podrían preservar la Privacidad en las plataformas blockchain.

Una de las tendencias más importantes en el mundo blockchain, especialmente en lo que respecta a los servicios financieros y, en particular, a las operaciones en los Mercados de capitales, ha sido la necesidad de Privacidad y confidencialidad en las operaciones diarias. Esto ha llevado a que las soluciones blockchain se diseñen teniendo en cuenta esta necesidad primordial. Esto ha dado lugar a todas las soluciones blockchain privadas que se desarrollan hoy en día.

Al construir para la Privacidad y la confidencialidad, existen desventajas. Principalmente, se pierde transparencia, la principal característica de la primera cadena de bloques: Bitcoin. En su diseño original, una cadena de bloques es una máquina de transparencia. En este sistema, las computadoras están distribuidas y ONE entidad controla la red. Además, cualquiera puede ser validador y cualquiera puede escribir o leer en la red. Los clientes y validadores pueden ser anónimos y todos los datos se almacenan localmente en cada nodo (replicación). Esto hace públicos todos los datos de las transacciones.

CONTINÚA MÁS ABAJO
No te pierdas otra historia.Suscríbete al boletín de Crypto Long & Short hoy. Ver Todos Los Boletines

La seguridad de Bitcoin es posible gracias a un proceso de verificación en el que todos los participantes pueden validar las transacciones de forma individual y autónoma. Si bien Bitcoin aborda el problema de la Privacidad emitiendo direcciones seudónimas, aún es posible averiguar quiénes son sus direcciones mediante diversas técnicas.

Esto es el polo opuesto de lo que sucede en el mundo de la cadena de bloques privada, donde la descentralización y la transparencia no se consideran necesarias para muchos casos de uso de los Mercados de capital.

Lo importante es la Privacidad y la confidencialidad, la latencia (velocidad) y la escalabilidad (capacidad de mantener un alto rendimiento a medida que se añaden más nodos a la cadena de bloques). Las transacciones cifradas de nodo a nodo (n2n) implican que solo las dos partes involucradas en la transacción reciben datos. En muchos de estos sistemas, existen opciones para que nodos de terceros (reguladores) participen en la transacción.

Se están desarrollando otros sistemas para fines similares, que han sidoescrito sobre este blogTienen un generador de bloques designado que recopila y valida las transacciones propuestas, agrupándolas periódicamente en una propuesta de nuevo bloque. El consenso lo proporciona un generador que aplica las reglas (validaciones) acordadas por los nodos (núcleos de la cadena) al bloque y a los firmantes designados.

En estos sistemas, la descentralización simplemente no es necesaria, ya que todos los nodos son partes conocidas. En las cadenas de bloques privadas, los nodos deben ser conocidos para cumplir con ciertos requisitos regulatorios y de cumplimiento. La atención se ha centrado en cómo preservar la Privacidad y la confidencialidad, a la vez que se logra velocidad, escalabilidad y estabilidad de la red. Por lo tanto, existen vías de recurso legal incluso entre partes que no necesariamente confían entre sí.

Identificación criptográfica fuerte y duradera

¿Qué son la criptografía y el cifrado?

Como se mencionó anteriormente, dado que la Privacidad y la confidencialidad son fundamentales, el cifrado se ha convertido en un elemento clave para todas las cadenas de bloques. Muchas de estas soluciones utilizan técnicas criptográficas avanzadas que ofrecen sólidas garantías matemáticamente demostrables para la Privacidad de los datos y las transacciones.

En una publicación reciente del blog titulada "Un amable recordatorio sobre el cifrado" Por Kathleen Breitman de R3CEV, ella proporciona sucintamente una excelente definición práctica:

El cifrado se refiere a la operación de camuflar texto plano, información que se va a ocultar. El conjunto de reglas para cifrar el texto se denomina algoritmo de cifrado. El funcionamiento de un algoritmo depende de la clave de cifrado, o de una entrada al algoritmo con el mensaje. Para que un usuario obtenga un mensaje a partir de la salida de un algoritmo, debe existir un algoritmo de descifrado que, al utilizarse con una clave de descifrado, reproduzca el texto plano.

Si este cifrado utiliza texto cifrado para descifrar el texto plano, se obtiene el cifrado homomórfico, que (combinado con técnicas de firma digital) constituye la base de las técnicas criptográficas que se analizarán en esta publicación. El cifrado homomórfico permite realizar cálculos sobre datos cifrados sin necesidad de descifrarlos previamente. En otras palabras, esta técnica permite preservar la Privacidad de los datos o transacciones mientras se realizan los cálculos, sin revelarlos. Solo quienes posean las claves de descifrado podrán acceder a la información exacta de esos datos o transacciones.

El cifrado homomórfico significa que descifrar(cifrar(A) + cifrar(B)) == A+B. Esto se conoce como homomórfico bajo adición.

Por lo tanto, un cálculo realizado sobre los datos cifrados cuando se descifran es igual a un cálculo realizado sobre los datos cifrados.

La pregunta clave que se plantea es:¿Cómo se puede convencer a un sistema de un cambio de estado sin revelar demasiada información?

Después de todo, las cadenas de bloques buscan compartir un (cambio de) estado, no información. En una cadena de bloques, si un proceso de negocio se encuentra en el estado X y ahora pasa al estado Y, esto debe registrarse y demostrarse, preservando la Privacidad y evitando compartir mucha información. Además, este cambio de estado debe realizarse legalmente; de ​​lo contrario, se produce una vulneración de la Privacidad .

Las técnicas criptográficas como las pruebas de conocimiento cero (ZKP), que utilizan diferentes tipos de cifrado homomórfico, separan:

1) llegar a una conclusión sobre un estado de cosas

2) la información necesaria para llegar a ese estado de cosas

3) demostrar que ese estado es válido.

El resto de esta publicación analizará cómo la tendencia hacia la Privacidad ha llevado al uso de técnicas criptográficas, algunas antiguas y otras nuevas, para cifrar las transacciones y los datos asociados a ellas, de todos excepto de las partes involucradas. El enfoque se centrará en las Pruebas de Conocimiento Cero, los SNARK zk, Hawk, las firmas confidenciales, los canales estatales y el cifrado homomórfico.

El problema de la Privacidad en una cadena de bloques es la principal brecha para la implementación de todas las soluciones criptográficas que analizamos a continuación.

Fuera de una cadena de bloques, existen ejemplos de cifrado homomórfico en la práctica. CryptDB es un ejemplo de sistema que utiliza cifrado homomórfico y otras técnicas de cifrado que preservan atributos para consultar bases de datos de forma segura. Se utiliza en producción en Google y Microsoft, entre otros.

Sin embargo, tiene limitaciones: es necesario definir con antelación los tipos de consultas que se desean y es fácil filtrar datos. CryptDB proporciona confidencialidad para el contenido de los datos y para los nombres de columnas y tablas; sin embargo, CryptDB no oculta la estructura general de la tabla, el número de filas, los tipos de columnas ni...tamaño aproximado de los datos en bytesUn método que CryptDB utiliza para cifrar cada dato es el "onioning". Esto permite que cada dato se coloque en capas de cifrado cada vez más robustas.

Firmas confidenciales

Gregory Maxwell diseñó una herramienta criptográfica (CT) para mejorar la Privacidad y seguridad de las cadenas de bloques similares a Bitcoin. Esta herramienta mantiene los montos transferidos visibles solo para los participantes de la transacción. Las CT hacen que los montos y saldos de las transacciones sean privados en una cadena de bloques mediante cifrado, específicamente. cifrado homomórfico aditivoLo que los usuarios pueden ver son los saldos de sus propias cuentas y las transacciones que reciben. Se necesitan pruebas de conocimiento cero para demostrar a la cadena de bloques que ninguna de las salidas cifradas contiene un valor negativo.

El problema con las transacciones confidenciales es que solo permiten pruebas muy limitadas, como se mencionó anteriormente. zkSNARKs y Zero Knowledge Proofs (ZKPs), que se describirán en detalle a continuación, le permiten probar prácticamente cualquier tipo de validación de transacciones mientras mantiene todas las entradas privadas.

Pruebas de conocimiento cero (ZKP)

Las Pruebas de Conocimiento Cero (PCC) no son nuevas. Se conceptualizaron por primera vez en 1985 en el artículo "La Complejidad del Conocimiento de los Sistemas de Pruebas Interactivas" (https://groups.csail.mit.edu/cis/pubs/shafi/1985-stoc.pdf). Una PCC es una técnica criptográfica que permite a dos partes (un demostrador y un verificador) demostrar la veracidad de una proposición sin revelar información adicional sobre ella. En el caso de las criptomonedas y las cadenas de bloques, generalmente se trata de datos sobre información transaccional.

Una prueba de conocimiento cero debe satisfacer tres propiedades:

  • Lo completo: Si la afirmación es verdadera, el verificador honesto (es decir, ONE que sigue el protocolo correctamente) será convencido de este hecho por un demostrador honesto.
  • Solvencia:Si la afirmación es falsa, ningún verificador tramposo puede convencer al verificador honesto de que es verdadera, excepto con alguna pequeña probabilidad.
  • Conocimiento cero: Si la afirmación es verdadera, ningún verificador fraudulento aprende nada más que este hecho. Esto se formaliza demostrando que todo verificador fraudulento tiene un simulador que, dada únicamente la afirmación a probar (y sin acceso al verificador), puede producir una transcripción que "LOOKS " una interacción entre el verificador honesto y el verificador fraudulento.

Las dos primeras son propiedades de carácter más general.sistemas de prueba interactivosEl tercero es lo que hace que la prueba sea de conocimiento cero.

zk-SNARKs

Un zk-SNARK (Argumentos de Conocimiento Concisos y No Interactivos de Conocimiento Cero) es una prueba de Conocimiento Cero que permite demostrar un hecho computacional sobre datos sin revelarlos. Los zk-SNARK son la herramienta criptográfica subyacente utilizada en Zcash y Hawk, que construyen cadenas de bloques con ZKP, y se explicarán más adelante. En el caso de Zcash, estos SNARK se utilizan para verificar transacciones y, en el caso de Hawk, para verificar contratos inteligentes. Esto se hace protegiendo la Privacidad de los usuarios.

Un zk-SNARK es una prueba de conocimiento de conocimiento cero no interactiva, concisa, cuyas pruebas son muy cortas y fáciles de verificar. Se pueden considerar como pequeños circuitos lógicos que necesitan generar una prueba de declaración para verificar cada transacción. Para ello, toman una instantánea de cada transacción, generan una prueba y luego deben convencer al receptor de que el cálculo se realizó correctamente sin revelar ningún dato excepto la propia prueba. El funcionamiento básico de una ejecución de SNARK consiste en introducir una entrada codificada en este circuito, la cual puede descifrarse.

Dado que los zk-SNARK se pueden verificar rápidamente y las pruebas son pequeñas, pueden proteger la integridad del cálculo sin sobrecargar a quienes no participan. Cabe destacar que esta Tecnología está comenzando a madurar, pero aún presenta limitaciones. Generar pruebas requiere un uso intensivo de la CPU y tarda hasta un minuto en generar nuevas pruebas, por lo que el escalado sigue siendo un problema pendiente de resolver.

Los primeros puntos de datos para zk-SNARKs serán Zcash , que es una combinación de estado distribuido y prueba de que usted es dueño de los activos.

Zcash

Zcash puede describirse como un libro de contabilidad cifrado, abierto, sin permisos y replicado. Es un protocolo criptográfico para almacenar datos privados en una cadena de bloques pública. Zcash puede considerarse una extensión del protocolo Bitcoin . Básicamente, Zcash añadió algunos campos al formato de transacción de Bitcoin para permitir transacciones cifradas.

Zcash utiliza SNARKs (ZKPs) para cifrar todos los datos y solo proporciona claves de descifrado a las partes autorizadas para acceder a ellos. Esto no era posible en una blockchain pública hasta ahora, ya que, si se cifraba todo anteriormente, los mineros no podían verificar la validez de las transacciones. Los ZKPs lo han hecho posible al permitir que el creador de una transacción pruebe su veracidad sin revelar la dirección del remitente, la dirección del destinatario ni el importe de la transacción.

Zooko describe esto diciendo que Bitcoin tiene tres columnas: las tres mencionadas anteriormente (dirección del remitente, dirección del receptor e importe de la transacción), mientras que Zcash tiene cuatro. La cuarta columna, la prueba, T la dirección del remitente, la dirección del receptor y el importe transferido, pero sí sabe que nadie podría haber creado la prueba que acompaña a los valores cifrados a menos que posea una clave Secret con valor suficiente para cubrir el importe de la transacción. Esto demuestra que los datos cifrados cumplen correctamente los criterios de validez. Esto permite evitar gastos duplicados y transacciones con valores inferiores a cero.

Zcash es prácticamente igual que Bitcoin. Los mineros y los nodos completos validan las transacciones. Zcash utiliza POW, un sistema en el que los mineros verifican las ZKP asociadas a cada transacción y reciben una recompensa por validarlas. Los nodos completos son iguales, excepto que, si se tienen las claves privadas, se puede detectar si algunas transacciones contienen fondos Para ti. Los SNARK permiten que los mineros rechacen una transacción si su clave privada no contiene suficiente dinero.

Al mantener todos los datos privados excepto la cuarta columna, se evita que la información se filtre a una cadena de bloques privada, lo que permite que todos vean información sobre las transacciones. Zcash tiene transparencia selectiva Mientras que Bitcoin tiene transparencia obligatoria. Esto significa que Zcash puede revelar información específica a personas específicas mediante permisos. Revela transacciones específicas que cualquiera que las consulte puede verificar en la cadena de bloques.

Algunas diferencias con elLibro blanco de Zcash incluir:

En Zcash , el valor se transmite mediante notas, que especifican un importe y una clave de pago. Esta clave forma parte de una dirección de pago, que es el destino al que se pueden enviar las notas. Al igual que en Bitcoin, esta se asocia a una clave privada que permite gastar las notas enviadas a la dirección; en Zcash, esto se denomina clave de gasto.

Una dirección de pago incluye dos claves públicas: una clave de pago que coincide con la de las notas enviadas a la dirección y una clave de transmisión para un esquema de cifrado asimétrico de clave privada. «Clave privada» significa que los textos cifrados no revelan información sobre la clave con la que fueron cifrados, excepto al titular de la clave privada correspondiente, que en este contexto se denomina clave de visualización. Esta función se utiliza para comunicar notas de salida cifradas en la cadena de bloques a su destinatario, quien puede usar la clave de visualización para escanear la cadena de bloques en busca de notas dirigidas a él y, a continuación, descifrarlas.

La base de las propiedades de Privacidad de Zcash es que, al gastar un billete, quien lo gasta solo prueba que se ha revelado algún compromiso, sin revelar ONE. Esto implica que un billete gastado no puede vincularse a la transacción en la que se creó.

Zcash es lo que se conoce como un sistema de pagos anónimos descentralizados (DAP). Un DAP permite a los usuarios pagarse directamente entre sí de forma privada: la transacción correspondiente oculta el origen, el destino y el importe transferido.

En Zcash, las transacciones son inferiores a 1 kB y su verificación tarda menos de 6 ms, lo que las hace mucho más eficientes que Zerocoin, menos anónimas, y competitivas con Bitcoin. Sin embargo, la Privacidad lograda es significativamente mayor que con Bitcoin. Desanonimizar Bitcoin se ha vuelto mucho más fácil gracias a servicios que rastrean y monitorean los movimientos de Bitcoin y los datos asociados. Los servicios de mezclador permiten cambiar las monedas a medida que se mueven por el sistema a través de una entidad central, pero esto aún no es suficiente.

El Libro blanco de Zcashestados:

Las mezclas presentan tres limitaciones: (i) el retraso para reclamar las monedas debe ser amplio para permitir que se mezclen suficientes; (ii) la mezcla puede rastrear las monedas; y (iii) la mezcla puede robar monedas. Para los usuarios con "algo que ocultar", estos riesgos pueden ser aceptables. Sin embargo, los usuarios legítimos típicos (1) desean KEEP sus hábitos de gasto en privado, (2) son reacios al riesgo y no desean dedicar un esfuerzo continuo a proteger su Privacidad, y (3) a menudo no son suficientemente conscientes de su Privacidad comprometida.

Las principales motivaciones para las ZKP y el protocolo Zcash son 1) Privacidad y 2) fungibilidad. La fungibilidad consiste en poder sustituir unidades individuales de algo, como una mercancía o dinero, por una cantidad equivalente. Esto puede ser un verdadero problema cuando algunas unidades de valor se consideran menos valiosas por considerarse "sucias". Ocultar el historial de metadatos T que una moneda con un historial negativo sea rechazada por un comerciante o una plataforma de intercambio. Gregory Maxwell afirmó: " La Privacidad insuficiente también puede resultar en una pérdida de fungibilidad (algunas monedas se consideran más aceptables que otras), lo que socavaría aún más la utilidad de Bitcoin como dinero".

Se espera que Zcash lanzamiento pronto Y con ello, el bloque génesis de la blockchain de Zcash . Esto permitirá, al igual que la blockchain de Bitcoin , que cualquier persona en el mundo pueda minar Zcash. Será un sistema abierto y sin permisos (totalmente descentralizado). Los usuarios podrán enviarlo a cualquier persona utilizando Privacidad de conocimiento cero.

El uso de técnicas criptográficas de vanguardia por parte de ZCash conlleva riesgos considerables. Un ataque criptográfico que permita falsificar pruebas de conocimiento cero permitiría a un atacante crear moneda ilimitada de forma invisible y devaluar Zcash. Recientemente se han detectado y solucionado ataques de este tipo. Afortunadamente, las técnicas de ocultación de metadatos utilizadas en Zcash están más reforzadas en producción y pueden considerarse menos riesgosas.

Halcón

Andrew Miller en sulibro blanco: "Hawk: El modelo blockchain de criptografía y contratos inteligentes que preservan la privacidad" ha desarrollado un sistema de contrato inteligente programable que funciona de la misma manera que Zcash para contratos inteligentes.

Hawk no almacena transacciones financieras en la blockchain y mantiene en privado el código del contrato, los datos enviados al contrato y el dinero enviado y recibido por el contrato del público. Solo la prueba es visible, y toda la demás información útil permanece oculta. Al igual que Zcash, la transparencia en Hawk es selectiva y no debería ser utilizada por todos los contratos inteligentes, sino que se basa en casos de uso y preferencias de las partes involucradas. También busca abordar los problemas de Privacidad y fungibilidad de forma similar al protocolo Zcash .

El documento técnico de Hawk hace un excelente trabajo al describir la motivación para la seguridad contractual que busca brindar para las transacciones financieras:

Mientras que la Privacidad en cadena protege la Privacidad de las partes contractuales frente al público (es decir, las partes no involucradas en el contrato financiero), la seguridad contractual protege a las partes del mismo acuerdo contractual entre sí. Hawk asume que las partes contractuales actúan de forma egoísta para maximizar sus propios intereses financieros. En particular, pueden desviarse arbitrariamente del protocolo prescrito o incluso cancelar el contrato prematuramente. Por lo tanto, la seguridad contractual es un concepto multifacético que abarca no solo los conceptos criptográficos de confidencialidad y autenticidad, sino también la equidad financiera ante comportamientos fraudulentos y de cancelación.

Según Andrew Miller, Hawk se basa en varias primitivas criptográficas. Utiliza la misma biblioteca de prueba de conocimiento cero que Zcash, llamada libsnark. Hawk también utiliza implementaciones personalizadas de una función hash basada en lattice y cifrado de clave pública. Hawk utiliza la herramienta jSnark de código abierto.

En Hawk, cada parte genera sus propias claves Secret . Miller afirmó que:Para cada contrato, existe también un parámetro público de confianza, similar a Zcash. La única forma de generar estos parámetros es mediante un proceso que implica la generación de un valor Secret en un paso intermedio, que debe borrarse al final del protocolo. Parafraseando a Zcash, es como un "subproducto tóxico" del procedimiento de configuración y, como todos los residuos industriales, debe eliminarse de forma segura. Hay muchas opciones... podríamos hacer lo que hace Zcash y usar un cálculo multipartito para generar estos parámetros, simplemente dejar que lo haga una parte de confianza (esta parte solo necesita usarse una vez y puede desconectarse después), o usar hardware confiable como SGX.

Miller ha indicado que existen algunas diferencias entre los contratos de Ethereum y los de Hawk. A diferencia de Ethereum, el lenguaje de entrada para los contratos privados en Hawk es código C. Un contrato privado de Hawk no es un proceso con estado de larga duración como un contrato de Ethereum , sino un contrato único que se ejecuta por fases. Primero recibe las entradas de cada parte y luego calcula las salidas para cada una. Una vez calculadas las salidas, el contrato finaliza y deja de tener saldo. Por lo tanto, se trata de un modelo de computación ligeramente diferente. Hawk admite tanto los contratos privados descritos anteriormente como los contratos públicos, que son exactamente iguales a los de Ethereum. (Sin embargo, no se ofrecen garantías de Privacidad para los contratos públicos).

Al igual que en Zcash, existen algunos desafíos para escalar la blockchain y optimizar los esquemas criptográficos para que sean eficientes al usar ZKPs. Hawk intenta realizar la mayor cantidad posible de computación fuera de la cadena. Esto se debe a que, en las blockchains públicas, la computación en cadena se replica en cada nodo, lo que ralentiza drásticamente el proceso. Generar la prueba puede tardar varios minutos (lo cual es largo) y puede ser costoso. Los nodos que verifican la prueba solo tardan milisegundos en hacerlo. Datos del informe técnico: En Hawk, cada participante en un contrato de Hawk consume aproximadamente un minuto de tiempo de CPU. La computación en cadena tarda entre 9 y 20 milisegundos.

Hawk aún no ha anunciado una fecha de lanzamiento ya que todavía están trabajando en optimizar sus herramientas de compilación de snark para mejorar el rendimiento.

Canales estatales

Los canales de estado permiten canales de pago fuera de la cadena y permiten actualizaciones a cualquier tipo de aplicación que cambie de estado. Al igual que en Lightning Network, dos o más usuarios pueden intercambiar pagos que normalmente requerirían una transacción en la cadena de bloques sin necesidad de publicarlos en ella ni esperar confirmaciones, excepto al configurar o cerrar el canal.

Vitalik Buterin lo explica en su artículo para R3CEV "Revisión de la plataforma Ethereum"

Los canales estatales son una estrategia que busca resolver el desafío de escalabilidad manteniendo el protocolo subyacente de la cadena de bloques, pero cambiando su uso: en lugar de usar la cadena de bloques como la capa de procesamiento principal para cada tipo de transacción, la cadena de bloques se usa únicamente como una capa de liquidación, procesando solo la transacción final de una serie de interacciones y ejecutando cálculos complejos solo en caso de disputa.

Los canales de estado no son una solución perfecta; en particular, está menos claro cómo se extienden a aplicaciones multiusuario masivas, y no ofrecen mejoras de escalabilidad sobre la cadena de bloques original en términos de su capacidad de almacenar un tamaño de estado grande; solo aumentan el rendimiento de las transacciones de facto.

Sin embargo, tienen una serie de beneficios, quizás el más importante de los cuales es que además de ser una solución de escalabilidad también son una solución de Privacidad , ya que la cadena de bloques no ve ninguno de los pagos o contratos intermedios, excepto la liquidación final y cualquier disputa, y una solución de latencia, ya que las actualizaciones del canal de estado entre dos partes son instantáneas, mucho más rápidas que cualquier solución directa en la cadena de bloques, privada o pública, posiblemente podría ser, y potencialmente incluso más rápidas que los enfoques centralizados, ya que las actualizaciones del canal de A a B pueden ser seguras sin pasar por un servidor centralizado.

Los canales estatales tienen como objetivo abordar los problemas de escalabilidad, los problemas de Privacidad y los retrasos de confirmación asociados con las cadenas de bloques públicas, al tiempo que permiten que los actores que no necesariamente confían entre sí realicen transacciones.

¿Es realmente necesaria una cadena de bloques? ¿Es necesario el consenso?

Para muchas personas, todos estos métodos criptográficos que MASK todos los datos transaccionales resultarán sorprendentes. Se supone que la blockchain es una máquina transparente donde cualquiera puede unirse a la red y, como resultado, acceder a toda la información de la misma. Incluso en las blockchains privadas, existe una visión más abierta de los datos que con los protocolos mencionados en esta publicación.

Otra pregunta que podría surgir es si el consenso es realmente necesario, dado que todo es privado excepto la prueba. Si la prueba solo se da entre las dos partes involucradas en la transacción, ¿por qué se necesita el consenso y por qué usar una blockchain pública? Puede parecer contradictorio, pero la respuesta es sí: se necesita una blockchain pública, al igual que el consenso, debido a la Privacidad de las pruebas. En esencia, se requiere transparencia total para mantener la Privacidad de las pruebas.

Las ZKP y las cadenas de bloques se complementan. No se puede usar una para reemplazar a la otra. Una cadena de bloques se utiliza para garantizar que toda la red pueda consensuar un estado, que puede estar cifrado o no. Las ZKP permiten tener confianza en algunas propiedades de ese estado. En este escenario, se necesita una fuente de verdad canónica: una clave de vista que revele todas las transacciones entrantes, pero no las salientes. Para que esto suceda, se necesita un libro de contabilidad completamente descentralizado con consenso donde todos estén de acuerdo con los datos escritos.

Por ejemplo, Zcash tiene datos que contienen información inútil e ilegible para la mayoría de los actores. Es una base de datos de compromisos y datos opacos. Es simplemente una forma de sincronizar datos entre actores. (Zooko Wilcox ha declarado públicamente que si Chainalysis representara esto gráficamente, solo sería una serie de marcas de tiempo de cuándo se produjo una transacción). En casos donde el número de transacciones es bajo, los ataques de tiempo podrían revelar al originador de las transacciones; imaginemos que esto es equivalente a un ONE nodo conectado a una red Tor.

El verdadero énfasis está en la billetera de los actores, ya que les permite gastar dinero y transferir activos. En Bitcoin, se puede usar una clave privada para transferir Bitcoin. Ahora es más. Se trata de una clave privada y un conjunto de secretos que se KEEP para comprobar pruebas previas y generar nuevas pruebas que se utilizan para convencer a otros. Para ello, se necesita un libro de contabilidad completamente descentralizado con consenso donde todos estén de acuerdo con los datos escritos.

Una cadena de bloques es necesaria porque se requiere una capa de consenso de todos: es necesario contar con un acuerdo de pruebas en el libro mayor para transferir activos posteriormente. Si estas pruebas no están disponibles en todos los nodos, no se puede convencer a nadie de ellas cuando se necesite transferir activos posteriormente. Estas pruebas deben almacenarse de forma abierta para que las partes receptoras puedan considerarlas verificadas y aceptadas.

Hay dos capas diferentes: 1) Es necesario llegar a un acuerdo sobre qué pruebas acepta todo el mundo. 2) Es necesario llegar a un acuerdo sobre lo que se puede probar y lo que sucede con la prueba de conocimiento cero y lo que sucede una vez que se conoce la información.

¿Cómo se genera una prueba y se transmite esa información a la siguiente persona? La clave es obtener la autoridad de la transacción añadiendo una prueba o metadatos a la misma con algún tipo de script condicional (declaraciones if-then para la aceptación de la transacción). Este código contiene reglas de validez de la transacción. Una persona ve la prueba desde fuera, pero no sabe si la regla se ha activado o no.

Ahora que tiene Privacidad de los ZKP, para cumplir con la transacción, debe demostrar que cumple con las reglas. Para ello, puede tomar dos pruebas y crear nuevas que la persona que las reciba pueda mostrar y verificar que sean aceptadas por toda la red. Una vez que las pruebas tengan un significado para usted según las reglas, puede aceptar que se probaron en el pasado y que pueden usarse en el futuro para realizar transacciones y transferir dinero.

Limitaciones

Los ZKP están dejando atrás la teoría y convirtiéndose en una plataforma de producción. Ahora es el momento de comprobar su viabilidad. Apenas ahora se están probando en el mundo real y aún presentan importantes problemas de escalabilidad.

El trabajo de desarrollar una prueba es enorme y conlleva costos computacionales enormes. Como se mencionó anteriormente, en Zcash , para crear una prueba, se transfiere dinero de otra persona, lo que toma entre 45 segundos y 1 minuto en una computadora potente. Actualmente, se está trabajando para aumentar la eficiencia de los SNARK y los ZKP, permitiendo más pruebas por segundo o pruebas más elaboradas en el mismo tiempo.

Es necesario realizar cambios profundos a nivel arquitectónico en las DLT: comprender el conocimiento de la arquitectura ZKP requiere entender las limitaciones de lo que se puede probar y a qué escala.

Este artículo fue publicado previamente en el sitio web del autor.blogy se ha vuelto a publicar aquí con permiso.

Aviso legal:CoinDesk es una subsidiaria de Digital Currency Group, que tiene una participación accionaria en Zcash.

Imagen de cerraduras y llavesvía Shutterstock

Nota: Las opiniones expresadas en esta columna son las del autor y no necesariamente reflejan las de CoinDesk, Inc. o sus propietarios y afiliados.

George Samman

George Samman es cofundador y director de operaciones de <a> BTC</a>, la primera plataforma de trading exclusivamente de bitcoin del mundo. Fue gestor de cartera sénior de Wall Street y estratega de mercado, además de analista técnico. Posee la certificación de Técnico de Mercado Colegiado (CMT). George, un operador experimentado, cuenta con más de ocho años de experiencia en los Mercados financieros.

Picture of CoinDesk author George Samman