O que as assinaturas Schnorr fazem pelo Bitcoin?

Assinaturas digitais

O Bitcoin usa assinaturas digitais para permitir que moedas sejam transferidas no blockchain. As assinaturas digitais são usadas para provar a propriedade de moedas específicas e autorizar sua transferência para um novo proprietário.

Definimos uma moeda eletrônica como uma cadeia de assinaturas digitais. Cada proprietário transfere a moeda para o próximo assinando digitalmente um hash da transação anterior e a chave pública do próximo proprietário.

“We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner.”

– Satoshi Nakamoto explicando o modelo UTXO no Bitcoin Whitepaper (2008)

Atualmente, o Bitcoin usa o Algoritmo de Assinatura Digital de Curva Elíptica (ECDSA). Com a atualização do Taproot, o Bitcoin integrará o Schnorr, um segundo tipo de esquema de assinatura com várias vantagens.

Saiba mais sobre a atualização do Taproot.

ECDSA

Since Bitcoin’s inception, ECDSA has been used to secure bitcoin. ECDSA was chosen for Bitcoin for a few reasons:

  • Código aberto. O ECDSA não era protegido por patentes ou direitos autorais, portanto, não havia problemas legais em usá-lo para Bitcoin.

  • Bem Testado. O ECDSA era amplamente conhecido e aplicado quando o Bitcoin foi projetado pela primeira vez, e sua segurança foi suficientemente estabelecida por anos de testes.

  • OpenSSL. O ECDSA foi implementado no OpenSSL, uma biblioteca de criptografia de código aberto usada pelo Bitcoin. Isso simplificou a implementação do ECDSA para Bitcoin.

No entanto, o ECDSA também tem várias desvantagens que Schnorr melhora. Por esse motivo, os desenvolvedores decidiram que o Bitcoin deveria implementar um esquema de assinatura diferente, o Schnorr.

As vantagens das assinaturas Schnorr

Assim como o ECDSA, o Schnorr Digital Signature Scheme usa criptografia de curva elíptica (ECC). As assinaturas Schnorr oferecem várias vantagens sobre o ECDSA em termos de eficiência computacional, armazenamento e privacidade.

Agregação de chave e assinatura

A vantagem mais significativa oferecida pelas assinaturas Schnorr é a agregação de chaves. Uma assinatura digital típica contém uma única chave pública, uma mensagem a ser assinada e uma assinatura, afirmando que o proprietário da chave pública assinou a determinada mensagem. Quando várias partes desejam assinar a mesma mensagem, como gastos de um endereço multisig, cada uma delas deve incluir sua chave pública e assinatura. Assim, se três partes quiserem assinar a mesma mensagem, a prova incluirá três chaves públicas e três assinaturas. Isso é subotimizado por motivos de computação e armazenamento, pois cada nó deve realizar a verificação de assinatura, uma função cara, três vezes e armazenar três conjuntos de assinaturas e chaves públicas.
 
A agregação de chaves elimina a necessidade de várias chaves públicas e assinaturas. As chaves públicas e a assinatura Schnorr podem ser agregadas de forma que, se três partes quiserem assinar uma transação, elas possam combinar suas três chaves públicas de forma confiável para formar uma única chave pública. Então, usando cada uma de suas três chaves privadas, eles podem assinar a mesma mensagem. Finalmente, eles podem combinar suas três assinaturas para formar uma única assinatura que é válida para a chave pública agregada. Um verificador deve verificar apenas uma única assinatura e chave pública para ter certeza de que todas as três partes assinaram a mensagem.

As implicações de privacidade da agregação de chaves são significativas. Como várias partes podem agregar chaves e assinaturas, as transações multisig podem se assemelhar perfeitamente às transações singlesig. Assim, todos os gastos do Schnorr serão semelhantes entre si, tornando impossível para a análise de cadeia diferenciar entre gastos multisig e gastos com assinatura única. Isso invalidará várias heurísticas usadas pela análise de cadeia, incluindo a heurística de propriedade de entrada comum e a heurística de tipo de script. Esse benefício de privacidade se estenderá a todos os usuários de Bitcoin que usam Schnorr, mas não àqueles que usam tipos de transação ECDSA.

Verificação em Lotes (Batch)

Quando um nó recebe um novo bloco, ele normalmente verifica cada transação e assinatura naquele bloco, uma por uma. Este é um processo demorado e intensivo de recursos.
 
A agregação de chaves permite que os nós Bitcoin verifiquem assinaturas em lotes. Esse método reduz significativamente o tempo e o poder de computação necessários para verificar uma transação com muitas entradas.
 

Because Taproot is a soft fork, most Bitcoin users and wallets will continue to use ECDSA even after Schnorr is activated. Blocks will continue to have both Schnorr signatures and ECDSA signatures, limiting the benefits of batch verification in the short term.

Como o Taproot é um soft fork, a maioria dos usuários e carteiras de Bitcoin continuarão a usar o ECDSA mesmo após a ativação do Schnorr. Os blocos continuarão a ter assinaturas Schnorr e assinaturas ECDSA, limitando os benefícios da verificação de lote no curto prazo.

Por que o Bitcoin não usou o Schnorr antes?

As assinaturas da Schnorr são protegidas por patente desde sua invenção em 1990, restringindo fortemente seu uso e sufocando a inovação. Como o ECDSA era de código aberto, foi amplamente utilizado, rigorosamente testado e confiável. Embora a patente Schnorr tenha expirado em 2008, no mesmo ano em que o Bitcoin foi inventado, foi decidido que as assinaturas Schnorr não tinham a popularidade e os testes necessários para proteger um sistema tão crítico quanto o Bitcoin.
 
As assinaturas Schnorr serão introduzidas no Bitcoin através da atualização Taproot, que esperamos ser ativada por volta de 2022. Embora os desenvolvedores tenham adicionado todo o código necessário ao Bitcoin Core, os nós Bitcoin devem aceitar a atualização para considerar as assinaturas Schnorr válidas.

 

Fonte: river.com