Анатомия одной транзакции: что можно узнать с помощью Etherscan

На примере одной транзакции посмотрим, что можно узнать с помощью блокчейн-эксплорера Etherscan.

Первая и главная вкладка — Overview, «Обзор». 

2022-11-30 16_17_43

Хеш транзакции

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

Зачем нужен:

Для анализа информации, доступной по уникальному идентификатору.

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

Если вам кто-то перевёл криптовалюту (или вы сами себе перевели), сравните хеши, чтобы понять, пришёл ли вам именно тот перевод, который был отправлен. 

01.png

Статус

Статус транзакции. Имеет смысл смотреть не раньше, чем через 30 секунд после отправки средств. Увидеть сможете один из четырех вариантов:

  • Success — транзакция успешно совершилась; 
  • Failed — транзакция не прошла, случилась ошибка, всё отменилось, вы как будто ничего не делали;
  • Pending — транзакция «в процессе». Она в «пуле памяти» (memory pool) ждёт, когда майнер создаст блок, в котором она отобразится. 
  • Dropped and Replaced: «отменена и заменена»: вы поменяли параметры транзакции, чтобы она прошла быстрее. О том, что именно вы могли поменять — ниже.  

Зачем нужен:

Чтобы порадоваться тому, что перемещение средств произошло успешно — либо чтобы повторить транзакцию, если она failed, поменять параметры, если надолго зависла в статусе pending. 

Блок

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

Зачем нужен:

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

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

Timestamp

Дата и время майнинга первого блока, в который попала информация о транзакции. Иными словами, момент совершения транзакции — фиксации её в блокчейне.

Зачем нужен:

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

Параметры транзакции (transaction action)

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

Зачем нужны:

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

В поле Transaction Action мы видим в нашем примере строку “Revoked USDT From Trade On Metamask: Swap Router”. Из неё мы узнаём, что транзакция не была переводом средств, оплатой и так далее. Пользователю понадобилось отозвать у Metamask (сервис мгновенного обмена одной криптовалюты на другую и популярный браузерный кошелёк) разрешение на обмен ETH на USDT.

С помощью Etherscan можно посмотреть, какие приложения имеют доступ к вашему кошельку: предложение сделать именно это мы и видим под только что разобранной строчкой (кликните на ссылку Token approvals).

Идущие ниже два поля From и To — это в общем случае адрес, с которого была произведена транзакция, и адрес получателя средств. Но в нашем случае в “To” адрес  смарт-контракта: протокола в блокчейне USTD, который содержит условия транзакции и обеспечивает её исполнение. 

02.png

Value

Объем транзакции, сколько средств было переведено. 
Если бы мы рассматривали пример, в котором кто-то перевёл кому-то два «эфира», в Value мы бы увидели 2 Ether (комиссия бы там не отображалась). А в нашем примере почему-то 0 Ether, как это может быть и зачем?

Ответ понятен из вышеразобранного “Action”: это не был перевод или оплата, покупка, пересылка криптомонет, и так далее. Это было исполнение смарт-контракта для отзыва доступа приложения к операциям с токеном в вашем кошельке. Поэтому средства никуда не ушли и не пришли, а с пользователя только взяли комиссию сети.

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

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

В следующем поле Transaction Fee мы видим сумму комиссии в ETH и USD, которую пришлось заплатить за отзыв доступа. В следующих за этим двух полях — стоимость газа и ETH  на момент транзакции.

Зачем нужен:

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

Лимит и использование газа, элементы комиссии

Следующие разделы с дополнительной информацией открываются по клику.

Лимит газа и использование для транзакции: первая цифра показывает, какое максимальное количество газа пользователь готов был заплатить за совершение транзакции, вторая — сколько из этого количества (в абсолютных значениях и в процентах) действительно потратилось. 
Варианты комиссий на момент генерации блока. Base fee — это «базовая» часть комиссии. Средства сжигаются при проведении транзакции. Для базовых операций типа переводов она составляет около 21 000 Gwei, но в нашем примере мы видим примерно 20,6 тысяч Gwei. Max — это максимальное количество Gwei, которые пользователь вообще готов платить за транзакцию, а Max Priority — комиссия за приоритетность транзакции, которая отходит создавшему блок майнеру («чаевые»). 
Burnt & Txn Savings Fees: первое это количество «сожжённых» в рамках комиссии за транзакцию средств, второе — то, что осталось пользователю в качестве разницы между комиссией, которую он был готов заплатить, и той, что он в результате заплатил.

Зачем нужен:

Оценить состояние сети и оптимальность параметров транзакции. Например, мы видим, что базовая комиссия ниже обычных 21000, это может значить, что сеть не слишком загружена, и на комиссиях можно сэкономить. Об этом же может и говорить использование для зарезервированного на комиссию газа на 60,7%.  

03.png

Другое

В нашем примере мы видим значения для:

  • Txn type (тип транзакции): 2 (EIP-1559). Отсюда мы узнаём, что произошла транзакция типа 2 в хардфорке London сети Ethereum, который поддерживает технологию EIP-1559. Это новая концепция расчёта комиссии за транзакции: базовая стоимость газа умножается на количество потраченного газа. Именно такие транзакции считаются «типом два», а транзакции по предыдущему алгоритму — «типом 0». 
  • Nonce — значение «счётчика транзакций» в аккаунте, который совершил рассматриваемую транзакцию. 
    Position — номер данной транзакции в блоке Ethereum (не путать с третьим пунктом, там был номер самого блока в блокчейне)

Зачем нужны:

Справочная информация для экспертов 

04.png

Input data

Дополнительные сведения о транзакции. В данном случае мы можем видеть spender address — адрес смарт-контракта, и value — количество пересланных средств в 256-битной переменной. Значение переменной — 0, как мы видели выше, никаких денег действительно не пересылалось.  

Зачем нужна:

Справочная информация для экспертов