Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/fabriziosalmi/aimp
Безопасность встроенных системБезопасность IoTСетевая безопасностьКриптографияАппаратная БезопасностьРазведка угрозМашинное ОбучениеСтатьи и ИсследованияОбучение и Образование
GitHubfabriziosalmi/aimp

aimp

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

51428 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
РепозиторийСайт

AIMP — Протокол ИИ-меш (AI Mesh Protocol)

CI License: MIT Rust ResearchGate ResearchHub

Экспериментальный бессерверный сетевой протокол для устойчивой синхронизации состояний между автономными агентами во фрагментированных сетях с низкой пропускной способностью. Построен на Merkle-CRDT и криптографической идентичности — без центрального органа, без глобального DNS, всегда доступен для записи.


Статьи

#ВерсияНазваниеСсылка
1v0.1.0Merkle-CRDT Protocol (L1/L2)ResearchGate
2v0.2.0Epistemic Layer (L3)ResearchGate
3v0.3.0Correlation-Aware Aggregation (L3)ResearchGate
4v0.4.0Deterministic Semantic Topologies (L3)ResearchGate

Профили авторов: ResearchGate · ResearchHub


Стек протокола


Что нового

v0.4.0 — Детерминированные семантические топологии

L3 v0.3.0 требовал от приложений ручного построения графа знаний (рёбра Supports/Contradicts). v0.4.0 устраняет это узкое место с помощью автономной генерации рёбер:

  • Утверждения (claims) содержат опциональный QuantizedEmbedding([u64; 4]) — 256-битный SimHash, вычисляемый на стороне приложения из канонической модели эмбеддинга.
  • На каждой границе эпохи протокол вычисляет попарные расстояния Хэмминга (XOR + popcount, ~1 нс на пару) и создаёт рёбра Supports для близких пар (d <= 30 бит) и рёбра Contradicts для удалённых пар (d >= 200 бит).
  • Сила ребра линейно масштабируется с расстоянием в базисных пунктах (d=0 → 10000 бп, d=30 → 1000 бп).
  • Ограничение max_k_nearest ограничивает плотность рёбер до O(N), предотвращая взрыв распространения доверия.
  • embedding_version: u32 изолирует непересекающиеся латентные пространства для обновлений модели на уровне протокола.
  • Авто-рёбра материализуются через L2 gossip и переживают GC благодаря голографической маршрутизации.
  • Мёртвая зона (31-199 бит) изолирует двусмысленные утверждения — эпистемологически корректное отделение.
root@kitploit:~
// Автономное обнаружение истины: 10 000 утверждений → сканирование за 50 мс, O(N) рёбер
// Без чисел с плавающей запятой. Без координации. Без центрального органа.
let edges = auto_edge_generator.generate_edges(&epoch_claims);

v0.3.0 — Агрегация убеждений с учётом корреляции

L3 v0.2.0 предполагает, что все источники свидетельств статистически независимы (наивный Байес). Это приводит к патологической сверхуверенности, когда физически коррелированные сенсоры (например, 100 устройств IoT на одной крыше) или семантически коррелированные агенты (например, LLM, дообученные на одном наборе данных) сообщают согласованные наблюдения.

v0.3.0 вводит дисконтирование корреляции с помощью сеточных ячеек (Grid-Cell Correlation Discounting):

  • Каждое утверждение может содержать опциональный CorrelationCell(u64) — дискретную координату для пространственной, семантической или временной близости.
  • Внутри каждой ячейки свидетельства ранжируются по силе и геометрически дисконтируются: самый сильный источник сохраняет 100% веса; каждый последующий источник получает discount_bps^rank / 10000^rank (по умолчанию 30%).
  • При дисконте 30% N коррелированных сенсоров сходятся примерно к ~1.42x свидетельства от одного сенсора — независимо от N. Наивный подход дал бы усиление в N раз.
  • Проблема ассоциативности CRDT (геометрическое затухание не ассоциативно при частичном слиянии) решается архитектурно: сокращение эпох группируется по (temporal_grid, fingerprint, correlation_cell), гарантируя атомарное вычисление над полным набором.
  • Утверждения с correlation_cell: None ведут себя идентично v0.2.0 (нулевая регрессия).
  • Вся арифметика целочисленная (i32/i64, базисные пункты). Без чисел с плавающей запятой. Готово для ZK.
root@kitploit:~
// 100 со-локализованных сенсоров, уверенность 70% каждый:
// v0.2.0 (наивный):  100 × 847 = 84 700 милли-лог-шансов → ~100% (сверхуверенность)
// v0.3.0 (30%):    847 × Σ(0.3^i) ≈ 1 207 милли-лог-шансов → ~77% (реалистично)

Архитектура

root@kitploit:~
aimp_node/          Эталонная реализация на Rust (член рабочей области Cargo)
  src/
    crdt/           Движок Merkle-DAG, модель акторов, аллокатор arena, консенсус кворума
    crypto/         Идентичность Ed25519, хеширование BLAKE3, межсетевой экран с нулевым доверием
    network/        UDP gossip, сессии Noise Protocol XX, ограничение скорости на пира
    protocol/       Формат провода (MessagePack), типизированное перечисление полезной нагрузки
    epistemic.rs    Эпистемический слой L3 (v0.3.0): лог-шансы, распространение доверия, дисконтирование корреляции
    semantic_topology.rs  Семантическая топология L3 (v0.4.0): эмбеддинги SimHash, авто-генерация рёбер
    decision_engine.rs  Подключаемый детерминированный движок принятия решений (trait + движок правил + горячая перезагрузка)
    error.rs        Единая иерархия типов AimpError
    dashboard/      TUI на Ratatui
    config.rs       Динамическая конфигурация с валидацией
    event/          Структурированное логирование + метрики Prometheus (счётчики + гистограммы)
  tests/            Интеграционные тесты
  benches/          Бенчмарки Criterion
aimp_testbed/       Python SDK (aimp-client) + CLI-инструмент + тестирование хаоса
deploy/             Systemd-сервис, Firecracker microVM, скрипт установки
formal/             Спецификация TLA+ для сходимости, безопасности кворума и сходимости убеждений
docs/               Статья 1 (исходник Typst + PDF)
v0.2.0/             Статья 2: Эпистемический слой (исходник Typst + PDF)
v0.3.0/             Статья 3: Агрегация с учётом корреляции (исходник Typst + PDF)

Стратегические преимущества


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

Базовый движок (v0.1.0)

  • Модель акторов с CRDT без общего состояния через tokio::mpsc
  • Аллокация Slab/Arena со вставкой O(1) и компоновкой SoA
  • Устойчивое хранение через redb с шифрованием ChaCha20Poly1305 в состоянии покоя
  • Вывод ключей HKDF-SHA256 с разделением доменов
  • Кешированный корень Меркла с инвалидацией при записи
  • Настоящий mark-and-sweep GC с возвратом памяти slab
  • Эпохальное отслеживание GC, встроенное в актор CRDT

Эпистемический слой (v0.2.0 — v0.4.0)

  • Целочисленная арифметика лог-шансов (i32, милли-лог-шансы) — без чисел с плавающей запятой, 100% детерминированно
  • Двухпроходное марковское распространение доверия (Supports → Contradictions, без осцилляций)
  • Sybil-устойчивая репутация: новые узлы начинают с 0, требуется делегирование, трата репутации
  • Сокращение эпох с выравниванием по сетке (Grid-aligned epoch reduction) и материализованное сжатие (Summaries переживают GC)
  • Обнаружение циклов (сортированный DFS) предотвращает петли инфляции уверенности
  • v0.3.0: Агрегация с учётом корреляции — геометрическое дисконтирование для со-локализованных сенсоров / LLM
  • v0.3.0: Атомарное сокращение ячеек — группировка по (эпоха, отпечаток, ячейка) для безопасности CRDT
  • v0.4.0: Детерминированные семантические топологии — эмбеддинги SimHash, автономная генерация рёбер
  • В 98–142 раза быстрее субъективной логики / Dempster-Shafer (побитово идентично на разных архитектурах)

Сеть и безопасность

  • Зашифрованные сессии Noise Protocol XX (включены по умолчанию)
  • Ограничение скорости на пира с помощью token bucket (целочисленная арифметика)
  • Дедупликация gossip за O(1) через HashSet + VecDeque
  • Обнаружение атак повторного воспроизведения TTL с автоматическим выключателем
  • Вытеснение сессий по LRU (TTL + максимальное количество)
  • Согласование диапазона версий протокола для плавных обновлений

Движок принятия решений и консенсус

  • Подключаемый trait DecisionEngine с реализацией RuleEngine
  • Горячая перезагрузка правил из aimp_rules.json (без перезапуска)
  • Голосование кворума BFT с сохраняемыми проверенными решениями
  • Типизированное перечисление Payload по коду операции (безопасность на этапе компиляции)

Наблюдаемость

  • Счётчики Prometheus, измерители и гистограммы задержек
  • Составная конечная точка /health с подпроверками и HTTP-кодами состояния
  • Структурированное логирование SystemEvent с TUI-панелью

Эксплуатация

  • Единая иерархия типов AimpError (больше никакого Box<dyn Error>)
  • Валидация конфигурации (отклоняет недопустимые комбинации параметров)
  • Корректное завершение с таймаутом 5 секунд
  • Укреплённый файл службы systemd
  • CI/CD: линтинг, тестирование, аудит безопасности, документация, кросскомпилированные релизы

Бенчмарки

Измерены с помощью Criterion на Apple Silicon (M-серия), однопоточный режим, fast-crypto:

Системный уровень

Симуляция кластера из 5 узлов с антиэнтропийной синхронизацией (внутрипроцессно, Apple Silicon):

Сетевые помехи (симуляция netem)

Сходимость при симулированных потере пакетов, задержке и разделении (5 узлов, 50 мутаций/узел):

AIMP сходится при потерях пакетов до ~80% в течение нескольких раундов антиэнтропии, деградируя плавно.

Кроссплатформенность (ARM64 с ограниченными ресурсами)

Docker ARM64 Linux с ограничениями ресурсов класса RPi:

Даже на оборудовании класса RPi Zero пропускная способность на 3 порядка выше предела скорости.

Сравнение с Automerge v0.7

То же оборудование, те же операции, однопоточный режим, target-cpu=native:

AIMP с ring превосходит Automerge в 1,37 раза по мутациям (с Ed25519 на каждую запись) и в 2,4 раза по слиянию. Yrs быстрее всего по мутациям (без криптографии), но слияние AIMP отстаёт от Yrs всего на 26%.

root@kitploit:~
# Включить бэкенд ring для максимальной пропускной способности
RUSTFLAGS="-C target-cpu=native" cargo run --release --features fast-crypto,fast-alloc

Запустить бенчмарки локально:

root@kitploit:~
cargo bench --manifest-path aimp_node/Cargo.toml             # Микро-бенчмарки
cargo run --release -p aimp_node --example bench_convergence  # Системные бенчмарки
cargo run --release -p aimp_node --example bench_netem        # Сетевые помехи
docker build -f Dockerfile.bench -t aimp-bench . && \
  docker run --rm --memory=1g --cpus=1 aimp-bench             # ARM64 с ограничениями

Формальная верификация (TLA+)

L2 — Сходимость CRDT

СвойствоОписание

TLC исследовал 46 063 состояния (9 558 уникальных) на глубину 16 менее чем за 1 секунду с 10 параллельными рабочими и нулевыми нарушениями. Найденные ошибки: 2 ошибки корректности (головы не по порядку, двойное голосование в кворуме). Обе исправлены.

L3 — Сходимость убеждений

СвойствоОписаниеСтатус

Исчерпывающая ограниченная верификация: 199 902 конфигурации (5 свойств, до N=6 узлов). Найденные ошибки: 1 ошибка в формуле распространения доверия (t_{k+1} = t_k + At_k вместо правильного t_{k+1} = t_0 + At_k). Исправлена.


Быстрый старт

1. Запустить узел

root@kitploit:~
cargo run -- --port 1337 --name node1

2. Python CLI

root@kitploit:~
cd aimp_testbed
pip install -e .
aimp-cli health --target 127.0.0.1 --metrics-port 9090
aimp-cli infer "Проверить давление клапана в северном секторе"

3. Запустить тесты и бенчмарки

root@kitploit:~
make test                     # Свойственные и интеграционные тесты
make bench                    # Бенчмарки Criterion
make lint                     # Форматирование + clippy
make docs                     # Сгенерировать rustdoc

Развёртывание на периферии (Edge)

AIMP спроектирован для работы как один статический бинарник с нулевыми зависимостями времени выполнения. Без Docker, без контейнерного рантайма, без JVM.

Быстрое развёртывание (голый металл)

root@kitploit:~
# Скачать бинарник для вашей архитектуры
curl -LO https://github.com/fabriziosalmi/aimp/releases/latest/download/aimp_node-aarch64-linux
chmod +x aimp_node-aarch64-linux

# Установить как systemd-сервис
sudo deploy/install.sh ./aimp_node-aarch64-linux

# Запустить
sudo systemctl start aimp-node
curl localhost:9090/health

Кросскомпиляция из исходников

root@kitploit:~
make install-cross-targets   # Однократно: установить цели musl
make edge-arm64              # ARM64 (RPi 4/5, Jetson, Graviton)
make edge-armv7              # ARMv7 (RPi 2/3, промышленные ПЛК)
make edge-x86                # x86_64 (периферийные шлюзы)
make edge-all                # Все три

Firecracker MicroVM (многопользовательская изоляция)

Для периферийных шлюзов, выполняющих несколько ненадёжных нагрузок:

root@kitploit:~
sudo make microvm-rootfs     # Собирает ~15 МБ Alpine rootfs с AIMP
firecracker --no-api --config-file deploy/firecracker/vm-config.json

Время загрузки: ~125 мс. Память: 64 МБ. vCPU: 1.

Systemd-сервис

Прилагаемый файл службы (deploy/systemd/aimp-node.service) обеспечивает:


Конфигурация

Конфигурация загружается из (в порядке убывания приоритета):

  1. Аргументы CLI (--port, --name)
  2. Переменные окружения (AIMP_PORT, AIMP_NOISE_REQUIRED, AIMP_PEER_RATE_LIMIT, ...)
  3. Файл aimp.toml (опционально)
  4. Жёстко заданные значения по умолчанию

Поток данных

root@kitploit:~
graph TD
    UDP[UDP-сокет] -->|Конверт| RL[Ограничитель скорости]
    RL -->|Разрешено| NP[Noise Protocol]
    NP -->|Расшифровка| FW[Безопасность - межсетевой экран]
    FW -->|Допустимо| BP[Семафор обратного давления]
    BP -->|Разрешение| Parser[Парсер протокола]
    Parser -->|AimpData| CRDT[Актор CRDT]
    CRDT -->|Мутация| DAG[Merkle-DAG + redb]
    DAG -->|Очистка| GC[Эпохальный GC]
    CRDT -->|Запрос на оценку| DE[Движок решений]
    DE -->|Решение + свидетельство| CRDT
    CRDT -->|Голос кворума| QM[Менеджер кворума]

Связанные работы

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

  • CRDT — Shapiro et al., "A Comprehensive Study of Convergent and Commutative Replicated Data Types" (INRIA, 2011)
  • Merkle-CRDT — Kleppmann & Howard, "Byzantine Eventual Consistency and the Fundamental Limits of Peer-to-Peer Databases" (2022)
  • BFT-консенсус — Castro & Liskov, "Practical Byzantine Fault Tolerance" (OSDI, 1999)
  • Байесовская агрегация — Jaynes, "Probability Theory: The Logic of Science" (2003); арифметика лог-шансов для слияния убеждений
  • Сети доверия — Kamvar et al., "The EigenTrust Algorithm for Reputation Management in P2P Networks" (WWW, 2003)
  • Субъективная логика — Jøsang, "Subjective Logic: A Formalism for Reasoning Under Uncertainty" (Springer, 2016)
  • Копулы — Nelsen, "An Introduction to Copulas" (Springer, 2006); моделирование корреляции для зависимых свидетельств
  • Noise Protocol — Perrin, "The Noise Protocol Framework" (2018); используется через крейт snow для шаблона рукопожатия XX
  • Gossip-протоколы — Demers et al., "Epidemic Algorithms for Replicated Database Maintenance" (1987)
  • Деревья Меркла — Merkle, "A Digital Signature Based on a Conventional Encryption Function" (CRYPTO, 1987)
  • Векторные часы — Mattern, "Virtual Time and Global States of Distributed Systems" (1988)

Лицензия

MIT — Fabrizio Salmi, 2026.

Скачать инструмент
УровеньВерсияНазначение
L1/L2v0.1.0Merkle-DAG CRDT, подпись Ed25519, транспорт Noise Protocol, кворум BFT
L3v0.2.0Эпистемический слой: целочисленные лог-шансы, двухпроходное распространение доверия, Sybil-устойчивая репутация
L3v0.3.0Агрегация с учётом корреляции: геометрическое дисконтирование для коррелированных сенсоров/LLM
L3v0.4.0Детерминированные семантические топологии: автономное построение рёбер через 256-битный SimHash
ОсобенностьAIMP (Merkle-CRDT)Традиционные (Raft/Paxos)
ТопологияP2P Mesh / ДецентрализованнаяЛидер / Кворум
ДоступностьAP (всегда доступен для записи)CP (требуется большинство)
УпорядочиваниеПричинное (векторные часы)Полное (последовательное)
ЦелостностьКриптографическая (Merkle-DAG)Основанная на журнале
ОборудованиеОптимизировано для Edge/IoTУровень дата-центра
ОперацияВремяПропускная способность
append_mutation (100 операций)41,8 мкс~2,4 млн мутаций/с
get_merkle_root (кешированный)4,8 нсO(1)
Хеш BLAKE3 (1 КБ)925 нс~1,08 ГБ/с
MessagePack сериализация / десериализация204 / 210 нс—
Подпись Ed25519 (ring)9,3 мкс~108 тыс. операций/с
Проверка Ed2551925,0 мкс~40 тыс. операций/с
СценарийРезультат
Пропускная способность (5 узлов × 1000 мутаций, с подписью Ed25519)96 289 мутаций/с
Сходимость (5 расходящихся узлов, по 250 DAG каждый)0,68 мс (1 раунд синхронизации)
Разделение/Слияние (2 группы, 30 мутаций/группа, полное слияние)0,21 мс
Крипто-горячий путь (подпись + проверка на сообщение)45,0 мкс → 22 тыс. сообщений/с макс
Бюджет криптографии при rate_limit=50/с0,23% загрузки
УсловиеСошёлсяРаунды
Базовый (0% потерь)ДА1
10% потерь пакетовДА2
30% потерь пакетовДА2
50% потерь пакетовДА2
20% потерь + 100 мс задержки + 30 мс дрожанияДА2
Разделение (10 раундов), затем слияниеДА1
Разделение (50 раундов), затем слияние с 20% потерьДА1
80% потерь пакетов (стресс)ДА4
МетрикаmacOS ARM64Linux 1C/1ГБ (RPi 4)Linux 1C/256МБ (RPi Zero)
Пропускная способность96 289 мутаций/с24 802 мутаций/с29 709 мутаций/с
Сходимость0,68 мс3,06 мс1,30 мс
Подпись Ed255198,7 мкс16,2 мкс15,1 мкс
Проверка Ed2551920,5 мкс34,6 мкс45,2 мкс
Макс. сообщений/с34 32919 69516 573
Бюджет криптографии @50/с0,15%0,25%0,30%
БенчмаркAIMP (ring)AutomergeYrs (Yjs)
Мутации (1000 операций)129 тыс. операций/с94 тыс. операций/с632 тыс. операций/с
Слияние 2 реплик0,48 мс1,17 мс0,38 мс
Слияние 5 реплик2,16 мс3,89 мс—
Размер состояния (1000 операций)~18 КБ4 КБ—
Статус
ConvergenceЕсли два узла владеют одним и тем же хранилищем, они вычисляют одинаковые головы МерклаПодтверждено
QuorumSafetyЕсли кворум достигнут для запроса, решение уникально (нет конфликтующих решений)Подтверждено
QuorumLivenessЕсли все узлы голосуют за одно и то же решение, порог кворума в конечном счёте будет достигнутПодтверждено
BeliefDeterminismОдинаковые утверждения + граф → идентичное BeliefState на всех узлахПодтверждено
NoOscillationЗначения доверия сходятся монотонно (нет обратной связи с Pass 2 → Pass 1)Подтверждено
ContradictionSafetyОдиночное противоречие не может перевести Accepted → Rejected за один шагПодтверждено
УкреплениеЗначение
Изоляция пользователяВыделенный пользователь aimp, без оболочки входа
Файловая системаProtectSystem=strict, ProtectHome=yes
Лимит памятиMemoryMax=128M
Лимит ЦПCPUQuota=80%
ПривилегииNoNewPrivileges=yes, MemoryDenyWriteExecute=yes
Фильтр системных вызововБелый список @system-service
ПерезапускПри сбое с экспоненциальной задержкой
ЗавершениеSIGTERM → 10 с ожидания → SIGKILL
ПараметрПо умолчаниюОписание
port1337Порт прослушивания UDP
metrics_port9090HTTP-порт Prometheus
noise_requiredtrueПринудительное шифрование Noise Protocol
peer_rate_limit50Макс. сообщений/с на пира
peer_rate_burst100Ёмкость пакета token bucket
gc_mutation_threshold1000Количество мутаций до очистки GC
quorum_threshold2Узлов, необходимых для консенсуса BFT
dag_history_depth100Макс. глубина DAG, сохраняемая после GC