secp256k1 refere-se aos parâmetros da curva elíptica usados na criptografia de chave pública do Bitcoin, definida nos Padrões para Criptografia Eficiente (SEC), com referência à Certicom Research:O login do hiperlink está visível.。 Atualmente, os algoritmos secp256k1 e ECDSA são usados no Bitcoin. Originando-se da aplicação no Bitcoin, a maioria dos projetos blockchain, como o Ethereum, é usada posteriormente.
Antes do Bitcoin, o secp256k1 quase nunca era usado, mas agora está se tornando cada vez mais popular devido às suas várias funcionalidades boas. As curvas mais comumente usadas têm uma estrutura estocástica, mas secp256k1 é construída de forma especial, não aleatória, permitindo cálculos eficientes. Se totalmente otimizado, geralmente é mais de 30% mais rápido do que outras curvas. Além disso, ao contrário das curvas populares do NIST, as constantes do secp256k1 são selecionadas de forma previsível, o que reduz significativamente a probabilidade de criadores de curvas inserirem qualquer tipo de software backdoor na curva.
Assinaturas digitais
O núcleo da assinatura digital é a assinatura de chaves privadas e a verificação de chaves públicas; Assinatura é o processo de usar a chave privada para assinar os dados e gerar o valor da assinatura, e a verificação de assinatura é o processo de recuperar a chave pública a partir da assinatura. Assinaturas digitais têm três usos no Ethereum. Primeiro, a assinatura prova que o proprietário da chave privada implica que o proprietário da conta Ethereum autorizou o pagamento de ether ou a execução do contrato. Segundo, a prova de autorização é _inegável_ (inegável). Terceiro, a assinatura prova que os dados da transação não foram nem podem ser modificados por ninguém após a assinatura da transação.
A criptografia por trás das 20 principais criptomoedas
Endereço:O login do hiperlink está visível.
C# usa BouncyCastle.Cryptography para gerar pares de curvas elípticas SECP256K1 chaves
Como mostrado abaixo:
Chave privada: C66C343A5CD1A1D25B24A47D71047442EFED87DE12933779B1DAD914401776B5 Chave pública: 04C99FE3CDC4D0025CFA1CC0BC6401FF273ABC4C86EB912F4325D286C5162A2D21D7DF76C3E79CF4F7C2183F0E230D187B26BC8A5FCA2436EA91AC72B8EC0F4651
O código é o seguinte:
C# usa Nethereum.Signer para gerar pares de chaves
O código é o seguinte:
Revisar:
Referência:
O login do hiperlink está visível.
O login do hiperlink está visível. |