Skip to main content

Assinatura Digital | Bitcoin Glossary | Mapping Bitcoin

Assinatura Digital

Criptografia

Prova criptográfica de que o dono da chave privada autorizou uma transação. Bitcoin usa ECDSA e Schnorr para verificar gastos sem expor a chave.

Visão Geral

As assinaturas digitais são o mecanismo fundamental pelo qual os proprietários de Bitcoin provam que têm o direito de gastar seus fundos. Quando um usuário cria uma transação, ele assina cada entrada com a chave privada correspondente ao endereço que detém os fundos. Os nós e mineradores verificam essas assinaturas antes de aceitar a transação, garantindo que apenas o proprietário legítimo possa mover seus bitcoin.

Como Funciona

O processo de assinatura e verificação segue um padrão geral:

ASSINATURA (pelo remetente):
┌─────────────────────┐
│  Dados da Transação  │
│  (entradas, saídas)  │
└────────┬────────────┘
         │
         ▼
┌─────────────────────┐     ┌─────────────┐
│   Função de Hash    │ ◄───│ Chave Privada│
└────────┬────────────┘     └─────────────┘
         │
         ▼
┌─────────────────────┐
│  Assinatura Digital  │
│  (valores r, s)      │
└─────────────────────┘

VERIFICAÇÃO (por cada nó):
┌──────────────┐  ┌──────────────┐  ┌──────────────┐
│  Assinatura  │  │ Chave Pública│  │ Dados da Tx  │
└──────┬───────┘  └──────┬───────┘  └──────┬───────┘
       │                 │                 │
       └────────┬────────┘─────────────────┘
                ▼
         ┌──────────────┐
         │  Válido: ✓/✗ │
         └──────────────┘

Tipos de Assinatura no Bitcoin

ECDSA (Algoritmo de Assinatura Digital de Curva Elíptica): O esquema de assinatura original usado no Bitcoin desde o lançamento. As assinaturas ECDSA usam a curva secp256k1 e produzem assinaturas de aproximadamente 70-72 bytes. Todos os tipos de transação anteriores ao Taproot usam ECDSA.

Assinaturas Schnorr: Introduzidas com a atualização Taproot em novembro de 2021, as assinaturas Schnorr oferecem várias vantagens: são matematicamente mais simples, comprovadamente seguras sob suposições padrão, suportam agregação nativa de chaves e assinaturas, e têm sempre exatamente 64 bytes. As assinaturas Schnorr são usadas em saídas Pay-to-Taproot (P2TR).

Flags Sighash

Ao assinar uma transação, o assinante pode escolher quais partes dos dados da transação a assinatura cobre usando flags sighash:

  • SIGHASH_ALL (padrão): Assina todas as entradas e saídas
  • SIGHASH_NONE: Assina todas as entradas mas nenhuma saída
  • SIGHASH_SINGLE: Assina todas as entradas e apenas a saída no mesmo índice
  • SIGHASH_ANYONECANPAY: Pode ser combinado com os acima; assina apenas uma entrada

Conceitos Errôneos Comuns

  • As assinaturas digitais não criptografam nada. Elas fornecem autenticação e integridade, mas não confidencialidade.
  • A chave privada nunca é transmitida nem incorporada na transação. Apenas a assinatura e a chave pública são incluídas.
  • Cada assinatura é única para os dados específicos da transação sendo assinada, portanto uma assinatura não pode ser reutilizada para uma transação diferente.