Порядок ускорения и отслеживания транзакции биткоин. Cколько идут биткоины на кошелек

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

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

Подтверждение биткоин-транзакции ― задача майнеров, которые создают новые блоки цепочки (размер 1 МБ) при помощи имеющихся вычислительных мощностей и получают за работу конкретное вознаграждение в 12,5 ВТС. Сумма награды ― «лакомый кусок» для пользователей сети, обеспечивающих перевод платежей и функционирование системы. Утверждение, что главное назначение майнеров состоит в добыче крипты, не совсем верно.

Как только данные об операциях «забивают» блок, звено закрывается и приобретает статус подтвержденного. Блоков нужно 6 единиц, чтобы перевод подтвердился, а денежные средства упали на счет получателя. Срок формирования blocks ― около 1 часа. На некоторых площадках отправитель вправе снизить количество проверок до 2, если речь идет о нескольких мелких переводах Биткоин. Подобная мера упростит и ускорит их подтверждение.

Почему количество подтверждений для Bitcoin транзакций равно 6? Теоретически мошенник должен обладать хотя бы 10 % сетевого хешрейта, чтобы незаконно внести изменения в блокчейн и подделать операцию. Однако потребуются миллионные долларовые инвестиции в майнинг-оборудование для получения мощнейшего хешрейта. Даже в этом случае преграда из 6 блоков ― практически невыполнимая задача. Безопасность системы повышается за счет нерентабельности указанных действий.

Награда в 12,5 ВТС доступна майнерам лишь после того, как подтвердятся 100 блоков. Пользователь может вычислить время проведения сделки (20−60 мин.), владея информацией о том, сколько нужно подтверждений для транзакций Bitcoin.

Скорость принятия зависит от других факторов, способных привести к зависанию сделки на период до 72 часов:

  1. Вес платежа. Чем больше сумма, чем выше ценится перевод. Особенно при наличии щедрой комиссии.
  2. Пропускная способность сети ограничена, что наглядно прослеживается значительной загрузке. Возникает «пробка», которая удлиняет период обработки.
  3. Комиссионный сбор. Достоверно известен следующий факт: выставляя более высокую комиссию, пользователь увеличивает шансы на быстрое проталкивание сделки.
  4. Изменчивость. Снижение/повышение курса косвенно давит на скорость подтверждения переводов Биткоин.

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

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

  1. Изменяется курсовая стоимость. Постоянные задержки платежей приводят к негативному отношению участников сети к Биткоину. Это может косвенным образом отразиться на колебании цены криптовалюты.
  2. Нарушаются сроки сделок. Торможение ведет к «расшатыванию» многих бизнес-процессов.
  3. Ухудшается репутация и снижается популярность Биткоина.
  4. Уменьшается объем транзакций. Пользователи начинают придерживаться иных платежных инструментов. Это наихудшим образом отражается на масштабах торгового оборота.

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

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

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

Пользователи активно используют следующие методы для предотвращения задержек при отправке:

  • Централизованные сервисы типа Coinbase. Предусмотрена обязательная регистрация.

При нажатии на Sign In в верхней части экрана справа открывается форма для внесения необходимых сведений (адрес электронного ящика и придуманный/сгенерированный пароль):

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

  • Мультиподпись. К примеру, кошелек GreenAddress предусматривает двухфакторную аутентификацию:

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

  • Увеличение комиссионного вознаграждения.
  • Открытые переводы. Если с транзакции снять анонимность и открыть сведения об отправителе и адресате, вероятность быстрого прогона сделки увеличится.

Если отправка денег уже состоялась, можно воспользоваться другими вариантами подтверждения транзакции Биткоин в блокчейн-бумажнике:

Способ Особенности
Специальные сервисы-ускорители Один из самых популярных ускорителей для подтверждения транзакций Биткоин ― ViaBTC. Алгоритм работы с сервисом:

1. Уточнить статус сделки через сайт-проводник (btc.com, chain.so, blockchain.com и т. д.).

2. Скопировать ID-код и перейти на страницу pool.viabtc.com/tools/txaccelerator/.

3. В форме указать ID-код и пройти капчу. Ускорить подтверждение можно платным либо безвозмездным способом. Плата значительно увеличивает шанс на скорое проталкивание платежа.

Оформление транзакции в определенный временной промежуток На некоторых сервисах лимит ограничений обновляется 1 раз в час. Многие участники сети пользуются своеобразной «фишкой»: запускают транзакцию Биткоин в последние минуты часа (к примеру, между 17:58 и 18:00). При покупке в пуле после майнингового контракта выделяется пять бесплатных ускорений.
Двойная трата Опцию поддерживают не все электронные бумажники. Доступ предоставлен в кошельках полного цикла Bitcoin Knots и . Руководство к действию:

1. Заранее закрыть бумажник.

2. Открыть командную строку и внести запись zapwalletettxes.

3. Опять оформить транзакцию с увеличенным комиссионным сбором.

4. В разделе «Вход» найти прежнюю сделку и добавить вход с нового платежа.

CPFP Способ эффективен, когда адресат условно получил деньги (платеж не подтвержден). Комиссия оплачивается за две транзакции. Действия в бумажнике Биткоин Кор:

1. Зайти в параметры настроек.

2. В разделе «Кошелек» включить опцию контроля входов.

3. Разрешить тратить сдачу.

4. В разделе «Отправка» проставить галочку рядом с необходимой транзакцией.

5. Указать сведения о получателе и дать согласие на обработку информации.

6. Прописать пересылаемую сумму и сделать запрос на вычет комиссии.

Replace-by-Fee Функция позволяет увеличивать комиссию действующей транзакции Биткоин. Поддерживается многими бумажниками: Electrum, GreenAddress, Bitcoin Core. При проталкивании платежа в кошельке отображаются сообщения с указанием возможности изменения комиссии после занесения операции в очередь.

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

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

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

Вконтакте

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

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

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

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

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

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

Как долго перечисляются средства в blockchain

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

Количество подтверждений для Bitcoin перевода - шесть, однако для покупок товаров на маленькие суммы иногда достаточно и двух. Зная, что в системе заложено стандартное время генерации блока 10 минут, мы можем вычислить, что время подтверждения транзакции составляет от 20 до 60 минут. Но нередко вы ждете доказательства правильности сделки гораздо дольше.

Скорость подтверждения транзакции Bitcoin может зависеть от ряда факторов:

  1. Степень загруженности сети. Блок имеет ограниченный размер, а количество желающих перевести Биткоины велико. Поэтому возникают очереди, большое количество операций ожидает включения в блок, и ждать приходится дольше (иногда несколько дней). Такая очередь называется мемпул, она часто формируется при резких изменениях котировок крипты.
  2. Низкая комиссия. При перечислении средств отправитель устанавливает размер комиссионных за работу майнеров. Если пользователей, желающих подтвердить транзакцию, много, то майнеры включают в блок в первую очередь те переводы, где выставлены высокие комиссии, а остальные оставляют "на потом".
  3. Размер перевода. Майнеры получают плату от занимаемого операцией места в блоке, а не за переводимую сумму. Если кошельком производится несколько мелких переводов, то они получат низкий приоритет в отличие от одной крупной сделки, которая займет меньше места.
  4. Хакерские спам-атаки. Злоумышленники для замедления работы сети генерируют огромное число мелких переводов. В таких случаях очередь резко возрастает.

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

Как проверить состояние операции и ускорить ее

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

  • chain.so;
  • blockchain.info.

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

Существует несколько способов ускорить прохождение платежа:

  1. Увеличить размер комиссионных, используя кошелек, в котором встроена опция автоматического определения оптимального размера комиссии в зависимости от степени текущей загрузки сети.
  2. Отправлять монеты с мультиподписью. Это функция дополнительной подписи в некоторых кошельках, подтверждающая "добросовестность" платежа, помогает его "протолкнуть" быстрее.
  3. Перечислять монеты одним крупным переводом, а не несколькими мелкими, для повышения статуса.
  4. Использовать специализированные платформы (например, Coinbase), которые организовывают мгновенную переброску денег между своими клиентами, не задействуя при этом блокчейн.

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

Многие наверняка уже столкнулись с проблемой зависших битков (при отправке и получении).
В большинстве случаев, виною этому спам сети и выставление малой платы майнерам (далее комиссия).
Перед отправкой битков, я бы посоветовал вам смотреть на состояние сети и выставлять комиссию, которую рекомендуют данные сервисы:
https://btc.com/stats/unconfirmed-tx

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

Берем свой th(id) транзакции:
Пример:

И вбиваем id cюда:


Примечание!

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

Вы можете получить, такое сообщение:

Submissions are beyond limit. Please try later.

Нажмите, чтобы раскрыть...

Вам нужно вбивать до тех пор, пока не получите статус: Успешно.

После этого, ваша транзу подхватят и вовлекут в блок для обработки.

Что делать, если ваша биткоин транзакция не подтверждается ("зависла")?

Сначала можно просто подождать. Если прошло уже несколько часов (или даже суток) и ждать надоело, то есть несколько вариантов:

  1. Cделать даблспенд . Особенности: может сделать только отправитель.
  2. Использовать CPFP . Особенности: может сделать получатель и обычно отправитель.
  3. Использовать replace-by-fee . Особенности: может только отправитель и если заранее позаботился; не все кошельки могут.
  4. Использовать "ускоритель" от viabtc . Особенности: может получатель и отправитель, но сервис часто перегружен и есть ограничения на транзакцию.
Как сделать даблспенд (двойную трату)?

Действуем по следующему алгоритму (алгоритм описан для кошелька Bitcoin Core; для других кошельков действия аналогичны, но команды будут другими):

SpoilerTarget">Спойлер: алгоритм

1) Убеждаемся, что она ждёт подтверждения. Для этого копируем id вашей транзакции, вставляем в строку поиска сервиса blockchain.info (а также bitaps.com, blocktrail.com/BTC или аналогичного). Далее ищем глазами строку "неподтвержденная транзакция" ("unconfirmed transaction"). Нашли? Значит, транзакция ждет подтверждения.
Примечание. На "Приблизительное время подтверждения" ("Estimated Confirmation Time") на странице с вашей транзакцией blockchain.info не смотрим -- там неизвестно что.

2) Теперь закрываем кошелек и запускаем его из командной строки с параметром -zapwallettxes и ждем пока он откроется. Когда кошелек запустится, все неподтвержденные транзакции из него исчезнут (но они ещё есть в сети!). Для bitcoin core 0.14 потребуется перед запуском ещё переименовать или перенести файл mempool.dat (мемпул в этой версии сохраняется в файл и старая транзакция остается там).
Примечание. Почему не с параметром -salvagewallet? -zapwallettxes не затронет имена ваших ключей, а -salvagewallet удалит их. Кроме того, bitcoin core иногда падает при запуске с -salvagewallet и тогда ваш wallet.dat будет поврежден. Правда, рядом с ним заранее будет создана копия.

3) Теперь можно создавать новую транзакцию, не забыв поставить адекватную комиссию. Но! Поскольку ваша старая транзакция ещё осталась в сети, она может когда-нибудь неожиданно подтвердиться. Если вас это не устраивает, то у новой транзакции хотя бы один из входов должен будет совпадать с одним из входов старой. Для этого смотрим на странице вашей транзакции на сайте blocktrail.com/BTC или аналоге графу "inputs", запонинаем точный размер входа в битках. После этого при создании транзакции в кошельке нажимаем на кнопку "inputs...", находим в списке такое же точно число в битках и выбираем его (если их несколько, то выбирайте с тем же адресом получения и временем). После этого выбираем ещё какие-нибудь входы, чтобы общая сумма была больше суммы транзакции с будущей комиссией; лучше выбирать с запасом. Далее заполняем все поля как обычно, (не забываем про комиссию!) и отправляем.


Как использовать CPFP? Как быть, если я не отправитель, а получатель транзакции?

Такой способ есть и он подходит для получателей; для отправителя он также подойдёт, если у вашей транзакции была "сдача" (обычно она есть). Этот способ немного дороже и сколько пулов его поддерживают - неизвестно (по состоянию на начало 2017 года как минимум два пула его поддерживают). Можно попробовать задействовать механизм CPFP (child pays for parent). Для этого вы должны потратить один из выходов проблемной транзакции с комиссией, которой хватит на обе транзакции сразу - новую и старую. То есть просто создаёте транзакцию с одним входом (это должен быть один из выходов проблемной, например - сдача) и пересылаете биткоины себе же. Комиссию ставите такую, чтобы её хватило на обе сразу: для этого суммируете их размеры, умножаете на число из пункта "Как выбрать адекватную комиссию?", делите на размер новой в килобайтах и вписываете в графу "custom transaction fee" при отправке транзакции. Подробнее для кошелька Bitcoin Core под спойлером:

SpoilerTarget">Спойлер

Пусть для примера вы получатель и должны получить 0.08500148 btc. Для того, чтобы воспользоваться CPFP, в Bitcoin Core нажимаем "Настройки" -> "Параметры" -> "Бумажник" ("Settings" -> "Options" -> "Wallet") ; ставим галочки у "включить управление входами" ("Enable coin control features") и "тратить неподтвержденную сдачу" ("Spend unconfirmed change"), если они не стоят (потом можно будет их убрать); теперь закрываем окно настроек и нажимаем "Отправить" ("Send"), там нажимаем кнопку "Входы..." ("Inputs...") и ставим галочку у суммы 0.08500148; потом "Ок", получателем ставите свой адрес; количество ставите 0.08500148 и галочку "вычесть комиссию из суммы" ("subtract fee from amount"); комиссию ставите "выборочно" ("custom"), "за килобайт" ("per kilobyte") и пишете с рассчетом на 2 транзакции по формуле ((размер старой транзакции)/(размер новой транзакции) + 1)*(адекватная комиссия за килобайт и лучше побольше). Отправляете.

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


Как отменить транзакцию? Может ли транзакция отмениться сама?

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

Сама неподтвержденная транзакция отмениться не может - может лишь поменяться отображение в вашем кошельке. Далее смотрите ответ на вопрос "Моя транзакция висела неподтвержденной несколько дней, а затем пропала и деньги вернулись обратно. Теперь все хорошо и я могу просто отправить деньги ещё раз?".

Моя транзакция висела неподтвержденной несколько дней, а затем пропала и деньги вернулись обратно. Теперь все хорошо и я могу просто отправить деньги ещё раз?

Нет! Ваша старая транзакция ещё есть в сети и может неожиданно подтврдиться. Чтобы этого избежать, смотрите пункт (2) ответа на вопрос "Что делать, если отправленная вами биткоин транзакция не подтверждается ("зависла")?" (под спойлером). Если вы вообще передумали делать тот перевод, то можно будет сделать перевод себе самому.

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

  1. Выставлять адекватную комиссию.
  2. Включить в кошельке механизм replace-by-fee и помечать все транзакции как replaceable, если ваш кошелёк его поддерживает (вроде бы electrum поддерживает). Это позволит при возникновении проблемы легко повысить комиссию.

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

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

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

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

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

Интересно, но 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 менее волатилен, по сравнению с локальной валютой, и соответственно его выбирают для сбережения.

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