Pages:
Author

Topic: Proof of stake instead of proof of work (Read 32507 times)

copper member
Activity: 906
Merit: 2258
March 29, 2021, 12:33:47 AM
#34
Quote
I'm wondering if as bitcoins become more widely distributed, whether a transition from a proof of work based system to a proof of stake one might happen.
Yes, it is possible to have combined PoW + PoS system, and then PoW difficulty can drop to one to be soft-fork compatible. All that is needed is moving existing coins to some timelocked outputs. The coinbase transaction is timelocked-by-default to 100 blocks, so all miners are staking their coins for 100 blocks by default, but they can expand it as any other user, just by adding timelock.

So, that kind of transition is possible, but since PoS is unfair (if you have more coins, then you have even more coins) and it requires PoW miners to get rid of their power (and makes it impossible to compete for newcomers, because to have more coins, you need some coins, you cannot mine them without buying some amount of them first), it will simply never happen. And to be soft-fork compatible, all blocks have to meet the difficulty, so that PoW is still needed and cannot be entirely eliminated. But theoretically, yes, if everyone want PoS, it is technically possible to have a chain where PoW difficulty will drop to one and PoS will be activated by some kind of soft fork.

For now, Ethereum want PoS, let's see how they deal with it. I think that all PoW-to-PoS-transition-related things should be redirected to them, because it is more likely to happen there than on Bitcoin (also because Bitcoin miners have no reason to accept such things).
brand new
Activity: 0
Merit: 0
March 28, 2021, 11:00:57 PM
#33
Times have changed and are changing. It is necessary to keep up with it.

bitcoin
bc1qvcth09djjldpq2eua60ea9vlcjpsnhzz7rk9ya
brand new
Activity: 0
Merit: 0
March 28, 2021, 10:48:14 PM
#32
I've got an idea, and I'm wondering if it's been discussed/ripped apart here yet:

I'm wondering if as bitcoins become more widely distributed, whether a transition from a proof of work based system to a proof of stake one might happen.  What I mean by proof of stake is that instead of your "vote" on the accepted transaction history being weighted by the share of computing resources you bring to the network, it's weighted by the number of bitcoins you can prove you own, using your private keys.

For those that don't want to be actively verifying transactions, and so that not all private keys need to be facing the network, votes could be delegated to other addresses via some kind of nonstandard Bitcoin transaction.  In this way, voting power would accumulate with trusted delegates instead of miners.  New bitcoins and transaction fees could be randomly and periodically distributed to delgates, weighted by the number of votes they've accumulated, thereby incentivising diversity of the delegates and direct voters.

If the implementation could be done, it proved to maintain at least a similar level of privacy and trustworthiness, and it only minimally complicated the UX, I'm thinking that a proof of stake based fork could out-compete a proof of work one due to much lower transaction fees, since its network wouldn't need to support the cost of the miners' computing resources.  (Note that the vote delegation scheme has bandwith/storage overhead that would offset these savings by some amount which would hopefully be relatively small.)

Some other potential improvements this system could offer:
  • Possibly quicker, more definite confirmation of transactions, depending on how it can be implemented.
  • The "voting power" may be more trustworty, since it would accumulate in a bottom-up fashion via a network of trust, instead of in the somewhat arbitrary way it accumulates now.  (Note the potential problem of vote-buying here.)
  • It would remove the physical point of failure of bitcoin mining equipment, which can be confiscated or made illegal to run.
  • It could be used to provide stakeholders a means of making their voices heard (via the delegated voting system it establishes) when it comes to proposals for software updates and protocol changes.

Anyway, I just wanted to throw the idea out here to see if there are any obvious reasons why it couldn't be implemented, and to hopefully spark a discussion amongst those better qualified than me.

Cheers.

thats science!
hero member
Activity: 568
Merit: 703
Every post from @anunymint apparently was deleted.

Some of this thread was archived here and here.
member
Activity: 89
Merit: 10
It's so fascinating that my keyword search of "Proof of Stake," a very common part of the modern crypto lexicon, may have been born out of this thread started 7 years ago. It's a true testament to the open source nature of blockchain technology. I hope to see the continued success of crypto and look forward to being in the world that functions as a part of this technology.
legendary
Activity: 1456
Merit: 1175
Always remember the cause!
I think, this historical topic is a good evidence that PoS is not a new idea just a matter of common sense in the most naive way ever: let's instead of consuming energy and spending costs secure the network with our reputation/deposit whatever, easy peasy  Grin

This idea, PoS is trending now not because of its brilliance but because of PoW crisis, imo. Pools, ASICs, ... have ruined PoW and are getting more aggressive on a daily basis and governance is an unsolved problem and we can't improve, we can't evolve. Bitcoin is experiencing an ice age and it is so natural that naive ideas like PoS are becoming more popular.

I don't think PoS is a better idea so, it has been around for a long time, before bitcoin and PoW.

It can't do anything about inflation it shouldn't, it is just ridiculous to let coins to reproduce.

As of what op has suggested 7 years ago, PoS being adequate for transaction processing, I doubt it too ...

PoS has a centralization gradient, like what many claim about PoW (because of pools and ASICs) but for PoW there is cure  while PoS has no cure, it is of best interest of stake holders to form banks and cartels and let them decide about what or whose transactions to confirm or reject. Pos is nothing more than a cartoon of traditional banks, imo.

member
Activity: 336
Merit: 15
Of course, Proof-of-stake algoritm is much better than POW in efficiency, but it's the question whether we can implement it in Bitcoin network or not.
jr. member
Activity: 174
Merit: 6
I think that it is much more likely that a proof of stake coin will displace Bitcoin than Bitcoin will transition to proof of stake. A lot of people are in Bitcoin for speculation not because of the protocol, if we.start seeing mass adoption of an alt they will flee out in to that lowering the price , but difficulty will stay the same.
newbie
Activity: 148
Merit: 0
I think the only consensus algorithm suitable for public chain is POW, take the dpos (used in EOS) algorithm for example, DPOS has many drawbacks, for example, if a witness node was controlled by a attacker, then the attacker can broadcast many conflicting block with the same block height, in such condition, the whole witness network would be split to many sub-network which are not compatible with each other, at that moment,
if the confirmations of these conflicting blocks is less than 2 / 3 of total num of witness, then the whole network would be suspended. you might say that if can not reach 2 / 3, the system has a timeout mechanism, but wait, if system allow one witness produce two height within a small interval, in some network edge conditions, the different witness would generate different LIB (last irreversible block), in a distributed network environment, There is no uniform time and confirmation number.
sr. member
Activity: 390
Merit: 251
Mamihlapinatapai
With this comment i want just mark this piece of crypto-history for myself.
hero member
Activity: 798
Merit: 1000
‘Try to be nice’
April 15, 2013, 06:49:49 AM
#24
I've got an idea, and I'm wondering if it's been discussed/ripped apart here yet:



Hi QuantumMechanic - I'm digitalindustry I have a lot of respect you and this idea of yours and was wondering where i could discuss further aspects with regard to sociology and psychology around the design and market place penetration of "Novacoin"  - my interest is primarily in economics and sociology policy and humans generally.

if any nice person could give me a direction , i'd like to perhaps contribute .

Thank you.   
legendary
Activity: 1050
Merit: 1003
I would propose a hybrid sytem which uses proof of work and proof of stake. Transactions would still be verified using mining but people would have to pay for mining rights.

Suppose that a 100 btc security deposit had to be placed for each bitcoin mined per year. Miners could send 100 btc to a time-locked escrow transaction. The escrowed coins could be sent to other addresses as escrowed coins. Anyone holding the private key to this time-locked transaction could mine up to one bitcoin per year. The mined BTC can be spent immediately. Miners could request a withdrawal of the escrowed btc, but the request would be subject to a 6 month time lag. During the 6 month lag, no minng would be allowed and the escrowed coins could not be sent.

Initial distro could be handled by grandfathering in all existing btc accounts in a new blockchain. Users would have say 6 months to download a new client. The new client would begin enforcing the escrow rule at the end of the 6 months. Accordingly it would refuse to validate new coins except for the coins that had been grandfathered in.

Are there technical obstacles to this system?

Note: i know that this could not accommodate the current btc generation schedule since the system would place an upper bound on money supply growth of 1% per year. Just ignore this issue for now.
member
Activity: 110
Merit: 19
Edit: I think my questions were answered in this post http://forum.bitcoin.org/index.php?topic=28565.msg363945#msg363945

My curiosity won't stop nagging, so here's some bounties
member
Activity: 110
Merit: 19
By the way, if you're interested in delegated voting, I wrote a paper on using it in a democracy some time ago:

  https://docs.google.com/document/pub?id=1jidmNJHWAtsPLCUD7EPPm8jOEV93kSXbZOMycqCWOyA

I think delegating voting is a great idea. I'm less convinced that it would work for replacing hashing in the block chain, but it might.

Some more problems for you to consider:

  • If I control a key with 10 delegators, then I spend that key to 10 new keys, what happens to the delegations? Does it make sense for a key to have fan-out (ie 1 key to delegate to 10 other keys)? Do you split the value evenly or not?
  • How do you efficiently detect and resolve delegation loops? ie, key A delegates to B, B delegates to C and C then delegates to A? You have to do this efficiently because otherwise setting up new delegations is a way to DoS the system. Note that detecting cycles in a large graph is slow, Tarjans algorithm is O(number of edges). If each key in the system takes part then every new address in the system potentially makes setting up new delegations harder. As the number of keys in the system grows without bound over time, that could be an issue
  • Keys are owned by end users who may or may not know/care about the inner workings of their currency. How do you get new users to delegate appropriately?

It should be possible to run a parallel block chain based on proof-by-stake, but using the same transactions. It could be done with an adapted Bitcoin software. Once such a chain was up and running you could compare the results vs the existing chain.

I don't have the time/energy to do this myself.
Thanks for the link!

Please forgive all the parentheses in the following...

The first two problems you listed I think can be avoided by treating votes just like bitcoins, but having "election cycles" to compensate for their irretractablility.  For every election cycle (measured by some fixed number of blocks that is limited by the cost and time of running an election), every bitcoin address (or a uniquely determined address, so that bitcoin-containing private keys don't have to be network facing) is issued an equal number of "votecoins".  (Can actual blockchain-recorded transactions be avoided for this issuance?  Can it be done by an understanding that spends from the determined votecoin address up to the amount contained in the determining bitcoin address at the start of the election cycle are allowed during the the election cycle?)  During the rest of the election period, the network will accept votecoin transactions only for those issued during the current election cycle, until the end when some fixed number of addresses containing the most votecoins are elected to be the "representatives" during the next election cycle.

I'm not sure how resource intensive this search for the top votecoin containing addresses would be.

Perhaps voter participation could be incentivized using some portion of the transaction fees and newly issued bitcoins.  I'm reluctant to propose schemes to do this, though, since all the ones that I can think of don't really produce the right incentives, and also create perverse ones.  The larger bitcoin holders obviously have an interest in delegating their votes, but hopefully a really simple UX (vote delegation needs to be automated every election cycle according to user inputted delegates and weightings) and some peer pressure/annoying requests from the client/P. Diddy would be enough to motivate the rest.  Then again, maybe it won't matter if a bunch of the bitcoin-poor don't care enough to vote.

Notice that the public nature of the votecoin transaction history would help keep the delegates honest/effective.

Also note that storage requirements shouldn't be an issue since votecoin transactions from old election cycles don't need to be held on to.

Miners still seem to be necessary to keep time and bundle transactions, but the hashing power/reward they require could possibly be minimized the elected representatives' ability to regulate/make recommendations in the block selection process.

And if all the representatives are really doing is making recommendations to miners, then wouldn't only the miners have to be checking their signatures, usually?  This could allow for a much greater diversity of representatives, since the miners are already geared to accommodate higher overhead than clients.  I figure the only time the clients would need to check the signatures of the representatives is if the miners wanted to ignore the representatives en masse, creating a longer fork, and the clients wanted to ignore this longer fork.  But this might become too likely an attack vector if a significant amount of the overall hashing power of the miners is made obsolete by this system.

And if it's just recommendations, then would any of this require a separate blockchain/breaking change to the protocol?  Can the votecoin rules (their periodic creation and finite trading period) be accommodated somehow into the existing protocol?

Edit: From Mike, "There is a method of batch verifying ECDSA  signatures that's much faster than normal. It might change the economics of what you want to do: http://www.springerlink.com/content/h758580006764h26/ "
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
I was thinking a future Bitcoin client would need a screen of trusted certificates - sort of how your web browser already has one for SSL (well hidden), that helps it decide whose signatures are trusted, and can ultimately be controlled by the user.

Today, it is already a major pain in the ass to redownload the block chain, which takes hours, presumably while every single signature for every transaction is checked.  Yet, if I trusted a certificate from Gavin Andresen, and Gavin published a checkpoint certificate vouching for the correct hash of block 130,000 (for example), and this was relayed in a future version of the p2p protocol, then my client could just accept all blocks before that as valid without checking every bloody signature in every block.  And if I as a user didn't like or trust that behavior, I would merely remove Gavin's public key from my trusted certs list, or add a key of someone I trust more, the same way I can do this with SSL CA certs in my browser.
legendary
Activity: 1526
Merit: 1134
By the way, if you're interested in delegated voting, I wrote a paper on using it in a democracy some time ago:

  https://docs.google.com/document/pub?id=1jidmNJHWAtsPLCUD7EPPm8jOEV93kSXbZOMycqCWOyA

I think delegating voting is a great idea. I'm less convinced that it would work for replacing hashing in the block chain, but it might.

Some more problems for you to consider:

  • If I control a key with 10 delegators, then I spend that key to 10 new keys, what happens to the delegations? Does it make sense for a key to have fan-out (ie 1 key to delegate to 10 other keys)? Do you split the value evenly or not?
  • How do you efficiently detect and resolve delegation loops? ie, key A delegates to B, B delegates to C and C then delegates to A? You have to do this efficiently because otherwise setting up new delegations is a way to DoS the system. Note that detecting cycles in a large graph is slow, Tarjans algorithm is O(number of edges). If each key in the system takes part then every new address in the system potentially makes setting up new delegations harder. As the number of keys in the system grows without bound over time, that could be an issue
  • Keys are owned by end users who may or may not know/care about the inner workings of their currency. How do you get new users to delegate appropriately?

It should be possible to run a parallel block chain based on proof-by-stake, but using the same transactions. It could be done with an adapted Bitcoin software. Once such a chain was up and running you could compare the results vs the existing chain.

I don't have the time/energy to do this myself.
member
Activity: 110
Merit: 19
If there are relatively few delegates then what you have is effectively similar to todays payment networks, in which a few big players with pre-established trust relationships come to a consensus on who owns what between themselves. You'd have invented an open source SWIFT.
It sounds like it could scale to more than just a few.  And the voting power might flow much more easily away from corrupted players than with SWIFT due to the almost zero barriers to retracting votes, and to enter into the market to supplant the established delegates.  Remember, with delegated voting you don't necessarily give your vote directly to who will eventually cast it - you can just pass it on to someone you trust, hopefully solving the problem of rational ignorance/apathy.  That or the bad guys will just buy up all the votes Tongue  Or maybe the good guys will?

I guess the relevant question is if this would do a good enough job of decentralizing the "voting power" and making it accountable?  If so, the benefits listed above (that have survived) seem pretty significant.  It might at least be a good approach to smaller blockchains that don't expect to attract enough outside computing power to keep them secure.

But there are workable proposals for breaking that power and restoring Bitcoin to many thousands of voters again instead of just a few. They haven't been implemented but that's because talk is cheap, whereas working C++ isn't.
That is good to hear!  I understand that proposals from people who obviously aren't qualified to program the shit they propose, not to mention that most of what they propose is indeed shit, probably gets pretty annoying.

By the way, I'm not trying to pour cold water on your idea.
Not at all!  I quite appreciate your thoughtful responses!
legendary
Activity: 1526
Merit: 1134
If there are relatively few delegates then what you have is effectively similar to todays payment networks, in which a few big players with pre-established trust relationships come to a consensus on who owns what between themselves. You'd have invented an open source SWIFT.

Bitcoin is somewhat like that as well today due to the (unforeseen) power of the pools. But there are workable proposals for breaking that power and restoring Bitcoin to many thousands of voters again instead of just a few. They haven't been implemented but that's because talk is cheap, whereas working C++ isn't.

By the way, I'm not trying to pour cold water on your idea. Proof of stake doesn't seem like an inherently bad idea to me, and I think everyone agrees proof of work seems wasteful, even if in the end it's less wasteful than the current financial systems. But there's a huge gulf between "how about this?" and a working system that scales.
member
Activity: 110
Merit: 19
If there are relatively few delegates, and if they could each store their votes in single addresses, this could save a significant amount overhead for the network as a whole during voting/checking.

I suppose stakeholders by definition have an incentive to delegate their votes in such a way as to minimize the overhead in the network, but could this alone lead to some stable equilibrium?

Maybe you could also cull some necessary amount of the least influential addresses in the vote in order to help to reduce overhead to a workable amount?

I'm not sure if there's a transaction signing scheme to deal with retracted votes though, so I don't know if such a delegated voting scheme can even work.
legendary
Activity: 1526
Merit: 1134
You need to run some simulations to prove out your theories first. I agree with hashcoin, this idea is one that is intuitively "obvious" but I think it will fail when you run the numbers.

Consider that there are people today who have some non-trivial fraction of the entire chains value under their control (like MtGox). So to have any confidence in a chain you really need a lot of value to sign over it. That means huge numbers of keys.

An ECDSA verification takes around 2-3 msec today:

  https://en.bitcoin.it/wiki/Scalability

Assuming 2msec you can check 500 signatures per second. 500 keys is obviously not enough to accumulate enough value to have much trust in that block. You'd probably need hundreds of thousands of keys. That's a problem because if we assume a block every ten minutes then we can check at max:

  10 * 60 * 500 = 300,000 keys

before we are spending ALL our cycles doing nothing but figuring out how many people signed the  block and can no longer keep up with the chain.

This isn't even taking into account signing time, storage or bandwidth.
Pages:
Jump to: