Багатоланкове абстрагування рахунку: дослідження майбутнього шифрувальної інфраструктури
З 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)主要包含两个关键概念:
Абстрагування підпису: користувачі можуть вільно вибирати будь-який вподобаний механізм верифікації, більше не обмежуючись певними алгоритмами цифрового підпису (наприклад, ECDSA).
Абстрагування платежів: користувачі можуть використовувати різні способи сплати комісій за транзакції, наприклад, використовуючи токени ERC-20 замість рідних токенів або за рахунок спонсорства транзакцій третіми особами.
Ця гнучкість не лише підвищує безпеку, а й оптимізує досвід користувачів. Метою абстрагування рахунку є реалізація цих двох основних концепцій різними способами.
аналіз ERC-4337
Наразі в Ethereum-протоколі існують деякі обмеження зовнішніх власницьких акаунтів (EOA), такі як фіксовані методи підпису та дизайн платежів. ERC-4337 вирішує ці проблеми, впроваджуючи більш гнучке управління акаунтами та обробку транзакцій.
структура userOp: в ERC-4337 користувач надсилає структуру userOp до Bundler. Bundler збирає кілька userOp і через виклик функції handleOps надсилає їх до контракту EntryPoint.
Контракт EntryPoint: цей контракт обробляє транзакції, як операційна система, основні функції включають:
Викликати функцію validate у контракті акаунта, щоб забезпечити отримання дозволу від власника акаунта для userOp.
Стягнення плати.
Викликати функцію execute в контракті акаунту для виконання цільової операції userOp.
Огляд рідного AA
У мережі Ethereum акаунти поділяються на EOA та контракти. Однак у рідному абстрагуванні рахунку кожен акаунт є контрактом, і механізм обробки транзакцій безпосередньо вбудований у протокол блокчейну.
Дотримання абстрагування рахунку 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: перевірка транзакцій, платіж за транзакцією, виконання транзакції
У 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.
8 лайків
Нагородити
8
5
Поділіться
Прокоментувати
0/400
StableGenius
· 11год тому
*позіхає* ще одна розмова про aa... я вже бачив цей фільм, якщо говорити емпірично, це просто копінг максистів ефіру.
Переглянути оригіналвідповісти на0
OfflineNewbie
· 11год тому
Подивіться, хто ще стрибає.
Переглянути оригіналвідповісти на0
TokenVelocity
· 11год тому
Потім поговоримо про всі ланцюги на проєкті...
Переглянути оригіналвідповісти на0
PessimisticLayer
· 11год тому
Відчуваю, що це лікує лише симптоми, а не причину.
Конференція 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)主要包含两个关键概念:
Абстрагування підпису: користувачі можуть вільно вибирати будь-який вподобаний механізм верифікації, більше не обмежуючись певними алгоритмами цифрового підпису (наприклад, ECDSA).
Абстрагування платежів: користувачі можуть використовувати різні способи сплати комісій за транзакції, наприклад, використовуючи токени ERC-20 замість рідних токенів або за рахунок спонсорства транзакцій третіми особами.
Ця гнучкість не лише підвищує безпеку, а й оптимізує досвід користувачів. Метою абстрагування рахунку є реалізація цих двох основних концепцій різними способами.
аналіз ERC-4337
Наразі в Ethereum-протоколі існують деякі обмеження зовнішніх власницьких акаунтів (EOA), такі як фіксовані методи підпису та дизайн платежів. ERC-4337 вирішує ці проблеми, впроваджуючи більш гнучке управління акаунтами та обробку транзакцій.
структура userOp: в ERC-4337 користувач надсилає структуру userOp до Bundler. Bundler збирає кілька userOp і через виклик функції handleOps надсилає їх до контракту EntryPoint.
Контракт EntryPoint: цей контракт обробляє транзакції, як операційна система, основні функції включають:
Огляд рідного AA
У мережі Ethereum акаунти поділяються на EOA та контракти. Однак у рідному абстрагуванні рахунку кожен акаунт є контрактом, і механізм обробки транзакцій безпосередньо вбудований у протокол блокчейну.
Дизайн AA в різних блокчейн-мережах:
Відмінності між 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 та рідній AA функція точки входу на етапі "перевірки" є фіксованою, тоді як на етапі "виконання" лише точка входу в рідній AA є фіксованою.
обмеження кроків перевірки
Оскільки верифікація транзакцій не має обмежень за витратами, зловмисник може здійснити DoS-атаки на пул пам'яті, що вплине на бандлери (EIP-4337) або операторів/сортировщиків (рідна AA).
EIP-4337 визначає заборонені опкоді та обмеження доступу до зберігання. zkSync Era послабила використання деяких OpCode:
обмеження щодо виконання кроків
У zkSync виконання системного виклику потребує підтвердження наявності системного прапора. Наприклад, для збільшення nonce потрібно взаємодіяти з NonceHolder, а для розгортання контракту - з ContractDeployer.
ERC-4337 та StarkNet не мають спеціальних обмежень на етапі виконання.
обробка випадкових чисел
перша угода впровадження
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 залишиться незмінним.