Participantes sala inicial: Marcos Almeida, Jackson
Capítulo 8
https://github.com/patrickadeelino/me-ensina-um-bitcoin/blob/main/beginners/digital_signatures.md
https://learnmeabitcoin.com/technical/cryptography/elliptic-curve/ecdsa/
https://www.youtube.com/watch?v=U2bw_N6kQL8
https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch08_signatures.adoc
Assinaturas digitais garantem que apenas o dono legítimo da chave privada pode autorizar transações. Elas são colocadas nas entradas da transação, mais especificamente nos scripts de desbloqueio (scriptSig) ou na testemunha (witness) em SegWit. As assinaturas garantem autenticidade, integridade e não repúdio, assegurando que a transação não pode ser modificada por terceiros após ser assinada.
Além de validar transações, assinaturas digitais são usadas em contratos inteligentes, autenticação de comunicações e documentos digitais. Elas garantem que a comunicação ou o contrato é originado por quem afirma ser o emissor, protegendo contra alterações. No Bitcoin, elas também são a base para operações mais complexas, como multisig e canais de pagamento.
Assinaturas Schnorr oferecem várias vantagens sobre o ECDSA, incluindo agregação de assinaturas (multisig mais eficiente), não maleabilidade (reduzindo ataques) e uma verificação mais rápida em lote. Schnorr também é mais simples e mais eficiente do ponto de vista matemático, enquanto o ECDSA é mais complexo e não suporta agregação de assinaturas de forma nativa, o que limita sua flexibilidade em aplicações avançadas.
O Problema do Logaritmo Discreto (DLP) é a base de segurança dos algoritmos de criptografia de curva elíptica (como o ECDSA e Schnorr). Dizemos que o DLP é "difícil" porque, mesmo com conhecimento da chave pública, calcular a chave privada correspondente é computacionalmente inviável. Se o DLP fosse "fácil", seria possível quebrar a criptografia que protege as transações e carteiras no Bitcoin, comprometendo a segurança da rede.
Assinaturas ECDSA são maleáveis porque permitem que uma transação seja modificada sem invalidar sua assinatura, o que pode causar problemas, como ataques de maleabilidade. Schnorr, por outro lado, foi projetado para ser não maleável, eliminando essa vulnerabilidade. O SegWit introduziu uma solução parcial para ECDSA, mas Schnorr resolve completamente essa questão de maneira nativa.