Blockchain 1.webp.webp

O papel das provas de conhecimento zero em transações seguras

Introdução

Vivemos num mundo de informação, onde os dados são o novo petróleo. Portanto, com dados, tudo e qualquer coisa é possível. Esta realidade baseada em dados traz responsabilidades significativas, especialmente no que diz respeito a garantir que as informações privadas e sensíveis permaneçam protegidas. Tecnologia Blockchain é uma ferramenta poderosa que prioriza a transparência em vez da privacidade. Embora a transparência seja essencial para a confiança num sistema descentralizado, ela pode expor detalhes sensíveis, o que nem sempre é desejável, especialmente em aplicações que envolvem transações confidenciais ou informações pessoais.

Para superar essas limitações, os desenvolvedores introduziram uma série de tecnologias que melhoram a privacidade, como Provas de Conhecimento Zero (ZKP), zk-SNARKs, moedas de privacidade como Monero e Zcashe técnicas avançadas de criptografia como criptografia homomórfica (HE).

Estas tecnologias mantêm um equilíbrio entre transparência e confidencialidade do usuário.

Neste artigo, exploraremos como funcionam essas ferramentas de aumento de privacidade e suas aplicações no desenvolvimento de blockchain.

Então vamos começar!

Você deve estar pensando que Blockchain é a opção mais segura e transparente no domínio da tecnologia, certo? Mas ainda tem algumas falhas. Por exemplo, vamos considerar o Bitcoin, é uma moeda transparente (Blockchain Público). Onde seus endereços são pseudônimos. Mas há um problema! Os mineradores ainda podem ter o poder de acessar os dados no blockchain antes que eles estejam oficialmente na cadeia. Assustador, certo?!

Portanto, para evitar todos esses casos, optamos por opções de aumento de privacidade e uma delas é o ZPks. Vamos dar uma olhada nisso!

Provas de Conhecimento Zero e zk-SNARKs

O que são provas de Conhecimento Zero?

A prova de conhecimento zero é uma protocolo de criptografia onde há um provador e um verificador. Aqui, o Provador tem de convencer o verificador de que alguma afirmação é verdadeira, sem revelar quaisquer outros factos ou informações além do mero facto de que a afirmação é verdadeira.

Vamos entender isso de forma mais intuitiva tomando um exemplo da vida real:

Então, digamos que você tem um amigo Carl que é daltônico e você tem duas bolas (uma vermelha e outra verde) e precisa que ele distinga as duas sem realmente revelar qual bola é qual.

Então aqui você é o provador e Carl é o verificador. Agora você pede a Carl para colocar as duas bolas atrás e ele pode escolher uma bola aleatoriamente e fazer uma pergunta simples: Eu troquei as bolas? Este procedimento pode então ser feito iterativamente e com 50% de probabilidade Carl deve se convencer (“completude”) de que as bolas são de fato de cores diferentes.

Então, como o nome sugere, você provou a validade de sua afirmação e seu amigo nunca descobre qual bola é verde e qual é vermelha; na verdade, ele não adquire nenhum conhecimento sobre como distinguir as bolas. Portanto, esse conhecimento também pode ser transferido para terceiros.

Exemplo de código:

# Simulação simples de ZKP
de hashlib importar sha256

# Suponha que o provador conheça a senha ‘secreta’
senha_secreta = “blockchain_rocks”
hash_of_secret = sha256(secret_password.encode()).hexdigest()

# Prover quer provar conhecimento sem revelar ‘secret_password’
def provar_conhecimento(senha_adivinhada):
retornar sha256(guessed_password.encode()).hexdigest() == hash_of_secret

# O verificador confirma o conhecimento do provador combinando hashes
print(prove_knowledge(“blockchain_rocks”)) # Retorna True sem
revelando ‘senha_secreta’

zk-SNARKs: Argumentos de conhecimento sucintos e não interativos de conhecimento zero

zk-SNARKs significa Argumentos de conhecimento sucintos e não interativos de conhecimento zero. É uma construção de prova onde o provador tem que provar a verdade ou a sua posse sem interagir com o verificador. Esta é apenas uma versão mais específica do ZKPs.zk-SNARK é mais útil quando não pode haver possibilidade de comunicação entre duas partes, por exemplo, transações online sem comunicação em tempo real.

Este conceito é um pouco complicado de entender, em suma, podemos dizer que você diz a outra pessoa que conhece o segredo dela sem dizer qual é realmente o segredo, mas em vez disso prová-lo.

Você sabia? que zk-SNARKs são implementados em Zcash, uma moeda de privacidade conhecida por suas transações protegidas?

Exercício: Construa um zk-SNARK com libsnark

Use libsnark para configurar e verificar um zk-SNARK simples ou consulte a documentação da biblioteca para exemplos de projetos de construção de prova zk-SNARK.

Agora a questão é como funciona esse ZKP não interativo?

  • Configuração: zk-SNARKs requerem uma configuração única para chaves criptográficas, usadas para construir provas.
  • Geração de Prova: O provador usa informações privadas para gerar uma prova sucinta que pode ser verificada publicamente.
  • Verificação: Os verificadores podem confirmar que o provador possui certo conhecimento sem conhecer os detalhes.

Moedas de privacidade

Moedas de privacidade são criptomoedas projetadas especificamente para priorizar a privacidade e ocultar a identidade do usuário.

Monero

Monero (XMR) é uma criptomoeda com maior privacidade. Ele usa um blockchain especial que oculta detalhes da transação, tornando quase impossível para estranhos ver quem está enviando ou recebendo Monero, quanto está sendo enviado ou quaisquer saldos de contas. Isso mantém o anonimato e garante que todas as unidades do Monero sejam fungíveis.

Fungível (intercambiável): significa que um Monero é sempre igual a outro, sem história rastreável.

Como o Monero garante transações privadas?

Monero implementa técnicas exclusivas como segue para garantir transações privadas. Vamos dar uma olhada nessas técnicas:

Assinaturas de anel: Combina a assinatura da transação de um usuário com outras para ofuscar a verdadeira origem.

Exemplo de código:

importar aleatoriamente
# Lista de chaves públicas para participantes
participantes = (“Alice”, “Bob”, “Charlie”, “Dave”)

# Escolha um participante aleatório como “remetente”
remetente = random.choice(participantes)

# Misturar a assinatura do remetente com outras
assinaturas_mistas = random.sample(participantes, len(participantes))

print(“Grupo de assinaturas de toque:”, mixed_signatures)
print(“Remetente (oculto):”, remetente)

Endereços furtivos: Cria endereços exclusivos e de uso único para cada transação, garantindo que apenas o remetente e o destinatário conheçam o destino.

Transações confidenciais de anel (RingCT): Oculta o valor da transação para evitar que terceiros vinculem as transações.

Zcash

Zcash (ZEC) é uma moeda de privacidade que é construído Base de código do Bitcoin. Ele compartilha muitas semelhanças com o Bitcoin, como transações regulares e transparentes, mas também oferece uma opção para transações protegidas.

Transação protegida: Transações protegidas em Zcash são transações privadas que usam um criptográfico método chamado zk-SNARKs (argumentos de conhecimento sucintos e não interativos de conhecimento zero) para manter os detalhes da transação completamente confidenciais.

Conseqüentemente, o Zcash suporta transações transparentes e protegidas com Endereços T(Endereços transparentes que funcionam como padrão Bitcoin) e Endereços Z (Endereços protegidos que ocultam detalhes da transação).

As transações protegidas do Zcash são excelentes para cenários que exigem confidencialidade, como Transações B2B na gestão da cadeia de abastecimento, onde a privacidade dos dados é crucial.

Configurar

#Instale o cliente Zcash
sudo apt-get update && sudo apt-get install zcash
# Crie um endereço protegido
zcash-cli z_getnewaddress
#Envie para o endereço protegido
zcash-cli z_sendmany

Criptografia homomórfica e seu papel no Blockchain

Criptografia homomórfica (HE) é um tipo de criptografia que permite realizar cálculos em dados enquanto eles ainda estão criptografado. Isso significa que você não precisa descriptografar os dados para trabalhar com ele. Quando você finalmente descriptografa os resultados, é como se tivesse feito os cálculos nos dados originais não criptografados.

Esta técnica é especialmente útil para a privacidade, pois permite que dados confidenciais sejam armazenados e processados ​​em servidores externos (como na nuvem) sem expô-los.

Existem dois tipos principais de técnicas de criptografia homomórfica:

  • Criptografia Parcialmente Homomórfica (PHE): HE parcial permite apenas operações específicas nos dados, por exemplo, adição e multiplicação.
  • Criptografia Totalmente Homomórfica (FHE): FHE oferece suporte a operações arbitrárias em dados criptografados. Mas é intensivo em recursos

Código de exemplo:

da importação do selo EncryptionParameters, SEALContext, IntegerEncoder
#Definir parâmetros de criptografia
parms = parâmetros de criptografia (scheme_type.BFV)
parms.set_poly_modulus_degree(1024)
parms.set_coeff_modulus(coeff_modulus_128(1024))

# Exemplo de adição criptografada
soma_criptografada = add_valores_criptografados(enc1, enc2)
print(“Soma Criptografada:”, soma_criptografada)

Conclusão

Tecnologias que melhoram a privacidade, como Provas de Conhecimento Zero (ZKPs), zk-SNARKs, moedas de privacidade e criptografia homomórfica estão redefinindo o que é possível no blockchain, criando um equilíbrio essencial entre privacidade e transparência. Para os desenvolvedores, esta evolução traz oportunidades interessantes. Ao integrar esses recursos de privacidade em aplicações descentralizadasos desenvolvedores podem atender às necessidades de setores como finanças, saúde e IoT, onde a confidencialidade é necessária.

Continue aprendendo e boa codificação!!

Isenção de responsabilidade e aviso de risco

As informações fornecidas neste conteúdo pela Coinpedia Academy são apenas para conhecimento geral e fins educacionais. Não se trata de aconselhamento financeiro, profissional ou jurídico e não endossa nenhum produto ou serviço específico. A organização não se responsabiliza por quaisquer perdas que você possa sofrer. E os criadores possuem os direitos autorais das imagens e vídeos usados. Se você achar algum conteúdo publicado impróprio, sinta-se à vontade para nos informar.

Fonte

Compartilhe:

Facebook
Twitter
LinkedIn
Pinterest
Pocket
WhatsApp

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *