-
Notifications
You must be signed in to change notification settings - Fork 59
Update DIPs regarding use of BLS12-381-reversed #25
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
Changes from all commits
4e1a594
4d4b6a1
236a650
8636fd3
0a2a688
70e5de3
ba96b79
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -110,23 +110,26 @@ We chose to enforce distinct messages when signing with a secret key. Dash’s i | |
|
|
||
| ## BLS Curves used | ||
|
|
||
| The BLS signature scheme requires pairing-friendly curves to be used. Multiple curves with different security, performance and space characteristics have been proposed by different parties. At the time this document was written, no decision had been made as to which curve would be used. | ||
|
|
||
| However, the choice of the specific curve should have no influence on the scheme itself, how BLS is used or what is possible. | ||
|
|
||
| This document will be updated when a decision has been made on which curve to use. | ||
| The BLS signature scheme requires pairing-friendly curves to be used, of which only a few suitable exist. Dash is | ||
| using the BLS12-381 with reversed G1 and G2 groups. A specification can be found in the Chia [bls-signatures](https://github.com/Chia-Network/bls-signatures/blob/master/SPEC.md) | ||
| repository. | ||
|
|
||
| ## Serialization format of BLS primitives | ||
|
|
||
| It is necessary to serialize BLS primitives into a byte representation so that they can be used inside other serialized data structures. How this is performed depends on the curves and libraries used. This has not been defined yet and this document will be updated later. | ||
| It is necessary to serialize BLS primitives into a byte representation so that they can be used inside other serialized data structures. | ||
| The serialization format is described in the Chia [bls-signatures](https://github.com/Chia-Network/bls-signatures/blob/master/SPEC.md) | ||
| repository. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is there a reason for the line breaks here?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's very hard to read/edit otherwise in my editor. In Markdown, single-newlines are ignored when rendered, so it's the same as if there was no newline. I'd suggest to limit line width in the future when we create DIPs to make editing/reading the plain Markdown easier.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We have this problem in all DIPs and nearly all paragraphs are in a single line...
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't see it as a "problem" since editors can be made to soft fold, but, I also understand and think if we do this then let's set at something standard like 72 or 80 and hard-wrap at that then. |
||
|
|
||
| Until then, all DIPs will use placeholders types for the BLS primitives and assume a fixed size. These placeholder type are: | ||
| The size of individual BLS primitives is fixed: | ||
|
|
||
| | Type | Size | Description | | ||
| | -- | -- | -- | | ||
| | BLSSecKey | 32 | BLS secret key | ||
| | BLSPubKey |64 | BLS public key | ||
| | BLSSig |32 | BLS signature | ||
| | BLSPubKey | 48 | BLS public key | ||
| | BLSSig | 96 | BLS signature | ||
|
|
||
| Please note that there is no length field before the primitives serialized data. This is different from ECDSA signatures | ||
| where a compact size integer is prepended. | ||
|
|
||
| ## Copyright | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same question about line breaks as below