Что происходит с неподтвержденными транзакциями?

Каждые 10 минут утверждается только 1 МБ транзакций, так что же случилось с остальными? Допустим, моя транзакция не попала в блок, могу ли я быть уверен, что никто не собирается вставлять ее в следующий блок?

Вы также можете взглянуть на эту эпическую ветку о задержках с tx: bitcoin.stackexchange.com/questions/9046/…

Ответы (1)

Каждый узел в одноранговой сети может хранить транзакцию в своем мемпуле, в течение которого они будут продолжать передавать ее другим узлам. Через некоторое время узел удалит его из мемпула. Время по умолчанию в Bitcoin Core составляет две недели, но отдельные узлы могут использовать другое значение.

Допустим, моя транзакция не попала в блок, могу ли я быть уверен, что никто не собирается вставлять ее в следующий блок?

Нет, вы не можете быть в этом уверены. Конечно, пока транзакция находится в мемпулах большинства узлов, она будет по-прежнему рассматриваться для включения в новые блоки. Это желательно для большинства людей, которые предпочли бы, чтобы транзакция была подтверждена в ближайшее время, даже если она не была подтверждена немедленно.

В принципе возможно, что какая-то нода сидит в вашей транзакции и попадает в блок спустя долгое время — даже годы. Единственный способ быть уверенным, что ваша транзакция никогда не будет подтверждена, — это дважды потратить ее: создать новую транзакцию, которая тратит хотя бы один из тех же входов. Если новая транзакция подтверждена (с достаточным количеством подтверждений, скажем, 6), то старая не может быть подтверждена, потому что цепочка блоков не может содержать конфликтующие транзакции.

«сделать новую транзакцию, которая тратит хотя бы один из тех же входов». Это непросто сделать с обычным кошельком, потому что обычно вы не можете контролировать эту информацию.
@Mr.Turing: В общем, да. Хотя Bitcoin Core имеет функцию «управления монетами», где вы можете выбирать входы для своей транзакции. Конечно, вы сначала должны убедить его, что эти входы действительно доступны, и заставить его забыть, что он потратил их однажды раньше.