Pages:
Author

Topic: How to force a rule change by bloating the UTXO set - page 2. (Read 3124 times)

legendary
Activity: 1400
Merit: 1013
Non-mining Bitcoin businesses will need full nodes, and the costs of running one will be justified by the security gained by not needing to rely on a 3rd party for payment processing.
full member
Activity: 192
Merit: 100
Someone explain to me why its ok that mining is now (almost) effectively a professional level only activity, and will become increasingly more so with ASICs, but that its not ok that larger block sizes could make mining effectively a professional level only activity if the block sizes ever grew faster than commodity bandwidth, which is currently at least 2 orders of magnitude greater than what the system requires.
1. Mining (hashing) is at a hobbyist level and will always remain that way. Buy hardware with USD, run hardware. Vote with your hashpower for the best pool.
2. You are mixing mining pools and full nodes. Those are very different! Full nodes don't get any reward for mining, but they carry the expenses.

Some people say "screw full nodes, who needs them". Well it's a matter of opinion, but, IMHO, a network with a low number of full nodes would not be decentralized in the full sense. It would be a closed system with a huge barrier of entry.
sr. member
Activity: 286
Merit: 251
Someone explain to me why its ok that mining is now (almost) effectively a professional level only activity, and will become increasingly more so with ASICs, but that its not ok that larger block sizes could make mining effectively a professional level only activity if the block sizes ever grew faster than commodity bandwidth, which is currently at least 2 orders of magnitude greater than what the system requires.

The bottom line is that if there is money in it, it will become more centralized (to some degree) simply because it will begin to create competition, which will increase startup costs for new participants. That's how the fucking world works. Everyone ignores that it used to be the case that bitcoin could be effectively mined on CPUs, and will very soon require speciality single purpose hardware, but makes a huge deal that you might also need reasonable bandwidth and storage resources to be a miner.

Understand this very clearly, difficulty already makes mining become increasingly more centralized. It has the entire time that Bitcoin has existed.

If Bitcoin becomes so popular that mining becomes very expensive, just from the bandwidth and storage reasons arising from a slowly growing max block size limit where sufficient transaction fees are being paid (as they are in the case of SD), we'll all be very happy with the value of our coins, and how freaking useful they are.

I agree.
sr. member
Activity: 310
Merit: 250
Someone explain to me why its ok that mining is now (almost) effectively a professional level only activity, and will become increasingly more so with ASICs, but that its not ok that larger block sizes could make mining effectively a professional level only activity if the block sizes ever grew faster than commodity bandwidth, which is currently at least 2 orders of magnitude greater than what the system requires.

The bottom line is that if there is money in it, it will become more centralized (to some degree) simply because it will begin to create competition, which will increase startup costs for new participants. That's how the fucking world works. Everyone ignores that it used to be the case that bitcoin could be effectively mined on CPUs, and will very soon require speciality single purpose hardware, but makes a huge deal that you might also need reasonable bandwidth and storage resources to be a miner.

Understand this very clearly, difficulty already makes mining become increasingly more centralized. It has the entire time that Bitcoin has existed.

If Bitcoin becomes so popular that mining becomes very expensive, just from the bandwidth and storage reasons arising from a slowly growing max block size limit where sufficient transaction fees are being paid (as they are in the case of SD), we'll all be very happy with the value of our coins, and how freaking useful they are.
legendary
Activity: 1792
Merit: 1111
I think we should think out of the box.

The block size limit could be determined by more factors, not just the absolute size.

I have a rough idea:

Let's denote:

#I: number of inputs in a transaction
S0, S1,.....,Sn: Amount of Satoshis of the output 0, 1 ..... n.
ST: Total Satoshis would ever exist, i.e. 2,100,000,000,000,000
Size: size of the transaction in kB.

The adjusted transaction size is defined as:

Size * (log(ST - S0) + log(ST - S1) + ..... + log(ST - Sn)) / #I

The maximum block size will be calculated by the adjusted transaction size, not the absolute size.

Many problems are solved with a system like this:

1. Block size is still scare, although not stick to an absolute number
2. Miners will have an incentive to exclude dust outputs, because that will increase the adjusted block size
3. Miners will love transactions with many inputs, because that will decrease the adjusted block size. So the UTXO set could be reduced.
4. People trying to send dust outputs and/or inflate UTXO set have to pay more miner fee
5. The block size, which costs bandwidth and disk space, is still accounted.

EDIT: There is some defect in this part: (log(ST - S0) + log(ST - S1) + ..... + log(ST - Sn)), because it doesn't really discriminate dust outputs. I will think about it again
legendary
Activity: 2940
Merit: 1090
Just collecting a few portable datacentres from time to time isn't so unfeasible though, is it, for the average hobbyist? I mean, like, how many Satoshis can those things actually cost, really?

-MarkM-
legendary
Activity: 1120
Merit: 1152
And that, kids, is why every hobbyist wants at least one Google-style portable datacentre-in-a-container in his garage, just in case...

Plot for a cyberpunk story: The UTXO set "hording" happened, followed by a tech revolution that suddenly made storage space/network bandwidth a lot cheaper and P2P sharing of it feasible again. Given the enormous incentives remote hackers, physical thieves, and insiders launch an all-out attempt to steal that UTXO set data. Whomever succeeds has done something not dissimilar to stealing the gold out of the national reserve, albeit in this case the "gold" is a constantly perishing commodity and the attempt would also require a co-ordinated launch of enough hashing power to make the new UTXO set actually useful. (maybe done by remotely hacking water heaters around the world?)
legendary
Activity: 2940
Merit: 1090
And that, kids, is why every hobbyist wants at least one Google-style portable datacentre-in-a-container in his garage, just in case...

-MarkM-
legendary
Activity: 1120
Merit: 1152
I wonder if even BBQcoin would consider such a fun experiment to be their kind of fun..

Consider the politics too! Whose shill / sockpuppet are you!?!?! How much are the Bit-enders paying you to incite this attack upon the Lite-enders' currency? Don't you know that incitement to riot is a crime?

Well this is why I'm perfect for the job: it's already clear to many (if not all) that I am hell-bent on destroying Bitcoin and likely any other crypto-coin. Tongue

But wait! Maybe we can hoist the bit-enders by their own petard! Suppose LiTeCoin actually did volunteer itself as the "victim" chain for this little "experiment" and ended up scaling up to massively Googillianesque scales, becoming so valuable and so huge that not only does it lure the Fortune 100 into adopting it but also only the most technologically pre-prepared of the Fortune 100 could even begin to consider hosting its gigapetabytes of UTXOs let alone its petapetabytes of actual blockchain? Wouldn't it have "won"? Wouldn't that show the bit-enders a thing or two about who is really the most super, most-dooper, most uber uber-chain of them all?!?!

Maybe the only real question here is, are the bit-enders scaredy-cats, that they would hand over such an opportunity to prove a chain's uberness to some other chain instead of jumping at the opportunity to prove their own uberness by making their own test-net chain more valuable than any altchain could ever hope or dream of becoming?

Ha. I remember a discussion I had with someone on IRC awhile back where we were joking that we should port SatoshiDice to one of the alt-coins to kill it in a flood of spam: "Of course, we couldn't just run bots, we'd have to let anyone make real bets. We could even fund the effort from the profit generated! In fact, it might kickstart the alt-coin's adoption, raise the price, and before long we'll be implementing off-chain transactions to ensure we don't kill our golden goose!"

They'd need to move to bitcoin v0.8 first and then hard fork otherwise it's pointless as it would hit the BDB limit.

Of course. An easy task probably given that there aren't many differences between Litecoin and Bitcoin technologically.

It isn't the miners who decide.   It is the economic majority who will buy the miner's coins that decides.  

Re-read my post. I'm well aware the economic majority argument and wrote it specifically to demonstrate how it doesn't always apply.


While we're at it consider how database protection laws (IE "copywrite-like" for databases) could apply to blockchains. Keeping a UTXO set will be very expensive, so it's easy to see how full nodes with that data will want to find some way to be paid to maintain it. Directly paying for access is one option for instance, but the other is for miners to offer free access. For the latter scenario even if the miners don't ask for exclusivity contracts in return, IE you agree to only send your transactions to this mining pool, there are good reasons for a miner to try to ensure that no-one can do a whole-sale copy of their UTXO database, as allowing that, even if paid for, allows for competitors to start up. Violating those agreements can be seen as violating database protection laws in jurisdictions where they exist, in addition to violating the contracts themselves. (note the very similar concepts outlined in the "red balloons" paper)

The transactions included with each block form another source of UTXO data, albeit a source that requires one to stay online constantly. Now you have yet another perverse incentive: if a competitor experiences some downtime for whatever reason you have no reason to want to give them the UTXO data that allows them to start mining again. Of course, they have the option of trying to pay for it, but ultimately the mining pool as a business has to ask the question "Do you accept $x from a competitor, when if you don't accept the payment they may be forced out of business?"

Finally when you create a block you do have an incentive to distribute the transactions associated with that block so as to allow your competitors to build upon that block. But your incentive is for only >50% of the hashing power to have that data, because it's that >50% who will inevitably create a longer chain. Of course, including measurement errors and variance you'll want to target a higher percentage, but the point is miners have incentives to ask other miners for proof they control a certain amount of hashing power, and just not bother relying solved blocks to players who only control a tiny amount of hashing power. Again when the number of miners is sufficiently small this can all be done as legal agreements backed by contract law and database protection laws.

tl;dr: A rational miner has a incentive to deliberately withhold transaction and UTXO data when the cost of maintaining that data is high and the overall number of miners low, and that incentive perversely leads to even further centralization.
legendary
Activity: 1205
Merit: 1010
Is there a profitable service on Litecoin?

I dunno - I don't follow alt-currencies as much as I should. Litecoin has a SatoshiDice-like thing doesn't it? I've noticed the market cap of Litecoins is reasonably high.

I'd be happy to write the patch required and submit it as a pull request. Lets follow Mike Hearn's suggestion of just removing the limit and we can make it enable itself at some defined block # in the future. We can do that by just making the limit double every month, to give miners some time to adjust, and have the limit start growing in 4 months to give everyone time to upgrade.

It'd be a great experiment and could really set Litecoin apart. They've always wanted to be the "silver" to Bitcoin's "gold": fast cheap and convenient transactions. Hey, I'd love to be proven wrong about this blocksize thing.

They'd need to move to bitcoin v0.8 first and then hard fork otherwise it's pointless as it would hit the BDB limit.
legendary
Activity: 2506
Merit: 1010
you can stick with your old client, and it will reject the "Bitcoin 2.0" blocks, but you can't spend your money without miners, and you can't be a miner without the UTXO set.

Sure you can.  It just takes one or more miners to mine before transactions are included in a block and eventually confirm.  Just like after the hard fork occurred and v0.8 was ten blocks ahead, anyone could still mine on the v0.7 side even though it had just a fraction of the hashing capacity and the v0.8 side had the longest chain.

It isn't the miners who decide.   It is the economic majority who will buy the miner's coins that decides.  

If this happened today and the very next block were to be a fork as you describe as 80% of the hashing power ganged up and switched over to a client that followed your protocol change, the decision facing users, merchants and exchanges would be .... do we follow, or do we boycott?

Probably what would happen is that payment processing for much of the bitcoin economy would be immediately halted (i.e., there would be no recognition of confirmations on either side of the fork) until some discussions occur.  But if those who buy coins (the economic majority) were to boycott the protocol change, it would only be a matter of time (minutes to hours) before individual miners would leave the pools that pulled that stunt and the chain for the original protocol would gain and extend beyond the height for the chain with the changed protocol.

[Update: And the difference between your scenario and this weeks' hard-fork was that users, merchants and exchagne were already using software that unknowingly accepted the rule change (no more 10K BDB locks, and reverting to v0.7 was compatible with both v0.7 and v0.8 clients.  i.e., it didn't require everyone to have to change their software to something that understood a change to the protocol rules.]
legendary
Activity: 2940
Merit: 1090
I wonder if even BBQcoin would consider such a fun experiment to be their kind of fun..

Consider the politics too! Whose shill / sockpuppet are you!?!?! How much are the Bit-enders paying you to incite this attack upon the Lite-enders' currency? Don't you know that incitement to riot is a crime?

In fairness though, GRouPcoin was created specifically to try out some ideas for feasibility prior to deploying them "for real", and has in some ways somewhat flimsy arguments for whatever it currently claims to be for or about, so maybe we do have a coin sitting by that could be argued into volunteering to be the victim - uh, subject - in such a study, and, by the way, LiTeCoin already has four times as much space to fill each ten minutes as BiTCoin does thus is already clearly superior to BiTCoin's puny throughput thus would be four times harder to actually impact even though it is patently obvious why the bit-enders would single it out to target, being with good reason jealous of the obviously superior coin, whereas GRouPcoin just has plain old just-like-BiTCoin blocks at the just-like-BiTCoin target rate of one every ten minutes.

GRouPcoin already stands as an ongoing test of some groups' claims that lowering block rewards over time is stupid, so why the heck not also show its forward-thinking and heroic willingness to take what some might regard as risk, for the greater good of the entire blockchain based data / blockchain based applications movement?

Oh I know what detractors are going to say... Who is this worthless GRouPcoin upstart and how can its worthless coins possibly propose to stand in for truly valuable coins such as LiTeCoins, or even jealous scheming underhanded incitement-artists' coins such as BiTCoins?

But that is a straw-man argument! Why? Oh come on, surely it is obvious... If any coin actually has any value at all then merely by exercising its freedom to buy stuff it itself can by simple exercise of its own right of free exchange impart value to any coin it chooses, by the simple act of buying some! Thus no matter how previously-worthless it might regard some other coin, it itself is free to impart to any other coin any amount of value it deems it necessary for the victim of this proposed attack to have to have in order for such victim to qualify as an attackee!

Heck we could spawn a whole new coin, a Crunchy Berry Coin of the Day if you will, specifically for the purpose of the proposed "experiment" and merely by exercise of the vaunted "value" of the bit-ender's own coin of choice impart to it as much value as any family could ever need! Heck, give each coin 640k-RAM of value if you want! Or a pair of socks per coin! It is all within your own power as bit-enders to impart value to anything you yourselves choose to value! So go ahead, value some other coin! Lets get this show on the road! Any other volunteers step right up, the bit-enders are handing out value, get yours now!

Oh wait, they could do that to their own darn testnet! OMG what if they made their own testnet's coins more valuable than our very own dear to our hearts' Crunchy Berry Coin of the Day?!?!?! Woe woe and thrice woe!

It could also be argued that as second-most-valuable of the blockchain-based coins, LiTeCoin's miners might well be those most likely to have the infrastructure and motivation to weather such an "experiment", so might not even be as vulnerable to such an "attack" as other altcoins.

But wait! Maybe we can hoist the bit-enders by their own petard! Suppose LiTeCoin actually did volunteer itself as the "victim" chain for this little "experiment" and ended up scaling up to massively Googillianesque scales, becoming so valuable and so huge that not only does it lure the Fortune 100 into adopting it but also only the most technologically pre-prepared of the Fortune 100 could even begin to consider hosting its gigapetabytes of UTXOs let alone its petapetabytes of actual blockchain? Wouldn't it have "won"? Wouldn't that show the bit-enders a thing or two about who is really the most super, most-dooper, most uber uber-chain of them all?!?!

Maybe the only real question here is, are the bit-enders scaredy-cats, that they would hand over such an opportunity to prove a chain's uberness to some other chain instead of jumping at the opportunity to prove their own uberness by making their own test-net chain more valuable than any altchain could ever hope or dream of becoming?



-MarkM-
legendary
Activity: 1120
Merit: 1152
Is there a profitable service on Litecoin?

I dunno - I don't follow alt-currencies as much as I should. Litecoin has a SatoshiDice-like thing doesn't it? I've noticed the market cap of Litecoins is reasonably high.

I'd be happy to write the patch required and submit it as a pull request. Lets follow Mike Hearn's suggestion of just removing the limit and we can make it enable itself at some defined block # in the future. We can do that by just making the limit double every month, to give miners some time to adjust, and have the limit start growing in 4 months to give everyone time to upgrade.

It'd be a great experiment and could really set Litecoin apart. They've always wanted to be the "silver" to Bitcoin's "gold": fast cheap and convenient transactions. Hey, I'd love to be proven wrong about this blocksize thing.
hero member
Activity: 836
Merit: 1030
bits of proof
Is there a profitable service on Litecoin?
legendary
Activity: 1120
Merit: 1152
What if blocks remain 1MB?: Profitable services like SD out price simple user from block space, who in turn go to Google offering Bitcoin 2.0 bigger block with cheaper transactions to Amazon. SD loses customer and also moves to Bitcoin 2.0 at Google. Same outcome.

I suggest Litecoin remove the blocksize limit immediately so we can test your theory.
hero member
Activity: 836
Merit: 1030
bits of proof
What if blocks remain 1MB?: Profitable services like SD out price simple user from block space, who in turn go to Google offering Bitcoin 2.0 bigger block with cheaper transactions to Amazon. SD loses customer and also moves to Bitcoin 2.0 at Google. Same outcome.
legendary
Activity: 1120
Merit: 1152
So right now with 1MB blocks the most the unspent transactions (UTXO) set can grow is by 52GB per year. That's pretty small; you can fit a few years of maximum growth on a single cheap SSD with no problems. Because transactions aren't free due to competition it's pretty expensive to bloat the UTXO set and it's growing slowly.

But what happens if the limit is raised or lifted? We know that transactions will never become totally free - bandiwidth costs money - but at the same time if you are Google it's going to cost you orders of magnitude less money to process a transaction than a guy running a small mining pool on a virtual server. Google can also broadcast every block they find worldwide at very, very little cost and very fast. That means by including a transaction the marginal increase of their orphan rate is much less than for the small mining pool.

They can use that advantage to sell cheap block space en-mass. It's good if you want to do a bunch of on-chain bets, AKA SatoshiDice. It's also good if you want to timestamp files. In fact, they could even offer a backup service that just dumps data onto the blockchain itself - lets call it "Google Chain Storage", the only backup service in the world where you know your data is safe every time you perform a transaction.

But what happens to all this data? To mine you must have a full copy of all unspent transactions. So you the small pool operator have less revenue coming in, yet the same costs that Google does. Of course eventually you'll run out of money and go out of business - SSD's don't grow on trees after all. Obviously there is even a perverse incentive to deliberately bloat the UTXO set if you are in the game for the long run.

This cycle will repeat over and over again until there are only a small number of mining pools left. More importantly, to start a new mining pool is going to be very expensive. You may even find that even if you have the money to start a new pool actually getting the UTXO data is hard - the pools don't have to give you that data when you ask them for it.

With just a half dozen pools left, and no easy way to start a new one, it'd be very easy for those pool operators to get together and make a decision - not unlike how they got together when the recent fork happened and made the collective decision to switch to version 0.7 in just a few minutes.

Unfortunately, this time the decision can be to change the inflation schedule, and there is absolutely nothing you can do about it. Sure you can stick with your old client, and it will reject the "Bitcoin 2.0" blocks, but you can't spend your money without miners, and you can't be a miner without the UTXO set.
Pages:
Jump to: