Deterministic Client: Enforcing Determinism on Untrusted Machine Code
summary
Deterministic Client (DeCl) enforces determinism for x86-64 and Arm64 machine code by rewriting LLVM output and verifying machine-code verifier constraints like 32-bit aligned bundles and flag-definedness, plus position-oblivious SFI (no top‑32-bit reads, no call). It implements branch-based and timer-based metering using a reserved R12 reserved register for instruction counts, reports overheads ~15% (timer), ~20% (ARM branch), ~35% (x86 branch), and integrates with Groundhog and ZK verification yielding up to ~2x TPS improvement.
AI-written summary · about
chapters (15)
- 0:00Deterministic Client intro
- 1:00Smart contracts determinism
- 2:50Untrusted machine code challenges
- 3:55x86 and ARM nondeterminism
- 5:21Decel runtime overview
- 6:45Verifiable deterministic code
- 7:26Aligned bundles analysis
- 8:52Undefined x86 flags handling
- 10:17Deterministic preemption
- 10:39Branch-based metering
- 12:23Timer-based metering optimization
- 13:26Position-oblivious code
- 15:10Performance overheads
- 16:33Smart contract benchmarks
- 17:17Conclusion
related talks
42mSponsored Session: Confidential Computing - New Capabilities for New Workloads
32mVerifying Constant-Time Implementations
42mSponsored Session: Confidential Computing - New Capabilities for New Workloads
38mOne Ring -3 To Secure Them All: Computing with Hardware Enclaves
25mDemystifying remote attestation
30mDevice Attestation in Hardware TEE based Confidential Computing
16mReconciling Optimization With Secure Compilation
14mCollapsing Towers for Side-Channel Security
