Кальтер / Блог

Что означают safe и finalized в статусе блока Ethereum

Различаем latest, safe и finalized в Ethereum PoS и проверяем, почему эти теги нельзя переводить в универсальное число подтверждений.

Материал подготовлен с помощью ИИ. Источники, учебные примеры и расчёты проверены редакцией перед публикацией.

Условная схема отношений head, safe и finalized в Ethereum; она не описывает текущую высоту или время ожидания.
Условная схема отношений head, safe и finalized в Ethereum; она не описывает текущую высоту или время ожидания.

Тег latest указывает на текущую вершину, которая может измениться при реорганизации. safe и finalized описывают другие состояния PoS-консенсуса Ethereum: safe указывает на safe head, а finalized — на финализированный блок, сообщённый узлом. Это не то же самое, что универсальное количество подтверждений для биржи или любого другого блокчейна.

Читай метки как уровни, а не таймер

Тег/состояние Упрощённый смысл для Ethereum PoS Что учитывать
latest Последний известный head Может продвинуться или измениться при реорганизации
safe Safe head, выбранный по состоянию консенсуса и сообщённый RPC Остаётся менее сильным статусом, чем finalized
finalized Последний финализированный блок, сообщённый RPC Сильная финальность в предположениях PoS; не обещание невозможности любого будущего события

Актуальная документация Ethereum JSON-RPC определяет safe как latest safe head block, а finalized как latest finalized block и допускает эти теги в запросах блока (описание JSON-RPC API). Это не фиксированное число секунд или блоков после включения транзакции. Провайдеры и отдельные клиенты могут иметь ограничения, поэтому проверь поддержку своего RPC.

Разбери учебную цепочку

Представим, что транзакция попала в блок B100, а сеть уже сообщает latest=B104, safe=B102, finalized=B96. Эти числа вымышлены. B100 находится в наблюдаемой цепочке, но не является latest-блоком B104. Само включение не означает финализацию. Если приложение требует более строгий статус, нужно проверить именно его согласно правилам этого приложения.

Попроси ИИ объяснить разницу между inclusion, latest, safe и finalized на этих значениях. Запрети приравнивать метку к фиксированному числу подтверждений и делать вывод о правилах зачисления биржи.

Учебный ответ: «Если хэш B100 действительно принадлежит канонической цепочке предков safe B102, B100 уже находится до safe head. Но он позже finalized B96 и пока не финализирован. Одни номера без проверки хэшей и родства блоков этого не доказывают. Эти значения не задают срок зачисления депозита биржей».

Сверь сеть и хэш блока через свой RPC или обозреватель. Не обещай неизменность по одному тегу и не переноси смысл меток Ethereum на другую сеть. Для общего статуса зависшей операции смотри разбор pending-перевода; здесь речь только о PoS-тегах Ethereum.