Как устроены транзакции

Напомним, ранее мы уже выяснили, что при переводе монет кошелёк оперирует UTXO или неизрасходованными выводами транзакций. Принцип их действия очень похож на расчёты наличными. Если вам надо заплатить 50 долларов, вы не отрываете половину стодолларовой купюры, а отдаёте её в обмен на сдачу. С биткоинами так же: если раньше вам на кошелек пришёл 1 BTC, сеть криптовалюты сформирует два новых вывода — саму транзакцию 0,5 BTC и «сдачу» 0,5 BTC, которая вернётся на ваш адрес.

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

Пример: вы получаете по 2 BTC из трёх кошельков. Чуть позже вы отправляете полученные монеты на ещё один адрес. Вес транзакции будет формироваться в зависимости от количества участвующих адресов:

  • входящий адрес: 148 байтов
  • исходящий адрес: 34 байта
  • сама транзакция: 10 байтов

Итого: ваш перевод будет весить 148×3 + 34 + 10 = 488 байтов.

Что получают майнеры?

После подписи все транзакции попадают в мемпул — очередь, после которой транзакции должны записываться в блоки. Каждый блок добывается около 10 минут, причём в него может попасть от двух до трёх тысяч транзакций в зависимости от их веса. Размер самого блока остался неизменным — 2 мегабайта.

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

Источник: Blockchain

На момент написания статьи размер мемпула составляет 9 297 935 байт (9,2 мегабайта). Кстати, в конце 2017 года ситуация была намного критичнее. Тогда размер мемпула перевалил за 120 мегабайтов.

Источник: Blockchain

Разделим размер блока на размер мемпула: 1 / 9,2 = 0,108. Другими словами, лишь 10,8 процента транзакций смогут попасть в следующий блок, который и добудут в течение 10 минут. Кто попадёт первым? Тот, кто даст больше всего денег! Деньги за транзакцию майнеры получают в виде комиссии, которую мы с вами и пытаемся вычислить вручную.

Важный момент: майнерам выгодно сначала обрабатывать транзакции с большей стоимостью байта транзакции. К примеру, Ваня заплатил 0,1 mBTC (1 BTC = 1000 mBTC) в виде комиссии, Паша — 0,5 mBTC. При этом у первого в транзакции участвуют два адреса, а у второго двадцать. Кого «обслужат» первым? Ваню, потому что стоимость его байта транзакции составляет 0,05 mBTC, в то время как показатель Паши составляет 0,025. Хотя на первый взгляд может показаться, что Паша должен первым попасть в очередь, ведь он даёт больше денег.

Как платить меньше?

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

При автоматической установке комиссии в кошельке вы можете переплачивать лишние доллары. Пример: перед вами в мемпуле 1000 транзакций с комиссией 1 сатоши за байт. Кошелёк может автоматически установить комиссию в размере 10 сатоши за байт, чтобы ваш перевод побыстрее попал в блок. Но какой в этом смысл? Даже заплатив 2 сатоши за байт, вы окажетесь впереди всех.

Дабы сразу же определить оптимальную комиссию на данный момент времени, воспользуйтесь сервисом http://bitcoinfees.earn.com/. Здесь отображается, сколько пользователи платили в качестве комиссий за последние сутки и за последние 2 недели.

Источник: Bitcoinfees

Под графиком — в нижней части страницы — приведена оптимальная цена сатоши за байт.

Источник: Bitcoinfees

В данный момент для средней транзакции размером 256 байт достаточно заплатить 40 сатоши/байт, чтобы она попала в первый блок. Итого общая комиссия составит 10 240 сатоши или 0,00010240 BTC.

Так сколько нужно заплатить за миллион долларов?

Повторим главное условие: всё зависит от размера самой транзакции.

Не важно, отправляете ли вы доллар или миллиард долларов, на комиссию сумма перевода никак не повлияет. Главную роль здесь играет вес самой транзакции. Допустим, транзакция на 78,75 BTC или миллион долларов по текущему курсу весит 488 байтов (возьмем уже разобранный нами пример). По рекомендации bitcoinfees за такой перевод придётся выложить 488 × 40 = 19 520 сатоши. Это 0,00019520 BTC или 2,47 доллара.

Неплохая сделка, не правда ли? Сумма комиссии будет варьироваться от количества транзакций в мемпуле и веса самого перевода. Есть ещё вопросы? Задайте их экспертам нашего крипточата ходлеров!

ПОДПИСЫВАЙТЕСЬ НА НАШ КАНАЛ В ТЕЛЕГРАМЕ, ЧТОБЫ БЫТЬ В КУРСЕ.