Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
aimp — Un protocolo de red sin servidor diseñado para la sincronización de estado resistente entre agentes autónomos en redes fragmentadas y de bajo ancho de banda. | Kitploit
Herramientas/GitHubGitHub/fabriziosalmi/aimp
Seguridad de Sistemas EmbebidosSeguridad IoTSeguridad de RedesCriptografíaSeguridad de HardwareInteligencia de AmenazasAprendizaje AutomáticoPapers e InvestigaciónAprendizaje y Educación
GitHubfabriziosalmi/aimp

aimp

Un protocolo de red sin servidor diseñado para la sincronización de estado resistente entre agentes autónomos en redes fragmentadas y de bajo ancho de banda.

51hace 8 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver RepositorioSitio web

AIMP — Protocolo de Malla de IA

CI License: MIT Rust ResearchGate ResearchHub

Un protocolo de red experimental y sin servidor para la sincronización de estado resiliente entre agentes autónomos en redes fragmentadas y de bajo ancho de banda. Construido sobre Merkle-CRDTs e identidad criptográfica — sin autoridad central, sin DNS global, siempre escribible.


Artículos

#VersiónTítuloEnlace
1v0.1.0Protocolo Merkle-CRDT (L1/L2)ResearchGate
2v0.2.0Capa Epistémica (L3)ResearchGate
3v0.3.0Agregación Consciente de Correlación (L3)ResearchGate
4v0.4.0Topologías Semánticas Deterministas (L3)ResearchGate

Perfiles del autor: ResearchGate · ResearchHub


Pila de Protocolo


Novedades

v0.4.0 — Topologías Semánticas Deterministas

L3 v0.3.0 requería que las aplicaciones construyeran manualmente el grafo de conocimiento (aristas de Apoya/Contradice). v0.4.0 elimina este cuello de botella con la generación autónoma de aristas:

  • Las afirmaciones llevan un QuantizedEmbedding([u64; 4]) opcional — un SimHash de 256 bits calculado del lado de la aplicación a partir de un modelo de embedding canónico.
  • En cada límite de época, el protocolo calcula distancias de Hamming por pares (XOR + popcount, ~1 ns por par) y emite aristas de Apoya para pares cercanos (d <= 30 bits) y de Contradice para pares lejanos (d >= 200 bits).
  • La fuerza de la arista escala linealmente con la distancia en puntos base (d=0 → 10000 pb, d=30 → 1000 pb).
  • Un límite max_k_nearest acota la densidad de aristas a O(N), evitando la explosión de la propagación de confianza.
  • embedding_version: u32 aísla espacios latentes disjuntos para actualizaciones de modelo a nivel de protocolo.
  • Las auto-aristas se materializan mediante gossip L2, sobreviviendo al GC mediante Enrutamiento Holográfico.
  • Zona muerta (31-199 bits) huérfana de afirmaciones ambiguas — aislamiento epistemológicamente correcto.
root@kitploit:~
// Descubrimiento autónomo de verdad: 10,000 afirmaciones → escaneo de 50 ms, aristas O(N)
// Sin flotantes. Sin coordinación. Sin autoridad central.
let edges = auto_edge_generator.generate_edges(&epoch_claims);

v0.3.0 — Agregación de Creencia Consciente de Correlación

L3 v0.2.0 asume que todas las fuentes de evidencia son estadísticamente independientes (Naive Bayes). Esto produce hiperconfianza patológica cuando sensores físicamente correlacionados (ej., 100 dispositivos IoT en el mismo tejado) o agentes semánticamente correlacionados (ej., LLMs ajustados en el mismo conjunto de datos) reportan observaciones concordantes.

v0.3.0 introduce Descuento de Correlación por Celda de Cuadrícula:

  • Cada afirmación lleva un CorrelationCell(u64) opcional — una coordenada discreta para proximidad espacial, semántica o temporal.
  • Dentro de cada celda, la evidencia se ordena por fuerza y se descuenta geométricamente: la fuente más fuerte retiene el 100% del peso; cada fuente subsiguiente recibe discount_bps^rank / 10000^rank (por defecto 30%).
  • Con un descuento del 30%, N sensores correlacionados convergen a ~1.42x la evidencia de un solo sensor — independientemente de N. El enfoque ingenuo produciría amplificación Nx.
  • El desafío de asociatividad CRDT (la decadencia geométrica no es asociativa a través de fusiones parciales) se resuelve arquitectónicamente: la reducción de época agrupa por (temporal_grid, fingerprint, correlation_cell), garantizando cómputo atómico sobre el conjunto completo.
  • Las afirmaciones con correlation_cell: None se comportan idénticamente a v0.2.0 (regresión cero).
  • Toda la aritmética es solo de enteros (i32/i64, puntos base). Sin flotantes. Listo para ZK.
root@kitploit:~
// 100 sensores co-ubicados, 70% de confianza cada uno:
// v0.2.0 (ingenuo):  100 × 847 = 84,700 mili-log-odds → ~100% (hiperconfiado)
// v0.3.0 (30%):    847 × Σ(0.3^i) ≈ 1,207 mili-log-odds → ~77% (realista)

Arquitectura

root@kitploit:~
aimp_node/          Implementación de referencia en Rust (miembro del espacio de trabajo Cargo)
  src/
    crdt/           Motor Merkle-DAG, modelo de actor, asignador de arena, consenso de quórum
    crypto/         Identidad Ed25519, hash BLAKE3, firewall de confianza cero
    network/        Gossip UDP, sesiones Noise Protocol XX, limitación de frecuencia por par
    protocol/       Formato de cable (MessagePack), enumeración de payloads tipados
    epistemic.rs    Capa Epistémica L3 (v0.3.0): log-odds, propagación de confianza, descuento de correlación
    semantic_topology.rs  Topología Semántica L3 (v0.4.0): embeddings SimHash, generación automática de aristas
    decision_engine.rs  Motor de decisión determinista conectable (trait + motor de reglas + recarga en caliente)
    error.rs        Jerarquía unificada de tipos AimpError
    dashboard/      TUI con Ratatui
    config.rs       Configuración dinámica con validación
    event/          Registro estructurado + métricas Prometheus (contadores + histogramas)
  tests/            Pruebas de integración
  benches/         Puntos de referencia Criterion
aimp_testbed/       SDK de Python (aimp-client) + herramienta CLI + pruebas de caos
deploy/             Servicio systemd, microVM Firecracker, script de instalación
formal/             Especificación de convergencia TLA+, seguridad de quórum y convergencia de creencias
docs/               Artículo 1 (fuente Typst + PDF)
v0.2.0/             Artículo 2: Capa Epistémica (fuente Typst + PDF)
v0.3.0/             Artículo 3: Agregación Consciente de Correlación (fuente Typst + PDF)

Ventajas Estratégicas


Características Clave

Motor Central (v0.1.0)

  • Modelo de Actor con CRDT de estado compartido cero mediante tokio::mpsc
  • Asignación Slab/Arena con inserción O(1) y diseño SoA
  • Persistencia duradera mediante redb con cifrado ChaCha20Poly1305 en reposo
  • Derivación de clave HKDF-SHA256 con separación de dominios
  • Raíz Merkle en caché con invalidación al escribir
  • GC real de marcar y barrer con recuperación de memoria de slab
  • Seguimiento de GC basado en épocas integrado en el actor CRDT

Capa Epistémica (v0.2.0 — v0.4.0)

  • Aritmética de log-odds enteros (i32, mili-log-odds) — sin flotantes, 100% determinista
  • Propagación de confianza markoviana de dos pasos (Apoya → Contradicciones, sin oscilación)
  • Reputación resistente a Sybil: los nuevos nodos comienzan en 0, se requiere delegación, gasto de reputación
  • Reducción de época alineada con cuadrícula y compactación materializada (los resúmenes sobreviven al GC)
  • Detección de ciclos (DFS ordenado) evita bucles de inflación de confianza
  • v0.3.0: Agregación consciente de correlación — descuento geométrico para sensores/LLMs co-ubicados
  • v0.3.0: Reducción atómica de celda — agrupación por (época, fingerprint, celda) para seguridad CRDT
  • v0.4.0: Topologías semánticas deterministas — embeddings SimHash, generación autónoma de aristas
  • 98-142x más rápido que Lógica Subjetiva / Dempster-Shafer (idéntico bit a bit entre arquitecturas)

Red y Seguridad

  • Sesiones cifradas Noise Protocol XX (activadas por defecto)
  • Limitación de frecuencia por par con cubo de fichas (aritmética entera)
  • Desduplicación de gossip O(1) mediante HashSet + VecDeque
  • Detección de ataques de reproducción TTL con interruptor de circuito
  • Evicción LRU de sesiones (TTL + número máximo)
  • Negociación de rango de versión de protocolo para actualizaciones continuas

Motor de Decisión y Consenso

  • Trait DecisionEngine conectable con implementación RuleEngine
  • Reglas de recarga en caliente desde aimp_rules.json (sin necesidad de reinicio)
  • Votación de quórum BFT con decisiones verificadas persistentes
  • Enumeración tipada Payload por código de operación (seguridad en tiempo de compilación)

Observabilidad

  • Contadores, medidores e histogramas de latencia de Prometheus
  • Punto final /health compuesto con subcomprobaciones y códigos de estado HTTP
  • Registro estructurado de eventos con panel TUI

Operaciones

  • Jerarquía unificada de tipos AimpError (sin más Box<dyn Error>)
  • Validación de configuración (rechaza combinaciones de parámetros inválidas)
  • Apagado gradual con tiempo de espera de 5 segundos
  • Archivo de servicio systemd reforzado
  • CI/CD: lint, pruebas, auditoría de seguridad, documentación, versiones compiladas de forma cruzada

Puntos de Referencia

Medidos con Criterion en Apple Silicon (serie M), monohilo, modo fast-crypto:

Nivel de Sistema

Clúster simulado de 5 nodos con sincronización anti-entropía (en proceso, Apple Silicon):

Degradación de Red (simulación netem)

Convergencia bajo pérdida de paquetes simulada, latencia y particiones (5 nodos, 50 mutaciones/nodo):

AIMP converge hasta ~80% de pérdida de paquetes en unas pocas rondas anti-entropía, degradándose gradualmente.

Multiplataforma (ARM64 con recursos limitados)

Docker ARM64 Linux con límites de recursos similares a Raspberry Pi:

Incluso en hardware clase RPi Zero, el rendimiento es 3 órdenes de magnitud por encima del límite de frecuencia.

Comparación con Automerge v0.7

Mismo hardware, mismas operaciones, monohilo, target-cpu=native:

AIMP con ring supera a Automerge en 1.37x en mutaciones (con Ed25519 por escritura) y 2.4x en fusión. Yrs es más rápido en mutación (sin criptografía), pero la fusión de AIMP está dentro del 26% de Yrs.

root@kitploit:~
# Habilitar backend ring para máximo rendimiento
RUSTFLAGS="-C target-cpu=native" cargo run --release --features fast-crypto,fast-alloc

Ejecutar puntos de referencia localmente:

root@kitploit:~
cargo bench --manifest-path aimp_node/Cargo.toml             # Micro-puntos de referencia
cargo run --release -p aimp_node --example bench_convergence  # Puntos de referencia del sistema
cargo run --release -p aimp_node --example bench_netem        # Degradación de red
docker build -f Dockerfile.bench -t aimp-bench . && \
  docker run --rm --memory=1g --cpus=1 aimp-bench             # ARM64 con restricciones

Verificación Formal (TLA+)

L2 — Convergencia CRDT

PropiedadDescripción

TLC exploró 46,063 estados (9,558 distintos) hasta profundidad 16 en <1 segundo con 10 trabajadores paralelos y cero violaciones. Errores encontrados: 2 errores de corrección (cabezas fuera de orden, doble voto en quórum). Ambos corregidos.

L3 — Convergencia de Creencia

PropiedadDescripción

Verificación exhaustiva acotada: 199,902 configuraciones (5 propiedades, hasta N=6 nodos). Errores encontrados: 1 error en la fórmula de propagación de confianza (t_{k+1} = t_k + At_k vs correcto t_{k+1} = t_0 + At_k). Corregido.


Inicio Rápido

1. Ejecutar el Nodo

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

2. CLI de Python

root@kitploit:~
cd aimp_testbed
pip install -e .
aimp-cli health --target 127.0.0.1 --metrics-port 9090
aimp-cli infer "Check valve pressure in sector north"

3. Ejecutar Pruebas y Puntos de Referencia

root@kitploit:~
make test                     # Pruebas basadas en propiedades + integración
make bench                    # Puntos de referencia Criterion
make lint                     # Formato + clippy
make docs                     # Generar rustdoc

Despliegue en el Borde

AIMP está diseñado para ejecutarse como un único binario estático sin dependencias de tiempo de ejecución. Sin Docker, sin tiempo de ejecución de contenedor, sin JVM.

Despliegue Rápido (hardware real)

root@kitploit:~
# Descargar el binario para su arquitectura
curl -LO https://github.com/fabriziosalmi/aimp/releases/latest/download/aimp_node-aarch64-linux
chmod +x aimp_node-aarch64-linux

# Instalar como servicio systemd
sudo deploy/install.sh ./aimp_node-aarch64-linux

# Iniciar
sudo systemctl start aimp-node
curl localhost:9090/health

Compilación Cruzada desde el Código Fuente

root@kitploit:~
make install-cross-targets   # Una vez: instalar objetivos musl
make edge-arm64              # ARM64 (RPi 4/5, Jetson, Graviton)
make edge-armv7              # ARMv7 (RPi 2/3, PLCs industriales)
make edge-x86                # x86_64 (puertas de enlace de borde)
make edge-all                # Todos los tres

MicroVM Firecracker (aislamiento multiinquilino)

Para puertas de enlace de borde que ejecutan múltiples cargas de trabajo no confiables:

root@kitploit:~
sudo make microvm-rootfs     # Construye ~15MB de rootfs Alpine con AIMP
firecracker --no-api --config-file deploy/firecracker/vm-config.json

Tiempo de arranque: ~125ms. Memoria: 64MB. vCPU: 1.

Servicio Systemd

El archivo de servicio incluido (deploy/systemd/aimp-node.service) proporciona:


Configuración

La configuración se carga desde (prioridad más alta primero):

  1. Argumentos CLI (--port, --name)
  2. Variables de entorno (AIMP_PORT, AIMP_NOISE_REQUIRED, AIMP_PEER_RATE_LIMIT, ...)
  3. Archivo aimp.toml (opcional)
  4. Valores predeterminados codificados

Flujo de Datos

root@kitploit:~
graph TD
    UDP[Socket UDP] -->|Sobre| RL[Limitador de Frecuencia]
    RL -->|Permitido| NP[Noise Protocol]
    NP -->|Descifrar| FW[Cortafuegos de Seguridad]
    FW -->|Válido| BP[Semáforo de Contrapresión]
    BP -->|Permiso| Parser[Analizador de Protocolo]
    Parser -->|AimpData| CRDT[Actor CRDT]
    CRDT -->|Mutación| DAG[Merkle-DAG + redb]
    DAG -->|Podar| GC[GC de Época]
    CRDT -->|Solicitud de Evaluación| DE[Motor de Decisión]
    DE -->|Decisión + Evidencia| CRDT
    CRDT -->|Voto de Quórum| QM[Gestor de Quórum]

Trabajo Relacionado

AIMP se basa en conceptos de las siguientes áreas de investigación en sistemas distribuidos:

  • CRDTs — Shapiro et al., "Un Estudio Integral de Tipos de Datos Replicados Convergentes y Conmutativos" (INRIA, 2011)
  • Merkle-CRDTs — Kleppmann & Howard, "Consistencia Eventual Bizantina y los Límites Fundamentales de las Bases de Datos Peer-to-Peer" (2022)
  • Consenso BFT — Castro & Liskov, "Tolerancia Práctica a Fallos Bizantinos" (OSDI, 1999)
  • Agregación Bayesiana — Jaynes, "Teoría de la Probabilidad: La Lógica de la Ciencia" (2003); aritmética de log-odds para fusión de creencias
  • Redes de Confianza — Kamvar et al., "El Algoritmo EigenTrust para Gestión de Reputación en Redes P2P" (WWW, 2003)
  • Lógica Subjetiva — Jøsang, "Lógica Subjetiva: Un Formalismo para Razonar Bajo Incertidumbre" (Springer, 2016)
  • Cópulas — Nelsen, "Una Introducción a las Cópulas" (Springer, 2006); modelado de correlación para evidencia dependiente
  • Noise Protocol — Perrin, "El Marco del Protocolo Noise" (2018); utilizado a través de la crate snow para el patrón de enlace XX
  • Protocolos de Gossip — Demers et al., "Algoritmos Epidémicos para el Mantenimiento de Bases de Datos Replicadas" (1987)
  • Árboles Merkle — Merkle, "Una Firma Digital Basada en una Función de Cifrado Convencional" (CRYPTO, 1987)
  • Relojes Vectoriales — Mattern, "Tiempo Virtual y Estados Globales de Sistemas Distribuidos" (1988)

Licencia

MIT — Fabrizio Salmi, 2026.

Descargar herramienta
CapaVersiónPropósito
L1/L2v0.1.0CRDT Merkle-DAG, firma Ed25519, transporte Noise Protocol, quórum BFT
L3v0.2.0Capa Epistémica: log-odds enteros, propagación de confianza en dos pasos, reputación resistente a Sybil
L3v0.3.0Agregación Consciente de Correlación: descuento geométrico para sensores/LLMs correlacionados
L3v0.4.0Topologías Semánticas Deterministas: generación autónoma de aristas mediante SimHash de 256 bits
CaracterísticaAIMP (Merkle-CRDT)Tradicional (Raft/Paxos)
TopologíaMalla P2P / DescentralizadoLíder / Quórum
DisponibilidadAP (Siempre Escribible)CP (Requiere Mayoría)
OrdenamientoCausal (Relojes Vectoriales)Total (Secuencial)
IntegridadCriptográfico (Merkle-DAG)Basado en registros
HardwareOptimizado para Edge/IoTGrado Centro de Datos
OperaciónTiempoRendimiento
append_mutation (100 ops)41.8 µs~2.4M mutaciones/s
get_merkle_root (en caché)4.8 nsO(1)
Hash BLAKE3 (1 KB)925 ns~1.08 GB/s
Ser / De MessagePack204 / 210 ns—
Firma Ed25519 (ring)9.3 µs~108K ops/s
Verificación Ed2551925.0 µs~40K ops/s
EscenarioResultado
Rendimiento (5 nodos x 1000 mutaciones, con firma Ed25519)96,289 mutaciones/s
Convergencia (5 nodos divergentes, 250 DAG cada uno)0.68 ms (1 ronda de sincronización)
Partición/Fusión (2 grupos, 30 mutaciones/grupo, fusión completa)0.21 ms
Ruta crítica criptográfica (firmar + verificar por mensaje)45.0 µs → 22K msg/s máximo
Presupuesto criptográfico con rate_limit=50/s0.23% de utilización
CondiciónConvergióRondas
Línea base (0% pérdida)SÍ1
10% pérdida de paquetesSÍ2
30% pérdida de paquetesSÍ2
50% pérdida de paquetesSÍ2
20% pérdida + 100ms latencia + 30ms fluctuaciónSÍ2
Partición (10 rondas) luego fusiónSÍ1
Partición (50 rondas) luego fusión con 20% pérdidaSÍ1
80% pérdida de paquetes (estrés)SÍ4
MétricamacOS ARM64Linux 1C/1GB (RPi 4)Linux 1C/256MB (RPi Zero)
Rendimiento96,289 mut/s24,802 mut/s29,709 mut/s
Convergencia0.68 ms3.06 ms1.30 ms
Firma Ed255198.7 µs16.2 µs15.1 µs
Verificación Ed2551920.5 µs34.6 µs45.2 µs
Máx msg/s34,32919,69516,573
Presupuesto criptográfico @50/s0.15%0.25%0.30%
Punto de referenciaAIMP (ring)AutomergeYrs (Yjs)
Mutación (1000 ops)129K ops/s94K ops/s632K ops/s
Fusión de 2 réplicas0.48 ms1.17 ms0.38 ms
Fusión de 5 réplicas2.16 ms3.89 ms—
Tamaño de estado (1000 ops)~18 KB4 KB—
Estado
ConvergenciaSi dos nodos poseen el mismo almacén, calculan las mismas cabezas MerkleVerificado
SeguridadDeQuórumSi se alcanza quórum para una instrucción, la decisión es única (sin decisiones conflictivas)Verificado
VivacidadDeQuórumSi todos los nodos votan por la misma decisión, el umbral de quórum se alcanza eventualmenteVerificado
Estado
DeterminismoDeCreenciaMismas afirmaciones + grafo → estado de creencia idéntico en todos los nodosVerificado
SinOscilaciónLos valores de confianza convergen monótonamente (sin retroalimentación de Paso 2 → Paso 1)Verificado
SeguridadDeContradicciónUna sola contradicción no puede cambiar Aceptado → Rechazado en un pasoVerificado
ReforzamientoValor
Aislamiento de usuarioUsuario dedicado aimp, sin shell de inicio de sesión
Sistema de archivosProtectSystem=strict, ProtectHome=yes
Límite de memoriaMemoryMax=128M
Límite de CPUCPUQuota=80%
PrivilegiosNoNewPrivileges=yes, MemoryDenyWriteExecute=yes
Filtro de llamadas al sistemaLista blanca @system-service
ReinicioEn fallo con retroceso exponencial
ApagadoSIGTERM → 10s de gracia → SIGKILL
ParámetroPredeterminadoDescripción
port1337Puerto de escucha UDP
metrics_port9090Puerto HTTP de Prometheus
noise_requiredtrueExigir cifrado Noise Protocol
peer_rate_limit50Máx. mensajes/s por par
peer_rate_burst100Capacidad de ráfaga del cubo de fichas
gc_mutation_threshold1000Mutaciones antes de la limpieza GC
quorum_threshold2Nodos requeridos para consenso BFT
dag_history_depth100Profundidad máxima del DAG retenida después de GC