Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

RFC 030 - Sincronização CSAC em Anchors

Status: Parcialmente Implementado (v0.0.1) — Standards Track Pilar: S1 (Segurança / Camada Física)

1. Resumo

A visão para a v2+ do PAEBIRU implementa o uso de Chip-Scale Atomic Clocks (CSAC) em nós-âncora específicos para estabelecer uma malha de altíssima precisão de tempo geodésico. Isso liberta o ecossistema da dependência do GPS (Global Positioning System) para a execução do Proof-of-Location baseado em TDOA (Time Difference of Arrival).

2. Motivação

O algoritmo central de localização do PAEBIRU requer que a rede meça o tempo de voo do sinal de rádio com precisão de nanossegundos. Depender de satélites GPS civis introduz um vetor de ataque centralizado (spoofing/jamming) e quebra a promessa de “Soberania por Design”. Relógios de quartzo (TCXO/OCXO) em microcontroladores sofrem grande drift térmico e não são suficientes para a malha principal sem sincronização constante.

3. Especificação Técnica

3.1. Relógios Atômicos em Borda

A rede adota o padrão CSAC (ex: baseados em Rubídio) para um subconjunto de nós de alta reputação (Nós-Âncora ou Anchors). Esses relógios oferecem um drift inferior a 1 microssegundo por dia, com consumo de energia na faixa de miliwatts.

3.2. Sincronização em Cascata

  1. Anchors (CSAC): Mantêm a “verdade” temporal do ecossistema.
  2. Macrophage Nodes (TCXO): Sincronizam-se frequentemente com os Anchors utilizando o protocolo PTP (Precision Time Protocol) aprimorado por hardware sobre o rádio.
  3. IoT Nodes (Quartzo comum): Sincronizam-se estocasticamente ou apenas no momento da emissão do pacote de localização.

3.3. Proof-of-Location (TDOA) Nativo

Com múltiplos Anchors compartilhando uma base de tempo atômica idêntica, um sinal emitido por um nó restrito é recebido em diferentes momentos (TDOA). O paebiru-kernel cruza esses deltas de tempo para triangular o dispositivo de origem com precisão sub-métrica, sem depender de nenhuma infraestrutura orbital.

4. Impacto Arquitetural e Estado de Implementação

4.1. HAL — crates/hal

Implementado:

  • HalClockSource enum (Csac, Tcxo, Ocxo, Quartz, Gnss, Unknown).
  • PpsEvent struct para captura de pulsos 1PPS.
  • AtomicClock trait com wait_pps, source e drift_ppb.
  • PtpHardwareClock trait para sincronização PTP aprimorada por hardware.
  • Métodos atomic_clock() e ptp_hardware_clock() no trait PaebiruHal (default None).

Pendente (v2+):

  • Drivers específicos de hardware para CSAC comerciais (ex: Microchip SA65, Teledyne TMX-220).
  • Integração de PTP over LoRa/BLE no layer MAC.

4.2. Kernel — crates/kernel/src/domain/security/pol/

Implementado:

  • ClockSource e ClockQuality em mod.rs, com peso de confiança (weight()) para fusão de medições.
  • Campo clock: ClockQuality adicionado a AnchorInfo (compatível via #[serde(default)]).
  • TdoaSolver evoluído para Weighted Least Squares: medições entre anchors de melhor qualidade temporal recebem maior peso.
  • Correção da constante SIGNAL_SPEED: TDOA aéreo usa 0.999·c (ar/rádio); RTT em cabo mantém 0.66·c.
  • Teste test_tdoa_csac_weighted_dominance validando que anchors CSAC dominam o resultado sobre quartz comuns.

Implementado:

  • CsacBackend trait abstrato (crates/hal/src/hal/csac.rs) — desacopla drivers de GPIO/SPI/I2C.
  • SimulatedCsacBackend — geração de pulsos PPS simulados para CI/testes.
  • Drivers completos MicrochipSa65 e TeledyneTmx220 implementando AtomicClock + PtpHardwareClock.
  • PtpSyncEngine (crates/kernel/src/domain/network/ptp_sync.rs) — handshake PTP 4-way (Sync/Delay_Req/Delay_Resp) com EWMA e rejeição de RTT anômalo.
  • Sincronização ponderada por ClockQuality: anchors CSAC dominam, quartz têm peso mínimo.
  • NodeTier (Anchor/Macrophage/IoT) com classificação automática via ClockQuality::classify.
  • Construtores ClockQuality::csac/tcxo/quartz/... para ergonomia.

Pendente (v2+):

  • Integração PTP over LoRa/BLE no layer MAC (trait PtpOverRadio definido, sem implementação de rádio).
  • Regras de recompensa econômica para nós que proveem AtomicTime.

4.3. Economy — crates/economy e Plasmídeos

Implementado:

  • ResourceType::AtomicTime adicionado ao enum de recursos econômicos.
  • DSL de Plasmídeos (CapabilityRequire) já aceita "CSAC" em architecture (esboço prévio mantido).

Pendente (v2+):

  • Regras de recompensa no BarterEngine e Credit para nós que proveem AtomicTime.
  • Atestação de hardware que valide presença real de CSAC (vinculada ao RFC 015).

5. Referências

  • RFC 008 — Proof-of-Location
  • RFC 015 — Atestação de Hardware
  • RFC 033 — Relógios Politemporais
  • crates/hal/src/hal/mod.rs
  • crates/kernel/src/domain/security/pol/mod.rs
  • crates/kernel/src/domain/security/pol/tdoa.rs
  • crates/economy/src/domain/types.rs