Qual a Import√Ęncia das Assinaturas de Schnorr para o Bitcoin?
P√°gina Inicial
Artigos
Qual a Import√Ęncia das Assinaturas de Schnorr para o Bitcoin?

Qual a Import√Ęncia das Assinaturas de Schnorr para o Bitcoin?

Avançado
Publicado em Jul 8, 2020Atualizado em Dec 28, 2022
6m

Introdução

Como voc√™ deve saber, o Bitcoin imp√Ķe direitos de propriedade com algo chamado de Algoritmo de Assinatura Digital da Curva El√≠ptica (Elliptic Curve Digital Signature Algorithm - ECDSA). Esse algoritmo permite que voc√™ pegue um n√ļmero (ou seja, uma chave privada) e obtenha uma chave p√ļblica derivada dele.
A m√°gica disso √© que, embora seja f√°cil de se obter a chave p√ļblica a partir da chave privada, o inverso √© imposs√≠vel. A chave privada √© o seu passaporte para a rede Bitcoin. √Č o que permite que voc√™ gere um endere√ßo para recebimento de moedas e √© tamb√©m o que, mais tarde, permite que voc√™ as gaste.¬†

Neste artigo, vamos dar uma olhada no algoritmo de assinatura de Schnorr, uma alternativa ao ECDSA que pode proporcionar algumas mudanças interessantes ao sistema do Bitcoin.


Uma breve recapitulação sobre assinaturas digitais

Assinaturas digitais funcionam como as antigas assinaturas de papel e caneta, mas são muito mais seguras. Qualquer pessoa pode forjar uma assinatura em papel e caneta com um pouco de tempo e esforço. Não é possível fazer o mesmo com um esquema de assinatura digital robusto, mesmo que você tenha milhares de anos à sua disposição.

Existem v√°rios casos de uso para assinaturas digitais. Um caso popular envolve provar ao mundo que voc√™ escreveu uma mensagem espec√≠fica. Como mencionado, voc√™ pode criar uma chave p√ļblica a partir de uma chave privada (um n√ļmero enorme que voc√™ deve manter em segredo). Isso √© poss√≠vel com um pouco de matem√°tica sofisticada sobre a curva secp256k1. A partir da√≠, voc√™ tamb√©m pode gerar um endere√ßo p√ļblico a partir de sua chave p√ļblica.

Observe que √© totalmente seguro mostrar sua chave p√ļblica para qualquer pessoa. Voc√™ pode, por exemplo, adicion√°-la ao seu site ou biografia do Twitter para que outras pessoas possam verificar sua identidade. Da mesma forma, voc√™ pode compartilhar seus endere√ßos p√ļblicos com outras pessoas para que elas lhe possam enviar criptomoedas.

Sua chave privada permite que voc√™ crie uma assinatura digital. Ao escrever uma mensagem e realizar uma opera√ß√£o usando sua chave privada, voc√™ gera uma mensagem com a sua assinatura. Qualquer pessoa pode peg√°-la e compar√°-la com sua chave p√ļblica para verificar se foi voc√™ quem realmente assinou.

Qual a relação disso com o Bitcoin? Sempre que você faz uma transação de Bitcoin, você está assinando digitalmente uma mensagem que diz  Estou enviando essas moedas que foram, anteriormente, enviadas para mim. Então, quando ocorre o envio para outros nodes (nós) da rede, eles podem verificar se a assinatura ECDSA corresponde à mensagem. Se não, eles irão simplesmente rejeitá-la.


O que s√£o Assinaturas de Schnorr?

O esquema das assinaturas de Schnorr funciona de forma diferente. Ele opera de forma semelhante ao Algoritmo de Assinatura Digital da Curva Elíptica que usamos atualmente, mas apresenta algumas vantagens sobre ele. As assinaturas de Schnorr surgiram antes do ECDSA, levando muitos a se perguntarem por que não foram integradas ao Bitcoin desde o início. 

Uma poss√≠vel explica√ß√£o √© que Claus P. Schnorr ‚Äď o criador desse esquema ‚Äď as patenteou. As patentes expiraram no in√≠cio de 2008, meses antes do lan√ßamento do whitepaper do Bitcoin, mas o esquema ainda n√£o tinha uma padroniza√ß√£o. Sendo assim, Satoshi Nakamoto optou pelo ECDSA, que era mais amplamente aceito (e de c√≥digo aberto).


Quais as vantagens das Assinaturas de Schnorr?

As assinaturas de Schnorr são bem simples em comparação com outros esquemas. Como resultado, elas são provavelmente mais seguras do que outras alternativas. Isso pode não parecer uma grande vantagem pra você, mas elas têm outra propriedade poderosa: linearidade. 
Usando termos mais simples, essa propriedade torna esse esquema particularmente atraente para certas atividades ‚Äď principalmente, transa√ß√Ķes multisignature (tamb√©m chamadas de multisig ou multiassinatura). Talvez voc√™ saiba que o Bitcoin j√° tem compatibilidade com multisig, mas n√£o o faz da melhor maneira.

Quando voc√™ cria um endere√ßo com m√ļltiplas assinaturas, quem lhe envia os fundos n√£o precisa saber quais condi√ß√Ķes voc√™ definiu para gastar os inputs (entradas). Eles talvez nem saibam que est√£o enviando fundos para uma configura√ß√£o multisig ‚Äď a √ļnica peculiaridade sobre o endere√ßo √© que ele come√ßa com um ‚Äú3‚ÄĚ.¬†

No entanto, quando voc√™ quer movimentar os fundos, voc√™ revela informa√ß√Ķes. Digamos que voc√™ tenha usado uma configura√ß√£o 3-de-3 junto com Alice e Bob. Para gastar, por exemplo, 5 BTC, voc√™s tr√™s devem fornecer as chaves p√ļblicas e assinaturas v√°lidas. Quando voc√™ move os fundos para fora do endere√ßo, toda a rede pode saber conferir que aconteceu observando a blockchain.¬†

Do ponto de vista da privacidade, isso n√£o √© bom. Al√©m disso, se criarmos um multisig maior¬†(por exemplo, 8-de-10), estaremos ocupando um espa√ßo maior na blockchain. Esse processo pode ser caro, pois precisa de uma transa√ß√£o mais longa ‚Äď lembre-se de que quanto mais bytes tem sua transa√ß√£o, maior ser√° o pre√ßo para transmiti-la.

As assinaturas de Schnorr foram apresentadas como uma solu√ß√£o para esses problemas de privacidade e escalabilidade. Elas permitem coisas como signature aggregation (agrega√ß√£o de assinatura), que combina as assinaturas de v√°rios usu√°rios em uma √ļnica assinatura. A ‚Äúassinatura mestre‚ÄĚ resultante ainda teria o mesmo comprimento de uma assinatura regular de uma pessoa, proporcionando uma economia significativa de espa√ßo.¬†
Al√©m disso, as assinaturas combinadas faz com que seja muito dif√≠cil para um observador determinar quem assinou (ou n√£o) uma transa√ß√£o. Em esquemas m-de-m (onde todos os participantes devem assinar para gastar os fundos), voc√™ nem seria capaz de distinguir entre transa√ß√Ķes com assinatura √ļnica e transa√ß√Ķes multisig.
Essencialmente, as assinaturas de Schnorr são um importante componente para novos avanços. Depois de implementadas, podem ser usadas para aprimorar tecnologias cripto, como atomic swaps e a Lightning Network.



Quando ser√£o implementadas as Assinaturas de Schnorr para Bitcoin?

N√£o podemos ter certeza. Como acontece com a maioria das atualiza√ß√Ķes do protocolo Bitcoin, pode levar algum tempo para que a maior parte da comunidade de usu√°rios de Bitcoin, concorde com a inclus√£o das assinaturas de Schnorr. Alguns dos contribuintes do Bitcoin Core como Pieter Wuille, Jonas Nick e Tim Ruffing fizeram um rascunho, Bitcoin Improvement Proposal (BIP), mas ainda h√° trabalho a ser feito.
A Blockstream j√° lan√ßou uma implementa√ß√£o ‚Äď MuSig. A implementa√ß√£o da agrega√ß√£o de assinaturas e de chaves, pode servir muito bem como base para o esquema de assinaturas de Schnorr para Bitcoin.
As assinaturas de Schnorr podem ser mescladas no c√≥digo como um soft fork, o que significa que uma mudan√ßa n√£o precisaria dividir a rede. Em vez disso, seria uma atualiza√ß√£o ‚Äúopcional‚ÄĚ. No entanto, seria muito otimista supor que veremos essa implementa√ß√£o em um futuro pr√≥ximo ‚Ästainda pode levar alguns anos at√© que o consenso seja alcan√ßado.


Considera√ß√Ķes finais

A implementação das assinaturas de Schnorr é um dos marcos mais esperados no roteiro atual do Bitcoin. Com apenas uma atualização, seria possível obter importantes benefícios de privacidade e escalabilidade. Talvez, o que é ainda mais interessante, é que isso também mudaria o cenário para novos desenvolvimentos de contratos inteligentes e projetos mais avançados como Taproot.