Виды и особенности адресов биткоин-кошельков
Что такое адрес биткоин-кошелька?
Адрес биткоин-кошелька — это уникальный идентификатор в сети Bitcoin, который представляет собой строку из циферно-буквенных символов. Каждый кошелек обладает уникальным адресом, необходимым для отправки и получения биткоинов — как почтовый адрес для получения почтовых отправлений или номер банковского счета для приема денежных средств.
Также адрес биткоин-кошелька называют публичным ключом, поскольку он является общедоступным: при помощи специальных обозревателей блоков, таких как Blockchair, Blockchain.com или OKLink, можно проверить не только баланс BTC, но и все связанные с кошельком транзакции. Адрес биткоин-кошелька позволяет узнать:
- Суммы транзакций;
- Размер уплаченных комиссий;
- Дату и время совершения транзакций;
- Номера блоков, в которые были включены транзакции с этого адреса;
Следует учитывать, что протокол Bitcoin поддерживает модель UTXO (Unspent Transaction Output) — выход неизрасходованных транзакций. Это означает, что каждая биткоин-транзакция имеет один вход и два выхода: потраченная сумма и остаток BTC.
Потраченная сумма в биткоин-транзакции отправляется на адрес кошелька получателя, которого указывает отправительь. Однако при этом биткоины нельзя "отщипнуть" от общей суммы, хранящейся на кошельке. В модели UTXO каждая транзакция работает не с частью средств, а сразу со всей суммой, которая хранится в одном выходе. Это значит, что если у пользователя на кошельке лежит выход на 1 BTC, а ему нужно отправить 0,4 BTC, система все равно использует весь 1 BTC. Из этой суммы 0,4 BTC переводятся получателю, а оставшиеся 0,6 BTC возвращаются на специальный адрес сдачи (change address), который автоматически создает сам кошелек.
Такой механизм можно сравнить с оплатой наличными: если вы расплачиваетесь купюрой в 1000 рублей за покупку стоимостью 400 рублей, продавец берет всю купюру, но возвращает вам сдачу в 600 рублей. Точно так же в сети Bitcoin сдача формируется новой транзакцией и снова закрепляется за пользователем, но уже в виде нового UTXO, который можно использовать в следующих переводах.
Это отличает Bitcoin от других сетей, использующих модель Accounts — таких как Ethereum или Solana — в которых пользователь тратит только отправленную сумму криптовалюты, а непотраченные монеты остаются нетронутыми в кошельке. Эту же модель для проведения расчетов используют банки.
Типы адресов биткоин-кошельков
С 2017 года список поддерживаемых типов биткоин-адресов увеличился, в настоящее время выделяют четыре: устаревший (Legacy), новые Nested и Native SegWit, а также новейший Taproot.
Legacy (P2PKH)
Legacy или Pay-to-Public-Key-Hash является оригинальным типом адресов биткоин-кошелька, используемый с момента запуска блокчейна. Legacy-адреса начинаются с "1", состоят из 34 символов и выглядят таким образом:
1BM1sAcrfV6d4zPKytzziu4McLQDsFC2Qc
Legacy-адреса используются все реже в сети биткоина, поскольку проходящие через них транзакции занимают много места в блокчейне, а также являются самыми медленными и дорогими на текущий момент. На замену P2PKH пришли более новые и экономичные типы адресов, о которых речь пойдет далее.
Nested SegWit или Script (P2SH)
Pay-to-Scrypt-Hash — более новый формат адресов, появившийся незадолго до активации обновления Segregated Witness (SegWit) в сети биткоина. Этот обновленный формат адресов биткоин-кошелька поддерживает выполнение скриптов для автоматизации транзакций, сохраняя при этом совместимость со старыми версиями блокчейн-протокола.
Адреса типа Nested SegWit начинаются с цифры "3" и содержат 34 символа, также как и Legacy-адреса. Пример P2SH-адреса:
3BTV9JbUgN9j9z5MjkPpnsFnEM47bNNJQJ
P2SH-адреса позволили увеличить размер транзакций, снизив при этом их стоимость. Такие адреса часто используются крупными майнерами, поскольку позволяют управлять большим количеством биткоин-транзакций.
Native SegWit (P2WPKH или Bech32)
Pay-to-Witness-Public-Key-Hash, также известные как нативные SegWit-адреса, — это формат, введенный после активации обновления Segregated Witness в сети Bitcoin. Еще P2WPKH называют Bech32-адресами.
Все нативные SegWit-адреса начинаются с символов "bc1q" и имеют 42-битную строку вида:
bc1qdz47psdty8m3r9hkasxg0fgneyue64hpvrufjc
Формат Native SegWit был разработан, чтобы устранить ограничения устаревших Legacy-адресов, а также вдвое повысить скорость транзакций и во столько же раз снизить стоимость комиссий сети Bitcoin за счет увеличения емкости блока. В настоящее время Native SegWit является наиболее популярным форматом BTC-адресов, поддерживаемым практически всеми кошельками и криптобиржами.
Taproot (P2TR)
Pay-to-Taproot — это новейший формат адресов биткоин-кошелька, появившийся в конце 2021 года после масштабного обновления протокола биткоина, известного как Taproot. Taproot-транзакции устроены таким образом, чтобы обеспечить конфиденциальность пользователей.
При этом даже сложные транзакции типа P2TR, связанные со смарт-контрактами, практически неотличимы от обычных биткоин-переводов и их проблематично выделить в обозревателях блоков.
Taproot-адреса похожи на Native Segwit но обладают небольшими отличиями: они начинаются с символов "bc1p", а не "bc1q", а также состоят из 62 символов. Пример Taproot-адреса:
bc1p4k4yp6ddjmgfgntwwuq3tmpdnuezgqt39mmk3c52syk95x9q7yxq2pp06v
Taproot-адреса позволяют совершать наиболее быстрые и дешевые биткоин-транзакции на данный момент, в том числе и через протокол Lightning Network, однако пока не все кошельки и биржи поддерживают формат P2TR.
Несмотря на это, доля транзакций, совершенных при помощи Taproot-адресов, за последние три года значительно выросла — с 0,25% до 21,27%.
Примечание: стоит отметить, что все адреса биткоин-кошелька являются совместимыми друг с другом. Это означает, например, что пользователь может перевести биткоины с Legacy-адреса на Native SegWit и наоборот.
Сколько существует адрес биткоин-кошелька?
Адрес биткоин-кошелька не имеет срока годности. Однако чем чаще пользователь использует один и тот же адрес, тем проще его идентифицировать. Опытные пользователи используют продвинутые биткоин-кошельки, позволяющие управлять адресами (в том числе для сдачи), и инструменты вроде CoinJoin для повышения конфиденциальности своих транзакций.
Однако пользователю может потребоваться смена адреса биткоин-кошелька в следующих случаях:
- При утрате или компрометации приватного ключа (либо мнемонической фразы);
- Если адрес был скомпрометирован и требуется обеспечить приватность;
- Если необходимо повысить конфиденциальность транзакций;
- Когда нужно создать кошелек для других целей (например, приема оплаты или цифровых платежей).
Получение адреса биткоин-кошелька
Чтобы получить биткоин-адрес, необходимо использовать специальный клиент криптокошелька или создать аккаунт на бирже. Публичный адрес предоставляется в паре с приватным ключом, за исключением кастодиальных кошельков или бирж, которые их контролируют.
Для получения публичного адреса достаточно сгенерировать 256-битный приватный ключ. Приватный ключ можно создать в приложении кошелька или на устройстве (аппаратном кошельке) либо самостоятельно при помощи генератора случайных чисел (ГСЧ) или вручную при помощи бросков кубиков, поскольку он представляет собой обычный набор псевдослучайных чисел. Последний способ является самым трудным, но при этом самым безопасным, так что им пользуются некоторые продвинутые криптоэнтузиасты.