Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Falcon verification to use horner_eval_base #1661

Open
wants to merge 4 commits into
base: al-introduce-horner-eval-ops
Choose a base branch
from

Conversation

Al-Kindi-0
Copy link
Collaborator

As the title says. The current cycle count is around 57500 cycles.

Copy link
Contributor

@plafer plafer 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 job 👏

Left a few nits

#[test]
fn test_falcon512_probabilistic_product_failure() {
// Create a polynomial pi that is not equal to h * s2.
// create a polynomial pi that is not equal to h * s2.
Copy link
Contributor

Choose a reason for hiding this comment

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

The random_coefficients use rng - can we either fix a seed, or generate those coefficients deterministically?

Comment on lines +179 to +182
adv_push.2
dup.1 dup.1 ext2inv
push.0.0
loc_storew.4
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: can we add the state of the stack after this block?

@@ -218,182 +207,83 @@ export.load_h_s2_and_product.4
push.M u32lt assert
push.M u32lt assert

horner_eval_base
Copy link
Contributor

Choose a reason for hiding this comment

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

can we also add some comments for the state of the stack in this loop? It's quite hard to follow

Copy link
Contributor

@plafer plafer left a comment

Choose a reason for hiding this comment

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

I ran the miden-base tests on top of this branch, and I'm getting some NotU32 errors (for example, with the scripts::p2id::prove_consume_multiple_notes test).

Would be good to make sure the bus works fine too after we fix those (and #1664 might be useful if there's a bug there)

Copy link
Contributor

@plafer plafer left a comment

Choose a reason for hiding this comment

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

My bad, miden-base reimplements the dsa::falcon_sign method which was updated in this PR. After updating it, all tests pass.

I also confirmed that the bus is fixed with this PR, which confirms the findings of #1664 that rcombbase was the problem.

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