September 7

Криптокарты. Схемы работы. Часть I. Вводная

Итак, недавно вышло сразу несколько новостей, которые предвещают такой mass adoption, что мало не покажется. Но давайте не будем следовать за хайпом, а попробуем разобраться. Из интересующих меня вещей есть, как минимум, 2:

  1. Некастодиальная карта (в терминологии разберёмся позже) от Mastercard;
  2. И факт того, что Apple открыла платёжные чипы NFC для сторонних разработчиков.

За одну статью такую работу не проделаешь, поэтому попробуем съесть слона по кусочкам.

Пилот MM & MC

MM - МетаМаск (aka MetaMask), а MC - МастерКард (MasterCard). И они заключили соглашение, в результате чего появилась карта (далее - Пилот): людей было пару тысяч и в основном из ЕС и Великобритании. И это был пилот: уже в сентябре 2024 MC выпустили полноценный проект.

Важно отметить, что Пилот был запущен на zkEVM Linea, а это - весьма и весьма быстрая система. И дело не только в TPS, которые мало что значат сами по себе, но именно в факте ZK-обработки: “используя технологию zkEVM, Linea обеспечивает быстрое завершение транзакций, надёжную защиту и полную эквивалентность EVM…”.

Выглядит это примерно так:

Статистика по сети: l2beat.com/scaling/projects/linea.

Итак, в итоге имеем:

  1. Фиксированные комиссии для “карточных” переводов: “При использовании таких стабильных монет, как USDC и USDT, с вас будет взиматься комиссия за газ Linea, которая может меняться, но обычно составляет $0,02. При использовании нестабильных монет, таких как wETH, с вас будет взиматься комиссия за газ Linea, которая варьируется, но обычно составляет 0,02 доллара. Также взимается комиссия за своп в размере 0,875 %”.
  2. Быстрое время завершение транзакции (даже по нынешним меркам это 0.1-0.2 секунды);
  3. За счёт ZKP-механик - надёжное подтверждение завершение транзакций.

Почему это важно? Потому как схема работы карта (упрощённая) - примерно следующая:

А это значит, что в центре у нас есть держатель смарт-контракта, который при этом же умеет в процессинг карт. Таким держателем является создатель проекта Crypto Life - baanx.com.

Но есть ли слабые места у подобной схемы? Да, попробую перечислить.

Между багом и фичей

Итак, первый вектор атаки очевиден - это атака на оракула. Не обязательно даже ценового: достаточно “прокладки” между крипто-процессингом и карточным. Хотя атака на цены активов - тоже вектор. Итого, в этом разрезе два аспекта:

  1. Попробовать манипулировать ценой криптоактивов (стоимостью USDt, например, к USD), но это не так и просто, хотя опыт Ton и других показывает, что централизованные поставщики цен - пока актуальны;
  2. Можно непосредственно атаковать связку крипто и карточного процессинга на технологическом уровне: поскольку пока рыться в ней не пришлось - здесь могу (с)оставить лишь теоретический диапазон действий.

Второй очевидный вектор атаки - это MEV. Ведь упрощённый процесс выглядит так:

  1. Владелец карты пришёл в магазин;
  2. Предварительно выдал аппрувы на некую сумму, выставив тем самым max лимиты (min, как понимаю, устанавливается сервисом);
  3. Карта в этом случае служит таким же способом подписи, как Trezor или MetaMask (хотя тут можно поругаться над терминологией);
  4. Как только получили подпись - транзакция отправляется в L2-блокчейн (например, в Linea) и списывается с баланса нужная сумма.

Поэтому теоретически никто не мешает написать бота, который будет делать транзакции быстрее, чем процессинг карт. Но технически это не так просто:

  1. Не забываем про ZK-роллапы и их скорости, а также вычислительные мощности для всего этого дела;
  2. Также стоит держать в голове, что хотя карта не кастодиальная относительно хранимых средств - никто не говорил, что не будет KYC и иных аналогов для верификации держателей таковой;
  3. И да, аппрув на смарт уже выдан, а поэтому скорость списания для него - максимальная (тоже можете поругаться над деталями).

Отсюда следует, что вектор атаки возможен, но тоже требует детальной аналитики.

И, конечно же, самое слабое звено - это прокладка между картой и различными техническими причиндалами, то есть мы с вами - люди - aka пользователи подобной карты. Фишинговые QR-коды - дано реальность и данность и никто не застрахован от слишком больших списаний в этом смысле: по простой, человеческой, ошибки.

Равно как никто не застрахован от взлома связки крипто и карточного процессинга: тогда это будет похоже на взломы мостов и многомиллионные потери. “Многосотенмиллионные” даже.

И всё же: схема работает?

Короткий ответ: да. И это достигнуто, потому что:

  1. ZK-роллапы (или каналы в Bitcoin, или иные подобные решения) - довольно быстрые и споры о TPS давно не уместны;
  2. zkEVM (и подобные решения) весьма надёжны, ибо строятся на чистой математике;
  3. Выдача аппрувов или совершение депозитов - стало нормой для DEX (AMM включая) и различных DeFi-протоколов, поэтому фактически мы открываем баланс сервисам по умолчанию после этого;
  4. Связки смарт-контрактов и фиатных процессингов - отточены и не раз;
  5. KYC для кошельков и AML “на лету” - давно достижимые вещи.

Итак, процесс в среднем выглядит следующим образом:

  • Если у вас есть некастодиальный кошелёк (скажем, Metamask), вы находитесь в нужной юрисдикции (да-да, тот же ММ поддерживает санкции), то можете заказать карту;
  • Проходите KYC и/или аналогичные процедуры и делаете связку карты с кошельком, выдавая через установку лимитов аппрувы смарт-контракту BaakX;
  • После этого карта становится фактически инструментом вызова подписи (1) в вашем кошельке, который подтверждает списание на каждую транзакцию: как это происходит в Uniswap и множестве других инструментов;
  • Чтобы деньги поступили в банк Продавца - есть компания (пусть mercuryo.io), которая мгновенно переводит криптоплатёж (5) в баланс в USD/EURO и тем самым появляются взаимные обязательства у компании крипто-процессинга и агрегатора крипто-платежей, которые позволяют незаметно для продавца переводить ему, продавцу, фиатную валюту, изымая у Пользователя/Покупателя USDt, USDc или другую (установленную) криптовалюту.
  • При этом плательщик платит установленные комиссии: за списание и, если требуется, за своп, но деньги физически хранит у себя на кошельке, понимая, что выданный аппрув - это потенциальный вектор атак (впрочем, именно так мы и живём внутри банковской системы).
  • Собственно, на этом всё: Покупатель платит с кошелька, а всё остальное на себя берёт связка: MasterCard - Baakx - Mercuryo или ей подобная.

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

До!