技術標準

  • 助記詞標準

    - 助記詞符合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(私鑰作為seed再次生成私鑰)-

    以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

    XLM:用 m/44'/148'/0'/0/0 生成私鑰,該私鑰作為seed生成ed25519私鑰。

    導入ETH私鑰/Keystore生成

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

    XLM:該私鑰作為seed生成ed25519私鑰。

    導入BTC WIF私鑰生成

    coinBIP44 cointype是否壓縮公鑰
    BTC-5開頭的WIF:否,K/L開頭的WIF:是
    BCH-(和BTC一致)
    BSV-(和BTC一致)
    LTC-
    ETH--
    ETC--
    USDT--
    DCR-
    DASH-
    DOGE-
    DGB-
    ZEN-
    XZC-
    RVN-
    GO--
    POA--
    XRP--
    XLM--

    XLM:該私鑰作為seed生成ed25519私鑰。

    多簽

    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

  • BTC多簽地址生成

    BTC多簽通過P2SH實現,通過調用 bitcoind 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)

    BTC多簽公鑰排列順序

    - 發起人的公鑰排在第一個;

    - 其它人的公鑰排列順序按照公鑰本身(十六進製字符串作為ASCII字符串)字典順序排序;

    - 例如:A為發起人,A的pubkey: c0f832..., B的pubkey: aaff01...,C的pubkey: b8facc...,則:redeemScript = <OP_2> <A pubkey> <B pubkey> <C pubkey> <OP_3> <OP_CHECKMULTISIG>

    其它幣多簽地址生成和公鑰排列順序

    - 地址生成邏輯和BTC一致;

    - 公鑰排列順序按照公鑰本身(十六進製字符串作為ASCII字符串)字典順序排序;

    - 例如:A的pubkey: c0f832..., B的pubkey: aaff01...,C的pubkey: b8facc...,則:redeemScript = <OP_2> <B pubkey> ; <C pubkey> <A pubkey> <OP_3> <OP_CHECKMULTISIG>