Конференція EthCC обговорює багатоланкове абстрагування рахунку: технічне порівняння ERC-4337 та рідної AA

Багатоланкове абстрагування рахунку: дослідження майбутнього шифрувальної інфраструктури

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

На цьому Ethereum Community Conference (EthCC 7) більше 350 лідерів думок з першої лінії індустрії блокчейн виступили з доповідями. Серед них один із розробників блокчейн був запрошений взяти участь і виступив на тему "Відкриття майбутнього: аналіз абстрагування рахунку в мульти-ланцюгах".

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

Огляд основних моментів виступу

  • Ядро абстрагування рахунку (AA) включає абстракцію підпису та абстракцію платежу. Перша дозволяє користувачам вибирати будь-який механізм верифікації, а друга пропонує різні варіанти оплати транзакцій. Ця гнучкість значно підвищує безпеку та досвід користувача.

  • ERC-4337 та рідна AA мають фіксовану функцію точки входу на етапі верифікації, але на етапі виконання лише рідна AA зберігає фіксовану точку входу. Різні способи реалізації мають свої власні характеристики в обмеженнях верифікації транзакцій та етапах виконання транзакцій.

  • При реалізації ERC-4337 на EVM-сумісних ланцюгах основними викликами є: відмінності протоколів у дизайні Rollup та відмінності в способах обчислення адрес. Ці відмінності призводять до появи деяких важко помітних деталей розробки при реалізації ERC-4337 між L1 та L2.

Абстрагування рахунку: Вступ

Визначення абстрагування рахунку

абстрагування рахунку (AA)主要包含两个关键概念:

  1. Абстрагування підпису: користувачі можуть вільно вибирати будь-який вподобаний механізм верифікації, більше не обмежуючись певними алгоритмами цифрового підпису (наприклад, ECDSA).

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

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

аналіз ERC-4337

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

  • структура userOp: в ERC-4337 користувач надсилає структуру userOp до Bundler. Bundler збирає кілька userOp і через виклик функції handleOps надсилає їх до контракту EntryPoint.

  • Контракт EntryPoint: цей контракт обробляє транзакції, як операційна система, основні функції включають:

  1. Викликати функцію validate у контракті акаунта, щоб забезпечити отримання дозволу від власника акаунта для userOp.
  2. Стягнення плати.
  3. Викликати функцію execute в контракті акаунту для виконання цільової операції userOp.

Огляд рідного AA

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

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

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

Шифрування інфраструктури майбутнього? Аналіз абстрагування рахунку в багатоланцюговій мережі

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

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

Операційна система AA повинна вирішити такі проблеми:

  • Визначальник ціни газу
  • Визначник порядку угод та позиція в мемпулі
  • Тригер функції точки входу
  • фактори, що визначають процес обробки транзакцій

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

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

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

Основною характеристикою zkSync Era є те, що оператору потрібно працювати разом з bootloader (системний контракт). Bootloader відповідає за відкриття нових блоків, визначення параметрів блоку та параметрів Gas, а також отримує транзакції від оператора для перевірки.

інтерфейс контракту

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

  • ERC-4337: підтвердження дій користувача
  • zkSync: перевірка транзакцій, платіж за транзакцією, виконання транзакції
  • StarkNet: виконати, перевірити, перевірити_декларацію, перевірити_розгортання

У ERC-4337 та рідній AA функція точки входу на етапі "перевірки" є фіксованою, тоді як на етапі "виконання" лише точка входу в рідній AA є фіксованою.

обмеження кроків перевірки

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

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

  • Логіка контракту може отримати доступ лише до свого власного сховища.
  • Логіка контракту не може отримати доступ до глобальних змінних, таких як номер блоку.
  • StarkNet не дозволяє виклик зовнішніх контрактів.

обмеження щодо виконання кроків

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

ERC-4337 та StarkNet не мають спеціальних обмежень на етапі виконання.

обробка випадкових чисел

  • ERC-4337: Дизайн точки входу випадкового числа відрізняє 192-бітове значення ключа та 64-бітове випадкове значення.
  • zkSync: Контрактна система NonceHolder управляє nonce, забезпечуючи суворе збільшення.
  • StarkNet: nonce також суворо зростає, але немає спеціального управління контрактами.

перша угода впровадження

  • ERC-4337: структура userOp містить поле initcode, яке використовується для розгортання відправника (контракту акаунту) в першому userOp.
  • StarkNet та zkSync: користувачі повинні надіслати першу транзакцію оператору/сортувальнику для розгортання контракту акаунту.

zkSync спеціальний дизайн

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

Цей тип акаунту є version None, а не version1. Користувач не може викликати функції DefaultAccount, оскільки він не розгорнув жодного коду в керуючому просторі.

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

Різниця між L1 та L2 4337

Основні два ключові відмінності впровадження ERC-4337 на EVM-сумісних ланцюгах: відмінності в протоколі та відмінності в акаунті.

різниця в протоколах

У дизайні Rollup L2 потрібно завантажити дані на L1, щоб забезпечити безпеку та розрахунок. У ERC-4337 витрати, пов'язані з цим процесом завантаження (такі як витрати на безпеку L1 та витрати на blob), повинні бути включені в попередньо перевірений Gas. Визначення відповідних витрат на завантаження в попередньо перевіреному Gas є суттєвим викликом.

різниця адреси

Спосіб кодування адреси в функції create zkSync ERA відрізняється від Ethereum та OP-зведення. Крім того, StarkNet використовує унікальну хеш-функцію для обчислення адрес.

У контексті ERC-4337 на EVM-сумісних ланцюгах ми зазвичай припускаємо, що обчислення адрес є однаковим на всіх ланцюгах. Однак, один деталь, яка може бути легко проігнорована, може призвести до різниці в адресах контрактів акаунтів між реалізаціями ERC-4337 на Ethereum та L2.

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

Шифрування інфраструктури майбутнього? Аналіз абстрагування рахунку мульти-ланцюга

Переглянути оригінал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Нагородити
  • 5
  • Поділіться
Прокоментувати
0/400
StableGeniusvip
· 11год тому
*позіхає* ще одна розмова про aa... я вже бачив цей фільм, якщо говорити емпірично, це просто копінг максистів ефіру.
Переглянути оригіналвідповісти на0
OfflineNewbievip
· 11год тому
Подивіться, хто ще стрибає.
Переглянути оригіналвідповісти на0
TokenVelocityvip
· 11год тому
Потім поговоримо про всі ланцюги на проєкті...
Переглянути оригіналвідповісти на0
PessimisticLayervip
· 11год тому
Відчуваю, що це лікує лише симптоми, а не причину.
Переглянути оригіналвідповісти на0
AllInDaddyvip
· 11год тому
AA ця хвиля може виграти
Переглянути оригіналвідповісти на0
  • Закріпити