Перейти к содержанию

Обозреватель блоков

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

Обновлено

Только в образовательных целях; не является инвестиционным советом или инвестиционной рекомендацией. Инвестиции могут привести к убыткам.

Краткий ответ

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

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

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

  1. Зафиксируйте домен обозревателя, идентификатор сети или сеть Bitcoin, время наблюдения и идентификатор транзакции, блока либо адреса. Не считайте знакомый тикер, имя или сокращенный адрес удостоверением личности: сохраните полный идентификатор и ожидаемый актив или контракт.
  2. Классифицируйте каждое показанное поле. Отличайте данные протокола, текущий ответ RPC конкретного узла, производные агрегаты или трассировки индексатора, декодированные метаданные и сторонние метки либо цены. Запишите, какой уровень подтверждает каждый вывод.
  3. Проверьте жизненный цикл и каноничность. Уточните, ожидает ли транзакция включения или уже включена, проверьте хеш и высоту блока, его предков, число подтверждений либо safe и finalized, а также замену и реорганизацию. Сам факт, что хеш находится поиском, не доказывает каноническое включение.
  4. Сверьте исполнение. В EVM-сетях изучите status, gasUsed, effectiveGasPrice, журналы и фактические изменения балансов, разрешений или хранилища. Квитанция с status = 1 доказывает лишь, что исполнение верхнего уровня не было отменено, но не безопасность экономического результата; транзакция с status = 0 также может попасть в блок и израсходовать газ.
  5. Считайте декодированные представления утверждениями, требующими проверки. Проверьте сигнатуру события, адрес контракта, темы, данные, число десятичных знаков токена и ABI. «Внутренняя транзакция» — это кадр трассировки вызовов, а не отдельно подписанная протокольная транзакция; полнота трассировок зависит от клиента и провайдера.
  6. Установите идентичность и изменяемость контракта. При существенном риске воспроизведите верификацию исходного кода, проверьте исполняемый байткод, реализацию прокси, beacon или администратора, полномочия обновления и схему хранилища. Значок верифицированного исходного кода связывает представленные входные данные компилятора с байткодом, но не заменяет аудит и не подтверждает эмитента.
  7. Сверьте результат с независимым обозревателем или прямым запросом к узлу, сохраните исходные ответы и временные метки, а после требуемой финальности повторите сверку. Расследуйте расхождения из-за устаревшего индекса, отсутствующего архива, реорганизации, различий RPC, спам-токенов, обновления прокси или изменения внесетевых меток.

Разобранные примеры

  • Расчет комиссии по квитанции. Включенная EVM-транзакция сообщает gasUsed = 52,000 и effectiveGasPrice = 18 gwei. Комиссия за исполнение равна 52,000 * 18 gwei = 936,000 gwei = 0.000936 ETH. При внешней котировке на указанный момент $2,500/ETH это $2.34: комиссия в ETH относится к данным сети, а долларовая сумма — внесетевая оценка.
  • Десятичные знаки токена. Журнал перевода содержит исходное целое 123,456,789 для контракта с проверенным decimals = 6. Отображаемая сумма равна 123,456,789 / 10^6 = 123.456789 tokens. При ошибочном допущении о 18 знаках получилось бы 0.000000000123456789, поэтому идентичность контракта и число знаков проверяют вместе.
  • Трассировка и транзакция. Одна подписанная транзакция отправляет 1.00 ETH контракту A. Трассировка показывает, что A пересылает 0.72 ETH контракту B и возвращает 0.25 ETH; у A остается 1.00 - 0.72 - 0.25 = 0.03 ETH до учета газа отправителя. Эти кадры помогают сверить поток стоимости, но не являются тремя независимо подписанными транзакциями.
  • Откат индексатора. Транзакция в блоке 20,000,000 видна при вершине 20,000,012, поэтому ее глубина с включением исходного блока равна 20,000,012 - 20,000,000 + 1 = 13. Если реорганизация удалит блок, каноническая квитанция исчезнет, а журналы должны быть отменены. Обозреватель, который все еще показывает 13 confirmations, устарел, а не отражает альтернативную истину консенсуса.

Риски

  • Проверка не той сети, тестовой сети, форка или поддельного обозревателя.
  • Копирование сокращенного, отравленного или визуально похожего адреса.
  • Принятие имени или тикера токена за идентичность контракта.
  • Принятие доступного поиску ожидающего хеша за каноническое включение.
  • Доверие устаревшему, синхронизирующемуся или изолированному RPC-серверу.
  • Сравнение высот без проверки хешей блоков и цепочки предков.
  • Пропуск замены, конфликта или реорганизации сети.
  • Принятие успешной квитанции за экономический или прикладной успех.
  • Игнорирование газа, уплаченного за включенную, но отмененную транзакцию.
  • Принятие журналов событий за достоверное конечное состояние.
  • Декодирование журнала с неверными ABI, сигнатурой или числом знаков.
  • Принятие кадра трассировки за отдельно подписанную транзакцию.
  • Предположение, что все провайдеры показывают полные одинаковые трассировки.
  • Пропуск данных из-за архива, обрезки, пагинации или лимита запросов.
  • Принятие верифицированного кода за аудит или подтверждение эмитента.
  • Проверка реализации при взаимодействии с другим прокси.
  • Пропуск изменений прокси, beacon, администратора или механизма обновления.
  • Доверие спам-токенам, меткам адресов или фиатным ценам как фактам консенсуса.
  • Использование балансов обозревателя без сверки UTXO или хранилища контракта.
  • Зависимость от одного обозревателя при сбое, цензуре или ошибке индексации.

Распространенные заблуждения

  • Обозреватель блоков и есть блокчейн либо он независимо проверяет каждое отображаемое утверждение.
  • status = 1, зеленый значок или множество подтверждений доказывают достижение задуманного пользователем экономического результата.
  • Журналы событий и «внутренние транзакции» равнозначны конечному состоянию и отдельно подписанным транзакциям.
  • Верифицированный исходный код доказывает, что контракт прошел аудит, подлинен, неизменяем и безопасен.
  • Балансы, метки, цены токенов и декодированные методы обозревателя — данные консенсуса, которые все провайдеры обязаны отображать одинаково.

Связанные темы

Источники

Навигация

Поиск по вики...