E se a blockchain pudesse guardar um segredo?

Autor convidado Mr. Haysberg explica como Midnight usa provas de conhecimento zero para verificar transações sem revelar dados privados.

By SongMarketCap

Midnight News - E se a blockchain pudesse guardar um segredo?

Imagine que sua conta bancária funcionasse assim: todos os pagamentos que você já fez, todo salário que você recebeu, todo saldo, visível para qualquer pessoa com uma conexão à internet.

Seu vizinho. Seu chefe. Um estranho que quer roubar você.

É assim que a maioria das blockchains funciona hoje.

Em 4 de novembro, @MidnightNtwrk publicou uma frase curta que acho que resume para onde isso está indo: você não precisa mais escolher entre público e privado. Existe uma terceira opção.

Este artigo explica essa opção em palavras simples. Se você é novo em cripto, vai entender. Se você desenvolve, há uma camada mais profunda em cada seção para você também.

O problema: duas escolhas ruins

Por anos, as blockchains ofereceram duas opções.

  • Cadeias públicas: qualquer pessoa pode verificar que tudo é justo. Ótimo para confiança. Mas toda a sua vida financeira fica exposta, para sempre.

  • Sistemas privados: seus dados ficam ocultos. Mas agora você precisa confiar em quem opera o sistema, e você perde a abertura que tornou a blockchain útil em primeiro lugar.

Escolha abertura ou escolha privacidade. Esse era o acordo.

A terceira opção

Midnight separa o problema em duas partes.

A rede em si permanece pública. Qualquer pessoa pode verificá-la, e seu token NIGHT também permanece público. Seus dados pessoais ficam no seu próprio dispositivo. Eles nunca são publicados na cadeia.

Em vez dos seus dados, a cadeia recebe uma prova: um pequeno pedaço de matemática que diz "as regras foram seguidas" sem mostrar o que havia dentro.

O app decide o que pode ser revelado, e para quem. Um banco, um auditor, um parceiro. Apenas o que é necessário.

Uma forma simples de imaginar: mostrar a um segurança que você tem mais de 18 anos sem mostrar seu nome, seu endereço, ou sua data exata de nascimento.

Para avançados: essa prova é uma prova de conhecimento zero. O consenso e NIGHT vivem no livro razão público, enquanto o estado do app pode ser dividido em partes públicas e privadas, e apenas provas sobre a parte privada tocam a cadeia.

Elegantna autorska kartica za Midnight News

Compact: a linguagem por trás disso

Para construir apps assim, desenvolvedores precisam de uma forma de dizer "esta parte é pública, esta parte é privada". Em Midnight essa ferramenta é uma linguagem de programação chamada Compact. Eu a cobri em detalhes em Private by Default Ep. 4.

O que importa para todos:

  • Ela se parece muito com TypeScript, uma das linguagens mais populares do mundo, então os desenvolvedores não começam do zero.

  • Você não precisa ser um criptógrafo. Você marca o que é privado e o que é público, e as ferramentas cuidam da matemática pesada.

  • É de código aberto, então qualquer um pode inspecioná-la.

Para avançados: Compact é fortemente e estaticamente tipada e limitada, então contratos não podem entrar em loop para sempre. Lançamentos públicos vivem em github.com/midnightntwrk/compact.

Como um app em Midnight funciona: o restaurante

Todo contrato Compact tem três partes. A forma mais fácil de imaginá-las é um restaurante.

  • A vitrine (ledger). O que todo mundo pode ver da rua. Informação pública, armazenada na cadeia.

  • A receita secreta (witnesses). Trancada na cozinha. Informações privadas que permanecem no seu dispositivo.

  • As regras da cozinha (circuits). O processo que transforma ingredientes em uma refeição. Em Midnight, essas regras se tornam provas, assim clientes podem confiar que a refeição foi preparada corretamente sem jamais ver a receita.

Os próprios desenvolvedores da Midnight resumem em uma frase: a lógica é pública, os dados são privados, e o resultado pode ser verificado por qualquer um.

Privado por padrão

Aqui está a parte de que eu mais gosto. Em Compact, tudo é privado a menos que você escolha o contrário.

Se um desenvolvedor quiser que uma informação se torne pública, ele precisa dizer isso de propósito. Se esquecer, o programa se recusa a compilar e aponta o local exato onde os dados vazariam.

Para avançados: isso é feito com disclose(). Qualquer valor de um witness ou argumento de circuito que flua para o estado público do ledger, um valor de retorno de um circuito exportado, ou outro contrato, deve ser envolvido em disclose(), ou o compilador o rejeita. A documentação da Midnight chama isso, em tom de brincadeira, de Witness Protection Program.

Privacidade é o cinto de segurança. Tornar público é uma escolha consciente.

Por que privacidade na verdade é segurança

Em 5 de novembro, Sebastien Guillemot (@SebastienGllmt), CTO da Midnight Foundation, publicou um post no blog com uma ideia forte: em uma blockchain, privacidade não é luxo. É segurança.

Pense no que uma cadeia totalmente pública entrega a um criminoso:

  • Uma lista das carteiras mais ricas.

  • O histórico completo de qualquer pessoa que queiram atacar.

  • Pistas para mensagens de phishing que parecem reais porque sabem o que você fez.

Se ninguém pode ver o seu saldo, ninguém pode mirar você por causa dele.

Como a Midnight esconde seu dinheiro

Você pode pensar: basta embaralhar o saldo e pronto. Não é bem assim. Se você embaralha o número 1000 da mesma forma todas as vezes, um atacante pode embaralhar números comuns com antecedência e simplesmente fazer a correspondência.

Então a Midnight faz algo mais inteligente.

Seu dinheiro é dividido em notas separadas, como cédulas em uma carteira, em vez de um total único. Cada nota é selada junto com seu montante, o tipo de token, a chave do proprietário e um segredo aleatório enorme. Esse selo é chamado de compromisso da nota.

Para quem observa, todo selo parece ruído aleatório. Uma nota que vale 1 token e uma nota que vale 1 milhão parecem iguais.

Para avançados: o compromisso é um hash sobre valor, tipo de token, chave do proprietário e um nonce aleatório grande, então o mesmo valor nominal produz muitos compromissos únicos e ataques de pré cálculo falham.

[NEWSBREAK]

Gastar sem mostrar nada

Se tudo está oculto, como a rede impede alguém de gastar o mesmo dinheiro duas vezes? Duas ferramentas:

  • Uma prova de propriedade. Quando você gasta, prova que possui uma nota válida sem revelar qual nota, quanto há nela, ou quem você é.

  • Um carimbo único chamado nullifier. Toda nota tem um. Quando você gasta, o carimbo é publicado. A rede verifica que ele nunca foi usado antes, assim a mesma nota nunca pode ser gasta duas vezes. E ninguém pode rastrear o carimbo de volta à nota original.

Pense em uma pulseira de festival que é perfurada no portão. O segurança sabe que foi usada. O segurança não sabe quem você é.

Viewing keys: úteis, mas proteja-as

A Midnight também tem viewing keys.

Uma viewing key permite ver dinheiro entrando. Ela não mostra o que você gastou ou seu saldo total. Ela não pode mover seus fundos.

Ainda assim, trate-a como uma senha e só compartilhe com apps em que confia.

A versão curta

  • Uma rede pública que todos podem verificar.

  • Seus dados ficam com você.

  • A cadeia vê selos, provas e carimbos, não o seu saldo ou histórico.

  • Os desenvolvedores decidem exatamente onde fica a linha entre público e privado, e as ferramentas impedem vazamentos por acidente.

Não público. Não privado. Uma terceira opção.

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

Ouça: Private by Default Ep. 4, sobre Compact

Assista no YouTube