Перейти к содержимому
buybitcoinsmart

Глоссарий / Адреса и ключи

Публичный ключ без сжатия

Что такое Публичный ключ без сжатия?
Публичный ключ без сжатия записывает обе координаты точки кривой за префиксом 0x04, занимает 65 байт и встречается сегодня в основном в ключах, созданных до 2012 года.

Самое раннее программное обеспечение биткоина записывало полные значения x и y, поэтому биткоины 2009 и 2010 годов лежат за адресами, производными от ключей длиной 65 байт. Затем SegWit закрыл формат: BIP-143 запрещает ключи без сжатия в программах свидетеля версии 0, и ни один адрес bc1q не может их использовать. Если вы восстанавливаете старый бумажный кошелек, именно эта деталь решает, появятся ли ваши средства.

Как это работает

Публичный ключ без сжатия устроен так же буквально, как называется. Один байт префикса 0x04 объявляет формат, затем 32 байта дают координату x, затем 32 байта дают координату y, всего 65 байт. Чтобы его прочитать, ничего вычислять не нужно: обе половины точки уже на месте, и именно поэтому исходная реализация выбрала его на оборудовании того времени.

Правила действительности на базовом уровне никогда не выделяли этот формат. Узел, проверяющий расход устаревшего типа pay-to-public-key-hash или pay-to-script-hash, принимает ключ без сжатия без возражений, и биткоины, заблокированные на такой ключ в 2010 году, остаются доступными для траты без какого-либо срока. Изменилось все, что построено сверху: кошельки BIP-32 создают только сжатые ключи, поэтому сид-фраза никогда не даст ключ без сжатия, а SegWit сделал их недействительными в расходах версии свидетеля 0.

Плата за лишние 32 байта взимается при трате. Устаревший вход со сжатым ключом занимает около 148 vbytes; тот же вход с ключом без сжатия занимает около 180 vbytes, примерно на 22 % больше при одинаковой трате. Именно при объединении дюжины таких входов во время всплеска комиссий эта разница перестает быть мелочью.

Где это встречается

Три артефакта до сих пор передают людям ключи без сжатия, и все три относятся к одной эпохе.

Бумажные кошельки, напечатанные сайтами-генераторами с 2011 по 2013 год, обычно давали адрес, начинающийся с 1, и строку в формате импорта кошелька (Wallet Import Format), начинающуюся с 5, маркер несжатой стороны формата. Физические монеты серии Casascius, выпущенные между 2011 и 2013 годами, скрывали такую же строку под голограммой, выявляющей вскрытие. А приватные ключи, экспортированные из очень раннего программного обеспечения кошельков, появились задолго до перехода.

Восстановление старого ключа

Ловушка не в кодировке, а в том, что один приватный ключ дает два разных адреса. Хеширование ключа длиной 65 байт дает один устаревший адрес; хеширование сжатой версии того же ключа длиной 33 байта дает совершенно другой. Импортируйте ключ в современное программное обеспечение, которое исходит из сжатия, и баланс может выглядеть нулевым, пока биткоины остаются нетронутыми на другом адресе.

Кошельки, которые хорошо работают со старым материалом, в том числе Electrum, проверяют оба производных адреса, когда вы не импортируете ключ, а переводите с него все средства (sweep). Такой перевод всех средств (sweep) к тому же безопаснее: биткоины переходят на адрес, контролируемый вашей текущей сид-фразой, так что распечатка, пролежавшая в ящике, сфотографированная смартфоном или виденная прежним владельцем, больше не может ничего потратить. Проверьте обе формы адреса в обозревателе блоков, прежде чем решить, что восстановление не удалось.

Не путать с

Часто задаваемые вопросы

Можно ли еще тратить биткоины, лежащие за публичным ключом без сжатия?

Да. Устаревшие выходы принимают ключи без сжатия без срока действия, и ни одно обновление этого не изменило. Единственное ограничение в том, что расходы нативного SegWit их отклоняют, поэтому биткоины должны сначала пройти через устаревший вход.

Почему мой старый приватный ключ показывает два разных адреса?

Потому что сжатая и несжатая версии одного ключа являются разными наборами байт, и каждая хешируется в собственный адрес. Проверьте баланс обоих, прежде чем сделать вывод, что восстановление не удалось.

Читайте далее

Связанные термины

Еще в разделе «Адреса и ключи»

Читать эту страницу на английском