Title: Necessary protocol improvement; dissent on future mining configuration Post by: Vandroiy on April 26, 2011, 06:06:07 PM We currently have no consensus on future system parameters controlling transaction fees, and thus also the amount of miners. In another thread, I concluded that in transaction fees are determined mainly by market size and the maximum block size. If you disagree, please discuss in the linked thread. In this thread, we assume the conclusion correct.
Here's the thread: http://bitcointalk.org/index.php?topic=6284.0 (http://bitcointalk.org/index.php?topic=6284.0) In this thread, I want to ask a simple question that apparently has no generally accepted answer. What is the desired future system configuration? How many miners do we want, how many do we need? How do we face the times ahead? First, please let me share a personal feeling of mine, which drives my urge to write this thread. Please bear with this paragraph, I think this is really important. In my opinion, we should turn Bitcoin into a rock-solid set of rules that will not be broken or altered unless the technical circumstances change. Altering rules later on might run the system into a crisis, especially when things like miner income are concerned. No doubt lobbies would form, trying to push parameters one way or another. In my imagination, this has a huge impact on the psychological image of Bitcoin. That's not rock-solid, that's the mud we already have in other democracy-controlled currencies! Now, I know big things don't break easily, but I really don't want things to come down to this. Let us solve problems we find early and completely. Now, to the situation. We have a set of jobs that must be done at all times.
Currently, miners solve all three points, and get paid with newly generated coins. As concluded from the earlier discussion, if no changes to the protocol are made, we have a problem at least with the third point, securing against attacks, once coin generation no longer pays miners. We have to find a compromise between a high transaction limit and a high vulnerability -- or a low transaction limit and high fees. A situation with high fees sounds very bad to me. A limit on transactions, expensive fees, all so that hardware can waste energy? It's better than a breakdown, but is it truly our best option? Plus the discussion on the limit, potentially segmenting the network in a cyber war. This makes me shudder. Then again, we have another "tragedy of the commons" with storage. We cannot have arbitrarily high block sizes, for we can afford to generate, but not to store blocks of arbitrary size. I really hope the Bitcoin designers have made good models on memory requirement if the transaction count increases by a factor of 10,000 or the likes. And, last but not least, the trouble of an attacker with a lot of processing power remains. But are the latter two really unsolvable? I doubt it. Let us try finding a way to survive without a large amount of miners. There should be methods for the network to agree on a block chain that do not involve absurd amounts of processing power. It could try punishing block chain branches that look like attacks for timing reasons. This could be done by raising difficulty on such chains. (Thanks to the one who suggested this on IRC, I forgot who it was though. :P ) This is much better than relying on having more processing power than any attacker! If this can be achieved, we'd only have the storage problem remaining. That somewhat also sounds doable, since we don't need to lift limits completely, and ancient parts of the block chain might not be all too important. We already have checkpoints, there might be ways for the network to agree on who has which coins without everyone storing that enormous history. Think about it. We have to solve two problems, and we get a cheap and long-term sustainable state if we do. The Shangri-La of Bitcoin, so to say: we get gains on transaction amount, transaction cost and system security. Can this be done? If so, I call to anybody into Bitcoin development: what are you waiting for? In either case, we should analyze the problem; the current configuration is likely to cause trouble. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: MoonShadow on April 26, 2011, 06:17:31 PM I think your conclusion is incorrect, but am still posting here to be able to follow this thread.
Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: pusle on April 26, 2011, 06:39:55 PM Ok I'm a computer geek, but even regular people here seem to have their comp on 24/7 now. Most have 2 or more cores and terrabyte drives. What if the standard client nodes also generated hashes/blocks? Let's say 50% of 1 core and 10Gbyte space was default "donation" to the network, adjustable by the user. "donate and help keep your money safe!" :) By the time bitcoins converge the computing power and storage capacity should have increased maybe 10x or more? And all systems have GPU's or hybrid CPU architectures for even more hashing speed. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Mike Hearn on April 26, 2011, 06:47:21 PM What you propose is:
a) Not BitCoin. "One CPU one vote" is pretty core to the whole idea. A system with substantially different voting rules would be an entirely different currency and network. b) Not robust against future improvements in computational power. Nobody can decide up front what the "right" difficulty is because 100 years from now children will be assembling SHA256 capable ASICs out of lego bricks. That's why a system which provides as much security as its users needs is required and that's what the model I've proposed does (more fees == more work). I know you don't believe in it, but if you want an alternative you'll need to actually design it and convince people it's correct. The voting rules are the most complex and subtle part of BitCoin so that will take some work. Storage is not really a concern. You can already prune buried transactions from a stored copy of the block chain, though it isn't implemented today. This is covered in Satoshis paper. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Vandroiy on April 26, 2011, 09:47:37 PM pulse: we can't proove a donation network is stronger than, say, a botnet. Relying on processing power will always have us in an arms race.
[mike]: Ah, I did not mean a total difficulty. Just a relative factor, or a time limit for attackers, as already achieved with the checkpoints, just shorter? I'm still brainstorming here for an optimal solution. I don't know whether it can be done without constructing a full Web of Trust, but basically, most nodes can tell when a blatant attack happens from the timing when the blocks are published. An attacker always has to wait for confirmations of the first transaction, then publish the second. Anything that behaves even remotely like a Web of Trust will be able to collectively determine which branch was there first, and try to enforce that this one be valid. Not using this information at all is a huge waste. By the way, I don't care about the computation power voting system once coin generation is done with. In fact, I don't like it, it's a massive waste of energy on a known outcome: the block chain is supposed to be valid and follow the official timing. Now, are you people really saying there's no better option to enforce a set of rules than building the world's largest supercomputer? I can't prove it false, but still. That's one hell of an expensive decision. There has to be a better way! Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: FooDSt4mP on April 26, 2011, 10:42:55 PM pulse: we can't proove a donation network is stronger than, say, a botnet. Relying on processing power will always have us in an arms race. [mike]: Ah, I did not mean a total difficulty. Just a relative factor, or a time limit for attackers, as already achieved with the checkpoints, just shorter? I'm still brainstorming here for an optimal solution. I don't know whether it can be done without constructing a full Web of Trust, but basically, most nodes can tell when a blatant attack happens from the timing when the blocks are published. An attacker always has to wait for confirmations of the first transaction, then publish the second. Anything that behaves even remotely like a Web of Trust will be able to collectively determine which branch was there first, and try to enforce that this one be valid. Not using this information at all is a huge waste. By the way, I don't care about the computation power voting system once coin generation is done with. In fact, I don't like it, it's a massive waste of energy on a known outcome: the block chain is supposed to be valid and follow the official timing. Now, are you people really saying there's no better option to enforce a set of rules than building the world's largest supercomputer? I can't prove it false, but still. That's one hell of an expensive decision. There has to be a better way! What is the better way? How do you eliminate double spending? Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Vandroiy on April 26, 2011, 11:17:59 PM What is the better way? How do you eliminate double spending? The block chain is already the solution to that, as long as it follows the rules and no branches are added somewhere in the past. And that's the thing. Just like with checkpoints, clients can frequently agree à la "okay, nobody coming up with a different block? then it's settled, this one is the real one for all eternity." Implementing this agreement is all we need! It looks more like a Web of Trust problem to me, yet we hit it with brute force. Say the current system goes down to a fairly low difficulty, but a Web of Trust sits on top of it, setup to come to an agreement on the question "when was this block published", to then strongly prefer branches of the block chain created earlier. Not my idea, but I kind of like it. Go, attack this puny network with so little processing power. What'cha got? Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: MoonShadow on April 27, 2011, 12:08:01 AM What is the better way? How do you eliminate double spending? The block chain is already the solution to that, as long as it follows the rules and no branches are added somewhere in the past. And that's the thing. Just like with checkpoints, clients can frequently agree à la "okay, nobody coming up with a different block? then it's settled, this one is the real one for all eternity." That's pretty much how the proof-of-work system works now. Feel free to fork the Bitcoin code to attempt what you are advocating. And after a little while, I'll come help break your web of trust system. Oh, yes. I can. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: pusle on April 27, 2011, 05:54:04 AM pulse: we can't proove a donation network is stronger than, say, a botnet. Relying on processing power will always have us in an arms race. [mike]: Ah, I did not mean a total difficulty. Just a relative factor, or a time limit for attackers, as already achieved with the checkpoints, just shorter? I'm still brainstorming here for an optimal solution. I don't know whether it can be done without constructing a full Web of Trust, but basically, most nodes can tell when a blatant attack happens from the timing when the blocks are published. An attacker always has to wait for confirmations of the first transaction, then publish the second. Anything that behaves even remotely like a Web of Trust will be able to collectively determine which branch was there first, and try to enforce that this one be valid. Not using this information at all is a huge waste. By the way, I don't care about the computation power voting system once coin generation is done with. In fact, I don't like it, it's a massive waste of energy on a known outcome: the block chain is supposed to be valid and follow the official timing. Now, are you people really saying there's no better option to enforce a set of rules than building the world's largest supercomputer? I can't prove it false, but still. That's one hell of an expensive decision. There has to be a better way! I can't prove it but if all nodes help out + hero nodes and bank super nodes etc I don't think botnets or anyone can compete when bitcoin becomes an established currency. I do agree this is the same as building the worlds biggest supercomputer and wasting lots of resources. Maybe there is a way to utilize the collective majority in a different way than proof of work. The problem is proving this new methods safety vs the very plausible "you can't cheat on the crypto exam" concept we have now Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: asdf on April 27, 2011, 07:47:40 AM There will be no block size limit in the future. It's only there to stop spammers at the moment and will be lifted when the network it bigger.
Did you read Gavins post (#4) in the thread you linked? I believe he resolved the issue. Transactions aren't free for a miner to include. If people pay no fees, they probably won't get included at all. If miners charge too much, they leave a gap in the market for cheaper fees, new miners will enter the market and accept those slightly-less-profitable-transactions bringing fees back down. This will crowd out less efficient miners. "whole system will optimize itself to be wonderfully efficient." - Gavin Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: db on April 27, 2011, 08:56:44 AM It's too late to do that kind of changes. We'll just have to go along and hope it will be possible to raise enough donations. How much enough is no one knows.
If Bitcoin grows to the size of Paypal there will be about a million dollars worth moved with each block. If users can be convinced to pay just a 0.1% fee on average (and they have to pay some fee, however small) that's more than ten times the current block reward. The current block reward has already made Bitcoin the world's biggest computing project. Hopefully most people won't care if they pay 0.1% or 0.0001% when they buy a pair of shoes. Particularly if 0.1% labels you a Good Guy and 0.0001% takes an active effort and makes you a Freeriding Bastard. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Vandroiy on April 27, 2011, 12:15:04 PM db:
this will give some arbitrary network size and power. Want to make a bet of the kind "the biggest supercomputer in the world in 10 years will be Bitcoin and not run on cloud clusters that might suddenly have orders changed" as your statement? That is very risky. Many computation clouds are coming up, the net is growing huge. asdf: aren't inclusion costs independent of difficulty? Are you saying, Moore's Law will stop AND people won't build dedicated hardware AND pooled mining won't dump the problem into oblivion AND processing power will not be spread to bigger parts of the population? You call the issue of a disturbingly low difficulty equilibrium "resolved" when the global cost of a transaction approximates a single verification? Sorry, are you serious, or have I misunderstood something about the verification cost scaling? Also, the discussion at hand would fit better in the other thread. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: db on April 27, 2011, 02:10:30 PM this will give some arbitrary network size and power. Not quite. The power will be determined by the default fee settings in peoples payment applications. (Provided those fees are small enough it's not worth the effort to change the setting.) The default fees will be set by the application developers to a level they feel reasonable; likely something that makes Bitcoin big enough to withstand attacks but not big enough to be very wasteful. I'm not ready to bet on it yet, but think it seems promising. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Vandroiy on April 27, 2011, 04:31:51 PM If you want a default fee, better hard-code it into the protocol, that's at least reliable.
But this thread still has the open question: isn't there a much better solution, that can work on the very small power required to check transactions? Feel free to fork the Bitcoin code to attempt what you are advocating. And after a little while, I'll come help break your web of trust system. Could you please explain the problem instead of... writing that kind of message? Also, please estimate damage -- the current solution also subdues to attacks, the question is how likely and expensive the attack is. If fees are not held up by volunteers, it will be of the order of confirming all transactions. That sounds small to me, one might call it "broken by design", so if the WoT system breaks under less problematic conditions, the trade-off might be worth it.Oh, yes. I can. Sure, db is right, voluntary micro-donations can make quite something on a big network. But those could be used for a different good purpose, so we better make sure the enormous waste of processing power is necessary. Also, there might still exist an even bigger supercomputer, and Bitcoin gets vulnerable again. We have no viable model of how much fees people pay voluntarily. I see how we need large-scale mining now, for fair initial BTC distribution. But in the future? There exists no other solution than trying to be the world's #1? A very bold claim, and a destructive one if it is false. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: MoonShadow on April 27, 2011, 06:18:06 PM If you want a default fee, better hard-code it into the protocol, that's at least reliable. There already is, but it's sort of a sliding scale. Free transactions can only be so large individually, and take up so much of the blockspace in total. Beyond that there is a hardcoded fee schedule, the more transactions in a given block, the higher the transaction fee included must be in order to qualify to be added to that block. This fee schedule is enforced by the network because if a block's size is over any of those 'soft' limits, there must be at least one transaction within it that pays at least the minimum for that tier, or it's rejected as an invalid block. So even without the hard blocksize limit, there are mechanisms in play to strongly encourage senders to add a transaction fee if they desire their transaction to be processed quickly. It is this mechanism that has delayed free transactions in the past, not the hard blocksize limit. We have never come anywhere near the blocksize limit.Quote But this thread still has the open question: isn't there a much better solution, that can work on the very small power required to check transactions? There could be, but I doubt that either of us can come up with one. If someone does come up with one that is significantly better than the proof-of-work system of Bitcoin, a better cryptocurrency will come into being.Quote Could you please explain the problem instead of... writing that kind of message? Also, please estimate damage -- the current solution also subdues to attacks, the question is how likely and expensive the attack is. If fees are not held up by volunteers, it will be of the order of confirming all transactions. That sounds small to me, one might call it "broken by design", so if the WoT system breaks under less problematic conditions, the trade-off might be worth it. The whole point of the proof-of-work system is that any direct attack on the system is expensive relative to the expected gain, so that crime doesn't pay. Perhaps this still leaves Bitcoin open to an attack intended to outright destroy it by some malicious entity with vast resources, but even though I can acknowledge that such an attack is possible; it's far from cetain that it would be successful. There are simply too many unknowns. In the same vein, China could have long ago destroyed the American monetary system by the simple act of dumping US currency reserves and US treasury bonds upon the market, for they have more of both than the whole of the US public does. This would probably cause massive inflation of the US FRN, if the US government does nothing, but this is not a certainty either; and would be expensive for the Chinese economy as well.Attacks upon a WoT system are more subtle, and potentially much less costly. One is simply the act of 'node identity spoofing', faking the identity of a trusted node. Another is the 'scorched earth' event, wherein a node develops honest trust, and then turns bad once the opprotunity is presented. You can make both of these attacks difficult technically, but you cannot make them impossible, nor particularly expensive since I do not need any great resources for either attack. Other attacks requiring coordination are possible as well. This does not include the basic network attacks upon the hosting servers themselves, the security of which is importan in a web of trust. Bitcoin's collective security is not dependent upon the level of security of any given node. Quote I see how we need large-scale mining now, for fair initial BTC distribution. But in the future? There exists no other solution than trying to be the world's #1? A very bold claim, and a destructive one if it is false. I suppose we can address that issue when it comes up. If Bitcoin is still the cryptocurrency of the Internet in 2130, feel free to bring it up again. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: asdf on April 28, 2011, 01:31:01 AM asdf: aren't inclusion costs independent of difficulty? Are you saying, Moore's Law will stop AND people won't build dedicated hardware AND pooled mining won't dump the problem into oblivion AND processing power will not be spread to bigger parts of the population? You call the issue of a disturbingly low difficulty equilibrium "resolved" when the global cost of a transaction approximates a single verification? Sorry, are you serious, or have I misunderstood something about the verification cost scaling? Also, the discussion at hand would fit better in the other thread. Hmmm... I see, inclusion costs are independent of difficulty and will converge to zero with time. I confess that I didn't really read all of the relevant threads. This is indeed a mathematical/game theory problem. There are too many free variables that need to be tied together. This is a deep problem. I'll put more thought into this before posting again. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: db on April 28, 2011, 09:42:09 AM If you want a default fee, better hard-code it into the protocol, that's at least reliable. But not very flexible. The required fee level will likely vary greatly over time in response to many unpredictable events. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: asdf on April 28, 2011, 09:43:55 AM It's too late to do that kind of changes. We'll just have to go along and hope it will be possible to raise enough donations. How much enough is no one knows. If Bitcoin grows to the size of Paypal there will be about a million dollars worth moved with each block. If users can be convinced to pay just a 0.1% fee on average (and they have to pay some fee, however small) that's more than ten times the current block reward. The current block reward has already made Bitcoin the world's biggest computing project. Hopefully most people won't care if they pay 0.1% or 0.0001% when they buy a pair of shoes. Particularly if 0.1% labels you a Good Guy and 0.0001% takes an active effort and makes you a Freeriding Bastard. It's true that if users voluntarily paid 1/100 of the typical fees paid in todays systems, we'd have no problem. If they didn't and we lost this gift of bitcoin, it would be truly a tragedy of the commons. I don't think it's too late to make changes. If the "change" is clearly awesome and infallible, then I don't see anyone currently mining objecting to the change. The problem with putting some protocol based restriction on fees is that there is no way to algorithmically determine the value of a bitcoin and the restriction must be a function of value. If yield from fees is too high, we'll have a ridiculous number of miners and it will cost too much. Too low, we have a weak network. But how much many miners is the right amount? This is the kind of equilibrium which can only be achieved by market forces. Any protocol change will need to introduce market forces which balance the number of miners. We need more debate on this. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: da2ce7 on April 28, 2011, 09:51:41 AM If I was a miner, I would be planing to make my own rules... The question is if the other miners will accept my blocks or not. It comes down to at some point the miners adjusting their rules for maximum profit, while not getting rejected by the rest of the network.
What we need is a proper game theory analysis of Bitcoin fees, the rules that miners can set, and the risk of getting your block rejected. If Bitcoin becomes the dominant monetary system, then very very low fees might still be very safe. We just don't know yet. Edit: I put 10 BTC down for a game theory analysis of the Bitcoin fee system as it stands v.s. a system where there is no 'fixed' block limit. Only what the other miners choose to accept. Must be peer reviewed. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Vandroiy on April 28, 2011, 06:15:16 PM The whole point of the proof-of-work system is that any direct attack on the system is expensive relative to the expected gain, so that crime doesn't pay. Your argument relies on this statement, but I have not seen it proven. I did not manage to construct a substantial link between fees and the cost to attack the network on the current code. The problem is that your argument needs further assumptions on how much Bitcoins are moved, and how many rich people exist who would find doing an attack worthwhile. A simple block size limit or partially enforced transaction fee is linked to the quotient "BTC value in attacker's hand / difficulty" in a very nontrivial way. Edit: I don't see your attacks against the Web of Trust problematic in a real-world situation. Let me take them on one-by-one. Attacks upon a WoT system are more subtle, and potentially much less costly. One is simply the act of 'node identity spoofing', faking the identity of a trusted node. Another is the 'scorched earth' event, wherein a node develops honest trust, and then turns bad once the opprotunity is presented. You can make both of these attacks difficult technically, but you cannot make them impossible, nor particularly expensive since I do not need any great resources for either attack. Other attacks requiring coordination are possible as well. This does not include the basic network attacks upon the hosting servers themselves, the security of which is importan in a web of trust.
I see no problem. Your attacks can apparently be thwarted neatly. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Vandroiy on April 28, 2011, 06:43:02 PM Edit: I put 10 BTC down for a game theory analysis of the Bitcoin fee system as it stands v.s. a system where there is no 'fixed' block limit. Only what the other miners choose to accept. Must be peer reviewed. Haha... you want something from people who know game theory, but by game theory rules, they shouldn't play your game. :D Say, my theory is correct on both accounts. I now need another person applying game theory to review my statement, but then I'm getting the money. So, being proper in game theory, he won't do it. 8) (Okay, maybe you'll find reasonable game theory experts, ahaha~) ;D My try on an answer: remember the thread I linked in the beginning of this thread? There's a lot of discussion about the topic there. It's a little chaotic at first, but I think the main dynamics are analyzed there. Sorry about it not being very formal, but this way more people can read it. Here's a summary of the conclusion I came to, and use as an assumption in the thread we're in now:
I don't really want to unfold this here, that's why I try to keep that discussion in the other thread. I know that's annoying to those who don't agree on that yet, but it's better if the discussion isn't stopped at that point until everyone is convinced. (Sorry @double post, not editing more in case people subscribed by mail. This frequent editing is a bad habit of mine.) Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: MoonShadow on April 28, 2011, 07:03:09 PM The whole point of the proof-of-work system is that any direct attack on the system is expensive relative to the expected gain, so that crime doesn't pay. Your argument relies on this statement, but I have not seen it proven. Quote Edit: I don't see your attacks against the Web of Trust problematic in a real-world situation. Let me take them on one-by-one. Attacks upon a WoT system are more subtle, and potentially much less costly. One is simply the act of 'node identity spoofing', faking the identity of a trusted node. Another is the 'scorched earth' event, wherein a node develops honest trust, and then turns bad once the opprotunity is presented. You can make both of these attacks difficult technically, but you cannot make them impossible, nor particularly expensive since I do not need any great resources for either attack. Other attacks requiring coordination are possible as well. This does not include the basic network attacks upon the hosting servers themselves, the security of which is importan in a web of trust.
Quote
Quote I see no problem. Your attacks can apparently be thwarted neatly. This is likely true in most cases, but not provably true. Satoshi's white paper proves that similar attacks are not possible with Bitcoin so long as the attacker has less hashing power than the honest network. And this is the status quo here. If you don't like it, prove it. You are long from that goal. As I understand it, you don't contest that proof; you just believe that the transaction rules don't promise that said hashing power can be maintained. And I disagree.[/list] Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Vandroiy on May 03, 2011, 10:07:50 PM I suggest building a Web of Trust. You assume participants in the web of trust hold no signature to mark their identity.
Wat? Seriously, what? Okay, since this is apparently necessary, I will add that every participant in a web of trust holds a private key defining his identity. I thought that was common sense. Please, for any statement of mine, try to assume that I'm not a complete idiot so I don't have to paste in the exact definition of everything I say. Now, assuming we have a "burden of proof" (what the heck, is someone on trial?). Isn't the equilibrium problem description as close as it gets? The cartel structure is the only thing not covered, as it has too many external factors and is bad enough in itself. We cannot just ignore game theory/Tragedy of the Commons because "hey it might work out 'cause all the chaos in the system will make things hard enough". That is just believing something will work. You say I just believe the network will go to a known equilibrium. Well, you just believe it'll take a nice value, even though you provide no model as to why it shouldn't end up anywhere else. Where's the link between size of the biggest attacker and transaction fees? Is there even a functioning proposed set of rules apart from the arbitrary block size limit? There is nothing in place but the limits, which are a fairly poor long-time solution. We're still at the proposal "just use high limits", which is known to fail when overpowered, versus an attempt that might be stable even if someone has more processing power. Attack outcome not altered between the two. I see no disadvantage, but a potential benefit. At scorched earth: two factors. One: scorched earth only ever works on nodes with more trust linking to to sabotaging participants than honest ones. Two: a single node providing the block that came first speedily makes the attacking fraction look idiotic. Yeah, they all had the block all the time, but none cared to send it? Imagine this with a chain of three. The client could mark them as "apparent attackers" without much risk. If they claim they also got it late, the node would ask who sent it with such delay, tracking the origin of the block. It will find the honest fractions in the Web of Trust, all knowing nothing about the supposedly old block. What could they do to sound trustworthy? Someone has to justify the delay, and there just is no reason to create a long delay. It's just a problem of "which order came first" on a 12 minute time scale in a long-running network. We have the timing, and the chance to remember nodes from the past. We could use this to our advantage, and do what can be done. But we could also just throw the information into the bin and keep hoping we're the strongest petaflop-gang of the world. I don't understand how there can be doubts which is the better option. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: MoonShadow on May 03, 2011, 11:37:37 PM I suggest building a Web of Trust. You assume participants in the web of trust hold no signature to mark their identity. I think you misunderstood my point. Even in Bitcoin, trust is gained by direct interactions, but with those same interactions come identities. A web of trust works well as a means to identify trustworthy counterparties.Wat? Seriously, what? Okay, since this is apparently necessary, I will add that every participant in a web of trust holds a private key defining his identity. Quote Now, assuming we have a "burden of proof" (what the heck, is someone on trial?). No, the Bitcoin system is. You have made an accusation that something is broken, I disagree. I am the status quo, so it is your job to prove me wrong or end the libel. Your opinion on how things might go wrong does not qualify.Quote Isn't the equilibrium problem description as close as it gets? You have failed to show how your equilibrium problem is actually an accurate discription, while others have already attempted to highlight errors in your viewpoint.Quote The cartel structure is the only thing not covered, as it has too many external factors and is bad enough in itself. The cartel problem has been debunked repeately on this forum.Quote We cannot just ignore game theory/Tragedy of the Commons because "hey it might work out 'cause all the chaos in the system will make things hard enough". That is just believing something will work. I won't ignore real problems, but nor should we just start freaking out because one guy thinks that he has found the great error in the system.Quote You say I just believe the network will go to a known equilibrium. Well, you just believe it'll take a nice value, even though you provide no model as to why it shouldn't end up anywhere else. Again, it's not my problem to show you anything. And I don't think that it will end up at a nice value, I think that it is a self balancing system that will continuously find it's happy point largely own it's own, and I don't think that it's going to be unmonitored regardless.Quote Where's the link between size of the biggest attacker and transaction fees? There isn't one. Your problem is that you cannot define why there needs to be one, much less what the minimum dificulty level should be.Quote Is there even a functioning proposed set of rules apart from the arbitrary block size limit? Actually, yes. And that has been pointed out already. And they are not proposed, they are presently functioning.Quote There is nothing in place but the limits, which are a fairly poor long-time solution. Maybe they are, maybe they aren't. Still adjustable.Quote We're still at the proposal "just use high limits", which is known to fail when overpowered, versus an attempt that might be stable even if someone has more processing power. Attack outcome not altered between the two. I see no disadvantage, but a potential benefit. And I see no advantage and much potential downside to your proposal.Quote At scorched earth: two factors. One: scorched earth only ever works on nodes with more trust linking to to sabotaging participants than honest ones. Two: a single node providing the block that came first speedily makes the attacking fraction look idiotic. Yeah, they all had the block all the time, but none cared to send it? Imagine this with a chain of three. The client could mark them as "apparent attackers" without much risk. If they claim they also got it late, the node would ask who sent it with such delay, tracking the origin of the block. It will find the honest fractions in the Web of Trust, all knowing nothing about the supposedly old block. What could they do to sound trustworthy? Someone has to justify the delay, and there just is no reason to create a long delay. Quote It's just a problem of "which order came first" on a 12 minute time scale in a long-running network. We have the timing, and the chance to remember nodes from the past. We could use this to our advantage, and do what can be done. But we could also just throw the information into the bin and keep hoping we're the strongest petaflop-gang of the world. I don't understand how there can be doubts which is the better option. We could actually add that to the protocal of the running network without much trouble, I think, but depending uon that for the security of the blockchain is far worse than depending upon the hashing strenght of the entire honest network. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: asdf on May 04, 2011, 03:11:27 AM @creighto: Please, let me clarify this debate.
Do you agree that transaction fess will approach the cost of verification? If so, how is it that you don't think this will destroy the network once block rewards are depreciated? If not, what mechanism will influence fees to some sort of equilibrium? I'm with Vandroiy on this. You claim there is no problem to solve. I'm curious to know why you think this? Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: MoonShadow on May 04, 2011, 03:48:42 AM @creighto: Please, let me clarify this debate. Do you agree that transaction fess will approach the cost of verification? I don't know what you mean by "cost of verification". Quote If so, how is it that you don't think this will destroy the network once block rewards are depreciated? If not, what mechanism will influence fees to some sort of equilibrium? I believe that the desires of users to have their transactions processed quickly will drive a market price for fee paying transactions. Free transactions are charity, and there is nothing that compells miners to include them at all. When the network is more heaviliy used, the competition for inclusion will drive the transaction fees, and the transaction fees will drive the difficulty. This is a barely visable effect at present because there is so little traffic on the network compared to it's capacity, but it's already present. Furthermore, not all transaction fees are voluntary. Oversized, scripted or other unusual transactions require a fee; for very good reasons. The -sendtomany transaction used by the mining pools, or something similar, is likely to be used by employers to pay their employees in one action, and a small fee is reasonable. Any idea how much employers have to pay for those transactions now? It's a lot higher than .01 bitcoin each week. I also believe, that at the current rate of adoption and growth of the Bitcoin economy, the transaction fees will compare favorablely to the block reward by the time the first block reward is cut.Quote I'm with Vandroiy on this. You claim there is no problem to solve. I'm curious to know why you think this? Because I understand how it all works, perhaps? I consider that a silly question, honestly. Transactions are not a Tragedy of the Commons situation. Sure, all the other users benefit from the security that your transaction fees pay for, but that is not why users pay for the transaction fees. If the system required the altruistic commitment of users, I'd agree that the system was broken, and then we wouldn't be having this conversation because I'd have never been here long enough. But it is not dependent upon the altruistic support of users, but in the rational self interests of users who, for reasons of their own, desire rapid confirmations of a legitimate transaction. Part of the core complaint, as I understand it, is in a future without a hard blocksize limit; under the assumptions that 1) this limit must be raised or lifted soon in order to facilitate scaling up the Bitcoin network (I agree with this one) and 2) that the raising/lifting of this limit will cause the transaction fees to crash even as the transaction traffic grows. Yet, we have already seen that transaction fees pop up even long before we approach this limit, even as the very low transaction rates we presently see. Part of this is likely because there is much more to the transaction fees than just a hard limit. In fact, the hard limit only exists at all in order to prevent the catastrophic spamming of the blockchain if an attack vector were to be found, and isn't part of the transaction fee schedule at all. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: asdf on May 04, 2011, 12:39:06 PM @creighto: Please, let me clarify this debate. Do you agree that transaction fess will approach the cost of verification? I don't know what you mean by "cost of verification". This is the cost to a miner for verifying a transaction. The cost is composed of electricity, and infrastructure, etc. It's a small number, but it's not zero. Now if a transaction fee, weighted by the probability that the miner solves the block that includes it, is less than the cost of verification, then the miner presumably will not accept the transaction. Why else would a miner reject a transaction? If miner decides they will set a fixed floor on the transactions they accept, they are leaving profitable transactions to their competitors, driving them self out of the market. So, Vandroiy's argument, to which I sympathise, is that miners will reduce their fee floor to relative to the cost of verification. The cost of verification will get much smaller with growth in computing power. Pooled mining reduces this further because only the pool operator has to verify the transaction. Quote If so, how is it that you don't think this will destroy the network once block rewards are depreciated? If not, what mechanism will influence fees to some sort of equilibrium? I believe that the desires of users to have their transactions processed quickly will drive a market price for fee paying transactions. Free transactions are charity, and there is nothing that compells miners to include them at all.Higher fee will only be processed more quickly if there exists some sort of tiered fee structure distributed amongst miners. If you believe that fees approach the cost of verification then this tiered structure won't exist. Users will just pay the minimum that the miners will accept, which will be not much more than the cost of verification. Quote I'm with Vandroiy on this. You claim there is no problem to solve. I'm curious to know why you think this? Yet, we have already seen that transaction fees pop up even long before we approach this limit, even as the very low transaction rates we presently see. Part of this is likely because there is much more to the transaction fees than just a hard limit.What it these fees we see now are just a statical anomaly? people are new to this thing and may pay fees for all kinds of irrational (economically speaking) reasons. I think I have a solution... I'm a bit stoned so this might not make sense. We can incentivise fees but imposing a protocol restriction on how miners accept fees. An idea for this is to mandate that only half of the transactions that a miner processes can be transactions created after the last block (new transactions). The rest must be transactions created before the last block (old transactions). This creates a market to be in the first half, for speed processing. Obviously miners will fill it's first half with the transactions that pay fees. Users will compete for this privilege. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: MoonShadow on May 04, 2011, 01:03:50 PM @creighto: Please, let me clarify this debate. Do you agree that transaction fess will approach the cost of verification? I don't know what you mean by "cost of verification". This is the cost to a miner for verifying a transaction. The cost is composed of electricity, and infrastructure, etc. It's a small number, but it's not zero. I can agree the profit margin on mining will tend toward zero, and if it drops below zero, miners will drop out and the difficulty will stagnate or drop until it's mildly profitable again. This is the self-balancing process that I was referring to. will influence fees to some sort of equilibrium? Quote Quote I believe that the desires of users to have their transactions processed quickly will drive a market price for fee paying transactions. Free transactions are charity, and there is nothing that compells miners to include them at all. Higher fee will only be processed more quickly if there exists some sort of tiered fee structure distributed amongst miners. That tiered fee structure does exist already. It's part of every client at present, and it's why there are 'soft limits' on free transactions. Quote If you believe that fees approach the cost of verification then this tiered structure won't exist. Users will just pay the minimum that the miners will accept, which will be not much more than the cost of verification. I don't know why you don't think that it won't exist. Users are likely to pay the minimum that miners will accept unless they have some personal reason to pay more for speed of confirmation. This will only be so if there is significant transaction traffic, and so far there isn't enough to force this issue; even though free transactions can already be delayed. Quote Quote I'm with Vandroiy on this. You claim there is no problem to solve. I'm curious to know why you think this? Yet, we have already seen that transaction fees pop up even long before we approach this limit, even as the very low transaction rates we presently see. Part of this is likely because there is much more to the transaction fees than just a hard limit.What it these fees we see now are just a statical anomaly? people are new to this thing and may pay fees for all kinds of irrational (economically speaking) reasons. It's irrational to assume that this is the case. Show me the math that implies this and I'm willing to listen. If you can't show the math, you don't have a case. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Vandroiy on May 07, 2011, 02:34:30 PM (...) let's wait and see how it plays out. Don't fix what ain't broken. Sorry, but I strongly disagree, strongly enough to make a whole post out of that statement. It is important to show that Bitcoin is not like the other currencies, that it is not patching behind the mess. If there is an attack and we start fixing after fraud has occurred, it will be known what Bitcoin was not: flawless. The same way it will look when somebody proves the system has been wasting millions of dollars on processing power it never needed. Anybody who paid for transactions will feel fooled when that happens. But Bitcoin could be flawless. Right now, it's still perfectly reasonable to use miners. Nothing went wrong so far, and everybody is astonished by that. That's where the magic lies; people look at things and if they see it flawless, they become advocates of it. People like to find good things and support them. The last thing we need is a fix coming in late, making unbroken belief waver. Bitcoin. A system ahead of time, superior to other currencies at all times in its history. It can be done from here, but nothing is done by blind belief from those making the system. It is essential that Bitcoin shows no signs of failure, not visibly and not theoretically, until it is well-established; better yet, none ever. Bitcoin is all about trust and doubt now. Trust is all we have, and all we need. I don't think we should ever risk it. "See how it plays out" is absolutely no option in my opinion. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Vandroiy on May 07, 2011, 04:49:36 PM Quote Where's the link between size of the biggest attacker and transaction fees? There isn't one. Your problem is that you cannot define why there needs to be one, much less what the minimum dificulty level should be.Good job on reading one of my arguments correctly, and the thread's topic: we lack a consensus on desired mining configuration. But you agreeing and adding difficulty as another free parameter makes your statement a blatant contradiction to another thing you said, namely The whole point of the proof-of-work system is that any direct attack on the system is expensive relative to the expected gain, so that crime doesn't pay. So the miner configuration is such that an attack does not pay, but there's no link between attacker size and both transaction fees and difficulty. That is a contradiction. At least one of those two quotes must be wrong. Please don't force me to formally prove this. @vladimir: I have been discussing why I do not believe in your "self healing and self regulating properties" for weeks. I am weary of arbitrary claims of "the" system configuration "being self organizing". Provide anything close to a model that has not been shown problematic, and I will regard it. Also, please do it in the appropriate thread. The quote I took may have been out of context of your post, but the part I ignored is out of context of this thread. Let me quote myself, the very fist thing said in this thread: Quote We currently have no consensus on future system parameters controlling transaction fees, and thus also the amount of miners. In another thread, I concluded that in transaction fees are determined mainly by market size and the maximum block size. If you disagree, please discuss in the linked thread. In this thread, we assume the conclusion correct. The discussion is crumbling because people keep shouting "no you are wrong" without staying with the argument. Make up your mind: either you are certain that there is a stable setup in place. If so, which one, limits on or off? Provide the model in the appropriate thread, link to it here, end the discussion as irrelevant in a single post. Or we take the option of "let's wait and see how it plays out". These are mutually exclusive. Either you know something, then there is no need to observe it -- or you need to observe it, but then you don't know. I usually walk away when I face a battle where a logical construct is attacked with sheer mass, be it amount of people or amount of words said. I'm reluctant to do so here, but please note that this discussion is past the point where a blurry claim persuades those who believe there is a problem. If the thread becomes too bloated, I'll re-create the topic again, if necessary on a different site, until it is either solved, shown not a problem or hitting enough non-argumentative resistance to justify giving up. The latter outcome is a very poor way of resolving disputes though. But please, at the very least, when talking about "current" Bitcoin protocol, specify whether you talk about a future version or want to live with the limits for all eternity. One cannot conjure up the Bitcoin protocol before it's finished. That goes for creighto as well; when talking in #bitcoin-dev, nobody can point me to any rules in place that comply to your claims. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: MoonShadow on May 08, 2011, 04:42:23 AM Quote Where's the link between size of the biggest attacker and transaction fees? There isn't one. Your problem is that you cannot define why there needs to be one, much less what the minimum dificulty level should be.Good job on reading one of my arguments correctly, and the thread's topic: we lack a consensus on desired mining configuration. But you agreeing and adding difficulty as another free parameter makes your statement a blatant contradiction to another thing you said, namely The whole point of the proof-of-work system is that any direct attack on the system is expensive relative to the expected gain, so that crime doesn't pay. So the miner configuration is such that an attack does not pay, but there's no link between attacker size and both transaction fees and difficulty. That is a contradiction. At least one of those two quotes must be wrong. Please don't force me to formally prove this. It's not a contradiction, at least one of your premises is wrong. Namely, that the size of an attacker can be known in advance. It cannot. But the proof-of-work system exists to make a brute force blockchain attack to be as expensive for the attacker as the network as a whole can afford. What the total network can afford is always changing with the size and overall bitcoin wealth of the Bitcoin economy & userbase. The beauty of the current system is that it associates a personal need of certain particular users to the collective need of the userbase. Namely the personal need of well-heeled users to rapidly confirm large and/or high risk transactions with the collective need of the userbase to maintain as high a level of blockchain security as is reasonablely possible. Your assumptions are that the current protocol cannot maintain the level of security. I assert that you have failed to show this in any fashion. Show me how you might guess the level of a future attacker, and I might be willing to entertain flights-of-fancy; but thus far this has all been about how you would have done things differently. Feel free to go do it. I'm sure others will try it. Hell, I might even try it. But based on what you have written thus far, you still don't really grok what Bitcoin is actually doing to protect itself. There is more to it than you have expressed, and the smaller rules have an interlocking interplay with the major part of the protocol that actually makes the task of attacking, DOSing or spoofing the network so much more difficult to achieve in practice than it is written into the white paper as a matter of theory. One such rule is the blockchain release benchmark. With each new release, the new client contains a list of particular blocks whose confirmed hash number is recorded in a hard coded list in the source. At present, that list is the same for each client because they are pretty much all the same client. In the future, the benchmarks would be different for each independently maintained client. The reason for this list is to protect the history of the blockchain from a successful brute force attack of the blockchain, because in order for an attacker to rewrite the history of the blockchain before the newest benchmarked block, the attacker would have to produce a forged block, that could pass the validity tests, that still had the same hash as the original benchmarked block. In order for an attacker to continue to succeed, he would have to keep doing this for every benchmarked block in the list; because it's not something that can be changed in the running nodes. This problem is compounded further if, in the future, alternative Bitcoin clients use an alternative list of benchmarked nodes; as the attacker would have to either do this magic with all the benchmarked blocks in all the alternative clients as well. The mathmatical difficulty of doing this is probably quantifiable by some of the math geeks on this forum, but my back of the envelope numbers tell me that the odds of being able to do this is so astronomically against the attacker and in favor of the network that, (even ignoring all of the other problems with it such as the near impossible task of just getting back that far with the current ability of the network) the attack would be so many orders of magnitude higher difficulty than the simple single block rewrite that the cost of building such a supercomputer would likely exceed the total wealth of the top 20 wealthiest nations on the planet, and perhaps the entire wealth of the planet itself. Which, of course, effectively makes such a thing a literal impossibility unless there is some alien race that arrives on Earth in the next 120 years bent on the task of breaking Bitcoin. And that is just one of the checks beyond the protocol itself that exists within the Bitcoin client. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Vandroiy on May 08, 2011, 05:25:38 PM @vladimir:
Sorry about that, but look at the size of the debate. I can hardly keep track of things as is, and it appears I can't keep the threads split either. I must admit that the split into argumentative and constructive part has failed. Think about it from my viewpoint -- I'm fairly convinced that the difficulty equilibrium needs a re-design, but how can I discuss what follows from that with those who believe me in the midst of the first discussion? @creighto: Now we're on the same page. What you describe is a hypothetical check of the exact kind I am asking for. But there is one very big problem: an attack can be very short. It might need no more than an hour of control to fool people into believing in the transactions that are to be reverted. The block sealing has to happen fast, within ten minutes or so. We can't wait for a new client version, also we don't want to put too much trust in a client author. So how can it be implemented? How can you be certain you have sealed the correct block, you have the correct hash? All attacks on a web of trust work against this, and more due to centralization. What we need is to formulate this idea to the end, so it can be implemented. That's just not an easy problem. On a side note, whether or not it is in the protocol is only a formal question. Since the clients would have to enforce it, any such rule-set becomes an effective part of the protocol. The web of trust is one proposed possibility that might remain secure when your ISP or router is compromised. If someone manages to add the security enhancements you describe in a different way, this thread is obsolete and I'm happy with the outcome. I just wonder how exactly to do it, and would love to see it implemented sooner rather than later. On the contradiction mentioned in my last post: I do not assume the size of an attacker be known in advance. I just assume there is some attacker of some size at some time. I will continue where I left off, showing that one statement must be false. Statements:
Let me assume the second statement true. This means the amount of the attacker's BTC that can put into transactions simultaneously is worth more than the processing power required to execute the attack times some risk factor. The processing power required to execute an attack is obviously linked to difficulty. But difficulty is effectively an expression for the amount of mining power present, and that is paid by the total amount of transaction fees: average fee times amount of transactions, put simply. I have now established a link between size of the biggest attacker and transaction fees, with one free parameter, namely the amount of transactions, or market size, if you wish to put it that way. Thus, if statement two is true, statement one is false. I conclude that one of the statements must be false. Interpreting this is a different thing. Yes, we need the link to keep things safe, so that's not bad in itself. But there is one free parameter, the market size, and absolutely nobody can tell me what to do with it. Now, if that's not a discomforting sign, what is? As stated before, I personally believe the first statement to be close to the truth, and the second to be false with the current client. PS: I take the minus reputation as a compliment. At least I pushed hard enough that people feel to use this in place of arguments, displaying how the feature is now used for democratic truth-seeking. Too bad truth is not democratic. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: MoonShadow on May 08, 2011, 10:12:15 PM @vladimir: PS: I take the minus reputation as a compliment. At least I pushed hard enough that people feel to use this in place of arguments, displaying how the feature is now used for democratic truth-seeking. Too bad truth is not democratic. I didn't do it. Is it still a compliment? Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Vandroiy on May 09, 2011, 12:19:18 PM PS: I take the minus reputation as a compliment. At least I pushed hard enough that people feel to use this in place of arguments, displaying how the feature is now used for democratic truth-seeking. Too bad truth is not democratic. I didn't do it. Is it still a compliment? Forget about it, that system went haywire much faster than I expected. There's already a majority voting inverse... lol ::) I wasn't posting anywhere but here when I got the two negatives, and my post was fairly aggressive, so I guessed it's related. But I didn't want to accuse anyone. Maybe someone who's not even talking in here voted negative on both sides to make participants in the discussion angry at one another. I feel like a loser now, having been successfully trolled, even if just for a sentence. :-\ It's good I don't have 250 posts yet. I can prove my innocence in reputation wars. ;D Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: stillfire on May 09, 2011, 03:58:20 PM Maybe someone who's not even talking in here voted negative on both sides to make participants in the discussion angry at one another. I feel like a loser now, having been successfully trolled, even if just for a sentence. :-\ This is a forum of strong opinions. I wouldn't be surprised to see everyone have a negative reputation on average! Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: da2ce7 on May 26, 2011, 03:29:05 PM @Vandroiy
There have been many people that have passionately said that 'Bitcoin was wrong’ back in early 2010, and they said that it would never get even close to where it is now. The free market is much more flexible than what you describe. Did you know that in a free market dominated by Bitcoin, that 'everyone' would be advantaged by its stability? So the risk to attack may be very very small. Therefore making Bitcoin more inefficient by artificially shifting more resources into mining may make Bitcoin even less secure as people will not use Bitcoin but something that is cheaper. The fact is that 'we don't know' what is going to happen... We just know that bitcoin so far has been very successful, and that throughout history a free market has been very successful at predicting and working around any 'attack issues.' Artificial restrictions are stupid and should be avoided. I disagree that there should be a fixed fee schedule and block size... I think that it would be more accurately described by competition between the miners. At some point, Bitcoin may be so cheap and fast, and require such a large amount of infrastructure to run that the people running the network would have a strong stake in keeping it secure. Vandroiy, you ignore 'idle resources;' good people may have huge computational resources just sitting there for use as a deterrent to any attacker... Those resources could be sponsored by each the big bitcoin banks. An attack will never happen, because it would be prohibitively expensive to undertake... not from the active network power, but from the potential. In any case, there is so much about the future that we don't know... and this is all speculation. We should focus on making Bitcoin as secure as possible NOW, not 50 years in the future. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Mike Hearn on May 26, 2011, 05:11:33 PM I think it's worth thrashing all this out, as these debates over the stability of a purely fee driven chain keep popping up in other places.
The current best proposal I've seen is to have people pay miners directly, by the gigahash, for work done on top of a transaction (ie the work paid may span multiple blocks and is thus not for inclusion). Insurance companies sit in the middle and calculate the risk of any given client being attacked, and charges them premiums for reversal insurance measured in time. If a client starts getting attacked by people trying to outrun their transactions, the insurance companies will pay miners more to bury the transactions under more gigahashes of work done. Fees would not be provided via the current input/output value deltas but rather are paid directly to miners. It means you can't observe a high-fee transaction be included, pay for the minimum amount of hashing needed to enter the next block and then benefit from the next run of 6 accelerated blocks, because you don't know how much work has been paid for. Even if the network suddenly speeds up due to a high-fee transaction, the work might complete 5 seconds after you submit your transaction for inclusion. In this world the minimum price for inclusion would vary and be essentially up to luck, you'd have to maintain accounts with a bunch of miners (how many is your choice) and keep draining your balance until a block is found. Overall your fees will be the average number of gigahashes taken to find a block multiplied by the current cost of a gigahash, set by market rates. That market rate prices in the benefit of the work done on top of your block. For a merchant if the average speed of the network is X gigahashes of work done in 24 hours, you need to dispatch your goods in 24 hours and X is enough work to avoid an attacker reversing the transaction after you dispatch, the only fees you need are whatever it takes to get into a block (ie you pay until you get in, then stop paying). If you need more security, like X gigahashes in 2 hours, you'd pay more and the network would temporarily speed up before reverting to the mean. I've been debating this with someone and put the above system to them. They claimed the best strategy for people is to never pay anything, regardless of what you think anyone else will do. I don't really know how to convince him otherwise, as "paying nothing to anyone" is clearly not a winning strategy if you want to be a part of the chain! I think it's worth keeping an open mind about the proof of work aspect of Bitcoin though. Satoshi wanted to design a system that didn't require any trust at all. Whilst we sometimes say Bitcoin doesn't have any middlemen, in reality it has a large number of middlemen who help people who don't trust each other trade. You don't have to trust the middlemen either, making it (theoretically) a very open and liquid market ... at the cost of burning a lot of electricity. It may be that the zero-trust configuration isn't actually the best or most useful in the end, if the benefits of a fluid market aren't outweighed by the PoW costs. The proposal of using a web of trust to order transactions rather than PoWs has the disadvantage that it raises huge barriers to entry (how does a new node become trusted in such a system, without opening it up to easy attack?), but the advantage that the energy costs are very low. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: FreeMoney on May 27, 2011, 09:19:16 AM I think it's worth keeping an open mind about the proof of work aspect of Bitcoin though. Satoshi wanted to design a system that didn't require any trust at all. Whilst we sometimes say Bitcoin doesn't have any middlemen, in reality it has a large number of middlemen who help people who don't trust each other trade. You don't have to trust the middlemen either, making it (theoretically) a very open and liquid market ... at the cost of burning a lot of electricity. It may be that the zero-trust configuration isn't actually the best or most useful in the end, if the benefits of a fluid market aren't outweighed by the PoW costs. The proposal of using a web of trust to order transactions rather than PoWs has the disadvantage that it raises huge barriers to entry (how does a new node become trusted in such a system, without opening it up to easy attack?), but the advantage that the energy costs are very low. Absolutely, I don't need to pay a bunch of miners to facilitate trade between people I trust for more than the amount involved. Bitcoin just opens my trading world up from like 6 people to potentially 6 billion. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Mike Hearn on May 27, 2011, 09:28:44 AM Yeah. I guess my point is, we shouldn't close our minds to alternative designs.
I mean Vandroiy already convinced me the existing setup where all transactions are flood-filled to the network with attached fees won't work. The insurance/pay-per-gigahash model is a slightly different scheme, whether you think it's Bitcoin or not Bitcoin is, I guess a matter of opinion. Now I'm getting convinced the insurance/p-p-g model won't work (well) either. The problem with a single chain is it sets a single speed and security level for everyone, though transactions have wildly varying tolerances to risk. For trading with my family I don't need any PoWs at all. For huge trades between people who don't trust each other you need way more than the average. Most trades are probably for internet type purchases today, probably less than a few thousand dollars worth of value. Some people will over-pay, others will underpay (free riders) ..... it's not clearly the best solution. However, I don't know what a better solution would be right now. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: FreeMoney on May 27, 2011, 10:17:48 AM Yeah. I guess my point is, we shouldn't close our minds to alternative designs. I mean Vandroiy already convinced me the existing setup where all transactions are flood-filled to the network with attached fees won't work. The insurance/pay-per-gigahash model is a slightly different scheme, whether you think it's Bitcoin or not Bitcoin is, I guess a matter of opinion. Now I'm getting convinced the insurance/p-p-g model won't work (well) either. The problem with a single chain is it sets a single speed and security level for everyone, though transactions have wildly varying tolerances to risk. For trading with my family I don't need any PoWs at all. For huge trades between people who don't trust each other you need way more than the average. Most trades are probably for internet type purchases today, probably less than a few thousand dollars worth of value. Some people will over-pay, others will underpay (free riders) ..... it's not clearly the best solution. However, I don't know what a better solution would be right now. What insight am I missing? Can't you just do very low tx fee with your family and friends to 'prove' you don't really need good and fast service? Then if you get it anyway no one is hurt by your riding because the tx is so cheap to process, if you have to wait that's a risk you take. If you can't afford the risk you pay more, the spillover benefit doesn't hurt you. In a tiny way it helps since people who use the same money as you benefit and you are better off when your (potential/statistical) trading partners are better off. I kind of hope I live another 118 years just to see the system keep working without block rewards. :-) Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: ChloeST on May 27, 2011, 12:45:38 PM How can the cost of transactions become arbitarily high? Mining is a competitive enterprise right now. There is a option in the client to select a maximum processing fee, doesnt this communicate to transaction processors how much they can make by securing your transaction? If clients pay less than it costs to secure the transaction, the transaction is not processed. But if the processor is too greedy and doesn't accept low fees, he will be driven out of the processing market by a processor who is willing to accept the lower fee. The key is that the software is open and free, so the market for processing is huge, and there will always be competition.
Bitcoin has many tangible benefits for its users in comparision to regular finance: anonymity, security, universal acceptance (eventually). The value transfered to processors is well worth the benefits to the client, or clients would not use the system. Some value MUST be transfered to processors, because processing takes energy to undertake, and energy is not free in any sense. The a question posed is "how many miners do we want?", the answer is we don't want ANY "pro miners". Currently there are people heavily invested in mining: "pro miners". This group is an anomaly, almost a cancer that has grown on the system. Will these "pro miners" shut down and dissapear once their business becomes anything less than lucrative? For sure. Will bitcoin transactions slow to a crawl? Eventually they will. Will the curency devaluate relative to dollars? Eventually it will. But the currency will always have non-zero value due to its scarcity and it is and always will be traded for other goods/currencies. We can sit back and watch the variance while the system takes time to mature and become a well distributed system where the only miners and payment processors are the users themselves. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Mike Hearn on May 27, 2011, 12:53:02 PM For family and friends you don't even need to broadcast the transaction at all. That's not the problem. The problem is scaling it up.
The argument goes like this. If the cost of including a transaction is X (a small figure), why would anyone attach a fee higher than X + 0.00000001? Miners would include those transactions anyway unless there is some artificial minimum fee or scalability limit stopping them. Yet if all the fees are very low, there won't be much real mining done. The problem is that in the current model you're paying for block inclusion, not actually security. You can say, well, attach a bigger fee if you need more security. It'll pay for mining on the current block and then future blocks too. More fees == more hashes of work piled on your transaction. But, you can't really pay for the security you need yourself. If you receive a payment for 1000 BTC in return for some goods which cost you 500 BTC, then guy paying you can easily spend 900 BTC to reverse the transaction (100 BTC profit for him), you can't spend anywhere near that much. In a 1-on-1 race the merchant always loses. The chain only works if everyone reinforces everyone elses security. Then the issue becomes, if there are a bunch of people paying for lots of mining to be done on some blocks, I can just pay whatever the minimum is to get into a block and benefit from the free work. The extra hard blocks paid for by others protect my transactions just as well as theirs. So this is the argument as to why it won't work. Now, it's a theoretical argument, mind you. The free rider problem exists for copyrighted works too ... why would I pay for a {video,game,book,album} when I can download it for free? People do anyway. Relying on altruism and honesty isn't going to convince many people however. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: asdf on May 28, 2011, 02:03:48 AM The argument goes like this. If the cost of including a transaction is X (a small figure), why would anyone attach a fee higher than X + 0.00000001? Miners would include those transactions anyway unless there is some artificial minimum fee or scalability limit stopping them. Yet if all the fees are very low, there won't be much real mining done. The problem is that in the current model you're paying for block inclusion, not actually security. Thank you for so eloquently stating the problem. A solution I brought up in another thread goes like this (http://forum.bitcoin.org/index.php?topic=6284.msg134662 (http://forum.bitcoin.org/index.php?topic=6284.msg134662)): Change the fee structure to pay 50% of fee proceeds to the block solver and 50% to the solver of the next block. This way, fees will approach 2 times the cost of including a transaction. So half the fees cover the cost of transaction inclusion and the other half goes to securing the network. I didn't get a very positive response in the other thread, but as I can see how well you understand the issue, I would love your feedback on this proposal. Thank you. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Mike Hearn on May 28, 2011, 10:06:01 AM Your proposal means changing the voting rules (ie a global upgrade). At that point it doesn't seem much different to just setting a minimum fee, except that it adjusts slightly depending on how efficient the nodes are at verifying transactions.
There are several solutions that "solve" the problem like setting min fees, keeping inflation, etc. The question is, what solution allows Bitcoin to reach its full potential without restricting it to particular risk classes? Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: asdf on May 29, 2011, 01:23:33 AM Your proposal means changing the voting rules (ie a global upgrade). At that point it doesn't seem much different to just setting a minimum fee, except that it adjusts slightly depending on how efficient the nodes are at verifying transactions. Well, that's a pretty important difference, isn't it? There are several solutions that "solve" the problem like setting min fees, keeping inflation, etc. The question is, what solution allows Bitcoin to reach its full potential without restricting it to particular risk classes? min fees and constant inflation have problems. My solution is market based and scales with increased usage and change in electricity costs and the value of bitcoin. Which is exactly what we want. It ensures a sustainable market for mining, absent block rewards, and it's very simple to implement. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Mike Hearn on May 30, 2011, 11:16:13 AM Yeah, I think your proposal is better than some of the simpler solutions out there.
My point is that pegging the security level to some arbitrary value (and yours is still arbitrary as it's linked to something unrelated, verification cost) means either we'll exclude micropayments or Bitcoin will become uncompetitive with wire transfers for large, high risk transactions. It'd be nice to find a solution that makes Bitcoin suitable for everyone, and fortunately there are many years and even decades to find such a solution. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: asdf on June 02, 2011, 02:33:52 AM Yeah, I think your proposal is better than some of the simpler solutions out there. My point is that pegging the security level to some arbitrary value (and yours is still arbitrary as it's linked to something unrelated, verification cost) means either we'll exclude micropayments or Bitcoin will become uncompetitive with wire transfers for large, high risk transactions. It'd be nice to find a solution that makes Bitcoin suitable for everyone, and fortunately there are many years and even decades to find such a solution. Well it doesn't really peg fees to anything. Fees will naturally approach the cost of including a transaction, which means miners will have no margin. I'm merely proposing a simple change which will result in fees naturally approaching double the cost of inclusion. I don't think doubling the natural fee equilibrium will eliminate micropayments. Title: Re: Necessary protocol improvement; dissent on future mining configuration Post by: Stefan Thomas on June 05, 2011, 03:05:01 PM I don't think doubling the natural fee equilibrium will eliminate micropayments. I don't think doubling the natural fee will be anywhere near enough to create the necessary hashing rate. My guess for a sensible hashing budget to ensure security would be somewhere around two hundred times the transaction fees. Remember, we are assuming a world where transaction fees are no longer dictated by the client developers. They would be much lower than what they are now - an ECDSA verification does not cost 0.005 BTC, not even close. The point is, arbitrary rules like this will result in hashing revenue that is too high (wasting money, electricity, etc.) or too low. There are lots of impossible to predict factors such as the likelihood of government intervention that algorithms can't predict or incorporate. Therefore they will need changing from time to time. Miners will seek to influence this process. Gavin might be all idealistic now, but opinions change, invitations to exclusive sporting events get made, you know how it is. Certainly a little bit higher security wouldn't hurt, would it? There have been some double spends recently, haven't there? I mean we're not talking about a major change here, we'll just tweak this knob a little. See? This wasn't so bad was it! I'm not sure if the lobbying of Bitcoin developers can be prevented in the long run, but in the short run let's at least not give ourselves outright control over miner income. I'll use the rest of this post to explain why I think that users will be able to solve this problem quite efficiently themselves, without developers having to intervene at all. transactions have wildly varying tolerances to risk. This is exactly why I suggested an insurance model. It covers these differences - if you are a merchant who has a low rate of double spends because your customers are all very honest, you can get lower insurance premiums. If you're sending money to grandma, you don't need to pay insurance at all. The problem with a single chain is it sets a single speed and security level for everyone Sorry, but you're looking at it backwards. The security is additive. The chain security is the sum of what everyone using it is willing to spend on security. So if you send money to your grandma using Bitcoin and you don't get insurance, you don't contribute to the security level, but you don't detract from it either. (Note that even if you don't pay insurance you still carry the cost of hashing, because you still carry the risk of your transaction not getting confirmed. In other words, you benefit from insurance company's attempts at improving security. But, the risk you carry is a cost worth roughly1 what you would've paid for insurance so it's not like you're leeching of of anybody or whatever.) If someone transfers billions of dollars worth of coins at a time where Bitcoin's security is fairly low, he will have to pay high premiums. The insurance firm will try and figure out if it's better to raise the hashing rate or just shoulder a higher risk of an attack happening. If the risk is too great for whatever reason to use Bitcoin for such a transfer, the premium will be prohibitive and the transfer won't take place. If you think that's a bad thing and you advocate some minimum fee or other artificial way of raising the hashing level - what you're essentially advocating is my grandma and me subsidizing other people who do other kinds of transactions. Personally I think all types of transactions will be easily insurable in practice, but who knows. It's better to have a system where some extreme edge case transactions are too risky and uninsurable than a system where everyone else has to carry the cost for the riskiest transactions. In a world with Bitcoin transaction insurance, the amount of money available for hashing at any given time is the total amount of money being transferred with insurance. In the short run, insurance companies will be willing to spend up to 100% of a transaction's amount in order to get it confirmed. For example they may do a contract with a render farm or super computing center to provide extra hashing in case of a large-scale surprise attack. They will contract with each other to coordinate such efforts - because that means lower risk from large attacks and that means lower costs. A long-term attack like a government trying to shut Bitcoin down would cause them to raise premiums and at that point it's a matter of who is willing to spend more money overall: the global Bitcoin user base or the attacker. However, "more hashing" is not always the best defense. Imagine the US government attacking Bitcoin. Insurance companies could hire lobbying firms to stop that practice. They could advertise to get public support. They could help mobilize and fund Bitcoin's grassroots supporters and stakeholders. In the event of a private company like a competing payment processor attacking Bitcoin, they might seek help from law enforcement. Hashing for the purpose of blocking all transactions or otherwise interfering with Bitcoin would likely be considered criminal hacking in most countries. Even if legal prosecution doesn't succeed, such practices if exposed would do tremendous damage to a company's image. So if you can find out who recently bought ten thousand high performance graphics cards, they would be in a lot of trouble. Insurance is the tried and true way of dealing with risk. Whether it's a Bitcoin transaction or a money truck, if you want to be covered in case it doesn't make it, get insured. And the nice thing with Bitcoin is that money in transfer can't actually be stolen, only stopped/reversed. So Bitcoin transfers between trusted parties at least will be a lot cheaper to insure than any money truck. And once again, I'm not advocating for doing anything. All I'm saying is that Satoshi's design will hold up as is. Regulation of the hashing level does not have to and SHOULD NOT be included in the protocol. Because doing so would be much less flexible and fair than letting people create suitable institutions themselves. 1 Reality is a bit messy - the person getting insurance would pay a little bit more than the pure risk due to administrative overhead. But as the existance of other insurance companies proves, people are willing to pay that little bit extra in order to have certainty. It is likely that many transactions, if not most, would be insured. Convenience goes a long way. |