Skip to content

feat(tee-proof-verifier): add backward compatibility logic#245

Closed
pbeza wants to merge 12 commits intopab/solidity-compatible-offchain-proof-verifierfrom
pab/versioned-backward-compatible-offchain-proof-verifier
Closed

feat(tee-proof-verifier): add backward compatibility logic#245
pbeza wants to merge 12 commits intopab/solidity-compatible-offchain-proof-verifierfrom
pab/versioned-backward-compatible-offchain-proof-verifier

Conversation

@pbeza
Copy link
Contributor

@pbeza pbeza commented Jan 8, 2025

This is the second, more robust version of the TEE proof verifier's backward compatibility logic. It attempts both the new and old verification processes and doesn't rely on explicit report_data versioning. An alternative, simpler approach was implemented in #244.

@pbeza pbeza marked this pull request as ready for review January 8, 2025 17:28
@pbeza pbeza requested a review from a team as a code owner January 8, 2025 17:28
@pbeza pbeza force-pushed the pab/versioned-backward-compatible-offchain-proof-verifier branch 6 times, most recently from dc50556 to 570e45a Compare January 10, 2025 13:35
@pbeza pbeza force-pushed the pab/versioned-backward-compatible-offchain-proof-verifier branch from 570e45a to 7f15706 Compare January 10, 2025 13:44
Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
fix(teepot-tee-quote-verification-rs): memory leak
Free the FFI collateral on rust checks anyway to prevent memory leaks.

Also remove the `TryFrom<&sgx_ql_qve_collateral_t>` as it is unsafe.

Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
fix(teepot-tee-quote-verification-rs): free collateral on ffi error
haraldh and others added 5 commits January 14, 2025 14:50
Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
feat(tdx): add nix build for TDX google VMs
Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
feat(tee-key-preexec): add test container for tee-key-preexec
@pbeza
Copy link
Contributor Author

pbeza commented Jan 15, 2025

Closing in favor of #251.

@pbeza pbeza closed this Jan 15, 2025
github-merge-queue bot pushed a commit to matter-labs/zksync-era that referenced this pull request Feb 17, 2025
## What ❔

This PR is part of the effort to implement on-chain TEE proof
verification. Signatures produced by the TEE Prover are now compatible
with the on-chain verifier that uses the `ecrecover` precompile.

## Why ❔

Until now, we've been using _non-recoverable_ signatures in the TEE
prover with a compressed ECDSA public key in each attestation – it was
compressed because there are only 64 bytes available in the report
attestation quote. That worked fine for off-chain proof verification,
but for on-chain verification, it's better to use the Ethereum address
derived from the public key so we can call `ecrecover` in Solidity to
verify the signature.

This PR goes hand in hand with:
- matter-labs/teepot#228
- matter-labs/teepot#240
- matter-labs/teepot#245

## Checklist

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [ ] Documentation comments have been added / updated.
- [x] Code has been formatted via `zkstack dev fmt` and `zkstack dev
lint`.

---------

Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
Co-authored-by: Harald Hoyer <harald@matterlabs.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants