Вступ: Aztec — це Layer 2 з пріоритетом приватності, який дозволяє розробникам створювати смартконтракти з приватним та публічним станом та приватним та публічним виконанням, що дозволяє створювати додатки з «вибірковою приватністю», які працюють як звичайний DeFi, не відкриваючи всього в мережі.
Що таке Aztec?
Aztec — це мережа другого рівня, спроектована з акцентом на конфіденційність, тоді як у разі потреби підтримує публічну композицію.
Ключова ідея проста:
-
Приватне виконання та приватний стан для чутливих дій користувача (баланси, ідентичність, наміри, стратегія).
-
Публічне виконання та публічний стан для речей, які мають бути глобально видимими (публічна ліквідність, публічна логіка контракту, спільний стан).
Тож замість вибору «всі публічні» або «всі приватні» Aztec підтримує гібридні додатки.
Як працює транзакція на Aztec
Aztec розділяє виконання на два окремих середовища:
-
Приватне середовище виконання (PXE) — працює з боку користувача
Приватні функції виконуються на клієнтській стороні всередині PXE (вимовляється як «піксі») для максимального захисту конфіденційності.
PXE:
-
виконує приватні функції локально
-
має ключі + нотатки
-
генерує докази із нульовим розголошенням для приватних операцій
-
включено в aztec.js (TypeScript), працює в Node або браузері
-
Публічна ВМ (AVM) — працює на нодах Aztec
Публічні функції виконуються в мережі у віртуальній машині Aztec (AVM), концептуально подібній до EVM (тому «інтуїція ефективності газу» застосовується більш як у Solidity).
Правило напрямкового виконання (важливо)
Транзакція проходить від приватної до публічної:
-
Приватні функції можуть додавати публічні функції до черги для виконання пізніше.
-
Публічні функції не можуть викликати приватні функції.
Це розділення є цілеспрямованим: публічна мережа не повинна мати можливості «доступу» до приватного виконання.
Приватний проти публічного стану: Примітки, нульовики та дерева
Aztec використовує різні моделі стану залежно від приватності:
Приватний стан = «ноти» стилю UTXO
Приватний стан зберігається у вигляді нотаток (чанки даних, подібні до UTXO). Щоб зберегти конфіденційність:
-
Примітки додаються до дерева UTXO, яке підтримує лише додавання
-
Коли нота «витрачена/видалена», створюється нульфікатор
-
Нульфікатори зберігаються в окремому дереві нульфікаторів
Це дозволяє мережі забезпечити принцип «використано один раз» без розкриття приватного вмісту нот.
Публічний стан = публічне сховище, подібне до акаунту
Громадський стан поводиться подібно до Ethereum:
-
зберігається у публічному дереві даних
-
оновлено безпосередньо та видно в ланцюжку
Висновки для розробників:
-
Робота з приватним станом = зобов’язання + нульовики (доказ правильності без розкриття даних)
-
Робота у публічному стані = прямі оновлення (нормальна поведінка зберігання в блокчейні)
Абстракція акаунту: Кожен акаунт — це смартконтракт
Aztec має нативну абстракцію акаунтів на рівні протоколу:
-
Немає EOAs (немає простих «акаунтів з ключовими парами»)
-
Кожен акаунт — це смартконтракт
-
Розробники можуть визначити власні правила для:
-
аутентифікація (підписи, мультіпідпис, ключі доступу, користувацька логіка)
-
політики авторизації (обмеження, дозволи, сесійні ключі)
-
nonce / захист від повторного відправлення
-
Чому це допомагає проти DoS (проблема «валідація є витратною»)
Модель Aztec виконує складну перевірку на стороні клієнта:
-
Клієнт перевіряє та генерує ZK-доведення, що «перевірка пройдена успішно»
-
Секвенсер перевіряє доказ постійного розміру
-
Тож складність перевірки не збільшує вартість перевірки мережі
Це дозволяє використовувати логіку акаунту «продвинутого користувача», не роблячи ланцюг повільним.
Ключі в акаунтах Aztec (з акцентом на конфіденційність)
Кожен акаунт Aztec підтримується 3 ключовими парами:
-
Ключова пара Nullifier: використовується для обчислення нульовиків нот
-
Надходять ключі перегляду: використовуються для шифрування нотаток для отримувача
-
Вихідна пара ключів перегляду: використовується для шифрування нотаток для відправника
Оскільки акаунти є смартконтрактами, вони не мають signing keypair за замовчуванням — автентифікація залежить від дизайну смартконтракту акаунту.
Свідки автентифікації: безпечніші, ніж «нескінченні схвалення»
Aztec замінює ризикова схема «нескінченного схвалення» на аутентифікаційні свідчення (AuthWit):
-
замість надання безмежного дозволу назавжди,
-
користувачі надають дозвіл на певні дії з певними параметрами
Це розроблено для зменшення постійного ризику схвалення, одночасно забезпечуючи добру користувацьку досвід (пакетна обробка, автоматизація).
Розширюйте Aztec за допомогою Noir
Смартконтракти Aztec написані мовою Noir, яка зосереджена на ZK для створення доводимих програм/контрактів. Одне з ключових попереджень з документації: приватні функції можна написати неоптимально, оскільки процес доведення має іншу логіку продуктивності, ніж звичайне виконання — тому важливо навчитися «як писати ефективний Noir».
















