Это просто быстрая проверка вменяемости, так как я не нашел много по этому вопросу, который был окончательным, но я хочу, чтобы убедиться, что я делаю правильно, с моей детерминированный менеджер бумажник.
Я хотел бы реализовать поддержку сжатых адресов. Я понял, сжатые частные WIF ключи достаточно быстро: липкость на 01 до конца закрытого ключа шестнадцатеричном и base58-кодирования его. Обработка открытого ключа была не так хорошо документированы. Я пытался смотреть на bitaddress.org и в Casascius источника адрес полезности для некоторых подсказок, но тот называет библиотеку не для этого проекта, и я не мог понять смысл первого.
Если у меня есть это право, это оказалось почти так же просто: разделить открытый ключ (менее ведущие 04) пополам и посмотреть на последнюю цифру второй половины. Если эта цифра четная, снабдите первую половину с 02; если нечетные, перед именем первой половины с 03. раздвинуть результат через тот же хэш и base58-кодирование процесс для получения сжатого адреса.
Есть ли звук этого права?
Переход в другую стороне (из прессованного открытого ключа несжатого открытого ключа) выглядит, как это было бы гораздо сложнее, но мне не нужно, что функциональность для того, что я делаю.
(Если кто-то заинтересованы, вышеупомянутый детерминированным менеджер бумажника включает в себя некоторую Python коды не bignum или ECDSA зависимостей, вычисляют адреса и закрытые ключи из шестнадцатеричных частных ключей. В своем нынешнем виде, он декодирует в Bitcoin или Litecoin адрес в любом сжатом или несжатом формате .)