Транзакции в сети Биткоин — время, проверка, отслеживание, комиссии. Время подтверждения транзакции биткоин и как ускорить ваш перевод

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

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

Как таковых, биткоинов не существует. Есть только записи об операциях с ними

Это весьма забавный факт: биткоинов нигде не существует, даже на жестком диске компьютера. Принято говорить о том, что у кого-то есть биткоины. Но если заглянуть по конкретному адресу Биткоин, то цифровых монет там не окажется. Это аналогично тому, как на банковском счете числятся доллары или рубли. Не существует никакого физического объекта или хотя бы цифрового файла, на который можно было бы указать, сказав: "Это - биткоин".

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

Как выглядит транзакция в Биткоин?

Если Алиса отправит Николаю несколько биткоинов, такая транзакция будет содержать три фрагмента информации:

  • Вход. Это запись о том, какие адреса Биткоин изначально использовались для отправки биткоинов Алисе (например, она получила их от своей подруги Юлии).
  • Сумма. Сколько биткоинов Алиса отправляет Николаю.
  • Выход. Это адрес Биткоин Николая.

Как происходит отправка Биткоинов?


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

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

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

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

Почему иногда приходится ждать клиринга транзакции?

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

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

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

Что делать, если суммы на входе и выходе не совпадают?

Поскольку биткоины существуют только в виде записей транзакций, со временем к одному адресу Биткоин может быть привязано много разных транзакций. Например, Фима мог прислать Алисе два биткоина, Весельчак У - три, а Крыс - еще один. Все это были разные транзакции, произведенные в разное время.

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

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

Существует вероятность того, что при таком сложении разных транзакций не получится в точности желаемая сумма. Например, нужно отправить Николаю 1.5 BTC.

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

Поэтому ей придется отправить одну из входящих транзакций, а остаток биткоинов вернется ей в виде сдачи.

Например, Алиса отправляет Николаю два биткоина, которые она получила от Ильи. Илья - это вход, Николай - выход. Но она хочет отправить только 1.5 BTC. Поэтому ее кошелек для такой транзакции автоматически создаст два выхода: 1.5 BTC - Николаю и 0.5 BTC - на новый адрес, который создается для хранения Алисой полученной от Николая сдачи.

Удерживается ли комиссия за транзакции?


Иногда, но не каждый раз.

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

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

Можно ли получить квитанцию?

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

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

Будьте в курсе всех важных событий United Traders - подписывайтесь на наш

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

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

Биткоинов как таковых нет, есть только записи о биткоин транзакциях

Во-первых, биткоинов, как таковых, не существует. Забавно, но это факт. Их нет даже на жестком диске. Мы говорим, что у кого-то есть биткоины, но если взглянуть на конкретный биткоин адрес, на нем не будут храниться цифровые монеты в том виде, как хранятся, например, доллары, фунты или рубли на банковских счетах. Вы не сможете указать на какой-то физический объект или даже электронный файл и сказать «это биткоин».

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

Так как что же представляет из себя транзакция?

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

  • Вход (Input) — запись о том, с какого адреса биткоины пришли Маше (допустим, она получила их от подруги Оли);
  • Сумма (Amount) — количество биткоинов, которые Маша пересылает Васе;
  • Выход (Output) — биткоин-адрес Васи.

Как происходит пересылка биткоинов?

Чтобы переслать биткоины кому-либо, нужно две вещи: биткоин адрес и закрытый ключ. Не стоит проводить аналогии между биткоин адресом и счетом в банке — между ними мало общего. В частности, для открытия биткоин адреса нет необходимости заполнять груду бумаг и предоставлять какие-либо идентифицирующие вас документы. Фактически они создаются произвольно и представляют собой случайную последовательность букв и цифр. Закрытый ключ – это тоже последовательность из букв и цифр, но в отличие от вашего биткоин адреса, он хранится в секрете.

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

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

Иногда подтверждение транзакций затягивается во времени. Почему?

Ответ прост. Транзакции подтверждают майнеры, которые при этом заняты . Иногда приходиться ждать, пока они закончат майнинг. Алгоритмом, заложенным в Биткоин, предусмотрено, что для майнинга каждого блока нужно примерно десять минут. Однако если вы оплачиваете через процессинговые компании, такие как BitPay, Coinbase или похожие вам не нужно не чего ждать. У них встроен механизм моментального подтверждения сделки после перевода биткоинов.

А что, если сумма на входе и выходе транзакции разная?

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

Рассмотрим такую ситуацию. У нас есть Маша, которая, как мы писали выше отправляла биткоины Васе. Теперь представьте, что у Маши день рождения и ее друзья решили отправить ей в качестве подарка цифровые монеты. Итак, Света отправила подруге два биткоина, Дима — три и Юля — еще один, причем каждый со своего биткоин адреса, ну и, естественно, в разное время дня. Так вот баланс биткоин-адреса Маши теперь увеличился на 6 биткоинов, однако это не означает, что транзакции от ее друзей были объединены в одну. Они так и будут привязаны к адресу Маши как отдельные, каждая от другого адреса, транзакции.

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

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

Алгоритм Биткоин сработает следующим образом. Васе придет от Маши транзакция на большую сумму, например, та, которую отсылала Маше на день рождения Света — 2 биткоина. Полбиткоина же вернутся Маше в качестве сдачи. В частности, входными данными для транзакции от Маши к Васе будут данные о транзакции от Светы к Маше. Биткоин-адрес Васи — выходные данные. Отправляя транзакцию в обработку Машин кошелек создаст новый биткоин адрес, принадлежащий Маше, который в свою очередь создаст свою транзакцию на 0,5 биткоина только от Васи к Маше. Таким образом, получится, что транзакция на 2 биткоина от Светы к Маше перейдет к Васе, а от Васи к Маше перейдет транзакция на 0,5 биткоинов, что означает, что Маша отправила Васе 1,5 биткоина.

Нужно ли платить комиссию за транзакции?

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

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

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

Могу ли я получить чек или документ, подтверждающий перевод биткоинов?

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

Что если я хочу отправить часть биткоина?

Вполне. Биткоины — делимые единицы, вплоть до стомиллионных. Например 1 сатоши это 0,00000001 биткоина.

Хотите больше новостей?

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

Что такое подтверждение транзакции и как это происходит?

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

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

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

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



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: