14 июня 2022

EVM-блокчейны. Классификация

Казалось бы: зачем? Но не всё так очевидно, если начать разбираться, а разбираться уже есть в чём и зачем. Попробуем? 

Что такое EVM?

Странно, если открыли статью с столь специфичным названием и не знаете, о чём речь. Поэтому здесь будет не просто ответ на поставленный (если он нужен — то пройдите по ссылке: “EVM (Ethereum Virtual Machine) — это «распределённый компьютер», отвечающий за выполнение смарт-контрактов”) вопрос, но три важных тезиса:

— EVM-блокчейны — ответ на вопрос об “убийцах” Эфира: вместо того, чтобы устранить Ethereum — блочейны взяли свойство интероперабельности и создали кроссчейн-механики самого разного образца;

— EVM-блокчейны хотя бы из-за количества не могут быть однородны, поэтому гетерогенность — второе, после функциональной совместимости, свойство;

— EVM-блокчейны, наконец, имеют в себе опыт тех многих проблем, которые раскроются в мире Cosmos, Polkadot, Avalanche и мультичейновости вообще. 

Поговорим же о переходах?

В том смысле, что классифицировать EVM-совместимость можно по-разному. В сей раз попробую зайти со стороны одно- и/или дву-направленности. Сразу — примеры:

Скажем, BNB-chain (BSC) имеет почти полное сходство с Ethereum с разницей лишь в алгоритме консенсуса (DPoS+PoA — ещё точнее:  Proof of Staked Authority (PoSA) —  vs. PoW). В этом смысле сохраняется:

— Подход к архитектуре смарт-контрактов;

— Формализация адресов;

— Отсюда: dApss и токены — совместимы двунаправленно. 

Проще говоря: если отправлю USDt в сети Ethereum, Polygon, BSC и держатель имеет адрес в MetaMask, то с огромной долей вероятности он получит платёж, если даже ему будет необходимо помучаться с добавлением новой сети. 

Другое дело, скажем, Tron. 

Если открыть: https://tronprotocol.github.io/documentation-en/contracts/tvm/, то можно найти много интересного. Допустим:

  • Изначально “Ethereum VM address is 20 bytes, but TRON’s VM address is 21 bytes”, — то есть: “Адрес EVM составлял 20 байт, а адрес EV TRON — 21 байт”. 
  • Далее: “В TVM используется концепция Bandwidth. В отличие от газового механизма EVM в Ethereum, операции транзакций или смарт-контрактов на TVM бесплатны, токены не расходуются. Технически, исполняемая вычислительная мощность на TVM не ограничена общим количеством токенов” (чем это чревато — уже описывал в ряде статей);
  • Или ещё: “благодаря тщательно продуманной парадигме проектирования и тонкому коду базовых операций, TVM может гарантировать точность каждого шага вычислений, максимально снижая неоднозначность. Из соображений безопасности трансферы и выполнение смарт-контрактов обходятся только в очки пропускной способности, а не в TRX, что освобождает TRON от атак по аналогии с Ethereum в отношении режима потребления GAS. Стабильность потребления пропускной способности достигается при фиксированной стоимости каждого вычислительного шага” (опять же — у этого подхода есть проблемы, но сегодня речь не о них). 

Проще всего описанное понять на таком сравнении:

  • Адрес ETH: 0x23802e21c6cd72c091792bfb9f7afc2265cc68d6
  • Адрес BSC: 0x23802e21c6cd72c091792bfb9f7afc2265cc68d6
  • Адрес Polygon: 0x23802e21c6cd72c091792bfb9f7afc2265cc68d6
  • Адрес Tron: TNrvCZqdzcZ7gib49WpM7k4uJfoe6pACH6

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

А как же быть с Fantom, Aurora, Optimism, Arbitrum и другими? Здесь, прежде всего, надо остановиться, поскольку к общей классификации (двунаправленная совместимость, однонаправленная и несовместимость), которая проводит градацию горизонтально между чейнами, стоит добавить вертикальную градацию: L1 — L2. 

Поэтому получаем, что Optimism, Arbitrum будут двунаправленной совместимости, но на L2, тогда как BSC, Polygon, etc. — двунаправленные, но на L1.  

Что касается Aurora, Velas и подобных, то тут всё ещё сложнее:

  • Aurora — мост-как-блокчейн для связки Near-Ethereum. Если точнее, то “Aurora — это виртуальная машина Ethereum (EVM), реализованная в виде смарт-контракта на протоколе NEAR”;
  • Velas — то же самое (точнее — почти то же), но для Solana-Ethereum. 

И возникает резонный вопрос: а чем именно отличается блокчейн от НЕ блокчейна? Скажем, если есть блоки и где их смотреть, транзакции и передаваемая в них ценность, то это блокейн? https://native.velas.com — допустим? 

Но это вопрос не на сей раз. Вернёмся к EVM. 

Получается, в первом приближении так:

  1. Near — классический НЕ-EVM-блокчейн; 
  2. Tron — однонаправленный EVM-блокчейн (L1);
  3. Arbitrum — двунаправленный EVM-блокчейн (L2); 
  4. BNB-chain — двунаправленный EVM-блокчейн (L1). 

А дальше… есть три задачи:

  1. Выделить критерии дву-/одно-направленности;
  2. Определить место блокчейн-решения для блокчейн-решений (Aurora);
  3. Найти связку EVM-чейнов через диаграммы Эйлера. 

Попробую прорисовать следующим образом:

EVM & Menaskop

Пока всё и продолжим, а пока — 

До!