Uma Introdu√ß√£o √†s Transa√ß√Ķes Confidenciais
P√°gina Inicial
Artigos
Uma Introdu√ß√£o √†s Transa√ß√Ķes Confidenciais

Uma Introdu√ß√£o √†s Transa√ß√Ķes Confidenciais

Avançado
Publicado em Feb 10, 2020Atualizado em Dec 28, 2022
6m

Conte√ļdo


Introdução

A transpar√™ncia do sistema √©, frequentemente, considerada um fator cr√≠tico para o funcionamento de uma blockchain. Isso significa que todos os n√≥s da rede podem armazenar uma c√≥pia e verificar se nenhuma regra est√° sendo violada. Em muitos ledgers distribu√≠dos, qualquer pessoa pode usar um explorador de blocos online que permita pesquisar blocos, transa√ß√Ķes e endere√ßos.

Em termos de privacidade, isso n√£o √© o ideal. Em um sistema como o da Bitcoin, todas as transa√ß√Ķes podem ser vinculadas a uma anterior. As moedas n√£o s√£o tecnicamente fung√≠veis, o que significa que cada uma pode ser vinculada a transa√ß√Ķes espec√≠ficas. Ningu√©m pode impedir que voc√™ envie Bitcoin, mas eles podem recusar sua transa√ß√£o caso essas moedas tenham passado, anteriormente, por um endere√ßo da lista de rejeitados.

Na pior das hipóteses, a falta de fungibilidade pode gerar grande impacto nas próprias bases do sistema. Moedas "limpas" (honestas) podem ser premiadas, enquanto as mais antigas seriam menos valiosas, dada a sua história.

Em termos de privacidade, usu√°rios da rede Bitcoin costumam sofrer com a grande exposi√ß√£o. N√£o apenas as moedas podem ser rastreadas, mas tamb√©m os pr√≥prios usu√°rios. Eles fazem uso de pseud√īnimos (n√£o divulgam nomes, apenas endere√ßos p√ļblicos), mas isso n√£o garante sua privacidade. Existem t√©cnicas sofisticadas de an√°lise que podem, com precis√£o, agrupar endere√ßos para identificar entidades de uma rede.

As Transa√ß√Ķes Confidenciais representam uma atualiza√ß√£o proposta para fazer com que as transa√ß√Ķes sejam verdadeiramente privadas.


O que s√£o Transa√ß√Ķes Confidenciais?

As Transa√ß√Ķes Confidenciais (CT) foram discutidas pela primeira vez em 2013 pelo CEO da Blockstream, Adam Back. Mais tarde, o desenvolvedor de Bitcoin, Gregory Maxwell, incrementou o uso das Transa√ß√Ķes Confidenciais. Maxwell descreveu os problemas mencionados na primeira se√ß√£o (em rela√ß√£o √† fungibilidade e privacidade) ‚Äď e prop√īs uma solu√ß√£o. Os valores transferidos poderiam ser protegidos (ocultos) da rede mais ampla, para que apenas as partes envolvidas na transa√ß√£o soubessem quanto havia sido enviado.

Em circunst√Ęncias normais (com transa√ß√Ķes publicamente vis√≠veis), √© f√°cil para um n√≥ verificar se o valor recebido n√£o excede o valor enviado. Se Alice deseja enviar 0,3 BTC para Bob, ela usa um output (sa√≠da) que n√£o foi gasto (vamos considerar 1 BTC) e o divide em duas partes: 0,3 para enviar a Bob e 0,69 para ela (o restante √© utilizado para pagar a taxa de minera√ß√£o).

√Č uma conta simples para os outros n√≥s: 1 √© maior que 0,3 + 0,69, as assinaturas est√£o todas corretas e os inputs (entradas) de Alice ainda n√£o foram gastos em outros lugares, portanto a transa√ß√£o deve ser v√°lida. Quando os valores s√£o ocultos, no entanto, esse processo n√£o √© t√£o trivial. Como seria poss√≠vel avaliar se uma quantia desconhecida √© igual ou superior √† soma de duas outras quantias desconhecidas?


Uma vis√£o geral da criptografia relacionada

Para ocultar os dados, a encripta√ß√£o √© necess√°ria. No entanto, os m√©todos tradicionais s√£o semelhantes a colocar documentos em um cofre: ap√≥s trancados, tornam-se inutiliz√°veis at√© que sejam removidos do cofre. O que precisamos para que as Transa√ß√Ķes Confidenciais funcionem √© um cofre digital cujo conte√ļdo n√£o √© revelado, mas cujas propriedades podem ser verificadas por algu√©m de fora.

A resposta est√°, especificamente, na encripta√ß√£o homom√≥rfica, em um esquema chamado de "Pedersen commitment". Esse tipo de encripta√ß√£o permite que usu√°rios externos executem opera√ß√Ķes em dados encriptados (que eles n√£o podem ver) para diversas finalidades.¬†

Um hash regular pode ser usado para confirmar dados que você deseja revelar posteriormente. Suponha que você queira anunciar uma competição nas redes sociais, onde aquele que adivinhar sua exchange favorita ganhará um prêmio de 0,01 BTC. Os usuários podem não confiar na validade da sua competição, alegando que você pode simplesmente olhar as respostas após o encerramento e revelar uma exchange que não foi mencionada por ninguém.

Voc√™ poderia fornecer um hash aos seus seguidores: uma sequ√™ncia de n√ļmeros e caracteres aparentemente aleat√≥rios que se referem a um input (entrada) espec√≠fico. Atrav√©s de uma fun√ß√£o, voc√™ transforma a informa√ß√£o da sua exchange para obter um determinado output (sa√≠da). Ilustraremos com o algoritmo SHA256:


f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191


Olhando para isso, voc√™ n√£o tem ideia de qual foi o input (entrada). E voc√™ n√£o pode reverter a fun√ß√£o para obt√™-lo. Entretanto, se voc√™ souber que a entrada foi ‚ÄúBinance‚ÄĚ, √© poss√≠vel verificar facilmente se o hash corresponde ao mostrado acima. Dessa forma, seus seguidores t√™m a garantia de que voc√™ n√£o mudar√° sua resposta no final da competi√ß√£o ‚Äď o que produziria um output (sa√≠da) totalmente diferente.

Realisticamente, por√©m, isso n√£o √© muito seguro. Embora seus seguidores n√£o possam fazer engenharia reversa do algoritmo, eles poderiam criar uma lista de poss√≠veis exchanges, obtendo o hash de cada uma delas at√© encontrar a correspondente. √Č poss√≠vel reduzir a probabilidade desse tipo de a√ß√£o, adicionando alguns dados aleat√≥rios chamados de "blinding factor" (fator ofuscante) aos dados que usaremos para criar a fun√ß√£o hash.¬†

Se usarmos o input ‚ÄúA Binance √© a minha exchange favorita, eu a amo mais do que qualquer outra exchange 2#43Wr‚ÄĚ, ser√° muito mais dif√≠cil para um usu√°rio adivinhar a resposta da forma citada anteriormente (por 0,01 BTC, seria improv√°vel que algu√©m tentasse).

Um "Pedersen commitment" nos permite adicionar inputs por tr√°s dos commits (altera√ß√Ķes no banco de dados). Como ilustra Maxwell:


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

Onde BF é o blinding factor e D são os dados


Existem mais algumas etapas que envolvem criptografia de curva elíptica e provas de intervalo (range proofs), mas a ideia básica é que um usuário tenha um "Pedersen commitment" para o próprio endereço. Ao enviar fundos, são criados dois commits adicionais (um para o endereço do usuário que receberá o troco e outro para o endereço de destino da transferência). 

Ninguém sabe o valor que está sendo enviado, mas é possível verificar se os commits do troco e do endereço de destino (lado esquerdo da equação de Maxwell) correspondem corretamente ao endereço de origem (lado direito da equação). Se as correspondências estiverem corretas, a transação do usuário é válida, pois pode ser comprovado que os inputs (entradas) são iguais aos outputs (saídas).


O que as Transa√ß√Ķes Confidenciais podem fazer?

Se as Transa√ß√Ķes Confidenciais fossem implementadas na rede Bitcoin, ter√≠amos um sistema com muito mais privacidade. As entradas e sa√≠das seriam disfar√ßadas na rede geral e as entradas no ledger ficariam ocultas - mas os n√≥s ainda poderiam verificar sua autenticidade. Com esse aumento significativo de privacidade, a Bitcoin poderia se tornar efetivamente fung√≠vel, pois a an√°lise da cadeia n√£o mais revelaria o hist√≥rico de uma determinada unidade.¬†

No momento, a integra√ß√£o das Transa√ß√Ķes Confidenciais ao protocolo, n√£o parece prov√°vel. Com essa funcionalidade adicional, as transa√ß√Ķes seriam muito maiores que o padr√£o ‚Äď considerando o espa√ßo limitado dos blocos, isso apenas aumentaria a demanda. Essa adi√ß√£o tamb√©m exigiria que a maioria dos participantes concordasse em alterar o c√≥digo, uma tarefa tradicionalmente dif√≠cil.


Considera√ß√Ķes finais

As Transa√ß√Ķes Confidenciais t√™m visto algumas itera√ß√Ķes em outras criptomoedas e cadeias alternativas (sidechains) √† Bitcoin. A Monero, por exemplo, as utiliza em combina√ß√£o com estruturas chamadas "ring signatures" para obter anonimato e fungibilidade. A sidechain Liquid e o protocolo MimbleWimble tamb√©m as utilizam para proporcionar maior privacidade.

Apesar dos benef√≠cios que elas proporcionam, as Transa√ß√Ķes Confidenciais apresentam um ponto negativo. As criptomoedas geralmente enfrentam problemas de escalabilidade e desempenho na camada de base. Dessa forma, o aumento no tamanho das transa√ß√Ķes est√° longe de ser uma mudan√ßa desejada. Ainda assim, os defensores da privacidade acreditam que esconder os valores das transa√ß√Ķes e preservar o anonimato dos usu√°rios s√£o medidas essenciais para que a criptomoeda possa, de fato, operar como uma moeda fung√≠vel.