Operaciones de apoyo a la seguridad de las estructuras basadas en Blockchain.
Las API del módulo Blockchain están destinadas a operaciones específicas para procesar la criptografía de la red blockchain y las especificaciones BIP, EIP y SLIP.
La firma ECDSA, por ejemplo, está especializada para evitar maleabilidad de la firmacon la restricción de BAJA-S
.
Ejemplos de operaciones disponibles en el módulo Blockchain:
- Generación de claves privadas extendidas (XPrv) en el estándar BIP32.
- Derivación de claves infantiles en las normas BIP32 y SLIP10.
- Recuperación de direcciones.
- Firmas digitales ECDSA, en las normas SECG DER estrictas (BIP62/66 y BIP 146) y Schnorr en la norma BIP340;
- Firmas digitales Curva EdDSA 25519.
- Verificación de firmas.
- Importación y exportación de claves mediante varios formatos (WIF, Hex, Sec1, Xpriv, etc.).
- Recuperación de la clave pública con diferentes formatos (BIP32 Xpub, Sec1 con y sin compresión, Schnorr BIP340 etc).
- Dividir y recuperar secretos con el esquema M de N utilizando SSS (Shamir's Secret Sharing).
- Operaciones con la curva
alt_bn128
según la EIP-196.
- Atención
- El módulo blockchain no maneja ni ensambla los detalles de la transacción para cada red en particular; esto debe dejarse a la aplicación. El trabajo del HSM es proteger la clave privada en un entorno seguro, generar y devolver una firma de acuerdo con los parámetros pasados por la aplicación que llama.
Redes compatibles
A continuación figura la lista de redes cuyo cifrado es compatible con HSM:
- Observación
- Los algoritmos enumerados son los actualmente implementados en el HSM que permiten firmar transacciones en la red y no cubren necesariamente todas las opciones definidas en la especificación de red. Dinamo Networks Si tiene alguna pregunta, no dude en ponerse en contacto y preguntar.
Entonces | Nombre | Símbolo | Alg. Firma en HSM | Curva | Obs |
| Bitcoin | BTC | ECDSA | secp256k1 | |
| Ethereum | ETH | ECDSA | secp256k1 | |
| Tether | USDT | ECDSA | secp256k1 | token en varias redes (por ejemplo, Ethereum, Algorand) |
| Binance Coin | BNB | ECDSA | secp256k1 | |
| Moneda USD | USDC | ECDSA | secp256k1 | ficha |
| Solana | SOL | EdDSA | edwards25519 | |
| XRP | XRP | ECDSA, EdDSA | secp256k1, edwards25519 | |
| Terra Classic | LUNC | ECDSA | secp256k1 | |
| Cardano | ADA | EdDSA | edwards25519 | |
| Avalancha | AVAX | ECDSA | secp256k1 | |
| Dogecoin | DOGE | ECDSA | secp256k1 | |
| Binance USD | BUSD | ECDSA | secp256k1 | ficha |
| Polkadot | DOT | ECDSA, EdDSA | secp256k1, edwards25519 | |
| Shiba Inu | SHIB | ECDSA | secp256k1 | ficha |
| Bitcoin envuelto | WBTC | ECDSA, EdDSA | secp256k1, edwards25519 | ficha |
| Polígono | MATIC | ECDSA | secp256k1 | |
| Cronos | CRO | ECDSA | secp256k1 | |
| Dai | DAI | ECDSA | secp256k1 | ficha |
| Protocolo NEAR | CERCA DE | ECDSA | secp256k1 | |
| Litecoin | LTC | ECDSA | secp256k1 | |
| TRON | TRX | ECDSA | secp256k1 | |
| ApeCoin | EPA | ECDSA | secp256k1 | ficha |
| Cosmos | ATOM | ECDSA | secp256k1 | |
| Bitcoin Efectivo | BCH | ECDSA | secp256k1 | |
| Algoritmo | ALGO | EdDSA | edwards25519 | |
| Token digital brasileño | BRZ | ECDSA | secp256k1 | ficha |
| Celo Real Brasileño | CREAL | ECDSA | secp256k1 | ficha |
| Celo Dólar | CUSD | ECDSA | secp256k1 | ficha |
| Axie Infinito | AXS | ECDSA | secp256k1 | ficha/moneda |
| Fantom | FTM | ECDSA | secp256k1 | |
| Uniswap | UNI | ECDSA | secp256k1 | ficha |
| Estelar | XLM | EdDSA | edwards25519 | |
| Tezos | XTZ | ECDSA, EdDSA | secp256k1, edwards25519 | |
| CELO | CELO | ECDSA | secp256k1 | ficha/moneda |
| Toncoin | TON | EdDSA | edwards25519 | |
| Enlace en cadena | ENLACE | ECDSA | secp256k1 | ficha |
La aplicación del HSM cumple las normas definidas en la documentación que se indica a continuación:
- BIP32 - Carteras deterministas jerárquicas
- PIF62 - Manejar la maleabilidad
- BIP66 - Firmas DER estrictas
- BIP340 - Firmas Schnorr para secp256k1
- SLIP10 - Derivación de clave privada universal a partir de la clave privada maestra
- EIP-2 - Cambios en la bifurcación de Homestead
- EIP-196 - Contratos precompilados para la suma y la multiplicación escalar en la curva elíptica alt_bn128
- EIP-197 - Contratos precompilados para la comprobación óptima del emparejamiento ate en la curva elíptica alt_bn128
|
byte[] | bchainSignHash (byte bType, byte bHashMode, byte[] pbHash, String strPk) throws TacException |
| Firma un hash utilizando el módulo blockchain.
|
|
byte[] | bchainGetPubKey (byte bType, String jszId) throws TacException |
| Recuperar una clave pública a partir de una clave privada utilizando el módulo blockchain.
|
|
◆ bchainSignHash()
byte[] bchainSignHash |
( |
byte | bTipo, |
|
|
byte | bHashMode, |
|
|
byte[] | pbHash, |
|
|
Cadena | strPk ) lanza una TacException |
Firma un hash utilizando el módulo blockchain.
- Parámetros
-
bTipo | Tipo de suscripción que se va a generar. Puede ser uno de los valores siguientes.
Valor | Significado |
TacNDJavaLib.DN_BCHAIN_SIG_DER_ECDSA | Firma DER, en el formato v || DER. SECG!SEC1 DER estricto con S baja como se describe en BIP62/66, BIP146, EIP2. Con 'v' de un tamaño de 1 byte. v' es el bit de paridad de 'r' y puede tener los valores 0 ó 1. |
TacNDJavaLib.DN_BCHAIN_SIG_RAW_ECDSA | Firma RAW, en el formato v || r || s. v' tiene un tamaño de 1 byte y 'r' y 's' tienen un tamaño de 32 bytes cada uno. v' es el bit de paridad de 'r' y puede tener los valores 0 o 1. |
TacNDJavaLib.DN_BCHAIN_SIG_BIP340 | Firma BIP340 - Schnorr 64 bytes. |
|
bHashMode | Tipo hash.
|
pbHash | Hash a firmar. |
strPk | Identificador de la clave privada. |
- Devolución
- Firma en el formato especificado en
bTipo
.
- Excepciones
-
◆ bchainGetPubKey()
Recuperar una clave pública a partir de una clave privada utilizando el módulo blockchain.
- Parámetros
-
bTipo | Formato de la clave pública a exportar. Puede ser uno de los valores siguientes.
|
jszId | Identificador de la clave privada. |
- Devolución
- Clave pública en el formato especificado en
bTipo
.
- Excepciones
-