Skip to content

Update ere to v0.5.0#27

Merged
han0110 merged 11 commits intomainfrom
han/feature/ere-v0.5.0
Mar 24, 2026
Merged

Update ere to v0.5.0#27
han0110 merged 11 commits intomainfrom
han/feature/ere-v0.5.0

Conversation

@han0110
Copy link
Collaborator

@han0110 han0110 commented Mar 20, 2026

Update ere to v0.5.0, which updates zkVMs:

  • OpenVM from v1.4.2 to v1.4.3
  • SP1 from v5.2.4 to v6.0.1
  • ZisK from v0.15.0 to v0.16.0

Because the patching crates of ZisK seems not available for v0.16.0 and they are moving to use crypto backend for both Reth and Ethrex, so this PR also update Ethrex to an unreleased revision that has crypto backend supports. Also the libssz has sha2 that's now not patched for ZisK, I'd expect the cost ratio of it will increase a bit.

@han0110 han0110 force-pushed the han/feature/ere-v0.5.0 branch 2 times, most recently from ce13e50 to 04e295c Compare March 21, 2026 08:18
@han0110 han0110 force-pushed the han/feature/ere-v0.5.0 branch 2 times, most recently from fc72b43 to 6b63a53 Compare March 23, 2026 08:53
@han0110 han0110 force-pushed the han/feature/ere-v0.5.0 branch from 6b63a53 to 1d7b04d Compare March 23, 2026 09:43
[patch.crates-io]
sha2-v0-10-9 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "patch-sha2-0.10.9-sp1-4.0.0" }
sha3-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "patch-sha3-0.10.8-sp1-4.0.0" }
crypto-bigint = { git = "https://github.com/sp1-patches/RustCrypto-bigint", tag = "patch-0.5.5-sp1-4.0.0" }
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I found that in rsp they didn't patch crypto-bigint, do we remember why we have this?

@han0110 han0110 force-pushed the han/feature/ere-v0.5.0 branch from 1d7b04d to d067ef9 Compare March 23, 2026 09:44
@han0110 han0110 marked this pull request as ready for review March 23, 2026 11:55
@han0110 han0110 requested a review from jsign March 23, 2026 13:39
Copy link
Collaborator

@jsign jsign left a comment

Choose a reason for hiding this comment

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

LGTM! Great PR, exciting to see more progress on crypto backends

expected_public_values.resize(32, 0);
}

if matches!(zkvm_kind, zkVMKind::Zisk) && expected_public_values.len() < 256 {
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think these kind of padding we have to do today should probably go away after zkVMs comply the to the zkVM standards. Although I'm not entirely sure we are being very explicit about it as part of the standard.

Context (Han correct me if wrong): whatever the guest program wrote as public input isn't exactly the same thing we get from the SDK but padded. I think ideally we get exactly the same thing to not having to pad the expected output to what the SDK returns. cc @kevaundray @marcinbugaj

Copy link
Collaborator Author

@han0110 han0110 Mar 24, 2026

Choose a reason for hiding this comment

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

whatever the guest program wrote as public input isn't exactly the same thing we get from the SDK but padded

Yes, even we only write less than 256 bytes, the output is alwasy fixed 256 bytes (same for Airbender and OpenVM, but for them it's 32 bytes), but the unwritten parts will remain zeros. Agree that ideally the output should be identical to what the guest writes.

Choose a reason for hiding this comment

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

Moving to standards should improve the situation. Zisk is actively working on adopting IO and accelerators standards.

@@ -1,43 +1,56 @@
// Copied from https://github.com/axiom-crypto/openvm-reth-benchmark/blob/openvm-v1.4.1-reth-1.8.3/crates/revm-crypto/src/lib.rs

//! Copied and modified from https://github.com/axiom-crypto/openvm-eth/blob/938d3c0/crates/revm-crypto/src/lib.rs.
Copy link
Collaborator

Choose a reason for hiding this comment

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

I hope OpenVM can also start moving more into the C accelerators standard since this is hairy.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Can't use it directly because the alloy-consensus vesion the upstream dpends on is older which doesn't implement the CryptoProvider::verify_and_compute_signer_unchecked :(

@han0110 han0110 force-pushed the han/feature/ere-v0.5.0 branch from 8b056b2 to 2ba20af Compare March 24, 2026 08:48
@han0110 han0110 merged commit 92efa28 into main Mar 24, 2026
30 checks passed
@han0110 han0110 deleted the han/feature/ere-v0.5.0 branch March 24, 2026 13:16
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.

3 participants