Contente

  • Introdução

  • O que são transações confidenciais?

  • Uma visão geral da criptografia envolvida

  • Do que são capazes as transações confidenciais?

  • Conclusão


Introdução

Muitas vezes é considerado crítico para o funcionamento de uma blockchain que o sistema seja transparente. Isto significa que cada nó da rede deve ser capaz de armazenar uma cópia e verificar se nenhuma regra foi violada. Para muitos livros-razão distribuídos, qualquer pessoa pode fazer upload de um explorador de blocos on-line que permitirá pesquisar blocos, transações e endereços.

Do ponto de vista da privacidade, esta não é uma situação ideal. Num sistema como o Bitcoin, qualquer transação pode estar vinculada àquela que a precede. As moedas não são tecnicamente fungíveis, o que significa que podem estar vinculadas a transações específicas. Ninguém pode impedi-lo de enviar bitcoin, mas sua transação pode ser rejeitada se as moedas envolvidas nela tiverem passado anteriormente por um “endereço na lista negra”.

Na pior das hipóteses, a falta de fungibilidade poderia impactar profundamente os próprios fundamentos do sistema. As moedas “limpas” poderiam desenvolver um prémio sobre o seu valor, enquanto as antigas, devido à sua história, tornar-se-iam menos valiosas.

No Bitcoin, a privacidade é frequentemente superestimada. Não apenas as moedas podem ser rastreadas, mas também os usuários. Estes gozam de um “pseudonimato” (em vez de nomes, são visíveis os endereços públicos), o que não é isento de defeitos. Técnicas sofisticadas de análise podem, com um nível crescente de precisão, agregar endereços na tentativa de desanonimizar entidades na rede.

Uma das propostas de atualização para tornar as transações verdadeiramente privadas são as Transações Confidenciais.


O que são transações confidenciais?

As Transações Confidenciais (CT) foram abordadas pela primeira vez em 2013 por Adam Back, CEO da Blockstream; e mais tarde Gregory Maxwell -desenvolvedor de Bitcoin- expandiria sua análise. Maxwell destacaria os problemas mencionados na seção anterior (isto é, fungibilidade e "pseudonimato" fraco) e proporia uma solução. Os valores enviados poderiam ser blindados do resto da rede, para que apenas as partes envolvidas na transação pudessem conhecer esses dados.

Em circunstâncias normais (com transações visíveis publicamente), é fácil para um nó verificar se o valor recebido não excede o valor enviado. Se Alice quiser enviar 0,3 BTC para Bob, ela pegará uma saída não gasta (digamos 1 BTC) e a dividirá em duas partes: 0,3 que ela enviará para Bob e 0,69 que ela enviará de volta para si mesma (a diferença O que está faltando corresponde à dedução da comissão mineira).

Para os outros nós isso é álgebra simples: 1 é maior que 0,3 + 0,69, as assinaturas estão todas corretas e as entradas de Alice ainda não foram gastas em nenhum outro lugar, portanto a transação deve ser válida. Quando as quantidades ficam ofuscadas, porém, as coisas não são mais tão triviais. Como você pode avaliar se uma quantidade desconhecida é igual ou superior à soma de duas outras quantidades desconhecidas?


Uma visão geral da criptografia envolvida

Para ocultar dados, é necessária criptografia. No entanto, os métodos tradicionais são comparáveis ​​ao armazenamento de documentos num cofre: uma vez trancados no interior, ficam inutilizáveis ​​até que o cofre seja removido. O que precisamos para que as Transações Confidenciais funcionem é um cofre digital que não revele o seu conteúdo, mas cujas propriedades possam ser verificadas por alguém de fora.

A resposta a esta questão está na criptografia homomórfica, especificamente, em um esquema denominado “compromisso Pedersen”. Esse tipo de criptografia permite que alguém de fora execute operações em dados criptografados (que não pode ver) para diversos fins.

Um hash comum pode ser usado para confirmar dados que você deseja revelar mais tarde. Imagine que você deseja anunciar um concurso nas redes sociais, no qual quem adivinhar sua exchange preferida ganhará um prêmio de 0,01 BTC. Os participantes podem duvidar que você consiga ver as respostas após o término da competição e você pode escolher uma troca que não tenha sido mencionada.

O que você poderia fazer é fornecer aos seus seguidores um hash: uma sequência de números e caracteres aparentemente aleatórios que mapeiam uma entrada específica. Você passa sua troca por uma função para obter um determinado resultado. Ilustraremos com o algoritmo SHA256:


f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191


Olhando para isso, você não tem ideia de qual foi a entrada. Você também não pode reverter a função para obtê-la. No entanto, se você souber que a entrada era “Binance”, poderá verificar facilmente se o seu hash corresponde ao mencionado acima. Dessa forma, seus seguidores têm a certeza de que você não mudará sua resposta ao final da competição, pois isso produziria um resultado totalmente diferente.

No entanto, realisticamente, isto não é muito seguro. Embora seus seguidores não possam fazer engenharia reversa do algoritmo, eles podem criar uma lista de negociações potenciais, fazendo hash de cada uma delas até encontrar uma correspondência. Podemos reduzir a probabilidade disso adicionando alguns dados aleatórios chamados fatores de cegueira aos dados que iremos fazer o hash.

Se inserirmos “Binance é minha exchange favorita, eu adoro ela mais do que qualquer outra exchange 2#43Wr”, fica muito mais difícil para um oponente adivinhar (e para 0,01 BTC, é certamente improvável que alguém tente).

Um compromisso Pedersen permite-nos adicionar as contribuições por trás dos compromissos. Como Maxwell ilustra:


C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)

Onde BF é o fator de cegamento e D são os dados.


Existem mais algumas etapas a partir daqui que envolvem criptografia de curva elíptica e teste de intervalo, mas a ideia básica é que o usuário tenha um forte comprometimento com seu endereço. Ao enviar fundos, são criados dois compromissos adicionais (um para o endereço de alteração a ser devolvido ao usuário e outro para o endereço de destino).

Ninguém sabe quanto é enviado, mas pode verificar se os compromissos de troca e destino (o lado esquerdo da equação de Maxwell) somam-se ao endereço de origem (o lado direito da equação). Se for avaliado corretamente, a transação do usuário é válida, pois as entradas podem ser mostradas como iguais às saídas.


Do que são capazes as transações confidenciais?

Se as transações confidenciais fossem implementadas em Bitcoin, desfrutaríamos de um sistema muito mais privado. Tanto as entradas como as saídas seriam mascaradas da rede mais ampla e as entradas no livro-razão seriam ofuscadas, mas os nós ainda seriam capazes de verificar a sua autenticidade. Com este enorme aumento na privacidade, os bitcoins podem tornar-se efetivamente fungíveis, uma vez que a análise on-chain não revela mais a história de uma determinada unidade.

Quanto à questão de saber se as transações confidenciais serão integradas no protocolo, não parece provável neste momento. Com esta funcionalidade adicional, as transações são muito maiores do que as padrão: dado o espaço limitado do bloco, isto só aumentaria a procura. Exigiria também que a maioria dos participantes concordasse em alterar o código, uma tarefa que tradicionalmente se tem revelado difícil.


Em conclusão

As transações confidenciais tiveram algumas iterações em outras criptomoedas e cadeias laterais de Bitcoin. Por exemplo, Monero os utiliza em combinação com construções chamadas assinaturas de anel para obter anonimato e fungibilidade. A sidechain líquida os implementa para maior privacidade, e o MimbleWimble os estende aos mesmos endpoints.

Pelos benefícios que trazem, as Transações Confidenciais têm a contrapartida de uma presença maior. As criptomoedas muitas vezes enfrentam problemas de escalabilidade e desempenho na camada base, e transações maiores não são atraentes para todos. Dito isto, os defensores da privacidade acreditam que é essencial ocultar os valores das transações e que os participantes realmente permitam que a criptomoeda sirva como dinheiro fungível.