От Legacy к SegWit

Aleksander Kostylev
31.03.2020

Legacy и SegWit - два странных и непонятных криптоновичку слова, применяемых для обозначения формата адресов Bitcoin-кошельков. Несмотря на сложность вопроса, это одна из важных тем для тех, кто решил приобщиться к миру криптовалют. 

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

Многие уже заметили, что в различных кошельках адреса отличаются друг от друга: некоторые начинаются с “1”, другие с “3”, а есть и вовсе такие, что начинаются с “bc1”. Конечно же, такие отличия могут ввести в ступор пользователя - во-первых, не совсем понятно, для чего такое разнообразие, во-вторых, появляется страх потери средств при переводах (вдруг биткоины так и не дойдут до адресата).

Что ж, боязнь в целом оправдана, но “не так страшен черт как его малюют”. В этой статье мы разберем все тонкости связанные с bitcoin-адресами и покажем, что на самом деле все просто!

 

Что такое Bitcoin адрес

Адрес bitcoin кошелька (уникальный идентификатор) - это что-то вроде номера вашего криптовалютного счета. Он необходим как для получения биткоинов, так и для их отправки. Чтобы совершить перевод (транзакцию), пользователю необходимо указать адрес кошелька получателя. В свою очередь, получателю необходимо предоставить свой адрес отправителю. До недавнего времени, проблем с пониманием разных типов адресов и транзакций не было, поскольку все участники сети использовали единый формат биткоин адресов, а именно - Legacy. Но с развитием технологий, сменился не только формат записи адресов, но и способ обработки транзакций, совершаемых между адресами. 

Давайте более детально рассмотрим важные моменты этого вопроса...

 

Что такое Legacy

Legacy-адрес (P2PKH — Pay To Public Key Hash) — это стандартный формат Bitcoin адреса, изначально предусмотренный в протоколе и используемый большинством крипто-кошельков и сервисов. Такой адрес, предложенный создателем биткоина Сатоши Накамото, можно определить по цифре «1» (префикс), стоящей в начале каждого адреса (пример: 18sp5z1aYXMXGxef1xiPbCYnspcG8eQznh). Этот формат адресов был и остается самым ходовым с момента запуска сети bitcoin. Несмотря на широкое распространение Legacy-адресов, у них есть ряд прямых и косвенных недостатков:

 - Чувствительность к регистру вводимых данных и неудобство записи на бумаге;

 - Низкий приоритет для майнеров так как таких транзакций в блок помещается намного меньше;

 - Урезанная криптографическая стойкость используемой Биткоином цифровой подписи;

 - Не “гибкие” транзакции.

Технические тонкости!
Bitcoin использует алгоритм Base58 для преобразования открытых ключей в читаемый человеком формат. Он достаточно схож с известным Base64, но использует сокращенный алфавит, то есть некоторые символы не используются во избежание гомографических атак. В связи с этим, в Legacy-адресах мы никогда не увидим таких символов, как 0 (ноль), О (заглавная буква «о»), I (заглавная «i»), l (строчная «L») а также знаки "+" и "/".

*Гомографическая атака — способ, с помощью которого злоумышленник может ввести в заблуждение пользователей, используя тот факт, что многие различные символы выглядят одинаково (т.е. являются гомографами, отсюда и термин, хотя технически гомоглиф является более точным термином для разных символов, схожих друг с другом). Например, Trustee Wa11et.

Казалось бы, что недостатки не такие уж и существенные, однако, с ростом популярности биткоина они стали играть немаловажную роль. Как мы знаем, комиссия за транзакцию оплачивается в сатошах (малая часть биткоина), поэтому с ростом стоимости самого биткоина цена за транзакцию тоже стала расти. Конечно, при переводе 10 000$ в BTC, комиссия в 5$ будет казаться не большой, но для микро переводов, где такая комиссия составит 10%, а то более от суммы перевода - это значительный недостаток. Добавим к этому медленные переводы и все - “приплыли”!

 

Что такое SegWit

До конца лета 2017 года рядовые пользователи BTC успешно пользовались классическими Legacy адресами для осуществления транзакций. Но 24 августа в сети Bitcoin состоялся софт-форк, предложенный в марте 2016 года разработчиками П. Велле и Г. Максвеллом.  Обновление предусматривало активацию протокола Segregated Witness и новый формат биткоин-адреса — Bech32 или SegWit-адрес (P2WPKH — Pay to Witness Public Key Hash).

Segregated Witness (“отделенный свидетель”) позволил сократить вес транзакций в блоках сети Bitcoin за счет удаления из них подписей и выносе их в “дополнительные данные”, с последующей индивидуальной обработкой.

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

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

Обновление затронуло не только метод формирования блоков с транзакциями, но и сам формат записи публичных ключей bitcoin-кошельков. SegWit-адреса начинаются с «bc1» (пример: bc1qnnc0enjmp4essg8t8rxqnyg9394qgwwjtpngv9), при этом они вводятся независимо от регистра, т.е. bc1qnnc… = bc1Qnnc… =  BC1QNNC… Такой формат записи адресов в достаточной степени упростил их использование и сделал более удобным для записи.

К преимуществам SegWit-адресов можно отнести:

 - Высокая степень защиты от ошибок записи;

 - Увеличение пропускной способности транзакций;

 - Снижение комиссий до 50%.

Основной минус обновленного протокола в том, что не все криптовалютные сервисы его поддерживают, но в этом случае есть решение в виде промежуточного адреса, именуемого как Compatible. 

Среди известных крипто кошельков, поддержка SegWit внедрена в Trustee Wallet, Trezor, Electrum, Ledger Nano S.

 

Что такое Multisignature и Compatible адреса

Данный тип адресов появился в далеком 2012 году, чтобы хоть как-то решить проблему дорогих транзакций. Главным научным сотрудником Bitcoin Foundation - Г. Андерсоном, было предложено обновление BIP-0016, которое позволило бы улучшить логику исполнения транзакций, разрешив отправку не просто на адреса, но и на программируемые ключи (что-то похожее на смарт контракты в  Ethereum). В результате внедрения обновления появились биткоин-адреса начинающиеся с префикса “3” (пример: 3FVeDqkWXGPmgugHD1FLn9xMfeZcF181RG). При этом структура адреса осталась схожей со структурой Legacy-адресов. Такие Multisignature адреса вы часто могли видеть в “кошельках с мультиподписью”, когда от одного адреса есть 2 или 3 приватных ключа.

Не будем углубляться в техническую суть таких адресов, а лишь коснемся их взаимодействия с адресами Legacy и SegWit.

Внедрение SegWit не поддерживалось на старых кошельках, то есть они не видели Bech32-адресов и не могли понять, что делать с таким “получателями”, поэтому промежуточный P2SH-формат, а именно Compatible, стал неким мостом во взаимодействии различных адресов. Специальный скрипт, зашифрованный в ключе к адресу 3ххх позволяет пользователям старых кошельков отправлять средства на новые (3ххх), а владельцам новых - уже тратить их по технологии SegWit (то есть оплачивать транзакции по низким комиссиям).

 

От Legacy к SegWit в Trustee

После введения протокола SegWit в Trustee Wallet, у некоторых пользователей стали появляться вопросы: “Как так, я отправил часть средств в BTC, а с баланса списались все, почему?”. Чтобы ответить на этот вопрос потребуется немного углубиться в работу самого биткоина.

Итак..

Биткоин сам по себе достаточно сложен в плане обработки транзакций. Упрощенно этот момент можно описать так: когда вы хотите отправить часть баланса кому-либо, то с вашего кошелька уходит не часть баланса, а вся сумма, разделенная на нового владельца с его долей (тем что вы ему отправили) и сдачей на ваш адрес (тем что осталось от баланса за вычетом комиссии транзакции). Весь этот процесс отправки, разделения и возврата “сдачи” происходит в рамках одного блока, одной транзакции. После подтверждения отправки вы сможете использовать “сдачу” для следующих своих транзакций.

Говоря о поддержке Segwit в Trustee, важно отметить одну особенность. Отправляя средства с Legacy-адреса, сдача возвращается не на Legacy-адрес, а на SegWit. Благодаря этому, переход с устаревшего, медленного и дорогого формата Legacy на более быстрый и дешевый SegWit становится для пользователя легким, удобным и не требует дополнительных затрат, снимая необходимость отдельной транзакции для перевода между своими адресами.

 

Подведем итоги

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

Команда Trustee Wallet всегда идет в ногу со временем, присоединяйтесь к нам!

Похожие статьи