For the complete documentation index, see llms.txt. This page is also available as Markdown.

Criptografia Aplicada

Hashing, assinaturas digitais e curvas elípticas


“Sem criptografia, o Bitcoin seria literalmente impossível.” — Hal Finney (Bitcointalk, 2009)


1. Introdução

O Bitcoin é, em essência, um sistema econômico sustentado por matemática. Não depende de instituições, autoridades ou confiança interpessoal: depende de funções criptográficas que garantem:

  • irreversibilidade

  • não falsificação

  • verificabilidade pública

  • propriedade digital

  • resistência a ataques

Este capítulo cobre os três pilares criptográficos fundamentais:

  1. Funções hash (SHA-256, RIPEMD-160)

  2. Assinaturas digitais (ECDSA)

  3. Curvas elípticas (secp256k1)

Cada uma cumpre um papel específico dentro do design do Bitcoin.


2. Hashing criptográfico no Bitcoin

2.1. O que é um hash?

Uma função hash criptográfica é uma transformação:

H:0,10,1nH: {0,1}^* \rightarrow {0,1}^n

com as seguintes propriedades:

  • Dificuldade de pré-imagem

  • Dificuldade de segunda pré-imagem

  • Resistência a colisões

  • Determinismo

  • Eficiência

O Bitcoin utiliza principalmente:

  • SHA-256

  • RIPEMD-160

E ocasionalmente combinações como SHA-256(SHA-256(x)) (double SHA-256).


2.2. Propriedades chave aplicadas ao design do Bitcoin

1. Resistência a colisões

Impossibilita encontrar duas mensagens distintas que produzam o mesmo hash.

Isto é essencial para:

  • assegurar integridade dos blocos

  • evitar reorganizações maliciosas

  • garantir unicidade das transações

2. Unidirecionalidade

Não é possível recuperar a informação original a partir de um hash.

Facilita:

  • endereçamento sem revelar chaves públicas

  • resistência a ataques de gasto futuro

  • proteção contra colisões de pré-imagem


2.3. Hashing nos distintos componentes do sistema

Componente
Algoritmo hash
Propósito

Cabeçalho do bloco

SHA-256d

Provar PoW

Árvore de Merkle

SHA-256d

Adicionar transações

Endereço Bitcoin

SHA-256 + RIPEMD-160

Criar identificadores curtos


3. Árvores de Merkle: compressão e verificabilidade

As transações dentro de cada bloco são organizadas em uma árvore de Merkle.

3.1. Definição formal

Uma árvore de Merkle é uma estrutura binária onde:

Hl1=SHA256d(tx1)H_{l1} = SHA256d(tx1) Hl2=SHA256d(tx2)H_{l2} = SHA256d(tx2) H0=SHA256d(Hl1Hl1)H_0 = SHA256d(H_{l1} | H_{l1}) Hl3=SHA256d(tx3)H_{l3} = SHA256d(tx3) Hl4=SHA256d(tx4)H_{l4} = SHA256d(tx4) H1=SHA256d(Hl3Hl4)H_1 = SHA256d(H_{l3} | H_{l4}) Root=SHA256d(H0H1)Root = SHA256d(H_{0} | H_{1})

3.2. Vantagens

  • Fornecem provas eficientes de inclusão (provas de Merkle)

  • Permitem nós leves (SPV)

  • Reduzem a necessidade de armazenamento

Essas provas são fundamentais para dispositivos móveis e clientes leves.


4. Assinaturas digitais (ECDSA)

4.1. Para que servem?

O Bitcoin utiliza assinaturas digitais para verificar:

  • que o proprietário de uma chave privada autorizou uma transação

  • que a transação não foi modificada

  • que a assinatura é publicamente válida

4.2. Fundamento matemático

Se:

  • dd = chave privada

  • Q=dGQ = dG = chave pública (ponto na curva)

então a assinatura (r, s) satisfaz:

r=(kG)xmodnr = (kG)_x \mod n

s=k1(H(m)+dr)modns = k^{-1}(H(m) + dr) \mod n

onde:

  • kk = número aleatório por assinatura

  • GG = ponto gerador

  • nn = ordem do grupo elíptico


4.3. Segurança

ECDSA é seguro enquanto:

k sea uˊnico y aleatoriok \text{ sea único y aleatorio}

Se for reutilizada, a chave privada pode ser derivada:

d=s1kH(m1)rmodnd = \frac{s_1k - H(m_1)}{r} \mod n

Isto causou hacks em implementações defeituosas no passado.


5. Curvas elípticas: a base algébrica

O Bitcoin usa a curva elíptica secp256k1.

5.1. Definição matemática

É a curva:

y2=x3+7y^2 = x^3 + 7

sobre o campo finito:

Fp,p=2256232977\mathbb{F}_p, \quad p = 2^{256} - 2^{32} - 977

5.2. Propriedades

  • curva não aleatória (ao contrário das curvas NIST)

  • operações eficientes

  • segurança comprovada

  • resistente à manipulação estatal (segundo muitos criptógrafos)

5.3. Multiplicação de pontos

A operação fundamental é:

Q=dG Q = dG

onde:

  • dd = número de 256 bits

  • GG = ponto gerador

  • QQ = chave pública

É fácil calcular QQ, mas praticamente impossível calcular dd.

Isto se baseia na dificuldade do Problema do Logaritmo Discreto (ECDLP).


6. Endereços Bitcoin: do hash à representação Base58Check

6.1. Processo completo de geração

Clave puˊblica=Q\text{Clave pública} = Q

hash160(Q)=RIPEMD160(SHA256(Q))\text{hash160}(Q) = \text{RIPEMD160}(\text{SHA256}(Q))

Adicionar versão: 00+hash16000 + hash160

Calcular checksum: SHA256d(00+hash160)\text{SHA256d}(00 + hash160)

Codificar em Base58Check.


6.2. Exemplo simplificado em pseudocódigo

7. Segurança criptográfica frente a ataques modernos

7.1. Ataques quânticos

O Bitcoin resiste parcialmente a ataques quânticos:

Função
Risco quântico
Impacto

SHA-256

Baixo

Grover reduz a segurança a 50%

ECDSA

Médio

Shor poderia derivar chaves públicas

Mitigação atual:

  • chaves públicas não expostas até serem gastas

  • possibilidade futura de mudar de algoritmo

7.2. Ataques de colisão

SHA-256 não apresenta colisões conhecidas.

Colisão implica:

H(x)=H(y)H(x)=H(y)

com xyx \neq y

A probabilidade é astronomicamente baixa (2256\approx 2^{-256} ).

7.3. Ataques de implementação

Os ataques mais comuns:

  • má geração de aleatoriedade

  • carteiras defeituosas

  • ataques de canal lateral

  • hardware comprometido

O Bitcoin como protocolo é seguro; implementações podem não ser.

8. Criptografia aplicada na cadeia de blocos

O Bitcoin utiliza criptografia para assegurar:

Componente
Mecanismo

Integridade dos blocos

Hash SHA-256d

Integridade das transações

Merkle Root

Propriedade digital

ECDSA

Prevenção do gasto em duplicidade

PoW

Identidades pseudônimas

Hash160

Zeros iniciais do bloco

Alvo do PoW (target)

9. Conclusão do capítulo

A criptografia no Bitcoin não é decorativa. É a fonte de:

  • segurança

  • descentralização

  • confiança matemática

  • irreversibilidade

  • resistência à censura

  • propriedade digital

O Bitcoin não funciona porque “todos concordam” com sua validade. Funciona porque a matemática não aceita subornos.


O Bitcoin não usa criptografia para “ocultar” dados. Usa criptografia para garantir regras econômicas sem intermediários.


Atualizado

Isto foi útil?