Абстрагирование от абстракции учетной записи на Polkadot
3 мая 2023 г.Недавно у меня была фантастическая возможность поговорить об абстракции аккаунта в Твиттере, организованном IoTeX.
Взгляд на то, насколько захватывающим казался ERC-4337, был освежающим. Наконец-то мы переключились на решение проблем, которые реально мешают принятию как разработчиками, так и пользователями.
Ярким примером необходимости абстракции учетных записей, помимо расширения DX/UX, стала возможность теперь изменять определенные аспекты учетных записей без изменения уровня консенсуса или протокола.
Тем не менее, будучи единственным спикером, не связанным с EVM, и знакомым с бесфорковыми обновлениями Polkadot, это было довольно любопытное событие.
Будучи техническим преподавателем в Web3 Foundation и человеком, который изрядно играет с Substrate, Polkadot не только не сталкивался с большинством этих проблем — его основная архитектура полностью избегала их.
Абстракция учетной записи полезна для Ethereum, так как она обеспечивает меньший риск для безопасности и большую полезность учетных записей, но это также привело меня к вопросу:
Есть ли в Polkadot абстракция аккаунта?
Абстракция аккаунта & ERC-4337
Прежде чем углубиться в тонкости Polkadot и Substrate, уточните, что именно является абстракцией аккаунта?
Криптографические ключи представляют собой учетные записи в блокчейнах. В Ethereum вы можете услышать, что их называют «EOA» (аккаунты, принадлежащие внешним владельцам). На Polkadot их чаще всего называют просто «Аккаунты».
В любом случае они представляют одно и то же — пару криптографических ключей, используемую для утверждения сетевых транзакций.
Именно в этих ключах и проблема, и красота web3.
С одной стороны, он позволяет пользователям брать на себя ответственность за свои действия и имеет полный контроль с помощью криптографических подписей, которые проверяют изменения состояния. С другой стороны, если этот ключ утерян, то исчезнет и вся цифровая основа для того, чтобы делать что-либо значимое.
Идентификация, кошелек и цифровое присутствие, представленные одним ключом вне сети, являются одновременно вектором атаки и ключом к цифровой свободе.
Со временем стало известно, что с ними трудно работать и хранить их в безопасности, особенно для обычного пользователя. Это один из многих факторов сдерживания или путаницы для усыновления.
Разработчики включены в эту скобку. По сравнению с традиционным приложением «web2» то, как разработчик должен думать при разработке приложения web3, меняется с точки зрения безопасности.
Они должны предполагать худшее и убедиться, что пользователь не может аутентифицировать себя, выполнять действия и гарантировать, что его ключи не будут скомпрометированы.
Если на вашей платформе есть необратимые смарт-контракты, следует проявлять особую осторожность, прежде чем разрешить закрытым ключам подписывать потенциально конфиденциальные действия.
Абстракция учетной записи спасает положение, предоставляя слой логики в цепочке в форме смарт-контракта (в случае Ethereum) для управления учетной записью.
Это отчасти избавляет от важности управления одним мастер-ключом и снижает сложность использования и вероятность его компрометации.
Например, он может изменить алгоритм подписи, сделав его квантово-устойчивым, предоставить собственную логику для того, что можно и что нельзя выполнять с этой учетной записью, и т. д.
Он обеспечивает еще один уровень ненавязчивого динамизма для сетей, в которых обновление с помощью ответвления является трудоемким процессом, скажем, для изменения основной части консенсуса.
Но когда используется термин «Абстракция», что именно под ним подразумевается?
Истинное значение слова «абстракция»
Абстракция в этом контексте относится к идее отделения взаимодействия с пользователем от закрытого ключа. Вместо того, чтобы ключ имел 100% власть над каждым действием, фрагмент кода может точно указать, как должна действовать учетная запись.
Другими словами, он может управлять ключом на условиях, предоставленных пользователем.
В Ethereum это делается путем создания смарт-контракта, который эффективно позволяет EOA действовать как смарт-контракт. Этот смарт-контракт действует как сетевой арбитр, который можно запрограммировать, чтобы позволить восстановить учетную запись, изменить способ подписания транзакций и многое другое.
Эти изменения можно внести без изменения основного протокола, что потребовало бы сложного форка.
В Polkadot смысл «абстракции» немного отличается. По своей природе и основному дизайну Polkadot имеет невероятно общую (иногда называемую абстрактной) кодовую базу, построенную на Substrate и Rust.
Эта общая кодовая база позволяет определять учетные записи как все, что протокол считает действительным.
Точно так же примитивы, такие как криптографические подписи, также могут быть изменены при необходимости, часто всего в одной или двух строках кода.
Помните, что Polkadot не является цепочкой общего назначения — она служит ретрансляционной цепочкой для подключения к другим цепочкам, называемым парачейнами. Эта архитектура позволяет парачейнам обеспечивать функциональную совместимость и общую безопасность, повышая масштабируемость с каждой добавленной цепочкой.
И парачейны, и Polkadot построены с использованием Substrate. Некоторые примитивы и типы намеренно оставлены расплывчатыми, что позволяет разработчикам точно выбирать, как учетные записи, среди прочего, должны вести себя и выглядеть.
Существует ли абстракция учетной записи в Polkadot?
Большинство концепций ERC-4337 встроены в Polkadot в виде различных поддонов. Поддоны составляют среду выполнения, основную часть бизнес-логики цепочки на основе субстрата.
Например, среда выполнения в Substrate может быть обновлена для включения новых типов подписей, схем или методов создания блоков. Среда выполнения представляет собой функцию перехода состояния конкретной цепочки или сегмента в сети.
Однако большая часть того, что делает учетную запись полезной, — это ее способность добавлять новые и улучшенные функции учетной записи.
Хотя не существует ни одной палитры, обеспечивающей сквозную абстракцию учетной записи, несколько паллет обеспечивают одинаковую функциональность. Их можно использовать для создания общих вариантов использования для абстрагирования аккаунта от его закрытого ключа.
Прокси-аккаунты позволяют представлять учетную запись на основе ролей, например, в качестве прокси-аккаунта для управления или ставок. Эти учетные записи являются основным способом абстрагирования от первичного ключа пользователя и резервируют их для определенных ролей в сети.
Палитра восстановления также имеет социальный тип восстановления «M-из-N» в случае потери учетной записи, когда доступ к учетной записи может быть восстановлен с помощью выбранных доверенных лиц. Такие функции, как группирование, можно выполнять с помощью палитры служебных.
Также возможно разработать палитру, которая делает все это в одном контексте и позволяет пользователям определять свои собственные правила того, как они хотят предоставить абстракцию для своих учетных записей.
Однако, используя существующие палитры, можно создать механизмы абстрагирования учетных записей, которые защищают учетные записи и добавляют логику поверх учетных записей.
Даже недавно InvArch, многообещающий (скоро будет) парачейн на Polkadot, предоставил что-то, что выходит за рамки типичной абстракции аккаунта через многоцепочный механизм с несколькими подписями под названием Saturn, выполненный с использованием схемы пороговой подписи (TSS) и XCM, формат перекрестного консенсуса Polkadot.
Опять же, подобные приложения возможны, потому что многие вещи в Polkadot (включая XCM) сделаны общими и абстрактными.
Заключение
Будущее масштабирования технологий web3 — за универсальным дизайном. С течением времени пространство начинает играть все более важную роль в создании действительно открытой инфраструктуры для развития. Тем временем эти абстракции проникают в пользовательские приложения и интерфейсы.
Решением для внедрения будет не маркетинговый блокчейн или даже web3; скорее, это доступность услуг, которые улучшают пользовательский опыт и безопасность и удовлетворяют потребности. Такие концепции, как абстракция учетных записей в Ethereum и Polkadot, — лишь малая часть того, как это сделать.
Оригинал