¿Y si la blockchain pudiera guardar un secreto?

El autor invitado Mr. Haysberg explica cómo Midnight usa pruebas de conocimiento cero para verificar transacciones sin revelar datos privados.

By SongMarketCap

Midnight News - ¿Y si la blockchain pudiera guardar un secreto?

Imagina que tu cuenta bancaria funcionara así: cada pago que hayas hecho, cada salario que recibiste, cada saldo, visible para cualquiera con una conexión a internet.

Tu vecino. Tu jefe. Un desconocido que quiere robarte.

Así es como funcionan la mayoría de las blockchains hoy.

El 4 de noviembre, @MidnightNtwrk publicó una frase breve que creo que resume hacia dónde vamos: ya no tienes que elegir entre público y privado. Hay una tercera opción.

Este artículo explica esa opción con palabras sencillas. Si eres nuevo en cripto, lo entenderás. Si construyes, también hay una capa más profunda en cada sección para ti.

El problema: dos malas opciones

Durante años, las blockchains te dieron dos opciones.

  • Blockchains públicas: cualquiera puede comprobar que todo es justo. Genial para la confianza. Pero toda tu vida financiera queda a la vista para siempre.

  • Sistemas privados: tus datos están ocultos. Pero ahora tienes que confiar en quien opera el sistema, y pierdes la apertura que hizo útil a la blockchain desde el principio.

Elige apertura o elige privacidad. Ese era el trato.

La tercera opción

Midnight divide el problema en dos.

La red en sí permanece pública. Cualquiera puede verificarla, y su token NIGHT también permanece público. Tus datos personales se quedan en tu propio dispositivo. Nunca se publican en la cadena.

En lugar de tus datos, la cadena recibe una prueba: una pequeña pieza matemática que dice "se siguieron las reglas" sin mostrar lo que había dentro.

La app decide qué puede revelarse y a quién. Un banco, un auditor, un socio. Solo lo necesario.

Una forma simple de imaginarlo: mostrarle a un portero que eres mayor de 18 sin mostrar tu nombre, tu dirección ni tu fecha exacta de nacimiento.

Para los avanzados: esta prueba es una prueba de conocimiento cero. El consenso y NIGHT viven en el libro mayor público, mientras que el estado de la app puede dividirse en partes públicas y privadas, y solo las pruebas sobre la parte privada tocan la cadena.

Elegantna autorska kartica za Midnight News

Compact: el lenguaje detrás

Para construir apps así, los desarrolladores necesitan una forma de decir "esta parte es pública, esta parte es privada". En Midnight esa herramienta es un lenguaje de programación llamado Compact. Lo cubrí en detalle en Private by Default Ep. 4.

Lo que importa para todos:

  • Se parece mucho a TypeScript, uno de los lenguajes más populares del mundo, así que los desarrolladores no empiezan desde cero.

  • No necesitas ser criptógrafo. Marcas qué es privado y qué es público, y las herramientas se encargan de la parte matemática pesada.

  • Es de código abierto, así que cualquiera puede inspeccionarlo.

Para los avanzados: Compact es de tipado fuerte y estático y acotado, por lo que los contratos no pueden entrar en bucles infinitos. Las versiones públicas están en github.com/midnightntwrk/compact.

Cómo funciona una app de Midnight: el restaurante

Cada contrato en Compact tiene tres partes. La forma más fácil de imaginarlas es un restaurante.

  • El escaparate (ledger). Lo que todos pueden ver desde la calle. Información pública, almacenada en la cadena.

  • La receta secreta (witnesses). Guardada en la cocina. Información privada que se queda en tu dispositivo.

  • Las reglas de la cocina (circuits). El proceso que convierte ingredientes en un plato. En Midnight, estas reglas se convierten en pruebas, así los clientes pueden confiar en que el plato se hizo correctamente sin ver nunca la receta.

Los propios desarrolladores de Midnight lo resumen en una línea: la lógica es pública, los datos son privados y el resultado puede ser verificado por cualquiera.

Privado por defecto

Aquí viene la parte que más me gusta. En Compact, todo es privado a menos que elijas lo contrario.

Si un desarrollador quiere que una parte de la información se vuelva pública, tiene que indicarlo a propósito. Si lo olvida, el programa se niega a compilar y señala el lugar exacto donde se filtraría el dato.

Para los avanzados: esto se hace con disclose(). Cualquier valor de un witness o argumento de circuito que fluya al estado público del ledger, a un valor de retorno de un circuito exportado o a otro contrato, debe estar envuelto en disclose(), o el compilador lo rechaza. La documentación de Midnight bromea llamando a esto el Witness Protection Program.

La privacidad es el cinturón de seguridad. Hacerlo público es una elección consciente.

Por qué la privacidad en realidad es seguridad

El 5 de noviembre, Sebastien Guillemot (@SebastienGllmt), CTO de la Midnight Foundation, publicó una entrada de blog con una idea contundente: en una blockchain, la privacidad no es un lujo. Es seguridad.

Piensa en lo que una cadena totalmente pública le entrega a un delincuente:

  • Una lista de las wallets más ricas.

  • El historial completo de cualquiera a quien quieran apuntar.

  • Pistas para mensajes de phishing que parecen reales porque saben lo que hiciste.

Si nadie puede ver tu saldo, nadie puede apuntarte por él.

Cómo Midnight oculta tu dinero

Podrías pensar: basta con ofuscar el saldo y ya. No exactamente. Si ofuscas el número 1000 de la misma manera siempre, un atacante puede ofuscar de antemano números comunes y simplemente emparejarlos.

Así que Midnight hace algo más inteligente.

Tu dinero se divide en notas separadas, como billetes en una billetera, en lugar de un total grande. Cada nota se sella junto con su monto, el tipo de token, la clave del propietario y un secreto aleatorio enorme. Ese sello se llama note commitment.

Para cualquiera que observe, cada sello parece ruido aleatorio. Una nota de 1 token y una nota de 1 millón se ven iguales.

Para los avanzados: el commitment es un hash sobre el valor, el tipo de token, la clave del propietario y un nonce aleatorio grande, de modo que el mismo valor nominal produce muchos commitments únicos y fracasan los ataques de precomputación.

[NEWSBREAK]

Gastar sin mostrar nada

Si todo está oculto, ¿cómo evita la red que alguien gaste el mismo dinero dos veces? Dos herramientas:

  • Una prueba de propiedad. Cuando gastas, demuestras que posees una nota válida sin revelar cuál nota, cuánto tiene ni quién eres.

  • Un sello de un solo uso llamado nullifier. Cada nota tiene uno. Cuando gastas, el sello se publica. La red comprueba que nunca se haya usado antes, así que la misma nota nunca puede gastarse dos veces. Y nadie puede rastrear el sello hasta la nota original.

Piensa en una pulsera de festival que se perfora en la entrada. El guardia sabe que se usó. El guardia no sabe quién eres.

Viewing keys: útiles, pero protégelas

Midnight también tiene viewing keys.

Una viewing key te permite ver el dinero que entra. No muestra lo que gastaste ni tu saldo total. No puede mover tus fondos.

Aun así, trátala como una contraseña y compártela solo con apps en las que confíes.

La versión corta

  • Una red pública que todos pueden verificar.

  • Tus datos se quedan contigo.

  • La cadena ve sellos, pruebas y marcas, no tu saldo ni tu historial.

  • Los desarrolladores deciden exactamente dónde se traza la línea entre público y privado, y las herramientas evitan que filtren por accidente.

Ni público. Ni privado. Una tercera opción.

Autor invitado · Mr. Haysberg (Vision & Vibe, @visionandvibehq)

Escucha: Private by Default Ep. 4, sobre Compact

Ver en YouTube