or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
Hash-Based Multi-Signatures for Post-Quantum Ethereum
-–-
Philipp Muens - muens.io
X - @pmmuens
TG - @pmuens
GH - @pmuens
Goals
1st Presentation
Hash-Based Signatures - From First Principles
The Paper
Hash-Based Multi-Signatures for Post-Quantum Ethereum
Why?
BLS Signatures which are used in Ethereum's PoS consensus are based on Elliptic Curve Cryptography which isn't Post-Quantum Secure.
Current State
Desired State
Winternitz-OTS Recap
Cryptographic Hash Function Recap
\[ H(m) \rightarrow h \]
\[ m \not\leftarrow h \]
Hash Chains
\[ H^i(m) = H(H(...H(m))) \]
\[ H^{i+1} = H(H^i(m)) = H(H(H(...H(m)))) \]
\[ pk = H(...H(H(sk))) \]
Big Idea
If one gets an interim value at position \(i\) and knows the overall length \(n\) of the Hash Chain, then they can continue to hash the interim value \(n - i\) times to see if they end up with \(pk\).
Simple Winternitz-OTS
Key Generation
Signing
Verification
Problems
1. Computationally Expensive
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →We have to distribute \(l\) Public Keys for signature verification.
Hash all \(l\) Public Keys "into" one Public Key \(pk\).
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →2. Signature Forgeries
Compute a checksum and append it to the data that will be signed.
Checksum changes whenever any \(\sigma_i\) is changed.
\[ c = \sum_{i=0}^{l-1} ((2^w - 1) - x_i) \]
Sum of all the missing hash iterations necessary to reach \(pk_i\) for each individual chunk \(l_i\).
\(c\) will be reduced by \(1\), whenever a signature \(\sigma' = H(\sigma)\) for chunk \(l\) is forged.
\(c\) is also signed as \(\sigma_c = H^c(sk_c)\).
We'd need to undo one hash iteration to adapt the checksum \(c\) which isn't possible due to the one-wayness of Hash Functions.
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →Classical Winternitz-OTS
Checksum adds additional overhead…
Allow only messages that result in a pre-defined sum of interim values.
\[ T \approx \frac{l \times (2^w - 1)}{2} \]
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →Target Sum Winternitz-OTS
OTS –> MTS
How do we go from a One-Time Signature to Many-Time Signatures?
Why is Winternitz a One-Time Signature Scheme?
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →So how do we go from OTS to MTS?
Merkle Tree
Great, because it only uses Hash Functions!
Signing & Verifying
eXtended Merkle Signature Scheme (XMSS)
How do we know which Merkle Tree Leaf to choose?
Enumerate leafs from left to right.
Each leaf will be assigned to a slot = Synchronization
What about signature aggregation?
TBD
Post-Quantum SNARK
Which Hash Function should we use?
SHA-3 (Conservative choice)
Poseidon 2 (Faster aggregations)
Signature Size vs. Computation Cost
Signature Size = Bandwidth Requirement
Computation = Verification & Aggregation Costs
Parameter Selection
SHA-3-256
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →Poseidon 2
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →If this piqued your interested, then you can use the resources I used to make this presentation to dive deeper into the specifics.
Additional Resources
Thank You!
-–-
Philipp Muens - muens.io
X - @pmmuens
TG - @pmuens
GH - @pmuens