# 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