Биткоин-адрес — это что-то вроде номера банковской карты, который необходим для получения и отправки BTC с кошелька на кошелек.
Чтобы совершить транзакцию отправки, необходимо указать адрес кошелька получателя. В свою очередь, получатель должен предоставить свой адрес отправителю.
Что такое bitcoin адрес
Адреса кошельков имеют определенный стандарт записи и обычно выглядят как случайный набор цифр и букв. Тем не менее, есть некоторые визуальные отличия, в основе которых лежат очень мощные и технологичные криптовалютные решения.
На момент публикации статьи существует 4 формата записи адресов биткоин-кошельков: P2PK, Legacy, Legacy SegWit, Native SegWit и Taproot. Все способы записи являются следствием преобразования открытого ключа в читаемый формат (хеш-значение).
Что такое P2PK адрес (Pay To Public Key)
Это самый старый тип адреса, активно использовавшийся до 2013 года. P2PK-адрес является публичным ключом, напрямую порождается из приватного ключа и выглядит как буквенно-цифровая строка.
Такой тип адреса использует шаблон скрипта, запирающий средства с помощью самого себя в scriptPubkey. Чтобы потратить средства, необходимо предоставить в отпирающем скрипте подпись (scriptSig), которая генерируется из приватного ключа и проверяется публичным ключом из запирающего скрипта.
Пример P2PK-адреса: 04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f
Поскольку открытый ключ порождается из приватного ключа, которым в свою очередь генерируется цифровая подпись, существуют опасения, что достаточно мощный квантовый компьютер потенциально может взломать современную криптографию, включая транзакционные подписи Шнорра и ECDSA, использующиеся в Биткоине и других криптовалютах, поэтому в будущем использование публичного ключа в запирающем скрипте может привести к взлому P2PK-адресов.
По некоторым оценкам, такой квантовый компьютер может появится в ближайшие 10–15 лет. Вычислить приватный ключ по публичному современным компьютером невозможно.
P2PK-формат адреса хоть и совместим с другими типами адресов, однако в настоящее время не используется, уступая место более удобным, экономичным и безопасным типам адресов.
Что такое Legacy адрес (P2PKH — Pay To Publickey Hash)
Legacy-адрес — второй по древности формат записи адреса BTC. Читается как «Легаси». Такой формат адреса был предложен самим создателем Биткоина Сатоши Накамото и в настоящее время используется многими криптоветеранами и некоторыми криптосервисами, которые до сих пор работают с USDT Omni. Определить Легаси-адрес можно по его первому символу — цифре «1», стоящей в начале каждого адреса.
Пример Legacy-адреса: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
Несмотря на то, что этот формат был предложен самим Сатоши, в текущих реалиях он имеет некоторые недостатки:
- Этот формат адресов чувствителен к регистру символов, т. е. 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa — это не одно и то же, что 1a1zp1eP5QGefi2DMPTfTL5SLmv7Divfna. Неверный регистр записи может привести к потере средств, если отправить криптовалюту на неправильно записанный адрес.
- Такой адрес имеет больший размер (объем, вес), что косвенно увеличивает размер транзакции между такими адресами. Это, в свою очередь, снижает приоритет транзакции для майнеров, поскольку «тяжелых» транзакций в блок помещается намного меньше, а значит, пропускная способность блокчейна снижается.
- Высокие комиссии за обработку legacy-транзакций. Как известно, сетевая комиссия рассчитывается по весу транзакции, который складывается из количества передаваемых данных (не Биткоинов), и чем их больше, тем выше будет комиссия сети.
- Транзакции между Legacy-адресами подвержены проблеме «пластичности транзакций».
Пластичность транзакций — это такая проблема, при которой злоумышленник может вмешаться в транзакцию, которая находится в мемпуле, и изменить ее идентификатор (хэш транзакции), поскольку криптографическая подпись является частью транзакции и включена в нее. Такая модифицированная транзакция будет считаться совершенно новой, но валидной, и сеть ее примет.
Однако отправитель (если он является жертвой) не сможет понять, что отправленные им средства дошли до получателя, поскольку у отправителя будет исходный хэш транзакции, отличающийся от модифицированного. Благодаря этому злоумышленник-получатель может несколько раз запрашивать переотправку. Подобным образом в свое время у криптобиржи Mt. Gox было украдено 64564 BTC. Конечно же, такое могло сработать только с автоматизированными процессами и только до 2017 года.
Протокол Bitcoin для генерации Legacy-адресов использует алгоритм Base58, который преобразует публичные ключи в читаемый человеком формат. Алгоритм очень похож на известный Base64, но имеет более короткий алфавит, и некоторые символы в нем не используются во избежание гомографических атак.
Гомографическая атака — способ, с помощью которого злоумышленник может обмануть жертву, используя тот факт, что многие разные символы выглядят одинаково, т. е. являются гомографами (гомоглифами). В связи с этим, в P2PKH-адресах отсутствуют такие символы, как: 0 (ноль), +, -, /, О (заглавная буква «о»), I (заглавная «i»), l (строчная «L»).
Если бы не протокол второго уровня Omni Layer, в котором существует USDT Omni, Легаси-адреса давно не использовались, поскольку USDT Omni программно привязан к P2PKH и может перемещаться только по ним.
Что такое Legacy SegWit адрес (P2SH — Pay To Script Hash)
В 2012 году, чтобы хоть как-то решить проблему дорогих транзакций, главным научным сотрудником Bitcoin Foundation Гэвином Андресеном было представлено предложение по улучшению BIP-0016. Суть предложения заключалась в улучшении логики исполнения транзакций путем разрешения отправки не только на адреса, а еще и на программируемые ключи (скрипты) — аналоги смарт-контрактов в блокчейне Ethereum.
Предложение было поддержано сообществом, и результатом софт-форка появился новый тип записи биткоин-адресов, которые начинались с цифры «3», но сохраняли структуру, схожую с Legacy-адресами.
Пример P2SH-адреса: 342ftSRCvFHfCeFFBuz4xwbeqnDw6BGUey
Скрипт, вшитый в публичный адрес биткоин-кошелька, позволяет без проблем отправлять транзакции между адресами различных форматов, а пользователям Legacy SegWit еще и экономить на сетевых комиссиях, поскольку новый формат снижал вес транзакции чуть ли не на 20% за счет упрощения проверки их подписи. Благодаря такой совместимости P2SH-адреса иногда называют Compatible-адресами.
Новый формат позволил отправлять транзакции любой сложности, в том числе с мультиподписью (Multisignature), на любые адреса.
Multisig-кошельки могут «разбивать» приватный ключ адреса на несколько дочерних ключей (чаще 3) в целях обеспечения большей безопасности средств. Каждый из таких дочерних ключей наделен правами подписи транзакции, т. е. согласования отправки, но чтобы отправить такую транзакцию, ее нужно согласовать (подписать) всеми дочерними ключами или двумя из трех, в зависимости от настройки мультиподписи. Подобными адресами пользуются, в основном, крупные биржи и криптообменники.
Что такое Native SegWit адрес (P2WPKH — Pay To Witness Publickey Hash)
В марте 2016 года разработчики Грегори Максвелл и Питер Велле вынесли на рассмотрение предложение по улучшению BIP-0143, которое предусматривало активацию протокола Segregated Witness, а вместе с ним и новый формат биткоин-адреса — Bech32, или SegWit-адрес.
Пример SegWit-адреса: bc1q79gljq4g5tc5afpg5s3tqkjquzx0d0328w5sd3
Протокол Segregated Witness (в переводе «отделенный свидетель») подразумевал отделение криптографической подписи от транзакции и вынесение ее за пределы основного блокчейна с последующей индивидуальной обработкой. Т.е. в параллель основной цепочке появляется вторая, состоящая исключительно из подписей.
Предложение было поддержано сообществом, и 24 августа 2017 года в Bitcoin состоялся софт-форк. Благодаря внедрению протокола SegWit транзакции стали гораздо легче, и в блок их стало помещаться гораздо больше. SegWit увеличил пропускную способность блокчейна, а проблема высоких комиссий разрешилась сама собой, за счет того, что в транзакциях уменьшилось количество передаваемых данных почти на 60-70%.
Ко всему прочему, обновление привнесло в Биткоин ряд других мощных преимуществ:
- Адреса стали устойчивы к ошибкам регистра, и их можно записывать как в верхнем, так и в нижнем. Для кошелька отправителя адрес bc1q79gljq4g5tc5afpg5s3tqkjquzx0d0328w5sd3 идентичен адресу BC1Q79GLJQ4G5TC5AFPG5S3TQKJQUZX0D0328W5SD3 или даже bC1q79GlJq4G5tC5aFpG5s3TQkJQuZx0D0328w5SD3.
- Исчезла проблема «пластичности транзакций», поскольку криптографическая подпись перестала быть частью транзакции.
- SegWit позволил реализовать ряд инновационных решений, таких как L2-протоколы и смарт-контракты.
В настоящее время адреса Native SegWit самые распространенные и используемые в блокчейне Биткоина, их число по отношении ко всему количеству адресов различных форматов составляет более 65%.
Что такое Taproot адрес (P2TR — Pay To Taproot)
Taproot представляет собой обновление для Биткоина, которое было активировано в сети 14 ноября 2021 года на блоке #709632 совместно с обновлением под названием «Схема Шнорра». Целью такого комплексного софт-форка является повышение конфиденциальности, масштабируемости и безопасности сети.
Помимо основной цели решения трилеммы блокчейна, обновление Taproot привнесло ряд новшеств:
- Снижение сетевых комиссий за счет совместной проверки нескольких сложных транзакций, что приводит к уменьшению передаваемых данных.
- Усложнение анализа блокчейна и транзакций сторонними участниками.
Новый формат адреса схож с Native SegWit, но с тем лишь отличием, что начинается на «bc1p».
Пример Taproot-адреса: bc1pnqlsm0z34azhks3s5v6jlyulm23wp7t5nheq03wfmzgu0c3c54zqr8g844
Адреса Taproot кошельков полностью совместимы с остальными форматами, и можно без трудностей отправлять и принимать BTC с адреса Taproot на адреса Legacy, Legacy SegWit и Native SegWit и наоборот.
Использование Taproot делает транзакции более легкими, чем с SegWit (а значит, недорогими), быстрыми (в блок их помещается больше) и конфиденциальными (не путать с приватностью).
Все рассмотренные адреса легко проверяются любыми обозревателями блокчейна Bitcoin, которыми привыкли пользоваться криптаны.