# Основи zkSync Era

By [Kristos](https://paragraph.com/@kristos) · 2023-03-28

---

### Передумови

Якщо ви не знайомі зі зведеннями, вам слід розглянути [основи зведень](https://era.zksync.io/docs/dev/fundamentals/rollups.html) і прочитати про зведення ZK і Optimistic, перш ніж дізнаватися про zkSync.

zkSync — це зведений протокол ZK, надійний протокол, який використовує криптографічні докази дійсності для забезпечення масштабованих і недорогих транзакцій на Ethereum. У zkSync обчислення виконуються поза мережею, і більшість даних також зберігається поза мережею. Оскільки всі транзакції перевіряються в основному ланцюзі Ethereum, користувачі користуються таким же рівнем безпеки, як і в Ethereum.

zkSync Era виглядає так, як Ethereum, але з нижчими комісіями. Як і в Ethereum, смарт-контракти написані на Solidity/Vyper, і їх можна викликати за допомогою тих самих клієнтів, що й інші EVM-сумісні ланцюжки.

Вам не потрібно реєструвати окремий закритий ключ перед використанням; zkSync підтримує існуючі гаманці Ethereum із коробки. Наразі zkSync запускається та управляється виключно серверами команди zkSync, а тому є централізованим. Однак незабаром це буде переведено на децентралізовану систему.

### Огляд zkSync

Загальний робочий процес зведення виглядає так:

*   Користувачі можуть отримувати, вносити та передавати активи один одному.
    
*   Користувачі можуть виводити підконтрольні їм активи на адресу L1.
    
    Операція зведення потребує допомоги оператора, який згортає транзакції разом, обчислює доказ правильного переходу стану з нульовими знаннями та впливає на перехід стану, взаємодіючи з контрактом зведення. Щоб зрозуміти дизайн, нам потрібно розглянути, як працюють зведені транзакції zkSync.
    

Операції zkSync поділяються на **транзакції зведення** (ініційовані всередині зведення обліковим записом зведення) та **пріоритетні операції** (ініційовані в основному ланцюжку обліковим записом Ethereum).

**Життєві цикли операції зведення zkSync такі:**

*   Користувач створює транзакцію або пріоритетну операцію.
    
*   Після обробки цього запиту оператор створює операцію зведення та додає її до блоку.
    
*   Після завершення блокування оператор надсилає його до смарт-контракту zkSync як зобов’язання щодо блокування.
    
*   Частково логіка деяких операцій згортання перевіряється смарт-контрактом.Підтвердження блоку надсилається до смарт-контракту zkSync як перевірка блоку.
    
*   Якщо перевірка пройшла успішно, новий стан вважається остаточним.
    
    Крім того, на zkSync кожен блок L2 проходитиме наступні чотири етапи, поки не стане остаточним.
    

`Pending`: транзакція отримана оператором, але ще не оброблена.

`Processed`: транзакція обробляється оператором і підтверджується для включення в наступний блок.

`Committed`:: це вказує на те, що дані транзакції цього блоку опубліковано в Ethereum. Це не доводить, що його було виконано належним чином, але забезпечує доступність даних блоку.

`Finalized`: це вказує на те, що підтвердження дійсності SNARK для транзакції було подано та перевірено смарт-контрактом. Після цього кроку транзакція вважається остаточною.

Типовий час, протягом якого трансакція переходить від `Processed` до `Finalized`, становить кілька годин на поточному етапі.

Зауважте, що для зручності розробників ми зазвичай розглядаємо стани `Processed` та `Committed`як один етап під назвою `Committed`, оскільки вони не відрізняються від точок зору UX/DexEx.

### Стан zkSync

Поточна версія zkSync Era вирішує потреби більшості додатків на Ethereum, а з додатковими функціями, запланованими до випуску найближчим часом, zkSync Era надасть розробникам простір для експериментів із додатками, недоступними сьогодні в Ethereum. У цьому випуску ми підтримуємо такі функції:

*   Вбудована підтримка підписів ECDSA: на відміну від першої версії zkSync і більшості зведених пакетів ZK, для реєстрації приватного ключа користувача не потрібна спеціальна операція. Будь-яким обліковим записом можна керувати в L2 за допомогою того самого закритого ключа, який використовується для L1.
    
*   Підтримка Solidity 0.8.x: розгорніть існуючу кодову базу з невеликими змінами або без них.
    
*   За невеликими винятками, наш API Web3 повністю сумісний з Ethereum. Це забезпечує бездоганну інтеграцію з існуючими індексаторами, дослідниками тощо.
    
*   Підтримка криптографічних примітивів Ethereum: zkSync нативно підтримує `keccak256`, `sha256`, та `ecrecover`через попередні компіляції.
    
*   Плагін Hardhat: дозволяє легко тестувати та розробляти смарт-контракти на zkSync.
    
*   Повідомлення смарт-контрактів L1 → L2: дозволяє розробникам передавати дані з Ethereum у смарт-контракти на zkSync, надаючи необхідну інформацію для виконання різноманітних смарт-контрактів.
    
    Деякі функції не включені в нашу поточну тестову мережу, яку ми плануємо надсилати в майбутніх оновленнях, зокрема:
    
*   zkPorter: одна з найбільших і найважливіших функцій, zkPorter дозволить користувачам вибирати між обліковим записом zkRollup із найвищим рівнем безпеки та 20-кратним зниженням комісії порівняно з Ethereum або обліковим записом zkPorter із стабільною комісією за транзакції лише в кілька центів в іншому модель безпеки (набагато вища, ніж у сайдчейна). І облікові записи zkPorter, і zkRollup зможуть безперебійно взаємодіяти разом під капотом.
    
    ### zkSync у порівнянні
    
    zkSync надзвичайно виділяється за безпекою та зручністю використання серед існуючих рішень для масштабування L2. Завдяки поєднанню передової криптографії та доступності даних у ланцюжку, ZK rollups (базова мережа zkSync) є єдиним рішенням для масштабування L2, яке не вимагає жодних операційних дій для збереження коштів. Наприклад, користувачі можуть перейти в режим офлайн і все ще мати можливість безпечно вивести свої активи, коли вони повернуться, навіть якщо валідаторів зведення ZK більше немає.
    

### Характеристики zkSync

*   Переказ токенів ETH і ERC20 з миттєвими підтвердженнями та швидкою остаточністю на L1.
    
*   Комісії за транзакції надзвичайно низькі для вартості основної мережі для токенів ERC20 і переказів ETH.
    
*   Платежі на існуючі адреси Ethereum (включаючи смарт-контракти) можна зручно оплачувати за допомогою токена, що передається.
    
    ### Основні моменти ери zkSync
    
    *   Безпека, подібна до мережі Mainnet, з нульовою залежністю від третіх сторін.
        
    *   Смарт-контракти, сумісні з EVM без дозволу.
        
    *   Стандартний API Web3.
        
    *   Збереження ключових функцій EVM, таких як можливість складання смарт-контрактів.
        
    *   Введення нових функцій, таких як абстракція облікового запису.
        
        ### Як почати?
        
        Почніть зі створення dApp у розділі швидкого запуску. Перегляньте інформацію про вузли RPC, гаманець і провідник блоків на сторінці [важливих посилань.](https://era.zksync.io/docs/dev/troubleshooting/important-links.html)
        
        [Website](https://join.zksync.dev/) | [Twitter](https://twitter.com/zksync) | [Discord](https://join.zksync.dev/) | [Telegram](https://t.me/zksync) | [Medium](https://blog.matter-labs.io/) |
        
        Prepared the article
        

Discord: Kristos#6419 Twitter: [@CiBzrpr0HGjysFN](http://twitter.com/CiBzrpr0HGjysFN)

---

*Originally published on [Kristos](https://paragraph.com/@kristos/zksync-era)*
