FastOTC

Platform Overview

FastOTC

Инфраструктурная SaaS-платформа для OTC-обменников криптовалют. Мультитенантная архитектура с изолированными данными, хеш-цепочкой транзакций, AI-ассистентом и межброкерской сетью обмена.

Структура платформы
Как устроена система: от пользователя до неизменяемого доказательства
Центральная платформа FastOTC
Master Database
Общая база: пользователи, лицензии, глобальные партнёры
• Реестр всех брокеров и их лицензий
• Глобальные UID контрагентов (FO-xxxx)
• Межброкерские связи и хеш-цепочка
• Единая система авторизации
Мультитенантность — каждый брокер = изолированная база
Брокер «Альфа»
DB: broker_alpha_db
• Свои клиенты, балансы, сделки
• Свой AES-256 ключ шифрования
• Свой Telegram-бот
• Менеджеры, кассиры, роли
Брокер «Бета»
DB: broker_beta_db
• Полностью изолирован от «Альфа»
• Свои курсы, маржа, комиссии
• Свой AI-ассистент и настройки
• Не видит данные других брокеров
Брокер N
DB: broker_n_db
• Неограниченное число брокеров
• Одна платформа, полная изоляция
• Горизонтальное масштабирование
Внутри каждого брокера
Контрагенты
Клиенты брокера
• Global UID (FO-7a3f8b2c4d1e)
• Мультивалютные балансы
• Реферальная программа (4 уровня)
• AML/KYC статус
Swap (Сделка)
Обменная операция
• Валютная пара + курс + сумма
• Привязка к контрагенту
• Автокурс с бирж (Binance, etc.)
• Статус: новая → принята → завершена
Кошельки
Крипто-адреса
• TRC20 / ERC20 / BTC
• Некастодиальные (ключи не на сервере)
• Транзитные адреса
• Автоподтягивание из блокчейна
Транзакции — зашифрованные записи
Debit
Списание: −1000 USDT
AES-256-CBC encrypted
Credit
Зачисление: +92 500 RUB
AES-256-CBC encrypted
Хеширование транзакции
tx_hash (SHA-256)
Необратимый отпечаток каждой операции
SHA-256( uid_from + uid_to + amount + instrument + timestamp + nonce )
Хеш-цепочка — неразрывная последовательность
Hash Chain (Ledger of Proof)
Каждый хеш включает ссылку на предыдущий. Подмена одного — ломает всю цепочку
final_hash = SHA-256( sent_hash + receiver + timestamp + prev_chain_hash )
Внешнее доказательство
Merkle Tree
500–10 000 хешей → 1 Merkle Root
Можно проверить любой хеш без раскрытия остальных
Bitcoin Anchor
OP_RETURN с Merkle Root в блокчейн BTC
Неопровержимое доказательство, ~$0.001 за операцию

Как брокеры взаимодействуют
Три модели работы: внутренний обмен, межброкерский swap, глобальные партнёры

1. Внутренний обмен (один брокер)

Клиент приходит к брокеру, брокер выполняет обмен из собственной ликвидности. Самый частый сценарий.

Брокер «Альфа»

  • Клиент Иван хочет продать 5 000 USDT
  • Менеджер создаёт swap в CRM
  • Курс: 92.5 → 462 500 RUB
  • Debit: −5 000 USDT, Credit: +462 500 RUB
  • tx_hash записан в хеш-цепочку
Данные: все суммы, реквизиты и балансы зашифрованы AES-256-CBC с уникальным ключом этого брокера. Даже администратор платформы не может прочитать данные чужого брокера.

2. Межброкерский обмен

У клиента брокера «Альфа» есть USDT, но «Альфе» не хватает рублёвой ликвидности. Брокер «Бета» имеет рубли и готов принять USDT. Платформа связывает их через глобальные UID.

Брокер «Альфа»

  • Клиент Иван (FO-7a3f8b2c4d1e)
  • Хочет продать 50 000 USDT
  • У «Альфы» нет столько рублей
  • Создаёт запрос в сеть
← запрос →

Master DB

Матчинг запросов
Global UID: FO-7a3f...
Hash Chain: общая

← swap →

Брокер «Бета»

  • Имеет рублёвую ликвидность
  • Готов купить USDT по 92.0
  • Принимает запрос «Альфы»
  • Swap записан у обоих
ШагБрокер «Альфа»Брокер «Бета»Master DB
1. Запрос Создаёт запрос: продать 50K USDT Запрос в очереди
2. Матчинг Видит запрос, предлагает курс 92.0 Пара найдена
3. Swap −50 000 USDT (debit) +50 000 USDT (credit) initial_hash создан
4. Расчёт +4 600 000 RUB (credit) −4 600 000 RUB (debit) accepted_hash
5. Подтверждение Proof: tx подтверждён Proof: tx подтверждён final_hash → chain
Ключевое: «Бета» видит клиента как FO-7a3f8b2c4d1e, но не знает его имя, телефон или другие данные — только глобальный UID. Каждый брокер хранит свои заметки и имена в своей изолированной базе.

3. Глобальные партнёры

Один и тот же человек может быть клиентом у нескольких брокеров. Платформа связывает его записи через Global UID, но не раскрывает данные между брокерами.

У «Альфы»

  • Имя: «Вася»
  • Баланс: +5 000 USD
  • Заметка: «VIP, быстрая оплата»
  • Реферал: Менеджер Алексей
один и тот же человек
FO-7a3f...
Global UID
CRC-8 checksum

У «Беты»

  • Имя: «Василий Петрович»
  • Баланс: +150 000 RUB
  • Заметка: «мелкий, только рубли»
  • Реферал: Менеджер Ольга
Что даёт Global UID: при межброкерском свопе платформа знает, что обе стороны — реальные проверенные контрагенты. Историю сделок можно проследить по цепочке, но персональные данные остаются внутри каждого брокера.

Жизненный цикл заявки
Как запрос клиента превращается в завершённую сделку

Пример: клиент пишет в Telegram

1

Клиент отправляет сообщение

Клиент пишет в Telegram-бот брокера или групповой чат:

"Привет, хочу обменять 10 000 усдт на рубли, какой курс?"
2

AI-классификация сообщения

AI-модель (GPT-4.1) анализирует текст и классифицирует его:

{ "type": "exchange_request", "sell_currency": "USDT", "sell_amount": 10000, "buy_currency": "RUB", "rate": null, // клиент спрашивает курс "confidence": 0.95 }

AI различает: запрос на обмен, вопрос о курсе, жалоба, обычный разговор, запрос реквизитов.

3

Создание заявки в CRM

Менеджер видит в CRM готовую заявку с заполненными полями. Текущий биржевой курс подтянут автоматически (Binance). Менеджер выставляет свою маржу:

Заявка #4821 Клиент: Иван Петров (FO-7a3f8b2c4d1e) Отдаёт: 10 000 USDT Получает: 920 000 RUB Курс: 92.00 (биржа: 92.35, маржа: 0.38%) Статус: Ожидает подтверждения
4

Клиент подтверждает, создаётся Swap

После согласования курса менеджер или клиент (через бот) подтверждает сделку. Система создаёт swap и две транзакции:

ТипСуммаВалютаБаланс после
Debit−10 000USDT0.00 USDT
Credit+920 000RUB920 000 RUB
5

Хеширование и запись в цепочку

Система создаёт криптографический отпечаток операции — 4 стадии хеш-цепочки:

INITIAL: SHA-256(FO-7a3f... + FO-broker + 10000 + USDT + 1713523200 + nonce) = a1b2c3d4e5f6... ACCEPTED: SHA-256(a1b2c3d4... + manager_uid + 1713523245) = f7e8d9c0b1a2... SENT: SHA-256(f7e8d9c0... + {"bank":"Sber","ref":"7721"} + 1713523300) = 3c4d5e6f7a8b... FINAL: SHA-256(3c4d5e6f... + FO-7a3f... + 1713523360 + prev_chain_hash) = 9f0e1d2c3b4a... → записан в цепочку
6

Уведомление и завершение

Клиент получает уведомление в Telegram. Прибыль автоматически распределяется по реферальной цепочке (4 уровня). Баланс обновлён мгновенно.

Пример: менеджер создаёт сделку через AI

Менеджер может не заполнять форму вручную — достаточно написать в AI-чат естественным языком.
1

Менеджер пишет в AI-чат:

"Клиент Иван Петров отдаёт трц 20, получаю рубли, 10к"
2

AI парсит и уточняет:

AI: Создать swap для Ивана Петрова (FO-7a3f8b2c4d1e)? Отдаёт: 10 000 USDT (TRC20) Получает: 925 000 RUB (курс Binance: 92.50) Подтвердить?
3

Менеджер подтверждает — swap создан

AI вызывает CRM-функцию createSwap(). Все 20+ функций доступны через естественный язык: создание сделок, проверка баланса, история операций, поиск клиентов.

Пример: межброкерский запрос

Когда у брокера не хватает ликвидности, он может отправить запрос в межброкерскую сеть.
1

«Альфа» создаёт запрос в сеть

Запрос #782 Тип: Покупка ликвидности Нужно: 4 600 000 RUB Отдаёт: 50 000 USDT Мин. курс: 91.50 Видимость: все брокеры сети
2

«Бета» видит запрос и отвечает

Ответ от "Бета": Готов продать: 4 600 000 RUB Прошу: 50 000 USDT Курс: 92.00 Комиссия сети: 0.1% (50 USDT)
3

«Альфа» принимает — создаётся межброкерский swap

Платформа создаёт связанные записи у обоих брокеров и записывает хеш в общую цепочку:

АльфаБета
USDT−50 000+50 000
RUB+4 600 000−4 600 000
Комиссия−25 USDT−25 USDT
Hash9f0e1d2c3b4a... → общая цепочка
4

Расчёт и доказательство

Брокеры рассчитываются самостоятельно (крипта или фиат). Платформа фиксирует факт в хеш-цепочке. Если возникнет спор — хеш-цепочка с Merkle proof и Bitcoin-якорем является неопровержимым доказательством.

Хеш-цепочка транзакций
4 стадии: от создания заявки до неопровержимого доказательства
INITIAL
SHA-256
uid_from + uid_to
amount + instrument
timestamp + nonce
ACCEPTED
SHA-256
initial_hash
+ acceptor
+ accept_timestamp
SENT
SHA-256
accepted_hash
+ proof_json
+ sent_timestamp
FINAL
SHA-256
sent_hash + receiver
+ completed_ts
+ prev_chain_hash
MERKLE ROOT
500–10K TX
Батч хешей
→ 1 корень
BTC ANCHOR
OP_RETURN
Внешнее
доказательство
Зачем это нужно: Если через год клиент заявит, что сделки не было, или брокер изменит сумму — хеш-цепочка докажет обратное. Merkle proof позволяет проверить конкретную транзакцию без раскрытия всех остальных. Bitcoin-якорь привязывает всё к публичному блокчейну — подделать невозможно.

Возможности платформы
Что уже работает и что на подходе
💱

Сделки и свопы

Создание сделок, автокурс с бирж, матчинг, 4-уровневая реферальная программа, автораспределение прибыли

Работает
📊

Мультивалютные балансы

Балансы контрагентов в любых валютах, USDT-эквивалент, внесение/вывод, полная история

Работает
🔒

Шифрование данных

AES-256-CBC: суммы, реквизиты, балансы зашифрованы. Свой ключ для каждого брокера

Работает
💰

Крипто-кошельки

Некастодиальные кошельки, транзитные адреса, автоподтягивание из блокчейна, TRC20/ERC20/BTC

Работает
🤖

AI-ассистент

Естественный язык: «отдаю трц 20, получаю рубли» — AI создаёт сделку. 20+ CRM-функций

Работает
📩

Telegram-бот

Клиент создаёт сделки в Telegram. Менеджер видит в CRM. Уведомления по кошелькам

Работает
🔗

Хеш-цепочка

SHA-256 цепочка транзакций + Merkle Tree + Bitcoin якорение. Неопровержимая история

Бета
🌐

Глобальные UID

FO-xxxx: один контрагент = один ID. CRC-8 защита от опечаток. Межброкерская идентификация

Бета
📱

Мобильное приложение

Capacitor: чаты, задачи, подпись крипто-транзакций через WalletConnect, биометрия

Скоро
Дорожная карта
5 этапов развития платформы
0

Безопасность

Критичные уязвимости — фундамент
Готово
  • 14 уязвимостей закрыто — секреты из кода, SQL-инъекция, изоляция Redis, JWT-экспирация, prompt injection
  • Immutable audit log — журнал всех AI-действий
  • Подтверждение финансовых операций — AI не создаёт транзакции без менеджера
1

Единый инбокс + AI-парсинг

Наблюдатель TG, классификация, инбокс в CRM
4 нед
  • TG-наблюдатель — тихо читает групповые чаты, сохраняет в базу
  • AI-классификация — запрос на обмен / вопрос / жалоба / болтовня
  • Авто-заявки — AI извлекает валюты, суммы, курс из текста
  • Единый инбокс — все чаты в одном списке в CRM
2

WhatsApp + AI-аналитика + UID

WhatsApp API, анализ рисков, глобальные идентификаторы
4 нед
  • WhatsApp Business API — официальный канал от Meta
  • WebSocket (Centrifugo) — мгновенная доставка сообщений
  • AI-риски — дробление сумм, третьи лица, нетипичные паттерны
  • Global UID — единая идентификация + хеш-цепочка
3

Мобильное приложение + крипто

iOS/Android, WalletConnect, очередь кассира
4 нед
  • Capacitor-приложение — 90% текущего кода, нативная обёртка
  • WalletConnect — кассир подтверждает транзакции в Trust Wallet
  • Ключи на телефоне — сервер не касается приватных ключей
  • Биометрия + офлайн — Face ID, кэш чатов
4

GPU + Matrix + Signal + BTC якорение

Мощный AI, новые каналы, blockchain proof
4+ нед
  • GPU-сервер — быстрый AI, пакетная обработка, голосовые
  • Signal + Matrix — максимальная приватность, свой сервер
  • Bitcoin якорение — Merkle Root → OP_RETURN, ~$0.001/операцию
  • Анонимизация — имена заменяются на коды перед облачным AI
Технологический стек
Проверенные решения, горизонтальное масштабирование

Backend

PHP 8.4 + Spiral RoadRunner + Custom kernel (ORM, DI, Router, CRUD, Livecom). MySQL 8.3 (master + per-broker). Redis (cache, queues, sessions)

Crypto & Security

AES-256-CBC (field encryption, per-broker keys), SHA-256 (hash chain), CRC-8 (UID checksum), Merkle Tree, WalletConnect, multi-chain

AI & Messaging

GPT-4.1 (CRM agent, 20+ functions). Ollama (local, privacy). Telegram Bot API. WhatsApp, Signal, Matrix — в roadmap

Infrastructure

Docker Compose. Nginx + Let's Encrypt. Brotli. On-premise deployment. Horizontal scaling: 1 isolated DB per broker