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)
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?
Fonte: river.com