AIMP — AI 메시 프로토콜

분열되고 저대역폭 네트워크에서 자율 에이전트 간의 탄력적인 상태 동기화를 위한 실험적 서버리스 네트워킹 프로토콜. Merkle-CRDT 및 **암호화 신원(identity)**을 기반으로 구축되었습니다. 중앙 권한이 없고, 글로벌 DNS가 필요 없으며, 항상 쓰기 가능합니다.
논문
저자 프로필: ResearchGate · ResearchHub
프로토콜 스택
새로운 기능
v0.4.0 — 결정론적 의미 토폴로지
L3 v0.3.0은 애플리케이션이 지식 그래프(Supports/Contradicts 에지)를 수동으로 구성해야 했습니다. v0.4.0은 자율 에지 생성을 통해 이 병목 현상을 제거합니다:
- 클레임(claim)은 선택적
QuantizedEmbedding([u64; 4])를 전달합니다. 이는 애플리케이션 측에서 표준 임베딩 모델로 계산된 256비트 SimHash입니다.
- 각 에포크(epoch) 경계에서 프로토콜은 쌍별 해밍 거리(Hamming distance, XOR + popcount, 쌍당 ~1ns)를 계산하고 가까운 쌍(d <= 30비트)에 대해 Supports 에지를, 먼 쌍(d >= 200비트)에 대해 Contradicts 에지를 생성합니다.
- 에지 강도는 거리에 따라 기본 포인트(basis points, d=0 → 10000 bps, d=30 → 1000 bps) 단위로 선형적으로 조정됩니다.
max_k_nearest 상한은 에지 밀도를 O(N)으로 제한하여 신뢰 전파 폭발을 방지합니다.
embedding_version: u32는 프로토콜 수준 모델 업그레이드를 위해 서로 다른 잠재 공간을 격리합니다.
- 자동 에지는 L2 가십(gossip)을 통해 구체화되며, 홀로그래픽 라우팅(Holographic Routing)을 통해 GC에서도 유지됩니다.
- 데드 존(Dead zone, 31-199비트)은 모호한 클레임을 고립시킵니다. 이는 인식론적으로 올바른 격리입니다.
// 자율 진리 발견: 10,000개 클레임 → 50ms 스캔, O(N) 에지
// 부동소수점 없음. 조정 없음. 중앙 권한 없음.
let edges = auto_edge_generator.generate_edges(&epoch_claims);
v0.3.0 — 상관 인식 신념 집계
L3 v0.2.0은 모든 증거 소스가 통계적으로 독립적이라고 가정합니다(Naive Bayes). 이는 물리적으로 상관된 센서(예: 같은 옥상에 있는 100개의 IoT 기기) 또는 의미적으로 상관된 에이전트(예: 동일한 데이터셋으로 미세 조정된 LLM)가 일치하는 관측을 보고할 때 병리적인 과신을 초래합니다.
v0.3.0은 **그리드 셀 상관 할인(Grid-Cell Correlation Discounting)**을 도입합니다:
- 각 클레임은 선택적
CorrelationCell(u64)를 전달합니다. 이는 공간적, 의미적 또는 시간적 근접성을 위한 이산 좌표입니다.
- 각 셀 내에서 증거는 강도에 따라 순위가 매겨지고 기하학적으로 할인됩니다: 가장 강력한 소스는 100% 가중치를 유지하고, 각 후속 소스는
discount_bps^rank / 10000^rank(기본 30%)를 받습니다.
- 30% 할인 시 N개의 상관 센서는 단일 센서 증거의 약 1.42배로 수렴합니다. N에 관계없이 동일합니다. 순진한 접근 방식은 N배 증폭을 생성합니다.
- CRDT 결합성 문제(기하 감쇠는 부분 병합에서 비결합적)는 에포크 감소 버킷화를 통해 아키텍처적으로 해결됩니다:
(temporal_grid, fingerprint, correlation_cell)로 버킷화하여 완전한 집합에 대한 원자적 계산을 보장합니다.
correlation_cell: None인 클레임은 v0.2.0과 동일하게 동작합니다(제로 회귀).
- 모든 연산은 정수 전용(i32/i64, 기본 포인트)입니다. 부동소수점 없음. ZK 준비 완료.
// 동일 위치에 있는 100개 센서, 각각 70% 신뢰도:
// v0.2.0 (순진): 100 × 847 = 84,700 밀리-로그-오즈 → ~100% (과신)
// v0.3.0 (30%): 847 × Σ(0.3^i) ≈ 1,207 밀리-로그-오즈 → ~77% (현실적)
아키텍처
aimp_node/ Rust 참조 구현 (Cargo 워크스페이스 멤버)
src/
crdt/ Merkle-DAG 엔진, 액터 모델, 아레나 할당자, 쿼럼 합의
crypto/ Ed25519 신원, BLAKE3 해싱, 제로 트러스트 방화벽
network/ UDP 가십, Noise Protocol XX 세션, 피어별 속도 제한
protocol/ 와이어 형식 (MessagePack), 타입화된 페이로드 열거형
epistemic.rs L3 인식 계층 (v0.3.0): 로그-오즈, 신뢰 전파, 상관 할인
semantic_topology.rs L3 의미 토폴로지 (v0.4.0): SimHash 임베딩, 자동 에지 생성
decision_engine.rs 플러그 가능한 결정론적 결정 엔진 (트레이트 + 규칙 엔진 + 핫 리로드)
error.rs 통합 AimpError 타입 계층
dashboard/ Ratatui TUI
config.rs 검증 기능이 있는 동적 설정
event/ 구조화된 로깅 + Prometheus 메트릭 (카운터 + 히스토그램)
tests/ 통합 테스트
benches/ Criterion 벤치마크
aimp_testbed/ Python SDK (aimp-client) + CLI 도구 + 카오스 테스트
deploy/ Systemd 서비스, Firecracker 마이크로VM, 설치 스크립트
formal/ TLA+ 수렴 + 쿼럼 안전성 + 신념 수렴 명세
docs/ 논문 1 (Typst 소스 + PDF)
v0.2.0/ 논문 2: 인식 계층 (Typst 소스 + PDF)
v0.3.0/ 논문 3: 상관 인식 집계 (Typst 소스 + PDF)
전략적 이점
주요 기능
코어 엔진 (v0.1.0)
tokio::mpsc를 통한 제로 공유 상태 CRDT의 액터 모델
- O(1) 삽입 및 SoA 레이아웃을 갖춘 슬랩/아레나 할당
- ChaCha20Poly1305를 사용한 저장 데이터 암호화가 적용된 redb를 통한 내구성 있는 지속성
- 도메인 분리가 있는 HKDF-SHA256 키 유도
- 쓰기 시 무효화가 있는 캐시된 머클 루트
- 실제 mark-and-sweep GC와 슬랩 메모리 회수
- CRDT 액터에 통합된 에포크 기반 GC 추적
인식 계층 (v0.2.0 — v0.4.0)
- 정수 로그-오즈 산술 (i32, 밀리-로그-오즈) — 부동소수점 없음, 100% 결정론적
- 2-패스 마코프 신뢰 전파 (Supports → Contradictions, 진동 없음)
- Sybil 내성 평판: 새 노드는 0에서 시작, 위임 필요, 평판 소비
- 그리드 정렬 에포크 축소 및 구체화된 압축 (요약은 GC 이후에도 유지)
- 사이클 감지 (정렬 DFS)로 신뢰 인플레이션 루프 방지
- v0.3.0: 상관 인식 집계 — 동일 위치 센서/LLM을 위한 기하 할인
- v0.3.0: 원자적 셀 축소 — (epoch, fingerprint, cell)로 버킷화하여 CRDT 안전성 보장
- v0.4.0: 결정론적 의미 토폴로지 — SimHash 임베딩, 자율 에지 생성
- 주관적 논리/뎀스터-샤퍼보다 98-142배 빠름 (아키텍처 간 비트 동일)
네트워킹 및 보안
- Noise Protocol XX 암호화 세션 (기본 켜짐)
- 피어별 토큰 버킷 속도 제한 (정수 연산)
- HashSet + VecDeque를 통한 O(1) 가십 중복 제거
- TTL 재생 공격 탐지 및 회로 차단기
- 세션 LRU 제거 (TTL + 최대 개수)
- 롤링 업그레이드를 위한 프로토콜 버전 범위 협상
결정 엔진 및 합의
RuleEngine 구현이 포함된 플러그 가능한 DecisionEngine 트레이트
aimp_rules.json에서 핫 리로드 규칙 (재시작 불필요)
- 지속적인 검증된 결정이 있는 BFT 쿼럼 투표
- 작동 코드(opcode)별 타입화된
Payload 열거형 (컴파일 타임 안전성)
관찰 가능성
- Prometheus 카운터, 게이지, 지연 히스토그램
- 하위 검사 및 HTTP 상태 코드가 포함된 복합
/health 엔드포인트
- TUI 대시보드가 있는 구조화된
SystemEvent 로깅
운영
- 통합
AimpError 타입 계층 (더 이상 Box<dyn Error> 없음)
- 설정 검증 (잘못된 매개변수 조합 거부)
- 5초 타임아웃으로 정상 종료
- Systemd 강화 서비스 파일
- CI/CD: 린트, 테스트, 보안 감사, 문서, 크로스 컴파일 릴리스
벤치마크
Apple Silicon (M-시리즈)에서 Criterion으로 측정, 단일 스레드, fast-crypto 모드:
시스템 수준
5-노드 클러스터 시뮬레이션, 안티-엔트로피 동기화 (프로세스 내, Apple Silicon):
네트워크 손상 (netem 시뮬레이션)
시뮬레이션된 패킷 손실, 지연, 파티션 하에서 수렴 (5 노드, 노드당 50 변이):
AIMP는 약 80% 패킷 손실까지 몇 번의 안티-엔트로피 라운드 내에 수렴하며, 정상적으로 성능이 저하됩니다.
크로스 플랫폼 (ARM64 리소스 제약)
Docker ARM64 Linux, RPi-급 리소스 제한:
RPi Zero급 하드웨어에서도 처리량은 속도 제한보다 3배 더 높습니다.
Automerge v0.7과 비교
동일 하드웨어, 동일 작업, 단일 스레드, target-cpu=native:
ring을 사용한 AIMP는 변이에서 Automerge보다 1.37배(Ed25519 쓰기당 포함), 병합에서 2.4배 빠릅니다. Yrs는 변이에서 가장 빠르지만(암호 없음), AIMP 병합은 Yrs의 26% 이내입니다.
# 최대 처리량을 위해 ring 백엔드 활성화
RUSTFLAGS="-C target-cpu=native" cargo run --release --features fast-crypto,fast-alloc
로컬에서 벤치마크 실행:
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는 10개의 병렬 워커로 16 깊이까지 46,063개 상태(9,558개 고유)를 1초 미만으로 탐색했으며 위반 사항이 없었습니다. 발견된 버그: 2개의 정확성 버그 (순서 없는 헤드, 쿼럼 이중 투표). 두 버그 모두 수정되었습니다.
L3 — 신념 수렴
| 속성 | 설명 | 상태 |
|---|
| BeliefDeterminism | 동일한 클레임 + 그래프 → 모든 노드에서 동일한 BeliefState |
완전 경계 검증: 199,902개 구성 (5개 속성, 최대 N=6 노드). 발견된 버그: 1개의 신뢰 전파 공식 버그 (t_{k+1} = t_k + At_k 대 올바른 t_{k+1} = t_0 + At_k). 수정됨.
빠른 시작
1. 노드 실행
cargo run -- --port 1337 --name node1
2. Python CLI
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. 테스트 및 벤치마크 실행
make test # 속성 기반 + 통합 테스트
make bench # Criterion 벤치마크
make lint # 서식 + clippy
make docs # rustdoc 생성
엣지 배포
AIMP는 제로 런타임 종속성을 가진 단일 정적 바이너리로 실행되도록 설계되었습니다. Docker, 컨테이너 런타임, JVM이 필요하지 않습니다.
빠른 배포 (베어 메탈)
# 아키텍처에 맞는 바이너리 다운로드
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
소스에서 크로스 컴파일
make install-cross-targets # 일회성: musl 타겟 설치
make edge-arm64 # ARM64 (RPi 4/5, Jetson, Graviton)
make edge-armv7 # ARMv7 (RPi 2/3, 산업용 PLC)
make edge-x86 # x86_64 (엣지 게이트웨이)
make edge-all # 세 가지 모두
Firecracker 마이크로VM (멀티-테넌트 격리)
여러 신뢰할 수 없는 워크로드를 실행하는 엣지 게이트웨이용:
sudo make microvm-rootfs # AIMP가 포함된 ~15MB Alpine rootfs 빌드
firecracker --no-api --config-file deploy/firecracker/vm-config.json
부팅 시간: ~125ms. 메모리: 64MB. vCPU: 1.
Systemd 서비스
포함된 서비스 파일 (deploy/systemd/aimp-node.service)은 다음을 제공합니다:
설정
설정은 (우선순위가 높은 순서로) 다음 위치에서 로드됩니다:
- CLI 인수 (
--port, --name)
- 환경 변수 (
AIMP_PORT, AIMP_NOISE_REQUIRED, AIMP_PEER_RATE_LIMIT, ...)
aimp.toml 파일 (선택 사항)
- 하드코딩된 기본값
데이터 흐름
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[QuorumManager]
관련 연구
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); XX 핸드셰이크 패턴을 위해
snow 크레이트를 통해 사용
- 가십 프로토콜 — 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.