Bitcoin Forum

Local => Новички => Topic started by: internetional on November 16, 2023, 07:29:06 AM



Title: Замена на транзакцию с меньшей комиссией
Post by: internetional on November 16, 2023, 07:29:06 AM
Я наткнулся в эксплорере blockcypher.com на две странные транзакции.

Вот первая: https://live.blockcypher.com/btc/tx/1b1f9676f3cff4447232fce221a3720e2a1cac60a26c200a45a5d5ea4b942d6a/

В ней биткоины отправляются с адреса bc1q...22kg на адрес bc1q...74x7, и за отправку назначается комиссия 406800 сатоши. Очень большая комиссия, даже по нынешним временам. Тем не менее, про эту транзакцию Blockcypher пишет следующее:
Quote
WARNING: This transaction has been double-spent by 77708359eedb5cbe42687f3613daad1…, be extremely careful when accepting this transaction!
, что в переводе на русский означает: "Внимание! Для этой транзакции существует транзакция повторной траты 77708359eedb5cbe42687f3613daad1... Будьте предельно осторожны при приёме этой транзакции".

Я перешёл на транзакцию повторной траты (https://live.blockcypher.com/btc/tx/77708359eedb5cbe42687f3613daad11c14680aa313d26065c25c7ef18af35af/) и увидел, что в ней биткоины были отправлены с того же адреса bc1q...22kg на тот же адрес bc1q...74x7, но за транзакцию была назначена гораздо меньшая комиссия: 1130 сатоши.

И почему-то в блокчейн попала вторая транзакция (с меньшей комиссией). Как такое могло получиться?


Title: Re: Замена на транзакцию с меньшей комиссией
Post by: witcher_sense on November 16, 2023, 10:31:03 AM
Майнеры имеют право выбирать транзакцию с меньшей комиссией - это вполне нормальная ситуация для децентрализованного блокчейна. А здесь могло произойти следующее: кто-то отправил транзакцию с довольно маленькой платой за транзакцию, а потом посмотрел на забитый мемпул и ужаснулся. Далее этот кто-то использовал RBF для ускорения подтверждения транзакции, но немного не успел, так как прошлая транзакция уже оказалась в блоке. Майнеры не должны включать другую транзакцию с большой комиссией, потому что это сделает блок невалидным.  Ну и естетвенно, это предупреждение для всех, кто принимает транзакции как совершенные даже без одного подтверждения в блокчейне.


Title: Re: Замена на транзакцию с меньшей комиссией
Post by: igor72 on November 16, 2023, 04:17:12 PM
И почему-то в блокчейн попала вторая транзакция (с меньшей комиссией). Как такое могло получиться?
Вторая транзакция на самом деле попала в сеть на 20 минут раньше, RBF-флаг в ней установлен не был, поэтому многие ноды не приняли заменяющую транзакцию, несмотря на огромную комиссию, и в итоге она не дошла до мемпула конкретного майнера.


Title: Re: Замена на транзакцию с меньшей комиссией
Post by: Lannakosa on November 16, 2023, 08:37:49 PM
И почему-то в блокчейн попала вторая транзакция (с меньшей комиссией). Как такое могло получиться?
Вторая транзакция на самом деле попала в сеть на 20 минут раньше, RBF-флаг в ней установлен не был, поэтому многие ноды не приняли заменяющую транзакцию, несмотря на огромную комиссию, и в итоге она не дошла до мемпула конкретного майнера.
То есть если на вторую транзакцию не установить RBF-флаг, то ее не примут в любом случае, а первая транзакция будет висеть пока ее кто то не возьмет в блок?

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


Title: Re: Замена на транзакцию с меньшей комиссией
Post by: klarki on November 16, 2023, 09:15:28 PM

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

Могут, но можно ретранслировать эту транзакцию. Лучше всего отслеживайте состоянии загруженности, например, через mempool (https://mempool.space/ru/). Ну а еще лучше, если есть необходимость сейчас гонять биток дешево, подождать пока спадет активности. Либо использовать альтернативу (обернутые BTC, LN).


Title: Re: Замена на транзакцию с меньшей комиссией
Post by: igor72 on November 17, 2023, 06:14:39 AM
И почему-то в блокчейн попала вторая транзакция (с меньшей комиссией). Как такое могло получиться?
Вторая транзакция на самом деле попала в сеть на 20 минут раньше, RBF-флаг в ней установлен не был, поэтому многие ноды не приняли заменяющую транзакцию, несмотря на огромную комиссию, и в итоге она не дошла до мемпула конкретного майнера.
То есть если на вторую транзакцию не установить RBF-флаг, то ее не примут в любом случае, а первая транзакция будет висеть пока ее кто то не возьмет в блок?
Тут скорее всего возникло недоразумение, поэтому давайте сначала определимся с терминамми. "Второй" транзакцией я ее называл потому, что топикстартер ее так подал, на самом деле она появилась раньше, поэтому с этого момента я ее буду называть первой, а заменяющую - второй, ок?

Чтобы вторая транзакция заменила первую, 1) комиссия за вторую должна быть выше как минимум на 1 сат/вБ, 2) в первой транзакции должен быть установлен флаг RBF (во второй - безразлично). Про RBF можно добавить, что скоро все транзакции будут заменяемыми, в последних версиях Электрума уже даже нет опции отключения RBF.
Quote
И могут ли первую транзакцию вообще не принять, если в ней установлена слишком низкая комиссия. Я с такими транзакциями еще не сталкивалась, но все равно хотелось бы знать чем это чревато для меня, если когда то придется иметь с таким дело.
Меньше 1 сат/вб не примут в принципе (хотя майнер может и без комиссии отправить), а в периоды большой загрузки мемпулов у большинства нод эта цифра может подниматься, и существенно - вчера я видел, что отвергались транзакции с комиссией ниже 32 сат/вб, сейчас эта цифра 23. Но не все ноды так настроены, в некоторые мемпулы сейчас принимаются и дешевые транзакции. Вчера, например, я смог отправить транзакцию 17 сат/вб и бесплатно ускорить ее, в итоге обошлась она мне меньше доллара, в то время как без этих хитростей я заплатил бы за нее в 10 раз больше.
Если первую транзакцию мемпулы приняли, но она долго висит (не подтверждается), то через определенный срок (по умолчанию 2 недели) мемпулы удаляют ее. Но опять же строгого правила нет, на каких-то нодах транзакция может висеть вечно (пока хотя бы один utxo в ней не будет потрачен), а при снижении загрузки мемпулов наконец подтвердиться. Также, как коллега передо мной сказал, транзакция может кем-то ретранслироваться и снова на две недели появляться практически на всех нодах.


Title: Re: Замена на транзакцию с меньшей комиссией
Post by: internetional on November 17, 2023, 07:12:23 AM
Вторая транзакция на самом деле попала в сеть на 20 минут раньше, RBF-флаг в ней установлен не был, поэтому многие ноды не приняли заменяющую транзакцию, несмотря на огромную комиссию, и в итоге она не дошла до мемпула конкретного майнера.
Да, это всё объясняет. А где Вы увидели, в какое время были транслированы эти транзакции? Я отклонённую транзакцию в других эксплорерах не нашёл, а blockcypher не показывает время трансляции.

Получается, меня ввело в заблуждение уведомление о том, что транзакция с большей комиссией была «перепотрачена» (double-spent), и я представил себе ситуацию так, как будто бы отправитель сначала создал транзакцию, в которой забыл прописать адрес для сдачи, и в ней вся разница между суммами входа и выхода пошла на комиссию, а потом отправитель это заметил и «перепотратил» монету в новой транзакции с меньшей комиссией. А на самом деле, наоборот, транзакция с большей комиссией пыталась «перепотратить» вход той транзакции, где комиссия была меньше.


Title: Re: Замена на транзакцию с меньшей комиссией
Post by: igor72 on November 17, 2023, 07:48:36 AM
А где Вы увидели, в какое время были транслированы эти транзакции? Я отклонённую транзакцию в других эксплорерах не нашёл, а blockcypher не показывает время трансляции.
Показывает, нажмите "</> API Call", там в том числе есть и время, и текст транзакции, в котором я увидел, что она без RBF.


Title: Re: Замена на транзакцию с меньшей комиссией
Post by: BVeyron on November 18, 2023, 08:49:22 AM

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

Это очень интересная схема, как я думаю.
Если не секретная, поделитесь с комьюнити поподробнее, что и как надо делать. Чтобы так экономить.
Я думаю многие будут вам признательны меритами и не только.   :)

И еще, как и где вы смотрите минимальные сат/vB которые ноды принимают во времена большого  бума с мемпулом ?
Тоже интересно.


Title: Re: Замена на транзакцию с меньшей комиссией
Post by: igor72 on November 18, 2023, 09:51:29 AM

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

Это очень интересная схема, как я думаю.
Если не секретная, поделитесь с комьюнити поподробнее, что и как надо делать. Чтобы так экономить.
Да многим этот способ известен - ускоритель ViaBTC (https://www.viabtc.com/tools/txaccelerator). У них есть условия для бесплатного принятия транзакции:
1. Транзакция должна быть не больше 500 байт (может, 512 - не проверял)
2. Она должна быть отправлена с комиссией не менее 10 сатоши за байт.
3. В час принимается только 100 транзакций, поэтому старайтесь это делать в начале часа (вчера 100 мест забивалось за 45 секунд)

Думаю, стоит пояснить, что байты здесь подразумеваются реальные, а не виртуальные. То есть, несмотря на то, что, к примеру, в типичной сегвит-транзакции (1 вход/2 выхода) мы платим за 141 виртуальный байт, занимает она 222 реальных байта - примерно столько же, сколько и легаси.
Из этого следует, что:
1. Транзакция в любом случае должна иметь не больше, чем 3 входа без сдачи или не больше, чем два входа со сдачей,
2. Сегвит-транзакция должна быть отправлена с комиссией не меньше, чем 16.2 сатоши за виртуальный байт. Округлим, получается не менее 17 сат/вБ.

Ну и лайфхак напоследок. Я не смог вчера отправить такую транзакцию из Электрума, потому что сервера отвергали в тот момент транзакции меньше 30 сат/вБ. Но я ее без проблем запушил прямо на ViaBTC-сервере (https://www.viabtc.com/tools/broadcast), после чего успешно ускорил.

Quote
И еще, как и где вы смотрите минимальные сат/vB которые ноды принимают во времена большого  бума с мемпулом ?
Тоже интересно.
Тут (https://mempool.space/ru/), параметр "Очистка".