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.
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(?)]
In verifier.py, I found it just do something to hash of transaction msg(bit by bit).
1 2 3 4 5 6 7 8 9 10 11 12 13
defmsg_to_hashes(msg, signature): # turn a message with signature into an ordered list of key pairs bit_stream = bit_stream_from_msg(msg) sign_stream = group_by_n(signature, 2) return_stream = [] for bit, sign inzip(bit_stream, sign_stream): if bit: return_stream.append(sign[0]) return_stream.append(s256(sign[1])) else: return_stream.append(s256(sign[0])) return_stream.append(sign[1]) return return_stream
So, I take a look at signature.csv and found no matter what transaction message is, H1, H2 are
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.