Visa создала сервис регулярных автоматических платежей для активов экосистемы Ethereum. Такие платежи – обычная практика для классической банковской системы, но для криптовалютной индустрии – совершенно новая опция.
Международная платежная система Visa вовремя поняла, что направление криптовалют и блокчейна – это новый тренд, который пришел всерьез и надолго, а значит, на нем нужно научиться зарабатывать, а не продолжать игнорировать. Поэтому Visa оперативно реформировала организационную структуру и создала подразделение, которое начало целенаправленно создавать и тестировать новые сервисы и продукты в сфере виртуальных валют и блокчейна.
В активе Visa несколько коллабораций по выпуску криптовалютных платежных карт: Binance Visa Card, The Crypto.com Visa Card и совсем недавно Huobi Visa Card. Партнерства с ведущими криптобиржами – это действительно удачный маркетинговый ход, являющийся подтверждением ориентации Visa на новые рынки и открытости этой МПС современным технологиям. Затем была попытка «поиграть» со стейблкоинами и протестировать, как работают платежи с автоматической конвертацией из крипты в фиат.
И теперь дошел черед до новых сервисов, которые Visa решила перенести из мира классического банкинга в криптовалютную индустрию.
Попытка воспроизвести услугу Standing Order и Direct Debit на блокчейне
Конечно, Visa начала с того, что попыталась воспроизвести старые добрые банковские услуги на блокчейне. Standing order — это постоянное поручение, регулярно повторяющееся в адрес одного и того же контрагента. Direct Debit — это регулярный платеж, безакцептно и автоматически списываемый с баланса, не требуя никакого подтверждения или электронной подписи у плательщика, кроме предоставления разрешения банку регулярно проводить такое списание. Именно этот формат платежей Visa решила создать и протестировать на блокчейне Ethereum.
В ходе реализации было решено проверить новую концепцию, являющуюся одним из предложений разработчиков Ethereum, известную как абстракция учетной записи, и исследовать, как смарт-контракты могут пригодиться для программирования регулярных платежей. В результате, с помощью специально написанного смарт-контракта, было создано решение, которое может автоматически и с определенной регулярностью списывать средства, а также отправлять платежи в криптовалюте с некастодиального кошелька.
Юзкейс
Visa предлагает рассмотреть такой гипотетический сценарий: сегодня 25 февраля. Алекс уезжает в отпуск в Альпы, а вернется 10 марта. Она должна ежемесячно до 5 числа оплачивать ипотеку, кабельное телевидение и коммунальные услуги. У нее сейчас не хватает денег, чтобы заплатить за это все перед отъездом (авиабилеты и стоимость тура были недешевыми), но их будет достаточно после того, как 1 марта поступит зарплата. Как Алекс насладиться горнолыжным отпуском, не упустив всех этих важных платежей?
Календарь платежей, которые накладываются на отпуск
Сложность «перевода»
При первой попытке реализовать такой сервис компанию Visa, к сожалению, постигла неудача. Многие могут сказать – ну и что, обычные регулярные платежи! Что же здесь сложного? Это же стандартная услуга, известная всем! И будут правы. Действительно, если бы Алекс имела банковский счет, это был бы простой процесс. Все, что ей нужно было бы сделать, это настроить регулярные платежи со своей карты Visa для того, чтобы автоматически оплачивать выставленные счета. Однако это оказалось совсем непросто реализовать на блокчейне. Чтобы понять, почему это так, давайте рассмотрим текущие возможности и ограничения блокчейна Ethereum. А начнем с определения терминологии, которая поможет нам лучше понять суть проблемы.
Аккаунты на Ethereum
Сегодня в сети Ethereum существует два типа учетных записей: внешние учетные записи (EOA), обычно называемые учетными записями пользователей, и контрактные учетные записи (CA), которые называются смарт-контрактами. Учетная запись пользователя, управляемая частным ключом, может отправлять транзакции. Смарт-контракт имеет связанный код, который можно выполнить, однако контракт не имеет возможности самостоятельно инициировать транзакции. Транзакции всегда должны производиться с учетной записи пользователя и подписываться его ключом. Под транзакцией мы понимаем как простую передачу криптоактивов между учетными записями пользователей в блокчейне Ethereum, так и более сложный юзкейс, нуждающийся в серии операций, выполняемых через смарт-контракты.
Невозможность осуществления автоматических платежей на Ethereum по некастодиальным кошелькам
Вернемся к ситуации Алекс. Предположим, у нее есть учетная запись пользователя и кошелек, куда поступает ее зарплата и с которой она хотела бы автоматически платить ипотеку, кабельное телевидение и коммунальные услуги. Чтобы оплатить свои счета, Алекс должна инициировать транзакцию, которая переведет криптоактивы с ее EOA на учетную запись пользователя, принадлежащую получателю, который генерирует счета и ожидает оплаты по ним. С EOA Алекс связан частный ключ, известный только ей.
Этот частный ключ используется для активации алгоритма цифровой подписи эллиптической кривой (ECDSA), ключевой в создании такой транзакции. И здесь возникает проблема! Если Алекс в отпуске и не имеет доступа к кошельку, кто инициирует подписание для создания транзакции, чтобы совершить платеж?
Одним из решений является использование Алекс кастодиального кошелька. С помощью такого кошелька провайдер услуги контролирует приватный ключ. Другими словами, Алекс доверяет третьей стороне хранение своих средств. Плюсом есть то, что Алекс имеет возможность настроить автоматический платеж. Поскольку провайдер является стороной, которая управляет кошельком и имеет доступ к ее приватному ключу, он имеет возможность создать подпись, необходимую для осуществления транзакций и отправки запланированных регулярных платежей. Есть и недостаток. Хотя кастодиальный кошелек и решает проблему Алекс, он нуждается в её доверии к провайдеру, который хранит средства.
Используя некастодиальный кошелек, владелец имеет полный контроль над своими активами и приватным ключом. Но из-за персонального (без посредников) контроля за всем Алекс не сможет настроить автоматический платеж, поскольку она сама должна использовать свой приватный ключ для подписания платежа и персонально инициировать операцию. А в Альпах снег, лыжи, хорошие парни и полное отсутствие времени для каких-то скучных транзакций.
Итак, что делать Алекс, если она не хочет доверять посредникам свои активы и в то же время желает использовать некастодиальный кошелек и осуществлять регулярные платежи в криповалюте?
Абстракция аккаунта и функция делегирования
Абстракция учетной записи (AA) – это решение, которое объединяет учетные записи пользователей и смарт-контракты в один новый тип учетной записи Ethereum, позволяя учетным записям пользователей функционировать как смарт-контракты. Таким образом, на базе AA появляется возможность создать удобное решение для автоматических регулярных платежей.
Еще одна важная и необходимая опция для этого – функция делегирования. Благодаря функции делегирования АА действительно может на практике создавать автоматические платежи.
Решение Visa состоит в том, чтобы использовать AA и создать новый тип учетной записи – с правом делегирования. Концепция решения на основе смарт-контрактов основана на том, чтобы в коде сохранялись правила создания транзакций определенного типа и все условия для делегирования прав их автономного создания. Фактически AA позволяет делегировать право смарт-контракта автоматической оплаты, предоставлять указания учетной записи пользователя, инициировать предварительно одобренный push-платеж с определенной регулярностью. Сложно, но как есть.
Решение автоматических регулярных платежей с абстрактной учетной записью, смарт-контрактом и функцией делегирования
Из-за несовершенства и жестких протокольных требований такая реализация на блокчейне Ethereum была признана сверхсложной и отклонена.
Выбор Visa – блокчейн второго уровня StarkNet
Поскольку Ethereum еще так и не поддерживает AA, Visa решила реализовать решение для делегированных аккаунтов на StarkNet – блокчейне второго уровня (L2). Он был создан с целью увеличить пропускную способность L1-блокчейна (Ethereum), к тому же имеет ряд других интересных опций.
Блокчейн StarkNet разработан криптостартапом StarkWare. Модель учетной записи StarkNet – это то, что до сих пор описывалось как АА. В то время как конкретные учетные записи L1-блокчейна проверяют, поступает ли транзакция с правильной подписью, абстрактные учетные записи StarkNet просто отслеживают, поступает ли транзакция с заданного адреса.
При использовании абстрактных учетных записей, если кто-то отправляет ERC-токен на ваш адрес, такая транзакция активирует взаимодействие со смарт-контрактом этого актива. В результате владелец криптовалюты меняется, благодаря простой замене адреса отправителя на получателя.
Благодаря блокчейну StarkNet, Visa смогла реализовать сервис автоматических регулярных платежей через некастодиальный кошелек, использовав для этого учетные записи с возможностью делегирования. Сервис еще тестируется, и Visa еще не предложила его открытому рынку. Но это, похоже, не за горами.