|
January 19, 2015, 01:20:39 AM |
|
Lets say there is a currency with 100 units. I define the consensus group as anyone currently holding a positive number of units. (PoS) because there is a block chain type ledger, I know the public keys of all of the accounts with positive balance. lets say that for each block the code: 1. generates a list of all nonzero account balances and public keys 2. Takes that list and makes a sha256 has of each public key along with the hash of the previous block. 3. Takes the first 8 bytes of this sha256 to make a big number for each account. 4. Divides the number by the current balance in the account. 5. Now it makes a list of the accounts in order by the number generated earlier, smaller numbers first 6. We want a block every two minutes, and we will allow for thirty second of clock varience. (fifteen on each side) 7. Starting 1 minute 45 seconds to 2 minutes 15 seconds, we accept blocks from the number 1 on the list. 8. If the block is revieves and hood, this is started over, if not, keep going. 9. If there's no block, or a bad block, then the account is blacklisted (blacklisted accounts cant generate blocks for a day and their block generating power is given to everyone else) 10. Keep waiting/blacklisting until an account steps up
the careful observer is now yelling WAIT, the black list makes any chain have the ability to create blocks with all of the stake, how will we know which is the correct chain. - thanks for asking, we can resolve these disputes quite simply by just looking where more of the accounts are not skipping their turns, (will have a higher difficulty)
now the very careful observer is almost falling out of their seat, the normal nothing at stake argument PDF in hand, ready to derail this possible idea "Why doesn't everyone generate blocks on every chain, there's not reason not to" - another great question, the reason why they wouldn't stems from economics, all of the people generating blocks have a n investment in the system and want to protect that investment, in this system, there are no fees (spam is dealt with differently) so there's no incentive to generate blocks on any chain besides to protect investments. the only punishment for using a malicious chain is not being able to use your currency with anyone else. Lets say you buy coffee on the block chain every day, the coffee seller includes a block from the chain their on with every transaction they make to show what chain they are on, if I start a different chain, and people begin to adopt it, because why not generate blocks on as many branches as possible, then its down to the people to decide which chain to use. in this case I would choose the same one my coffee seller is on, because I want coffee. if a big enough representation of business is on one branch, it wouldn't make sense to ever switch to another one.
thoughts?
|