Один из самых успешных разработчиков Биткоина пытается найти решение давней проблемы платёжной сети. На сегодняшний день Биткоин больше известен как новый вид личного контроля над средствами, нежели своим удобством или практичностью. Вы наверняка слышали множество историй о пользователях, потерявших свои закрытые ключи, или случайно отправивших биткоины на ошибочный адрес из-за опечатки или другой оплошности.
Все предлагаемые сейчас идеи уйти от использования открытых и закрытых ключей – длинных цепочек символов, контролирующих кошельки Биткоина – выглядят не очень привлекательно. Например, одна из таких идей предлагает полностью скрыть адреса, чтобы пользователи даже не догадывались о том, что они пользуются биткоинами.
Так или иначе, неудобные длинные адреса до сих пор используются. Именно этой проблеме посвящён новый проект под названием Bech32 разработчика Bitcoin Core Питера Вюлле (Pieter Wuille) (над которым он работает вместе с техническим директором Blockstream Грегом Максвеллом (Greg Maxwell).
Цель проекта – разработать новый вид криптовалютного адреса, который будет предупреждать пользователей о вводе неверного адреса получателя. Эта идея возникла у разработчиков, когда они осознали необходимость создания новой схемы адресов после активации SegWit.
В случае реализации этого технического обновления, оно в любом случае потребует новый формат криптовалютного адреса.
Вюлле говорит: «Поскольку нам в любом случае придётся установить новый стандарт оригинальных адресов для SegWit, почему бы не попытаться создать что-то более удобное?».
Небольшие изменения
Необходимо отметить, что новый формат не будет полностью заменять старый. Это будет альтернативное решение, используемое для транзакций SegWit в случае их активации в блокчейне Биткоина.
«Старые адреса продолжат действовать таким же образом, как они применялись ранее. Использовать адреса Bech32 будут только собственные выходы SegWit», - объясняет Вюлле.
Напомним, адрес Биткоина представляет собой преобразованный хэш открытого ключа, на который пользователи могут отправить средства. Его уникальный идентификационный номер похож на номер кредитной карты, и вы можете опубликовать эту цепочку символов на публичной странице или отправить её кому-либо.
На данный момент адреса Биткоина кодируются в формате Base58, то есть уникальный идентификационный номер отображается в виде цепочки, состоящей из букв и цифр.
Этот формат уже подразумевает определённую защиту пользователя, например, он не даёт использовать шесть похожих друг на друга символов. Так, едва заметное отличие между «0» и «О» может легко ввести в заблуждение пользователя, переписывающего адрес Биткоина с экрана компьютера. Во избежание путаницы, использовать оба этих символа не разрешается.
Формат Base32, который является частью Bech32, идёт в этом отношении ещё дальше. Буквы в новых адресах могут быть либо только строчные, либо только прописные (комбинации не допускаются).
Пример старого формата адреса:
1DAY59hnbcTp36NbfvJ4pdKDfDTCS6zfpd
Пример нового формата адреса:
bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4
Кроме того, новый формат подразумевает определение ошибок.
Вюлле разработал демо-версию решения, отмечающую ошибки ввода ключа. Если вы набираете адрес неверно – например, печатаете не ту букву – это показывается, в некоторых случаях ошибочная буква подчёркивается красным.
Предложение по улучшению Биткоина (BIP), в котором описывается данная схема, содержит и другие технические детали, которые могут заинтересовать разработчиков кошельков, планирующих реализовать новый формат.
Например, Bech32 требуется меньше пространства для QR-кодов, которые можно отсканировать при помощи смартфона (или другого устройства) для получения адреса Биткоина. Кроме того, расшифровка нового формата осуществляется быстрее, чем с Base58.
Перспективы на будущее
Пока новая схема предназначена для публичных криптовалютных адресов. Однако, по словам Вюлле, в будущем аналогичную технологию можно будет применять и для закрытых ключей.
О своём желании использовать новый формат уже сообщили некоторые разработчики – например, несколько команд, работающих над реализациями Lightning Network, криптовалютный кошелёк Electrum, а также программисты Litecoin.
Несмотря на то, что новый формат был создан для Биткоина, сфера его использования не ограничивается криптовалютным пространством.
Например, широко применяемый формат Base64 используется для кодирования всех видов данных.
В случае активации новой схемы адресов пользователям понадобится время на то, чтобы познакомиться и освоить новую технологию, поскольку для осуществления транзакции необходимо, чтобы формат поддерживали и отправитель, и получатель.
Новое решение будет также удобно использовать для адресов P2SH, представляющих собой адреса для продвинутых (или менее используемых) видов транзакций Биткоина, например, тех, для осуществления которых необходимо подтверждение двух из трёх участников.
Вюлле резюмирует: «Дело в том, что если мы всё-таки сможем использовать оригинальное решение SegWit, нам необходимо установить стандарт для его адресов, который должен быть доступен, заранее».