Проверка транзакций в блокчейнах биткоина и Эфириума

5 лет назад
Проверка транзакций в блокчейне
Проверка транзакций в блокчейне

Любые действия в криптовалютных сетях, будь то перевод средств или создание смарт-контрактов, выполняются посредством транзакций, детальная информация о которых хранится в блоках. Для их просмотра используются специализированные онлайн-сервисы, которые называют эксплорерами, обозревателями, проводниками или исследователями (от англ. explore — исследовать).

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

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

Нюансы проверки транзакций в блокчейне биткоина

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

Поскольку сеть биткоина является публичной, кто угодно может просматривать хранящиеся в ней детали сделок. Для проверки транзакции в блокчейне Bitcoin может использоваться практически любой универсальный проводник (к настоящему моменту не осталось ни одного обозревателя блоков, посвященного исключительно биткоину). Один из старейших сервисов такого типа — Blockchain.com (изначально Blockchain.info). Среди более «молодых» эксплореров наиболее популярными являются BlockCypher, BTC.com, Blockchair и SoChain. На примере последнего мы и рассмотрим процесс проверки транзакции в блокчейне биткоина.

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

Для просмотра деталей отдельной сделки нужно ввести ее хеш (tx id) в соответствующее поле и нажать кнопку поиска. 

Поиск транзакции в блокчейне биткоина через эксплорер SoChain  // Источник: Chain.so
Поиск транзакции в блокчейне биткоина через эксплорер SoChain // Источник: Chain.so

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

Поиск транзакции в BTC-аккаунте через эксплорер SoChain  // Источник: Chain.so
Поиск транзакции в BTC-аккаунте через эксплорер SoChain // Источник: Chain.so

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

  • Хеш;
  • Номер блока включения;
  • Время и дата обработки транзакции;
  • Статус (подтвержденная/неподтвержденная);
  • Количество подтверждений, входов и выходов;
  • Пересылаемая сумма в BTC;
  • Комиссия за проведение сделки;
  • Вес транзакции в байтах;
  • Адреса отправителя и получателя;
  • Скрипты с подписью инициатора операции и прочими данными.

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

Просмотр деталей неподтвержденной транзакции через эксплорер SoChain  // Источник: Chain.so
Просмотр деталей неподтвержденной транзакции через эксплорер SoChain // Источник: Chain.so

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

Как правило, чтобы монеты BTC были зачислены на баланс получателя и транзакция получила статус подтвержденной, нужны 6 подтверждений (включение в блок + принятие сетью следующих за ним в цепочке 5 блоков). Хотя при внесении депозитов на некоторые биржи и оплате товаров в интернет-магазинах, принимающих криптовалюту, зачисление средств нередко происходит после 2–4 подтверждений (зависит от правил конкретной площадки и ее желания избавить клиентов от длительного ожидания).

Поскольку в среднем генерация новых блоков в сети Bitcoin происходит примерно каждые 10 минут, это значение и является тем временем, которое необходимо на одно подтверждение. Таким образом на успешное завершение одной сделки нужно от 20 до 60 минут (10 мин. х 2–6 подтверждений). 

Но это справедливо лишь для тех транзакций в блокчейне биткоина, за которые установлена комиссия, обеспечивающая быстрое включение в ближайший блок при текущей загруженности сети. Определить подходящее для этого значение комиссионных сборов можно с помощью специализированных онлайн-калькуляторов, например, на сайте Buy Bitcoin Worldwide. В разные периоды оптимальная комиссия может колебаться от нескольких долларов до $30–40, как это было в декабре 2017 года, когда биткоин стоил почти $20000.

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

  1. Оставить все, как есть, и ждать завершения операции столько, сколько потребуется.
  2. Ускорить транзакцию, протолкнув ее в очереди с помощью одного из специализирующихся на этом сервисов от пулов для майнинга, например, ViaBTC и BTC.com. В этом случае перевод средств состоится в срок от 10 минут до нескольких часов путем включения данных о нем в один из добытых выбранным пулом блоков. Минус в том, что услуга платная и в среднем обходится в $20–30.
  3. Заменить зависшую транзакцию аналогичной, с тем же получателем и суммой, но более высокой комиссией, воспользовавшись опцией «Replace-by-fee». В этом случае подтвердится новый более приоритетный перевод, а старый будет отменен системой с пометкой «double spend» (двойное расходование). Минус в том, что такая возможность присутствует далеко не во всех кошельках.
Замена зависшей BTC-транзакции через кошелек Electrum
Замена зависшей BTC-транзакции через кошелек Electrum

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

Этапы проверки транзакций в блокчейне Эфириума

Транзакции в сети Ethereum
Транзакции в сети Ethereum

Для изучения блокчейна Ethereum могут быть использованы те же универсальные эксплореры, что и в случае с биткоином. Но самым популярным способом проверки транзакций в блокчейне Эфириума является специализированный сервис Etherscan. С его помощью можно получить детальную информацию не только по операциям перевода средств и созданию/активации смарт-контрактов в сети Ethereum, но и по абсолютно всем транзакциям с ERC20-токенами. Также для этой цели подойдут менее популярные, но вполне неплохо справляющиеся с выгрузкой информации из сети эфира обозреватели блоков Etherchain и Ethplorer.

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

Поиск ETH-транзакции в эксплорере Etherscan  // Источник: Etherscan.io
Поиск ETH-транзакции в эксплорере Etherscan // Источник: Etherscan.io

Если сделка относительно свежая, можно попытаться найти ее, воспользовавшись кнопкой «View all transactions» внизу той же странички. Также можно зайти в меню «Blockchain» и открыть списки подтвержденных и неподтвержденных транзакций, выбрав пункты «View Txns» и «View Pending Txns».

Открытие списков подтвержденных и неподтвержденных транзакций в эксплорере Etherscan  // Источник: Etherscan.io
Открытие списков подтвержденных и неподтвержденных транзакций в эксплорере Etherscan // Источник: Etherscan.io

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

  • Хеш;
  • Статус (Pending — в ожидании, Success — подтвержденная);
  • Блок включения и количество подтверждений;
  • Дата и время обработки;
  • Адреса отправителя и получателя;
  • Пересылаемая сумма в ETH;
  • Комиссия за проведение сделки;
  • Лимит, количество и цена использованного газа;
  • Nonce/position (позиции в истории операций аккаунта и в блоке включения);
  • Опциональное поле для ввода сопроводительных данных.
Просмотр деталей ETH-транзакции в эксплорере Etherscan  // Источник: Etherscan.io
Просмотр деталей ETH-транзакции в эксплорере Etherscan // Источник: Etherscan.io

Если проверяемая транзакция имеет статус неподтвержденной, в данных по ней будет присутствовать графа «Estimated Confirmation Duration» — предполагаемая продолжительность подтверждения, рассчитанная на основе указанной пользователем комиссии (цены и лимита газа) и текущей загруженности блокчейна.

Просмотр деталей неподтвержденной ETH-транзакции в эксплорере Etherscan  // Источник: Etherscan.io
Просмотр деталей неподтвержденной ETH-транзакции в эксплорере Etherscan // Источник: Etherscan.io

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

Если же проверка транзакции в блокчейне Эфириума показывает длительное пребывание в статусе Pending, а предполагаемая продолжительность ее подтверждения исчисляется в десятках часов или даже дней, причина чаще всего кроется в слишком низком значении цены газа. Реже — в чрезмерной загруженности сети, как это было в конце 2017–начале 2018 на фоне стремительного роста стоимости и популярности Ethereum как платежного средства, а также платформы для проведения ICO и создания множества блокчейн-проектов.

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

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

Замена зависшей ETH-транзакции через кошелек MyEtherWallet  // Источник: Myetherwallet.com
Замена зависшей ETH-транзакции через кошелек MyEtherWallet // Источник: Myetherwallet.com

Аналогичным образом можно произвести отмену зависшей транзакции — для этого в поле «Сумма» нужно ввести 0, а все остальные шаги выполнить согласно вышеописанной инструкции. В результате в блок будет внесена транзакция по пересылке 0 ETH, а отправленные ранее монеты вернутся на баланс кошелька.

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

Читайте также:

Генератор биткоинов: как генерировать BTC онлайн

Сложность сети биткоин: что показывает и как рассчитывается

Биткоин-краны: простой способ получить биткоины бесплатно