The Type 1 ZK-EVM (UA)
Компанія Taiko будує ZK-EVM типу 1 (еквівалент Ethereum). Які переваги дає використання ZK-EVM 1-го типу? Щоб відповісти на це питання, нам потрібно зрозуміти, які зміни ZK-EVM може внести на різних рівнях і які компроміси вони несуть. Давайте вчитися разом.
Ця публікація передбачає, що у вас є певне розуміння Ethereum. Ми пропонуємо вам спочатку зрозуміти наступне:
- Що таке ZK-EVM (EVM-сумісний ZK-Rollup) на високому рівні
- Як Ethereum зберігає дані у вигляді дерева Меркла-Патриції і використовує докази Меркла
- Як смарт-контракти визначають ціну свого виконання за допомогою концепції газу
- Різні типи ZK-EVM
З огляду на це, ось п'ять питань, які ми розглянемо:
- Що таке ZK-EVM типу 1?
- Що змінює ZK-EVM типу 2+?
- Які наслідки матимуть ці зміни?
- Чому вартість формування доказів має значення?
- Навіщо використовувати ZK-EVM типу 1?
Що таке ZK-EVM типу 1?
Один із способів розглянути різні типи ZK-EVM - це їх близькість до архітектури Ethereum на базовому рівні, наприклад
- Використання дерева Меркла Патриція для різних видів станів дерева
- Специфікація клієнта виконання
- Кількість газу, що використовується кожним операційним кодом
Різні типи ZK-EVM забезпечують компроміс між сумісністю та вартістю генерації доказів. ZK-EVM типу 1 надає перевагу сумісності над вартістю генерації доказів.
Інший термін для ZK-EVM типу 1 - "еквівалент Ethereum". Цей термін походить від того, що ZK-EVM типу 1 не вносять ніяких змін в архітектуру Ethereum, чи то хеш-функція, дерева станів чи вартість газу. Ця еквівалентність дозволяє нам повторно використовувати клієнти виконання з мінімальною модифікацією.
Що змінює ZK-EVM типу 2+?
У цій статті, коли ми говоримо про тип 2+, ми маємо на увазі ZK-EVM типу 2/2,5. Тип 3/4 ZK-EVM не зовсім еквівалентний EVM, тому ми відкладемо їх в сторону для обговорення в цій публікації.
ZK-EVM типу 2+ змінюють частини стеку Ethereum, які складно довести. Зміни можуть включати в себе:
Ці зміни призводять до зниження витрат на створення доказів при збереженні сумісності на рівні байт-коду, але вони також можуть мати деякі інші наслідки.
Які наслідки матимуть ці зміни?
Давайте розберемо це на прикладах, щоб намалювати більш чітку картину того, як ці зміни можуть вплинути на вас як розробника смарт-контрактів.
1. Механізми безпеки можуть змінитися
Класичним прикладом використання газу як механізму безпеки є встановлення фіксованого ліміту газу для переказу ETH, щоб унеможливити зміну статусу за адресою призначення. Смарт-контракти, які покладаються на це для забезпечення безпеки, більше не будуть безпечними, якщо вартість газу зміниться, що дозволить змінити статус. Інший сценарій виникає, якщо хеші Keccak стають наддорогими, а безпека смарт-контракту залежить від мінімальної кількості можливих хешів (як для захисту від шахрайства).
2. Зміна вартості газу може мати побічні ефекти
Якщо ваш смарт-контракт оптимізовано з урахуванням вартості газу, як зазначено в Ethereum L1, зміна вартості газу може призвести до того, що контракт буде використовувати більше газу, ніж передбачалося. Ви також можете використовувати інструменти для точного налаштування використання газу в вашому контракті, і зміна вартості газу може зламати ці інструменти. Крім того, збільшення вартості газу може призвести до того, що договір перевищить ліміт блочного газу. Наприклад, якщо в контракті часто використовується опкод Keccak, розробнику може знадобитися знайти більш економні способи виконання роботи або змінити хеш-функцію.
3. Зміна хешу блоку може мати побічні ефекти
ZK-EVM типу 2+ може використовувати іншу хеш-функцію - і створювати інші корені стану. Ця зміна може порушити сумісність смарт-контрактів, які покладаються на хешування блоків. Наприклад, мостовий контракт може використовувати доказ Меркла для перевірки, і зміна хеш-функції з Keccak на щось інше може порушити ці докази. Покладання на блочний хеш таким чином також порушиться з введенням дерев Веркле. Сподіваємось, що ми зможемо отримати абстрактну прекомпіляцію для використання в майбутньому.
4. Ви можете втратити деякі приємні особливості Keccak
Хеш-функція Keccak широко визнана як перевірена в боях і безпечна хеш-функція, тому її заміна на альтернативу може бути ризикованою. Крім того, Keccak має набагато вищу власну продуктивність і нижчі витрати на газ у порівнянні з деякими більш дружніми до ZK хеш-функціями, такими як Poseidon.
Чому вартість генерації доказів має значення?
Вищі витрати на генерацію доказів можуть розглядатися як негативний фактор з кількох причин:
- Потенційно довший час до завершення
- Дисбалансує співвідношення між вартістю газу та вартістю
- Дорожчі транзакції
Ми не стурбовані більш тривалим часом до завершення, тому що ми досягаємо миттєвого завершення за допомогою нашого дизайну протоколу, обходячи необхідність чекати доказу при роллінгу (запропоновані блоки мають таку ж завершеність, як і блок Ethereum L1, що входить до складу Ethereum L1, див: Завершеність 2-го рівня). У випадку, коли потрібен доказ, наприклад, для переміщення активів на інший рівень, ми з оптимізмом дивимося на нові методи з'єднання, які не вимагають повного доказу.
Співвідношення між вартістю газу та вартістю генерації доказів має значення, оскільки зловмисник може подавати блоки, які є дешевими за газом, але дорогими для генерації доказів (DOS-атака). Пом'якшення цього вектору атаки є більш розширеною темою, тому ми заглибимося в запропоноване нами рішення в наступній публікації.
Загалом, ми сподіваємося на подальше покращення витрат на формування доказів, що дозволить знизити собівартість транзакцій:
- Оптимізації на рівні препроцесора, такі як Hyperplonk і Caulk
- Загальна оптимізація та фішки
- Фокус спільноти на повністю SNARKed Ethereum
- Специфічне для ZKP обладнання
Навіщо використовувати ZK-EVM типу 1?
Основною перевагою використання ZK-EVM Type 1 є те, що ви можете спробувати без будь-яких попередніх витрат - вам не потрібно вносити жодних змін у ваш код або середовище розробки. Ви можете створювати прототипи, розробляти, тестувати, проводити аудит і розгортати спочатку на Ethereum L1, а потім мігрувати на Taiko. Крім того, ви можете розробляти на Taiko, а потім мігрувати на L1 або інший EVM-еквівалентний ланцюжок в будь-який час.
ZK-EVM 1-го типу - це безперервний процес розвитку. Це означає не тільки бути еквівалентним Ethereum зараз, але й продовжувати успадковувати майбутні оновлення Ethereum. Залишаючись еквівалентом 1-го типу, ми не можемо додавати функції, які б порушили нашу еквівалентність Ethereum. Це також заохочує нас вносити свій вклад в покращення Ethereum L1.
Посилання
- Сайт (з технічною документацією): https://taiko.xyz
- Discord: https://discord.com/invite/tnSra3aFfg
- GitHub: https://github.com/taikoxyz
- Twitter: https://twitter.com/taikoxyz
- Join us: https://taikochain.notion.site/Taiko-Jobs
Джерела
- https://vitalik.ca/general/2022/08/04/zkevm.html
- https://ethereum.org/en/developers/docs/data-structures-and-encoding/patricia-merkle-trie/
- https://ethereum.org/en/developers/docs/nodes-and-clients/
- https://ethereum.org/en/developers/docs/scaling/zk-rollups/
- https://ethereum.org/en/developers/docs/gas/
- https://ethereum.org/en/developers/docs/evm/opcodes/
- https://academy.binance.com/en/glossary/keccak
- https://medium.com/@eiki1212/ethereum-state-trie-architecture-explained-a30237009d4e
- https://github.com/cgewecke/hardhat-gas-reporter
- https://consensys.net/diligence/blog/2018/12/silent-but-vulnerable-ethereum-gas-security-concerns/