技术标准

  • 助记词标准

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

    助记词生成seed

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

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

    助记词句子的处理

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

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

  • 比特币多签地址生成

    多签通过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>

    以太坊/Solana 多签源代码

    Github: https://github.com/bitbill/ownbit-multisig-contracts

    离线签名二维码格式

    bb_watch: 创建观察钱包

    bb_addcoin: 观察钱包添加币种

    bb_sign: 签名一个交易

    bb_tx: 将交易广播至网络

    编码格式参考:zlibCompress + Base64