Розбір абстрагування рахунків в умовах багатоланцюгової системи: обговорення майбутнього шифрувальної інфраструктури
З 8 по 11 липня 2024 року в Брюсселі, Бельгія, відбудеться найбільша європейська щорічна подія по ефірі – Конференція спільноти Ethereum (EthCC), яка зосередиться на технологічному та суспільному розвитку.
Ця конференція Ethereum Community Conference (EthCC 7) запросила понад 350 лідерів думок з першої лінії індустрії шифрування виступити з доповідями. Розробник imToken Labs Альфред був запрошений взяти участь і виступив з доповіддю на тему "Відкриття майбутнього: аналіз абстрагування рахунку на базі кількох ланцюгів".
Огляд основних моментів виступу
Два основних елементи абстрагування рахунку (AA): абстракція підпису та абстракція платежу. Абстракція підпису дозволяє користувачам обирати будь-який механізм верифікації, в той час як абстракція платежу пропонує різноманітні варіанти оплати транзакцій, що разом підвищує безпеку та користувацький досвід.
Функції точок входу на етапі "перевірки" для ERC-4337 та рідного AA є фіксованими, але на етапі "виконання" лише рідний AA має фіксовану точку входу. Різні способи реалізації мають свої особливості в обмеженнях на перевірку транзакцій та етапах виконання транзакцій.
При реалізації ERC-4337 на EVM-сумісних ланцюгах існує два основні ключові відмінності: відмінності в протоколах дизайну Rollup та відмінності в способах обчислення адрес. Ці відмінності призводять до появи деяких легко ігнорованих деталей розробки під час реалізації ERC-4337 між L1 та L2.
Абстрагування рахунку: Вступ
1. Визначення абстрагування рахунку
абстрагування рахунку (AA)主要包含两个关键点:
Абстрагування підпису: користувач може вільно вибирати механізм перевірки, більше не обмежуючись конкретними алгоритмами цифрового підпису (такими як ECDSA).
Абстрагування платежів: користувачі можуть використовувати різні варіанти оплати для транзакцій, такі як використання активів ERC-20 замість рідних активів для оплати або фінансування транзакцій третіми сторонами.
Ця гнучкість значно підвищує безпеку та користувацький досвід. Абстрагування рахунку має на меті досягнення цих двох основних цілей кількома способами.
2. Аналіз ERC-4337
Наразі в протоколі Ethereum існують деякі обмеження зовнішніх власників акаунтів (EOA), такі як фіксований метод підпису та дизайн платежів. ERC-4337 вирішує ці проблеми, впроваджуючи більш гнучке управління акаунтами та обробку транзакцій.
структура userOp: у ERC-4337 користувач надсилає структуру userOp до Bundler. Bundler збирає кілька userOp і надсилає їх до контракту EntryPoint, викликавши функцію handleOps.
Контракт EntryPoint: цей контракт подібний до операційної системи, основні функції обробки транзакцій включають:
Викликати функцію validate в контракті акаунта, щоб переконатися, що userOp отримав авторизацію власника акаунта.
Стягнення зборів.
Викликати функцію execute у контракті акаунту для виконання цільової операції userOp.
3. Вступ до нативного абстрагування рахунку
У Ethereum акаунти поділяються на EOA та контракти. А в рідному абстрагуванні рахунку кожен акаунт є контрактом, і механізм обробки транзакцій безпосередньо інтегровано в протокол блокчейну.
Дотримуйтесь абстрагування рахунку ERC-4337: StarkNet та zkSync Era
Нативне абстрагування рахунку з дизайном конфіденційності: Aztec
Відмінності між ERC-4337 та рідною абстракцією рахунку
1. Роль операційної системи
AA OS потрібно вирішити такі проблеми:
Хто вирішує ціну Gas?
Хто вирішує порядок угод? Де знаходиться пам'ять?
Хто викликав функцію точки входу?
Що визначає процес обробки транзакцій?
У ERC-4337 ці ролі виконуються спільно через Bundler та EntryPoint Contract.
У нативному AA користувачі надсилають свої userOps до оператора/сортувальника офіційного сервера, а не до Bundler та EntryPoint Contract.
У StarkNet Sequencer відповідає за виконання всіх цих завдань.
Основна різниця між zkSync Era та іншими реалізаціями AA полягає в тому, що Оператору необхідно працювати разом з bootloader (системним контрактом). Bootloader відкриває нові блоки, визначає їх параметри (включаючи параметри блоку та інші параметри Gas) і отримує транзакції від Оператора для верифікації.
2. Інтерфейс контракту
Через існування трьох кроків, інтерфейс контракту акаунту є схожим у різних реалізаціях, ці точки входу функцій можуть бути викликані тільки AA OS:
ERC-4337: перевірка дій користувача
zkSync: перевірка транзакцій, платіж за транзакцією, виконання транзакції
У ERC-4337 та рідній AA функція точки входу на етапі "перевірки" є фіксованою, тоді як на етапі "виконання" тільки точка входу в рідній AA є фіксованою.
3. Обмеження етапів перевірки
Оскільки перевірка транзакцій не має обмежень за витратами, зловмисники можуть здійснити DoS-атаку на пам'ятковий пул, що вплине на бандлери (EIP-4337) або оператори/сортувальники (рідна AA).
EIP-4337 визначає заборонені операційні коди та як обмежити доступ до зберігання. zkSync Era послаблює використання деяких OpCode:
Логіка контракту може отримати доступ лише до свого власного сховища. Якщо адреса контракту акаунту є адресою A, він може отримати доступ до:
сховище, що належить адресі A
сховище, що належить будь-якій іншій адресі A
Належить будь-якому іншому адресному сховищу keccak256(A || X): це означає пряме використання адреси як ключа в мапінгу, що еквівалентно доступу до сховища keccak256(A || X). Наприклад, баланс активів у контракті ERC-20.
Логіка контракту не може отримати доступ до глобальних змінних, таких як номер блоку. StarkNet також не дозволяє виклики зовнішніх контрактів.
4. Обмеження виконання кроків
У zkSync виконання системних викликів вимагає підтвердження наявності системного прапора. Наприклад, єдиний спосіб збільшити nonce – це взаємодія з NonceHolder, тоді як розгортання контракту вимагає взаємодії з ContractDeployer. Системні прапори забезпечують свідоме взаємодію розробників акаунтів з системними контрактами.
У етапі виконання в ERC-4337 та StarkNet немає спеціальних обмежень.
5. Випадкове число
У ERC-4337 дизайн випадкового числа точки входу розрізняє 192-бітове значення ключа та 64-бітове випадкове значення.
У zkSync контракт системи NonceHolder керує nonce, забезпечуючи суворе збільшення, тобто збільшуючи випадкове число на 1.
У StarkNet nonce також суворо зростає, але немає абстрактного nonce, керованого певним контрактом.
6. Використовуйте першу транзакцію для розгортання
ERC-4337 містить поле initcode у структурі userOp для розгортання відправника (акаунт контракту) у своєму першому userOp.
У StarkNet та zkSync користувачі повинні надіслати першу транзакцію оператору/сортеру для розгортання контракту рахунку.
7. спеціальний дизайн у zkSync
Якщо безпосередньо перевести ETH з EOA Ethereum на zkSync, не потрібно розгортати спеціальний контракт рахунку, ви отримаєте стандартний акаунт з тією ж адресою. Цей акаунт може працювати так само, як EOA Ethereum, і контролюється відповідним приватним ключем EOA Ethereum.
Цей тип акаунту є версією None, а не version1. Ви не можете викликати функції DefaultAccount, оскільки в ядерному просторі не розгорнуто жодного коду.
Різниця між 4337 L1 та 4337 L2
Існує дві ключові відмінності впровадження ERC-4337 на EVM-сумісних ланцюгах: відмінності в протоколі та відмінності в акаунті.
1. Різниця в протоколах
У дизайні Rollup L2 потрібно завантажити дані на L1 для безпеки та розрахунків. У контексті ERC-4337 витрати, пов'язані з цим процесом завантаження, такі як плата за безпеку L1 та плата за blob, повинні бути включені в попередньо перевірений Gas. Визначення відповідних витрат на завантаження в попередньо перевіреному Gas є значним викликом.
2. Різниця адрес
У функції create zkSync ERA спосіб кодування адрес відрізняється від Ethereum та OP-агрегатів. Крім того, StarkNet використовує унікальну хеш-функцію для обчислення адрес. У контексті ERC-4337 на EVM-сумісних ланцюгах ми зазвичай припускаємо, що обчислення адрес однакове на всіх ланцюгах. Однак є одна деталь, яка може бути важкою для помітки і може призвести до різниці в адресах контрактів акаунтів між реалізаціями ERC-4337 в Ethereum та L2.
Ключове питання полягає в додаванні нових операційних кодів у жорсткому форка. Наприклад, якщо L2-ланцюг не підтримує жорсткий форк Шанхаю, і версія EVM не вказана під час компіляції, впровадження push0 призведе до зміни байт-коду, навіть якщо код Solidity буде однаковим.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
7 лайків
Нагородити
7
4
Поділіться
Прокоментувати
0/400
SigmaValidator
· 16год тому
абстрагування рахунку ця справа теж для розваги
Переглянути оригіналвідповісти на0
NeverPresent
· 16год тому
Чи така класна абстракція платежів?
Переглянути оригіналвідповісти на0
GateUser-beba108d
· 16год тому
Немає жодної користі, тільки балачки.
Переглянути оригіналвідповісти на0
StableNomad
· 16год тому
мех, ще одна розмова про AA... якщо чесно, нагадує мені про "безпеку" Celsius
Багатоланкове абстрагування рахунку: різниця та виклики ERC-4337 та рідного AA
Розбір абстрагування рахунків в умовах багатоланцюгової системи: обговорення майбутнього шифрувальної інфраструктури
З 8 по 11 липня 2024 року в Брюсселі, Бельгія, відбудеться найбільша європейська щорічна подія по ефірі – Конференція спільноти Ethereum (EthCC), яка зосередиться на технологічному та суспільному розвитку.
Ця конференція Ethereum Community Conference (EthCC 7) запросила понад 350 лідерів думок з першої лінії індустрії шифрування виступити з доповідями. Розробник imToken Labs Альфред був запрошений взяти участь і виступив з доповіддю на тему "Відкриття майбутнього: аналіз абстрагування рахунку на базі кількох ланцюгів".
Огляд основних моментів виступу
Два основних елементи абстрагування рахунку (AA): абстракція підпису та абстракція платежу. Абстракція підпису дозволяє користувачам обирати будь-який механізм верифікації, в той час як абстракція платежу пропонує різноманітні варіанти оплати транзакцій, що разом підвищує безпеку та користувацький досвід.
Функції точок входу на етапі "перевірки" для ERC-4337 та рідного AA є фіксованими, але на етапі "виконання" лише рідний AA має фіксовану точку входу. Різні способи реалізації мають свої особливості в обмеженнях на перевірку транзакцій та етапах виконання транзакцій.
При реалізації ERC-4337 на EVM-сумісних ланцюгах існує два основні ключові відмінності: відмінності в протоколах дизайну Rollup та відмінності в способах обчислення адрес. Ці відмінності призводять до появи деяких легко ігнорованих деталей розробки під час реалізації ERC-4337 між L1 та L2.
Абстрагування рахунку: Вступ
1. Визначення абстрагування рахунку
абстрагування рахунку (AA)主要包含两个关键点:
Ця гнучкість значно підвищує безпеку та користувацький досвід. Абстрагування рахунку має на меті досягнення цих двох основних цілей кількома способами.
2. Аналіз ERC-4337
Наразі в протоколі Ethereum існують деякі обмеження зовнішніх власників акаунтів (EOA), такі як фіксований метод підпису та дизайн платежів. ERC-4337 вирішує ці проблеми, впроваджуючи більш гнучке управління акаунтами та обробку транзакцій.
3. Вступ до нативного абстрагування рахунку
У Ethereum акаунти поділяються на EOA та контракти. А в рідному абстрагуванні рахунку кожен акаунт є контрактом, і механізм обробки транзакцій безпосередньо інтегровано в протокол блокчейну.
Дизайн AA в різних мережах блокчейн:
Відмінності між ERC-4337 та рідною абстракцією рахунку
1. Роль операційної системи
AA OS потрібно вирішити такі проблеми:
У ERC-4337 ці ролі виконуються спільно через Bundler та EntryPoint Contract.
У нативному AA користувачі надсилають свої userOps до оператора/сортувальника офіційного сервера, а не до Bundler та EntryPoint Contract.
У StarkNet Sequencer відповідає за виконання всіх цих завдань.
Основна різниця між zkSync Era та іншими реалізаціями AA полягає в тому, що Оператору необхідно працювати разом з bootloader (системним контрактом). Bootloader відкриває нові блоки, визначає їх параметри (включаючи параметри блоку та інші параметри Gas) і отримує транзакції від Оператора для верифікації.
2. Інтерфейс контракту
Через існування трьох кроків, інтерфейс контракту акаунту є схожим у різних реалізаціях, ці точки входу функцій можуть бути викликані тільки AA OS:
У ERC-4337 та рідній AA функція точки входу на етапі "перевірки" є фіксованою, тоді як на етапі "виконання" тільки точка входу в рідній AA є фіксованою.
3. Обмеження етапів перевірки
Оскільки перевірка транзакцій не має обмежень за витратами, зловмисники можуть здійснити DoS-атаку на пам'ятковий пул, що вплине на бандлери (EIP-4337) або оператори/сортувальники (рідна AA).
EIP-4337 визначає заборонені операційні коди та як обмежити доступ до зберігання. zkSync Era послаблює використання деяких OpCode:
4. Обмеження виконання кроків
У zkSync виконання системних викликів вимагає підтвердження наявності системного прапора. Наприклад, єдиний спосіб збільшити nonce – це взаємодія з NonceHolder, тоді як розгортання контракту вимагає взаємодії з ContractDeployer. Системні прапори забезпечують свідоме взаємодію розробників акаунтів з системними контрактами.
У етапі виконання в ERC-4337 та StarkNet немає спеціальних обмежень.
5. Випадкове число
6. Використовуйте першу транзакцію для розгортання
7. спеціальний дизайн у zkSync
Якщо безпосередньо перевести ETH з EOA Ethereum на zkSync, не потрібно розгортати спеціальний контракт рахунку, ви отримаєте стандартний акаунт з тією ж адресою. Цей акаунт може працювати так само, як EOA Ethereum, і контролюється відповідним приватним ключем EOA Ethereum.
Цей тип акаунту є версією None, а не version1. Ви не можете викликати функції DefaultAccount, оскільки в ядерному просторі не розгорнуто жодного коду.
Різниця між 4337 L1 та 4337 L2
Існує дві ключові відмінності впровадження ERC-4337 на EVM-сумісних ланцюгах: відмінності в протоколі та відмінності в акаунті.
1. Різниця в протоколах
У дизайні Rollup L2 потрібно завантажити дані на L1 для безпеки та розрахунків. У контексті ERC-4337 витрати, пов'язані з цим процесом завантаження, такі як плата за безпеку L1 та плата за blob, повинні бути включені в попередньо перевірений Gas. Визначення відповідних витрат на завантаження в попередньо перевіреному Gas є значним викликом.
2. Різниця адрес
У функції create zkSync ERA спосіб кодування адрес відрізняється від Ethereum та OP-агрегатів. Крім того, StarkNet використовує унікальну хеш-функцію для обчислення адрес. У контексті ERC-4337 на EVM-сумісних ланцюгах ми зазвичай припускаємо, що обчислення адрес однакове на всіх ланцюгах. Однак є одна деталь, яка може бути важкою для помітки і може призвести до різниці в адресах контрактів акаунтів між реалізаціями ERC-4337 в Ethereum та L2.
Ключове питання полягає в додаванні нових операційних кодів у жорсткому форка. Наприклад, якщо L2-ланцюг не підтримує жорсткий форк Шанхаю, і версія EVM не вказана під час компіляції, впровадження push0 призведе до зміни байт-коду, навіть якщо код Solidity буде однаковим.