Construir sobre blockchains siempre ha sido complicado. Tienes que aprender una forma de pensar con las peculiaridades de Solidity, lidiar con los límites de gas y errores extraños o pasar mucho tiempo descubriendo pruebas de conocimiento cero. La Red Midnight quería facilitar a los desarrolladores la creación de aplicaciones productivas. Por eso crearon Compact, un lenguaje que se parece y se siente como TypeScript.

Compact es el lenguaje de contratos inteligentes para la blockchain de Midnight. Su nombre proviene del significado de "compacto" como un acuerdo vinculante. Se supone que un contrato inteligente son reglas exigibles en las que todos pueden confiar. Compact te encuentra donde ya estás con una sintaxis que se siente cómoda si has escrito TypeScript o JavaScript moderno.

  • Las variables están fuertemente tipadas

  • El compilador captura errores antes de que implementes cualquier cosa

  • Los mensajes de error tienen sentido

No necesitas ser un experto en criptografía para usar Compact. El lenguaje oculta la mayoría de esa complejidad para que puedas enfocarte en lo que la aplicación debería hacer.

Un contrato Compact tiene cuatro partes:

  • Declaraciones de tipo. Tus formas de datos personalizadas

  • Declaraciones de libro mayor. El estado que todos pueden ver

  • Declaraciones de testigo. Funciones auxiliares

  • Definiciones de circuito. La lógica real que se convierte en pruebas de conocimiento cero

El estado público soporta tipos de colección prácticos, como contadores, conjuntos, mapas y listas. Midnight te da una forma abreviada para incrementar un contador, como `counter += 1`.

Los circuitos son donde ocurre la magia. Cuando escribes un circuito exportado, el compilador Compact lo convierte en un circuito de conocimiento cero. Cualquiera puede verificar que se siguieron las reglas sin ver las entradas.

Midnight tiene una biblioteca que cubre cosas comunes como tipos Maybe y Either, direcciones de usuario y firmas de curva elíptica. Cuando compilas un contrato Compact obtienes:

  • Circuitos de conocimiento cero para cada función exportada

  • Una implementación de JavaScript para simulación y pruebas unitarias

  • Archivos de declaración de TypeScript (.d.ts) para código tipado

El ejemplo clásico del contrato contador es un buen punto de partida. Declaras un contador, escribes un circuito para incrementarlo, compilas. Tienes una forma privada de aumentar un número, en la cadena.

Lo que destaca de Compact es la carga mental que añade. Te enfocas en las reglas de negocio, la experiencia del usuario y la lógica de la aplicación. La fuerte tipificación captura errores temprano. La sintaxis familiar lo hace fácil de usar.

Midnight construyó Compact porque creen que los contratos inteligentes privados no deberían ser complicados. Deberían sentirse como escribir código. Limpio, seguro y predecible. Mientras aún desbloquean características poderosas. Compact es una forma sencilla de escribir código que se lee de forma natural, compilarlo y dejar que la blockchain maneje la parte de confianza y privacidad.

#night $NIGHT @MidnightNetwork