Объяснение транзакций в сети Биткоин простым языком, комиссии и способы ускорения

В блокчейне Биткоин перечисление денег считается действительным при подтверждении транзакции, действительного намерения отправителя послать платеж получателю. Иногда это занимает длительное время, и тогда требуется ускорить транзакцию. Владельцам BTC полезно разобраться, какие конкретно операции называют транзакциями в сети Биткоин, и где можно посмотреть свои транзакции?

В чем суть транзакций в Bitcoin?

Схема
Схема работы блокчейна.

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

Схема
Схема обработки транзакций.

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

В блокчейне не существует:

  1. Записанного где-то баланса биткоинов на кошельке. При обращении к базе данных сумма каждый раз пересчитывается заново.
  2. Счетов. Публичный ключ (адрес кошелька) дает право на вход в базу данных, а приватный ключ дает возможность ее редактировать, например, отправлять кому-то деньги.
  3. Биткоинов. Криптовалюта существует только в виде разницы полученной и отправленной с одного кошелька суммами. Все транзакции связаны между собой, поэтому система может подсчитать условный «баланс на кошельке».

Децентрализованная база данных имеет такую иерархическую структуру:

  1. Самая мелкая и неделимая единица – это транзакция. В ней зашифрованы данные о получателе, отправителе и сумме платежа, которые передаются только все вместе, одним пакетом.
  2. Транзакции объединяются в блоки. Процесс включения транзакции в блок и называется ее подтверждением (верификацией).
  3. Блоки образуют цепочку, ссылаются друг на друга. При хардфорке, например, эта цепь может разделяться на две уже независимые друг от друга ветки.
  4. Цепочка связанных между собой блоков и есть блокчейн.

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

Технология транзакций в блокчейне

Схема
Общий вид транзакций.

Транзакция включает в себя 2 части:

  1. Вход, Txin (input).
  2. Выход, Txout (output).
Хешем называется результат вычислений хеш-функции, преобразующей любой массив данных в строку фиксированной длины.
Информация
Вход и выход транзакции.

В транзакцию входят такие элементы.

Название Упрощенное определение Содержание
Выход (output) Инструкция по отправке биткоина. Включает в себя такие значения:

  1. Value. Это сумма в сатоши (100 000 000 BTC), которая должна быть переведена на другой публичный ключ.
  2. ScryptPubKey. Это скрипт открытого ключа отправителя для верификации.
Вход (input) Ссылка на выход предыдущей транзакции. Включает в себя такие значения:

  1. Хеш предудущей транзакции (previous tx).
  2. Index – это номер выхода этой транзакции (их может быть несколько).
  3. ScriptSig – это хеш, содержащий приватный ключ отправителя.

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

Например, если у человека есть 100 биткоинов, и он хочет отправить 25 биткоинов своему другу, то создается 2 выхода:

  1. Один на 25 биткоинов (это платеж на открытый ключ получателя).
  2. Один на 75 биткоинов (это сдача, которая возвращается на открытый ключ отправителя).

Обработка транзакций представляет собой проверку выполнения скрипта ScryptPubKey и подписи ScriptSig, а также включение всей информации в блок.

Время и процесс подтверждения транзакции в блокчейне

Блоки
Взаимосвязь блоков в блокчейне.

Блок включает в себя несколько составляющих:

  1. Собственный хеш-заголовок.
  2. Хеш предыдущего блока.
  3. Группу транзакций. Первая – это та, в которой указана комиссия за генерацию этого блока.

Так как все блоки ссылаются друг на друга, их можно пронумеровать по порядку.

Схема
Выбор количества подтверждений.

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

Биткоины, которые выплачиваются майнерам в качестве награды за сгенерированный блок, проходят 100 подтверждений. В большинстве Биткоин-клиетов оплата не начисляется, пока не наберется 120 подтверждений.

В среднем это занимает от 20 минут до 1 часа, но при большой нагрузке на блокчейн процесс может затянуться. Верификация транзакций занимает некоторое время, в среднем от 20 до 60 минут при условии, что отправитель назначил среднюю комиссию.

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

Комиссия за транзакцию

Главная страница
Данные bitinfocharts.com/ru/.

Майнеры получают награду из собранной комиссии. Размер платы за перевод денег устанавливает отправитель, она может быть и нулевой.

Есть 3 условия, при которых будет обработан платеж с нулевой комиссией:

  1. Значение всех выходов не меньше 0,01 BTC.
  2. Совокупный размер не менее 1000 байт.

Обычно комиссии с нулевой таксой за обработку округляются до 1000 байт, и к ним добавляется комиссия 0,0001 BTC. Либо они чрезвычайно долго не покидают мем-пул.

Некоторые кошельки, например, популярный Bitcoin-Qt могут просто не отправить транзакцию без комиссии.

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

Среднюю комиссию за транзакцию биткоин можно посмотреть здесь bitinfocharts.com/ru/comparison/bitcoin-transactionfees.html.

Когда весь 21 млн биткоинов будет добыт, майнеры все равно смогут зарабатывать на комиссиях за обработку транзакций.

Включение транзакций в блоки имеет такие особенности:

  1. Максимальный размер блока до 300 000 байт.
  2. Из этого 30 000 байт заполняется транзакциями с самым высоким приоритетом.
  3. Остальной объем распределяется между транзакциями со средним приоритетом. Обработке в первую очередь подлежат переводы с ненулевой комиссией, от 0,0001 BTC.
  4. На транзакции в комиссией в 0,0001 BTC отводится не более 15 000 байт в минуту.
  5. Все платежи, не вошедшие в блок, сохраняются в мем-пуле.

Приоритет транзакции считается по такой формуле.

Формула расчета
Формула расчета приоритета.

Расшифровывается это так:

  1. Priority – приоритет.
  2. Sum – сумма транзакции в сатоши.
  3. Input_value_in_base_units – количество подтверждений.
  4. Input_age – возраст монеты.
  5. Size_in_bytes – размер транзакции в байтах.

Пример расчета по этой формуле:

Человек имеет 7 биткоинов и хочет послать другу 5. Создается транзакция на два входа, один из них на 2 BTC с 2-мя подтверждениями, а другой на 5 с 10-ю. Общий размер транзакции 500 байт.

Приоритет равен (500 000 000*10+200 000 000*2)/500 = 10 800 000.

В первую очередь обрабатываются транзакции с приоритетом от 57 600 000, то есть, содержащие крупные суммы и высокие комиссии.

Информация
Данные.

Вот пример распределения приоритетов для разных транзакций.

Как проверить транзакцию, когда придет платеж?

Официальный сайт
Сайт blockchain.info/ru.

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

Провести проверку своей транзакции биткоинов можно на сайте blockchain.info или на chain.so.

Чтобы посмотреть статус транзакции биткоин, нужно ввести хеш.

Данные
Ввод хеша.
Пример
Пример подтвержденной транзакции.
Пример
Пример неподтвержденной транзакции.

Подтвержденные транзакции

Главная страница
Информация с blockchain.info/ru.

Ниже находится счетчик транзакций, который показывает, сколько платежей было обработано за прошедшие 24 часа.

Где посмотреть неподтвержденные транзакции биткоин?

Карта
Мем-пул на blockchain.info/ru/unconfirmed-transactions.

До момента верификации транзакция находится в мем-пуле, виртуальном хранилище.

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

График
Blockchain.info/ru/charts/mempool-size.

Можно просмотреть размер мем-пула и понять, что сейчас неподтвержденных транзакций не так много, как было полгода назад.

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

Ввод
Ввод хеша.

Для этого нужно ввести хеш в поиск на chain.so или на blockchain.info, открыть детализацию и посмотреть комиссию за байт.

Детализация
Детализация.
Зная комиссию, можно зайти на bitcoinfees.earn.com или на btc.com и по графику прикинуть время ожидания.
Информация
Информация bitcoinfees.earn.com.
Информация
Информация btc.com.

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

Выписка
Выписка.

Как отменить транзакцию Биткоин?

Фото
Фото.

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

Ускорение транзакций

Есть несколько способов ускорения транзакции биткоин.

Повышение комиссии

Достаточно установить комиссию для майнеров выше 0,0002 BTC, и они включат транзакцию в блок гораздо быстрее обычного. Заработок майнеров складывается из комиссией за обработку транзакций биткоин.

Replace-By-Fee

Electrum
Подключение RBF в Electrum.

Опцию RBF можно включить в кошельке. Она обеспечивает возможность повторной отправки того же перевода, но с более высокой комиссией. При верификации в блок будет включен второй, а не первый платеж. Если Opt-RBF не включить, то второй перевод на ту же сумму и на тот же адрес нельзя будет сделать до тех пор, пока не подтвержден первый.

Opt-RBF есть в двух кошельках:

  • GreenAddress;
  • Electrum;
  • Armory
  • Bitcoin Core.

В Bitcoin Core можно подключить ее только с помощью стороннего скрипта при отправке транзакции на верификацию, но не в момент формирования транзакции.

ChildPaysforParent

Схема
Подключение CPFP в Electrum.

Опция Child pays for Parent помогает не только ускорению транзакций, но и подтверждению платежей при перегрузке сети. Ее можно подключить в Electrum или в Bitcoin Core.

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

В Bitcoin Core подключить CPFP можно по такому пути:

  1. Settings -> Options -> Wallet
  2. Поставить галочку рядом с Enable coin control features.
  3. Поставить галочку рядом с Spend unconfirmed change.
  4. Закрыть окно настроек, нажать Send.
  5. Выбрать Inputs и поставить галочку у суммы проблемной транзакции.
  6. Нажать Ok.
  7. Указать свой публичный ключ в адресе получателя.
  8. Поставить галочку рядом с Subtract fee from amount.
  9. Комиссию выбрать custom и per kilobyte.

При расчете комиссии можно пользоваться такой формулой:

(Размер старой транзакции/размер новой транзакции +1)*комиссию выше средней.

Coinbase

Главная страница
Главная страница coinbase.com.
Ускоритель Сoinbase – это платформа для более быстрого проведения транзакций между кошельками, зарегистрированными на ней. Если отправитель или получатель не прошли регистрацию, то воспользоваться услугами сервиса не получится.

Мультиподписи

В кошельке GreenAdress реализована система мультиподписей. Транзакция подписывается:

  1. Зашифрованным приватным ключом отправителя.
  2. Зашифрованным ключом GreenAdress.

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

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here