Порядок ускорения и отслеживания транзакции биткоин. Почему не подтверждается транзакция Биткоин

Блокчейн Bitcoin представляет собой цепочку блоков, которая включает публичную базу с информацией обо всех транзакциях с , то есть передачи BTC от одного адресата другому.

Каждый элемент цепи блоков сети блокчейна хранит :

  • историю о предыдущих операциях;
  • информацию о новых транзакциях.

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

Навигация по материалу:

Что такое транзакции в сети Bitcoin

Информация об операциях с биткоинами записывается в специальные блоки, которые представляют собой список транзакций. Если сложить блоки в цепочку, то получите историю «хождения» криптовалюты.

Блок состоит из заголовка и списка транзакций. Заголовок содержит хеш-коды транзакций, собственный и хеш предыдущего блока. Первой в перечне идет транзакция, в которой указывается вознаграждение (комиссия) за создание нового блока.

Чтобы проверить подлинность операций с криптовалютой, транзакции должны быть валидированы в блокчейн. Он представляет собой распределенную БД. Ее части хранятся на множестве компьютеров в сети Bitcoin.

Подтверждение транзакции – это ее присоединение к списку транзакций в блоке.

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

При этом пользователь, проводящий операцию, может уменьшить число проверок. Это следует делать, если оперируете небольшой суммой биткоинов. Что упрощает и ускоряет процесс подтверждения транзакции.

Если верификации перевода криптоденег не произошло, то система возвращает средства обратно на кошелек отправителя.

Время транзакции в блокчейне Bitcoin

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

Время ожидания зависит от загруженности сети блокчейна. За последние два года количество операций с биткоинами выросло более чем в 8 раз. Это видно на графике ниже:

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

Методы сокращения времени транзакции :

  • Повышение комиссии для майнеров – специалисты советуют «не жадничать» и отдавать за подтверждение от 0,0002 ВТС и более.
  • Объем переводимых средств – чем больше криптовалюты переводите, тем статус операции выше в «криптосети».
  • Использование специализированных площадок наподобие coinbase.com – на таких сервисах покупатели и продавцы сохраняют свои ключи. Благодаря этому подтверждение происходит в рамках этой платформы, а не в общей сети.

Как проверить биткоин транзакцию?

Отследить свою биткоин транзакцию можно с помощью публичных сервисов (регистрация не требуется):

Что бы узнать сколько подтверждений сети прошло по определенной транзакции, зайдите на площадку Blockchain.info или Chain.so и введите в поисковую строку известный вам хеш операции. После этого отобразится вся информация о блоке и его текущий статус.

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

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

Классический Bitcoin-клиент будет отображать транзакцию как «неподтвержденную» пока не наберется 6 подтверждений (6 найденных блоков). Сайты или сервисы, которые принимают Bitcoin для оплаты своих товаров или услуг, могут ставить свои ограничения на количество блоков нужных для подтверждения транзакции.

Цифра 6 была выбрана не случайно: она основывается на теории, что вероятность того, что злоумышленник сможет накопить более 10% от хешрейта сети для подделки транзакций, мала, и что незначительный риск (менее 0,1%) является приемлемым.

Как ускоритель биткоин транзакцию?

Рассмотрим несколько способов, как использовать систему блокчейн в «скоростном режиме»:

  • Использование централизованных сервисов с отдельной системой транзакций. Существуют ресурсы, предлагающие услуги создания и использования , которые проводят транзакции цифровой валюты между своими клиентами, не задействовав экосистему блокчейна. Подобные сервисы предлагают своим клиентам мгновенные транзакции, но только в том случае, если перевод валюты происходит внутри системы. Один из таких сервисов – Coinbase. Он имеет отдельную от блокчейна систему транзакций, благодаря которой можно проводить переводы практически мгновенно.
  • Использование мультиподписи для ускорения подтверждения транзакции в системе Биткоин. Некоторые компании, такие как GreenAddress, кроме стандартной подписи транзакции, предусмотренной системой, ставят свою мультиподпись, как подтверждение надежности перевода. Система блокчейн рассматривает подобные транзакции, как надежные и они быстрее принимаются в генерируемый блок. Кроме того, использование технологии мультиподписей повышают безопасность криптовалютных транзакций.
  • Использование открытых транзакций и доверительных серверов. Суть в том, что открытая транзакция, когда присутствует вся информация об отправляющей и принимающей стороне, быстрее получает подтверждение системы путем принятия данных в генерируемый блок. Но мало кто использует открытые Биткоин-транзакции, поскольку это противоречит самой идее использования цифровой валюты, а именно – анонимности денежных переводов.

Ускорение транзации с помощью функции Opt-In Replace-by-fee

Самый простой способ заставить вашу транзакцию перепрыгнуть очередь – использование опции под названием Opt-InReplace-by-Fee (Opt-InRBF). С её помощью можно повторно отправить ту же самую транзакцию, но с более высокой комиссией.

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

Однако, отправляя транзакцию при помощи Opt-InRBF, вы, по сути, сообщаете сети о возможности повторной отправки этой транзакции позднее, но с более высокой комиссией. В результате большинство узлов Биткоина принимают новую транзакцию вместо старой; таким образом, новая транзакция перепрыгивает очередь.

Включится ли ваша транзакция именно в следующий блок, зависит от того, какой майнер добудет новый блок: не все майнеры используют Opt-InRBF. Так или иначе, данную опцию поддерживает достаточное количество майнеров, чтобы ваша транзакция была включена в следующие несколько блоков.

В настоящее время, функцию Opt-InRBF поддерживают как минимум два кошелька: Electrum и GreenAddress. В Bitcoin Core она поддерживается при обработке транзакций, однако создавать собственные RBF транзакции возможно только с помощью сторонних скриптов. В зависимости от кошелька, может потребоваться обновление Opt-InRBF в настройках меню до отправления (первой) транзакции.

Комиссии за транзакции в сети биткоин

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

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

Какую комиссию ставить что бы транзакция не зависла — таблица!

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

Ниже приведена таблица приоритетов включения транзакции в блок. Рекомендованная комиссия спрогнозированна с учетом нагрузки сети Bitcoin для быстрого подтверждения Вашей транзакции.

Последний столбец в таблице показывает прогноз попадания платежа с комиссией за транзакцию соответствующий этой строке во временной интервал подтверждения от 0 до 25 мин.

Как проводить анонимные транзакции в сети Bitcoin?

Также если это необходимо, вы можете узнать , развернутое руководство доступно у нас на сайте.

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

Также будет полезно ознакомиться с (некоторые из которых до сих пор находятся в размработке).

Так вы уже здесь второй год «стоите»! Да вот жду подтверждения транзакции с биткоинами. Наверное, маленькую комиссию назначил. (Из анекдота, подслушанного в блокчейн)

Проще, быстрее и легче! Такими «лозунгами» я буду руководствоваться, чтобы доходчиво объяснить вам, как долго происходит подтверждение транзакции. Но сначала перечислим те вопросы, на которые мы попытаемся ответить:

Как это работает?

Извините, но буду «грузить» 😉 Без этого понять принцип манипуляций с криптовалютой не получится.

1) Информация об операциях с биткоинами записывается в специальные блоки, которые представляют собой список транзакций. Если сложить блоки в цепочку, то получите историю «хождения» криптовалюты.

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

3) Чтобы проверить подлинность операций с криптовалютой, транзакции должны быть валидированы в блокчейн. Он представляет собой распределенную БД. Ее части хранятся на множестве компьютеров в сети Bitcoin.

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

Подтверждение транзакции – это ее присоединение к списку транзакций в блоке.

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

При этом пользователь, проводящий операцию, может уменьшить число проверок. Это следует делать, если оперируете небольшой суммой биткоинов. Что упрощает и ускоряет процесс подтверждения транзакции.

Если верификации перевода криптоденег не произошло, то система возвращает средства обратно на кошелек отправителя.

Как долго ждать?

У меня в среднем уходит от 20 минут до часа.

Время ожидания зависит от нескольких составляющих:

1) Загруженность «криптосети» — за последние два года количество операций с биткоинами выросло более чем в 8 раз. Это видно на графике ниже.

Он показывает рост количества триллионов хешей, выполняемых в секунду в сети Bitcoin.

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

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

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

3) Скачки курса криптовалюты – тоже повышают время верификации.

Вот видео, в котором рассказывается о подобном случае на blockchain.

Как узнать сколько подтверждений прошло?

Советую ищущим «незнамо что» по своим (и не только) операциям с биткоинами заходить на blockchain.info . Здесь можно найти любую информацию по блокам, транзакциям. А также «промониторить» общую ситуацию на рынке.

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

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

Как увеличить скорость?

Методы сокращения времени транзакции:

  • Повышение комиссии для майнеров – специалисты советуют «не жадничать» и отдавать за подтверждение от 0,0002 ВТС и более.
  • Объем переводимых средств – чем больше криптовалюты переводите, тем статус операции выше в «криптосети».
  • Использование специализированных площадок наподобие coinbase.com – на таких сервисах покупатели и продавцы сохраняют свои ключи. Благодаря этому подтверждение происходит в рамках этой платформы, а не в общей сети.

  • Использование биткоин-кошельков с функцией создания мультиподписи – на подобных сервисах для подтверждения операции с криптовалютой от пользователя потребуется лишь указать закрытый ключ. Второй «подписью» выступает ключ сервиса. Таким образом не тратятся средства и время на подтверждение транзакции.

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

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

Биткоин-транзакция — это процесс, при котором происходит сбор сведений в общую сеть и их отображение в блоках. В каждом блоке создается множество транзакций, ожидающих подтверждения. Добытчики криптовалюты находят решения каждые 10 минут, и в новый блок добавляется очередная цепочка.

Транзакции может видеть любой пользователь и в них отображаются следующие сведения:

  • адрес, с которого перечисляются монеты;
  • сумма перечисляемых биткоинов;
  • исходная информация.

Важный нюанс. Предположим, что вам нужно перечислить 15 монет получателю, а на счету есть 20 монет. Для перевода вы создаете две операции. В одной указывается открытый ключ покупателя, в другой — ваш ключ. В первом случае указывается сумма 15, во втором — 5 (в качестве сдачи).

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

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

Время — деньги или сколько ждать?

Длительность ожидания одного подтверждения составляет около 10 минут.

На то, как долго будет длиться процесс, влияет несколько факторов:

  • стабильность сети;
  • колебания курса;
  • размер комиссионного сбора.

Если при переводе наблюдаются все перечисленные выше обстоятельства, то вопрос о том, сколько ждать подтверждения, остается открытым. Данный процесс может занять несколько часов. А если вы желаете совершить транзакцию без комиссии, то положение затянется надолго (автор видео — Crypto Mining).

Как узнать, сколько получено подтверждений?

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

Методы сокращения времени транзакции

Чтобы сократить длительность ожидания подтверждения, примите во внимание дельные советы:

  • отдавайте за транзакцию от 0,0002 ВТС и выше;
  • увеличивайте объем переводимых средств. Чем он больше, тем выше его статус;
  • используйте специализированные площадки, где сохранены ключи покупателей и продавцов. За счет такой системы подтверждение происходит быстрее, но не в рамках общей сети.

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

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

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

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

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

С уничтожением данных файлов пропадают и имеющиеся сбережения.

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

  1. отправитель заходит в свой онлайн кошелёк и вводит реквизиты получателя;
  2. далее информация об операции собирается в специальные блоки, имеющие собственный уникальный номер и хэш;
  3. блоки отправляются на компьютеры майнеров для проверки;
  4. при отсутствии ошибок, информация копируется на устройство майнера, а сам блок отправляется обратно;
  5. потом блоки составляются в единую цепочку, а получатель принимает отправленную ему сумму.

Важно: на любом этапе перевода желающие могут посмотреть статус платежа.

Как найти биткоин транзакцию?

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

Следует помнить, что каждый информационный файл состоит из трёх составных частей:

  • Input – сведения об отправителе;
  • Output – информация о получателе;
  • Amount – отправленная сумма.

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

Как отследить транзакцию биткоин?

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

  1. ПО получателя;
  2. размер комиссии, назначенной отправителем;
  3. объём перевода;
  4. резкие скачки курса.

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

Дополнительно необходимо отметить, что итоговое время платежа способно оказаться как минимальным – 5-10 минут, так и довольно долгим (более суток).

Как проверить транзакцию bitcoin?

Самый простой и эффективный способ отслеживания движения средств – посещение сайта blockchain.info. Здесь собраны сведения о проведённых операциях, ведётся статистика и имеются данные о ходе проверок и обработки блоков. Чтобы получить необходимую информацию, потребуется:

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

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

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

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

Порядок проверки заложен в базовые условия работы финансовой системы.

Поэтому более высокий приоритет всегда получают те, кто предлагает больше денег в качестве комиссии. А её размер должен определять сам отправитель.

Освобождаются от уплаты дополнительных сборов те:

  1. чьи переводы оказываются меньше 0,01 btc;
  2. чьи информационные файлы занимают минимальное место;
  3. чьи переводы имеют огромное количество подтверждений.

Как ускорить?

Исходя из всего вышесказанного, чтобы ускорить поступление средств на указанный кошелёк, следует:

  • увеличить размер комиссии;
  • совершать только крупные bitcoin транзакции;
  • пользоваться помощью крупных бирж, осуществляющих операции за счёт собственных ресурсов;
  • воспользоваться мультиподписью, гарантирующей надёжность платежа и повышающей его приоритет;
  • совершить открытый перевод;
  • воспользоваться сервисами-ускорителями.

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

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

Отмена операции

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

Зато не стоит переживать тем, с чьего счёта было списано больше средств, чем необходимо.

Это связано с особенностью переводов. Для ускорения платежей система использует удобные ей суммы, поэтому при отправке 2,5 btc с кошелька будет списано 3 биткоина. Но лишние деньги позднее вернуться в качестве своеобразной сдачи.

Проверка btc переводов и платежей

Убедившись, что вся сумма отправлена, он удостовериться в честности партнёра и сможет спокойно дожидаться поступления средств.

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

13.02.201717:21


Борис Оболикшто
эксперт

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

Зависшие Bitcoin-платежи: как это происходит? Фото: mmgp.ru

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

Итак, шли последние дни августа 2016 года, было жарко и… Ну не знаю, пусть виной всему будет 30+ градусов, перегревшийся компьютер и плавящийся от жары мозг. Все равно более внятных причин, явно объясняющих эксцесс, я пока не нашел.

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

Пополнить счет просто: заходишь на сайт сервиса, вводишь свой номер телефона, выбираешь сумму пополнения счета и получаешь адрес для перевода BTC-шек из своего кошелька сервис-провайдеру (см. скриншот 1). Если кошелек на мобильном устройстве, то еще проще: QR-код поможет быстро передать все параметры и выполнить оплату. Обычно так все и происходит: вы наводите камеру на QR-код, кошелек формирует транзакцию и выполняет оплату. Но в тот раз что-то пошло не так… Нет-нет, читатель, нет причин волноваться - все хорошо кончилось, но не будем забегать вперед.

Итак, с точки зрения пользователя все как обычно: кошелек (это был Bitcoin Core - самый традиционный из возможных) сформировал транзакцию, отправил ее в сеть и… И ничего не произошло. Не пришло подтверждения перевода, поступающего как правило минут через пять-пятнадцать (реже - через полчаса-час). И на следующий день кошелек сообщал о статусе транзакции неутешительное: «Status: 0/unconfirmed, in memory pool» («Статус: неподтверждена, в пуле»). Как наверное знает читатель, транзакции в биткоине безотзывные, то есть нет способа их отменить, деньги перечисляемые из кошелька ушли, а к получателю не пришли. Зависли, и теперь и в кошельке их нет, и счет мобильного не пополнен.

Ситуация «зависшей» биткоин-транзакции не уникальна, даже на русском языке Google дает тысячи ссылок по запросу «зависшие биткоин транзакции» (в выдаче по запросу «Bitcoin Transaction Pending» несколько сотен тысяч позиций, обширное обсуждение зависших транзакций на русском языке ). Постараемся разобраться, что произошло, но для этого нам нужно более подробное представление о том, как происходят транзакции, чем «нажал кнопку - и ОК».

Не буду дублировать рассказ о том, как устроен биткоин (можно прочитать ), остановимся только на процессе выполнения транзакции. Ваше биткоин-приложение, запросив из какого кошелька, сколько и кому вы переводите, сформирует и отправляет в сеть запрос на транзакцию, описывающую всё перечисленное в надлежащем формате. Транзакция попадет в пул (memory pool - mempool) и будет там ожидать майнера, который поместит ее в блок. Когда блок с этой транзакцией попадет в блокчейн, перевод завершится. Как помнит читатель, блокчейн состоит не из отдельных транзакций, а из блоков, то есть наборов транзакций и удостоверяющих их данных. Блоки формируют майнеры, которые получают за это два вида вознаграждений: плату за блок (сейчас это 12,5 BTC) и комиссию за транзакции, включенные в блок.

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

Но пока вернемся к пулу - месту, где «живут» транзакции, еще не подтвержденные и не отвергнутые (подробнее ). Майнеры отбирают из пула транзакции, пытаясь сформировать из них блоки. Так как размер блока ограничен, то в блок чаще всего отбирается лишь часть транзакций из пула (сейчас, когда я пишу эти строки, в пуле почти 41 тысяча неподтвержденных транзакций, занимающих более 42 МБ - понятно, что их все не поместить в один блок). Если мы проследим судьбу типичной транзакции, то увидим фазы ее жизни (см. скриншоты 2 и 3).

Скриншот 2. Транзакция появилась в пуле

Скриншот 3. Транзакция подтверждена и появилась в блокчейне

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

  • Когда транзакция включается в блок (подтверждается);
  • Когда транзакция или один из ее источников начинает конфликтовать с другой транзакцией, уже подтвержденной (деньги источника потратили раньше, чем подошла очередь транзакции);
  • Когда транзакция обладает наименьшим приоритетом в пуле, пул достиг максимально допустимого размера и в него добавляется транзакция с более высоким приоритетом (вытеснение);
  • Когда транзакция умирает по тайм-ауту (по умолчанию через 72 часа);
  • Когда транзакция заменяется (это относительно новая возможность, мы ее обсудим позже).

Нашей транзакции не повезло: то ли рука дрогнула при отправке оплаты, то ли еще какая-то непредвиденность случилась, но в транзакции, которая ушла в пул, оказалась нулевая комиссия (fee). Здесь нужно пояснение. Формально протокол биткоин-сети не требует комиссии. Когда биткоин только появился, были возможны бесплатные транзакции (увы, не все следят за переменами, и до сих пор иногда можно услышать от неофитов, что переводы биткоин бесплатны).

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

В зависимости от того, каким кошельком вы пользуетесь, обычная судьба «убитой» транзакции может быть различной. Например, транзакция может быть объявлена несостоявшейся, и неотправленные средства вновь появятся в кошельке. Но возможна и повторная попытка кошелька отправить транзакцию на исполнение в пул. В таком случае транзакция «возродится» в пуле и будет висеть там, периодически возобновляясь, неограниченно долго. В последнем случае ваши средства оказываются замороженными: они недоступны ни вам, ни получателю. Именно такой случай чаще всего описывают столкнувшиеся с зависшими транзакциями пользователи (см. например, заметку об экспериментах с нулевой комиссией). На первый взгляд, именно с такой ситуацией и столкнулся мой знакомый - кошелек упорно сообщает все то же: «Status: 0/unconfirmed, in memory pool».

В описанных случаях (см., в частности, ссылки выше), зависшие средства удается вернуть в кошелек, используя специальные ключи перезагрузки или перезагрузив программу с нуля (в последнем случае блокчейн загружается вновь путем запросов к сети, то есть не попавшие в него транзакции будут проигнорированы, и средства вернутся в кошелек). Процедура полной перезагрузки хлопотная и может занимать очень много времени (не шутка же - перезагрузить более 100 ГБ данных блокчейна), тем не менее, мой знакомый выполнил ее. И ничего хорошего не увидел. Даже спустя пару месяцев популярный сервис анализа блокчейна blockchain.info сообщал: «Transaction rejected by our node. Reason: Fee is too low / Not sufficient priority» («Транзакция отвергнута нашим узлом. Причина: Комиссия слишком мала / Недостаточный приоритет»). То есть, транзакцию по-прежнему видел, но выполнять ее отказывался. Печальная ситуация.

Но нам повезло! 21 января дело дошло до нашей транзакции, и она (ура!!!) выполнилась. И в описании транзакции видно, что было необычным. Рассмотрим скриншот 4.

Скриншот 4. «Наша» транзакция подтверждена!

Кроме нулевой комиссии (Fees), транзакция отличается от показанной на третьем скриншоте еще и полем «Lock Time». Этот параметр транзакции показывает, начиная с какого блока майнеры могут включать в блок транзакцию. Многие кошельки ставят 0, разрешая включать немедленно. А кошелек Bitcoin Core, по праву первооснователя считающий себя обязанным следить за безопасностью всей биткоин-сети, устанавливает в значение ближайшего генерируемого блока, что препятствует возможности злоумышленнику атаковать сеть, выстраивая из поздних транзакций конкурирующую с уже существующими блоками ветвь. Но блок 427560 оказался как раз тем редким блоком, который заполучил конкурента. Два майнера почти одновременно, с отличием менее двух секунд, сгенерировали блоки с таким номером (правильнее говорить «такой высоты» - порядковый номер блока в блокчейне называют высотой).

Блоки, которые порождали точки разветвления, отображает, например, Blockchain.info

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

С одной стороны, по мере роста интереса к технологии и числа активных кошельков, растет число запросов на транзакции, а значит и конкуренция за подтверждение транзакций (то есть, выполнение платежей). С другой стороны - ситуация улучшается потому, что новые кошельки поддерживают динамическое задание комиссии в зависимости от наполненности пула. А разработчики вводят новые возможности, в частности, возможность увеличить комиссию для уже отправленной в пул, но все никак не подтверждаемой транзакции (функция Opt-In Replace-by-fee (RBF)). Естественно, новые возможности появляются не сразу и не во всех кошельках, что заставляет пользователей следить за ситуацией, быть может, более внимательно, чем хотелось бы. Можно посоветовать, в частности, перевод относительно свежей заметки «Что делать, если «зависла» транзакция в сети Биткоина?»

Сервис поддержки пользователей мог бы стать еще одним фактором, стимулирующим распространение биткоин-платежей. Но пока спасение утопающих дело рук… Пусть не только самих утопающих, но еще и энтузиастов, подсказывающих на форумах что делать. Однако хотелось бы видеть постоянно действующие сервисы/горячие линии, пусть хотя бы на уровне объявлений на столбах: «Настрою биткоин-платежи, помогу вернуть зависшие транзакции». Понятное дело, здесь есть проблема: пока платежей немного, сервис не может быть рентабелен, пока сервиса нет - трудно рассчитывать на взрывной рост числа платежей (кстати, рост должен бы создавать и сервисы-надстройки, позволяющие выполнять клиринг платежей между участниками сервиса, снижая нагрузку на блокчейн).

Еще один вопрос касается уже не технологии, а права. Коль скоро транзакция может происходить достаточно долго, а волатильность биткоина немаленькая, то нужны правила, поскольку привычные «три банковских дня» перестают соответствовать нашим представлениям о справедливости. В примере, на котором мы рассматривали зависший платеж, средства были зачтены по курсу на момент создания транзакции. Но с момента транзакции курс биткоина вырос в полтора раза! Ок, мой заждавшийся перевода приятель был рад и этому. Но вряд ли такие риски приемлемы для массовых платежей. С трудом представляю себе и обратную ситуацию, когда пришедшая на третий день транзакция потеряла заметную часть стоимости. Возможно, ситуацию бы поправила страховка биткоин-платежей? Но и о таких услугах я не слышал.

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