Our hot new cryptocurrency uses powerful techniques to make the asymmetric key signatures just as hard to crack on a quantum computer as a binary one. Maybe we forgot something though? Send some money to a weird address if you get any.
There’re tons of signatures.
Those format is :
identity | transaction msg | H1, H2, ..., H512 | Others
The part of others is made up of five to six
[bit(0 or 1), sha256(?)]
verifier.py, I found it just do something to
hash of transaction msg(bit by bit).
def msg_to_hashes(msg, signature):
So, I take a look at
signature.csv and found no matter what transaction message is,
e.g. If the first bit is 0,
else if the first bit is 1, then
This seems determined by the hash of transaction message corresponding bit is 0 or 1.
Not only that, I also found out each transaction send by
9bca65c9376209ede04b5df3b02cb832f8997ff978069d171dc9cbfca657f91a using the same value of
others to get the identity.
If I use
9bca65c9376209ede04b5df3b02cb832f8997ff978069d171dc9cbfca657f91ato send the transaction message.
collect all corresponding hash value to make the right set of H1,H2,…H512 depends on the hash of transaction message.
Then I will pass the veritify … ?
After the game, I learned that this algorithm is called
Lamport signature or
Lamport one-time signature
I hope this message helps xD.