DOCUMENTACIÓN / VIGILANCIA DEL BUS Y COSTE DE LAS COMPUERTAS
Vigilancia del bus y coste de las compuertas
Continuación material · 018
La comparación local .NET/FFI y WebAssembly ya está ejecutada: paridad de 79 casos, 36000 muestras y contención de fallos. La integración completa con el bus y R1 sigue pendiente. Los estados anteriores se conservan como antecedentes. Ver resultado, costes y límites actuales.
Comprobación concluida, arquitectura abierta
14 criterios verificados y 54000 muestras. El núcleo conserva sus fuentes exactas. Esta ficha distingue validación intrínseca, ligadura sintética externa y coste observado.
Fecha: 6 de septiembre de 2026. Dictamen: COMPROBACION_ACOTADA_REALIZADA; arquitectura definitiva y viabilidad operacional abiertas.
Resultado y decisión técnica propuesta
El núcleo real rechaza una infracción intrínseca, pero su función de compilación acepta una petición sustituida que sigue siendo válida para SV. Una comprobación externa de identidad rechaza esa sustitución. Repetir la validación del Lenguaje en otra compuerta no añade protección frente a ese ataque respecto de una compuerta que ya verifica identidad y validez. En esta realización aproximadamente duplica la latencia mediana y aumenta los recursos observados.
El coste absoluto de una comprobación aislada es pequeño en los casos ensayados; no se ha constituido un presupuesto que permita declararlo asumible para cualquier uso. Se conserva como candidata la comprobación puntual mediante el núcleo protegido. No se justifica añadir al núcleo vigilancia de tráfico, supervisión de procesos ni decisiones del dominio CYB. Tampoco se justifica promover la doble validación ensayada a requisito general.
El resultado no refuta todas las posibles esclusas ni prueba que todo sv_core carezca de autoridad. Esta tanda usa compile_svp y serialización IR; no ejerce las decisiones, mediaciones y ejecuciones trazadas R1. El encaje operacional de esas capacidades sigue abierto y requiere un contrato representable y pruebas propias.
La siguiente comparación de integración puede centrarse en una frontera mínima: núcleo nativo mediante ABI C/FFI desde .NET frente al mismo núcleo compilado a WebAssembly. Se entiende «Assembly» en el sentido de WebAssembly debatido en el chat. Ninguna de esas rutas sustituye las obligaciones de autoridad y aislamiento; ninguna ha sido medida aquí. El ensayo de dos compuertas queda detenido en este corte, sin ampliar su alcance automáticamente.
Identidades y lecturas
- Núcleo: SV-lenguaje-de-computacion, main@230a205b08f4c54c9c8d9c1c7ad35b2f6ddbbfc4. Los 33 archivos copiados y la fixture se verificaron por sus 34 objetos Git antes de compilar y después de recuperar la evidencia.
- Laboratorio de entrada: lab/infraestructura-sv-2026-09-06@9eb16d2f3324d89bd06302cd3231066cd34efa0b.
- Fuente ejecutada: a246e9800ce122092563c99c1cbd84946d458ece.
- Ejecución material: 34028820181, concluida correctamente. Job 101474510312.
- Especificación previa: README de la comprobación.
- Lecturas rectoras: Pilares completos, acta de arquitectura 04/09 revisada 05/09, RETP-072/073, AGENTS.md, API pública lib.rs, decisiones trazadas pertinentes y registros 012/014. Se conserva el reparto entre núcleo, frontera, host y dominios competentes.
La producción y los archivos funcionales del Playground no se modifican. La copia del núcleo es una entrada inmutable del ensayo, no una bifurcación semántica ni una actualización del repositorio canónico.
Qué se ejecutó
Tres rutas con el mismo compile_svp y la misma serialización IR: llamada directa; una compuerta persistente que comprueba identidad sintética y validez; dos compuertas persistentes, la primera de validez y la segunda de identidad y validez. El controlador confiado coordina las tuberías. Los trabajadores usan UID 65534 y 65533 cuando procede. No se realiza una cámara de esclusa con todos sus estados, ni se conecta un hospital, un modelo de IA o el bus experimental 0.2 a R1.
La referencia de identidad es el texto exacto fijado previamente en una fixture sintética. No acredita consentimiento humano, procedencia remota, revocación, repetición ni dominio o agente constituidos. La primera compuerta recibe entradas que la segunda puede rechazar; la omisión de la segunda demuestra que no son defensas equivalentes e independientes ante todos los fallos.
Comprobaciones adversariales observadas
| Testigo | Resultado observado |
|---|---|
| V01 | El núcleo acepta la fixture original. |
| V02 | Rechaza la modificación b=2. |
| V03 | Acepta cambiar Zero por One cuando el programa sigue siendo válido: control que distingue validez de identidad. |
| V04 | Detecta una infracción después de una escritura sintética, pero los bytes del efecto permanecen: control de observación tardía. |
| V05–V06 | Una compuerta admite el original y rechaza la sustitución válida por comparación externa exacta. |
| V07–V08 | Dos compuertas admiten el original; la segunda rechaza la sustitución aunque se omita la primera. |
| V09 | Al omitir la segunda, la primera acepta la sustitución válida: control de dependencia de la comprobación de identidad. |
| V10–V11 | Se rechazan UTF-8 inválido y una longitud superior a 131072 bytes; esta última antes de reservar el cuerpo. |
| V12 | Se observan UID distintos en los dos procesos. |
| V13–V14 | El actor UID 65534 no termina mediante SIGTERM al proceso 65533 ni lee un centinela root 0600. |
Los 14 criterios producen el resultado esperado. V03, V04 y V09 son controles de sensibilidad: su PASS no acredita seguridad de la variante defectuosa. Las dos denegaciones de acceso no prueban un sandbox completo. El controlador root, el kernel y el hipervisor pertenecen a la base confiada o quedan fuera del adversario ensayado.
Métricas observadas
Ubuntu 24.04 x86-64 alojado; AMD EPYC 7763 expuesto, dos CPU lógicas disponibles y 8128876 KiB de memoria visible. Rust/Cargo 1.98.0; binario SHA-256 f8886e91f5dbe14b4ee24d7f3c801b5bcbbba767b7a39b510d3c9815e287635c. Compilación release con overflow-checks, --locked y --offline. Cero dependencias nuevas de registro; cero API remotas durante el ensayo.
Hay tres repeticiones con orden de rutas alternado. Cada repetición y ruta tiene 100 calentamientos y 2000 muestras útiles por tamaño: 54000 muestras crudas en total. Los tamaños de 8 y 64 KiB se obtienen mediante comentarios; no representan programas de mayor complejidad semántica ni un corpus hospitalario.
La columna central es la mediana de las tres medianas. El intervalo p99 comprende los tres p99 observados; no es un intervalo de confianza. Cada p99 se recalculó desde el CSV por rango más próximo. La latencia incluye ida, comprobación y respuesta verificada, pero excluye el arranque de procesos persistentes.
| Entrada | Ruta | Mediana central, µs | Intervalo de p99, µs | Máximo observado, µs |
|---|---|---|---|---|
| 510 bytes | Directa | 11,391 | 20,568–21,210 | 53,029 |
| 510 bytes | Una compuerta | 50,605 | 55,554–61,846 | 202,429 |
| 510 bytes | Dos compuertas | 107,883 | 117,891–132,719 | 1722,952 |
| 8 KiB | Directa | 45,335 | 58,960–87,534 | 132,338 |
| 8 KiB | Una compuerta | 91,892 | 97,352–102,843 | 174,517 |
| 8 KiB | Dos compuertas | 192,270 | 208,802–223,439 | 440,900 |
| 64 KiB | Directa | 297,488 | 333,946–478,237 | 534,723 |
| 64 KiB | Una compuerta | 372,228 | 428,925–649,158 | 1031,448 |
| 64 KiB | Dos compuertas | 775,604 | 833,083–933,061 | 1519,030 |
No hay cota temporal garantizada: el máximo es sólo el observado. La llamada directa carece del aislamiento del llamante de las otras rutas; es una referencia de coste, no una alternativa de seguridad equivalente.
| Entrada | CPU amortizada una/dos compuertas, µs por operación | Suma RSS una/dos compuertas, MiB |
|---|---|---|
| 510 bytes | 40–50 / 95–105 | 5,09–5,12 / 7,55–7,55 |
| 8 KiB | 95–95 / 190–205 | 5,14–5,17 / 7,61–7,67 |
| 64 KiB | 390–410 / 815–825 | 5,43–5,47 / 8,06–8,07 |
CPU incluye controlador y trabajadores, usuario+sistema. CLK_TCK=100 implica granularidad de 10 ms por proceso; los valores por operación son estimaciones amortizadas, no ciclos de hardware. RSS se captura al final de cada tanda y se suma por proceso: puede contar páginas compartidas varias veces; no es memoria física exclusiva ni pico simultáneo. El máximo de vida del controlador incluye tandas anteriores y no se utiliza como pico atribuible a una variante.
La segunda compuerta añade aproximadamente 57, 100 y 403 µs a las medianas centrales respectivas, y unos 2,4–2,6 MiB a la suma RSS observada. Es una diferencia de esta implementación, con coordinación y copias concretas. No se extrapola a .NET, WebAssembly, una red hospitalaria o una esclusa optimizada.
No se comparan estas cifras con los 4,313 ms del registro 012: allí había otro procesador y otro objeto, con criptografía, transporte y efecto SQLite. Una diferencia entre esas campañas no sería una mejora causal de rendimiento del núcleo.
Custodia y verificación
El paquete de esta tanda tiene 801259 bytes y SHA-256 6f388ac52a78fee263c47e57cbff0f21fb1bf2508d899fd87706038b967f7c90; objeto Git d5f7613e837c9ae0f39473ab5eaeca69eaeb012d. Contiene 71 entradas manifestadas más manifest.json. Se comprobaron CRC, pertenencia exacta al manifiesto, tamaños y todas las huellas; se cotejaron los 34 objetos fuente y se recalcularon los 27 grupos y las 54000 muestras.
Las regresiones de la misma ejecución verifican 17 testigos históricos, 24 de fase 0.2 y 7 de limpieza. Su paquete separado tiene 5280415 bytes, 4060 entradas manifestadas y SHA-256 3ec9b05a7fa01ae73a1b717625f4057c7d60235c361357dea836fc77cfaedaca; objeto Git f520cd0a3366317b8a5e6bdaf68c7a132260dabe. También se verificaron CRC y manifiesto completo. Ningún fallo histórico se borra ni se convierte en éxito.
La descarga directa del artefacto desde este entorno devolvió HTTP 403. La ejecución de recuperación 34029155349, fuente 27e83f5bef9b784ad74ca96259766fd28af3e53e, recuperó exclusivamente el ZIP original mediante logs, contrastando previamente su SHA-256. El job de laboratorio quedó omitido: no se repitieron las pruebas. La credencial de Actions no se envía al servidor de la redirección ni se imprime. La permanencia en el mismo proveedor no constituye copia externa independiente.
Corrección documental de la vía pública R1
La descripción del registro 014 y del apartado de siguiente tanda en Correspondencia nombra funciones internas como secuencia productiva pública. Se corrige expresamente: en el corte leído, la vía externa es decide_permit_traced → TracedPermitDecision::Granted → mediate_traced_permit → execute_traced_mediated → EffectExecutor::execute, bajo ProtectedDecisionContinuity. Las funciones crudas permanecen internas; no se pueden importar como API pública ordinaria. Sus errores se envuelven en los tipos trazados correspondientes.
La descripción funcional interna conserva utilidad para entender la ejecución, pero no es una receta compilable de API externa. Esta corrección no ejecuta CS01–CS09 ni acredita la constitución pública de una fixture R1; sus requisitos y exclusiones permanecen pendientes.
Qué queda abierto
- Vigilancia operacional de disponibilidad, memoria, CPU, entregas omitidas y trazas falsificadas; compile_svp no la implementa.
- Contratos constituidos de dominio y agente, ligadura R1 con el ejecutor remoto, autenticación y gobierno humano.
- Aislamiento completo, concurrencia, presión sostenida, límites agregados, recuperación y continuidad clínica.
- Presupuestos previos de latencia, recursos y coste de mantenimiento para equipos y usos concretos.
- Comparación efectiva de .NET/FFI y WebAssembly, y definición de qué actor se supone comprometido en cada ruta.
Se cierra únicamente esta comprobación material. El núcleo permanece sin cambios, las garantías generales siguen abiertas y no se inicia una nueva campaña por inercia.