Разработка ПО для платежных терминалов и сенсорных киосков


- В поисках терминального ПО?
- Желаете меньше отдавать, но больше получать?
- Нужно купить терминал?
Звоните нам!

8-800-700-32-60

info@PayPRO.ru

Номер телефона:

Евгений Смайлов, Ханты-Мансийский автономный округ

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

Read more...
Error
  • JLIB_APPLICATION_ERROR_COMPONENT_NOT_LOADING

Продуктовое описание кривтоэквайринга и криптообменника

 

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

На основе этих же моделей работают и криптобиржи, криптопроцессинги и другие платёжные системы для криптовалюты.

 

1. Вместо вступления. Что такое miningfee

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

Считается, что когда весь ограниченный объём монет будет "добыт", то именно плата за транзакции будет обеспечивать работу распределённой криптовалюты. Плата за транзакции обеспечивает финансовую заинтересованность в обслуживании распределённой системы блокчейна.

У каждой криптовалюты свой блокчейн со своими особенностями, в том числе свой размер платы за проведение транзакции.

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

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

 

2. Размер mining fee

На текущий момент минимальный размер miningfee (networkfee) составляет:

Bitcoin: 1 сатоши

1 сатоши = 0,00000001 BTC = 0.000094 USD(на 21 июня 2020)

 

Ethereum: 1 gweiза 21000 gas минимум

1 gwei= 0.000000001 ETH = 0.00000023 USD USD(на 21 июня 2020)

 

Информацию по комиссии можно легко увидеть при попытке совершения операции.

 

Bitcoin

Bitcoin

Рекомендуемый blockchain.com размер Network Fee:

Минимальный: 1 сатоши

Обычный: 3 сатоши

Приоритетный: 19 сатоши

 

Ethereum

Рекомендуемый blockchain.com размер NetworkFee:

Минимальная цена gas: 1 Gwei

Обычная цена gas: 16 Gwei

Приоритетная цена gas: 19 Gwei

* Данные на момент написания материала 21 июня 2020.

 

Полезным является анализ как распределяется очередь на обработку операции в зависимости от размера fee.

На примере Bitcoin, на момент написания материала 21.06.2020 статистическая зависимость представлена ниже (актуализируется на основе операций в блокчейне за последние 3 часа):

Видно, что самое быстрое проведение операций возможно при минимальном размере платы в 21-22 сатоши.

В этом случае очереди на обработку нет и операция попадёт в ближайший блок.

Каждый новый блок в блокчейне создаётся примерно раз в 5-15 минут.

Характерно, что основная масса людей проводит операции либо с минимальной комиссией (1 сатоши), либо с «рекомендованной минимальной» системой (3 сатоши). При этом скорость проведения за 1 сатоши самая долгая, т.к операции в 4 раза дольше находятся в длительной временно необрабатываемой очереди mempool.

Дальше в разделе про бизнес-модель работы крипто-обменника и крипто-эквайринга мы рассмотрим влияние networkfeeна разные варианты бизнес-процессов.

 

3. Бизнес-модель работы крипто-эквайринга и крипто-обменника

Есть несколько схем, как работают такие системы, но все их можно разделить на 3 типа:

  • 1) Без собственного кошелька и без личного кабинета
  • 2) С собственным кошельком
  • 3) Гибридные

 

По большому счёту гибридные являются разновидностью системы с собственным кошельком. Фактически они позволяют проводить операции как с собственного кошелька, так и без регистрации в системе.

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

Фактически клиенты располагают свои деньги на вашем криптокошельке и для этого они должны доверять вашей платёжной системе (о доверии подробнее речь ещё пойдёт ниже).

Обе эти модели имеют свои плюсы и минусы.

 

3.1. Система крипто-эквайринга без кошелька

Это наиболее простая в организации и использовании система приёма платежей криптовалютой.

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

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

Модель без кошелька может существовать как самостоятельный продукт, а может быть первым этапом в разработке более функциональной крипто-эквайринговой системы с внутренним кошельком. За счёт относительной простоты реализации данный этап можно использовать как MVP(minimumviableproduct) и как пилотный проект для оценки перспектив дальнейших вложений в развитие продукта.

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

Ключевые особенности:

  1. - Клиенту генерируется уникальный адрес для оплаты, на который он должен самостоятельно совершить перевод
  2. - Перевод клиента может идти достаточно долго, что несёт курсовые риски

 

Одним из способов снижения курсовых рисков можно использовать:

  1. - Уменьшить количество необходимых подтверждений, когда мы считаем перевод клиента поступившим
  2. - Отправлять средства на вывод в фиат в момент поступления клиентского перевода, тем самым фиксируя курс (при наличии фиксированной платы за вывод в фиат - можно выводить накопительно или периодически раз в час или раз в сутки)

 

Плюсы системы без кошелька:

+ простота реализации

+ простой процесс оплаты

+ высочайшая надёжность и безопасность (нет необходимости долговременно хранить чужие средства)

+ не требуется дополнительных технических действий от мерчанта

Минусы системы без кошелька:

- платёж не мгновенный и может быть долгим для некоторых криптовалют и низком размере networkfee

- высокие курсовые риски из-за низкой скорости платежа

- повышенная плата за networkfee, т.к. нужно выводить каждый поступивший платёж (могут быть варианты)

- отсутствие возможности использовать остатки на клиентских счетах кошельков

 

3.2. Система крипто-эквайринга с внутренним кошельком

Данный вариант предполагает регистрацию и предварительное пополнение клиентом его внутреннего кошелька. На этом кошельке средства хранятся непосредственно в той криптовалюте, в который клиент перевёл её.

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

Кошелёк радикально решает проблему курсовых рисков. При необходимости вы можете вывести криптовалюту клиента в фиат и тем самым зафиксировать курс без каких-либо задержек, т.к. средства клиента уже заведены в систему. А в случае если в кошельке недостаточно средств, то клиенту необходимо пополнить кошелёк и курсовые риски он берёт на себя.

Вопрос гарантии и надёжности

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

Корень проблемы в том, что на счетах клиентов накапливается большое количество остатков, которые не участвуют в операционной деятельности. Существует большой соблазн воспользоваться этими средствами в разных целях: от инвестиционных, до личных. Наш опыт работы в платёжной сфере много раз показывал, что проблемы с ликвидностью регулярно приводят к закрытию fintechпроектов (включая даже строго регулируемые банки). В большинстве случаев клиенты не получают назад свои средства, т.к. они были давно потрачены (но до критической ситуации изъятие средств не проявлялось).

В связи с этим можно выделить два режима работы кошелька.

Полностью виртуальные счета

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

Когда клиент пополняет свой кошелёк, то видит его адрес и он действительно привязан к аккаунту клиента. Адрес многоразовый и его можно пополнять неограниченное количество раз. При этом можно создать новые адреса, если клиент придерживается правила «одна операция - один адрес».

Таким образом, все адреса принадлежат компании и все они навсегда привязаны к клиенту, поэтому все являются рабочими для клиента.

Однако в модели с полностью виртуальными счетами - эти адреса фактически используются только для определения пополнения. Криптовалюта хранится на них кратковременно и средства в течение суток передаются на единый адрес компании, на котором хранятся все основные средства.

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

В этой модели клиент в своём кабинете видит, что у него 1 BTC, но в реальности на этом кошельке средств нет, т.к. они были переведены на постоянный адрес компании.

Плюсы общие системы с кошельком:

+ мгновенное проведение платежа с кошелька

+ полное отсутствие курсовых рисков

+ не требуется дополнительных технических действий от мерчанта

+ возможность использовать остатки на клиентских счетах кошельков

+ стимулирует завести аккаунт и пользоваться другими сервисами компании

+ облегчает дальнейшее использование

+ привязываем клиента к себе

Плюсы виртуальной модели:

+ экономия на комиссиях при создании единой групповой операции сбора со всех адресов на единый

+ возможность использовать средства для инвестиций

Минусы общие системы с кошельком:

- выше сложность реализации

- более сложный процесс первой оплаты за счёт регистрации (можно сделать относительно простой, но она есть)

- ниже надёжность, за счёт возможности утратить контроль над средствами клиентов

Минусы виртуальной модели:

- опасность соблазна растратить средства клиентов

- низкая прозрачность работы системы для внешнего наблюдателя

- низкие рейтинги при прохождении независимого аудита

 

Реальные тру-адреса в кошельках

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

Такой вариант работы является гарантией, что на адресах системы действительно лежат суммы всех клиентов. Это означает, что владельцы системы не изъяли деньги из системы. Исключает скрытую ситуацию, что отображая большие суммы на виртуальных счетах клиентов - на деле обеспечения этим деньгам нет.

Располагая деньги на реальных кошельках, мы демонстрируем высочайшую ликвидность и обеспеченность. Причём намного большую, чем даже банки с их государственным строго регулируемыми нормами резервов. Такая 100% ликвидность не требуется для операционной деятельности и является только открытой демонстрацией гарантии надёжности системы.

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

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

Плюсы общие системы с кошельком:

+ мгновенное проведение платежа с кошелька

+ отсутствие курсовых рисков

+ не требуется дополнительных технических действий от мерчанта

+ возможность использовать остатки на клиентских счетах кошельков

+ стимулирует завести аккаунт и пользоваться другими сервисами компании

+ облегчает дальнейшее использование

+ привязываем клиента к себе

Плюсы виртуальной модели:

+ высокие рейтинги при прохождении независимого аудита

+ высокая прозрачность работы системы для внешнего наблюдателя

+ возможность использовать средства для инвестиций

+ умеренная трата на комиссии

Минусы общие системы с кошельком:

- выше сложность реализации

- более сложный процесс первой оплаты за счёт регистрации (можно сделать относительно простой, но она есть)

- ниже надёжность за счёт возможности утратить контроль над средствами клиентов

- из-за длины пути, клиент может вовсе отказаться от оплаты

Минусы виртуальной модели:

- опасность растратить средства клиентов

Способы компенсировать минусы:

+ оптимизировать комиссию, совершая синхронные операции перевода с адреса на адрес, совершая их не мгновенно, а в виде групповых раз в час/день

+ предлагать оплату с регистрацией опционально, сохранив вариант быстрой оплаты без регистрации

+ при оплате без регистрации клиента можно зарегистрировать автоматически и прислать данные аккаунта

+ предлагать бонус за оплату с регистрацией

Какие плюсы мы должны двигать:

+ прохождение независимого аудита как гарант отсутствия мыльного пузыря

+ часть метрик можно публиковать открыто для подтверждения высокой надёжности

+ доносить безопасность нашей системы и как она устроена

+ говорить про мгновенную скорость прохождения платежей

+ для мерчантов лёгкий способ приёма криптовалюты, при этом получая на счёт консервативный фиат

 

Возможно сделать несколько тарифов на работу с виртуальными кошельками и с тру-адресами.

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

Те, кто менее озабочен максимальной безопасностью - может пользоваться более дешёвым тарифом с виртуальными адресами.

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

Из основных минусов - дополнительные возможности несколько усложнят восприятие системы. Однако эту проблему решает преподнесение их как два тарифных плана - это уже знакомая из бытовой жизни сущность, понятная и привычная всем.

Всё вместе это может стать тем самым УТП, которого ещё нет на рынке. Это тоже часть открытости и прозрачности, которую любят все, включая клиентов и инвесторов. Но без раскрытия операционных показателей.

 

4. Метрики продуктовые

Необходимость той или иной метрики зависит от цели.

Если считаем, что цель извлечение прибыли (а не завоевание доли рынка любой ценой), то будет полезным список метрик, представленный ниже.

Целесообразно разбить метрики по этапам запуска продукта.

 

 

1. Этап выхода на рынок

 
Метрика, значение показателя Изменение за день % Изменение за неделю % Изменение % за месяц Изменение % за месяц год назад
Зарегистрированные клиенты        
Ставшие активными клиенты (первая оплата)        
Регистрация без активности        
Активные клиенты (неважна какая по счёту оплата)        
Ставшие активными клиенты (первая оплата)        
CTR клиента: регистрация -> использование        
Зарегистрированные мерчанты        
Ставшие активными мерчанты (первый приём криптовалюты)        
Регистрация мерчантов без активности        
Активные мерчанты (неважно какой по счёту приём оплаты криптовалютой)        
CTR мерчанта: регистрация -> использование        
Количество использования сервисом без регистрации        
Количество использования сервисом с регистрацией        
Доля использования без регистрации        
Доля использования с регистрацией        

 

 

2. Этап активного роста

 
Метрика, значение показателя Изменение за день % Изменение за неделю % Изменение % за месяц Изменение % за месяц год назад
Количество операций        
Сумма операций в USD        
Сумма операций в криптовалюте        
ROI зарегистрированного клиента        
ROI ставшего активным клиента        
ROI зарегистрированного мерчанта        
ROI ставшего активным мерчанта        
Среднее количество входов в кабинет одного клиента)        
Средний процент заполненности профиля        
Средний процент просмотров отчётов        

 

 

3. Этап рабочего стимулирования продаж

 
Метрика, значение показателя Изменение за день % Изменение за неделю % Изменение % за месяц Изменение % за месяц год назад
Выручка в среднем с одного клиента        
Прибыль в среднем с одного клиента        
Количество операций в день одного клиента        
Выручка в среднем с одного мерчанта        
Прибыль в среднем с одного мерчанта        
Количество операций в день одного мерчанта        
Возвращаемость клиента, повторяемость        
Средний платёж        
Средняя скорость пополнения криптовалютой        
Пиковое количество операций в час        
Валовая прибыль услуги крипто-эквайринга        
Общая капитализация        
Размер оборотных средств        
Доля оборотных средств к общей капитализации        
Дневная оборачиваемость оборотных средств        
Размер неиспользуемого остатка на счетах клиентов        
Средний срок внесённых на кошелёк средств без движения        
Курс криптовалюты (для изучения корреляции)        

 

 

Дополнительные SEO-метрики

 
Метрика, значение показателя Изменение за день % Изменение за неделю % Изменение % за месяц Изменение % за месяц год назад
Цитируемость тематических страниц        
Посещаемость тематических страниц сайта        
Количество отзывов        
Количество отзывов положительных        
Количество отзывов отрицательных        
Доля положительных отзывов        
Доля отрицательных отзывов        

Количество обращений в техподдержку

 

       

От инструмента работы с метриками необходима возможность получать выборки показателей по клиентам с возможностью их сортировки и фильтрации, делать срезы по полу, возрасту, странам/регионам. Графики, диаграммы, отчёты.

Нужно определиться какие из метрик можно сделать публичными.

Цель публичных метрик - продемонстрировать надёжность хранения средств и долгосрочные цели компании. Если мы будем публиковать оборот 100 млн.долларов, а на внутренних кошельках будет 10 биткоинов - доверия такой компании не будет. Поэтому важно показать надёжность, но не раскрывая доходность и операционные показатели.

Метрики технические:

Технические метрики должен определить Project Manager. Их множество: от доступности серверов и сервисов/микросервисов, до размеров блокчейнов.

5. Техническая архитектура:

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

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

Под подобные проекты технически идеально подходит облачная архитектура типа AmazonWebServices.

 

Плюсы AWS:

- отличная масштабируемость: autoscaling, loadbalancer, общие безразмерные диски и многое-многое другое

- высочайшая безопасность: ParameterStore, развитая система прав, политик и ролей, создание инфраструктуры как кода, разделённый деплой

- возможность использования onpremises сервисов, расположенных в собственных дата-центрах (или офисе)

- развитый CDNдля быстрой выдачи статики по всему миру

- HighAvailability (HA): за счёт использования дублирования на серверах в разных дата-центрах, управляемые сервисы включая базы данных, кластеры контейнеров (включая Kubernetes)

 

Крайне важным является правильная архитектура при работе с криптовалютными кошельками.

Базовые меры, которые должны быть внедрены и соблюдаться:

- чрезвычайно важно разделить деплой кода продуктового, тестового и девелоперского

- ни один программист не должен знать продуктовых паролей с которыми он работает

- при прохождении всех видов тестирования - код должен автоматически переноситься в продуктовую инфраструктуру со своим набором credentials в ParameterStore

- естественно, не должно быть никаких паролей в коде, а уж тем более в системе контроля версий (git)

- система не должна хранить секреты в переменных окружения, а использовать Parameter Store с автоматической ротацией секретов

- к серверам не должно быть ни у кого доступа по SSH (при необходимости обновления - создавать новые сервера, а старые удалять)

- весь код должен проходить ревизию, чтобы не допустить попытки увода "секретов"

- регулярный внутренний и внешний аудит безопасности

- мониторинг доступа к ресурсам с уведомлением

- применение современных методик проактивной блокировки атак, включая Honeypot и др.

 

Заключение

За кадром данной статьи осталось исследование рынка, формирование функциональных требований, вопросы продвижения и составление дорожной карты.

Все эти вопросы индивидуальны от проекта к проекту, поэтому требуют проработки под конкретный проект.

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