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 027 - Ressonância Estocástica (SR) Aplicada

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

1. Resumo

A visão para a v2+ do PAEBIRU introduz o uso de Ressonância Estocástica (SR) para superar as limitações físicas de hardware na detecção de sinais fracos. Através da injeção deliberada de ruído controlado via software (Dinâmica Estocástica Adaptativa), o protocolo permite que dispositivos de borda com baixa sensibilidade (como sensores alimentados por energy harvesting) mantenham a conectividade na malha P2P mesmo em ambientes de alta atenuação.

2. Motivação

Sinais de rádio distantes ou obstruídos frequentemente chegam com amplitude inferior ao limiar de detecção dos conversores analógico-digitais (ADC) de microcontroladores de baixo custo. Em sistemas lineares, esse sinal é perdido. Na física não-linear, o ruído pode atuar como um amplificador se injetado na dose correta. A SR permite “ressuscitar” esses sinais, aumentando a capilaridade da malha sem exigir hardware de rádio sofisticado.

3. Especificação Técnica

3.1. SNR e Pico de Ressonância

O nó busca continuamente o nível ótimo de ruído $D$ que maximiza a detecção, seguindo a relação:

$$ SNR \propto \frac{1}{D} \exp\left(-\frac{\Delta U}{D}\right) $$

Onde $\Delta U$ representa a barreira de potencial do receptor físico.

O pico teórico ocorre em $D = \Delta U$, derivado de:

$$ \frac{d}{dD}\left[\frac{1}{D} \exp\left(-\frac{\Delta U}{D}\right)\right] = 0 $$

3.2. Dinâmica Estocástica via Langevin

A injeção de ruído $\eta(t)$ é governada pelas Equações de Langevin para acompanhar a entropia ambiental:

$$ \frac{dx}{dt} = -\gamma x + \eta(t) $$

Isso garante que a amplificação se adapte em tempo real às mudanças de temperatura e interferência, evitando que o ruído injetado degrade sinais que já são fortes.

3.3. Ciclo de Vida da Injeção

  • Fase de Detecção (Preamble): A SR é ativada para detectar o sincronismo da onda.
  • Fase de Dados (Payload): Uma vez estabelecido o handshake x402, a injeção cessa para garantir a integridade absoluta do Compute-over-Data e das provas criptográficas.

4. Impacto Arquitetural

4.1. HAL — Submódulo sr_amplifier

Implementado em crates/hal/src/radio/sr_amplifier.rs.

  • SrAmplifier (trait object-safe) e SrAmplifierImpl (struct concreta no_std).
  • Ciclo de vida SrPhase::{Preamble, Payload} com pass-through automático em Payload.
  • Processamento de buffers IQ intercalados com injeção de ruído controlado.
  • Adaptação de $D$ via discretização da equação de Langevin.
  • Conversão de bytes de entropia bruta em amostras de ruído f64 no intervalo [-1.0, 1.0].
  • Integrado ao trait PaebiruHal via método sr_amplifier().

4.2. Math — Aproximadores Rápidos via Taylor Series

Implementado em crates/math/src/domain/thermodynamics/stochastic_resonance.rs.

  • exp_taylor(x, order) — aproximação polinomial de exp(x) por série de Taylor truncada.
  • amplify_fast(signal, delta_t, order) — amplificação SR sem dependência de libm::exp.
  • optimal_noise_intensity() — retorna $D = \Delta U$ (pico teórico).
  • snr_peak_taylor(order) e snr_factor_taylor(order) — cálculo do pico de SNR em no_std.

A ordem padrão de 10–12 garante erro relativo $< 10^{-9}$ para $|x| \leq 2$, cobrindo a região de operação típica onde $x = -\Delta U/D \approx -1$.

4.3. Kernel — Bridge Entropia → Ruído Branco

Implementado em crates/kernel/src/domain/entropy/sr_bridge.rs.

  • SrNoiseSource<S: EntropySource> — adaptador que consome entropia auditada (ex.: StochasticHealthMonitor) e produz amostras f64 para o SrAmplifier.
  • Preserva o isolamento hexagonal: o Kernel não depende do HAL; a conexão ocorre na camada de aplicação (apps/node).
  • Cada amostra consome 2 bytes de entropia bruta (16 bits → i16 normalizado).

4.4. Kernel — Pipeline SR de Ciclo de Vida do Rádio

Implementado em crates/kernel/src/domain/entropy/sr_pipeline.rs.

  • SrAmplifierPort — porta hexagonal que o apps/node implementa sobre o SrAmplifier do HAL.
  • SrRadioPipeline<A, E> — orquestração completa do ciclo de vida:
    • enter_preamble() → ativa SR, process_iq() gera ruído físico via SrNoiseSource e aplica ao buffer.
    • enter_payload() → desativa SR (pass-through garantido).
  • SrAutoTuner — auto-tuning de ΔU por gradiente ascendente estocástico:
    • Janela deslizante de detecções (default 32 amostras).
    • Aumenta ΔU quando taxa < 30% (sinal fraco, precisa de mais capilaridade).
    • Reduz ΔU quando taxa > 95% (sinal forte, ruído desnecessário).
    • Clamp em [0.1, 10.0] para evitar divergência.
  • SrPipelineError — erros tipados (entropy, buffer overflow, tuning divergence).

4.5. Apps/Node — Wiring (esboço arquitetural)

O apps/node conecta as peças sem violar o isolamento hexagonal:

#![allow(unused)]
fn main() {
// No construtor do nó:
let sr_noise = SrNoiseSource::new(mixed_entropy);
let sr_amp = SrAmplifierImpl::new(barrier, initial_noise, friction);
let mut sr_pipeline = SrRadioPipeline::new(sr_amp, sr_noise, SrPipelineConfig::default());

// Na recepção de rádio:
sr_pipeline.enter_preamble();
sr_pipeline.process_iq(&mut iq_buffer)?;
if preamble_detected {
    sr_pipeline.report_detection(true);
    sr_pipeline.enter_payload();
    // ... processa payload com integridade criptográfica intacta
} else {
    sr_pipeline.report_detection(false);
}
}

5. Checklist de Implementação

  • HAL: sr_amplifier com trait e struct concreta (no_std).
  • HAL: Ciclo de vida Preamble / Payload.
  • HAL: Integração ao trait PaebiruHal.
  • Math: Aproximação Taylor Series para exp e pico de SNR.
  • Math: Métodos amplify_fast, optimal_noise_intensity, snr_peak_taylor.
  • Kernel: SrNoiseSource bridge entre EntropySource e ruído branco formatado.
  • Kernel: SrRadioPipeline com SrAmplifierPort, SrAutoTuner e fase management.
  • Apps/Node: Wiring completo do SrRadioPipeline ao daemon principal e drivers de rádio reais.