# Вы Оптимист? Тогда этот блокчейн для вас 😊

By [klif](https://paragraph.com/@klifentro) · 2023-01-30

---

> **Всех приветствую!** 👋
> 
> В этой статье, вы познакомитесь с блокчейном 2-го уровня (по другому L2) для [Эфириума](https://ethereum.org), таким, как [Oптимизм](https://www.optimism.io). Эта статья предназначена для ознакомления с этим проектом. И знайте, что у меня не так много опыта в написании статей, так что не кидайтесь чем-то **НЕПРИСТОЙНЫМ!** 😉

На каких же Стульях сидит Оптимизм?🤔
-------------------------------------

**Проект описывает всего 4, из которых:**

1.  **Простота** - Ясен пень! Какой бы продукт ни был, если он сложен в использовании, то пользователи не будут его использовать. Так еще унизят и под-убавят всю вашу уверенность😢
    
2.  **Прагматизм** - В некоторой степени, **Прагматизм** помогает сверить все плюсы и минусы, и в итоге пойти по самому эффективному методу. Но не забывайте, что **иррациональное решение**🤪, тоже помогает вам в жизни
    
3.  **Устойчивость** - В каждой системе нужна устойчивость. Потому что, люди любят, когда они в **безопасности**😎
    
4.  **Оптимизм** - Как же без этого! Когда вы в обществе угрюмых людей вам вероятно, не хочется с ними общаться. А оптимисты, по своей природе **привлекают людей**🤗
    

**Теперь поподробнее**🧐

### Простота

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

Не забывайте, что **простота=безопасность.** Поскольку каждая строка кода, которую пишет разработчик может иметь в себе уязвимость. Чтобы это минимизировать, и нужна **Простота в Использовании**

И думаю, что уже все поняли. Раз, из-за простоты сокращается время разработки, то и у долгосрочных видений есть больше возможностей

### Прагматизм

Прагматизм помогает **Оптимизму** тем, что он имеет реальные цели для совершенствования их пользовательской базы и разработчиков

> Как пишет команда Оптимизма: “**Иногда, лучшее решение - не самое красивое”**

Благодаря такому подходу, команда понимает, что у них ограниченная область знаний, а развитие происходит итеративно/работа и ее анализ одновременно (можете использовать слово, когда что-то хомячите на работе. Все равно одно и то же 😋), и от отзывов пользователей/разработчиков. **Пример, такого развития -** [**создание EVM-эквивалентности**](https://mirror.xyz/0xf5Fa0f11364Cc7695c2E8c3F7C9a7dE3EA2483f1/1sy7D63XxomKPPLqLaFtzjxDq6YPJmmNnZOLClmqYMo) (перевод)

### Устойчивость

Их протокол основан на идее долгосрочной перспективы, нежели просто сокращение масштабирования. Все-таки без устойчивости протокола, масштабирование ничего не значит

Поэтому, у них простой код в освоении. Благодаря этому, разработчики сами будут подтягиваться к протоколу, поддерживать и развивать его

### Оптимизм

Хоть **Оптимизм** и L2 решение, команда верит в светлое будущее Эфириума, и помогаем ему всеми доступными способами. Так сказать, если Эфириум добьется больших успехов, то он поделиться этим успехом и с L2 решением

Что за чушь, этот ваш Rollup Protocol?🤨
----------------------------------------

**Оптимизм** - основан на **Optimistic Rollup,** которая использует не свою цепочку блоков, а родительскую (в случае с Оптимизмом - Эфириум)

**Посмотрите картинку от Оптимизма для разгрузки информации:**

![](https://storage.googleapis.com/papyrus_images/3ec94260fc4297b7cefe0a0160af1d73aa242c2fd6a10ec33dd755d974005b01.png)

**Теперь, мы рассмотрим функции, которые дает нам Оптимизм со своими свертками**

### Хранилище Блоков

*   **До Бедрока** (на момент написания статьи, это текущая версия)
    
    Все блоки от Оптимизма хранятся в смарт-контракте Эфириума - `CanonicalTransactionChain`, вкратце `CTC`(теперь мы знаем, что **Канал** - это смарт-контракт. **Кто поймет, тот поймет**). Этот смарт-контракт дает гарантию, что блоки в Оптимизме не изменятся под напором транзакций в Эфириуме. Также, есть одно **НО.** Если цепочка блоков в Эфириуме подвергнется **реорганизации/прекратят свою работоспособность** (можете использовать словечко для прокрастинации. Никто не до-капается, поскольку не поймет😏), то Оптимизм тоже это затронет. Для случайных форс-мажоров, Оптимизм может выдержать реорганизацию 50-ти блоков от Эфириума. Поскольку такие форс-мажоры маловероятны, то безопасность в Оптимизме должна быть на высоте, как и в Эфириуме
    
*   **Бедрок** (выйдет в первом квартале 2023 года)
    
    В этой версии, блоки из Оптимизма будут сохранятся в Эфириуме в виде неконтрактного адреса ([0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0001](https://etherscan.io/address/0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0001)). Благодаря этому, с блоками невозможно взаимодействовать, как только транзакции будут включены в блок. Такой способ, также помогает Эфириуму сэкономить на газ, поскольку блоки будут записываться в сжатом формате
    

### Производство Блоков

Производство блоков в Оптимизме управляется “**масонами**”/**секвенсором** (как же, без шутеек про масонов😄), который предоставляет услуги в виде:

*   Подтверждений транзакций и обновлений состояния
    
*   Построении и выполнении L2 блоков
    
*   Отправки пользовательских транзакций в L1
    

> **Оптимизм планирует децентрализовать роль Секвенсора, так что не стоит бояться, что всегда так будет**

**Что интересного в двух версиях?**

*   **До Бедрока**
    
    У секвенсора нет **мемпула** (место, где хранятся транзакции, ожидающие проверки). Сперва, пользователь отправляет транзакцию секвенсору. Секвенсор проверяет соответствует ли она всем критериям, а после **принимает/отклоняет**. Если транзакция соответствует критериям, то секвенсор отправляет ее в ожидающий блок с другими транзакциями. После определенного порога, блоки отправляются партиями в Эфириум, в сжатой форме
    
    > **Как альтернатива, вы можете самостоятельно отправить блок в** `CanonicalTransactionChain` **через транзакцию в сам** **Эфириум, но это будет стоить дороже**
    
    Благодаря этому, состояние L2 может быстро обновляться, и показывать пользователям обновление цен в DEX практически в реальном времени
    
*   **Бедрок**
    
    В этой версии, у секвенсора есть мемпул, как у Эфириума, но он частный (для “**массонов”**). Это сделано, чтобы **Валидаторы** не творили анархию, ради дополнительной прибыли. Блоки будут создаваться каждые 2 секунды, без разницы, пусты они или полны до ужаса
    
    **Есть 2 способа, которыми попадают транзакции в секвенсор:**
    
    1.  Транзакции отправляются в L1 (процесс называется **депозит**, наоборот **вывод**), они включаются в L2 **блок=эпоха**. В первый блок включены данные из L1, поэтому секвенсор не может как-то подделать состояние сети. Это позволяет Оптимизму иметь **устойчивость к цензуре**, как у Эфириума
        
    2.  Отправка транзакций происходит напрямую в секвенсор. Выходит намного дешевле, поскольку транзакции не отправляются в L1. **Но**, поскольку только секвенсор знает об этих транзакциях, транзакции не **устойчивы к цензуре**
        

### Блокировка Исполнения

В разделе **Хранилище Блоков** вы узнали, где хранятся блоки из Оптимизма. Теперь пора узнать процесс всего этого

*   **До Бедрока**
    
    **У узлов Оптимизма есть 2 основных компонента:**
    
    1.  **Индексатор Данных** от Эфириума/**Уровень Передачи Данных** (кратко УПД/DTL) - по названию уже можно представить некоторые действие, которые он делает. Например, занимается поиском блоков в **Оптимизме** через `CTC`, проверяет и производит блоки в Эфириуме, в своем формате
        
    2.  **Клиентское Программное Обеспечение** от Оптимизма - это почти полностью ванильная/оригинальная (учим язык гиков🤓) версия **Geth** (клиент для связи с узлами). Он занимается отслеживанием DTL для новых проиндексированных блоков, загружает и исполняет транзакции. То есть, Оптимизм имеет туже архитектуру, что и Эфириум. Этому даже дали название, можете познакомиться с [**EVM-Эквивалентностью**](https://mirror.xyz/0xf5Fa0f11364Cc7695c2E8c3F7C9a7dE3EA2483f1/1sy7D63XxomKPPLqLaFtzjxDq6YPJmmNnZOLClmqYMo) (перевод)
        
*   **Бедрок**
    
    В этой версии, Оптимизм добавит **Исполнительный Механизм**, в котором будет получать блоки через `op-geth` компонент. **Реализация будет в 2 вариантах:**
    
    1.  В этом варианте, будут использовать одноранговую сеть с другими вариантами исполнения. Можно сказать, это будет работать как синхронизация состояния с L1
        
    2.  Второй же, **Узел Свертки** (или на языке гиков, `op-node`) будет извлекать L2 блоки из L1. Этот процесс медленнее, но устойчивость к цензуре имеется
        

Не понимаю! Как происходит перевод между Оптимизмом и Эфириумом?😩
------------------------------------------------------------------

Оптимизм специально разработан, чтобы пользователи могли отправлять сообщения между смарт-контрактами Оптимизма и Эфириума. Благодаря этому, есть возможность передавать токены в формате ERC-20 между этими сетями

Такой подход вы уже можете протестировать в [мосте](https://app.optimism.io/bridge/deposit) от Оптимизма (не призыв к действию). Там вы сможете перевести свои токены из Эфириума в Оптимизм, где транзакции дешевле. Если же вы дядя с большими карманами, то думаю вам без разница, где хранить свои активы. Но думаю, протестировать всегда имеет место быть. Также, как только вы захотите перевести свои токены из Оптимизма в Эфириум, вы сможете это сделать без проблем

### Процесс перевода из Эфириума в Оптимизм

*   **До Бедрока**
    
    Как вы уже знаете, по теме **Производство Блоков**. Пользователю достаточно инициировать/создать контракт `CanonicalTransactionChain`в Эфириуме. Но это не простой способ. Так что, если вы не гик в этой всей суете, то не лезьте на рожон. На данный момент, есть только такой способ взаимодействия. Дальше посмотрим, что нас ждет в следующей версии
    
*   **Бедрок**
    
    Здесь процесс довольно схож с **До Бедрок** версией. Вместо `СТС` контракта, вы используете `L1CrossDomainMessenger` или `L1StandardBridge`, здесь уже на ваш выбор. С этими контрактами, депозитные транзакции становятся частью канонической/доверенной цепочки блоков, а создание L2 блоков происходит после того, как создадутся L1 блоки. Но имейте ввиду, что это происходит не сразу, а через некоторое время
    

### Теперь из Оптимизма в Эфириум

С этим уже обстоит не так легко. Тут и понятно, подняться бывает куда легче, чем спуститься

*   **До Бедрок**
    
    В отличии от **автоматической генерации верифицированных транзакций**, где используют при переводе от Эфириума в Оптимизм. При обратном переводе, нужно **создать доказуемое утверждение** о состояние Оптимизма. Для этого требуется **Криптографическое Обязательство** (позволяет зафиксировать информацию, скрыть и позже показать тоже самое значение) в виде корня состояния префиксного дерева Оптимизма - состоит из:
    
    1.  **World State Trie** (Мирового состояния префиксного дерева) - его можно охарактеризовать, как состояние всей сети, где обновляются все транзакции и хранятся учетные данные. И конечно, вы сможете **запросить информацию об этом**🤭
        
    2.  **Transaction Trie** (Транзакций префиксного дерева) - здесь довольно просто, он записывает транзакции в блокчейн😎
        
    3.  **Transaction Receipt Trie** (Получение транзакций префиксного дерева) - по названию уже понятно, что его роль - это что-то получать. И в некоторой степени это правда. Он записывает квитанции/результаты транзакций, где показана вся информация о ней
        
    4.  **Account Storage Trie** (Хранилище учетных данных префиксного дерева) - некоторым было интересно, сохраняются ли данные учетной записи? Уведомлю вас, что все так. Они хранятся здесь, но не думайте, что он хранит все, что только можно. Есть всего 4 поля, которые он сохраняет:
        
        1.  **nonce** (число, которое можно использовать лишь раз) - записывается в заголовок блока, для удобства поиска майнерам
            
        2.  **balance** (баланс) - думаю, тут интуитивно понятно
            
        3.  **storageRoot** (корень хранилища) - записывает содержимое хэша хранилища
            
        4.  **codeHash** (код хэша) - этот код берется из EVM записей
            
    
    > **Если что, вся эта информация основана на Эфириуме=ко всем блокчейнам на основе EVM**😋
    
    Обновление состояния происходит после каждого блока, поэтому обязательство нужно всегда менять и публиковать (**примерно 1/2 раза в час**) для `StateCommitmentChain`контракта
    
    Вы сможете использовать эти обязательства при создании **Доказательства Дерева Меркла/Хеш-Дерева** (алгоритм, который позволяет получить данные в одном хэше). Для проверки достоверности используется `L1CrossDomainMessenger`контракт
    
    Также есть другой контракт - `L2ToL1MessagePasser`. С его помощью, возможно хранить сообщения в состоянии Оптимизма. Затем, в Эфириуме доказать, что контракт в Оптимизме, на самом деле означал отправку сообщения, при этом показав, что хэш был сохранен в `L2ToL1MessagePasser` контракте
    
*   **Бедрок**
    
    На этой стадии, **вывод** в Оптимизме будет происходить в **3 этапа**:
    
    1.  Инициализирование/начало вывода средств транзакцией из L2
        
    2.  Как только процесс вывода будет отправлен на L1, подтвердите вывод, используя `proveWithdrawalTransaction`контракт. Благодаря такому способу, возможно отслеживать вывод вне цепочки, тем самым упрощает выявления неправильного вывода и защищает от вероятных уязвимостей у моста
        
    3.  После завершения периода проверки (занимает около недели) можно завершить вывод
        

Под конец, немного о Доказательстве Вины😁
------------------------------------------

В **Оптимистичных Свертках,** обязательство о состоянии публикуются в Эфириум без какого-либо доказательства. Но есть 7-ми дневный период, когда обязательства можно оспорить. Если же, после этого периода никто не возразит, то смарт-контракты в Эфириуме спокойно смогут принять доказательство о состоянии Оптимизма

При оспаривании обязательства о состоянии, оно может быть аннулировано с помощью процесса **Доказательства Вины**, также известного как **Доказательство Мошенничества**. Если обязательство успешно оспаривается, оно удаляется из списка и `StateCommimentChain` контракта и заменяется другим предложенным обязательством. И под конец, имейте ввиду, что успешное оспаривание не возвращает Оптимизм в изначальное состояние, а порядок транзакций и состояние Оптимизма остаются неизменны из-за **Доказательства Вины**

---

*Originally published on [klif](https://paragraph.com/@klifentro/EBvGVvoQQ8OIiuWDpHjI)*
