API Java
HSM Dinamo
Carregando...
Procurando...
Nenhuma entrada encontrado
Blockchain

Descrição detalhada

Operações de suporte à segurança de estruturas baseadas em Blockchain.

As APIs do módulo Blockchain são destinadas às operações específicas para processamento de criptografia de redes blockchain e especificações BIP, EIP e SLIP.

A assinatura ECDSA por exemplo é especializada para evitar signature malleability, com a a restrição de LOW-S.

Exemplos de operações disponíveis no módulo Blockchain:

  1. Geração de chaves Extended Private Key (XPrv) no padrão BIP32.
  1. Derivação de chaves filha (Child Key Derivation) nos padrões BIP32 e SLIP10.
  1. Recuperação de endereço.
  1. Assinaturas digitais ECDSA, nos padrões SECG strict DER (BIP62/66 e BIP 146) e Schnorr no padrão BIP340;
  1. Assinaturas digitais EdDSA curva 25519.
  1. Verificação de assinatura.
  1. Importação e exportação de chaves via diversos formatos (WIF, Hex, Sec1, Xpriv etc).
  1. Recuperação da chave pública com diversos formatos (BIP32 Xpub, Sec1 com e sem compressão, Schnorr BIP340 etc).
  1. Split e Recover de segredos com esquema M de N usando SSS (Shamir's Secret Sharing).
  1. Operações com a curva alt_bn128, de acordo com a EIP-196.
Atenção
O módulo blockchain não trata ou monta os detalhes da transação de cada rede em particular; isto deve estar a cargo da aplicação. A função do HSM é proteger a chave privada em ambiente seguro, gerar e retornar uma assinatura conforme os parâmetros passados pela aplicação chamadora.

Redes compatíveis

A seguir a lista das redes cuja criptografia é compatível com o HSM:

Observação
Os algoritmos listados são os atualmente implementados no HSM que permitem a assinatura de transações na rede e não necessariamente cobrem todas as opções definidas na especificação da rede. Em caso de dúvida sinta-se à vontade para procurar o suporte da Dinamo Networks e esclarecer suas dúvidas.
Logo Nome Símbolo Alg. Assinatura no HSM Curva Obs
Bitcoin BTC ECDSA secp256k1
Ethereum ETH ECDSA secp256k1
Tether USDT ECDSA secp256k1 token em diversas redes (ex.: Ethereum, Algorand)
Binance Coin BNB ECDSA secp256k1
image USD Coin USDC ECDSA secp256k1 token
Solana SOL EdDSA edwards25519
XRP XRP ECDSA, EdDSA secp256k1, edwards25519
Terra Classic LUNC ECDSA secp256k1
Cardano ADA EdDSA edwards25519
Avalanche AVAX ECDSA secp256k1
image Dogecoin DOGE ECDSA secp256k1
image Binance USD BUSD ECDSA secp256k1 token
Polkadot DOT ECDSA, EdDSA secp256k1, edwards25519
Shiba Inu SHIB ECDSA secp256k1 token
Wrapped Bitcoin WBTC ECDSA, EdDSA secp256k1, edwards25519 token
Polygon MATIC ECDSA secp256k1
Cronos CRO ECDSA secp256k1
Dai DAI ECDSA secp256k1 token
NEAR Protocol NEAR ECDSA secp256k1
Litecoin LTC ECDSA secp256k1
TRON TRX ECDSA secp256k1
image ApeCoin APE ECDSA secp256k1 token
Cosmos ATOM ECDSA secp256k1
Bitcoin Cash BCH ECDSA secp256k1
Algorand ALGO EdDSA edwards25519
Brazilian Digital Token BRZ ECDSA secp256k1 token
Celo Brazilian Real CREAL ECDSA secp256k1 token
Celo Dollar CUSD ECDSA secp256k1 token
Axie Infinity AXS ECDSA secp256k1 token/coin
Fantom FTM ECDSA secp256k1
Uniswap UNI ECDSA secp256k1 token
Stellar XLM EdDSA edwards25519
Tezos XTZ ECDSA, EdDSA secp256k1, edwards25519
CELO CELO ECDSA secp256k1 token/coin
image Toncoin TON EdDSA edwards25519
Chainlink LINK ECDSA secp256k1 token

A implementação do HSM está de acordo com os padrões definidos na documentação listada abaixo:

Funções

byte[] bchainSignHash (byte bType, byte bHashMode, byte[] pbHash, String strPk) throws TacException
 Assina um hash usando o módulo blockchain.
 
byte[] bchainGetPubKey (byte bType, String jszId) throws TacException
 Recupera uma chave pública a partir de uma chave privada usando o módulo blockchain.
 

Funções

◆ bchainSignHash()

byte[] bchainSignHash ( byte bType,
byte bHashMode,
byte[] pbHash,
String strPk ) throws TacException

Assina um hash usando o módulo blockchain.

Parâmetros
bTypeTipo da assinatura a ser gerada. Pode ser um dos valores abaixo.
Valor Significado
TacNDJavaLib.DN_BCHAIN_SIG_DER_ECDSA Assinatura DER, no formato v || DER. SECG!SEC1 strict DER com low S como descrito em BIP62/66, BIP146, EIP2. Tendo 'v' o tamanho de 1 byte. 'v' é o bit de paridade de 'r' podendo ter os valores 0 ou 1.
TacNDJavaLib.DN_BCHAIN_SIG_RAW_ECDSA Assinatura RAW, no formato v || r || s. Tendo 'v' o tamanho de 1 byte e 'r' e 's' cada uma o tamanho de 32 bytes. 'v' é o bit de paridade de 'r' podendo ter os valores 0 ou 1.
TacNDJavaLib.DN_BCHAIN_SIG_BIP340 Assinatura BIP340 - Schnorr 64 bytes.
bHashModeTipo do hash.
Valor Significado
TacNDJavaLib.DN_BCHAIN_HASH_BTC_H160 Bitcoin H160.
TacNDJavaLib.DN_BCHAIN_HASH_RIPEMD160 RIPEMD160.
TacNDJavaLib.DN_BCHAIN_HASH_SHA256 SHA256
TacNDJavaLib.DN_BCHAIN_HASH_BTC_SHA256_2X Bitcoin SHA256 2x.
TacNDJavaLib.DN_BCHAIN_HASH_KECCAK256 KECCAK256.
pbHashHash a ser assinado.
strPkIdentificador da chave privada.
Retorna
Assinatura no formato especificado em bType.
Exceções
TacException

◆ bchainGetPubKey()

byte[] bchainGetPubKey ( byte bType,
String jszId ) throws TacException

Recupera uma chave pública a partir de uma chave privada usando o módulo blockchain.

Parâmetros
bTypeFormato da chave pública a ser exportada. Pode ser um dos valores abaixo.
Valor Significado
TacNDJavaLib.DN_BCHAIN_PBK_SEC1_UNCOMP ECDSA SEC1 não comprimida.
TacNDJavaLib.DN_BCHAIN_PBK_SEC1_COMP ECDSA SEC1 comprimida.
TacNDJavaLib.DN_BCHAIN_PBK_BIP340 Schnorr, BIP-340.
TacNDJavaLib.DN_BCHAIN_PBK_ED25519 Ed25519.
TacNDJavaLib.DN_BCHAIN_PBK_AT_ALGORAND Algorand.
TacNDJavaLib.DN_BCHAIN_PBK_BIP32_XPUB BIP32 XPub.
TacNDJavaLib.DN_BCHAIN_PBK_AT_SOL Solana.
jszIdIdentificador da chave privada.
Retorna
Chave pública no formato especificado em bType.
Exceções
TacException