技術基準
記憶法の標準
- ニーモニックは BIP39 標準に準拠しており、デフォルトで 12 ワードのニーモニックが生成されます。
ニーモニックからシードを生成する
- BIP39 標準プロセスを使用してシードを生成します。
- PBKDF2 アルゴリズムでは、ニーモニック文がパスワードとして使用され、「ニーモニック」がソルトとして使用されます (パスフレーズは空です)。
記憶文の処理
- 英語の記憶術の最初と最後のスペースを削除し、各単語の途中にスペースを追加します。
- 中国語の記憶術の最初と最後のスペースを削除し、各単語の途中にスペースを追加します。
ビットコインのマルチ署名アドレス生成
マルチ署名は、P2SH を通じて実装され、bitcoind (LTC の litecoind など他の通貨も同様) の createmultisig インターフェイスを呼び出してアドレスを作成します。または、次のロジックと同等です (2-3 マルチ署名を例にとります)。
1. redeemScript = <OP_2> <A 公開鍵> <B 公開鍵> <C 公開鍵> <OP_3> <OP_CHECKMULTISIG>
2. redeemScriptHash = RIPEMD160(SHA256(redeemScript))
3. P2SHアドレス = base58check.Encode("05", redeemScriptHash)
マルチ署名公開鍵配置順序
- 公開鍵の順序は、公開鍵自体の辞書式順序(16 進文字列を ASCII 文字列として)でソートされます。
- たとえば、A の公開鍵: c0f832...、B の公開鍵: aaff01...、C の公開鍵: b8facc... の場合、次のようになります: redeemScript = <OP_2> <B 公開鍵> ; <C 公開鍵> <A 公開鍵> <OP_3> <OP_CHECKMULTISIG>
Ethereum/Solana マルチ署名ソースコード
Github: https://github.com/bitbill/ownbit-multisig-contracts
オフライン署名QRコード形式
bb_watch: ウォッチウォレットを作成する
bb_addcoin: ウォレットが通貨を追加するのを見る
bb_sign: トランザクションに署名する
bb_tx: トランザクションをネットワークにブロードキャストする
エンコード形式のリファレンス: zlibCompress + Base64