Normas técnicas
Estándares mnemotécnicos
- El mnemónico cumple con el estándar BIP39 y se genera un mnemónico de 12 palabras de forma predeterminada;
Generar semilla a partir de mnemónicos
- Generar semillas utilizando el proceso estándar BIP39;
- En el algoritmo PBKDF2, la oración mnemotécnica se utiliza como contraseña y "mnemonic" se utiliza como sal (la frase de contraseña está vacía);
Procesamiento de oraciones mnemotécnicas
- Eliminar espacios al principio y al final de los mnemónicos en inglés, y añadir un espacio en el medio de cada palabra;
- Eliminar espacios al principio y al final de los mnemónicos chinos, y añadir un espacio en el medio de cada palabra;
Generación de direcciones multifirma de Bitcoin
La multi-firma se implementa a través de P2SH, llamando a la interfaz createmultisig de bitcoind (otras monedas son similares, como litecoind de LTC) para crear una dirección, o es equivalente a la siguiente lógica (tomando 2-3 multi-firmas como ejemplo):
1. canjearScript = <OP_2> <clave pública A> <clave pública B> <clave pública C> <OP_3> <OP_CHECKMULTISIG>
2. canjearScriptHash = RIPEMD160(SHA256(canjearScript))
3. P2SHAddress = base58check.Encode("05", canjearScriptHash)
Orden de arreglo de clave pública de múltiples firmas
- El orden de las claves públicas se ordena en el orden lexicográfico de las propias claves públicas (cadenas hexadecimales como cadenas ASCII);
- Por ejemplo: clave pública de A: c0f832..., clave pública de B: aaff01..., clave pública de C: b8facc..., luego: canoneos7600 = <OP_2> <clave pública de B> ; <clave pública de C> <clave pública de A> <OP_3> <OP_CHECKMULTISIG>
Código fuente multifirma de Ethereum/Solana
Github: https://github.com/bitbill/ownbit-multisig-contracts
Formato de código QR de firma sin conexión
bb_watch: Crea una billetera de vigilancia
bb_addcoin: observa cómo la billetera agrega moneda
bb_sign: Firmar una transacción
bb_tx: transmite transacciones a la red
Referencia del formato de codificación: zlibCompress + Base64