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 вирішить його запропонувати відкритому ринку. Але, схоже, що цей момент не за горами.