Информация о транзакции биткоин. А что, если сумма на входе и выходе транзакции разная? Как ускорить транзакцию Биткоин

13.06.2019

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Интересно, но bitcoin, как объект не существует. Есть исключительно записи о переводах между адресами. Предположим Василий отправил Федору 2 btc. Эта операция и называется транзакцией. Транзакции биткоин учитываются в специальной базе данных - цепочке блоков (blockchain).

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

Механизмы переводов

Как проверить транзакцию bitcoin? Для транзакции значимы 3 важных типа информации:

  • Вход – адрес отправителя;
  • Сумма – число пересылаемых биткоин;
  • Выход – адрес получателя.

Чтобы осуществить перевод битков нужны адрес, а также секретный ключ. Когда вы открываете кошелёк сперва генерируется закрытый ключ (от 25 до 34 цифр и букв). В результате кошелёк открывает адрес, преобразуя закрытый ключ. имеет сходство с прозрачной ячейкой - каждый может заглянуть что внутри. Но не переживайте, если кто-то решит проверить биткоин адрес вместо вас - воспользоваться может лишь владелец секретного ключа.

Вернёмся к Василию и Федору. При пересылке монет Василий с помощью засекреченного ключа оформляет перевод на отправку с данными о входе, сумме и выходе. С bitcoin - адреса Василия информация отправляется в сеть Bitcoin.

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

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

Транзакции биткоин: цепочки блоков (видео)

Предыдущее видео

Контролируем поступление платежа на биткоин-кошелёк

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

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

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

Почему сумма на входе и выходе транзакции может быть разная?

Вспомним Василия, который пересылал биткоины Федору. Товарищи решили поздравить Василия с праздником и тоже прислать ему несколько bitcoin. Три друга выслали в разное время суток переводы - Юра отправил 2 btc, Людмила — 3 bitcoin и Жора 1 btc. Это значит, что баланс Василия увеличивается на 6 биткоинов. Надо только дождаться и вовремя проверить перевод биткоин.

Что произойдёт если Василий решит снова сделать перевод Федору - в количестве 4 btc. Кошелёк будет пытаться задействовать записи разных переводов, которые образуют требуемую сумму. Например, чтобы получить 4 биткоина, система подвяжет bitcoin транзакции от Людмилы и Жоры (3 btc и 1 btc).

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

В этом случае, Федор получит от Василия перевод на 2 bitcoin (те, что отправил Юра). Кошелёк Василия создаёт свой перевод на 0,5 bitcoin, только уже от Федора к Василию. Другими словами, перевод на 2 биткоина от Юры к Василию перейдёт к Федору, а от Федора к Василию - вернётся сдача 0,5 bitcoin. Так, и выходит, что Василий отправил Федору 1,5 btc. И чтобы получить монетки, от Федора требуется только отслеживание транзакций bitcoin.

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

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

  • транзакция не более 0.01 биткоина;
  • занимает мало места в блоке;
  • пересылаемые btc имеют много подтверждений.

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

Задержка подтверждения транзакций

Если майнеры заняты добыванием новых монеток, это может значить затягивание во времени подтверждения. Поэтому если посмотреть транзакции btc, то, возможно, придётся ждать. Механизмы биткоина предусматривают что добыча для каждого блока требуется около 10 минут. Но если вы пользуетесь сервисом процессинговых компаний, ждать нет нужды - у них работает система мгновенного подтверждения операции после перевода bitcoin.

Как отменить неподтвержденную транзакцию

Зависание - достаточно распространённая для криптовалют проблема. Обычно рекомендуют:

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

Другими словами, формально отменить перевод нельзя, но можно удалить кошелёк. Естественно, перед принятием решения напоследок проверить платеж биткоин. Ничего не изменилось? Запуском клиента с ключом -salwagewallet можно создать новый кошелёк, импортируя в него все счета со старого и историю транзакций. Прежний кошелёк можно не удалять, есть вероятность переименовать или переместить.

Популярность bitcoin в современном мире

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

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

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

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

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

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

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

Время подтверждения транзакции bitcoin: как долго ждать?

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

  1. загруженность сети;
  2. резкие скачки курса;
  3. низкая комиссия.

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

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

В целом держателям биткоинов следует рассчитывать на срок от 2-3 часов до 2 дней.

Ускоритель транзакций биткоин: способы как ускорить подтверждение

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

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

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

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

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

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

  1. выбрать удобный кошелёк, поддерживающий подтверждение перевода (этим кошельком должны пользоваться обе стороны);
  2. воспользоваться функционалом сайта blockchai.info .

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

Транзакция биткоинов: ускорение

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

Сеть биткоина хранит информацию обо всех транзакциях за всю историю криптовалюты.

Если криптоинвестор переживает о статусе перевода, он с легкостью может отследить статус .

Детальная инструкция – как найти и проверить биткоин-транзакцию.

Cодержание:

Как отправить биткоины

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

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

Для удобства в большинстве криптокошельков он генерируется в виде QR-кода.

Если под рукой нет устройства, считывающего QR-коды, всегда можно скопировать адрес в виде уникального набора символов.

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

Не все так просто

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

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

Они делают это с помощью добычи .

В каждый из них помещается только определенное количество данных. Это обусловлено его размером в 1 МБ.

Когда это место заполнено, блок считается закрытым. После этого данные невозможно изменить.

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

Как искать биткоины

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

Каждый из блоков содержит следующую информацию:

  • Версия;
  • Дату создания;
  • Код (хеш) новосозданного блока;
  • Хеш предыдущего;
  • Хеш-коды всех транзакций, содержащихся в блоке.

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

Где проверить транзакцию биткоин (BTC)

Найти свои биткоины и проверить состояние транзакции можно с помощью ресурса Blockchain.info.

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

Blockchain.info выдаст подробности об адресе:

  • Общее число транзакций;
  • Сколько всего биткоинов перечислено на этот кошелек;
  • Итоговый баланс.

Также Blockchain.info расскажет обо всех кошельках, которые когда-либо перечисляли монеты или принимали биткоины в связке искомого номера, количество BTC и дату.

Эти детали можно отфильтровать по отправителю, получателю, и статусу верификации.

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

Первое подтверждение говорит нам о том, что получателю деньги еще не дошли, так как надо получить еще минимум пять подтверждений.

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

Другой вариант

Chain.so – другой ресурс позволяющий найти свои bitcoin.

Принцип поиска тот же: вводим адрес, хеш транзакции или блока.

Chain.so выдаст все доступные детали. Уникальный номер, статус подтверждения, сумму перевода.

Chain.so расскажет о всех транзакциях, содержащихся в блоке, адреса отправителя и получателя, а также размер уплаченной комиссии за перечисление .

Еще на Chain.so можно увидеть, какие майнеры более усердно трудились. Здесь же можно создать свой .

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)). Естественно, новые возможности появляются не сразу и не во всех кошельках, что заставляет пользователей следить за ситуацией, быть может, более внимательно, чем хотелось бы. Можно посоветовать, в частности, перевод относительно свежей заметки «Что делать, если «зависла» транзакция в сети Биткоина?»

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

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

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