От приватных свопов к постоянным позициям

Теневые аккаунты расширяют запуск STRK20, о котором The Defiant писал в июне. На первом этапе в Starknet, решении второго уровня Ethereum, появились защищённые балансы токенов, приватные переводы и свопы. STRK20 представляет токены, внесённые в пул конфиденциальности, в виде зашифрованных записей, а приватные транзакции проверяются с помощью доказательств с нулевым разглашением.

Разница в том, что у позиции в DeFi появляется постоянный владелец. Существующий вариант с вспомогательным контрактом использует общий адрес, чтобы выполнить операцию и вернуть её средства в рамках одной транзакции. Теневой аккаунт, напротив, предоставляет протоколу стабильного псевдонимного отправителя вызовов, который может сохранять балансы и позиции между транзакциями, согласно руководству starknet.js.

Приложения отправляют обычные вызовы контрактов через `shadow_account_invoke`. Кошелёк управляет приватным состоянием, генерацией доказательств и отправкой транзакций; приложение не получает ключ просмотра пользователя. Сам теневой аккаунт не имеет ключей подписи, и им можно управлять только через контракт ShadowAccountAnonymizer.

Это не отменяет механизм раскрытия данных STRK20. В документации по ключу просмотра сказано, что аудитор, действующий в рамках законной процедуры, может получить зашифрованный ключ просмотра пользователя и расшифровать историю этого пользователя.

Поддержка кошельков по-прежнему важна

Разработчики могут использовать выпущенную версию starknet.js 10.8.0, в которую входит Wallet API 0.10.4, но им всё ещё нужен подключённый кошелёк, поддерживающий специальные методы для теневых аккаунтов. В руководстве по интеграции рекомендуется стабильная версия 10.8.0.

Согласно руководству starknet.js, Ready и Xverse поддерживают более широкий API кошельков STRK20, но в документации запуска не указано, какие версии поддерживают теневые аккаунты. В документации Wallet API разработчикам рекомендуется проверять возможности кошелька, прежде чем предлагать действие.