Pages:
Author

Topic: Proposal: We should vote on the blocksize limit with proof-of-stake voting - page 2. (Read 6325 times)

legendary
Activity: 2053
Merit: 1356
aka tonikt
No, I'm not afraid. I just think this idea does not have a chance to succeed, and will list a few points why.

1) Offline wallets will be holding more and more money, so they won't be able to vote in a "simple, automatic process". IMO few years from now most of the money will be kept in cold wallets. Actually, maybe it is already the case - we don't even know it.

2) Assuming that the block size won't blow up soon and so people will use all kind of bitcoin banks, because of the rising on-chain tx costs, this solution will be just anti-democratic.

3) Buying bitcoins is much easier that buying (and deploying) mining equipment. Moreover number of bitcoins (unlike hashing h/w) is limited, so if you have enough money you can just buy half of the coins and become the ever lasting bitcoin dictator.

4) The miners will still be able to overrule whatever the proof-of-stake voters decided and I don't see any solution to prevent it. Client nodes need miners more than miners need client nodes and if the clients decide to go into a forked branch of their choice, but leaving the miners at the other branch - it would be their suicide.
legendary
Activity: 1792
Merit: 1111

Unfortunately that just isn't possible because miners fundamentally control what votes get into the blockchain at all. What you are proposing allows miners who wish to raise the blocksize to rig the vote by ignoring transactions voting against an increase, and it just takes a 50% majority of miners to do that. Not exactly a compelling majority of Bitcoin users is it?



This also applies to your proposal. 51% of miners can reject all "status quo votes" and blocks containing status quo votes. After one year, these status quo votes will get lower and lower weight and eventually the blocksize will be increased.
member
Activity: 70
Merit: 18
The problem with your proposal is that it counts anyone creating transactions on clients that don't have this voting feature as voting for the permanent 1 MB block size limit, which is a very controversial departure for the original plan to eventually replace what was meant to be a temporary 1 MB block size limit with another solution that allows high bandwidth nodes.

There was no plan. All we have is some random comments from Satoshi suggesting a possibility.

Note how the proposal is careful to note that not voting is not a vote for a 1MB limit, but a vote for the status quo. In the future that status quo will probably not be 1MB, so your default vote will be for a different, probably higher, number.

Adding the voting feature is simple and easy. There just aren't that many clients out there so I really do not see the issue there.

If all votes require a special transaction type, rather than counting normal transactions as a vote for a particular option, that would be more reasonable.

Unfortunately that just isn't possible because miners fundamentally control what votes get into the blockchain at all. What you are proposing allows miners who wish to raise the blocksize to rig the vote by ignoring transactions voting against an increase, and it just takes a 50% majority of miners to do that. Not exactly a compelling majority of Bitcoin users is it?

Anyway, the point of my proposal is we know that miners can effectively reduce the blocksize by just not creating large blocks and not building upon the work of other miners, but we can coerce them into creating larger blocks by offering them fees. But what we can't do is limit how large blocks can become, which is the limiting factor for how easy it is for someone to become a true miner themselves. (not just someone working on behalf of a miner) Controlling the upper limit to something the whole community can agree on is what is important because we all benefit from a Bitcoin where the resources required to operate a full node are acceptable, for some value of acceptable.

Very few people are complaining about the vote by mining method. Large pool owners aren't the ones making the votes, as miners can point their hashes to any pool they want.

"Very few"?

Quote
My off-the-cuff guess (may be wrong) for a solution was:  if (todays_date > SOME_FUTURE_DATE) { MAX_BLOCK_SIZE *= 2, every 1 years }  [Other devs comment: too fast!]  That might be too fast, but the point is, not feedback based nor directly miner controlled.
-http://garzikrants.blogspot.de/2013_02_01_archive.html (emphasis his, not mine)

That's Jeff Garzik, a highly respected core developer. Gregory Maxwell and IIRC Pieter Wuille shared those same concerns on IRC. Gavin is the odd man out in the core-dev team to think that leaving the decision up to miners is OK.
hero member
Activity: 772
Merit: 501
Voting is a simple, automatic process. Your wallet would have a pop-up when you configure it asking what you want your vote to be and giving a bit of education on what the option actually means. After that the process can happen entirely automatically. Submitting a vote doesn't cost you anything in time or money and unlike leaving the decision 100% up to miners it ensures that entities like the Winklevoss twins with the connections required to get access to mining hardware on a level playing field, BTC to BTC, as you are. (Mike Hearn for example has said he expects for mining hardware to be highly regulated in the future)

The problem with your proposal is that it counts anyone creating transactions on clients that don't have this voting feature as voting for the permanent 1 MB block size limit, which is a very controversial departure for the original plan to eventually replace what was meant to be a temporary 1 MB block size limit with another solution that allows high bandwidth nodes.

If all votes require a special transaction type, rather than counting normal transactions as a vote for a particular option, that would be more reasonable.

Quote
Others, including myself, have said repeatedly we don't want the tiny set of large pool owners setting the blocksize. With voting both parties can be made happy.

Very few people are complaining about the vote by mining method. Large pool owners aren't the ones making the votes, as miners can point their hashes to any pool they want.

In any case, I don't think proof-of-stake voting is inherently bad. It's just that the implementation has to be unbiased to the options.
hero member
Activity: 714
Merit: 500
Martijn Meijering
As you say, it's a dispute resolution mechanism.

Sure, and I think it's possible we'll see a combination of a number of mechanisms: ASIC-unfriendly hashing functions, alternative proof of work schemes, proof of stake, proof of burn.
sr. member
Activity: 461
Merit: 251
Frankly what are you guys worried about?
The collective wisdom of individual ignorance.
member
Activity: 70
Merit: 18
Voting has its own risks. After all, democracy is the original 51% attack, as Erik Voorhees puts it so nicely. Before you know it, we might have Bitcoin taxes. Still, it's possible some less drastic dispute resolution mechanism than forking Bitcoin or switching to a rival currency will emerge. It's certainly interesting to speculate about the possibilities.

The thing is we already have one voting mechanism, mining. But that is a mechanism where the right to vote is dependent on your access to highly specialized hardware and in practice has been held in the hands of a very few in Bitcoin's history due to the natural incentives for miners to mine at large pools.

By adding proof-of-stake voting you counter-balance that vote with one where access is determined by a resource that all Bitcoin users have, Bitcoins themselves. Obviously we can't force miners to make larger blocks, but we can make it clear what maximum size we will accept, so the two voting processes go hand-in-hand.

As you say, it's a dispute resolution mechanism.
hero member
Activity: 714
Merit: 500
Martijn Meijering
Voting has its own risks. After all, democracy is the original 51% attack, as Erik Voorhees puts it so nicely. Before you know it, we might have Bitcoin taxes. Still, it's possible some less drastic dispute resolution mechanism than forking Bitcoin or switching to a rival currency will emerge. It's certainly interesting to speculate about the possibilities.
member
Activity: 70
Merit: 18
Voting is a simple, automatic process. Your wallet would have a pop-up when you configure it asking what you want your vote to be and giving a bit of education on what the option actually means. After that the process can happen entirely automatically. Submitting a vote doesn't cost you anything in time or money and unlike leaving the decision 100% up to miners it ensures that entities like the Winklevoss twins with the connections required to get access to mining hardware on a level playing field, BTC to BTC, as you are. (Mike Hearn for example has said he expects for mining hardware to be highly regulated in the future)

Frankly what are you guys worried about? Losing? If Bitcoin users really want a large blocksize they'll vote, and it'll be easy to convince them to vote if they see fees going up and want fees to be lower. Voting is an excellent answer to those suggesting that politically powerful members of the community are pulling strings by taking the issue out of their hands entirely.

Gavin Andresen has said repeatedly that he doesn't want to be "the guy" setting the blocksize. Others, including myself, have said repeatedly we don't want the tiny set of large pool owners setting the blocksize. With voting both parties can be made happy.
legendary
Activity: 2053
Merit: 1356
aka tonikt
Quite frankly, I don't give a fuck what the Winkelvoss twins want, or what Gox wants, or any other entities with big wallets.
Yeah, and I am with you here, so after all I do not quite support the idea of moving the power from he miners to the coin holders.

If you guys, whoever you are, but who are smart enough to make whitepapers that I can hardly read, want to do something really useful, I'd modestly suggest you moving the focus from empowering bitcoin banks to empowering individual miners, from behind the pools' interface.

Could you think of any voting system where a miner can vote individually, using his small 300Mh/s miner?
Something that would still allow him to cast a vote of his choice, yet without a need for him to give up his mining pool?
Why do we even want to involve mining pools into politics? I am sure none of them wants that - they are not like the elite of bitcoin Wink
But anyway, it's the people who mine that should decide - just let them to do it, but without forcing mining pools to choose a camp (which can likely start a war of giants).
That should be doable.
sr. member
Activity: 352
Merit: 250
https://www.realitykeys.com
I've seen at least a half dozen proposals involving various ways to calculate "stake" in the system.  Some or all of them may be objective or neutral, but the choice of which one to use certainly is not.

If people think we should change the decision-making process to this, maybe they should start by getting a 51% vote by the method they propose, for the method they propose. I'm sure somebody can come up with a way to mark transactions as being in favour of this change without changing the protocol.

It shouldn't be very hard to get that 51%, since the people who will be most empowered by it will obviously want to support it. Unless it turns out that this is not in fact a serious proposal for making decisions, but instead a ludicrously transparent scheme to create a hurdle against any change, including one that has always been planned, by adding an extra step that has to be cleared in addition to the mining consensus, while counting the vast majority of people who aren't following the particular argument in question as "no" votes...
kjj
legendary
Activity: 1302
Merit: 1026
I prefer that we make small increases when there exists overwhelming approval.  I'm willing to accept that a majority of miners can give the appearance of overwhelming support because doing so is like deciding to go first in a nuclear war.  No one is sure how it'll end, but we are all pretty sure that it won't be pretty.

Yeah, at least proof-of-stake voting can give us a neutral and objective way of deciding if overwhelming approval actually exists in the community rather than just guessing.

I guess I should have said "overwhelming approval by those actually doing the work".  Quite frankly, I don't give a fuck what the Winkelvoss twins want, or what Gox wants, or any other entities with big wallets.  The guys paying fees right now and the guys mining blocks right now are what really matter, in my view.  Hashes and fees are consumed.  Stake is not.

I guess our disagreement could come down to one side thinking that neutrality and objectivity can be found, while I'm old and cynical, and do not.  I've seen at least a half dozen proposals involving various ways to calculate "stake" in the system.  Some or all of them may be objective or neutral, but the choice of which one to use certainly is not.

If you include nonces or sequence identifiers in the votes, then you are biased against cold storage.  If you do not include such a mechanism, then you've invented a ratchet that only swings in one direction (also not neutral).  Unless I missed something in physics class, then any weighting system to be used will have been invented rather than discovered, which is to say that it will be subjectively chosen.

It goes on and on...  Stake systems seem to have a lot of promise, but don't actually seem to deliver, as far as I can tell.
hero member
Activity: 772
Merit: 501
A txout without a corresponding vote is considered to be a vote for the
status quo.

The status quo should be that the 1 MB block size limit is lifted, as that was the plan when it was first implemented, and there has been no consensus since then to change the plan.

Also, to count txouts without a vote as a vote for a particular choice is to give that choice a massive advantage, as it's a lot more difficult to create new type of transaction than a normal transaction.
legendary
Activity: 1120
Merit: 1152
I get it that the no-vote position is to leave things alone, I'm just saying that a majority of miners can overrule the stakeholders in your system.  If the stakeholders want an increase, but the miners don't, the miners can just ignore their votes.  And if a majority of miners wants to ignore their votes, they can also ignore blocks from other miners that include them.

For the record, it's John Dillon's system. I had been thinking about the problem myself, and thinking about various commitment schemes, but he was the one that made the critical realization that vote withholding wasn't an issue in the first place because of the asymmetry involved.

In any case, of course the majority of miners can ignore a vote to increase the blocksize, what they can't do is ignore a vote to keep it steady or decrease it. That is quite unlike recent proposals to just remove the limit and let miners decide. You can always encourage miners to mine larger blocks by paying higher fees.

And in this case, the incentives align in funny ways.  It might be economically rational* to restrict blocks to a limit lower than the stakeholders would prefer, because one presumes that the stakeholders want a bigger block to reduce space competition.

For sure, and those incentives work differently for different miners. Any large pool, or set of large pools with faster network connections between them, will have a much lower orphan rate for a given blocksize than a smaller pool simply because to get an orphan means someone else has to find a block before yours propagates, so more hashing power reduces that risk, and more hashing power makes it cheaper, relatively speaking, to afford to fast machines and fast network connections to speed up propagation and keep that rate down, while increasing the rate for your competitors and forcing them out of business. (remember that one way to get an orphan is when someone else generates a block, but you don't know about it yet, less of an issue now because you can just mine empty or near empty blocks and collect the large inflation subsidy, but that won't be true for much longer)

I prefer that we make small increases when there exists overwhelming approval.  I'm willing to accept that a majority of miners can give the appearance of overwhelming support because doing so is like deciding to go first in a nuclear war.  No one is sure how it'll end, but we are all pretty sure that it won't be pretty.

Yeah, at least proof-of-stake voting can give us a neutral and objective way of deciding if overwhelming approval actually exists in the community rather than just guessing.
kjj
legendary
Activity: 1302
Merit: 1026
They could also reject votes.  Or do far worse things.  Bitcoin is based on the assumption that at least half of the network is honest.  Most of it falls apart if that assumption is violated.

That's what's so clever about this proposal: they can't.

Miners can already make the max blocksize smaller by just mining smaller blocks, so the default vote is "the status quo". What they can't do is raise the limit without consent, because they have to prove that the community wants an increased limit by including their votes.

edit: The assumption in Bitcoin isn't that half the hashing power is honest, it's that no more than half of the hashing power is controlled by one entity, and that at least half the hashing power is economically rational. That's a much weaker assumption than the hashing power being "honest"

Meh.  I was using the loose definition of honest.

I get it that the no-vote position is to leave things alone, I'm just saying that a majority of miners can overrule the stakeholders in your system.  If the stakeholders want an increase, but the miners don't, the miners can just ignore their votes.  And if a majority of miners wants to ignore their votes, they can also ignore blocks from other miners that include them.

Any system that relies on the block chain will necessarily be vulnerable to the 51% problem.

And in this case, the incentives align in funny ways.  It might be economically rational* to restrict blocks to a limit lower than the stakeholders would prefer, because one presumes that the stakeholders want a bigger block to reduce space competition.

I prefer that we make small increases when there exists overwhelming approval.  I'm willing to accept that a majority of miners can give the appearance of overwhelming support because doing so is like deciding to go first in a nuclear war.  No one is sure how it'll end, but we are all pretty sure that it won't be pretty.

* At least for low order effects.  Money is a matter of trust.  Meddling in the chain reduces that trust, to some extent.  How much trust is lost if you meddle a little?  How much if you meddle a lot?  How big is the effect on the economic value of the bitcoin system overall (and thus, on each coin) per unit of trust lost?  What the hell is a unit of trust?  These relationships seem to be nonlinear, and mostly involve things that we can't measure.  If we need people to estimate them accurately to be safe, we should perhaps have ourselves a little sit down thinking time.
legendary
Activity: 1120
Merit: 1152
Question: If votes are intended to be weighted by inverse age, how are the non-votes intended to be weighted, since you can't really say how long ago a non-vote was cast?

That one is really easy actually: a defacto vote is dated from when a given unspent output was created.
sr. member
Activity: 461
Merit: 251
Question: If votes are intended to be weighted by inverse age, how are the non-votes intended to be weighted, since you can't really say how long ago a non-vote was cast?
legendary
Activity: 1120
Merit: 1152
They could also reject votes.  Or do far worse things.  Bitcoin is based on the assumption that at least half of the network is honest.  Most of it falls apart if that assumption is violated.

That's what's so clever about this proposal: they can't.

Miners can already make the max blocksize smaller by just mining smaller blocks, so the default vote is "the status quo". What they can't do is raise the limit without consent, because they have to prove that the community wants an increased limit by including their votes.

edit: The assumption in Bitcoin isn't that half the hashing power is honest, it's that no more than half of the hashing power is controlled by one entity, and that at least half the hashing power is economically rational. That's a much weaker assumption than the hashing power being "honest"
kjj
legendary
Activity: 1302
Merit: 1026
.95 and 4 are magic numbers.  .95 needs to be very high, to allow an easy veto of the next increase.  If miners want bigger blocks for some reason, they can certainly pad their blocks.  This isn't a big deal, since roughly 6% of the network could execute the veto.

That's not true; you need 51% of the network to execute the veto because a majority can simply ignore blocks that don't use the full blocksize and thus trigger that rule. If this becomes a "us against the holdout miners destroying Bitcoin for the other miners" that's exactly what will happen.

They could also reject votes.  Or do far worse things.  Bitcoin is based on the assumption that at least half of the network is honest.  Most of it falls apart if that assumption is violated.
legendary
Activity: 1120
Merit: 1152
.95 and 4 are magic numbers.  .95 needs to be very high, to allow an easy veto of the next increase.  If miners want bigger blocks for some reason, they can certainly pad their blocks.  This isn't a big deal, since roughly 6% of the network could execute the veto.

That's not true; you need 51% of the network to execute the veto because a majority can simply ignore blocks that don't use the full blocksize and thus trigger that rule. If this becomes a "us against the holdout miners destroying Bitcoin for the other miners" that's exactly what will happen.
Pages:
Jump to: