Taiko — это блокчейн уровня 2, базовый накопительный пакет, построенный на основе zkEVM Type 1, что обеспечивает полную совместимость с Ethereum. Это масштабируемая и эффективная платформа как для разработчиков, так и для пользователей децентрализованных приложений (dApps).
Обзор Taiko
Taiko — это безопасный, децентрализованный и не требующий разрешений накопительный пакет с нулевым разглашением (zk-Rollup), ориентированный на масштабирование базовой сети Ethereum.
Рассмотрим основные преимущества данного решения:
- Эквивалент Ethereum. Использование zkEVM Type 1 (полный эквивалент Ethereum) обеспечивает максимально возможную совместимость на уровне кодов операций, что значительно упрощает процесс разработки децентрализованных приложений в сети Taiko.
- Полностью децентрализованный. Любой желающий пользователь, может запустить узел любого типа в сети Taiko, как предлагающий, так и проверяющий.
- Начальные слои Layer 3. Taiko позволяет разворачивать L3 поверх L2 в виде точной копии кодовой базы, что открывает возможности для чрезвычайно высокой масштабируемости.
Как работает протокол Taiko?
Протокол Taiko определяет и обеспечивает соблюдение правил объединения, а также определяет потенциальных участников. Смарт-контракты, развернутые на Ethereum L1, действуют как механизм доступности данных и средство проверки доказательств с нулевым разглашением (zk-Proof). Смарт-контракт, развернутый на Taiko L2, выполняет определенные важные функции протокола, о которых будет написано ниже.
Узлы в Taiko выполняют три основных роли:
- Предлагающие (Proposers). Занимаются созданием блоков из транзакций пользователей L2 (Taiko) и предлагают их в L1 (Ethereum).
- Проверяющие (Provers). Генерируют доказательства zk-SNARK, подтверждающие достоверность транзакций L2 и блоков предложенных Предлагающими узлами.
- Бегуны (Node Runners). Выполняют транзакции на основе ончейн-данных, чтобы оставаться синхронизированными состоянием блокчейна.
* Запускать узлы может любой желающий участник сети.
Работа протокола Taiko состоит из трех этапов: предложение, проверка и доказательство.
Этап 1: предложение блока
Предлагающий узел (Prover) отслеживает мемпул сети Taiko на предмет подписанных и отправленных транзакций. Любой может предлагать блоки в Taiko.
Как только предлагающий собрал достаточно транзакций, предположительно включая и упорядочив их с намерением получить прибыль, он создает блок. Прибыль означает, что для предлагающего сумма комиссий за транзакцию из блока превышает комиссию за транзакцию L1 + комиссию за проверку + базовую комиссию EIP-1559.
Предлагающий узел определяет последовательность транзакций в блоке. Когда блок создан, предлагающий отправляет блок OfferBlock (содержающий список транзакций + метаданные) непосредственно в Ethereum через контракт TaikoL1. Другие предлагающие узлы также могут отслеживать мемпул транзакций и идентифицировать предлагаемые блоки Taiko в ожидающих транзакциях OfferBlock. Между узлами Layer 2 нет консенсуса, но существует некая связь (синхронизация, совместное использование транзакций и т. д.). Порядок блоков Taiko в Ethereum определяется узлом Ethereum.
Блоки предлагаются параллельно и становятся в список ожидания в мемпуле Ethereum, но Taiko поддерживает только ограниченное количество слотов для непроверенных блоков на уровне выполнения Ethereum и повторно использует их, чтобы минимизировать комиссию за предложение блока. Исполнение блока является детерминированным (не требующим внешнего вмешательства). Когда блок предлагается, данные блока публикуются в Ethereum, а сам блок добавляется к предлагаемому списку блоков, хранящемуся в контракте TaikoL1. После этого все свойства блока становятся неизменяемыми.
Абсолютно все узлы сети Taiko подключаются к узлам Ethereum и подписываются на события блоков Ethereum. Когда предложение блока Taiko подтверждается, блок добавляется в очередь в контракте TaikoL1. Затем узлы Taiko могут загружать эти блоки и выполнять действительные транзакции в каждом блоке. Узлы отслеживают, какие блоки L2 проверены.
Этап 2: проверка блоков
На этом этапе в работу включаются проверяющие узлы (Provers), задача которых убедиться, что блок достоверен.
Блок считается действительным, если он соответствует следующим критерям:
- Имеет размер в байтах не более определенного значения.
- Может быть декодирован с помощью RLP.
- Содержит не больше транзакций (действительных и недействительных), чем определенное значение (константа).
- Имеет общий лимит газа для всех действительных транзакций, не превышающий определенного значения + лимит газа якорной транзакции.
Блок считается не действительным, если:
- Имеет недействительную подпись транзакции.
- Имеет недействительный одноразовый номер транзакции.
- На счету недостаточно ETH для оплаты транзакции.
- В учетной записи отправителя развернут код контракта (EIP-3607).
- Имеет лимит газа, меньший, чем собственный газ, используемый транзакцией.
Этап 3: доказательство
Блок может быть доказан, как только:
- Все вложенные действительные транзакции в этом блоке выполнены.
- Состояние родительского блока известно.
Блок может быть подтвержден, когда:
- Его родительский блок проверен.
- Существует действительное доказательство с нулевым разглашением (zkProof), подтверждающее переход из родительского состояния в текущее состояние блока.
Начальные слои (Incetion Layers)
Начальные слои подразумевают использование Taiko в качестве слоя Layer 2 и развертывание поверх точной копии кодовой базы в качестве слоя Layer 3. Учитывая, что Taiko полностью эквивалентен Ethereum, взаимодействия между L3 и L2 тесно связаны с взаимодействия между L2 и L1, обеспечивая максимальную возможность повторного использования и простоту решения.
Такое решение применяется потому что один накопительный пакет в состоянии масштабироваться только до тех пор, пока увеличение состояния не станет проблемой. Начальные слои (повторное использование одной и той же кодовой базы zkEVM 1) открывают чрезвычайно расширяемую масштабируемость для Ethereum.
Кроме того, полная эквивалентность Ethereum на слоях L2, L3 и за их пределами позволяет нативную передачу произвольных сообщений, благодаря возможности одной виртуальной машины, читать доказательство Меркла другой. Благодаря такому подходу, различные слоя (соседние или верхние) могут легко взаимодействовать друг с другом, что позволяет избежать фрагментации сети.
Токен TKO
Taiko (TKO) — это служебный токен и токен управления сети Taiko, решении второго уровня (Layer 2) для масштабирования Ethereum на основе zkEVM Type 1.
- Общее предложение: 1 000 000 000 TAIKO