майбутнє інфраструктури шифрування? Розгляд абстрагування рахунку багатьох ланцюгів

Автор: Альфред, розробники imToken Labs

加密基础设施的未来?多链账户抽象解析

З 8 по 11 липня 2024 року в Брюсселі, Бельгія відбудеться конференція EthCC (ETH Community Conference), яка є найбільшою щорічною подією Ethereum у Європі, з фокусом на технології та спільноту.

Цього разу на конференції спільноти Ethereum (EthCC 7) виступило понад 350 активних лідерів думок, які працюють на передовій в галузі Блокчейну. Альфред з imToken Labs був запрошений взяти участь і виступити на конференції з темою “Розкриття майбутнього: аналіз абстрагування рахунків на багатьох ланцюгах”.

Огляд виступу:

  • рахунок抽象(AA)головним чином містить дві ключові точки: абстрагування підпису та абстрагування платежу. Абстрагування підпису дозволяє користувачам вибирати будь-який бажаний механізм підтвердження, а абстрагування платежу дозволяє використовувати різноманітні варіанти оплати транзакцій. Ця гнучкість забезпечує більш безпечний та оптимальний досвід користувача.
  • У ERC-4337 та оригінальних АА вхідні точки фази «Перевірка» фіксовані, а в фазі «Виконання» лише вхідна точка оригінальних АА є фіксованою. Обмеження перевірки транзакцій та кроки виконання транзакцій мають свої власні особливості та обмеження в різних реалізаціях.
  • При реалізації ERC-4337 на у блокчейні, сумісному з EVM, є дві ключові відмінності: відмінності у протоколі розгортки та способі обчислення адрес, що призводить до непомітних деталей розробки при реалізації ERC-4337 між L1 та L2.

Нижче наведено повний текст промови:

Вітаю, я Альфред, зараз працюю розробником блокчейну в imToken Labs. Сьогодні я хочу поговорити з вами про концепції ERC-4337 та Native AA, обговорити їх відмінності та ретельно проаналізувати основні відмінності стандарту 4337 між L1 та L2.

Вступ до абстракції рахунку

1. Що таке абстрагування рахунку

абстрагування рахунку (AA) в основному включає дві ключові точки: абстрагування підпису та абстрагування платежу.

  • Абстракція підпису: користувач може вибрати будь-який бажаний механізм перевірки, а не обмежуватися певними алгоритмами (наприклад, ECDSA).
  • Платіжна абстракція: користувачі можуть використовувати різні варіанти оплати угоди, такі як оплата активами ERC-20 замість власних активів або спонсорство угоди третіми особами.

Ця гнучкість забезпечує більш безпечний та ефективний користувацький досвід. Метою абстрагування рахунку є досягнення цих двох ключових пунктів за допомогою різних методів.

2. Що таке ERC-4337

加密基础设施的未来?多链账户抽象解析

Наразі в протоколі Ethereum існують обмеження для зовнішніх власниць рахунків (EOA), такі як фіксований метод підпису та дизайн оплати. ERC-4337 вирішує ці проблеми шляхом введення більш гнучкого управління рахунками та обробки транзакцій.

  • userOp структура: в ERC-4337 користувач надсилає структуру userOp до Bundler. Bundler збирає лонг готових userOp та відправляє їх до контракту EntryPoint, викликаючи функцію handleOps.
  • Контракт входу: Цей контракт опрацьовує транзакції, подібно до операційної системи, його основні функції включають:
  • Викличте функцію validate у контракті на рахунок, щоб переконатися, що userOp авторизований власником облікового запису.
  • Взимання плати.
  • Викликати функцію ute в контракті рахунку, щоб виконати цільову операцію userOp.

3. Що таке первісний AA

У блокчейні Ethereum рахунки поділяються на EOA та рахунки контрактів. Однак у вбудованих рахунках AA кожен рахунок є контрактом, а механізм обробки транзакцій безпосередньо вбудований у протокол блокчейну.

Дизайн AA в різних мережах блокчейну:

  • Абстракція облікового запису ERC-4337: Ethereum, Arbitrum, Optimism, Base, Linea, Scroll, Polygon PoS
  • Оригінальний абстрактний запис рахунку відповідає ERC-4337: ера StarkNet & zkSync
  • Нативний абстрагування рахунку з приватним дизайном: Aztec

Якщо ви зацікавлені в Aztec Native AA, EIP-3074, EIP-7702, то сьогодні ми зосередимось на власному AA після ERC-4337. Детальну інформацію дивіться у моїй статті, яка перерахована в кінці тексту.

Відмінності між ERC-4337 та відомим AA

1. Роль операційної системи

AA OS потребує відповіді на наступні питання:

  • Хто визначає ціну газу?
  • Хто визначає порядок угод? Де знаходиться пул пам’яті?
  • Хто спричинив виклик функції входу?
  • Що визначає процес обробки угод?

У ERC-4337 ці ролі співпрацюють за допомогою Bundler та EntryPoint Contract.

У вихідному AA користувачі надсилають свої userOps операторові / сортувальнику офіційного сервера, а не Bundler та EntryPoint Contract.

У StarkNet Sequencer відповідає за обробку всіх цих завдань.

У zkSync головною відмінністю Era від інших реалізацій AA є необхідність співпраці Оператора з завантажувачем (системним контрактом). Завантажувач відкриває новий блок, визначає його параметри (включаючи параметри блоку та інші параметри Gas) і отримує транзакції від Оператора для перевірки.

加密基础设施的未来?多链账户抽象解析

2. Інтерфейс контракту

Завдяки наявності трьох кроків, інтерфейс контракту рахунку рахунку є схожим у різних реалізаціях, ці функції входу можуть бути викликані лише AA OS:

  • ERC-4337: Підтвердження дій користувача
  • zkSync: підтвердження транзакцій, оплата транзакцій, виконання транзакцій
  • StarkNet:ute、validate、validate_declare、validate_deploy

В ERC-4337 та вбудованому AA, вхідна точка функції в етапі «перевірки» є фіксованою, а в етапі «виконання» тільки вбудовану AA має фіксовану точку входу.

3. Обмеження кроку перевірки

Через відсутність обмежень витрат на перевірку транзакцій (як суттєво, перевірка транзакцій - це виклик функції перегляду), злоумисник може влаштувати атаку DoS на пул пам’яті, щоб пошкодити пакетувальник (EIP-4337) або обчислювач / сортувальник (вбудований AA).

EIP-4337 визначає, які опкоди заборонені та як обмежити доступ до сховища. Ера zkSync розширила використання деяких опкодів:

  • Логіка контракту може звертатися лише до власного сховища. Якщо адреса контракту - це адреса A, він може звертатися до:
  • Слот зберігання, що належить Адреса A
  • Слот зберігання, який належить будь-якій іншій адресі А
  • Належить до сховища будь-якого іншого Адреса keccak256 (A || X): Це означає, що безпосередньо використовуючи Адресу як ключ у відображенні (наприклад, відображення (адреса => значення)), еквівалентно доступу до слоту keccak256 (A || X). Наприклад, залишок активів у контракті ERC-20.
  • Логіка угод не може отримати доступ до глобальних змінних, таких як номер блоку. Також StarkNet не дозволяє зовнішні виклики угод.

4. Обмеження етапів виконання

У zkSync виконання системного виклику потребує підтвердження наявності системного прапорця. Наприклад, єдиним способом збільшення nonce є взаємодія з NonceHolder, а для розгортання контракту потрібна взаємодія з ContractDeployer. Системний прапорець гарантує, що розробникирахунок свідомо взаємодіють з системними контрактами.

В ERC-4337 та StarkNet виконавча фаза не має спеціальних обмежень.

  1. Випадкове число
  • У ERC-4337 дизайн точки входу відмінює 192-бітове ключове значення від 64-бітового випадкового числа.
  • У zkSync системний контракт NonceHolder керує значенням nonce, щоб гарантувати його строгий зростання, тобто додає до випадкового числа 1.
  • В StarkNet nonce також строго зростає, але немає абстрактного nonce, який би контролювався конкретним контрактом.

6. Використовуйте першу транзакцію для розгортання

  • ERC-4337 містить поле initcode в userOp-структурі для розгортання рахунку (рахунок контракту) у першій userOp.
  • В StarkNet та zkSync користувачам потрібно відправити першу угоду операторові / сортувальнику для розгортаннярахунокумови.

7. Спеціальний дизайн в zkSync

Якщо ви безпосередньо переведете ETH з ETH-гону EOA на zkSync, вам не потрібно розгортати спеціальний контрактрахунок, і ви отримаєте той самий за замовчуваннямрахунок із тією самоюАдреса. Цейрахунок може працювати так само, як і ETH-гон EOA, і його контролює той самийЗакритий ключ, що й ETH-гон EOA.

Цей тип рахунку - None, а не version1. Ви не можете викликати функції DefaultAccount, оскільки він не має жодного коду, розгорнутого в просторі ядра.

Відмінності між L1 4337 та L2 4337

При реалізації ERC-4337 на у блокчейні, сумісному з EVM, є дві ключові відмінності: відмінність протоколу та відмінність Адреса.

1. відмінності протоколу

У дизайні Rollup, L2 повинен завантажувати дані на L1 для забезпечення безпеки та розрахунків. На тлі ERC-4337, вартість, пов’язана з цим процесом завантаження, наприклад, вартість безпеки L1 та вартість блобів, повинна бути включена до передвалідаційного газу. Визначення відповідної вартості завантаження у передвалідаційному газі є великим викликом.

2. Різниця в Адресах

加密基础设施的未来?多链账户抽象解析

У функції create zkSync ERA кодування адреси відрізняється від кодування Ethereum та OP. Крім того, StarkNet використовує унікальну функцію хешування для обчислення адреси. За контексту ERC-4337, сумісного з EVM у блокчейні, ми зазвичай вважаємо, що обчислення адреси є однаковим у всіх у блокчейні. Однак, є одна незрима деталь, яка може призвести до різних адрес рахунку між Ethereum та реалізацією ERC-4337 на L2.

Ключовим питанням є додавання нового опкоду в Хардфорк. Наприклад, якщо L2 ланцюг не підтримує Хардфорк у Шанхаї, і не вказано версію EVM під час компіляції, введення push0 призведе до зміни байткоду, навіть якщо код Solidity залишається таким самим.

Висновок

Нижче наведено деякі ресурси, щоб ви могли дізнатися більше про інформацію щодо абстрагування рахунку. Будь ласка, зв’яжіться зі мною в будь-який час, якщо у вас є питання, ви можете знайти мене на Twitter (@murmurlu).

“Вступ до абстрактної рахунку Aztec”, будь ласка, перегляньте:

“Введення в абстракцію рахунку StarkNet”, будь ласка, перегляньте:

Запис про абстракцію рахунку zkSync, будь ласка, дивіться:

“Порівняльний аналіз Starknet та zkSync”, будь ласка, перегляньте:

ETH-0,34%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
0/400
Немає коментарів
  • Закріпити