Skip to content

feat(tee-key-preexec): support for Solidity-compatible pubkey in report_data#228

Closed
pbeza wants to merge 2 commits intomainfrom
pab/solidity-compatible-pubkey-in-report-data
Closed

feat(tee-key-preexec): support for Solidity-compatible pubkey in report_data#228
pbeza wants to merge 2 commits intomainfrom
pab/solidity-compatible-pubkey-in-report-data

Conversation

@pbeza
Copy link
Contributor

@pbeza pbeza commented Dec 20, 2024

This PR is part of the effort to implement on-chain TEE proof verification. This PR goes hand in hand with matter-labs/zksync-era#3414.

@pbeza pbeza requested a review from a team as a code owner December 20, 2024 11:21
@pbeza pbeza force-pushed the pab/solidity-compatible-pubkey-in-report-data branch 3 times, most recently from c66fc0e to 584d371 Compare December 20, 2024 12:20
Copy link
Contributor

@haraldh haraldh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

run taplo fmt or sort cargo deps alphabetically by hand

@pbeza pbeza force-pushed the pab/solidity-compatible-pubkey-in-report-data branch 3 times, most recently from 959c076 to 6b51717 Compare December 20, 2024 22:16
pbeza added a commit to matter-labs/zksync-era that referenced this pull request Dec 30, 2024
Signatures produced by the TEE Prover are now compatible with the
on-chain verifier that uses the `ecrecover` precompile.

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
pbeza added a commit to matter-labs/zksync-era that referenced this pull request Dec 30, 2024
Signatures produced by the TEE Prover are now compatible with the
on-chain verifier that uses the `ecrecover` precompile.

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
pbeza added a commit to matter-labs/zksync-era that referenced this pull request Dec 30, 2024
Signatures produced by the TEE Prover are now compatible with the
on-chain verifier that uses the `ecrecover` precompile.

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
pbeza added a commit to matter-labs/zksync-era that referenced this pull request Dec 30, 2024
Signatures produced by the TEE Prover are now compatible with the
on-chain verifier that uses the `ecrecover` precompile.

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
@pbeza pbeza requested a review from haraldh December 30, 2024 17:38
@pbeza pbeza force-pushed the pab/solidity-compatible-pubkey-in-report-data branch from 6b51717 to e95728f Compare December 30, 2024 17:50
pbeza added a commit to matter-labs/zksync-era that referenced this pull request Dec 31, 2024
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.

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
…report_data

This PR is part of the effort to implement on-chain TEE proof
verification. This PR goes hand in hand with matter-labs/zksync-era#3414.
@pbeza pbeza force-pushed the pab/solidity-compatible-pubkey-in-report-data branch from e95728f to a9b89ef Compare December 31, 2024 10:11
pbeza added a commit that referenced this pull request Dec 31, 2024
…in report_data

This PR is part of the effort to implement on-chain TEE proof
verification. This PR goes hand in hand with:
- matter-labs/zksync-era#3414
- #228
pbeza added a commit that referenced this pull request Dec 31, 2024
…in report_data

This PR is part of the effort to implement on-chain TEE proof
verification. This PR goes hand in hand with:
- matter-labs/zksync-era#3414
- #228
pbeza added a commit that referenced this pull request Dec 31, 2024
…in report_data

This PR is part of the effort to implement on-chain TEE proof
verification. This PR goes hand in hand with:
- matter-labs/zksync-era#3414
- #228
pbeza added a commit that referenced this pull request Jan 2, 2025
…in report_data

This PR is part of the effort to implement on-chain TEE proof
verification. This PR goes hand in hand with:
- matter-labs/zksync-era#3414
- #228
pbeza added a commit that referenced this pull request Jan 2, 2025
…in report_data

This PR is part of the effort to implement on-chain TEE proof
verification. This PR goes hand in hand with:
- matter-labs/zksync-era#3414
- #228
pbeza added a commit that referenced this pull request Jan 3, 2025
…in report_data

This PR is part of the effort to implement on-chain TEE proof
verification. This PR goes hand in hand with:
- matter-labs/zksync-era#3414
- #228
pbeza added a commit that referenced this pull request Jan 3, 2025
…in report_data

This PR is part of the effort to implement on-chain TEE proof
verification. This PR goes hand in hand with:
- matter-labs/zksync-era#3414
- #228
pbeza added a commit that referenced this pull request Jan 3, 2025
…in report_data

This PR is part of the effort to implement on-chain TEE proof
verification. This PR goes hand in hand with:
- matter-labs/zksync-era#3414
- #228
pbeza added a commit that referenced this pull request Jan 6, 2025
…in report_data

This PR is part of the effort to implement on-chain TEE proof
verification. This PR goes hand in hand with:
- matter-labs/zksync-era#3414
- #228
@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