Charlie Lee, criador do Litecoin anunciou mais uma conquista dos desenvolvedores da criptomoeda. De acordo com Charlie, fungibilidade era uma única propriedade do dinheiro que estava faltando no Litecoin e Bitcoin. Agora o foco é implementar transações confidenciais com a intenção de proporcionar ainda mais privacidade na rede.
Para entender mais detalhes sobre as transações confidencias traduzimos para você o artigo informativo de @Ecurrencyholder criador da The Litecoin School.
Este artigo é uma cartilha para Transações Confidenciais (CT) com o objetivo de fornecer uma estrutura para entender a tecnologia. Não pretende ser uma explicação detalhada. Como tal, apenas destaca os principais conceitos envolvidos. Também não inclui “Ring Signatures” ou “Bullet Proofs”, que impedem o excesso de contabilidade. Para um estudo totalmente abrangente sobre CT, recomendo a investigação inicial de Gregory Maxwell ou este resumo de Adam Gibson.
O que é “Confidencial Transactions”?
Um protocolo que oculta a quantidade de Litecoin que você envia, bem como o endereço LTC do receptor.
Por que isso é importante?
Mesmo que o Litecoin seja pseudônimo, ele não oferece muita privacidade. Devido à natureza pública de seu blockchain, você pode rastrear as transações do Litecoin e onde ele foi anteriormente gasto através da análise de cadeia. O pseudoanônimo dos endereços de LTC é especialmente fraco para pessoas que os reutilizam ou publicam em uma conta de mídia social.
A falta de privacidade faz com que a Litecoin não seja tão fungível quanto poderia ser e dificulta sua capacidade de se tornar um meio de troca resistente à censura. Por exemplo, uma das razões pelas quais as casas de câmbio fecharam as contas usuários de repente é porque o Litecoin que um cliente está tentando vender, sem o conhecimento deles, pode ter usado anteriormente para fins ilícitos. Transações Confidenciais ajudarão a mitigar esses problemas inerentes a blockchains públicos.
Visão geral de alto nível
Transações confidenciais funcionam com a introdução de um novo endereço e formato de transação. O formato da transação é composto de um scriptPubKey, compromisso de Pedersen e ecdh nonce.
O scriptPubKey contém o seguinte: O Endereço de Transação Confidencial (CTA) e uma condição matemática que o LTC pode ser gasto somente se a propriedade da chave privada do endereço for comprovada com uma assinatura.
O Endereço de Transação Confidencial é o hash de uma chave de ocultação mais um endereço LTC regular.
Uma chave de ocultação é usada para ocultar o endereço do LTC e o valor do LTC no ledger público. Como alternativa, se você tiver acesso à chave de ocultação, poderá visualizar o endereço do LTC e o valor do LTC em uma transação Confidencial.
Um compromisso de Pedersen é essencialmente um hash da saída total do LTC mais uma chave de ocultação. Em uma transação regular LTC, este é o lugar onde a saída normal do LTC iria.
Finalmente, o ecdh nonce é a chave para desbloquear toda a Transação Confidencial. Ele é usado para comunicar dados criptografados ao receptor da transação, para que eles possam aprender a saída da transação do LTC e o fator de ocultação da transação confidencial.
Como funciona?
Suponhamos que Alice tem 2 LTC em seu endereço e quer enviar Bob 1 LTC.
Alice pega o endereço Litecoin de Bob, cria uma chave de ocultação e hash os dois juntos. Isso cria um endereço confidencial. Embora isso seja registrado no livro público, ninguém sabe que o CTA está vinculado ao endereço do LTC de Bob, exceto Alice e Bob.
Aqui está um exemplo de um endereço confidencial:
Em seguida, Alice cria a Transação Confidencial. Ela pega a mesma chave de ocultação e a saída de 1 LTC e cria um compromisso de Pedersen. Isso esconde a quantia de LTC que Alice está enviando para Bob. Mas tanto Bob quanto Alice podem ver o valor porque eles têm a chave de ocultação. Alice tem porque criou a chave de ocultação. Bob tem pois pode derivá-lo com a chave privada do seu endereço LTC.
Em seguida, Alice cria uma scriptPubKey com o CTA (Confidential Transaction agreement) criado com o endereço LTC de Bob, sob uma condição matemática que o 1 LTC pode ser gasto se ele puder comprovar a propriedade da chave privada do endereço com uma assinatura.
A transação é então transmitida e gravada no ledger público.
Mantendo 0 Soma de Saldo
Um princípio fundamental no Litecoin é que os endereços devem manter um saldo de 0. Isso significa que o número de Litecoins enviados para um endereço deve corresponder ao número de Litecoins que saem do endereço.
Mas como Transações Confidenciais ofuscam os valores, isso cria dois problemas:
A maneira tradicional pela qual as taxas de mineração são calculadas por meio da subtração não é mais possível.
Os clientes não podem determinar se a saída de um endereço corresponde à entrada para manter um saldo de 0.
O primeiro problema pode ser facilmente resolvido compartilhando publicamente a taxa de mineração.
O segundo problema é um pouco mais complicado, mas pode ser resolvido através de algo chamado compromissos de Pedersen.
Compromissos Pedersen
Os compromissos de Pedersen têm uma propriedade matemática única na medida em que é homomórfico. Um homomorfismo é um mapa de preservação de estrutura entre duas estruturas algébricas. Isso é perfeito para criptografia, pois você pode usar dados de hash e usar álgebra básica, como adição, para verificar os dados “por trás” do hash. Em outras palavras, você pode transmitir informações sem revelar os dados em si. Veja um exemplo simplificado do que quero dizer:
Digamos que esta é a nossa estrutura algébrica básica e que estamos “misturando” os valores multiplicando tudo por 2.
(a + b) 2 = a * 2 + b * 2
Agora vamos ter a = 1 e b = 3.
(1 + 3) 2 = 1 * 2 + 3 * 2
(4) 2 = 2 + 6
Se você substituísse o valor “a” no lado esquerdo da equação por um número diferente, como 4, a estrutura algébrica não seria mais verdadeira:
(a + b) 2 = a * 2 + b * 2
(4 + 3) 2 ≠ 1 * 2 + 3 * 2
Esta propriedade homomórfica dos compromissos da Pedersen é o que as Transações Confidenciais usam para garantir que os endereços da Litecoin mantenham um saldo de 0.
Vamos agora aplicar este conceito a Alice enviando o Bob 1 LTC. Para simplificar, não levaremos em conta as taxas de mineração.
Alice tem um compromisso Pedersen de 2 LTC para seu endereço de transação confidencial. Quando Alice envia Bob 1 LTC, ela usa uma fórmula matemática especificada para criar um hash. Ela então usa a mesma fórmula para enviar 1 LTC para um endereço de mudança. Os dois hashes são somados para ver se é igual ao comprometimento de 2 LTC Pedersen do endereço de Alice. Em caso afirmativo, torna-se uma transação confidencial válida.
Conclusão
Transações confidenciais podem ser uma ferramenta poderosa para aumentar a privacidade no blockchain público. Usando chaves de ocultação, os endereços e quantidades de LTC são ofuscados, aumentando assim sua fungibilidade. No entanto, as chaves de cegueira também podem ser usadas para auditoria. Isso significa que o remetente ou o destinatário podem entregar a chave de ocultação a um terceiro para fins de auditoria.
Agradecimento especial para Ecurrency holder e sua dedicação em proporcionar material educativo sobre a Litecoin, Bitcoin e suas inovações. Não deixem de participar do nosso sorteio e apoiar os voluntários da Litecoin e concorrer a uma Camisa da Seleção Brasileira autografada por Charlie Lee e John Kim.
Link para o artigo original aqui