Personal research project — paper-testing & tuning, not raising capital.
← Academy Что придумали в SPA · 7/10
МОДУЛЬ 17

Proof-of-Risk: проверь нас сам

Hash-chain отказов, exit-NAV proof, standalone verifier. «Не верь — пересчитай». Tamper-evident.

Не пройдено

Модули 11–14 показали, что деск отказывает и измеряет детерминированно. Но как доказать это скептику, который вам не верит? Деск отвечает не словами, а инструментом: «don't trust us, check us».

verify_spa.py — standalone-верификатор

scripts/verify_spa.pyzero-dependency файл (только stdlib, без импорта spa_core, без сети). Его докстринг описывает сценарий дословно: скептик (рецензент уровня Gauntlet / Credora / Chaos-Labs) скачивает ТОЛЬКО этот файл + публичные JSON деска (decision_log.jsonl, exit_nav.json, anchors.jsonl), кладёт на чистую машину и запускает python3 verify_spa.py <files>.

Как устроена tamper-evidence (PROOF_CHAIN_SPEC.md)

Механизм один на все поверхности — hash-chain поверх канонического JSON:

  1. Каноническая сериализация: json.dumps(obj, sort_keys=True, separators=(',',':'), ensure_ascii=False) → UTF-8 → SHA-256 hex. Денежные значения — точные Decimal-строки (никогда не float).
  2. entry_hash = SHA-256 от {seq, ts, event_type, payload, prev_hash}.
  3. Цепочка: row.prev_hash == previous.entry_hash, genesis prev_hash = "0"×64. Первая ошибочная строка = broken_at.

Liquidation-NAV-by-size

Отдельная гордость деска — публичный exit_nav.json: per-ticket exit-расписание. Оно отвечает на вопрос, который скрывает любой headline-APY: сколько ты реально получишь, выходя позицией ИМЕННО такого размера? Каждая строка хешируется над {inputs, outputs, prev_hash}; три независимые цепочки (own book / illustrative / portfolio), и каждая строка считается против глубины своего рынка (консервативная оценка реальной Pendle-глубины), никогда не против агрегата.

Проверка знанийВопрос 1 из 5
Что должен сделать скептик, чтобы проверить деск, по принципу verify_spa.py?