Технические стандарты
Мнемонические стандарты
- Мнемоника соответствует стандарту BIP39, по умолчанию генерируется мнемоника из 12 слов;
Генерация семян из мнемоники
- Генерация семян с использованием стандартного процесса BIP39;
- В алгоритме PBKDF2 в качестве пароля используется мнемоническое предложение, а в качестве соли — «mnemonic» (парольная фраза пуста);
Обработка мнемонических предложений
- Удаляйте пробелы в начале и конце английских мнемоник и добавляйте пробел в середине каждого слова;
- Удаляйте пробелы в начале и конце китайских мнемоник и добавляйте пробел в середине каждого слова;
Генерация адреса Bitcoin с мультиподписью
Мультиподпись реализуется через P2SH, путем вызова интерфейса bitcoind (другие валюты работают аналогично, например, litecoind LTC) 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: c0f832..., открытый ключ B: aaff01..., открытый ключ C: b8facc..., тогда: redeemScript = <OP_2> <B pubkey> ; <C pubkey> <A pubkey> <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