proof of stake: Nonlinear Function
Created: March 13, 2021
Modified: November 13, 2021

proof of stake

This page is from my personal notes, and has not been specifically reviewed for public consumption. It might be incomplete, wrong, outdated, or stupid. Caveat lector.
  • So the mechanism is if you have tokens you can choose to stake them. And in order to run anetwork node you must stake some number of tokens. So ultimately our goal here is to keep a distributed ledger and there will be some coins on the ledger marked as being staked, and I guess every node will need to prove ownership of some of those coins.
  • So to mint a new block you need I guess signed messages from the majority of the state capital agreeing that that block is legitimate and so if I'm putting in a transaction I will send my transaction to all of the nodes let's let's assume that um can all just communicate directly we know how to find each other we know each other's address it is because there's some kind of peer to peer protocol going on but let's not worry yet about those details
  • No the stakers should be incentivized to include my transaction if I'm staking and running a node and someone sends me a transaction then I want to include it because if well because the stickers are going to be incentivized for agreeing I think and the only real schelling point of agreeing is the truth so how do the stakers agree on the truth between them again let's imagine communication is is free if I is a stakker have a blocks worth of transactions and I sign it as like I approve that these transactions happened but this is legit then I sent that to all the other stickers now they have a choice between signing their own blocks or taking mine and signing it and we want to its end up his agreement you want to incentivize him to take mine and sign it so maybe the process is that you get a steak and reward only if you're within the first some fraction 2 sign a block
  • I suspect that this is not a complete explanation
  • No if I am running a note and I sign something invalid send that's no good I need to be penalized and I guess if whoever discovers that I sign something invalid can send a message or warning of some kind to the rest of the nodes and as part of that morning is or transaction but penalizes me that moves that kill some of my steak and then if enough other nodes agree with the warning they see the signed up and ends that I was trying to be bad penalising transaction and I will los…. money or some of my some of my money
  • What about energy savings versus proof of work if a dollar is locked up as stake? Well so that the the counter argument is that if I there is a cost of capital and so staking is not free and for the same level of security we can have to spend basically the same local resources on the currency so if the cost of capital is the 1% a year, then maybe we can spend a week and stake 100 times as much as we would have spent on work in a proof of work system and now economically society is is spending the same amount of money. But let's think about where the money goes aside from just securing a system. So in Bitcoin proof of work, the money gets burned up, literally; it goes to paying people to make electricity and run Bitcoin miners. Now with a proof of stake, the cost of the capital is that it is not being invested. If we thought that we could get 1% per year return on investment, and we're not doing that, then we lose the counterfactual GDP growth that would have come from that investment, and that is a real cost. But of course in the Bitcoin case we weren't investing that money either; we were consuming it. In one case the value was lost; in the other case the value was lost and we release a lot of carbon.
  • With proof of work, you never have trouble deciding which chain is valid chain. If I log on and I get 2 messages saying like here is the Bitcoin ledger, I can just watch for awhile to see which of those has more work going into the transactions being added to it and then that's the real Bitcoin, by definition. But with proof of stake the value is intrinsic to the chain. So if two different people send me messages, each saying here is the state of the ethereum ledger, and in one of them in the message from person A, person A says I have a trillion dollars staked, and in the one from person B, person B says no I have a trillion dollar staked, then how do I know which is the real ledger? You really don't. You could imagine metrics like 'most transactions' or 'most nodes' or 'most packets' but those are all vulnerable to sybil attacks.
  • I believe the way that proof of stake systems 'solve' this is by punishing defectors. If other stakers see you validating false transactions, then they'll kill your stake on the consensus network.
    • Can you still fool an unsuspecting newcomer by starting with fake transactions that give you control of 51% of the stake? Well, I think the thing is that you can't construct arbitrary fake transactions. The protocol itself contains a mechanism by which stakers are pseudo-randomly chosen to validate a transaction. For most fake transactions you try to come up with, the protocol would require you to get an existing staker to sign off on them.
    • Okay, but now it seems like we're back at proof of work. If you have, say, 1% of the stake, then you'll get to validate 1% of transactions. So you just have to try 100 different ways of stealing money until you find the one where you get to validate?
  • There's also a meta-incentive: a successful attack on a proof-of-stake chain would kill the value of that chain, so in the end you'd lose all your stake anyway. This still might be fine to some attackers, even nation states. If the USG has to burn $10 billion in staked Ethereum to destroy the Ethereum network, they might decide that's ultimately worth it.