На прошлой неделе вышел Electrum 3.0. Новая версия одного из самых популярных «легких» кошельков для биткоина не только поддерживает SegWit, но и еще использует новый формат адреса Bech32.
Новую версию кошелька можно скачать здесь, а ознакомиться с информацией о версии – здесь. Если вы хотите понять, что значит это обновление, стоит сначала разобраться с проблемами, которые создает SegWit для разработчиков кошельков, а также с тем, какие последствия влечет за собой представление нового формата адреса Bech32.
Перенос пользовательских входов в новый формат адреса
SegWit - это обновление формата транзакций Биткоина. Его цель – более эффективное упорядочивание данных, он отделяет подпись от содержимого транзакции. Это позволяет транзакциям SegWit обходить ограничение размера блока в 1Мб без увеличения константы размера блока, для чего требуется хардфорк.
Однако для увеличения пропускной способности необходимо использовать новый формат адреса. Для этого пользователи должны перенести свои монеты на новый адрес SegWit, из которого они смогут создавать транзакции SegWit. Задача разработчиков кошельков заключается в том, чтобы реализовать SegWit таким образом, чтобы пользователи могли легко и без особых сложностей перенести свои входы на адреса SegWit. До сих пор все кошельки, которые активировали адреса SegWit - Ledger, Trezor, Core, GreenAddress, используют так называемые «составные адреса P2SH».
Это означает, что они берут существующий адрес Pay 2 Script Hash address, начинающийся с «3» - и помещают в него адрес SegWit. Это обеспечивает высокий уровень совместимости с существующими кошельками, поскольку каждый кошелек знаком с этими адресами. Однако это своего рода «костыль», что приводит к необходимости увеличения размера необходимого пространства для транзакции SegWit на 10%. Очевидно, что это противоречит цели увеличения пропускной способности.
Electrum 3.0 не только присоединился к клубу сторонников SegWit – он стал первым кошельком, не использующим составные p2sh адреса.
Неизвестный тип адреса
Если вы хотите использовать кошелек SegWit в Electrum, то вы должны сначала создать новый кошелек. Поскольку Electrum использует секретную фразу (seed) для генерации секретных ключей и адресов, реализация нового формата адреса в существующем кошельке вызовет проблемы. Поэтому вам нужно создать новый кошелек и согласиться на возможность создания кошелька SegWit.
Когда вы нажимаете на вкладку «receive», вас ждет сюрприз: вместо типичного адреса, начинающегося с 1 или 3 и состоящего из 30-34 символов, так называемого адреса Base58, вы увидите что-то вроде этого: «bc1q76awjp3nmklgnf0yyu0qncsekktf4e3qj248t4».
Адреса кошелька Electrum SegWit существуют в так называемом формате Bech32, который был адаптирован для SegWit в BIP173. Адреса Bech32 состоят из примерно 42 знаков и начинаются с bc1.
В отличие от составных адресов P2SH, адреса Bech32 сразу совместимы с SegWit. Это означает, что транзакции не требуется дополнительное пространство для размещения SegWit в адресе P2SH.
Кроме того, адреса Bech32 имеют несколько преимуществ по сравнению со старыми адресами Base58: QR-код меньше, защита от ошибки в определении типа является более сильной и она активирует автоматическое завершение.
Однако не все так гладко. Кроме Electrum нет кошелька, который использует этот формат. Кошелек Samourai также планирует включить его, но в настоящее время невозможно получить монеты в кошелек SegWit из других кошельков. Единственный возможный способ - использовать кошелек Electrum 3.0 без SegWit для перевода средств на кошелек SegWit Electrum 3.0.
Помимо этого, большинство обозревателей блоков (block explorers) озадачиваются при встрече с новым форматом. Blocktrail вообще не узнает его, и считает его неизвестным выходом OP_Return. Blockchain.info знает о формате, поскольку, когда вы активируете «show script and coinbase», он способен декодировать адрес. Однако он не показывает его как запись в базе данных с балансами.
Вследствие этих обстоятельств вполне вероятно, что переход от стандартных адресов к адресам SegWit в Electrum потребует некоторого времени, и что в течение длительного времени - если не всегда - оба формата адреса будут сосуществовать параллельно. Но когда вы захотите переместить свои средства в кошелек SegWit Electrum, будьте уверены -все пройдет как по маслу.