Неподтвержденная биткоин-транзакция? Как сократить зависание переводов

1464
Просмотры


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

Высокие сборы и долгое время подтверждения

Если вы переводили биткоины в декабре 2017, то, наверное, помните огромные сборы за транзакцию.

Комиссия за транзакцию, сборы, transaction fees — это дополнительная плата, добавленная к сумме перевода, которую получает майнер за добытый блок с включенной транзакцией. Размер комиссии стимулирует майнеров быстрее обработать переводы.

Таким образом работает сеть биткоина: только ограниченное количество транзакций можно подтвердить в одном блоке. Они ограничены его размером: 1 Мб (и >2Мб у форков). Также ограничено время: вы, думаю, знаете, что блок добывается около 10 минут. Так что комиссия способна продвинуть вашу транзакцию в очереди.

Транзакция, которая включена в блок, — подтвержденная. Та, что еще не включена в блок, — неподтвержденная.

Несколько важных определений

Мемпул — пул памяти — это все неподтвержденные транзакции, которые ждут включения в блок. Он существует в RAM всех полных биткоин-нод (т.е. компьютеров, входящих в сеть биткоина, на которых загружен весь блокчейн). Разные ноды имеют разные версии мемпула, в зависимости от того, какие транзакции они знают и помнят. Таким образом, если транзакция не подтверждена в течение длительного периода времени, она исчезнет из памяти узла. Сейчас время по умолчанию — 72 часа (раньше было 2 недели). Хорошо, что ноды могут устанавливать свою собственную продолжительность.

Возможно, что определенный узел (возможно, ваш собственный) никогда не забудет о транзакции и может даже иногда ретранслировать ее.

ID транзакции — у каждой транзакции, как подтвержденной, так и неподтвержденной есть уникальный идентификатор (txid). Кошелек сообщит об этом txid. Скопировав и вставив txid в любой block explorer, по этому номеру вы получите больше информации о транзакции. Этот номер потребуется для некоторых решений ниже.

Сатоши за байт (sat / B) — это стандартный способ измерения размера комиссии. Размер вашей транзакции (которую многие кошельки позволяют просмотреть) представлен в байтах или килобайтах. Вы можете вычислить окончательную плату, которую отдадите майнерам, простым умножением. Стандартный размер транзакции без SegWit составляет около 250 байт. Однако размер транзакций биткоина сильно варьируется в зависимости от 3 основных факторов:

  • Количество входов,
  • Количество выходов,
  • Сложность скрипта.

Ввод — это отсылка к адресу, с которого пришли монеты на кошелек. Возможно, вы уже получили тысячи небольших платежей BTC, а затем попытались перевести один крупный платеж. Если это так, транзакция, вероятно, будет очень большой по размеру. Объяснение в этой статье.

В этом случае нужно дождаться, пока мемпул будет свободен (менее 50 000 незавершенных транзакций), а плата соответственно низкая. Чтобы сократить комиссии в будущем, вы можете объединить адреса, переотправив свой баланс на другой кошелек. Для достижения оптимальных результатов консолидируйте адрес SegWit!

Вывод — это платеж на другой адрес. При создании нескольких выводов, имеет смысл группировать транзакции, вместо того чтобы делать несколько платежей, чтобы снизить сборы.
Эта функция поддерживается некоторыми кошельками, например, Bitcoin Core и Electrum.

Посчитать стоимость транзакции биткоина

Кошельки пытаются показать оптимальную плату, основанную на текущем состоянии мемпула. Последние версии Bitcoin Core делают самые точные оценки. Большинство кошельков позволяют устанавливать комиссию, и с практикой вы сами поймете, какой размер когда лучше. Нужно смотреть размер вашей транзакции, прежде чем устанавливать размер вознаграждения.

Сервисы, которые помогают считать сборы:

рекомендуемый размер комиссии

Как понизить комиссию за транзакцию биткоина

SegWit

Каждый биткоин-блок может вмещать около 2500 обычных транзакций и примерно 8000 транзакций SegWit. Они меньше и имеют более низкую плату. Его можно использовать через кошельки, которые поддерживают данное решение.

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

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

Обратите внимание, что существует два типа адресов SegWit:

  • P2SH начинается с 3 (максимальная совместимость),
  • Bech32  с bc1 (транзакции на 10% меньше, но пока не используются так широко).

Партнеры при выводе с бирж

Во-первых, есть биржи с почти нулевой комиссией за вывод или фиксированной ставкой. Также есть варианты перевода между двумя биржами, биржей и кошельком и т. д. по выгодным условиям. Например, вывод с крупнейшего Coinbase не так выгоден, как вывод с GDAX, его дочерней биржи. Эти варианты нужно искать.

Что делать с зависшими транзакциями биткоина

Способ 1: Заменить вознаграждение

Если кошелек поддерживает  RBF (замену сборов), вы может использовать это либо для застрявшей транзакции, либо как вариант по умолчанию. Там вы сможете экспериментировать с низкой оплатой в будущем.

Если транзакция застряла, повышайте ее стоимость через опцию RBF. Тогда кошелек автоматически ретранслирует транзакцию, с поднятой до указанного уровня ставкой.

Популярные кошельки с этой функцией: Electrum и GreenAddress.

Способ 2: Не тратьте неподтвержденные монеты

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

Способ 3: ретрансляция

Если комиссии упали, и транзакции с подобными ставками получают подтверждение, можно повторно сделать отправку (если транзакция старше 72 часов).

Существует множество способов ретрансляции транзакций. Вводите «resendwallettransactions» в консоль, если используете кошелек Bitcoin Core. Другие кошельки также предлагают эту функцию, ее нужно искать в FAQ на сайте-поставщике.

Можно использовать онлайн-сервис для ретрансляции. Одним из вариантов является https://coinb.in/#broadcast .Сюда нужно добавлять 16-значный адрес транзакции. Чтобы его скопировать, зайдите на https://blockchain.info/tx/, введите свой txid, он появится в адресной строке браузера. Добавьте ?format=hex и скопируйте, что получилось в сервис.

Способ 4: ускорители транзакций биткоина

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

Ускоритель ConfirmTX обеспечивает бесплатную обработку транзакций размером до 300 байт. Более крупные транзакции должны заплатить сбор в размере 5 долларов.

Ускоритель Coolwave рекомендуют на BitcoinTalk. Там же им можно пользоваться, с учетной записью форума.Теперь  у него появился свой вебсайт.

Ускоритель ViaBTC бесплатный, но принимает только 100 неподтвержденных транзакций в час.

Hooli тоже бесплатный акселератор, работает в промежутке 2-10 часов.

Последний способ, кроме как ждать

Есть метод двойного расходования и «ребенок платит за родителя», известный под аббревиатурой CPFP.

Двойная трата заново отсылает транзакцию, но с более высокой комиссией. Это похоже на изменение комиссии (RBF), но идет в обход протокола, такие транзакции считаются недействительными.

Child Pays for Parent позволяет и принимающей стороне повлиять на скорость получения перевода. Первая транзакция была с низким налогом, а следующая (и связанная с ней) содержит компенсацию. Чтобы получить вознаграждение с последующего блока, надо сначала подтвердить первый. Эта функция позволяет работать с множествами, группами транзакций, а не с каждой в отдельности. Но CPFP использует больше места в блоке, поэтому менее эффективен, чем RBF.

Переводы BTC часто представляют собой головную боль, но решения уже появляются. Так, советуем познакомиться с технологией Lightning Network, которая начинает активную работу и также призвана сократить расходы при переводах.