Багатоланкове абстрагування рахунку: дослідження майбутнього шифрувальної інфраструктури
З 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.
Ось повний текст виступу:
Всім привіт, сьогодні я познайомлю вас з концепціями 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.
Контракт EntryPoint: цей контракт обробляє транзакції так само, як операційна система, основні функції включають:
Викликайте функцію validate в контракті акаунту, щоб забезпечити авторизацію userOp власником акаунту.
Стягнення зборів.
Викликати функцію execute в контракті акаунту, щоб виконати цільову операцію userOp.
3. Що таке рідне абстрагування рахунку
У Ethereum акаунти поділяються на EOA та контрактні акаунти. Однак у рідному абстрагуванні рахунку, кожен акаунт є контрактом, і механізм обробки транзакцій безпосередньо вбудований у протокол блокчейну.
Природне абстрагування рахунку з дизайном конфіденційності: Aztec
Якщо вас цікавлять Aztec Native AA або EIP-3074, EIP-7702, сьогодні ми зосередимось на нативному AA після ERC-4337.
Різниця між ERC-4337 та рідним абстрагуванням рахунку
1. Роль операційної системи
AA OS потребує відповісти на наступні питання:
Хто вирішує ціну Gas?
Хто визначає порядок угод? Де знаходиться пам'ятковий пул?
Хто викликав функцію точки входу?
Що визначає процес обробки транзакцій?
У ERC-4337 ці ролі виконуються спільно через Bundler та EntryPoint Contract.
У нативному AA користувачі надсилають свої userOps до оператора/сортировщика офіційного сервера, а не до Bundler і EntryPoint Contract.
У StarkNet Sequencer відповідає за виконання всіх цих завдань.
У zkSync, основна відмінність Era від інших реалізацій AA полягає в тому, що Operator повинен працювати разом з системним контрактом bootloader(. Bootloader відкриває новий блок, визначає його параметри), включаючи параметри блоку та інші Gas параметри(, і отримує транзакції від Operator для верифікації.
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(: це означає, що безпосередньо використовується адреса як ключ у відображенні ), наприклад, відображення (address => value(), що відповідає доступу до сховища 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 у структурі userOp містить поле initcode для розгортання контракту акаунту відправника ) у його першому userOp (.
У StarkNet та zkSync користувачі повинні надіслати першу транзакцію оператору/сортувальнику для розгортання контракту акаунта.
7. Спеціальний дизайн у zkSync
Якщо ви безпосередньо переведете ETH з EOA Ethereum на zkSync, не потрібно розгортати користувацький контракт рахунку, ви отримаєте стандартний акаунт з такою ж адресою. Цей акаунт може працювати так само, як EOA Ethereum, і також контролюється відповідним приватним ключем EOA Ethereum.
Цей тип акаунту є версією None, а не version1. Ви не можете викликати функції DefaultAccount, оскільки у ядерному просторі не розгорнуто жодного коду.
![Шифрування інфраструктури майбутнього? Аналіз абстрагування рахунку в багатоланцюгах])https://img-cdn.gateio.im/webp-social/moments-52ccc7ebff94f6c548dd55bc61aad309.webp(
) Різниця між 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 залишається тим самим.
Заключення
Вищезазначене є деякою інформацією про абстрагування рахунку. Якщо у вас є будь-які запитання, ви можете знайти мене в Twitter.
![Шифрування інфраструктури майбутнього? Аналіз абстрагування рахунку на основі мульти-ланцюга]###https://img-cdn.gateio.im/webp-social/moments-180475deec41c605ac65be9b2b494048.webp(
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.
12 лайків
Нагородити
12
7
Поділіться
Прокоментувати
0/400
BearMarketBard
· 07-10 04:37
Відчуваю, що абстрагування рахунку ще не зрозуміле.
Переглянути оригіналвідповісти на0
GateUser-a606bf0c
· 07-10 04:30
Продовження життя розпочато AA
Переглянути оригіналвідповісти на0
MetaReckt
· 07-07 05:09
Розвивається так швидко, що вже з'явилася первісна AA.
Переглянути оригіналвідповісти на0
GateUser-0717ab66
· 07-07 05:07
Цю частину давно слід було зробити.
Переглянути оригіналвідповісти на0
LiquidatedNotStirred
· 07-07 05:04
AA стає все популярнішим, чекаю на зміни
Переглянути оригіналвідповісти на0
AirdropLicker
· 07-07 05:00
Коли випустять монету AA, що стала популярною?
Переглянути оригіналвідповісти на0
HallucinationGrower
· 07-07 04:41
Середній підпис абстрактного експерта Не закручуйте.
Порівняння багатоланцюгового абстрагування рахунку: відмінності між ERC-4337 та нативним AA, а також різниця в реалізації L1/L2
Багатоланкове абстрагування рахунку: дослідження майбутнього шифрувальної інфраструктури
З 8 по 11 липня 2024 року в Брюсселі, Бельгія, відбудеться конференція Ethereum (EthCC), що є найбільшою щорічною подією Ethereum в Європі, зосередженою на технологіях та спільноті.
Ця конференція Ethereum Community Conference ( EthCC 7) зібрала понад 350 активних лідерів думок, які працюють на передовій блокчейн-індустрії, серед яких один із розробників блокчейну був запрошений взяти участь і виступив з доповіддю на тему "Розкриття майбутнього: аналіз абстрагування рахунку для багатоканальних мереж".
Огляд основних моментів виступу:
Ось повний текст виступу:
Всім привіт, сьогодні я познайомлю вас з концепціями ERC-4337 та Native AA, обговорю їх відмінності та зосереджуся на основних відмінностях стандарту 4337 для L1 та L2.
абстрагування рахунку
1. Що таке абстрагування рахунку
абстрагування рахунку(AA)主要包括两个关键点:签名抽象和支付抽象。
Ця гнучкість забезпечує більш безпечний і оптимальний досвід для користувачів. Метою абстрагування рахунку є досягнення цих двох ключових моментів різними способами.
2. Що таке ERC-4337
Наразі в Ethereum протоколі існують деякі обмеження для зовнішнього власника акаунту (EOA), такі як фіксований метод підпису та платіжний дизайн. ERC-4337 вирішує ці проблеми, впроваджуючи більш гнучке управління акаунтом і обробку транзакцій.
3. Що таке рідне абстрагування рахунку
У Ethereum акаунти поділяються на EOA та контрактні акаунти. Однак у рідному абстрагуванні рахунку, кожен акаунт є контрактом, і механізм обробки транзакцій безпосередньо вбудований у протокол блокчейну.
Дизайн AA в різних блокчейн-мережах:
Якщо вас цікавлять Aztec Native AA або EIP-3074, EIP-7702, сьогодні ми зосередимось на нативному AA після ERC-4337.
Різниця між ERC-4337 та рідним абстрагуванням рахунку
1. Роль операційної системи
AA OS потребує відповісти на наступні питання:
У ERC-4337 ці ролі виконуються спільно через Bundler та EntryPoint Contract.
У нативному AA користувачі надсилають свої userOps до оператора/сортировщика офіційного сервера, а не до Bundler і EntryPoint Contract.
У StarkNet Sequencer відповідає за виконання всіх цих завдань.
У zkSync, основна відмінність Era від інших реалізацій AA полягає в тому, що Operator повинен працювати разом з системним контрактом bootloader(. Bootloader відкриває новий блок, визначає його параметри), включаючи параметри блоку та інші Gas параметри(, і отримує транзакції від Operator для верифікації.
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, оскільки у ядерному просторі не розгорнуто жодного коду.
![Шифрування інфраструктури майбутнього? Аналіз абстрагування рахунку в багатоланцюгах])https://img-cdn.gateio.im/webp-social/moments-52ccc7ebff94f6c548dd55bc61aad309.webp(
) Різниця між 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 залишається тим самим.
Заключення
Вищезазначене є деякою інформацією про абстрагування рахунку. Якщо у вас є будь-які запитання, ви можете знайти мене в Twitter.
![Шифрування інфраструктури майбутнього? Аналіз абстрагування рахунку на основі мульти-ланцюга]###https://img-cdn.gateio.im/webp-social/moments-180475deec41c605ac65be9b2b494048.webp(