Post
Topic
Board Altcoin Discussion
Re: Decentralized Timestamp
by
ChuckOne
on 20/05/2014, 21:23:18 UTC
Signatures are dependent on the data they are signing and my public key, my public key is fixed but the data I am signing is not. I can add and remove transactions to the block to change the output of the signature. (Technically with ECDSA signatures you don't even need to do that, you just change the nonce used in signing to get a different signature)

There is no ECDSA involved. Just sha256.

Yes there is, when you sign a block with NXT you sign it using ECDSA. It is this signature that is used to calculate who gets to sign the next block and therefore you need to iterate through different ECDSA possibilities to produce the lowest value when you combine it with your public key and take the SHA256 hash of the two combined.

Show me the code.

This is what I mean:
 1) https://bitbucket.org/JeanLucPicard/nxt/src/046e59e4df43309a37c2789efd39dba4a873bbe2/src/java/nxt/Generator.java?at=master#cl-118
 2) https://bitbucket.org/JeanLucPicard/nxt/src/046e59e4df43309a37c2789efd39dba4a873bbe2/src/java/nxt/BlockchainProcessorImpl.java?at=master#cl-731

No ECDSA involved.

I think I see now the cause for this confusion. Let me put it simply:

generation signature is not block signature

generation signature = hash(generation signature of previous block concatenated with the forger's public key)
block signature = signature of block; forger's private key required


purpose of generation signature => providing the hit
purpose of block signature => providing block integrity