 So in a traditional consensus protocol, you have a situation where somebody has to decide. A person, a group, many people has to decide what the state of the system is going to be. So in reality, all ledgers that involve cryptocurrencies have this notion of changing from one state to another state. You go from A to B. So when Alice issues a transaction to Bob, there has to be a process to transfer that value. So a consensus algorithm is all about how do we do that, who is involved in that. So Bitcoin innovated tremendously by saying let's create a lottery system, a meritocracy of a lottery system, where people do work and in the process of doing work it's kind of like buying lottery tickets. And the more work you do, the more tickets you can buy and eventually you find the magic number and that gives you the right to advance the network from A to B. Now if one wants to emulate this system without the use of a huge amount of electrical power, without the use of specialized mining equipment, doing this in a way that you get all the security, but you don't have to pay the enormous price, that's what we're attempting to do with proof of stake. So that means we have to find good sources of random numbers. That means we have to engineer a different kind of lottery and we have to show in a very rigorous way that despite the fact that we aren't spending these resources, we still have the same security guarantees or equivalent security guarantees to proof of work and we can build a production system that can scale to millions and perhaps even billions of users.