Для всех / Pickle простыми словами

Когда это подтверждено

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

Три момента

МоментЧто это
Предподтверждениеподписанный мини-блокцелевой интервал 10 мс. Секвенсер обязался соблюдать этот порядок и этот результат
ПодтверждениеEVM-блокцелевой интервал 250 мс. То, что видят кошельки и обозреватели
Финальностьрасчёт на Ethereumданные, необходимые для повторного вывода блока, зафиксированы на Ethereum, и эта фиксация сама финальна

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

Ваша транзакция исполняется в тот миг, когда достигает секвенсера, так что результат существует до любого блока. С целевым интервалом 10 миллисекунд секвенсер запечатывает мини-блок, содержащий всё исполненное за этот интервал, и подписывает его. Эта подпись и есть предподтверждение: секвенсер обязался соблюдать этот порядок и этот результат, а подписанный заголовок - доказательство против него, если бы более поздний блок ему противоречил.

С целевым интервалом 250 миллисекунд секвенсер запечатывает стандартный EVM-блок в формате Ethereum, оборачивающий мини-блоки этого интервала. Это подтверждение: блок, который показывает вам кошелёк или обозреватель, с номером блока и хешем.

Финальность - это расчёт на Ethereum. Блок финален, когда данные, необходимые для его повторного вывода, зафиксированы на Ethereum и эта фиксация сама финальна. Только с этого момента запись перестаёт зависеть от секвенсера вовсе.

Исполнение синхронно с приёмом, так что квитанция существует до того, как содержащий её блок запечатан. Мини-блок с целевым интервалом 10 мс несёт транзакции, квитанции и логи интервала, хеш диффа состояния, метку времени с точностью до микросекунды и подпись ключом секвенсера над заголовком; он доступен через собственные методы RPC и подписку WebSocket, чтобы чувствительное к задержке приложение могло действовать по нему. EVM-блок с целевым интервалом 250 мс оборачивает мини-блоки интервала, причём метка времени следующего блока фиксируется в момент предыдущего запечатывания, что и позволяет независимому повторному исполнению воспроизвести хеш блока. Финальность - это фиксация в инбоксе L1, называющая пакет деривации блока, сама финальная на Ethereum. Интервал мини-блока - параметр консенсуса, а не ручка настройки оператора, потому что реплика должна быть согласна в том, как нарезается поток.

Целевой интервал - не обещание

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

Что гарантирует каждый

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

Когда разница важна

Для большей части того, что делает человек, значимый момент - предподтверждение: приложение может показать результат, и результат не изменится, если только секвенсер не станет противоречить собственной подписи. Игра, торговый интерфейс или платёж на кассе могут действовать по нему.

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

Слова, которые вы увидите

  • В ожидании: кошелёк отправил транзакцию и ещё не видел блока. На Pickle это обычно короче, чем собственное обновление кошелька.
  • Предподтверждено: приложение, читающее мини-блоки, говорит, что секвенсер за неё подписался.
  • Подтверждено: она в EVM-блоке с номером.
  • Финально: данные её блока зафиксированы из Ethereum. Этот сайт не употребляет это слово ни для чего другого.