Comprar cripto
Mercados
Spot
Centro de eventos
Centro de Recompensas
Mais
0-Fee Fest
Criptografia de Curvas Elípticas (ECC): O que é criptografia de curvas elípticas?A criptografia de curvas elípticas, ou ECC, é uma forma de criptografia de chave pública baseada em operações matemáticas com pontos em curvas elípticas sobre Criptografia de Curvas Elípticas (ECC): O que é criptografia de curvas elípticas?A criptografia de curvas elípticas, ou ECC, é uma forma de criptografia de chave pública baseada em operações matemáticas com pontos em curvas elípticas sobre

Criptografia de Curvas Elípticas (ECC)

2026/10/14 17:13
#Intermediate
ELYSIA
EL$0.001547-0.19%
Humanity
H$0.05624-2.69%
o1.exchange
O$0.4088-1.39%
PX
PX$0.0114+4.58%
UMA
UMA$0.3736-0.32%

O que é criptografia de curvas elípticas?

A criptografia de curvas elípticas, ou ECC, é uma forma de criptografia de chave pública baseada em operações matemáticas com pontos em curvas elípticas sobre campos finitos.

As redes de criptomoedas usam ECC principalmente para criar pares de chaves públicas e privadas, gerar assinaturas digitais, verificar a autorização de transações, estabelecer segredos compartilhados e oferecer suporte a provas criptográficas avançadas.

Uma chave privada é um número secreto que dá a seu titular controle sobre uma conta de criptomoedas ou uma identidade de assinatura.

Uma chave pública é um valor matematicamente relacionado que outros participantes podem usar para verificar assinaturas sem conhecer a chave privada.

A segurança da ECC depende, em grande parte, da dificuldade de resolver o problema do logaritmo discreto em curvas elípticas.

Dados uma chave privada e um ponto gerador selecionado, é eficiente calcular a chave pública correspondente.

Partindo apenas da chave pública e do ponto gerador, acredita-se que recuperar a chave privada seja computacionalmente inviável quando são usados uma curva, um tamanho de chave e uma implementação seguros.

O projeto de criptografia de curvas elípticas do NIST descreve a ECC como um método importante para assinaturas digitais e estabelecimento de chaves criptográficas.

ECC não se refere a um único algoritmo, curva, blockchain ou criptomoeda.

É uma ampla família de métodos criptográficos que inclui ECDSA, EdDSA, ECDH, assinaturas Schnorr, assinaturas BLS e outras construções.

Por que as criptomoedas usam ECC

Os sistemas de criptomoedas precisam oferecer aos usuários uma maneira de autorizar transações sem revelar as informações secretas que controlam seus ativos.

A ECC torna isso possível por meio de assinaturas digitais.

Uma carteira assina os dados da transação com uma chave privada.

Os participantes da rede usam a chave pública relacionada para verificar se a assinatura é válida.

Esse processo comprova que a operação foi autorizada pela chave necessária sem publicar essa chave.

A ECC é atraente porque pode oferecer segurança clássica robusta com chaves públicas e assinaturas relativamente compactas.

Em níveis de segurança semelhantes, valores criptográficos menores reduzem o tamanho das transações, a largura de banda da rede, os requisitos de armazenamento e a sobrecarga de verificação, em comparação com algumas abordagens mais antigas de chave pública.

Esses ganhos de eficiência são valiosos em blockchains, pois milhares de nós independentes podem precisar armazenar ou verificar os mesmos dados criptográficos.

O que é uma curva elíptica?

Uma curva elíptica usada em criptografia é um conjunto matemático de pontos que satisfazem uma equação definida sobre um campo finito.

Uma forma curta comum de Weierstrass é escrita como

y² = x³ + ax + b
.

Em geral, os cálculos criptográficos não usam a curva contínua e suave mostrada em diagramas introdutórios.

Eles usam um conjunto finito de pontos cujas coordenadas são números inteiros calculados com aritmética modular.

Os parâmetros da curva definem quais pontos são válidos e como funcionam operações como adição de pontos e multiplicação escalar.

Um conjunto completo de parâmetros de domínio pode incluir o campo finito, os coeficientes da curva, o ponto gerador, a ordem do gerador e o cofator.

Sistemas seguros devem usar parâmetros bem analisados, em vez de escolher uma equação de curva arbitrária.

A recomendação final NIST SP 800-186 especifica parâmetros de domínio de curvas elípticas aprovados para sistemas criptográficos aplicáveis.

O que é um campo finito?

Um campo finito é um conjunto limitado de valores com regras definidas para adição, subtração, multiplicação e divisão.

Muitas curvas usadas em criptomoedas operam sobre um campo primo, no qual os cálculos são feitos módulo um número primo grande.

A aritmética modular faz com que os valores retornem ao início quando alcançam o módulo do campo.

Isso cria um conjunto finito de coordenadas possíveis, em vez de um plano geométrico ilimitado.

As propriedades matemáticas do campo e da curva permitem que as operações com pontos formem um grupo algébrico estruturado.

A segurança criptográfica depende da escolha de parâmetros de campo e grupo resistentes aos ataques matemáticos conhecidos.

Adição de pontos

A adição de pontos é uma operação que combina dois pontos válidos da curva e produz outro ponto válido.

As fórmulas exatas dependem da forma da curva elíptica.

Uma operação especial chamada duplicação de ponto soma um ponto a ele mesmo.

A adição repetida forma a base da multiplicação escalar.

As implementações também precisam tratar corretamente casos especiais, como o ponto no infinito, que funciona como elemento identidade do grupo.

Uma aritmética incorreta de pontos pode produzir assinaturas inválidas, revelar informações secretas ou criar casos-limite exploráveis.

Multiplicação escalar

Multiplicação escalar significa somar um ponto de uma curva elíptica a ele mesmo um número especificado de vezes.

Em criptomoedas, uma chave pública costuma ser calculada como

Q = d × G
.

Nessa expressão,

d
é a chave privada,
G
é o ponto gerador público da curva e
Q
é a chave pública resultante.

É eficiente calcular

Q
a partir de
d
e
G
.

Recuperar

d
a partir de
Q
e
G
é o problema difícil no qual o sistema se baseia.

Bibliotecas de produção usam métodos otimizados de multiplicação e tentam impedir que informações de tempo e de canal lateral revelem o escalar secreto.

O problema do logaritmo discreto em curvas elípticas

O problema do logaritmo discreto em curvas elípticas, ou ECDLP, consiste em encontrar um escalar secreto quando se conhecem o ponto gerador e o ponto público resultante.

Não há algoritmo clássico eficiente conhecido publicamente para resolver o ECDLP em curvas grandes e corretamente selecionadas.

Um invasor pode tentar força bruta ou métodos matemáticos avançados, mas o trabalho necessário deve superar em muito a capacidade computacional prática para uma curva segura de 256 bits.

Essa afirmação depende da seleção correta da curva, da geração e validação das chaves e da implementação.

Um gerador de números aleatórios fraco ou uma chave privada exposta compromete o sistema sem que o invasor precise resolver o ECDLP.

Chaves privadas ECC

Uma chave privada ECC normalmente é um número inteiro selecionado aleatoriamente dentro de um intervalo permitido, determinado pela ordem do grupo da curva.

O valor não pode ser zero nem estar fora do intervalo válido.

Uma chave privada de 256 bits não significa que toda sequência de 256 bits seja automaticamente válida para qualquer curva.

O software da carteira deve gerar o valor com uma fonte de aleatoriedade criptograficamente segura e aplicar as regras de intervalo da curva.

A chave privada precisa permanecer secreta, pois qualquer pessoa que a obtenha geralmente pode produzir assinaturas válidas para a conta associada.

O consenso da blockchain não consegue distinguir o proprietário legítimo de um invasor que use a mesma chave válida.

Chaves públicas ECC

Uma chave pública ECC é um ponto da curva elíptica selecionada.

Ela é calculada a partir da chave privada por meio de multiplicação escalar.

Segundo os pressupostos atuais de segurança clássica, a chave pública pode ser compartilhada sem revelar a chave privada.

Os sistemas de criptomoedas podem armazenar a chave pública completa, uma representação comprimida ou um endereço derivado por hash.

Antes de ser usada em protocolos sensíveis, uma chave pública deve ser validada, pois pontos malformados podem possibilitar ataques de curva inválida ou de subgrupo.

A validação pode incluir a verificação da codificação, a confirmação de que o ponto pertence à curva esperada, a rejeição do ponto identidade e a aplicação das regras de subgrupo.

Chaves públicas versus endereços de criptomoedas

Um endereço de criptomoeda nem sempre é igual a uma chave pública.

Muitos sistemas criam um endereço por meio de hash ou outra codificação de informações da chave pública.

Isso produz um identificador mais curto ou fácil de usar e pode adicionar checksums, identificadores de rede ou condições de script.

Alguns endereços só revelam a chave pública completa quando seus fundos são gastos.

Outros sistemas de contas derivam um endereço estável da chave pública antes da primeira transação.

Os usuários nunca devem presumir que é possível converter um endereço de volta em uma chave privada.

Para fins práticos, um processo de geração de endereços corretamente projetado é unidirecional.

ECC e assinaturas digitais

As assinaturas digitais são o uso mais comum de ECC em criptomoedas.

O signatário processa os dados da transação com uma chave privada para gerar uma assinatura.

Outros participantes da rede verificam a assinatura usando a chave pública correspondente e os mesmos dados da transação.

Uma assinatura válida é uma evidência de que a chave privada necessária autorizou a mensagem assinada.

Ela também permite ao verificador detectar alterações nos dados assinados depois da assinatura.

Uma assinatura não criptografa a transação nem oculta seu conteúdo.

A versão final NIST FIPS 186-5, Digital Signature Standard especifica ECDSA e EdDSA entre as técnicas de assinatura aprovadas.

ECC não é o mesmo que criptografia de dados

A criptografia de curvas elípticas inclui técnicas relacionadas à criptografia e ao acordo de chaves, mas as transações de criptomoedas geralmente usam ECC para assinaturas, e não para confidencialidade.

Uma blockchain pública normalmente precisa ler os dados das transações para verificar saldos, executar contratos inteligentes e atualizar o estado compartilhado.

A transação é assinada para comprovar a autorização, enquanto o remetente, o destinatário, o valor ou as instruções do contrato podem permanecer visíveis publicamente.

A ECC pode estabelecer um segredo compartilhado para comunicação criptografada, mas essa é uma operação diferente da assinatura de uma transação on-chain.

Os usuários não devem presumir que suas atividades com criptomoedas são privadas simplesmente porque usam criptografia de curvas elípticas.

O que é ECDSA?

ECDSA significa Elliptic Curve Digital Signature Algorithm (algoritmo de assinatura digital de curva elíptica).

Ele adapta o algoritmo de assinatura digital a grupos de curvas elípticas.

O ECDSA gera uma assinatura com dois valores principais, geralmente chamados de

r
e
s
.

A verificação examina uma relação matemática entre a assinatura, o hash da mensagem, a chave pública, o ponto gerador e a ordem da curva.

A segurança do ECDSA depende da proteção da chave privada e da geração de um nonce de assinatura único e seguro para cada assinatura.

O algoritmo tem sido amplamente usado para autorizar transações de criptomoedas.

A definição de ECDSA do NIST o identifica como um análogo do algoritmo de assinatura digital baseado em curvas elípticas.

Por que o nonce do ECDSA é crucial

Cada assinatura ECDSA exige um valor secreto específico para aquela assinatura, geralmente chamado de

k
.

Esse valor não deve ser reutilizado com a mesma chave privada para mensagens diferentes.

Se duas assinaturas reutilizarem o mesmo nonce, um invasor muitas vezes poderá calcular a chave privada usando álgebra simples.

Um nonce tendencioso ou parcialmente previsível também pode revelar informações suficientes para recuperar a chave a partir de várias assinaturas.

Essas falhas já causaram perdas reais em sistemas criptográficos, mesmo quando a curva elíptica subjacente continuava segura.

As implementações modernas geralmente derivam o nonce de forma determinística a partir da chave privada e do hash da mensagem, conforme um método revisado, como a RFC 6979.

A geração determinística de nonces ainda exige uma implementação correta e proteção contra vazamentos por canais laterais.

O que é secp256k1?

secp256k1 é uma curva elíptica de 256 bits usada pelo Bitcoin, pelas contas de execução da Ethereum e por vários outros sistemas de criptomoedas.

Sua equação sobre o campo primo é

y² = x³ + 7
.

A curva usa os coeficientes

a = 0
e
b = 7
, além de um ponto gerador e uma ordem de grupo padronizados.

O nome se refere a parâmetros de curva publicados na família Standards for Efficient Cryptography.

O projeto libsecp256k1, mantido ativamente, fornece implementações especializadas de assinaturas e operações relacionadas nessa curva.

secp256k1 não é intercambiável com todas as outras curvas de 256 bits.

Uma chave ou assinatura criada para secp256k1 não pode ser verificada automaticamente em outra curva, como P-256 ou Ed25519.

Bitcoin e ECC

Tradicionalmente, o Bitcoin usa ECDSA sobre secp256k1 para autorizar gastos.

Uma entrada de transação fornece as informações necessárias para satisfazer as condições de bloqueio de uma saída anterior.

Em condições comuns baseadas em assinatura, os nós do Bitcoin verificam se a assinatura corresponde aos dados relevantes da transação e à chave pública.

Ter a chave privada permite ao proprietário criar a assinatura necessária, mas não permite ignorar outras condições de script.

O Bitcoin também usa assinaturas Schnorr sobre secp256k1 nas regras de gasto relacionadas ao Taproot.

A especificação BIP-340 define, para esse uso, um formato de assinatura Schnorr de 64 bytes e uma codificação de chave pública de 32 bytes.

Assinaturas Schnorr

Uma assinatura Schnorr é outra construção de assinatura digital que pode operar sobre um grupo de curva elíptica.

Sua linearidade matemática é útil para agregação de chaves, protocolos de múltiplas assinaturas e outras construções avançadas.

Com um protocolo cuidadosamente projetado, vários signatários podem criar uma única chave pública agregada e uma assinatura de aparência comum.

Isso pode reduzir os dados na blockchain e melhorar a privacidade em comparação com a publicação de cada chave pública e assinatura individual.

A agregação segura exige um protocolo definido que impeça ataques de chave maliciosa, ataques de nonce e comportamentos maliciosos dos participantes.

Somar simplesmente chaves públicas ou valores de assinatura sem seguir um esquema revisado não é seguro.

Ethereum e ECC

As contas de execução da Ethereum usam ECDSA sobre secp256k1 para assinaturas de transações comuns.

O endereço de uma conta de propriedade externa é derivado de sua chave pública.

A assinatura permite que a rede recupere ou verifique a chave pública associada ao remetente e confirme a autorização da transação.

A atual documentação de chaves de Proof of Stake da Ethereum explica que as chaves de contas da camada de execução continuam sendo chaves de curva elíptica, enquanto os validadores usam um sistema de chaves separado.

As funções dos validadores da Ethereum usam assinaturas BLS sobre a curva BLS12-381.

Assim, a chave de execução de um validador e sua chave de assinatura de consenso têm finalidades diferentes e usam esquemas criptográficos distintos.

Assinaturas ECDSA recuperáveis

Alguns sistemas de criptomoedas incluem informações de recuperação em uma assinatura ECDSA.

Essas informações permitem que o software identifique a chave pública pretendida a partir da mensagem e da assinatura, sem transmitir a chave pública completa separadamente.

Tradicionalmente, as assinaturas Ethereum representam essas informações por meio de valores comumente descritos como

r
,
s
e um valor de recuperação ou paridade.

O padrão de assinatura compacta ERC-2098 descreve uma representação compacta de assinaturas secp256k1 que usa eficientemente as informações de paridade.

A recuperação da chave pública é um recurso do formato de assinatura e não revela a chave privada.

O que é EdDSA?

EdDSA significa Edwards-Curve Digital Signature Algorithm (algoritmo de assinatura digital de curvas Edwards).

É uma família de assinaturas digitais projetada em torno de curvas twisted Edwards.

O EdDSA busca oferecer implementações eficientes, assinatura determinística e resistência a diversos erros comuns de implementação.

Ed25519 é uma instância amplamente usada de EdDSA, baseada em matemática relacionada à Curve25519.

A especificação RFC 8032 define Ed25519 e variantes relacionadas de assinaturas de curvas Edwards.

Chaves e assinaturas Ed25519 não são compatíveis com chaves e assinaturas ECDSA secp256k1.

Solana e Ed25519

As transações da Solana usam assinaturas Ed25519 para as contas signatárias necessárias.

O signatário de cada transação fornece uma assinatura Ed25519 de 64 bytes sobre a mensagem serializada da transação.

A atual documentação de transações da Solana explica a estrutura das assinaturas e os requisitos dos signatários.

A Solana também oferece programas de verificação pré-compilados para assinaturas Ed25519, secp256k1 e secp256r1 em instruções específicas de aplicativos.

O suporte a vários esquemas de verificação não significa que suas chaves públicas ou assinaturas possam ser substituídas umas pelas outras.

O que é ECDH?

ECDH significa Elliptic Curve Diffie-Hellman.

É um método de acordo de chaves, e não um algoritmo de assinatura de transações.

Dois participantes combinam sua própria chave privada com a chave pública do outro participante para calcular o mesmo segredo compartilhado.

Segundo o pressuposto do ECDLP, um interceptador que veja as chaves públicas não deve conseguir calcular esse segredo.

Normalmente, o valor compartilhado passa por uma função de derivação de chave antes de ser usado para criptografia ou autenticação.

O ECDH não autentica os participantes por si só; portanto, seu uso sem autenticação pode ser vulnerável a ataques de intermediário.

X25519

X25519 é uma função de Diffie-Hellman de curva elíptica amplamente usada, baseada na forma Montgomery da Curve25519.

Ela foi projetada para estabelecer segredos compartilhados de forma eficiente e facilitar a implementação.

A especificação RFC 7748 define X25519 e X448.

X25519 é usado para acordo de chaves, e não para assinaturas comuns de transações de criptomoedas.

Embora X25519 e Ed25519 usem campos subjacentes relacionados, suas chaves têm significados diferentes e não devem ser convertidas sem os devidos cuidados.

Assinaturas BLS e curvas amigáveis a emparelhamentos

As assinaturas BLS são assinaturas de curva elíptica que usam emparelhamentos bilineares.

Elas permitem agregar assinaturas e chaves públicas de forma eficiente, conforme regras cuidadosamente definidas.

O Proof of Stake da Ethereum usa assinaturas BLS sobre BLS12-381 para propostas e atestações de validadores.

A agregação permite representar de forma mais compacta os votos de muitos validadores do que publicar uma assinatura separada para cada um.

O padrão de hierarquia determinística de contas BLS12-381 documenta o uso de chaves BLS na infraestrutura de validadores da Ethereum.

BLS12-381 difere de secp256k1 e Ed25519 na estrutura da curva, nos algoritmos de assinatura, na derivação de chaves e nos requisitos de segurança.

Curvas elípticas diferentes não são intercambiáveis

As curvas elípticas podem usar equações, campos, geradores, ordens de grupo, cofatores, codificações e pressupostos de segurança diferentes.

secp256k1, P-256, Ed25519 e BLS12-381 são sistemas criptográficos distintos.

Um valor de 32 bytes válido como um tipo de chave pública pode ser inválido ou inseguro quando interpretado em outro esquema.

Os desenvolvedores precisam especificar em conjunto a curva, o algoritmo de assinatura, as regras de hash, a serialização e a separação de domínio.

Usar apenas um rótulo genérico como ECC não basta para tornar dois aplicativos interoperáveis.

Tamanho da chave ECC e nível de segurança

Uma curva elíptica segura de 256 bits sobre um campo primo costuma estar associada a aproximadamente 128 bits de segurança clássica contra ataques genéricos de logaritmo discreto.

Isso não significa que haja uma chance em 128 de um invasor adivinhar a chave.

É uma estimativa do esforço de ataque comparável à execução de cerca de

2¹²⁸
operações nos modelos de ataque relevantes.

O nível exato de segurança depende da estrutura da curva, do algoritmo, da implementação, da geração de números aleatórios e dos recursos do invasor.

Uma chave ECC de 256 bits não deve ser comparada diretamente com uma chave de criptografia simétrica de 256 bits, pois os modelos de ataque são diferentes.

Chaves públicas comprimidas

Um ponto em uma curva elíptica sobre um campo primo normalmente contém uma coordenada

x
e uma coordenada
y
.

Para muitas curvas, a equação da curva produz dois valores possíveis de

y
para uma coordenada
x
válida.

Assim, uma chave pública comprimida pode armazenar a coordenada

x
e mais um bit ou prefixo que identifica o valor
y
pretendido.

Isso reduz o tamanho da chave pública sem diminuir o espaço de busca da chave privada subjacente.

O software precisa descomprimir e validar o ponto corretamente antes de usá-lo.

O BIP-340 usa uma convenção de chave pública somente com x e regras adicionais para selecionar o ponto correspondente.

Maleabilidade de assinatura

A maleabilidade de assinatura ocorre quando uma assinatura válida pode ser transformada em outra assinatura válida para a mesma mensagem e chave pública.

O ECDSA básico tem uma simetria matemática que pode produzir valores

s
relacionados.

Os protocolos de criptomoedas podem reduzir esse problema ao exigir uma forma canônica de

s
baixo ou aplicar outras regras de codificação.

A maleabilidade não permite necessariamente que um invasor gaste fundos sem autorização.

Ela pode alterar o identificador de uma transação ou prejudicar sistemas que presumem a existência de uma única codificação de assinatura.

Esquemas Schnorr com forte impossibilidade de falsificação e codificação fixa podem oferecer propriedades mais claras contra a maleabilidade quando implementados conforme a especificação.

Geração de chaves e entropia

A robustez matemática da ECC não protege uma chave privada gerada a partir de informações previsíveis.

Uma carteira deve usar um gerador de números aleatórios criptograficamente seguro ou um processo de derivação determinística aprovado, inicializado com entropia suficiente.

Nomes, datas de nascimento, citações, senhas curtas e sequências numéricas escolhidas pelo usuário não são chaves privadas seguras.

Uma chave produzida por um gerador de números aleatórios de hardware com defeito pode ser adivinhável mesmo que tenha o tamanho esperado.

As carteiras devem combinar fontes de entropia revisadas, verificar os intervalos e proteger os ambientes de geração de seeds.

Os usuários não devem criar chaves privadas com funções comuns de planilhas nem com funções de geração aleatória não criptográficas de linguagens de programação.

Carteiras determinísticas hierárquicas

Carteiras determinísticas hierárquicas derivam muitas chaves relacionadas de uma única seed mestre.

Isso permite que o usuário faça backup de uma seed e gere endereços separados para diferentes transações ou contas.

O sistema de derivação usa funções criptográficas e operações de curva elíptica de acordo com um padrão definido.

Alguns caminhos de derivação permitem gerar chaves públicas filhas a partir de uma chave pública estendida sem expor chaves privadas.

Em certos sistemas de derivação não reforçada, combinações incorretas de chaves públicas estendidas e chaves privadas filhas vazadas podem ser perigosas.

Desenvolvedores e usuários de carteiras devem seguir o padrão exato de derivação, em vez de criar uma hierarquia de chaves informal.

Carteiras de hardware e ECC

Uma carteira de hardware pode armazenar chaves privadas ECC e executar os cálculos de assinatura em um dispositivo dedicado.

O computador conectado recebe a chave pública ou a assinatura, sem normalmente receber a chave privada.

Isso reduz a exposição a malware no computador de uso geral.

Ainda assim, o dispositivo precisa exibir informações suficientes sobre a transação para que o usuário reconheça um destinatário malicioso ou uma chamada de contrato.

Um elemento seguro ou processador isolado não protege um usuário que aprova dados de transação enganosos.

A frase de recuperação também continua sendo crucial, pois pode recriar as chaves ECC em outro dispositivo.

Multisig e ECC de limiar

Sistemas multisig exigem autorização de várias chaves, em vez de uma única chave.

Um script de blockchain pode verificar várias assinaturas ECC independentes.

Como alternativa, um protocolo de agregação criptográfica ou de limiar pode permitir que vários participantes colaborem para produzir uma única assinatura.

A especificação MuSig2 define um método interativo de múltiplas assinaturas compatível com chaves e assinaturas BIP-340.

Sistemas de limiar exigem geração cuidadosa de nonces, identificação dos participantes, validação de transcrições e resistência a signatários maliciosos.

Um protocolo de limiar personalizado pode vazar a chave privada do grupo mesmo que a curva subjacente seja segura.

Ataques de canal lateral

Um ataque de canal lateral obtém segredos a partir do comportamento físico ou operacional de uma implementação criptográfica.

Entre os sinais possíveis estão o tempo de execução, o consumo de energia, as emissões eletromagnéticas, o comportamento do cache, o acesso à memória e as respostas a falhas.

Um algoritmo matematicamente seguro pode falhar quando sua implementação executa operações diferentes para bits diferentes da chave secreta.

A programação em tempo constante tenta impedir que diferenças observáveis na execução dependam de dados secretos.

Carteiras de hardware e servidores de assinatura também podem exigir blindagem física, detecção de falhas, memória segura e limites de tentativas.

Os desenvolvedores devem usar bibliotecas projetadas e revisadas para resistir a ataques de canal lateral.

Ataques de curva inválida e de subgrupo

Um invasor pode fornecer um ponto malformado ou pertencente a um grupo inesperado.

Se o software realizar operações com a chave secreta nesse ponto sem validá-lo, a resposta pode revelar informações sobre a chave privada.

Ataques de subgrupo pequeno podem forçar os cálculos a ocorrer em um grupo com poucas possibilidades de resultado.

Implementações seguras aplicam as regras de validação e de cofator exigidas pela curva e pelo protocolo selecionados.

Alguns projetos modernos de curvas simplificam parte desse processo, mas os desenvolvedores ainda precisam seguir as regras de decodificação especificadas.

Ataques de falha

Um ataque de falha provoca deliberadamente um erro durante um cálculo criptográfico.

O invasor pode manipular a tensão, o tempo de clock, a temperatura, a memória ou o fluxo de cálculo.

A comparação entre assinaturas corretas e com falha pode, às vezes, revelar a chave privada.

Dispositivos de assinatura de alta segurança podem verificar as próprias assinaturas calculadas antes de retorná-las.

Eles também podem usar redundância, sensores de falha, hardware reforçado e relatórios de erro restritos.

Por que os desenvolvedores devem usar bibliotecas revisadas

É difícil implementar a aritmética de curvas elípticas com segurança.

Um desenvolvedor pode criar código aprovado em testes comuns e ainda vulnerável a ataques de tempo, pontos inválidos, nonces tendenciosos, redução modular incorreta ou casos-limite.

Bibliotecas revisadas oferecem aritmética otimizada, vetores de teste, serialização padronizada e reforços de segurança.

Os desenvolvedores devem usar uma biblioteca compatível com a curva e o protocolo exatos exigidos pela blockchain.

Também devem verificar as versões da biblioteca, as opções de compilação, o comportamento da plataforma e a integridade das dependências.

Copiar uma implementação curta de ECC de um artigo ou trecho de código é inseguro para a custódia de criptomoedas em produção.

Separação de domínio

A separação de domínio garante que uma assinatura ou um hash criado para uma finalidade não possa ser reutilizado automaticamente para outra.

Um protocolo pode incluir um identificador de rede, nome do aplicativo, tipo de mensagem, endereço do contrato, versão ou outro contexto antes da assinatura.

Sem separação de domínio, uma mensagem assinada como uma solicitação de login inofensiva poderia ser interpretada como autorização financeira em outro lugar.

As carteiras de criptomoedas devem exibir o domínio da assinatura e distinguir claramente transações de mensagens comuns.

Os desenvolvedores precisam seguir as regras exatas de codificação de mensagens e separação de domínio da blockchain de destino.

Reutilização de chaves privadas

Usar uma única chave privada ECC em redes ou aplicativos sem relação entre si aumenta os riscos.

Uma implementação fraca de assinatura em um aplicativo pode expor a chave que controla ativos em outro aplicativo.

Sistemas diferentes podem aplicar hash, codificar ou validar mensagens de maneiras incompatíveis.

A reutilização de chaves entre aplicativos também facilita relacionar as atividades de um usuário.

Chaves separadas reduzem o impacto do comprometimento de um dispositivo, uma biblioteca ou um protocolo de assinatura.

Os usuários de carteiras devem evitar importar frases de recuperação de alto valor para aplicativos desnecessários.

ECC e contratos inteligentes

Os contratos inteligentes podem verificar assinaturas de curvas elípticas quando a blockchain oferece operações adequadas.

A Ethereum inclui suporte nativo à recuperação de signatários secp256k1 por meio do precompile

ecrecover
.

Precompiles adicionais ou bibliotecas de contratos podem oferecer suporte a outras curvas e sistemas de prova.

A aritmética de curvas elípticas on-chain pode ser cara quando a rede não oferece um precompile especializado.

Um contrato também precisa se proteger contra replay, codificação ambígua, assinaturas maleáveis, autorizações expiradas e domínios de signatário incorretos.

A verificação de assinatura comprova a autorização da chave, mas não que a ação assinada seja economicamente segura.

ECC e provas de conhecimento zero

As curvas elípticas também são usadas em muitos sistemas de provas de conhecimento zero.

Curvas amigáveis a emparelhamentos podem viabilizar provas compactas e verificação eficiente.

Os pontos da curva podem representar compromissos, elementos de prova ou chaves de verificação.

Os requisitos de segurança de um sistema de provas podem ser diferentes dos de um sistema de assinatura de transações.

Uma curva adequada para assinaturas comuns não é automaticamente eficiente ou segura para provas baseadas em emparelhamento.

Pressupostos de configuração confiável, projeto de circuitos, compatibilidade de campos, verificações de subgrupo e solidez do sistema de provas devem ser avaliados separadamente.

Benefícios da ECC para criptomoedas

A ECC oferece segurança robusta de chave pública clássica com chaves e assinaturas relativamente compactas.

Ela permite que os usuários autorizem transações sem revelar chaves privadas.

Também viabiliza a verificação eficiente por participantes de redes descentralizadas.

Ela pode oferecer acordo de chaves, assinaturas agregadas, assinatura de limiar, compromissos e operações de provas de conhecimento zero.

Há diversas curvas bem estudadas e algoritmos padronizados disponíveis para diferentes aplicações.

Sua eficiência tornou a ECC um componente fundamental das carteiras de criptomoedas e dos sistemas de consenso modernos.

Limitações da ECC

A ECC é sensível a erros de implementação, aleatoriedade fraca, reutilização de nonces e vazamentos por canais laterais.

Curvas e esquemas de assinatura diferentes não são automaticamente interoperáveis.

A ECC, por si só, não criptografa transações comuns em blockchains públicas.

Ela não impede que os usuários aprovem transferências maliciosas ou exponham frases de recuperação.

Seus pressupostos de segurança são ameaçados por computadores quânticos suficientemente poderosos.

Migrar uma blockchain ativa para outro sistema de assinatura pode exigir alterações em carteiras, endereços, hardware, formatos de transação, contratos inteligentes e software de consenso.

Computação quântica e ECC

Um computador quântico tolerante a falhas e suficientemente poderoso poderia usar o algoritmo de Shor para resolver logaritmos discretos de curvas elípticas com eficiência.

Isso permitiria que um invasor calculasse uma chave privada a partir de uma chave pública exposta.

Nenhum computador quântico conhecido publicamente consegue atualmente executar esse ataque contra curvas de criptomoedas em escala prática.

No entanto, sistemas blockchain de longa duração precisam se preparar antes que esse tipo de hardware esteja disponível.

As atuais orientações da Ethereum sobre segurança pós-quântica identificam ECDSA, assinaturas BLS e compromissos de curvas elípticas como áreas que exigirão migração futura.

Os usuários devem acompanhar as orientações oficiais dos protocolos, em vez de entrar em pânico com alegações sem fundamento de que a ECC já foi quebrada.

Criptografia pós-quântica

A criptografia pós-quântica usa problemas matemáticos que, acredita-se, resistem tanto a computadores clássicos quanto a grandes computadores quânticos.

Em agosto de 2024, o NIST finalizou a FIPS 203 para ML-KEM, a FIPS 204 para ML-DSA e a FIPS 205 para SLH-DSA.

O anúncio dos padrões pós-quânticos do NIST recomenda iniciar o planejamento da migração.

O ML-KEM estabelece segredos compartilhados, enquanto ML-DSA e SLH-DSA oferecem assinaturas digitais.

Em geral, esses esquemas têm chaves ou assinaturas maiores do que os sistemas ECC de uso comum.

A migração de uma blockchain precisa equilibrar segurança, tamanho das transações, custo de verificação, compatibilidade de endereços e recuperação de fundos inativos.

Agilidade criptográfica

Agilidade criptográfica é a capacidade de substituir ou combinar algoritmos criptográficos sem reconstruir todo o sistema.

Uma carteira com agilidade criptográfica pode identificar qual esquema de assinatura protege uma conta e oferecer suporte a caminhos de migração futuros.

Durante uma transição, um protocolo pode usar assinaturas híbridas que exijam uma assinatura ECC existente e uma assinatura pós-quântica.

Às vezes, as contas inteligentes podem oferecer suporte a atualizações de algoritmos com mais flexibilidade do que contas cujas regras de assinatura são definidas diretamente pelo protocolo básico.

A agilidade criptográfica precisa ser projetada com cuidado, pois uma migração ou um caminho de downgrade inseguro pode enfraquecer todo o sistema.

Como os desenvolvedores devem usar ECC com segurança

Os desenvolvedores devem selecionar a curva e o algoritmo exatos exigidos pela blockchain ou pelo padrão de destino.

Devem usar bibliotecas criptográficas mantidas e com histórico de revisão estabelecido.

As chaves privadas e os nonces de assinatura devem vir de processos seguros de geração.

As implementações devem validar chaves públicas, pontos da curva, pertencimento ao subgrupo, intervalos de assinatura e codificações canônicas.

As operações que dependem de dados secretos devem usar técnicas de tempo constante.

Os protocolos devem incluir codificação clara de mensagens, identificação da rede, contexto do aplicativo, gerenciamento de nonces e proteção contra replay.

Os testes devem incluir vetores oficiais, pontos malformados, assinaturas inválidas, valores-limite, falhas de nonce e tentativas de replay entre redes.

Sistemas de alto valor devem passar por uma análise criptográfica e de implementação independente.

Como os usuários de cripto podem proteger chaves ECC

Os usuários devem criar carteiras com software ou hardware confiável que use entropia segura.

Frases de recuperação e chaves privadas nunca devem ser inseridas em sites, mensagens ou formulários de suporte.

Os detalhes importantes das transações devem ser verificados em uma tela confiável antes da assinatura.

Fundos de alto valor podem ser protegidos com isolamento por hardware, políticas multisig, limites de gastos ou camadas de armazenamento separadas.

Os usuários devem evitar importar uma mesma frase-semente para muitos aplicativos.

Os backups devem ser testados sem expor o segredo a um dispositivo não confiável.

As atualizações de carteiras e protocolos devem ser obtidas por canais oficiais verificados.

Exemplo de uma transação cripto assinada com ECC

Suponha que Alice controle uma conta de criptomoedas por meio de uma chave privada ECC.

A carteira dela cria uma transação para enviar tokens ao endereço de Bob.

A carteira serializa a transação de acordo com as regras exatas de assinatura da blockchain.

Ela calcula o hash ou processa a mensagem serializada de outra forma, conforme exigido pelo esquema de assinatura.

A carteira cria uma assinatura com a chave privada de Alice e um nonce de assinatura seguro ou um processo determinístico de assinatura.

A transação e a assinatura são transmitidas à rede.

Cada nó validador obtém ou recupera a chave pública de Alice e verifica a assinatura.

O nó também verifica o saldo de Alice, seu nonce, as taxas e todas as demais regras de consenso.

Uma assinatura ECC válida comprova a autorização pela chave necessária, mas não substitui as outras verificações de validade da transação.

Erros comuns relacionados à ECC

Um erro comum é presumir que a ECC criptografa todas as transações de criptomoedas.

Outro é tratar uma chave pública como se fosse o mesmo que um endereço de carteira.

Um terceiro é reutilizar um nonce de assinatura ECDSA.

Um quarto é gerar chaves privadas com funções comuns de geração de números aleatórios.

Um quinto é aceitar pontos de chave pública não validados fornecidos por um invasor.

Um sexto é presumir que todas as curvas elípticas de 256 bits são intercambiáveis.

Um sétimo é escrever aritmética de curvas personalizada para custódia em produção sem revisão especializada.

Um oitavo é reutilizar uma única chave privada em aplicativos e redes sem relação entre si.

Um nono é acreditar que uma assinatura válida comprova que a transação assinada é financeiramente segura.

Um décimo é presumir que a ECC continuará segura contra todos os computadores quânticos futuros sem um plano de migração.

Perguntas frequentes

O que significa ECC em criptomoedas?

ECC significa Elliptic Curve Cryptography, uma família de métodos de chave pública usada para chaves, assinaturas, acordo de chaves e provas avançadas em criptomoedas.

Qual é o principal uso da ECC em cripto?

Seu principal uso é criar e verificar assinaturas digitais que autorizam transações blockchain.

A ECC criptografa transações de criptomoedas?

Geralmente não, pois a maioria das transações em blockchains públicas é assinada e pode ser lida publicamente, em vez de ser criptografada.

O que é uma chave privada ECC?

É um escalar secreto usado para gerar uma chave pública e autorizar assinaturas.

O que é uma chave pública ECC?

É um ponto da curva derivado matematicamente da chave privada e usado para verificar assinaturas.

Uma chave pública pode revelar uma chave privada?

Não com recursos práticos de computação clássica, desde que sejam usados uma curva segura e uma implementação correta.

O que é o problema do logaritmo discreto em curvas elípticas?

É o problema difícil de recuperar um escalar privado a partir de um ponto gerador e do ponto público resultante.

O que é ECDSA?

ECDSA é um algoritmo de assinatura digital de curva elíptica amplamente usado para autorizar transações de criptomoedas.

O que é secp256k1?

secp256k1 é uma curva elíptica padronizada de 256 bits, usada pelo Bitcoin, pelas contas de execução da Ethereum e por vários outros sistemas cripto.

O Bitcoin usa ECC?

Sim. O Bitcoin usa secp256k1 com ECDSA e também usa assinaturas Schnorr secp256k1 para gastos Taproot.

A Ethereum usa ECC?

Sim. As contas de execução da Ethereum usam ECDSA secp256k1, enquanto os validadores de Proof of Stake usam assinaturas BLS sobre BLS12-381.

A Solana usa ECC?

Sim. Os signatários de transações da Solana usam assinaturas Ed25519.

O que é Ed25519?

Ed25519 é um esquema de assinatura EdDSA que usa matemática de curvas Edwards relacionada à Curve25519.

O que é uma assinatura Schnorr?

É uma construção de assinatura com propriedades úteis de linearidade e agregação, quando implementada por meio de um protocolo seguro.

O que é ECDH?

ECDH é um método de acordo de chaves de curvas elípticas que permite que duas partes calculem um segredo compartilhado.

O que é uma chave pública comprimida?

É uma codificação compacta de um ponto da curva, que armazena uma coordenada e informações suficientes para reconstruir a outra.

Por que o ECDSA precisa usar um nonce único?

A reutilização ou previsibilidade do nonce pode permitir que um invasor calcule a chave privada.

Uma chave privada pode ser adivinhada?

Uma chave gerada com segurança tem um espaço de busca enorme, mas chaves fracas, criadas por pessoas ou mal aleatorizadas, podem ser adivinháveis.

Todas as curvas ECC são igualmente seguras?

Não. A segurança depende dos parâmetros da curva, do projeto do algoritmo, do tamanho da chave, da implementação, da validação e dos ataques matemáticos conhecidos.

Uma assinatura ECC pode ser copiada?

Uma assinatura pode ser copiada como dado, mas a proteção contra replay e a vinculação à mensagem determinam se ela pode autorizar outra operação.

Uma assinatura válida garante uma transação segura?

Não. Ela comprova a autorização por uma chave, mas não que o destinatário, o contrato, o preço ou a decisão financeira sejam seguros.

Carteiras de hardware podem proteger chaves ECC?

Elas podem isolar as chaves e as operações de assinatura, mas os usuários ainda precisam verificar os detalhes das transações e proteger os backups de recuperação.

Carteiras multisig podem usar ECC?

Sim. Elas podem verificar várias assinaturas ECC ou usar protocolos revisados de agregação e assinatura de limiar.

Computadores quânticos podem quebrar a ECC?

Um computador quântico tolerante a falhas e suficientemente poderoso poderia quebrar a ECC com o algoritmo de Shor, mas nenhuma máquina conhecida publicamente consegue fazer isso atualmente em escala de criptomoedas.

O que substituirá a ECC?

Sistemas futuros podem usar esquemas padronizados de assinatura pós-quântica baseados em reticulados, hash ou outras técnicas, às vezes junto com a ECC durante a migração.

A ECC é segura hoje?

Quando selecionada e implementada corretamente, a ECC continua segura contra ataques clássicos práticos conhecidos, enquanto sistemas de longo prazo devem se preparar para a migração pós-quântica.

Conclusão

A criptografia de curvas elípticas é uma das principais tecnologias que protegem a propriedade de criptomoedas e a autorização de transações.

Ela cria uma relação matemática unidirecional entre uma chave privada secreta e uma chave pública que pode ser compartilhada.

Os esquemas de assinatura digital usam essa relação para comprovar a autorização sem revelar a chave privada.

O Bitcoin usa secp256k1 com assinaturas ECDSA e Schnorr, a Ethereum usa secp256k1 para contas de execução e BLS12-381 para validadores, e a Solana usa Ed25519 para assinaturas de transações.

A ECC também pode oferecer suporte a acordo de chaves, protocolos multisig, assinatura de limiar, compromissos e sistemas de provas de conhecimento zero.

Sua segurança depende de mais do que a matemática da curva.

Aleatoriedade segura, nonces de assinatura únicos, validação de chaves públicas, implementações de tempo constante, separação de domínio, armazenamento seguro de chaves e bibliotecas revisadas são essenciais.

Uma assinatura ECC válida comprova que a chave necessária autorizou dados específicos, mas não criptografa uma transação pública nem garante que a ação seja financeiramente segura.

Quando implementada corretamente, a ECC continua segura contra ataques clássicos práticos conhecidos, mas computadores quânticos suficientemente poderosos ameaçariam seus fundamentos de logaritmo discreto.

Por isso, os desenvolvedores de criptomoedas precisam proteger as chaves atuais e, ao mesmo tempo, projetar caminhos confiáveis de migração para a criptografia pós-quântica.

Você também pode gostar

BTC ETFs See $679M in Outflows
BTC ETFs See $679M in OutflowsBTC ETFs See $679M in Outflows
Citi sees BTC at $113K. What do institutions see?