技术标准

  • 助记词标准

    - 助记词符合BIP39标准,默认生成12个单词的助记词;

    助记词生成seed

    - 采用BIP39标准流程生成seed;

    - 在PBKDF2算法中,助记词句子作为密码,"mnemonic"作为盐(passphrase为空);

    助记词句子的处理

    - 英文助记词头尾去空格,每个单词中间加一个空格;

    - 中文助记词头尾去空格,每个字中间加一个空格;

  • 公私钥生成的cointype及是否压缩

    助记词生成

    coinBIP44 cointype是否压缩公钥
    BTC0
    BCH0(和BTC地址一致)
    BSV0(和BTC地址一致)
    LTC2
    ETH60-
    ETC60(和ETH地址一致)-
    USDT-(OmniLayer,基于BTC)-
    DCR42
    DASH5
    DOGE3
    DGB20
    ZEN121
    XZC136
    RVN175
    GO60(和ETH地址一致)-
    POA60(和ETH地址一致)-
    XRP144-
    XLM148(遵循 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生成

    coinBIP44 cointype是否压缩公钥
    BTC-
    BCH-
    BSV-
    LTC-
    ETH--
    ETC--
    USDT--
    DCR-
    DASH-
    DOGE-
    DGB-
    ZEN-
    XZC-
    RVN-
    GO--
    POA--
    XRP--
    XLM--

    导入WIF私钥生成

    coinBIP44 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--

    多签

    coinBIP44 cointype是否压缩公钥
    BTC0
    LTC0(和BTC同样公钥生成多签地址)
    DGB0(和BTC同样公钥生成多签地址)
    BCH0(和BTC同样公钥生成多签地址)
    BSV0(和BTC同样公钥生成多签地址)
    DASH0(和BTC同样公钥生成多签地址)
    DOGE0(和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