Skip to content

NullCoreDeveloper/van-protocol

Repository files navigation

VAN Protocol Simulation

visitors

Данный репозиторий содержит дискретно-событийную симуляцию (на базе SimPy и NetworkX) децентрализованного сетевого протокола VAN Protocol.

VAN Protocol — это архитектура консенсуса нового поколения, которая решает проблему олигархии (свойственную Proof-of-Stake) и огромных энергозатрат (свойственную классическому Proof-of-Work). Консенсус и безопасность строятся на топологии сети (IP/CIDR ограничениях), криптографическом правосудии (Fraud Proofs) и динамической репутации (S-score).

📄 Документация и Отчёты

  • Полная Архитектура Протокола: Подробное теоретическое и математическое обоснование архитектуры VAN Protocol доступно в приложенных документах VAN Protocol Architecture.odt и VAN Protocol Architecture.txt.
  • Результаты Симуляции: Полные логи прохождения всех стресс-тестов, модульных проверок и сценариев атак сохранены в файле full_report.txt. Рекомендуется к ознакомлению для понимания математической стойкости сети.

🧪 Что доказала симуляция?

В рамках этого проекта реализованы и успешно отражены 6 тяжелых векторов атак:

  1. Sybil Attack (Защита через CIDR) — сеть блокирует захват Комитета Валидаторов даже при контроле 30% сети, так как злоумышленник ограничен правилом "один узел на /16 подсеть".
  2. Topology Censorship (Цензура) — механизм Delivery Receipt гарантирует, что если Комитет отказывается включать честный узел в сеть, жертва математически докажет факт цензуры, а репутация цензоров будет обнулена (S=0).
  3. Spam Complicity (Фальшивые токены) — проверяет симметричное правосудие через BLS-мультиподписи: валидаторы, пропустившие токен без валидного PoW, теряют репутацию.
  4. Drift (Медленный дрейф) — ежедневная конкурентная ротация автоматически исключает из Комитета узлы, чья полезность (utility) падает.
  5. DDA Griefing (Атака на сложность) — динамический алгоритм подстройки сложности (DDA) успешно амортизирует спам-волны токенов, не давая сломать доступ в сеть.
  6. Eclipse Attack (Атака Затмения) — алгоритм k-buckets (на основе Kademlia DHT) обязывает узлы иметь дальние связи (long-range links), делая изоляцию честного узла невозможной.

⚙️ Установка и Запуск

Симуляция написана на чистом Python и не требует сложной инфраструктуры. Вся криптография (BLS12-381) реализована поверх py_ecc (Pure Python).

Зависимости

  • Python 3.10+
  • simpy
  • networkx
  • numpy, pandas
  • matplotlib
  • py_ecc

Установка

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Генерация полного отчёта

Вы можете самостоятельно прогнать все тесты (юнит-тесты и 6 сценариев симуляции) с помощью одного скрипта. Он сгенерирует файл full_report.txt и построит графики в директории results/:

python generate_report.py

Запуск отдельных сценариев

CLI-интерфейс позволяет запускать сценарии атак изолированно:

# Доступные команды: sybil, fraud, drift, censorship, churn, false_acc, dda, eclipse, all
python main.py eclipse

Графики топологии, состава комитета и сложности PoW будут сохранены в папке results/<название_сценария>/.

About

A discrete-event simulation of the VAN Protocol: a Sybil-resistant decentralized consensus architecture based on IP/CIDR topology and cryptographic justice.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages