Two Ways to Protect a Signing Key
When you need to sign transactions autonomously — without a human clicking “approve” — you have two credible security architectures:
- Multi-Party Computation (MPC): Split the private key into shares distributed across multiple parties. Signing requires a threshold of parties to cooperate. No single party ever holds the complete key.
- Hardware Isolation (TEE/Enclave): The complete private key exists only inside a hardware-protected region of memory. The CPU enforces isolation — even the host OS and hypervisor cannot read it.
Both are cryptographically sound. But for trading infrastructure, they are not equivalent.
Latency: The Decisive Factor
MPC signing requires network coordination. Threshold signers must exchange messages, reach consensus, and combine partial signatures. This is unavoidable — it is the mechanism that distributes trust.
Nitro Enclave signing requires nothing from the network. The enclave co-located with your trading application signs over a hardware vsock channel:
Your App → vsock (in-memory) → Enclave → Sign → vsock → Your App Total: 42µs
| Metric | MPC (Fireblocks 2-of-3) | Nitro Enclave (Sentinel) |
|---|---|---|
| P50 latency | 580ms | 42µs |
| P99 latency | 2,100ms | 49µs |
| Jitter (σ) | 890ms | 2.1µs |
| Network hops | 3–5 (MPC coordination) | 0 (vsock local) |
| Signing deterministic? | ✗ | ✓ |
MPC is 13,800× slower at P50. For a fund executing on Solana's 400ms slots, this is not a marginal difference — it is the difference between hitting a slot and missing it entirely.
The Security Model
What MPC Actually Protects
MPC's security property is that no single party can sign without cooperation from other parties. This protects against:
- A single server compromise
- Insider threat at one node
- Key theft from a single location
What MPC does not protect against:
- Compromise of enough signers to meet threshold (e.g., 2 of 3 nodes)
- Vendor-level access (Fireblocks sees the coordination messages)
- Network-level man-in-the-middle against the coordination channel
What Nitro Enclaves Actually Protect
AWS Nitro Enclaves provide hardware-enforced memory isolation. The enclave runs on a dedicated set of CPU cores with no shared memory with the parent instance. The Nitro Security Chip enforces this at the silicon level:
- The host OS cannot read enclave memory
- The hypervisor cannot read enclave memory
- AWS cannot read enclave memory
- Network access is disabled — the enclave has no NIC
- Attestation documents prove the enclave code is unmodified (PCR0 hash)
The key never leaves the enclave. Not to the network. Not to the host. Nowhere.
No Coordination Overhead
MPC signing requires a coordination round. In a 2-of-3 threshold scheme, the signing flow is roughly:
Party A: Generate partial sig nonce ~5ms
Party A → Party B: Send commitment ~10ms RTT
Party B: Compute partial signature ~10ms
Party B → Party A: Return partial sig ~10ms RTT
Party A: Combine signatures ~2ms
─────────────
Total: ~37ms minimum (no queuing)
Real: 580ms P50, 2,100ms P99This coordination is fundamental to the protocol. You cannot optimize it away — it is what distributes trust. Every millisecond of coordination is an architectural constraint, not an implementation bug.
With a Nitro Enclave, there is no coordination. One hardware-attested process holds the key and signs in 42µs. The security property comes from hardware isolation, not from distributed consensus.
Attestation: Verify, Don't Trust
A Nitro Enclave produces a cryptographically signed attestation document on every boot. The document contains:
- PCR0: SHA-384 hash of the enclave image (code + configuration)
- PCR1: Hash of the OS kernel
- PCR2: Hash of the application
- Signed by AWS Nitro Attestation Service (hardware root of trust)
Your client code can verify the PCR values before sending any key material to the enclave. This means you can cryptographically prove that the enclave is running exactly the code you expect — not a compromised version.
// Verify enclave before key injection let doc = parse_attestation_document(&attestation_bytes)?; assert_eq!(doc.pcr0, EXPECTED_PCR0, "Enclave image mismatch — refusing key injection"); // Safe to proceed
MPC has no equivalent mechanism. You trust the vendor's implementation and operational procedures. Attestation gives you cryptographic verification.
No Key Shares to Reconstruct
MPC's fundamental promise — that no party ever has the full key — comes with a subtle operational risk: key share management.
Shares can expire, become desynchronized, or be lost in disaster recovery scenarios. Reconstruction requires coordination between threshold parties. If one party's share is corrupted or unavailable, the signing operation halts entirely.
With Sentinel, the key is generated inside the enclave and never exported. Disaster recovery means re-generating a key from your KMS-protected seed material and re-initializing the enclave. No coordination, no share synchronization.
Full Comparison
| Property | MPC | Nitro Enclave |
|---|---|---|
| Signing latency (P50) | 580ms | 42µs |
| Signing latency (P99) | 2,100ms | 49µs |
| Network dependency | Required (MPC coordination) | None (vsock local) |
| Key reconstruction risk | Yes (share management) | No (enclave-only) |
| Hardware attestation | No | Yes (PCR0 verified) |
| Vendor trust required | Yes (protocol correctness) | No (hardware verified) |
| Shared tenancy risk | Yes (hosted MPC nodes) | No (your instance) |
| Operational complexity | High (threshold ops) | Low (single enclave) |
| Suitable for HFT | No | Yes |
Conclusion
MPC is a legitimate cryptographic technique — appropriate for cold storage, custody solutions, and scenarios where latency is irrelevant. For production trading infrastructure, where every millisecond is alpha, MPC is structurally incompatible.
Nitro Enclaves provide stronger auditability (hardware attestation), lower operational complexity (no share management), and 13,800× lower signing latency. The security model is verifiable, not assumed.
If your key security architecture requires trusting a vendor's MPC implementation, you have introduced a trust assumption that hardware isolation eliminates entirely.
See our signing latency benchmark — 10,000 operations across AWS KMS, Fireblocks, and Sentinel.
Read the Benchmark