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

First cut at blind BLS. #45

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft

Conversation

chris-wood
Copy link

Opening as a draft for #37. This change sort of pins the message augmentation variant (mixing in the public key into the encoded message). I've not yet considered the interaction with the PoP variant.

As usual, all bugs are my own!

cc @dot-asm, @veorq, @zhenfeizhang, @kwantam to start

1. Y = signature_to_point(blind_sig)
2. R_inv = R^-1
3. signature = point_to_signature(R_inv * Y)
4. if CoreVerify(PK, message, signature), return signature
Copy link

Choose a reason for hiding this comment

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

Well, not message, but PK || message, right? I mean since you blind PK || message, you have to verify PK || message...

Copy link

Choose a reason for hiding this comment

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

On tangential note. PK || message spells message-augmentation and question if it should be reflected in DST. Well, question is also "what would be the [recommended] DST."

Copy link
Author

Choose a reason for hiding this comment

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

Oops, good catch! I was questioning why'd even both with the basic mode while writing this. Is there a benefit to not always doing augmentation?

Copy link

Choose a reason for hiding this comment

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

Is there a benefit to not always doing augmentation?

Do you mean like "ever"? I.e. not only here, but everywhere else and always?

Copy link
Author

Choose a reason for hiding this comment

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

Yeah -- it's a separate question, and one raised on the list.

Copy link

Choose a reason for hiding this comment

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

it's a separate question

I'm not very good at reading cues, is it "it was a distraction, forget about it," or "any thoughts?"

Copy link
Author

Choose a reason for hiding this comment

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

Oh, sorry :) I mean, what do you think about dropping basic mode altogether and always augmenting the message? (We might want to just have this discussion on the list?)

Copy link

@dot-asm dot-asm Aug 11, 2021

Choose a reason for hiding this comment

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

what do you think about dropping basic mode altogether and always augmenting the message?

I can't think it. Well, I can think of these two things separately but not as one or two interdependent. I mean one can discuss omission of the Basic scheme, but it doesn't actually translate to "always augment." Because at least you need a non-augmented sign for PoP. Or shall we discuss removing even PoP? But then this asks for the question "what's criteria for inclusion/omission"? Note that this can be turned even against this PR. Indeed, why this blind signature scheme? ;-)

As for the referred message. In my mind it effectively asks why doesn't the draft describe a specific application? Well, I can't speak for the draft authors, but it appears to me that it was the original intent. That is to be application-agnostic, and rather provide a kind of a foundation for specific applications. I mean In other words, the correct question would be rather "where are the application specifications?" and not "why doesn't this draft describe one/mine?" I might be wrong of course, as, again, I don't claim to know the original intent or its evolution :-)

- message, an octet string.

Outputs:
- R, a scalar in G1.
Copy link

Choose a reason for hiding this comment

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

What does "in G1" mean? That blind signatures make sense only over E1? If so, then it's arguably not optimal spot for such statement. And if not, then it's a number less than r irregardless the curve. BTW, should one specify it as 1 < R < r? More specifically "more than 1" to ensure that 1/R != R?

Copy link
Author

Choose a reason for hiding this comment

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

Hmm, I was assuming that this would only work over E1, though maybe that constraint is not strictly necessary?

Copy link
Author

Choose a reason for hiding this comment

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

(Also, separately agreed on the constraint for R :))

Copy link

Choose a reason for hiding this comment

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

this would only work over E1

Algebraically it's fully symmetric. I mean it does work either way.

Copy link
Author

Choose a reason for hiding this comment

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

Sorry, I mean that the change constrained itself to one curve, not that the mechanism itself doesn't work across both.

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