Post
Topic
Board Altcoin Discussion
Re: Transparent mining 2, or What part of Legacy should be left behind
by
Zahlen
on 13/03/2014, 19:03:31 UTC
Wanted to clarify my understanding of Nxt's TF approach to proof of stake. Going to try to write it out here, hope folks can comment/correct/ask about stuff and help me improve my understanding. I'm unable to keep up with the main thread, sorry if all this has been brought up before. Thanks!


Regard time where events (transactions) are occuring as discrete (say in 60 sec blocks). The consensus problem: how do we get a group of actors (Nxters, nodes) to come to an agreement on a common, consistent version of history (blockchain branch), given that no one can see the entire network at any point in time, each actor only knows about his own actions, and maybe the actions of actors near him. And this becomes more difficult as not everyone can be assumed to be always honest or accurate.

The simplest way to come to consensus is to accept what one actor decides as the version of history. This is the starting point of Nxt. So the general consensus problem now reduces to the problem of agreeing on which actor should be the one to decide (forge the block). Let D be the function that determines who is the one to decide.

Again, the decider does not see the entire network. In order to get information, other actors must send information about their events to the decider. It's inefficient to send information about all of your past events, so to simplify, each actor sends only events that they originate during the current block of time and state which version of history these events are based on. The decider then updates the version of history with the information received. The other actors may not see the decider as well, so after updating the decider broadcasts the updated version of history to other actors, who continue to help broadcast it.

We cannot have the same actor always decide, since they may not always be honest or accurate. So we need to regularly change the decider, have different actors decide for different blocks of time. We don't necessarily want all actors to decide the same fraction of the time, i.e. to not all have the same say. Call the proportion of the time where an actor gets to decide their effective stake. So effective stake is a measure, and basis of an actor's influence in the version of history. This is why we say Nxt is proof of stake.

Even if everyone agrees at a point in time to one actor's version of history, that version may not be honest or accurate. So we need to be able to switch versions of history, to prefer one history over another. Call this preference function H.

Let's investigate the properties that D and H should have, and then hopefully be able to define them.

(There is a third function I that determines which events the decider wishes to include into the updated version of history. This is not so important, I think it can be left up to each actor, so I won't go into it here.)