reviews/current/objective-20260909T223027Z/x-ai__grok-build-0.1.md

Independent Pi/OpenRouter review: x-ai/grok-build-0.1

Source: a10323dede4413fbf295916b8ad12e3dbad7514e. Status: completed.

A. Can an in-scope adversary recover or infer request/response contents before the intended delay?

SUPPORTED CONDITIONALLY (with multiple concrete limitations and unverified assumptions).

Strongest code-grounded reasons attacks are blocked (under the stated assumptions):

Concrete code-grounded issues and gaps (every finding has file/line, attacker, trace, impact, minimal repro sketch):

Unresolved questions / insufficient evidence:

Would I rely on this for sensitive content under the explicit assumptions? No. The design correctly keeps contents inside the enclave until sealing and ties the key to serial RandomX work if every disclaimed component (memory handling, FFI, secret lifecycle, absence of side channels, correct composition, RandomX wrapper, Nitro isolation) is perfect. The objective itself states we must not assume those things. A single memory disclosure, FFI bug, or side channel during the window when future keys are live (v2_epoch.rs) is sufficient to break the delay. For anything beyond low-sensitivity "delay by a week if everything goes right" use, add client-side encryption, shorter epochs, or stronger isolation primitives.

B. Can an adversary obtain epoch keys, private seeds/intermediates or equivalent decryption capability early, or make the service use an already substantially solved puzzle, WITHOUT breaking the RandomX primitive?

SUPPORTED CONDITIONALLY (generation/solving parallelism and publication ordering are strong; early materialization and untrusted host ACKs are the main gaps).

Strongest code-grounded reasons attacks are blocked:

Concrete code-grounded issues:

Unresolved questions / insufficient evidence:

Would I rely on this for sensitive content under the explicit assumptions? Conditionally for the "no pre-solved puzzle can be forced into service" and "solving remains serial" properties, but no for "no early key material". The code correctly avoids giving the host any influence over puzzle generation or activation ordering, and the serial unwrap is enforced. However, the explicit decision to compute the next epoch's entire secret material (including the final key) while the current epoch is still live, combined with the disclaimer on memory/secret management, means a parent that can read enclave memory obtains future keys without RandomX work. Publication ACKs are from the untrusted host. For high-sensitivity use I would require either (a) stronger memory protection guarantees + side-channel resistance evidence, (b) never materializing future keys until the prior epoch has truly ended, or (c) client-side encryption layered on top.

Overall recommendation: The v2 design is a careful attempt to achieve the stated goal with explicit acknowledgments of its limits. The core data flow (inner TLS → enclave capture → seal with fresh-per-epoch key → publish only after upstream) and the serial-chained RandomX construction are sound where the unassumed components hold. Multiple grounded issues (early future-key materialization in RAM, untrusted host ACKs for both durability and ordering, lack of per-record provenance) mean the confidentiality and delayed-disclosure claims are conditional at best. The snapshot contains good tests for the lease/watchdog/ordering properties and canonical encoding, but not for the long-running production path or the disclaimed security assumptions.