Подтверждение транзакций и комиссии BTC


Опубликовано nov 11, 2020


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

Для начала определим, что такое транзакция с точки зрения сети. По сути, это набор информации о монетах и транзакциях в которых эти монеты были получены, а также набор информации куда эти монеты направляются. Транзакция считается валидной, если тратятся ранее неизрасходованные монеты (выходы) и они правильно подписаны приватными ключами. Если транзакция правильная, bitcoin нода, к которой мы обращаемся для отправки, включит её в mempool и разошлет всем другим известным ей нодам. Mempool это что-то вроде очереди транзакций на включение в основную цепочку блоков (историю транзакций сети).

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

Теперь поговорим о факторах, которые влияют на скорость включения транзакции в блок. Как раньше мы уже разобрались, подтверждение, это запись транзакции в блок сети. Средний размер блока на данный момент не превышает 1 мегабайт, т.е он может вместить в себя определенное количество транзакций. Что же определяет приоритет включения транзакций? Считается, что чем больше вы заплатите за транзакцию, тем выше вероятность включения её в блок. Это утверждение не совсем верно, так как в определении приоритета участвует куда больше факторов.

Для определения приоритета транзакции существует формула:

Приоритет = сумма(sat.) * возраст монет в блоках \ размер транзакции в байтах.

Ранее мы говорили, что транзакция это набор информации. Рассмотрим два варианта.

Как мы видим из формулы, чем больше сумма и возраст выходов транзакции и чем меньше размер транзакции (а значит и место, которое она займет в блоке) тем выше получается и приоритет.

В каждом блоке отведен определенный объем данных для включения транзакций именно с высоким приоритетом, независимо от комиссии.

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

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

Создать кошелек