技术标准
助记词标准
- 助记词符合BIP39标准,默认生成12个单词的助记词;
助记词生成seed
- 采用BIP39标准流程生成seed;
- 在PBKDF2算法中,助记词句子作为密码,"mnemonic"作为盐(passphrase为空);
助记词句子的处理
- 英文助记词头尾去空格,每个单词中间加一个空格;
- 中文助记词头尾去空格,每个字中间加一个空格;
公私钥生成的cointype及是否压缩
助记词生成
coin BIP44 cointype 是否压缩公钥 BTC 0 是 BCH 0(和BTC地址一致) 是 BSV 0(和BTC地址一致) 是 LTC 2 是 ETH 60 - ETC 60(和ETH地址一致) - USDT -(OmniLayer,基于BTC) - DCR 42 是 DASH 5 是 DOGE 3 是 DGB 20 是 ZEN 121 是 XZC 136 是 RVN 175 是 GO 60(和ETH地址一致) - POA 60(和ETH地址一致) - XRP 144 - XLM 148(遵循 sep-0005) - 以BTC为例,
第一个接收地址生成的BIP44路径为:m/44'/0'/0'/0/0
第二个接收地址:m/44'/0'/0'/0/1
第一个找零地址:m/44'/0'/0'/1/0
第二个找零地址:m/44'/0'/0'/1/1
导入ETH私钥/Keystore生成
coin BIP44 cointype 是否压缩公钥 BTC - 否 BCH - 否 BSV - 否 LTC - 否 ETH - - ETC - - USDT - - DCR - 否 DASH - 否 DOGE - 否 DGB - 否 ZEN - 否 XZC - 否 RVN - 否 GO - - POA - - XRP - - XLM - - 导入WIF私钥生成
coin BIP44 cointype 是否压缩公钥 BTC - 5开头的WIF:否,K/L开头的WIF:是 BCH - (和BTC一致) BSV - (和BTC一致) LTC - (和BTC类似) ETH - - ETC - - USDT - - DCR - - DASH - (和BTC类似) DOGE - (和BTC类似) DGB - - ZEN - - XZC - - RVN - - GO - - POA - - XRP - - XLM - - 多签
coin BIP44 cointype 是否压缩公钥 BTC 0 是 LTC 0(和BTC同样公钥生成多签地址) 是 DGB 0(和BTC同样公钥生成多签地址) 是 BCH 0(和BTC同样公钥生成多签地址) 是 BSV 0(和BTC同样公钥生成多签地址) 是 DASH 0(和BTC同样公钥生成多签地址) 是 DOGE 0(和BTC同样公钥生成多签地址) 是 BTC多签公钥生成的BIP44路径为:m/44'/0'/0'/0/0
ETH多签合约地址:https://github.com/bitbill/bitbill-multisig-contracts
多签地址生成
多签通过P2SH实现,通过调用 bitcoind(其他币种类似,如 LTC 的litecoind) createmultisig 接口创建地址,或者和以下逻辑等同(以 2-3 多签为例):
1. redeemScript = <OP_2> <A pubkey> <B pubkey> <C pubkey> <OP_3> <OP_CHECKMULTISIG>
2. redeemScriptHash = RIPEMD160(SHA256(redeemScript))
3. P2SHAddress = base58check.Encode("05", redeemScriptHash)
多签公钥排列顺序
- 公钥排列顺序按照公钥本身(十六进制字符串作为ASCII字符串)字典顺序排序;
- 例如:A的pubkey: c0f832..., B的pubkey: aaff01...,C的pubkey: b8facc...,则:redeemScript = <OP_2> <B pubkey> <C pubkey> <A pubkey> <OP_3> <OP_CHECKMULTISIG>
离线签名二维码格式
bb_watch: 创建观察钱包
bb_addcoin: 观察钱包添加币种
bb_sign: 签名一个交易
bb_tx: 将交易广播至网络
编码格式参考:zlibCompress + Base64