技术标准
助记词标准
- 助记词符合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