Абстрагирование аккаунта
Пользователи взаимодействуют с Ethereum, используя . Это единственный способ отправить транзакцию или выполнить умный контракт. Эта система ограничивает пользователей в способах взаимодействия с Ethereum. Например, из-за нее становится сложным создавать партии транзакций, а также появляется необходимость всегда держать на аккаунте ETH для оплаты газа.
Абстрагирование аккаунта — один из способов решить эту проблему, дав пользователям возможность программировать свои кошельки для улучшения безопасности и упрощения процесса пользования кошельком. Это можно реализовать, обновив внешние аккаунты(opens in a new tab) таким образом, чтобы их можно было контролировать умными контрактами, либо обновив умные контракты(opens in a new tab) так, чтобы они могли инициировать транзакции. Оба этих варианта требуют изменений в протоколе Ethereum. Также есть третий способ реализации путем добавления второй, отдельной системы транзакций(opens in a new tab), работающей параллельно существующему протоколу. Вне зависимости от выбранной реализации результатом будет доступ к Ethereum через кошельки умных контрактов, либо нативно поддерживаемые в существующем протоколе, либо добавленные через дополнительную сеть для транзакций.
Кошельки умных контрактов открывают пользователю множество возможностей, например:
- Определять собственные гибкие правила безопасности
- Восстанавливать аккаунт в случае потери ключей
- Разделить доступ к аккаунту между доверенными устройствами и лицами
- Расплачиваться за чей-либо газ либо давать другим платить за ваш
- Объединять транзакции в партии (например, одобрять и выполнять обмен за раз)
- Больше возможностей для децентрализованных приложений и разработчиков кошельков, чтобы развивать опыт взаимодействия пользователей
Все эти преимущества сейчас нативно не поддерживаются, так как только внешние аккаунты могут инициировать транзакции. EOA — это простые пары публичных и приватных ключей. Они работают следующим образом:
- Если у вас есть приватный ключ, вы можете делать что угодно в рамках правил виртуальной машины Ethereum (EVM).
- Если у вас нет приватного ключа, вы не можете делать ничего.
Если вы потеряете свои ключи, их нельзя будет восстановить, а украденные ключи дадут похитителю полный доступ ко всем вашим средствам на аккаунте.
Кошельки умных контрактов решают эти проблемы, но в данный момент их сложно программировать, так как в конечном счете любая логика, которую они реализуют, должна переводиться в набор набор транзакций EOA, которые могут обрабатываться в Ethereum. Абстрагирование аккаунта дает возможность умным контрактам инициировать транзакции самостоятельно, поэтому любая логика, которую пользователь захочет реализовать, сможет быть запрограммирована в самом кошельке умного контракта и выполнена в Ethereum.
В конечном счете абстрагирование аккаунта улучшает поддержку кошельков умных контрактов, упрощая их разработку и делая их использование безопаснее. В перспективе абстрагирование аккаунта позволит пользователям наслаждаться всеми преимуществами Ethereum без необходимости разбираться в технологиях, которые за ними стоят, и иметь с ними дело.
После кодовых фраз
В настоящий момент все аккаунты защищены приватными ключами, которые вычисляются на основе кодовых фраз. Любой человек, у которого есть доступ к кодовой фразе, может без проблем получить приватный ключ, которым защищен аккаунт, и доступ ко всем средствам, которые в нем хранятся. Если приватный ключ и кодовая фраза потеряны, их невозможно будет восстановить, и все средства, которые они контролируют, будут навечно заморожены. Надежно хранить эти кодовые фразы — непростая задача даже для экспертов, а их получение с помощью фишинга — один из самых распространенных способов сделать пользователей своей жертвой.
Абстрагирование аккаунта решает эту проблему путем использования умного контракта для хранения активов и авторизации транзакций. Эти умные контракты затем можно будет дополнить собственной логикой, чтобы сделать их настолько безопасными и удобными для пользователя, насколько это возможно. В конечном счете вы все равно используете приватные ключи для доступа к вашему аккаунту, но уже с мерами безопасности, которые делают распоряжение ими проще и надежнее.
Например, в кошелек можно будет добавить резервные ключи. Если вы потеряете или случайно раскроете свой основной ключ, его можно будет без труда заменить новым с разрешением от резервных ключей. Вы можете обезопасить каждый из этих ключей по-своему или разделить их между надежными хранителями. Это усложнит потенциальному вору получение полного контроля над вашими средствами. Аналогично вы можете добавить правила в кошелек, чтобы снизить негативное воздействие в случае взлома основного ключа. Например, вы можете разрешить подтверждение мелких транзакций одной подписью, а для подтверждения более крупных транзакций требовать несколько подписей. Существуют и другие способы противодействия мошенничеству с помощью кошельков смарт-контрактов. Например, белый список позволяет блокировать все транзакции, которые отправляются на неизвестные счета или не подтверждены несколькими предварительно одобренными ключами.
Примеры логики безопасности, которые могут быть встроены в кошелек умного контракта:
- Авторизация через мультиподпись. Вы можете разделить учетные данные для авторизации между несколькими доверенными лицами или устройствами. Затем контракт можно настроить так, чтобы транзакции сверх заданной суммы требовали авторизации от определенной доли доверенных сторон (например, 3/5). Например, транзакции на крупные суммы могут требовать разрешения с вашего телефона и аппаратного кошелька одновременно либо подписей от аккаунтов, распределенных среди надежных членов семьи.
- Заморозка аккаунтов. Если устройство потеряно или взломано, аккаунт можно заблокировать с другого авторизованного устройства, тем самым защитив средства пользователя.
- Восстановление аккаунтов. Потеряли устройство или забыли пароль? При нынешнем подходе это значит, что ваши средства теперь навечно заморожены. С помощью кошелька смарт-контракта вы можете настроить список аккаунтов, которые могут авторизовать новые устройства и сбрасывать доступ.
- Установите лимиты для транзакций. Укажите максимальную сумму, которую можно перевести со счета за день/неделю/месяц. Иными словами, если мошенник получит доступ к вашему аккаунту, он не сможет сразу украсть все средства, и у вас будет возможность заморозить и восстановить доступ.
- Создайте белые списки. Разрешите транзакции только на определенные адреса, в безопасности которых вы уверены. Это означает, что даже если ваш секретный ключ будет украден, злоумышленник сможет отправить средства только на счета из вашего списка. Для изменения этих белых списков требуется несколько подписей, поэтому злоумышленник не сможет добавить свой собственный адрес в список, если у него нет доступа к нескольким ключам восстановления.
Повышение удобства
Абстрагирование учетных записей позволяет улучшить пользовательский опыт в целом, а также укрепить безопасность, потому что оно добавляет поддержку кошельков смарт-контрактов на уровне протокола. Самая важная причина этого заключается в том, что она предоставит разработчикам умных контрактов, кошельков и приложений гораздо большую свободу для инноваций, касающихся пользовательского опыта, таким образом, который еще не в состоянии предвидеть. Некоторые очевидные улучшения, которые придут вместе с абстрагированием аккаунтов, включают группирование транзакций для скорости и эффективности. Например, простой обмен должен выполняться в один клик, но сегодня для этого требуется подписать несколько транзакций, чтобы одобрить использование отдельных токенов. Абстрагирование аккаунта устраняет такое трение, позволяя группировать транзакции. Кроме того, сгруппированные транзакции могут точно утверждать правильную стоимость токенов, необходимых для каждой транзакции, а затем отзывать разрешения после завершения транзакции, обеспечивая дополнительную безопасность.
Управление газом также значительно улучшается пи абстрагировании аккаунтов. Приложения могут предлагать оплату комиссий за газ своих пользователей, а сами комиссии можно оплачивать в токенах, отличных от ЕТН, что освобождает пользователей от необходимости поддерживать баланс ЕТН для финансирования сделок. Это будет работать путем обмена токенов пользователя на ЕТН внутри контракта, а затем использования ЕТН, чтобы заплатить за газ.
Доверенные сессии также потенциально преобразуют пользовательский опыт, особенно в таких приложениях, как игры, где большое количество небольших транзакций может потребовать одобрения в течение короткого времени. Индивидуальное одобрение каждой сделки разрушило бы игровой процесс, но постоянное одобрение небезопасно. Кошелек смарт-контракта может утверждать определенные операции на определенное время, до определенного значения или только на определенные адреса.
Также интересно рассмотреть, как могут измениться покупки при абстрагировании аккаунтов. Сегодня каждая транзакция должна быть одобрена и выполнена из кошелька, предварительно профинансированного достаточным количеством правильного токена. С абстрагированием аккаунтов ваш опыт может стать ближе к использованию знакомых интернет-магазинов, где пользователь может наполнить «корзину» с товарами и нажать один раз, чтобы купить все сразу, при этом вся логика обрабатывается контрактом, а не пользователем.
Это лишь несколько примеров того, как абстрагирование аккаунтов может улучшить опыт пользователей, но появится еще много такого, чего мы пока не представляем. Абстрагирование аккаунтов освобождает разработчиков от ограничений современных EOA, позволяет им переносить хорошие аспекты web2 в web3 без ущерба для собственной безопасности и творчески подходить к формированию новых впечатлений у пользователей.
Как будет внедряться абстрагирование аккаунтов?
Кошельки смарт-контрактов существуют сегодня, но их трудно реализовать, потому что EVM не поддерживает их. Вместо этого они полагаются на свертывание относительно сложного кода вокруг стандартных транзакций Ethereum. Ethereum может изменить это, разрешив смарт-контрактам инициировать сделки, обрабатывать необходимую логику в смарт-контрактах Ethereum, а не вне цепи. Ввод логики в смарт-контракты также увеличивает децентрализацию Ethereum, так как она устраняет необходимость «ретрансляторов» под управлением разработчиков кошельков для перевода сообщений, подписанных пользователем на регулярные транзакции Ethereum.
Текущий прогресс
Кошельки смарт-контрактов уже доступны, но требуется больше обновлений, чтобы сделать их как можно более децентрализованными и избавленными от разрешений. EIP-4337 — это зрелое предложение, которое не требует никаких изменений в протоколе Ethereum, поэтому возможна его реализация в краткие сроки. Однако обновления, которые изменяют протокол Ethereum, в настоящее время не находятся в активной разработке, так что эти изменения могут занять гораздо больше времени. Также возможно, что абстрагирование аккаунтов достигается с помощью EIP-4337 достаточно хорошо, чтобы не требовать никаких изменений протокола.
Дополнительная литература
- erc4337.io(opens in a new tab)
- Панельное обсуждение абстрагирования аккаунтов от Devcon Bogota(opens in a new tab)
- «Почему абстрагирование аккаунтов несет радикальные перемены для децентрализованных приложений» от Devcon Bogota(opens in a new tab)
- «Абстрагирование аккаунтов — ELI5» от Devcon Bogota(opens in a new tab)
- Заметки Виталика «Дорога к абстрагированию аккаунтов»(opens in a new tab)
- Блог Виталика о кошельках для социального восстановления(opens in a new tab)
- Примечания к EIP-2938(opens in a new tab)
- Документация EIP-2938(opens in a new tab)
- Примечания к EIP-4337(opens in a new tab)
- Документация EIP-4337(opens in a new tab)
- Документация EIP-2771(opens in a new tab)
- «Основы абстрагирования аккаунтов» — что такое абстрагирование аккаунтов, часть 1(opens in a new tab)