---
# System prepended metadata

title: Stateless Block verification in SGX

---

# Stateless Block verification in SGX

PoC proposal for implementing Stateless Block verification in SGX. Milestone one is to generate an opcode based block witness for a new block. In milestone two an SGX enclave running a stateless EVM engine uses this witness to verify the new block and sign its root hash.


### 1. Block Witness Generation 
- Generate opcode based Block witness

### 2. Stateless Block verification inside SGX

```python=
def verifyBlock(witness, newBlock):
    state = extractState(witness)
    
    if verifyBlock(state,newBlock)
        return sign(newBlock)
    
    return nil
```

- 2 rpc calls `verifyBlock` and `requestAttestation`
- `requestAttestation` serves the SGX attestation report including the block signing public key
- rpc endpoint does not require authentication
- use revm/reth with teaclave or fortanix SDK 
- Block verification enclave should build reproducibly