General Question

phoebusg's avatar

Consider the bitcoin currency, what are your thoughts?

Asked by phoebusg (5218 points ) December 14th, 2010

If you’re not familiar yet, read: http://www.bitcoin.org/faq and http://en.wikipedia.org/wiki/Bitcoin for a quick reference. For more information read http://www.bitcoin.org/wiki/doku.php and finally you can also read the full paper: http://www.bitcoin.org/sites/default/files/bitcoin.pdf

It makes it really easy to carry microtransactions with no transfer fees. But it’s generation method is insane, to me at least. What are your thoughts?

Although this is an open discussion, please avoid one-liners. Looking forward to a good conversation.

Observing members: 0 Composing members: 0

40 Answers

Response moderated (Unhelpful)
phoebusg's avatar

In terms of pros/cons.

Pros:
-No centralized bank, no fees.
-Anonymity.
-Your “wallet” is an encrypted datafile, (proof of work), and also proof of funds. You don’t need someone to hold it for you.
-Predicted inflation and deflation given the generation algorithm and method.
-Thus somewhat resistant to speculation (although that is always up to the market)

Cons:
-Anonymity – it could be abused to launder money (but if it remains in use for microtransactions, much less likely to happen.
-Generation (“mining”) algorithms are very CPU intensive. Energy costs vs benefits. (Some in the community argue that generation would/could be taken over by greener initiatives).
-Even if you build an ACIS ( http://en.wikipedia.org/wiki/Application-specific_integrated_circuit ) – the algorithm accounts for speed, by increasing difficulty based on the speed. Therefore, slowing generation down, for security – but killing efficiency.
Effectively, you have a mathematical model for generation restriction vs arbitration (what is used with most currencies).

A potential con I see so far, many in the bitcoin community are obsessed with generating bitcoins, and the process. Which is fine since it’s nice, but it seems to just reinforce human greed than give just an alternative solution. But that depends, again, on use.

wundayatta's avatar

It seems like the kind of thing that a monomaniacal mind might make up. Such a mind would see some problems and not others. It would explain some things and not others. Like why is it necessary for individuals to generate coins? Why allow people to earn coins by making coins? Is this just part of the cost of creating the system?

And since the number of coins is capped at 21 million, then, over time, each coin will become worth more and more—deflation, which is very destabilizing to an economy. When your coins are constantly gaining value, you have a strong incentive to delay purchasing until you coins are worth more. Delaying your purchases slows the economy, eventually to a near standstill with constant deflation.

Also, they appear to be afraid of wild swings in the money supply. I don’t know why. I think we need flexibility, not rigidity.

In addition, the system is not at all transparent. It requires a good deal of education for people to believe in it.

I don’t think it’ll fly. Some other micro-transfer mechanism will win out.

the100thmonkey's avatar

@wundayatta : ”eventually to a near standstill with constant deflation”

Don’t complex systems tend towards equilibrium? Shouldn’t we be worried if they don’t?

LuckyGuy's avatar

Who audits the supply? It seems an insider can manipulate the program such that, for example, 21million BTC exist on paper but actually 23 million exist. (2 million of which is owned by the person doing the software.
What is to prevent counterfeiting and laundering by nefarious desperadoes?
Will this be an incentive for yet another round of trojan/keylogger/backdoor viruses initiated by China, Eastern Europe, et al.?
Personally, 100 BTC and $1.00 will get you a cup of coffee.

phoebusg's avatar

@worriedguy you will find the documentation and paper of interest for those two questions. In short, it is secure, so long at least 50% of the nodes are non-compromised. The hash calculations can be verified, thus add up and confirm the transaction history. Inflation is by design, as in how fast we can calculate/generate blocks. And it is also controlled for calculation speed, so the faster you can calculate, the higher the difficulty over time.

In other words, the software is open source. But if you go out and make your own client-sever (and each is, given the p2p design), it has to be able to calculate and verify like the rest of the network. If it doesn’t your client is rejected, null and void.

What/who certifies transaction(s), inflation(s) and supply currently, and do we trust them? Especially how they go about doing it… Fiat currencies in sum.

Right now there’s 4 million in circulation, 21mil is the limit coded in to the design.

phoebusg's avatar

What puzzles me is not the security, but the generation cost in terms of CPU cycles and essentially electricity costs. Though many in the community argue that current currencies have if anything higher environmental costs for their generation. I’m not sure, yet, if BTC generation is more efficient than most currencies and current banking status quo. Someone has to do some stats on average energy cost.

I find btc quite useful hence this addition to my profile:
“If you like my answers, and use bitcoin – you can send me some micro-cash rewards here: 14M8nJHAvYtMN918LoeMyXMGJgyjnaqK9w ”

I just “micro-monetized” fluther :)

HungryGuy's avatar

If anyone can mint currency by running their own bitcoin server, how can bitcoins have any value?

Also, once that 21 Million limit is reached, the only people who will use bitcoins are the people who already minted their own and will be trading only among each other.

And, no doubt, as with any bandwagon, some people will start minting their own (maybe mint a few thousand) and then lose interest in it, and those coins will effectively be taken out of circulation and lost forever. Enough people do that, and a large chunk of that 21 Mil will simply vanish. I may even run the server thing and mint a handful of my own just to see what the fuss is all about, but will probably never use them…

phoebusg's avatar

@HungryGuy can I have your BTC? but on a serious note. Through exchange. http://www.bitcoin.org/trade

User exchanges X currency to BTC, make micro-purchases online. Gets product(s)/service(s). Receiver may convert BTC back to X currency, or stockpile BTC.

Quite a few options in the trade department, and new every day through the bitcoin forums. But I hear your concerns nonetheless. Do input more feedback as you learn more, cheers :)

HungryGuy's avatar

I haven’t created any yet :-p

I just downloaded the software, but plan to let a few A/V cycles pass before I run it (yes, I’m paranoid about running unknown software on my machine).

But, seriously, why would I exchange X real currency if I can just mint my own bitcoins at my whim?

phoebusg's avatar

@HungryGuy makes sense, check http://freebitcoins.appspot.com/ for your first free micro-btc. Just to test transactions. You can send a fraction to my account to test sending if you want: 14M8nJHAvYtMN918LoeMyXMGJgyjnaqK9w – you can send tiny fractions (unlike conventional currencies).

HungryGuy's avatar

Oh, I don’t doubt that the technology works. I’m just doubting the real value of the bitcoins.

phoebusg's avatar

@HungryGuy and you wouldn’t be the only one. Hence why it’s fine for microtransactions. The most I’d lose would be minimal. But, giving it enough support to prove itself meanwhile. Any stock has similar risks, but you’ll say at least pays dividends :)

You could also use idle cpu time, and join a generation-pool (because generating alone is insanely hard and time-intensive from what I see). Though I have concerns on energy consumption – with all cpus at 100% :P)

HungryGuy's avatar

So, by microtransactions, you mean stuff like MMORPG items and stuff like that—basically “play money” for people to buy and sell that sort of thing without having to deal with PayPal and credit cards and all the hassles of transferring “real” money? Not for serious purchases through Amazon or eBay?

phoebusg's avatar

@HungryGuy both. There’s already plenty of decent and usable services, especially to a computer geek. So converting real currency, to btc, to buying the service is in fact cheaper than using paypal etc.

HungryGuy's avatar

Okay, but if I was selling something (say, a toaster) though eBay, why would I take a form currency as payment that anybody can just mint at a whim?

phoebusg's avatar

@HungryGuy that’s really up to you. And, well research bitcoin a bit more. It’s definitely not at whim. I can’t make btc, I don’t have enough cpu cycles :P I do have an amazon ec2 account, but it would cost me more per hour per $ than to buy through the current exchange systems.

HungryGuy's avatar

CPU cycles? But isn’t a bitcoin created by public-key/private-key encryption algorithm? To create an encryption key takes a negligible amount of CPU. It’s breaking a private key that is expensive in CPU cycles.

phoebusg's avatar

@HungryGuy read linkies, and let’s talk :)

HungryGuy's avatar

I read the FAQ and the paper that it references. The paper talks at length about preventing double-spending of coins and how the hash algorithm will prevent duplicating (i.e. counterfeiting) coins. That’s all well and good, but what’s the point in taking great steps to prevent counterfeiting if anyone can create coins by running a bitcoin server?

From what I read, it says that a bitcoin is created by generating a public-key/private key pair, and that each trade of that coin appends a key to the coin to verify its validity. Again, negligible processing, unless a central server somewhere is imposing a deliberate time delay to the generation of each bitcoin. Otherwise, I could just open the OpenSource code, remove whatever is code is consuming huge CPU cycles per coin, the and have it crank out bitcoins, all within spec.

dvx's avatar

Phoebus, on the point about power consumption:

There are 300 bitcoins created by the network every hour. Therefore, participants of bitcoin will spend at most 300 bitcoins worth of power during that hour. Any more than that and mining becomes unprofitable. At present this is around $60 / hr.

But also remember that this is an upper-bound. Most people will not bother mining unless there is a substantial profit after they pay for electricity, so it will normally be much lower.

On the ACIS issue, suppose someone does produce the specialized hardware-based miner for himself as discussed on IRC. He then becomes an order of magnitude faster at hashing, such that other miners will no longer be able to compete, so power consumption will drop off until competing miners can produce similar hardware.

In the long run, I expect that the bitcoin-wealthy will have the best mining hardware/software (not just to make money off mining, but because their mining protects their existing wealth), and ordinary users will have little incentive to bother with it.

phoebusg's avatar

@hungryguy
As per http://www.fluther.com/106685/consider-the-bitcoin-currency-what-are-your-thoughts/#quip1743750

It wouldn’t be verified by any other node, and your client/node would be rejected.

phoebusg's avatar

@dvx thank you for the clarification and welcome to fluther :) I’m beginning to get the reasons behind the model now. But it’s nice to still consider/discuss and poke questions at it.

My next persistent question is, couldn’t we make a DB with useful problems to solve vs just hashes? Giving the scientific community more CPU cycles to solve important problems with, vs just supporting the closed-system.

HungryGuy's avatar

Why would it be rejected?

Is there a server somewhere monitoring how quickly I generate bitcoins, and rejects coins I generate if I generate more per time period that one node is allowed to generate in that time period? And if my client doesn’t connect to the server, my generated bitcoins aren’t valid at all?

If that’s the answer, then, yes, it makes sense as a mechanism to prevent some miscreant from cranking out bitcoins.

phoebusg's avatar

@HungryGuy the validation is done by the whole network. So, if 50% or more of the nodes say – “what this client is reporting as calculated blocks is BS” then you will be rejected.

HungryGuy's avatar

Okay. I’ll buy that. You’re saying that my client has to report to the P2P network each bitcoin as it creates them. All the other clients then “vote” on how rapidly I create each bitcoin, and if a majority of them vote that I’m creating too many too rapidly, my coins aren’t accepted as valid. Is that generally correct?

dvx's avatar

The idea’s right. You get 50 bitcoins if you solve a block. Essentially this means running SHA256 repeatedly with various inputs until the output hash is less than a maximum difficulty value, and then your outputted hash is attached to a block of pending bitcoin transactions. The block is then verified by the rest of the network as containing all valid transactions (including the 50 bitcoin payment to you)

phoebusg's avatar

@dvx the btc is issued how exactly. What is the mechanism. And what number of nodes does that require (or %) to validate the btc?

dvx's avatar

It’s just another transaction in the block, but it has only an output of 50 bitcoins and no inputs. There isn’t a required percentage of nodes, but nodes that disagree on difficulty or block transaction rules will be incompatible with the rest of the network.

phoebusg's avatar

@dvx in other words, the btc is generated by the software itself, once the block is solved. And it is validated by the crushing majority.

This begs the question then, what if someone with enough machines (virtual or not) instantiates enough clients to reach 51% – would that compromise the system, create btc (up to upper barrier) and validate them? Or what would happen in that scenario given this design.

dvx's avatar

Wouldn’t matter. Invalid transactions produced by those clients would be rejected by the remaining 49% of the network. The best the attacker can do is hash faster than the rest of the network, and then he can potentially double-spend or invalidate other transactions in the current block.

phoebusg's avatar

@dvx thanks a lot for your answers. I’ll peer again once my brain processes this block :P

the100thmonkey's avatar

What I don’t get (and forgive me if this is a stupid question) is why using idle CPU time just to generate bitcoins is indicative of any actual work at all.

I’m a teacher – perhaps if the system can work out an equitable way for me to be paid for what I consider to be my profession, it would seem more attractive prima facie.

dvx's avatar

What is “actual work”?

the100thmonkey's avatar

I would suggest that ‘actual work’ here means work that produces something other than the currency itself.

That’s what I don’t get – if ‘mining’ (in the context of bitcoins) only produces bitcoins, then the network is doing nothing intrinsically attractive to someone not involved in mining bitcoins.

If the mining produced something that people intrinsically want – data that is externally useful – then I’d consider it more attractive.

As I said, I don’t get it, so I’m sure there’s either a logic I haven’t considered or I have my facts wrong. If I’m not way off the mark, then it’s an utterly pointless exercise.

HungryGuy's avatar

There has to be more to it than ”...you get 50 bitcoins if you solve a block…”

What’s the value to the network in having me solve blocks? If that’s true, it seems to me like you’re paying me to perform busy-work.

I can understand the entire P2P network monitoring my bitcoin server and allowing me to generate, for example, one bitcoin per human-day as compensation for running said server as a mechanism to get bitcoins into circulation initially. But if I’m generating bitcoins per block solved, then wealth is determined by who has the fastest CPU, not payment for value delivered.

If I’m missing something, someone needs to explain this more clearly than has been offered up to now.

dvx's avatar

This should answer both of your questions:

The purpose of the miner is to guarantee the integrity of all transactions submitted to the network. Miners are compensated in exchange for providing this service. The money creation in the system is analogous to gold mining, as there will eventually be mined a total of 21 million bitcoins. At that point transactional integrity will be maintained the same way, but miners will be paid transaction fees rather than generated coins.

the100thmonkey's avatar

It strikes me that the systems (gold mining and bitcoin generation) are somewhat similar, in that the resource is finite. However, I fail to see how bitcoins actually represent anything over CPU cycles that would otherwise be wasted. The problem is that if they’re being otherwise wasted, it’s difficult to argue against the point that generating bitcoins is wasting CPU cycles: the assumption is that CPU cycles are inherently valuable. Why, therefore, is it superior to gold, or fiat currency?

I suggest that it isn’t.

dvx's avatar

I have no idea what you’re trying to say. Doesn’t matter what a bitcoin (or a dollar) “represents”. They both have value because people are willing to trade for them. Bitcoins are a scarce resource, and a convenient medium of exchange; in fact, more convenient than gold or dollars.

These are necessary conditions for something to arise as money.

directrix1's avatar

@HungryGuy and everybody else:

You can’t generate Bitcoins on a whim because generating Bitcoins involves solving a cryptographically hard problem: finding a chunk of data to tack onto a block which will make the hash of that block less than a certain target number (which is determined by how fast people have been solving blocks). That target number is lowered when the speed is too high and raised when the speed is too low. Since cryptographic hashes are for all practical purposes random with regards to its input, then your probability of finding a solution first is based on the ratio of your CPU speed to the total CPU speed of the network. Furthermore, the probability of solving it in a given guess is reduced for everyone when the target number is lower making it slower.

Now, for blocks, blocks are nothing more than a big list of Bitcoin transactions that other people want to be verified. A bitcoin node that is mining will take a set of Bitcoin transactions waiting to be verified and try to compute that number that makes the hash satisfy the criteria I mentioned in the previous paragraph. Once this happens then the node submits the block, signed with it’s private key, to the p2p network where it, and all the transactions inside it, is verified on a bunch of nodes.

In addition to the mined money that the person receives by solving a block, they also get all the transaction fees that people attach to their transactions. These fees will eventually be worth more then what you get from just mining, because there is an algorithm that determines how much you get for solving a block. “The coin value is 50 bc per block for the first 210,000 blocks, 25 bc for the next 210,000 blocks, then 12.5 bc, 6.25 bc and so on.” The limit as this goes to infinity will be the 21,000,000 bc, it will never actually reach that limit. BTW, attaching transaction fees to your transactions make including your transaction in a block more valuable so nodes will include it in favor of blocks with lower transaction fees because they get them as a reward for solving a block with your transaction in it.

The value of bc is no different than that of money produced by pretty much any government. Its value is determined by the market. Nothing more, nothing less.

I hope this helps solve you guys’ questions and concerns. Please read their FAQ: http://www.bitcoin.org/faq

Answer this question

Login

or

Join

to answer.

This question is in the General Section. Responses must be helpful and on-topic.

Your answer will be saved while you login or join.

Have a question? Ask Fluther!

What do you know more about?
or
Knowledge Networking @ Fluther