Hacker News new | past | comments | ask | show | jobs | submit login

The idea is to vote not by bringing nodes online, but with a stake. Meaning you sign with a private key which is linked to a certain amount of cryptocurrency.

To make sure that something is actually at stake and you don't just vote 50 times on 50 different valid forks, anyone can submit proof to the chain (or rather, any fork of the chain) which shows that a certain stake voted for multiple conflicting forks. In that case the stake is destroyed in all of those forks. Part of the stake may be given to the reporter as incentive for such reporting.

The result is that stakers need to pick one fork, and the one with the most votes (weighted by the amount of currency behind them) wins.




> Meaning you sign with a private key which is linked to a certain amount of cryptocurrency.

This requires that the 50 different chains each use the same private key for the stake.

What if 50 different chains are presented in which no private keys are the same?

Why would an attacker reuse the same private key for a new, but valid, chain?

> [...] anyone can submit proof to the chain which shows that a certain stake voted for multiple conflicting forks.

How does this solve the problem when the miners (who may have mined on multiple chains) are the ones who need to include this proof-of-fraud in the chain? What will make them include a transaction proving they've committed fraud?


> What if 50 different chains are presented in which no private keys are the same?

The chains share state right up until the fork point. Each fork gets resolved by the signatures linked to stakes that were already established in the last shared block.

> What will make them include a transaction proving they've committed fraud?

A staker/miner can chose to not include proof of his own wrongdoing, but that will not prevent others from creating an alternative fork which does have that proof.


> The chains share state right up until the fork point.

I’m not talking about forks. I’m talking about completely different, but valid, chains.

> A staker/miner can chose to not include proof of his own wrongdoing, but that will not prevent others from creating an alternative fork which does have that proof.

This brings us back to the initial problem: how do we agree on which chain is the canonical one?

Also, what’s the timeout on this event happening? Unless there’s a timeout — at which point a fork changing history is ignored — some transactions in the chain remain unsettled because a fork might appear which invalidates them (because they originated from coins that were staked by a now-proven-fraudulent staker).


> I’m not talking about forks. I’m talking about completely different, but valid, chains.

Typically block zero is signed by the developer of the client, so there is no such thing as completely different, but valid, chains, as there is always a fork point.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: