Punishing minting on multiple chains

Could you explain this? What do you mean by ownership?

Ultimately, I wonder if it is actually necessary to consider a new transaction type just to record misuse of stakes in the blockchain. Why would it not be possible simply to allow all behaving clients to include [i]all[/i] coinstake transactions (even from orphans) in their submitted blocks? The transaction outputs would be declared invalid, but the coin-age could still somehow be considered spent. This way, anyone who allows their client to sign multiple blocks will end up either contributing to the main chain or losing stored coin-age. What additional value would voting transactions provide?
Yes, I think voting transactions could perform as coinstake transactions, but they need more information. You must add the information on which block this vote is going for. And this message must be signed.

Hey,

I asked Sunny about his opinion on punishments. He explained to me that it seems harsh to punish people for double minting, since it might happen that people mint on several chains by accident. This could happen, for example, if people run their client on multiple nodes.

I have to admit that I did not considered this case. It seems as Sunny thinks always one step ahead :slight_smile:

But I think I have figured out a method how to distinguish between unintended double mints and intended double mints:

Idea:
The rough idea is that we can classify double mints, which happen on “deep reorganizations” of the blockchain as malicious double mints and others as unintended. We would only punish these malicious double mints on “deep reorganizations”. From a security point of view this makes perfect sense, since just the deep reorganizations are ones threating the security.

Technical aspects:
Each voting transaction or coinstake transaction should contain information about the last two previous blockshashes in the blockchain, which this coinstake and voting transaction would like to extend. In each blockchain you can get punished, if you
-submitted the same coinstake(output) and timestamp twice to different chains.
-and if one of the voting/coinstake transaction contains two blockhashes, which are both different from any of the last 12 blockhashes of the current chain.
The second point ensures that one of the coinstakes was submitted on a “deeper reorganization attempt” in another chain.

Unfair punishments?
What must happen that a “normal guy” gets punished although his intentions are good? Many coincidences must fall together:

  1. There has to be a split of the mainchain. There must be two blockchains blockchainA and blockchainB.
  2. This splitting must happen at the same time a ‘normal guy’ is online with two peercoinwallets and he has to find valid coinstake.
  3. if both of the clients of the ‘normal guy’ view both chains blockchainA and blockchainB, then no problem occurs, since both coinsstakes will be submitted to the same chain. Hence, the ‘normal guy’ may get a punishment for double minting, if and only if one of his clients does not sees the second chain with more chaintrust.

That all three points fall together is very unlikely.
If someone wants to mint with his Peercoins on two Peerboxes - maybe because he thinks that redunancy is good for the network -, these punishments should not be a problem at all, since you can easily connect these Peerboxes by the command addnode and they will mint on the same chain.

I think this solution might resolve Sunny’s concerns.
Any thoughts?

I asked Sunny about his opinion on punishments.

Did he reply?

Yes, he did. I explained his concerns in the previous post.
Sry, if I did not make this clear.

[quote=“josojo, post:44, topic:2849”]Yes, he did. I explained his concerns in the previous post.
Sry, if I did not make this clear.[/quote]

Sorry. I somehow skipped that part in your previous msg.

EDIT: typo

See my brief description of Mike’s work on duplicate stake protocol change. This is scheduled for v0.5.

Mike’s code change is currently here: