Construir em blockchains sempre foi complicado. Você tem que aprender uma forma de pensar com as peculiaridades do Solidity, lidar com limites de gás e erros estranhos ou gastar muito tempo descobrindo provas de conhecimento zero. A Midnight Network queria facilitar para os desenvolvedores a construção de aplicações produtivas. É por isso que criaram o Compact, uma linguagem que parece e se sente como TypeScript.

Compact é a linguagem de contrato inteligente para a blockchain do Midnight. Seu nome vem do significado de "compacto" como um acordo vinculativo. Um contrato inteligente deve ser regras aplicáveis que todos possam confiar. Compact encontra você onde você já está com uma sintaxe que parece confortável se você já escreveu TypeScript ou JavaScript moderno.

  • As variáveis são fortemente tipadas

  • O compilador captura erros antes que você implemente qualquer coisa

  • As mensagens de erro fazem sentido

Você não precisa ser um especialista em criptografia para usar o Compact. A linguagem esconde a maior parte dessa complexidade para que você possa se concentrar no que a aplicação deve fazer.

Um contrato Compact tem quatro partes:

  • Declarações de tipo. Suas formas de dados personalizadas

  • Declarações de livro-razão. O estado que todos podem ver

  • Declarações de testemunha. Funções auxiliares

  • Definições de circuito. A lógica real que é transformada em provas de conhecimento zero

O estado público suporta tipos de coleção prática, como contadores, conjuntos, mapas e listas. O Midnight oferece uma forma abreviada para incrementar um contador, como `counter += 1`.

Os circuitos são onde a mágica acontece. Quando você escreve um circuito exportado, o compilador Compact o transforma em um circuito de conhecimento zero. Qualquer um pode verificar se as regras foram seguidas sem ver as entradas.

Midnight tem uma biblioteca que cobre coisas comuns como tipos Maybe e Either, endereços de usuários e assinaturas de curvas elípticas. Quando você compila um contrato Compact, você recebe:

  • Circuitos de conhecimento zero para cada função exportada

  • Uma implementação em JavaScript para simulação e testes unitários

  • Arquivos de declaração TypeScript (.d.ts) para código de tipo

O exemplo clássico de contrato contador é um bom ponto de partida. Você declara um contador, escreve um circuito para incrementá-lo e compila. Você tem uma maneira privada de aumentar um número, na cadeia.

O que se destaca sobre o Compact é a sobrecarga mental que ele adiciona. Você se concentra nas regras de negócios, na experiência do usuário e na lógica da aplicação. A forte tipagem captura erros cedo. A sintaxe familiar torna fácil de usar.

Midnight construiu o Compact porque acredita que contratos inteligentes privados não deveriam ser complicados. Eles deveriam parecer como escrever código. Limpo, seguro e previsível. Ao mesmo tempo em que desbloqueia recursos poderosos. O Compact é uma maneira direta de escrever código que lê naturalmente, compila e deixa a blockchain lidar com a parte de confiança e privacidade.

#night $NIGHT @MidnightNetwork