Гайд по биткоин-транзакциям: как провести, отследить и ускорить их?
Традиционно, чем выше цена биткоина, тем загруженнее его сеть. Поэтому иногда пользователям приходится ждать подтверждения транзакции часами или даже сутками. Неопытного криптоюзера это может пугать: транзакция вроде произошла, а биткоины так и не появились в кошельке. На самом деле, в таких случаях ничего страшного не происходит: монеты просто зависли в мемпуле из-за слишком низкой комиссии. Поэтому важно понимать, как работает блокчейн Bitcoin и как именно в нем проходят транзакции. Не вдаваясь в технические дебри, расскажем, что такое биткоин-транзакция, как ее отследить и «протолкнуть», если она застряла.
Что такое биткоин-транзакция
Блокчейн Bitcoin — это своего рода децентрализованная база данных, в которой содержится информация обо всех действиях, проведенных ее участниками. Эти данные хранятся в блоках, записанных один за другим в хронологическом порядке. При этом каждый из них хранит данные о предыдущих блоках. Благодаря этому информацию в блокчейне нельзя отредактировать или удалить, ведь чтобы внести изменения, пришлось бы переписать его полностью с самого начала.
Биткоин-транзакция — это любая операция (действие пользователя) в сети Bitcoin. Это может быть, например, перевод монет с одного адреса на другой или использование смарт-контрактов. То есть отправка и получение биткоина — это и есть ВТС-транзакция.
Роль майнеров в совершении транзакции
Прежде чем транзакция будет добавлена в блокчейн, она должна быть авторизована, то есть проверена и подтверждена майнерами.
Майнеры — это ноды (или узлы) блокчейн-сети, которые обрабатывают, верифицируют и добавляют транзакции в блоки. В публичных блокчейнах решение о добавлении транзакции в цепочку принимается алгоритмом консенсуса — набором правил, с помощью которых большинство нод соглашаются с тем, что транзакция достоверна. В биткоине таким алгоритмом консенсуса является Proof-of-Work (доказательство выполнения работы, PoW).
Распространено мнение, что майнинг — это добыча новых монет в сетях. Но прежде всего майнинг — это процесс подтверждения транзакций и добавления их в блоки. А новые монеты — это «побочное» следствие, которое необходимо для мотивации майнеров. Ранее мы уже подробно рассказали, как устроен майнинг в сети Bitcoin. Напомним, что для генерации блока PoW-майнеры решают специальные математические задачи — криптографические хеш-функции. Кто первым найдет их решение, получит награду.
Когда пользователь подписывает транзакцию, она попадает в мемпул (mempool) — список транзакций, которые ждут добавления в блок. Транзакции в мемпуле называются «ожидающими подтверждения». Когда майнер добавляет транзакцию в блок, она считается подтвержденной.
Только после того как майнеры подтвердят, что транзакция подлинна (то есть никто не тратит одни и те же монеты дважды или средства, которых у него нет), они занесут ее в блок. Когда блок будет сгенерирован (добавлен в блокчейн), монеты отправителя попадут в кошелек получателя. Время подтверждения транзакции (генерации блока) составляет в среднем 10 минут.
Как размер комиссии влияет на скорость транзакции
У каждого блока в сети Bitcoin есть собственный мемпул, размер которого меняется в зависимости от загруженности сети. Стандартный мемпул занимает 1 МБ. Но он может быть больше или меньше — все зависит от количества транзакций. Например, в последние 6 месяцев размер мемпула колебался от 0.16 МБ до 93 МБ.
Если мемпул больше 1 МБ, транзакции проходят дольше: каждый МБ — это дополнительные 10 минут подтверждения операции. Например, транзакции, которые попали во второй МБ мемпула, подтвердят в течение 20 минут, в третий — 30 минут, и т. д. В результате, если сеть сильно загружена, монеты могут идти до получателя от нескольких часов до пары дней. Если такое случилось, говорят, что транзакция зависла в мемпуле. Ранее мы подробно рассказали, как размер мемпула сказывается на росте ВТС-комиссий.
Очередность добавления транзакции в мемпул определяется размером комиссии майнерам — чем больше комиссия, тем выше приоритет транзакции и тем быстрее она исполнится. Плата за отправку биткоина может составлять от нескольких центов до сотни долларов.
При этом сумма перевода не влияет на размер комиссии: перевод ВТС на миллионы долларов может стоить дешевле, чем перевод монет на несколько долларов. Чаще всего такое получается, когда пользователи выводят ВТС небольшими переводами — например, с ВТС-кранов. Поэтому небольшие транзакции выгоднее проводить через решения второго уровня, например, Lightning Network, потому что они проходят за пределами мемпула.
Если комиссия за транзакцию окажется слишком незначительной, она зависает в мемпуле до тех пор, пока нагрузка в сети не снизится и назначенная комиссия не станет актуальной. То есть пока сеть перегружена, транзакции с комиссией ниже минимальной просто не проходят. Если же транзакция зависнет в мемпуле на несколько дней, она отменится и монеты вернутся отправителю.
Как провести биткоин-транзакцию
Чтобы совершить ВТС-транзакцию, пользователь должен иметь:
- Публичный ключ — то есть адрес BTC-кошелька. Это случайно сгенерированная уникальная последовательность букв и цифр, которая работает аналогично адресу электронной почты или имени пользователя в соцсетях. Например, 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa — это один из публичных адресов создателя биткоина Сатоши Накамото. Публичные адреса являются общедоступными — ими можно спокойно делиться с другими криптопользователями.
- Приватный ключ — это криптографическая подпись (пароль), которая разрешает отправку биткоина с одного кошелька на другой. Это тоже случайно сгенерированная уникальная последовательность букв и цифр, но ее надо держать в секрете от посторонних. Любой, у кого есть ваш приватный ключ, имеет доступ к вашим монетам. Ранее мы уже подробно рассказали о базовых правилах криптобезопасности и о самых популярных схемах криптомошенничества.
Владеть криптовалютами — это значит владеть публичным и приватным ключами. Это похоже на прозрачный сейф. Другие могут видеть, что внутри, но только владельцы приватного ключа могут его открыть и получить доступ к находящимся внутри монетам.
Получить публичный ключ можно на бирже или после установки биткоин-кошелька. На этом адресе у вас должны быть монеты. Их можно купить на бирже или добыть с помощью майнинга.
Чтобы перевести биткоины, необходимо:
1. Авторизоваться на бирже или в кошельке.
2. Ввести публичный адрес получателя и переводимую сумму.
3. Выбрать комиссию: она может быть рекомендованной, или же вы можете заплатить другую сумму на свой выбор. Чаще всего кошельки сами рассчитывают оптимальную комиссию. Уровень загруженности мемпула можно проверить в блокчейн-обозревателях (о них ниже).
4. Нажать «Перевести». В большинстве онлайн- и биржевых кошельков транзакция автоматически подпишется вашим приватным ключом. Если вы хотите узнать его, то скопируйте его себе на компьютер.
Как отследить ВТС-транзакцию
Отследить ВТС-транзакцию можно с помощью специальных сервисов: блокчейн-обозревателей или эксплореров: например, Blockchain․com, Blockchair․com, BTC․com и Bitcoin․com среди прочих. Последний, кстати, является простым и удобным обозревателем от создателей Bitcoin Cash.
В них можно узнать состояние блокчейна (не только Bitcoin), статистику сети, уровень хешрейта и сложности сети, размер мемпула, цены и объем торгов, а также отследить транзакции и баланс любого ВТС-адреса. Ранее мы подробно рассказали и о других популярных сервисах для криптопользователей.
Чтобы отследить биткоин-транзакцию, достаточно в поисковой строке эксплорера ввести один из этих идентификаторов:
- Адрес кошелька отправителя или получателя;
- Хеш-идентификатор (TXid) — уникальный идентификатор, который присваивается каждой транзакции. Он автоматически генерируется из входных и выходных данных (о них ниже).
Рассмотрим, какую еще информацию о транзакции можно узнать через эксплорер на примере Blockchain.com и случайно выбранной транзакции:
Вот какие основные данные по транзакции можно узнать через Blockchain․com:
- Адрес кошелька отправителя или получателя;
- Хеш-идентификатор (TXid);
- Количество отправленных и полученных монет;
- Размер комиссии за транзакцию. Итоговый размер ВТС-комиссии состоит из комиссии за транзакцию, умноженной на комиссию за байт;
- Размер и вес транзакции в байтах. Вес зависит от количества UTXO транзакции (выходов неизрасходованных транзакций, о которых пойдет речь ниже) и определяет итоговый размер комиссии;
- Статус транзакции: ожидает подтверждения, подтверждена или отклонена (если комиссия была слишком незначительной);
- Номер блока, в который включена транзакция;
- Входные и выходные данные — данные о списании монет из одного кошелька в другой. Вход — данные о количестве монет в кошельке, которое можно использовать для перевода, выход — отправленные средства. Каждая ВТС-транзакция состоит минимум из одного входа и выхода. Вход одной транзакции является выходом другой транзакции. Исключение: транзакция coinbase — первая транзакция в каждом блоке. После этой операции создается новый биткоин, который выплачивается майнерам в качестве вознаграждения. Использование входа и выхода транзакции позволяет подтвердить происхождение активов, которые будут использоваться в сделке. Например, Иван перевел Борису 10 сатоши, а тот перевел их Артуру. В этом примере 10 сатоши были сначала выходом Ивана и входом Бориса, а затем выходом Бориса и входом Артура.
Как ускорить ВТС-транзакцию
Как мы писали выше, если комиссия за транзакцию оказалась слишком низкой, монеты могут зависнуть в мемпуле. Есть несколько способов ее ускорить (то есть протолкнуть в очереди).
Воспользоваться сервисами-ускорителями (акселераторами), которые обращаются к майнинговому пулу для увеличения комиссии уже существующей транзакции. Популярные бесплатные ускорители: bitTools, BitAccelerate, bitNitro. Условно-бесплатные или платные: ViaBTC, antPool, Bitcoin Afterburner, Bitcoin.com, ConfirmTX, 360 BTC Accelerator, BTC TX Accelerator. На платных тарифах ускорить транзакцию будет стоить от $0.5 до $10–$20. У таких сервисов разные принципы работы, но ни один из них не может гарантировать стопроцентный результат, то есть что транзакция пройдет в течение одного или нескольких часов. Успех зависит от того, как давно была совершена операция. При этом стоит понимать, что в случае неудачи ускорители не вернут вам деньги.
Использовать метод «Child Pays For Parent» («Дети платят за родителей», CPFP) — это способ, в рамках которого пользователь создает еще одну, дочернюю транзакцию, используя «сдачу» (о ней ниже) с неподтвержденного платежа, и ставит ей более высокую комиссию, чем исходная неподтвержденная транзакция. В таком случае новая комиссия распределится между обеими транзакциями. Так высока вероятность, что майнер заметит новую, дочернюю транзакцию и подтвердит ее вместе со старой. Но данный метод поддерживают не все пулы и кошельки.
Еще немного теории. Сдача — это средства, которые остаются на вашем счете после совершения операции. Дело в том, что биткоин в кошельке состоит из UTXO (unspent transaction output) — выходов неизрасходованных транзакций. Это аналог купюр.
Например, у вас в кошельке 1 ВТС, который вы получили транзакциями по 0.5 ВТС, 0.3 ВТС и 0.2 ВТС. Хотя вы видите баланс как 1 ВТС, кошелек отслеживает каждую транзакцию отдельно. Ваш биткоин как бы разделен на 3 части — каждая такая часть и есть UTXO. Если проводить аналогию с купюрами, то в нашем примере у вас есть как бы три купюры разного достоинства. Если UTXO становится слишком много (транзакция начинает слишком много весить), их можно «переупаковать» и уменьшить их количество в кошельке.
Допустим, вы хотите отправить кому-то 0.1 ВТС, но у вас нет такой UTXO (купюры). В этом случае вы отправите получателю 0.2 ВТС, а обратно в новой транзакции получите то, что осталось, то есть 0.1 ВТС. Это и называется «сдачей». Сдачу переведут на новый адрес, который ваш кошелек создаст специально для нее.
Использовать метод Replace By Fee («Замена комиссии», RBF) — он позволяет увеличить комиссию транзакции, пока она еще находится в мемпуле. То есть в новой транзакции надо полностью повторить параметры зависшей (получатель и сумма), но поставить более высокую комиссию. Ноды воспримут новую операцию как старую и подвинут ее в очереди. Средства спишутся только раз — пройдет только транзакция с более выгодной комиссией. Функция доступна не во всех кошельках, а в некоторых требует ручной настройки. С помощью этого способа можно как бы удалить неподтвержденную транзакцию. Для этого в качестве получателя нужно указать себя и поставить более высокую комиссию.