Vandroiy (OP)
Legendary
Offline
Activity: 1036
Merit: 1002
|
|
April 22, 2011, 03:14:18 PM Last edit: April 23, 2011, 02:37:14 PM by Vandroiy |
|
Consider for now, we're in the future, and miners only gain from transaction fees. I assume now that including a transaction is cheap, and generating a block is, in comparison, expensive. (Is that true?)
Any single, small miner intends to maximize profit. His decision on what transactions to include doesn't create a big change in the height of fees. Thus, the miner will include all transactions that pay any fee, even very low fees, to have maximum profit.
This results in the price for transactions dropping. In turn, those miners who already were hardly profitable have their earnings further reduced and quit. This reduces hashrate, difficulty drops, and the circle repeats. By this reasoning, difficulty is likely to drop close to zero.
Is this a problem? Will Bitcoin break down if we have very few miners?
Edit: This has been answered by epii a few posts below. The maximum block size limits the amount of transactions, so if Bitcoin has a decent market size, there will be competition for acquiring a transaction slot. This competition will drive transaction prices.
Edit 2: The thread is beginning to show something I find frightening. There exists no generally accepted model or even set of rules for Bitcoin in the future. A portion of people claim that removing the transaction limit will do no harm, the others use it as the last argument why Bitcoin will not enter the failure scenario described.
Please join in on the discussion and let us find a consensus on this. User opinion is important, if people suddenly agree on a rule change it might happen too fast to be stopped.
|
|
|
|
theymos
Administrator
Legendary
Offline
Activity: 5376
Merit: 13368
|
|
April 22, 2011, 03:34:01 PM |
|
Big miners will probably wait to start generating until some amount of BTC is waiting to be claimed in queued transactions. This will encourage people to pay higher fees, since doing so will have a real effect on how quickly the next block is generated. Maybe people will even send high-fee dummy transactions after their transaction is included so it gets 6 confirmations in only a few minutes.
If the fee is pushed to 0.00000001, transaction spammers will start sending transactions at that negligible level, which will push fees higher on normal transactions.
|
1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
|
|
|
Vandroiy (OP)
Legendary
Offline
Activity: 1036
Merit: 1002
|
|
April 22, 2011, 03:37:29 PM |
|
What is the advantage of spamming transactions? Can this money sustain Bitcoin?
Edit: assuming big miners in relation to system size is a problem. Bitcoin did not require single large organizations in the past. I am not convinced this can be ascertained on a macroscopic system.
|
|
|
|
Gavin Andresen
Legendary
Offline
Activity: 1652
Merit: 2301
Chief Scientist
|
|
April 22, 2011, 03:50:49 PM |
|
Consider for now, we're in the future, and miners only gain from transaction fees. I assume now that including a transaction is cheap, and generating a block is, in comparison, expensive. (Is that true?)
Today, it costs the entire network something like $0.001 to process each transaction. The limiting factor is checking to see if the transaction is valid or not (the CPU cost of ECDSA signature verification). When the transaction volume gets high enough miners will have to start prioritizing which transactions they check, and they will use transaction fees as a quick initial check to see if they should invest CPU cycles to include transactions in a block. Yes, miners want to include as many transactions with fees as possible in their blocks, but it won't be economical for any miner or mining pool operator to include an infinite number of them. And speaking of mining pools... they are a lot more efficient than individual miners because they allow transactions to be verified once instead of requiring that all of the miners in the pool do that work. Very small miners will be driven to join a mining pool, and the big mining pools will be competing to have the lowest fees and highest payouts (and so will be optimizing their ECDSA verification code and will figure out which transactions are profitable and which aren't). So: I don't think bitcoin will have very few miners. I think it will have lots of miners connected to a smaller number of mining pools, and the whole system will optimize itself to be wonderfully efficient.
|
How often do you get the chance to work on a potentially world-changing project?
|
|
|
Vandroiy (OP)
Legendary
Offline
Activity: 1036
Merit: 1002
|
|
April 22, 2011, 04:03:01 PM |
|
Wait, these points are not exactly reassuring.
The transaction network cost is not something the miner pays. If there's a pool checking the transactions for him, this gets even worse: the miner has to pay close to nothing to include a transaction; the price is paid by the network! If he is running his own node, including the transaction will cost the miner a tiny bit of space and traffic -- and everybody else in the network will have to pay the same, but will not receive the fee!
The ECDSA signature cost, does it scale with the difficulty? If it doesn't, Moore's law will make things worse over time!
So now, in addition to miners profiting from dumping prices, they can flood global node bandwidth and HDD space in the process? Not reassuring at all!
|
|
|
|
epii
|
|
April 22, 2011, 04:12:05 PM |
|
Hmm, I fail to see why the fees would drop with time. The upper limit on the rate of transaction processing should drive the fees up. From this post (of mine) http://bitcointalk.org/index.php?topic=5758.msg84788#msg84788Just some rough math to answer my own question, a 1MB block would contain roughly 3000 typical transactions. Thus there's an upper limit on the transaction processing rate for the entire economy - I reckon that means that once the transaction rate rises over an average of 18k/hr., there will be a minimum fee for your transaction to even have a chance of being processed, and market forces will drive the minimum fee up with time. The demand for performing transactions will presumably continue to increase, but the supply is constant, ~18k/hr.
|
|
|
|
Vandroiy (OP)
Legendary
Offline
Activity: 1036
Merit: 1002
|
|
April 22, 2011, 04:26:33 PM |
|
The upper limit on the rate of transaction processing That! I just didn't know that. There is a fixed limit for the amount of transactions? I was totally not expecting that. I guess I have to read up some more now. Edit: interesting thread. The limit on the amount of transactions will mean that micro-transactions will happen in Paypal-like services. (Mybitcoin?) It's a little disturbing to have a hard limit though, making Bitcoin change behavior depending on the size of the network, and ultimately limiting its size. But my fears of a crash or dDoS destruction are no longer valid. Thanks for the answer. I was getting nervous there, and totally didn't know about this.
|
|
|
|
xf2_org
Member
Offline
Activity: 98
Merit: 13
|
|
April 22, 2011, 05:21:47 PM |
|
The current 1MB block size limit caps bitcoin at 463 transactions/minute, or ~7 transactions per second.
Though it seems generally agreed that this limit will be raised, when it needs to be raised.
|
|
|
|
Mike Hearn
Legendary
Offline
Activity: 1526
Merit: 1134
|
|
April 22, 2011, 07:26:12 PM |
|
The death spiral failure mode seems plausible.
Putting a floor under fees by artificially limiting the scalability of the network leads to the obvious question of how to set those limits? Today they are chosen rather arbitrarily just as a hack around the lack of client mode. If they are the answer to how the entire system supports itself later there'd need to be some real logic behind it.
Indeed how do you even value network difficulty? Difficulty is a commons and those can fall tragically. If miners don't hash until there are sufficient fees, you can get a staring match. Do consumers blink first and start paying high fees to get a block mined quickly? Or do they just wait a few weeks until the network adapts to that and block time becomes reasonable again? The miners bluff only works for a short time.
When inflation drops significantly, we'll end up with this nasty dynamic whereby the only way to get a more secure network is to lower the artificial limits and so force people to pay more, but that makes BitCoin less attractive as a competitor to existing systems. You can choose either adoption or security but not both. That seems like a recipe for failure.
I think we'll learn more about this aspect of BitCoin at the start of next year, when inflation will halve. At that point we should see a fairly dramatic slow down followed by a drop in difficulty as miners who aren't profitable at the new price point stop mining. That slowdown would be only temporary, but it might well last long enough for people to start including fees right away instead of waiting for the delays to blow over. It feels like a timing issue. If people get tired of waiting for blocks and include big fees, fewer miners would drop out and difficulty would not fall so much. The remaining people who were hoping to get free transactions back would give up and start including fees too.
|
|
|
|
Mike Hearn
Legendary
Offline
Activity: 1526
Merit: 1134
|
|
April 23, 2011, 08:32:26 AM |
|
I think there is a model that lets us solve this problem without any artificial scalability limits.
I've been thinking of fees as paying for inclusion into a block. But that's not what they are really about. Fees are what you pay to secure your transaction against reversal and thus the amount you pay should really depend on the price of megahashes/sec vs the computational power you believe your untrusted counterparty may have access to. If you trust your counterparty, you don't need any confirmations to make a trade, and so you shouldn't need to pay any fees.
Say you're selling your car. You don't know the buyer and they're about to get in and drive off with their new purchase. You don't want them to drive away, press a few buttons on their smartphone and have some rented black market mining rig knock out a few blocks to get the money back. So after receiving the coins (zero confirms) you immediately spend them again but this time with a fee high enough to make you feel safe.
Let's say MikeMine Corp sells 10 gigahashes of work per Ⓑ1 of fees. My mining rigs are idle until they see a transaction which has at least that much in the fees of all pending dependent transactions. I start work on the current block but only include transactions that meet my (publically announced) minimum fee. Other transactions are left out. If I successfully solve the block containing the transaction, I keep mining on the next blocks until 100 gigahashes of work has been done and a few more blocks have been found. It doesn't matter if I get unlucky and don't actually find any of the next blocks myself, I already claimed the fee in the first block which was for work done not blocks found.
The death spiral argument assumes that I would include all transactions no matter how low their fee/priority, because it costs me nothing to do so and why would I not take the free money? Yet real life is full of companies that could do this but don't, because they understand it would undermine their own business. Consider a bus driver. He waits at point A until he has a few passengers who paid his fee and then starts driving to point B. If at the moment he's about to leave you run up and say you'll pay half price or walk, it doesn't matter ... he won't let you on board even though the marginal cost of including you is nearly nothing.
Note that fees are calculated recursively over all dependencies. If I send Ⓑ50 to my brother, we don't need any votes done on that transaction. We trust each other so the tx can be free. Now my brother wants to buy something online with those coins. He sends another free transaction spending those coins, and the seller then immediately sends them on to another of his own addresses, but this time with a fee attached. Now there are 3 transactions pending in the memory pool which depend on each other, and summing up the fees results in work being done on all three. Even though the first two were free, they'll still be included in order to claim the fees on the last.
|
|
|
|
FreeMoney
Legendary
Offline
Activity: 1246
Merit: 1016
Strength in numbers
|
|
April 23, 2011, 08:41:07 AM |
|
Thanks Mike. It's awesome to learn whole new angles after reading and thinking about Bitcoin for 9 months. It's truly an amazing system.
|
Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
|
|
|
Vandroiy (OP)
Legendary
Offline
Activity: 1036
Merit: 1002
|
|
April 23, 2011, 02:29:12 PM Last edit: April 24, 2011, 05:03:35 PM by Vandroiy |
|
Why does this keep getting worse and worse and even worse?
Now, you suggest a large miner that splits the block chain for profit! To prevent people from placing their transactions into the chain before the large miner has gathered enough funds to start his lengthening burst, the miner is interested in splitting the block chain at a point in the past. This is the only way his clients get the fast transaction but cheap transactions published around the same time, included by a cheap miner, don't. If the miner does not use this method, he has no sale argument and will fail!
We have only one version of your model remaining: a single miner killing all other block chains, constructing a natural monopoly. (Man, are you serious? What a decentralized currency!) The dynamics of that? (Edited here, error removed) The one miner gaining full control of the price and the ability to split any concurring miners out of the chain. That is the very definition of a vulnerable state! Now, we have eliminated all cases except going back to microscopic parties. Return to my first post to see why statistics ruin prices.
Your proposal is the apocalypse! If this is the future, the earlier I'm off this boat, the better!
Let me say this loud and clear:
DO NOT remove the transaction limit before someone has applied the relevant statistics, mathematics and game theory to describe transaction fee equilibrium at all times in question! People stupidly doing this has now risen into my top failure scenarios of Bitcoin.
And please think your scenarios through, this thread is becoming a nightmare. Who is responsible for modeling system dynamics when making Bitcoin design decisions? I'd feel a lot better if those people had a word here. If people agree on removing the transaction limit, we might enter a path of no return, so I'd be very happy if someone laid out current plans and consensus, if one exists.
|
|
|
|
Meni Rosenfeld
Donator
Legendary
Offline
Activity: 2058
Merit: 1054
|
|
April 23, 2011, 06:07:03 PM |
|
Let me say this loud and clear:
DO NOT remove the transaction limit before someone has applied the relevant statistics, mathematics and game theory to describe transaction fee equilibrium at all times in question! People stupidly doing this has now risen into my top failure scenarios of Bitcoin.
And please think your scenarios through, this thread is becoming a nightmare. Who is responsible for modeling system dynamics when making Bitcoin design decisions? I'd feel a lot better if those people had a word here. If people agree on removing the transaction limit, we might enter a path of no return, so I'd be very happy if someone laid out current plans and consensus, if one exists.
I agree with you, I'm not convinced by mike's model and I believe it will ultimately boil down to a community decision about the block size limit with an obvious trade-off: Tight limit = high transaction fees, high network security Relaxed limit = low transaction fees, low network security I don't think you should worry too much. I think there are quite a few people here with the training required to model the dynamics, and big changes like this should only be made with community acceptance. You can stir dialogue about this, as you have in this post, to make sure we are ready ahead of time. There's still plenty of time, though. As mike says, the drop to 25BTC/block will be an important observational study.
|
|
|
|
Vandroiy (OP)
Legendary
Offline
Activity: 1036
Merit: 1002
|
|
April 23, 2011, 06:32:20 PM |
|
Glad to see someone agree, I was beginning to feel a little crazy here. I don't think 25 BTC/block is a problem, we'll just see some miners disappear, but the reward will still sustain things. But the issue should be solved in advance to demonstrate that Bitcoin is meant to work on the long run. We may be faced with bribing of developers to achieve higher or lower fees if we don't carve a sustainable solution in stone early enough. Arbitrary limits in a changing protocol are a magnet for corruption. And imagine the chaos and loss of trust in Bitcoin when a fraction of the network has the rules changed against their will. The protocol rules should be finished and fixed, hopefully never to be touched again afterward. That said, I have run into an entirely new question: do we need a lot of hashing power at all times? Maybe we can solve the attack problem with very few miners and a smart protocol! I've opened a new thread to ask this question, since this thread is confusing enough already: http://bitcointalk.org/index.php?topic=6363.0Maybe we've been afraid for no reason -- maybe we're best off with very few miners! If security against attacks can be increased without increasing processing power, we're good, and we'll have super-low fees! Everybody would win.
|
|
|
|
bitlotto
|
|
April 23, 2011, 08:43:41 PM |
|
I think it would work even if miners only made money on transaction fees. The thing to remember is that ANYONE can mine. There may be a point when statistically blocks are made by only a few large pools but they wouldn't be able to monopolize it. IF the fees got high it would motivate more to try making blocks themselves. Other mining pools may not be as powerful but they could have 'alternative' prices. Some may even be free. If you want speed you add the fees so it gets accepted by miners who make a lot of blocks. If you want cheap, you wait for a pool with lower fees to create a block with it. IF the fees got high I'd pretty much bet that someone would create a pool for the sole purpose of allowing cheap transactions. People who think cheap transactions are good for Bitcoin will join and donate their computers power. Price everywhere drops. In other words I expect a fair price to evolve and be self correcting.
|
*Next Draw Feb 1* BitLotto: monthly raffle (0.25 BTC per ticket) Completely transparent and impossible to manipulate who wins. TOR TOR2WEB Donations to: 1JQdiQsjhV2uJ4Y8HFtdqteJsZhv835a8J are appreciated.
|
|
|
Mike Hearn
Legendary
Offline
Activity: 1526
Merit: 1134
|
|
April 23, 2011, 09:04:09 PM |
|
We all love a bit of drama, but I think you're over-doing it. Now, you suggest a large miner that splits the block chain for profit!
No, I did not. You're the one suggesting that, and putting words in my mouth to boot. There is no point at which miners would want to split the block chain. Unless they can dominate the network attempting to split the chain is quite likely to fail meaning they've burned a lot of electricity and claimed no fees at all. See the table of probabilities in Satoshis paper for reference. Miners don't wait around for fees to accumulate before starting. A transaction that comes with a fee is worth doing some work on immediately, even if it's not very much. In a network with decent transaction rates you would be hashing constantly but adding and removing transactions from your current block depending on how much work was done on them. If you do some work on a tx, remove it because the fee was not high enough to carry on with and then another miner claims it, no big deal - that's the nature of the business. With equal costs that miner had just as much chance as you did to find the block unless they are operating under the "take everything they can get" model, which is inherently self destructive (unless they're not mining for profit). I believe you're over thinking this. Claiming BitCoin can't work without artificial scalability limits is like claiming governments should mandate minimum bus sizes to support ticket prices (that is until the public transport network has been analyzed by game theorists). Oddly enough that never happened, and yet I've never heard of a countries public transit suffering death by game theory before.
|
|
|
|
Vandroiy (OP)
Legendary
Offline
Activity: 1036
Merit: 1002
|
|
April 23, 2011, 10:22:04 PM Last edit: April 23, 2011, 10:36:08 PM by Vandroiy |
|
@[mike] I took the closest-to-stable configuration I understood from your post, and that included the splits. The second version is discussed afterward. As I understand from your reply, what you actually meant only works if the vast majority of miners abide to your rules. Otherwise, they will include all transactions with a small fee, and whenever someone pays larger fees, he pays to confirm all these transactions as much as his own, and the reduce in waiting time is only his own fee on a global scale, which is close to no benefit! Also, imagine half of miners follow your rules. (You wish, I don't see that happening.) Then calculate the average time to 6 confirmations for a low-fee payer and a high-fee payer. It's useless! The benefit is totally not worth the fee unless you're in a real hurry.
You make a claim that requires both macroscopic behavior (a cartel to enforce fees dominating block generation) and microscopic (no cartel exists that could split the block chain) at once. That is incoherent, I don't see Bitcoin balancing on some fine line between small and big miners, especially if small miners who don't follow the rules can make more profitable blocks. Your suggested configuration is not stable. End of story.
BTW, I don't see how one can "over-think" things. It's possible to make errors, true, but making some extra checks doesn't hurt, as I think this thread demonstrates neatly. It may be that the problem is not a problem, for the nice reason that Bitcoin code is open to minor adaptions if the majority agrees -- or, if it doesn't, the current block size limit solves the problem for us.
But that doesn't mean it's good to wipe a potential problem off the board, especially before it's analysis is finished. There is still no consensus on the final network configuration. We might end up with a sub-optimal solution, especially one that is too open for attacks or wastes processing power. There is currently no force that ties the wanted result (a level of security for the network) to the means that achieve it (transaction fees within a large network). If that's not worth discussing, what on the whole technology is worth discussing?
@bitlotto: Please read the first post. If you did, please read it again.
You make an assumption (trade fees rising) that appears to not happen in the context at hand. First solve that problem, otherwise whatever follows "IF the fees got high" has no relevance. Again, remember I assume a Bitcoin system with a large maximum block size, so this does not determine fees as it would with the current limit and a larger market.
|
|
|
|
Mike Hearn
Legendary
Offline
Activity: 1526
Merit: 1134
|
|
April 24, 2011, 11:04:21 AM |
|
Well, I can't predict what all miners will do. But I can look at real world businesses that are much like mining - large fixed costs with low marginal costs.
I've been using buses as an example but there are lots of others. To name just two, a football stadium doesn't sell tickets by auction but rather sets a fixed price and if not enough people buy at that price, the game plays to a half empty stadium. A bakery bakes cakes in the morning and sells it throughout the day, but if at the end of the day it wasn't all sold then they (usually) just throw them away. If they reduced prices towards the end of the day, they could get lots more customers but everyone would just buy their cakes after dark at unsustainably low prices.
In any market there are participants who could supply all demand at low or zero prices and suck up every bit of revenue possible. But in practice that rarely happens because it's irrational and not sustainable. In cases where a business does that and uses some unrelated business to keep themselves afloat it's called dumping and they usually do it with an eye to raising prices again once the competition is gone. Governments (sometimes) investigate it.
The argument is that there will be miners who effectively "dump" their hash power, by working on transactions that wouldn't be profitable in a block by themselves, because they are included along with higher-fee transactions that are. As you note that would be irrational because it creates a free rider problem. Why should I be the one to subsidize everyone elses transactions? Yet when I look at the world around me I see markets with hundreds or thousands of participants where all of them are rational and none of them allow free riders.
I think mining will evolve in that direction .... a reasonable but not huge number of essentially rational economic actors, who understand that allowing free riders will ultimately undermine the source of their own wealth. It's possible there will be miners who behave irrationally because they are actually interested in a different chain (dns or voting or whatever) and mine on BitCoin just because they can. In such a case regulation might be the answer, or moving to a system of non-anonymous miners so the irrational participant can be kicked out.
These issues are worth thinking about, but it's easy to end up with analysis paralysis. Kind of like if we were back in the stone age debating the newly invented 'capitalism' concept, and somebody said "What stops somebody dumping until they've cornered the market?" and somebody else said "Hmm I guess you're right, capitalism can't possibly work". Whereas the actual answer is that capitalism does work, mostly, because people figured out solutions to these problems along the way.
|
|
|
|
Vandroiy (OP)
Legendary
Offline
Activity: 1036
Merit: 1002
|
|
April 24, 2011, 11:47:20 AM |
|
I'd compare with different examples: fishing in the ocean, polluting the environment, wasting tax money, supporting a bad natural monopoly, quickly claiming and using up natural resources. Clearly, in those examples individual behavior is damaging to the community, and they are closer to the Bitcoin example than the examples just provided, because they don't include a highly local market. Bitcoin mining is not highly local, unlike any shop or stadium.
A football stadium has fans who want to see exactly that game at exactly that place, it is known to its customers. The feedback goes to the stadium in a large fraction. A small miner, though, is practically unseen by his customers -- meaning he's not as afraid of the feedback. If you don't like the assumption of the miner being small, we're back at the case I discussed in the first reply to your model.
@last paragraph: In capitalism, limited funds stop someone from cornering a market of goods that can't be cheaply stored with lasting value. As seen with subsidies, e.g. US cotton against third world markets, the cornering happens the moment the limited funds loose weight. As you said yourself, in local markets with a very large player, price dumping is indeed a problem and has to be handled by authorities. (On goods with lasting value but no high storage cost, dumping a sales price is idiotic, because it turns you into supply to competitors. Example: dumping BTC in USD terms might get you another trader buying your BTC to later sell them in your place.)
We're still without a configuration that keeps a constant high mining rate while assuming a high tx limit and no further changes to the protocol. I like to emphasize that it has not been proven that this outcome is a problem. Also, maybe the block size limit shouldn't be set too high for the obvious reason of a gigantic block chain being costly to handle.
All in all, I propose trying to find a way to secure the block chain against fraud without wasting large amounts of processing power. A little to throw out cheap spam might be good, but the current mega-energy-burning sounds increasingly bad, and possibly unnecessary, to me.
|
|
|
|
Meni Rosenfeld
Donator
Legendary
Offline
Activity: 2058
Merit: 1054
|
|
April 24, 2011, 12:51:47 PM Last edit: March 09, 2012, 11:50:23 AM by Meni Rosenfeld |
|
The argument is that there will be miners who effectively "dump" their hash power, by working on transactions that wouldn't be profitable in a block by themselves, because they are included along with higher-fee transactions that are. As you note that would be irrational because it creates a free rider problem. ... In such a case regulation might be the answer, or moving to a system of non-anonymous miners so the irrational participant can be kicked out.
You're misusing "irrational". Accepting low-fee transactions is very rational for the one who accepts them, because the profits are all his own, while the free rider problem is everyone's. This is assuming the agent is selfish. The problem is that if everyone acts selfishly everyone will suffer, which is the studied-to-death "prisoner's dilemma" or "tragedy of the commons". You may ask how to stop players from acting selfishly. If there are few players they can collude to fix prices, and they might even do it without any spoken agreement out of fear of a snowball effect. But this doesn't work when there are thousands of players and the barrier of entry is low. Someone who doesn't currently mine can rent some hardware, swipe all the low fees and exit. With these dynamics, the only transactions that will be excluded are those whose fees are less than the cost of inclusion. If a block size limit is placed, the cost of a transaction is the opportunity cost of not including a higher-fee transaction. Some sort of regulation is another way to ensure non-selfish play, but I doubt that's the direction we want.
|
|
|
|
|