Для всех / Pickle простыми словами
Когда это подтверждено
Обычно кошелёк показывает статус в ожидании, а затем статус готово. Здесь между этими двумя словами три отдельных момента, и они гарантируют разные вещи.
Три момента
| Момент | Что это |
|---|---|
| Предподтверждение | подписанный мини-блокцелевой интервал 10 мс. Секвенсер обязался соблюдать этот порядок и этот результат |
| Подтверждение | EVM-блокцелевой интервал 250 мс. То, что видят кошельки и обозреватели |
| Финальность | расчёт на Ethereumданные, необходимые для повторного вывода блока, зафиксированы на Ethereum, и эта фиксация сама финальна |
Представьте, что вы сдаёте письмо на стойке очень быстрому служащему. Сначала служащий читает его, вычисляет ответ и выдаёт вам подписанную квитанцию: это предподтверждение, и оно происходит почти сразу, как вы передали письмо. Чуть позже служащий подшивает его в дневную книгу, которую могут посмотреть все остальные: это подтверждение. Наконец, копия книги отправляется в хранилище за пределами конторы, которое никто в конторе не может редактировать: это финальность. Каждый шаг медленнее предыдущего, и каждый труднее отменить.
Ваша транзакция исполняется в тот миг, когда достигает секвенсера, так что результат существует до любого блока. С целевым интервалом 10 миллисекунд секвенсер запечатывает мини-блок, содержащий всё исполненное за этот интервал, и подписывает его. Эта подпись и есть предподтверждение: секвенсер обязался соблюдать этот порядок и этот результат, а подписанный заголовок - доказательство против него, если бы более поздний блок ему противоречил.
С целевым интервалом 250 миллисекунд секвенсер запечатывает стандартный EVM-блок в формате Ethereum, оборачивающий мини-блоки этого интервала. Это подтверждение: блок, который показывает вам кошелёк или обозреватель, с номером блока и хешем.
Финальность - это расчёт на Ethereum. Блок финален, когда данные, необходимые для его повторного вывода, зафиксированы на Ethereum и эта фиксация сама финальна. Только с этого момента запись перестаёт зависеть от секвенсера вовсе.
Исполнение синхронно с приёмом, так что квитанция существует до того, как содержащий её блок запечатан. Мини-блок с целевым интервалом 10 мс несёт транзакции, квитанции и логи интервала, хеш диффа состояния, метку времени с точностью до микросекунды и подпись ключом секвенсера над заголовком; он доступен через собственные методы RPC и подписку WebSocket, чтобы чувствительное к задержке приложение могло действовать по нему. EVM-блок с целевым интервалом 250 мс оборачивает мини-блоки интервала, причём метка времени следующего блока фиксируется в момент предыдущего запечатывания, что и позволяет независимому повторному исполнению воспроизвести хеш блока. Финальность - это фиксация в инбоксе L1, называющая пакет деривации блока, сама финальная на Ethereum. Интервал мини-блока - параметр консенсуса, а не ручка настройки оператора, потому что реплика должна быть согласна в том, как нарезается поток.
Оба интервала - целевые интервалы, а не гарантии задержки, и ни один не является заявлением о пропускной способности. Они описывают ритм, к которому стремится секвенсер, а не срок, который он соблюдает на каждом такте.
Что гарантирует каждый
- Предподтверждение доказывает, что секвенсер сказал: это произошло, в этом порядке, с этим результатом. Оно опирается на честность секвенсера и является доказательством: подписанный заголовок, которому противоречил бы более поздний блок, показал бы, что секвенсер нарушил слово.
- Подтверждение помещает транзакцию в каноническую последовательность блоков, которую понимает каждый инструмент. Оно всё ещё опирается на секвенсер, единственную сторону, запечатывающую блоки.
- Финальность означает, что содержимое блока зафиксировано из Ethereum. С этого момента любой может заново вывести блок из публичных данных, и секвенсер не может переписать его так, чтобы расхождение не было обнаружимо каждой репликой.
Когда разница важна
Для большей части того, что делает человек, значимый момент - предподтверждение: приложение может показать результат, и результат не изменится, если только секвенсер не станет противоречить собственной подписи. Игра, торговый интерфейс или платёж на кассе могут действовать по нему.
Подтверждение - это то, о чём сообщают обычные инструменты, так что это момент, который кошелёк показывает как готово. Финальность - момент для всего, что не должно зависеть от секвенсера вовсе: вывод в Ethereum через мост перепроверяется по финализированной канонической квитанции до выпуска средств именно по этой причине.
Слова, которые вы увидите
- В ожидании: кошелёк отправил транзакцию и ещё не видел блока. На Pickle это обычно короче, чем собственное обновление кошелька.
- Предподтверждено: приложение, читающее мини-блоки, говорит, что секвенсер за неё подписался.
- Подтверждено: она в EVM-блоке с номером.
- Финально: данные её блока зафиксированы из Ethereum. Этот сайт не употребляет это слово ни для чего другого.