Инвариантное ядро финансового учёта для систем, где ошибка — физически невозможна.
QLedger Core фиксирует финансовые факты так, что недопустимое состояние нельзя записать — ни через API, ни через администратора, ни при сбое инфраструктуры.
Каждая операция детерминирована, атомарна, проверена против инвариантов ядра и криптографически доказуема постфактум.
| Традиционные системы SQL, обычные леджеры | QLedger Core | |
|---|---|---|
| Оптимизированы под | доступность, масштаб, скорость | корректность факта |
| Проверка целостности | после записи, выборочно, сверками | до записи, для каждой операции |
| Нарушение баланса | возможно; обнаруживается при сверке | не может быть записано |
| История | изменяема при привилегированном доступе | append‑only, хеш‑цепочка |
| Ошибка — это | инцидент → расследование → откат | недостижимое состояние модели |
В традиционных системах ошибка — инцидент. В QLedger ошибка — физически невозможное состояние модели.
Операция либо происходит полностью, либо не происходит. Промежуточных состояний не существует.
Одинаковый вход → одинаковый результат на любом узле, в любой момент. Без недоопределённости.
Сквозная ось истины. По ней восстанавливается любая история — от намерения до канонической записи.
QLedger — универсальный вычислительный слой доверия. Системы верхнего уровня передают ему намерения и получают канонические, проверяемые факты.
Каждая операция проходит один и тот же путь. Отклонение от пути — отказ, а не частичная запись.
Входы → контуры проверки → финализация → хранение. Отказ на любом контуре не оставляет частичной записи.
Факт считается финальным только после прохождения всех контуров и включения в хеш‑цепочку. Финальный факт не отзывается — только компенсируется новой операцией.
Ядро назначает полный порядок. Каждая операция проверяется против состояния, в котором уже учтены все предшествующие. Гонок нет по построению.
Внешние возмущения — нагрузка, конкуренция, сбои — меняют скорость, но не ось. Инварианты остаются неподвижной осью состояния.
# два конкурирующих списания с одного счётаt+0.000 op_A debit acc:7781 900.00 ─┐ t+0.000 op_B debit acc:7781 400.00 ─┤ contention ▼ GYRO ORDER seq 104217 → op_A seq 104218 → op_B op_A balance 1000.00 → 100.00 ✓ FINAL op_B balance 100.00 → −300.00 ✗ REJECT L3.double_entry / insufficient_funds# одинаковый вход → одинаковый результат # на каждом узле, при каждом повторе
Система продолжает работать без потери целостности. Деградация влияет на пропускную способность — никогда на корректность.
| Сценарий | Поведение ядра | Инварианты |
|---|---|---|
| Падение узлов | Кворум сохраняет порядок и финализацию; узел восстанавливается детерминированным воспроизведением журнала. | hold |
| Сетевые сбои / partition | Изолированный сегмент прекращает финализацию, не принимая расходящихся решений. После восстановления — сверка по хеш‑цепочке. | hold |
| Деградация инфраструктуры | Замедление дисков, CPU, сети снижает throughput; порядок и результат операций не меняются. | hold |
| Повтор запроса клиентом | Идемпотентность по operation_id: повтор возвращает уже зафиксированный результат. | hold |
Оператор, клиент, контролёр. Действует от своего ключа в пределах роли.
id hum_… role enum key ed25519 scope accounts[]
Полноправный актор. Каждое решение фиксируется хешем аттестации и версией модели.
id ai_… model_hash sha256 policy version attest ai_attestation_hash
Банк, кастодиан, регулятор. Подтверждение через кворум подписей.
id inst_… quorum m‑of‑n keys ed25519[] jurisdiction ISO 3166
Каждая запись в ядре хранит: actor.kind · actor.id · operation_id · context · signature. Нетипизированный актор не может инициировать операцию.
Инварианты QLedger — это законы физики для финансового состояния. Их нельзя обойти, переписать или «обойти через админку».
∀ e ∈ Ledger: e.actor ≠ ∅ ∧ e.operation_id ≠ ∅ ∧ e.context ≠ ∅∀ op: op.initiator ∉ op.validators ∨ |op.validators| ≥ 2∀ op: Σ op.debits − Σ op.credits = 0Готовые наборы законов для доменов. Инварианты подключаются и конфигурируются. Нарушить подключённый инвариант нельзя.
Один сценарий, без экстраполяций. example / placeholder — значения на графиках и в сравнении подлежат замене на данные прогона.
непрерывной нагрузки
параллельных воркеров
конкурирующих записей на строку
ошибок целостности
| Традиционные банковские ядра | Блокчейны | QLedger | |
|---|---|---|---|
| Скорость финализации | мс; итог дня — после batch/EOD | секунды–минуты; вероятностная | мс, детерминированная p99 — tbd |
| Поведение при конкуренции | блокировки, deadlock, повторы | fee‑аукцион, reorg | полный порядок, без гонок |
| Предсказуемость | зависит от нагрузки и настроек БД | зависит от сети и комиссий | одинаковый вход → одинаковый результат |
| Ошибки целостности в сценарии 4.1 | выявляются сверкой | н/п — другая модель учёта | 0 |
| Отказ узла | failover, риск потери хвоста | устойчиво, ценой задержки | продолжает работу, инварианты сохраняются |
Доверие строится снизу вверх. Каждый слой проверяем независимо от вышестоящего: ядро — воспроизведением, инварианты — повторным вычислением, криптография — хешами и подписями, аудит — внешними сторонами.
ИИ — полноправный актор, а не чёрный ящик. Каждое решение фиксируется через ai_attestation_hash: вход, версия модели, политика, результат. Решение можно проверить и воспроизвести.
Root‑доступ не позволяет изменить историю без разрыва хеш‑цепочки. Любая попытка модификации оставляет криптографический след.
Вместо аудита раз в год — постоянная верификация. Каждый хеш проверяем, каждый инвариант верифицируется в реальном времени. Внешние аудиторы подключаются к проверке состояния напрямую.
Архитектура спроектирована с учётом требований к прозрачности, неизменяемости и трассируемости, которые предъявляют режимы вроде PSD2 и MiCA. Это архитектурные принципы, а не юридическое заключение.
Одна схема, два транспорта.
grpcurl sandbox.qledger.tech:7443 listТипизированные клиенты.
pip install qledgerОтправка, проверка, реплей.
qledger verify --from seq:0Локальное ядро за минуту.
qledger sandbox upПорядок, финализация и инварианты описаны формально; model checking по пространству состояний.
Partition, падения узлов, сдвиг часов. Проверка линейризуемости истории.
Воспроизводимые прогоны с инъекцией сбоев: любой найденный дефект повторяется по seed.