Add origin authenticated, replayable QIR execution receipts
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- rust
- Área
- cryptography, security
Línea de trabajo
No se nombran archivos de implementación. Empieza localizando el workspace de Rust y el crate aislado propuesto ruvector-qir-receipt; después, ejecuta los comandos de cargo de formato, pruebas, Clippy y benchmark indicados una vez que el entorno esté disponible. Se considera completado cuando estén presentes el comportamiento de receipts firmados, las pruebas de aceptación, los umbrales de rendimiento, el ADR, el ejemplo de RVF, las instrucciones de rollback, la procedencia y el evidence receipt descritos aquí.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Decision
The bounded design candidate is not promotable because Rust compilation and workspace validation could not run in the available environment. This issue records the verified fixture result and the remaining gates. It deliberately avoids duplicating syndrome and decoder ownership already assigned to ruqu by ADR QE 008.
Evidence
Parent SHA: edaffffb3b85768eb1f3ec1f683b7f46f0506af4
Ruqu submodule SHA: d7f572890a766584d9eed188fa8af5d65c96cca4, unchanged
Ruflo task: quantum-weekly-qir-receipt-20260911 with CLI 3.25.6
Controlled 30 trial Node Ed25519 fixture:
- SHA only baseline accepted a foreign issuer in 30 of 30 trials.
- Signed candidate accepted a foreign issuer in 0 of 30 trials.
- Verification p95 was 165.931 microseconds.
Ruflo deep scan reported no findings at any severity. Ruflo secret scan detected no secrets.
The final worktree was returned clean and no unverified candidate code was retained.
Scope
Add an isolated ruvector-qir-receipt crate that canonically binds exact QIR bytes, format, backend, calibration or noise snapshot, configuration, sorted results, shots, seed, queue inclusive latency, total cost, implementation hash, and parent receipt.
Use a domain separated signature statement with an explicit issuer key identity. Label Ed25519 as classical origin authentication, not post quantum security. A receipt proves provenance and integrity, not that a claimed physical or computational result is correct.
Safety limits
- QIR maximum: 128 MiB.
- Configuration and calibration maximum: 1 MiB each.
- Identifier maximum: 256 bytes.
- Shot maximum: one billion.
- Physical QPU receipts require calibration evidence.
- Reject malformed signatures, unknown issuers, field mutation, result mutation, QIR substitution, and replay outside declared policy.
Acceptance criteria
- Run at least 30 seeded foreign issuer trials. SHA only baseline must accept 30 of 30 and the signed candidate must accept 0 of 30.
- Signature p95 must remain below 2 milliseconds and verification p95 below 1 millisecond on CI class hardware.
- Run formatting, focused tests, Clippy with warnings denied, dependency audit, Ruflo scans, and all affected workspace tests.
- Add an ADR, RVF embedding example, rollback instructions, provenance, and a signed evidence receipt.
- Keep syndrome graphs, Stim fixtures, MWPM, fusion blossom, min cut, and QEC simulation in ruqu.
Runnable acceptance test
cargo fmt --all -- --check &&
cargo test -p ruvector-qir-receipt &&
cargo clippy -p ruvector-qir-receipt --all-targets -- -D warnings &&
cargo run --release -p ruvector-qir-receipt --bin qir-receipt-benchmark
Blocking gate
The runtime had no cargo or rustc. Formatting, compilation, focused tests, Clippy, Rust benchmarks, dependency audit, and affected workspace tests remain unverified. Safety score and holdout regression are therefore unproven. No protected branch was modified and no QPU job was submitted.
- Lenguaje dominante
- Rust
- Estrellas
- 4.5k
- Forks
- 603
- Merge medio
- 1 d 11 h
- PR fusionados (30 d)
- 56
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ruvnet/RuVector
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
Todos los issues de ruvnet/RuVector
Issues similares
-
Fix large enum variantAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
software-challenge/player_rust#22 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
foundry-rs/foundry#17175 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
state:triage-needed
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
github/copilot-sdk#2793 ·
Los mantenedores suelen responder en 1 día