Архитектура Протокола

Глубокое погружение в техническую архитектуру Phantom Protocol: 5 слоев защиты, распределенная маршрутизация и криптографическая безопасность

Обзор Архитектуры

Phantom Protocol представляет собой многоуровневую систему обеспечения анонимности, основанную на принципах децентрализации, криптографической защиты и распределенной маршрутизации.

Распределенная Архитектура

Нет центральных серверов или точек контроля. Каждая нода является равноправным участником сети.

Многослойная Защита

5 независимых слоев безопасности создают множественные барьеры для атакующих.

Динамическая Маршрутизация

Маршруты меняются постоянно, предотвращая анализ трафика и корреляционные атаки.

Квантово-Устойчивое Шифрование

Защита от квантовых компьютеров через решеточную криптографию и хеш-цепочки.

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

5 Слоев Защиты

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

1

Транспортный Слой

Transport Layer

Функция: Обфускация сетевого трафика и защита от DPI (Deep Packet Inspection).

  • TLS 1.3 с имитацией обычного HTTPS трафика
  • WebSocket tunneling для прохождения через файрволы
  • Pluggable transports: obfs4, meek, snowflake
  • Domain fronting через CDN сервисы
  • Трафик padding для защиты от анализа размеров пакетов
// Пример конфигурации транспорта
{
  "transport": {
    "type": "obfs4",
    "bridge": "auto",
    "cert": "...",
    "iatMode": 1,  // Inter-Arrival Time obfuscation
    "padding": true
  }
}
2

Слой Маршрутизации

Routing Layer

Функция: Многоходовая луковая маршрутизация через случайные ноды.

  • 3-5 hop routing через географически распределенные ноды
  • Guard nodes защищают точку входа пользователя
  • Exit nodes с политиками фильтрации
  • Route rotation каждые 10 минут или по требованию
  • Path selection на основе bandwidth, latency и reputation
Клиент Guard Middle 1 Middle 2 Exit Destination
3

Криптографический Слой

Cryptographic Layer

Функция: Множественное шифрование и защита целостности данных.

  • Onion encryption: каждый hop добавляет слой шифрования
  • ChaCha20-Poly1305 для симметричного шифрования
  • X25519 для обмена ключами (ECDH)
  • Ed25519 для цифровых подписей
  • Kyber-768 для пост-квантовой защиты
Original Data
    ↓ Encrypt with Exit key
[Layer 3: Exit encryption]
    ↓ Encrypt with Middle2 key
[Layer 2: Middle2 encryption]
    ↓ Encrypt with Middle1 key
[Layer 1: Middle1 encryption]
    ↓ Encrypt with Guard key
[Layer 0: Guard encryption]
    → Передача в сеть
4

Слой Обнаружения

Discovery Layer

Функция: Распределенное обнаружение нод через DHT без центральных серверов.

  • Kademlia DHT для поиска и хранения информации о нодах
  • Bootstrap nodes жестко закодированы в клиенте
  • Peer exchange между нодами для расширения списка
  • Node reputation system на основе uptime и performance
  • Sybil attack protection через proof-of-work и rate limiting
// DHT запрос ноды
{
  "method": "findNode",
  "target": "a8f3c9e2...",
  "k": 20,  // возвращает 20 ближайших нод
  "signature": "ed25519_sig..."
}
5

Прикладной Слой

Application Layer

Функция: Анонимные сервисы и end-to-end защита приложений.

  • Hidden services (.phantom адреса) с rendezvous points
  • End-to-end encryption между клиентом и сервисом
  • Stream isolation для разных приложений
  • DNS over Phantom для предотвращения утечек DNS
  • Application-level padding и timing obfuscation
Важно: Все слои работают независимо. Компрометация одного слоя не влияет на безопасность других.

Система Маршрутизации

Выбор Пути (Path Selection)

Phantom использует сложный алгоритм выбора пути, учитывающий множество факторов:

Фактор Вес Описание
Bandwidth 40% Пропускная способность ноды
Latency 25% Задержка соединения
Reputation 20% История надежности
Geography 10% Географическое разнообразие
Uptime 5% Время работы без сбоев

Типы Нод

Guard Node

Точка входа в сеть. Знает IP пользователя, но не знает назначение.

  • Высокая стабильность
  • Долгосрочное соединение
  • Меняется раз в 2-3 месяца
Middle Node

Промежуточные ноды. Не знают ни источник, ни назначение.

  • Максимальная анонимность
  • Случайный выбор
  • Меняется каждые 10 минут
Exit Node

Точка выхода в интернет. Знает назначение, но не знает источник.

  • Фильтрация контента
  • Политики безопасности
  • Exit node families

Circuit Building

// Построение цепи маршрутизации
async function buildCircuit() {
  // 1. Выбор Guard node
  const guard = await selectGuardNode();
  
  // 2. Установка соединения с Guard
  const guardConnection = await connectToNode(guard);
  
  // 3. Выбор Middle nodes через Guard
  const middle1 = await selectMiddleNode(guardConnection);
  const middle2 = await selectMiddleNode(guardConnection);
  
  // 4. Выбор Exit node
  const exit = await selectExitNode(guardConnection);
  
  // 5. Создание цепи: Guard -> Middle1 -> Middle2 -> Exit
  const circuit = await createCircuit([
    guard, middle1, middle2, exit
  ]);
  
  // 6. Обмен ключами с каждым hop
  await exchangeKeys(circuit);
  
  return circuit;
}
Совет: Для максимальной безопасности используйте настройку strictNodes для контроля географии нод в вашем маршруте.

DHT Система (Distributed Hash Table)

Phantom использует модифицированный Kademlia DHT для децентрализованного обнаружения нод и хранения метаданных сети без центральных серверов.

Архитектура DHT

Каждая нода в сети имеет уникальный 160-битный идентификатор (Node ID), генерируемый как SHA-1(публичный_ключ).

Хранимые Данные
  • IP адреса и порты нод
  • Публичные ключи
  • Характеристики нод (bandwidth, flags)
  • Hidden service дескрипторы
  • Introduction points
Операции DHT
  • FIND_NODE - поиск ближайших нод
  • STORE - сохранение данных
  • FIND_VALUE - получение данных
  • PING - проверка доступности

Расстояние в DHT (XOR Metric)

Kademlia использует XOR метрику для определения "расстояния" между нодами:

// Вычисление расстояния между двумя Node ID
function distance(nodeId1, nodeId2) {
  // XOR между двумя 160-битными ID
  return nodeId1.xor(nodeId2);
}

// Пример: поиск 20 ближайших нод
async function findClosestNodes(targetId, k = 20) {
  const closestNodes = [];
  const queriedNodes = new Set();
  
  // Начинаем с нод из routing table
  let candidates = routingTable.getClosestNodes(targetId, k);
  
  while (candidates.length > 0) {
    const node = candidates.shift();
    if (queriedNodes.has(node.id)) continue;
    
    queriedNodes.add(node.id);
    
    // Спрашиваем ноду о её ближайших соседях
    const neighbors = await node.findNode(targetId);
    
    // Добавляем новые кандидаты
    for (const neighbor of neighbors) {
      if (!queriedNodes.has(neighbor.id)) {
        candidates.push(neighbor);
        closestNodes.push(neighbor);
      }
    }
    
    // Сортируем по расстоянию до targetId
    closestNodes.sort((a, b) => 
      distance(a.id, targetId) - distance(b.id, targetId)
    );
    
    // Оставляем только k ближайших
    closestNodes.splice(k);
  }
  
  return closestNodes;
}

K-Buckets (Routing Table)

Каждая нода поддерживает routing table из 160 k-buckets (k обычно = 20):

Bucket # Диапазон расстояний Количество нод
0 20 - 21 ≤ k (20)
1 21 - 22 ≤ k (20)
... ... ...
159 2159 - 2160 ≤ k (20)

Защита от Атак

Sybil Attack

Атакующий создает множество фейковых нод.

Защита:

  • Proof-of-Work для регистрации
  • Rate limiting на запросы
  • Reputation system
Eclipse Attack

Изоляция ноды от остальной сети.

Защита:

  • Множественные bootstrap nodes
  • Peer diversity requirements
  • Periodic refresh от разных IP
DHT обеспечивает полную децентрализацию: нет центральных серверов, которые можно заблокировать или скомпрометировать.

Криптографическая Защита

Криптографические Примитивы

Назначение Алгоритм Размер ключа Описание
Симметричное шифрование ChaCha20-Poly1305 256 бит AEAD cipher, быстрее AES на мобильных
Обмен ключами X25519 256 бит Elliptic Curve Diffie-Hellman
Цифровые подписи Ed25519 256 бит EdDSA на Curve25519
Хеш-функции BLAKE3 256 бит Быстрее SHA-256, параллелизуемый
KDF HKDF-SHA256 - Вывод ключей из общего секрета
Пост-квантовая защита Kyber-768 768 бит NIST PQC finalist, решеточная криптография

Гибридная Криптосистема

Phantom использует гибридную схему, комбинируя классическую и пост-квантовую криптографию:

// Гибридный обмен ключами
async function hybridKeyExchange(peerPublicKey) {
  // 1. Классический X25519 ECDH
  const classicSharedSecret = x25519(
    myPrivateKey,
    peerPublicKey.x25519
  );
  
  // 2. Пост-квантовый Kyber KEM
  const kyberCiphertext = kyber768.encapsulate(
    peerPublicKey.kyber
  );
  const kyberSharedSecret = kyberCiphertext.sharedSecret;
  
  // 3. Комбинируем оба секрета через KDF
  const hybridSecret = hkdf({
    ikm: concat(classicSharedSecret, kyberSharedSecret),
    salt: "phantom-v1-hybrid-kdf",
    info: concat(myPublicKey, peerPublicKey),
    length: 32
  });
  
  // 4. Выводим ключи для шифрования/MAC
  const keys = {
    encKey: hkdfExpand(hybridSecret, "encryption", 32),
    macKey: hkdfExpand(hybridSecret, "mac", 32)
  };
  
  return { keys, kyberCiphertext };
}

Onion Encryption (Луковое Шифрование)

Каждый слой маршрутизации добавляет свой слой шифрования:

// Создание луковой структуры
function createOnion(payload, circuit) {
  let onion = payload;
  
  // Шифруем в обратном порядке (от exit к guard)
  for (let i = circuit.length - 1; i >= 0; i--) {
    const node = circuit[i];
    
    // Добавляем padding для скрытия размера
    onion = addPadding(onion, CELL_SIZE);
    
    // Шифруем с ключом ноды
    onion = chacha20Poly1305Encrypt(
      key: node.encryptionKey,
      nonce: randomNonce(),
      plaintext: onion,
      ad: node.id  // authenticated data
    );
  }
  
  return onion;
}

// Каждая нода снимает один слой
function peelOnion(onion, myKey) {
  const decrypted = chacha20Poly1305Decrypt(
    key: myKey,
    ciphertext: onion
  );
  
  return removePadding(decrypted);
}

Perfect Forward Secrecy (PFS)

Phantom использует эфемерные ключи для каждой сессии. Компрометация долгосрочных ключей не раскрывает предыдущие коммуникации.

Иерархия ключей
  1. Identity Key (долгосрочный) - Ed25519, хранится зашифрованным
  2. Medium-term Key (неделя) - X25519, используется для DH
  3. Ephemeral Session Key (10 минут) - производный от DH
  4. Per-hop Keys (одноразовые) - для каждого hop в цепи

Сравнение с Другими Системами

Характеристика Phantom Protocol Tor I2P VPN
Слои маршрутизации 3-5 hops 3 hops Переменное 1 hop
Децентрализация Полная (DHT) Частичная (directory authorities) Полная Централизованная
Пост-квантовая защита Да (Kyber-768) Нет Нет Нет
Транспортная обфускация obfs4, meek, snowflake pluggable transports Базовая Зависит от провайдера
Скорость Высокая (оптимизированная маршрутизация) Средняя Средняя-Низкая Высокая
Hidden services .phantom домены .onion домены .i2p адреса Нет
Защита от корреляции трафика Padding + timing randomization Базовая Хорошая Нет
Устойчивость к цензуре Высокая (domain fronting, DHT) Высокая (bridges) Средняя Средняя
Модель угроз Государственный уровень Государственный уровень Государственный уровень Корпоративный/ISP
Open Source Да (MIT) Да (BSD) Да Редко

Когда использовать Phantom?

Лучший выбор
  • Журналисты и активисты в авторитарных странах
  • Whistleblowers и источники конфиденциальной информации
  • Защита от квантовых компьютеров
  • Максимальная устойчивость к цензуре
  • Хостинг anonymous hidden services
Альтернативы
  • VPN - для простого обхода гео-блокировок
  • Tor - более зрелая экосистема и больше exit nodes
  • I2P - для peer-to-peer приложений внутри сети
  • Proxy - для базовой приватности без особых требований

Производительность и Оптимизация

Метрики Производительности

~150ms
Средняя латентность
3-hop circuit
50-100 Mbps
Пропускная способность
Типичная для guard node
2-3 сек
Построение circuit
Включая crypto handshake
~20 MB
Использование RAM
Phantom клиент

Оптимизации

Phantom заранее строит несколько circuits в фоне, чтобы новые соединения были мгновенными.

// Настройка preemptive circuits
{
  "circuits": {
    "preemptive": {
      "count": 3,           // Количество готовых circuits
      "renewBefore": 120    // Обновлять за 2 минуты до истечения
    }
  }
}

Сжатие данных на прикладном уровне уменьшает размер передаваемых пакетов без компрометации безопасности.

  • LZ4 для быстрого сжатия текстовых данных
  • Brotli для HTML/CSS/JS контента
  • Selective compression - только compressible data

Использование аппаратных инструкций CPU для криптографических операций:

  • AES-NI для AES операций (fallback)
  • SHA extensions для хеш-функций
  • AVX2/AVX-512 для параллельных вычислений
  • ARM Crypto Extensions на мобильных устройствах

Множественные TCP соединения мультиплексируются через один circuit, экономя overhead на построении новых.

// Один circuit обслуживает множество streams
const circuit = await buildCircuit();

// Создаем streams для разных приложений
const httpStream = circuit.openStream(80);
const httpsStream = circuit.openStream(443);
const dnsStream = circuit.openStream(53);

Мониторинг Производительности

Phantom предоставляет встроенные метрики для отслеживания производительности:

# Просмотр метрик через CLI
phantom metrics

# Вывод:
# Circuits:
#   Active: 3
#   Total built: 127
#   Avg build time: 2.3s
#   Failure rate: 2.1%
#
# Bandwidth:
#   Download: 5.2 MB/s
#   Upload: 1.8 MB/s
#   Total transferred: 1.2 GB
#
# Latency:
#   Current: 145ms
#   Average: 152ms
#   P95: 280ms
Совет: Для максимальной производительности выбирайте guard node географически близко к вам, а exit node близко к целевому серверу.