Автор оригинала: Виза, Эндрю Бимс, Кэтрин Гу

Оригинальный сборник: PANews, Иордания.

Поскольку внедрение блокчейна продолжает расти, растет и потребность в превосходном пользовательском опыте и продуктах, поддерживающих реальные сценарии использования. Visa уже предоставляет клиентам (особенно молодым клиентам) удобные автоматические отчисления и регулярные автоматические платежи, но реализовать эту функцию на блокчейне, таком как Ethereum, пока кажется сложно. Ethereum — это сеть блокчейнов с самым большим объемом платежей, и для некоторых типов сетевых цифровых кошельков регулярное автоматическое снятие платежей со счетов пользователей по-прежнему является «большим проектом».

В связи с этим Visa предложила концепцию абстракции учетной записи (AccountAbstraction) и использовала ее для изучения того, как использовать смарт-контракты для реализации автоматических программируемых платежей, а также для демонстрации того, как писать смарт-контракты для автономных кошельков, поддерживающих автоматический вывод средств. .

Сценарии использования

Рассмотрим сценарий: предположим, что сегодня 25 февраля, и Алиса собирается в отпуск в Альпы. Она вернется 10 марта, но ей необходимо оплатить ипотеку, счета за кабельное телевидение и коммунальные услуги до 5-го числа каждого месяца. в том, что у нее нет достаточно денег, чтобы заплатить перед отпуском, но у нее будет достаточно денег, когда она получит зарплату 1 марта. Теперь возникает вопрос: как Алиса сможет насладиться отпуском, не задерживая выплаты?

Да, ответ – автоматический вычет. Фактически, если у Алисы есть банковский счет, автоматическое списание средств — это очень простой процесс. Ей нужно только связать свой дебетовый счет с картой Visa. Однако в блокчейне выполнить такую ​​операцию не так просто. Однако, поскольку это новая технология, стоит изучить решения смарт-контрактов блокчейна для вышеуказанных сценариев.

Прежде чем перейти к делу, давайте сначала поймем концепцию учетной записи Ethereum. В настоящее время в сети Ethereum существует два типа учетных записей:

1. Внешние учетные записи, часто называемые «учетными записями пользователей».

2. Контрактные счета (ContractAccounts), часто называемые «умными контрактами».

Учетные записи пользователей, контролируемые закрытыми ключами, могут отправлять транзакции, а для выполнения смарт-контрактов требуется связанный код, но смарт-контракты не могут «инициировать транзакции сами», поскольку транзакции всегда должны исходить из учетной записи пользователя и быть подписаны пользователем. К этим транзакциям относятся: Зона Ethereum. Простая передача токенов между учетными записями пользователей в блокчейне может запустить серию более сложных транзакций, которые выполняют множество различных действий посредством смарт-контрактов.

Итак, как реализовать автоматические платежи в блокчейне Ethereum?

Давайте рассмотрим ситуацию Алисы.

Предположим, что у Алисы есть учетная запись пользователя в блокчейне Ethereum, она вносит на нее свою зарплату и использует ее для оплаты ипотеки, счетов за кабельное телевидение и коммунальных услуг. Сегодня, чтобы оплатить ее счет, необходимо инициировать транзакцию по переводу токенов с ее «внешней учетной записи» на учетную запись пользователя получателя платежа.

Чтобы уточнить, «внешняя учетная запись» Алисы имеет ключ/закрытый ключ, который знает только она, и только она может использовать этот закрытый ключ для генерации подписи алгоритма цифровой подписи на основе эллиптической кривой (ECDSA), которая действительна для создания транзакций, которые имеют решающее значение. Однако, если Алиса уйдет в отпуск, кто сгенерирует эту подпись и создаст транзакцию оплаты комиссии?

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

А что, если Алиса не захочет использовать депозитный кошелек, потому что она беспокоится о риске, а вместо этого использует депозитный кошелек и планирует автоматические платежи? Далее введем еще одно понятие — Абстракция учетной записи (AccountAbstraction).

Что такое абстракция аккаунта?

Абстракция учетной записи — это предложение, которое пытается объединить учетные записи пользователей и смарт-контракты в новый тип учетной записи Ethereum, заставляя учетные записи пользователей вести себя как смарт-контракты. В будущем абстракция учетных записей позволит нам разработать простое решение для автоматических платежей и иметь большую гибкость при проверке транзакций в цепочке, таких как:

1. Учетные записи с несколькими владельцами можно включить посредством проверки нескольких подписей.

2. Разрешить использование постквантовых подписей для проверки транзакций.

3. Разрешить так называемый публичный аккаунт, где каждый сможет проводить транзакции, полностью исключив проверку подписи.

По сути, абстракция учетной записи позволяет программируемой достоверности проверять и подтверждать любую транзакцию блокчейна. Транзакции, основанные на протоколе Ethereum, не обязательно должны полностью основываться на жестко запрограммированных условиях достоверности, но некоторые условия могут быть записаны «индивидуально». в смарт-контракт аккаунта.

Более того, абстракция учетной записи поддерживает автоматические платежи, поскольку можно настроить правила проверки, которые больше не включают проверку подписи. Давайте посмотрим, как это сделать.

Делегируемые учетные записи — использование абстракции учетной записи для реализации функций автоматических платежей в цепочке Ethereum.

Решение для автоматизированных платежей Visa на Ethereum заключается в использовании абстракции учетной записи и создании нового типа контракта учетной записи — делегированной учетной записи. Основная идея состоит в том, чтобы расширить программируемые правила действительности транзакций, включив в них предварительно утвержденные списки разрешений. Проще говоря, абстракция учетной записи может делегировать операции автоматических платежей, инициированные учетными записями пользователей, предварительно утвержденным смарт-контрактам автоматических платежей.

Во-первых, торговцам необходимо внедрить смарт-контракты автоматических платежей. Когда пользователь с делегированной учетной записью посещает веб-сайт продавца, он увидит запрос на одобрение автоматического платежа — аналогично тому, что Visa принимает для счетов. В это время пользователь может видеть, что договор автоматических платежей будет выполнять операции от имени пользователя, а параметры могут быть установлены в соответствии с потребностями пользователя, например, с пользователя может взиматься плата только один раз в месяц, и плата не может быть установлена. превышать установленную максимальную сумму и т. д. Самое приятное то, что поскольку это смарт-контракт, пользователи могут быть уверены, что в противном случае договор автоматических платежей не будет исполнен.

Если пользователь соглашается утвердить автоматические платежи, кошелек добавит адрес контракта автоматических платежей в список разрешенных контрактов для делегируемой учетной записи пользователя.

Затем продавец инициирует платеж, вызывая функцию оплаты контракта автоматического платежа. Контракт на автоматический платеж приведет к тому, что учетная запись пользователя инициирует транзакцию принудительного платежа. Эта транзакция будет действительной, поскольку она была заранее добавлена ​​в список разрешенных.

Помимо регулярных платежей, это решение также может использоваться в различных реальных приложениях. В будущем решение для доверенных учетных записей Visa может даже быть расширено до таких услуг, как восстановление сторонних учетных записей.

Реализация абстракции учетной записи в StarkNet

Поскольку Ethereum еще не поддерживает абстракцию учетных записей, Visa реализовала решение с делегированными учетными записями в StarkNet, блокчейне уровня 2, построенном поверх блокчейна Ethereum для увеличения пропускной способности транзакций, а также других функций для улучшения возможностей базового уровня расчетов Blockchain, разработанного криптостартап StarkWare. Модель учетной записи StarkNet — это то, что Visa в настоящее время называет абстракцией учетной записи. Абстрактная учетная запись проверяет, исходит ли транзакция с определенного адреса.

Для конкретных учетных записей, если кто-то отправляет токен в учетную запись пользователя, происходит взаимодействие с контрактом токена, и контракт токена проверяет, записано ли удостоверение (ключ), использованное для подписи транзакции для этой передачи, как текущий владелец токена. Для абстрактных учетных записей, если кто-то отправляет токен на вашу учетную запись, вы также будете взаимодействовать с контрактом токена, который проверит, записано ли лицо (контракт), использованное для этой передачи, как текущий владелец токена. Для абстрактных учетных записей важно то, кто (адрес) выполняет транзакцию, а не то, как (подпись) выполняется транзакция.

Используя модель учетной записи StarkNet, Visa может реализовать решение делегированной учетной записи, которое обеспечивает автоматические платежи для самостоятельных кошельков.

в заключение

Являясь одной из крупнейших платежных сетей в мире, Visa активно изучает инновационные решения для смарт-контрактов для продвижения программируемой валюты и платежей.

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