Skip to content

Conversation

@mabbamOG
Copy link

What ❔

  • keccak abi now performs rotations only in unique precompile modes -> 30% more cycles, but better packed circuits
  • keccak abi now delegates final round-constant xor to a mock 25th round precompile call, we throw away the non-iota computations
  • added leaner perf.sh script to measure cycle count
  • streamlined airbender imports to workspace
  • changed some airbender imports to mb_dev branch, must be changed back!

Why ❔

we wanted a more compact keccak circuit, it was wasting 25% of constraints/vars on 75% of cycles, roughly. Now we waste 50% of constraints/vars on 25% of cycles. Removing that final waste i consider to be insane work for minimal benefit.

Is this a breaking change?

  • Yes
  • No, but use updated airbender branch

@mabbamOG
Copy link
Author

mabbamOG commented Oct 16, 2025

also, i did perform measurements of the "one free limb" u8 chunking trick, as opposed to the current approach where we create all u8 variables and then do quadratic constraints for in/out wiring.

they cost the same, so for simplicity i kept the current method which generates all lookup u8 variables

@shamatar

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.

1 participant