技術標準
助記詞標準
- 助記詞符合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