Author

Topic: Changing a coin's proof of work? (Read 710 times)

full member
Activity: 168
Merit: 100
July 27, 2013, 06:05:38 PM
#11

This is all in theory.   Is there are coin that successfully pulled this off?
Not that I know of, but its totally possible (and this comment is not just a theory).
You can adjust every parameter you want, it's just about if community accepts it (eg. downloads the new client).
member
Activity: 70
Merit: 10
Expert Computer Geek
July 27, 2013, 06:01:23 PM
#10
don't go messing with the time warp rabbit trick silly rabbit you could warp the blockchain !?  Grin
sr. member
Activity: 294
Merit: 250
July 27, 2013, 05:53:48 PM
#9
I wonder what the effect will be for existing blocks that used the older proof of work.

I think it won't have much effect.

The hash is of the program version, the hash of the previous block header, the hash of all the transactions in the block and a few other things. I don't see it referring directly to any of the previous blocks (only to the prevHash), so it should be fine.

Disclaimer: I am not an expert
you have to have backward compatibility for blockchain integrity checks but its not too hard to implement.
trivial case is to add something like
if (block.nheight < switchoverheight) {
  block.checkblockOld(hash);
} else {
  block.checkblockNew(hash);
}


This is all in theory.   Is there are coin that successfully pulled this off?
full member
Activity: 168
Merit: 100
July 27, 2013, 01:08:46 PM
#8
I wonder what the effect will be for existing blocks that used the older proof of work.

I think it won't have much effect.

The hash is of the program version, the hash of the previous block header, the hash of all the transactions in the block and a few other things. I don't see it referring directly to any of the previous blocks (only to the prevHash), so it should be fine.

Disclaimer: I am not an expert
you have to have backward compatibility for blockchain integrity checks but its not too hard to implement.
trivial case is to add something like
if (block.nheight < switchoverheight) {
  block.checkblockOld(hash);
} else {
  block.checkblockNew(hash);
}
full member
Activity: 196
Merit: 100
July 27, 2013, 10:18:08 AM
#7
I wonder what the effect will be for existing blocks that used the older proof of work.

I think it won't have much effect.

The hash is of the program version, the hash of the previous block header, the hash of all the transactions in the block and a few other things. I don't see it referring directly to any of the previous blocks (only to the prevHash), so it should be fine.

Disclaimer: I am not an expert
full member
Activity: 224
Merit: 100
July 27, 2013, 10:02:43 AM
#6
Whatever happened to Zenithcoin?


potato
sr. member
Activity: 294
Merit: 250
July 27, 2013, 10:00:41 AM
#5
It is probably possible, like mustyoshi said.

However, if that is to be done the difficulty has to be taken into account, since different hashing algorithms have different speeds. Moving from, say, SHA-256 to Keccak, would entail a significant hashrate alteration (some searching around gives me 12.5 cycles/byte for Keccak and 14.3 cycles/byte for SHA-256, a difference of ~15%), resulting in probable difficulty plunges or spikes. A good difficulty adjustment algorithm would be able to handle this properly.

If the re-target algorithm is fast enough, then this should not be too much of a problem.

I wonder what the effect will be for existing blocks that used the older proof of work.
legendary
Activity: 1050
Merit: 1000
July 27, 2013, 09:47:43 AM
#4
Whatever happened to Zenithcoin?
full member
Activity: 196
Merit: 100
July 27, 2013, 09:45:27 AM
#3
It is probably possible, like mustyoshi said.

However, if that is to be done the difficulty has to be taken into account, since different hashing algorithms have different speeds. Moving from, say, SHA-256 to Keccak, would entail a significant hashrate alteration (some searching around gives me 12.5 cycles/byte for Keccak and 14.3 cycles/byte for SHA-256, a difference of ~15%), resulting in probable difficulty plunges or spikes. A good difficulty adjustment algorithm would be able to handle this properly.
sr. member
Activity: 287
Merit: 250
July 27, 2013, 08:16:04 AM
#2
It shouldn't be too hard, just in the implementation, create a consensus of when the fork occurs (block height wise) and the wallet software does so accordingly.
sr. member
Activity: 294
Merit: 250
July 27, 2013, 08:14:38 AM
#1
Has anyone does this yet?

Change a coin's proof of work after millions of coins have been mined?

Jump to: