It can be useful to frame such discussions in some conventional reference, thus here's my top of head summary of Bitcoin vs. the well established three main uses of money; ie. money as a...
Unit of account: Works fine but has issues due to the relative volatility of its value. Also, the complexity of accounting that can result from blockchain rollbacks and other Bitcoin-specific issues (new "invoices/receipts" scheme, etc...)
Store of value: Far too volatile at present to be much good; though it has been heading upwards, an individual party could easily destabilize the entire economy.
Medium of exchange: Excellent speed and reach, theoretically an improvement on existing systems due to a lack of chargebacks (finality). Realistically, increasingly complex to implement, particularly securely, and especially for real time goods and services. Unfortunately the market is relatively small and spotty right now, so any benefits here are largely negated for general commerce.
I can't help but feel the blockchain-tricks referenced by the author (in addition to the upcoming "invoices/receipts" mechanism) are nought but scope creep, best left out as violators of "do one thing and do it well", and in general a bad sign for Bitcoin's future.
That said, I am all for Bitcoin, I think it's great. It's just important to be realistic about its objective properties vs. other systems.
> I can't help but feel the blockchain-tricks referenced by the author (in addition to the upcoming "incoices/receipts" mechanism) are nought but scope creep, best left out as violators of "do one thing and do it well", and in general a bad sign for Bitcoin's future.
The bitcoin core developers have strict policy - they don't accept these additional features such as distributed DNS to the main chain. However alternative chains can be developed for these features.
I think that there can be a tremendous value for other kind of public, distributed, databases as well, not just currency.
Sharing the same network-resource with those 'tricks', official or not, is not going to come free. However, I was mostly referring to the recent "invoices/receipts" thing, which is being included. IMHO as an implementer of a Bitcoin-integrated system, that's not helpful, rather it's a PITA. But I am not framing any of my development with Bitcoin purely in mind, rather I am trying to bridge arbitrary settlement systems objectively. (If interested, see http://ifex-project.org/ for more info there.)
Worth mentioning what Gavin's response was to this proposal:
> RE: Mr. Stanish's suggestion to punt all of this and wait for a Grand Unified Solution:
> No, we have problems that need a solution right now. And, having written one (I was the lead author of the ISO/IEC 14772-1 international standard) I'm very pessimistic about your chances for anything like IFEX to actually be adopted.
Right, that was understandable if a little disappointing.
First, let us unravel the underlying assumption, which is false. When sharing a standards proposal, one isn't necessarily hoping everyone blindly adopts it as gospel but rather it provides some basis for reasonable research and/or provisional implementation within a given area that (hopefully) benefits from previous research and provides a basis for the community building upon the knowledge gained through implementation of systems in that area. The idea is that, given some common ground, people can move forward (ie. towards interoperability) while benefiting from each others' experience, and hopefully the better connected, more heterogeneous and stronger community that results.
In the particular case of IFEX, we have thus far been dealing with extremely basic areas that remain ignored by Bitcoin, ie. market identification, asset identification, and a viable decentralized internet-based financial endpoint identification scheme that provides familiar syntax, checksum protection against transposition errors, ease of integration with legacy financial systems, typo-squat-protection, and other key features. Also in the works but far more complex and slower moving are more holistic approaches to the transaction metadata/invoicing problem area than Bitcoin is apparently prepared to tackle.
The other thing that is notable in Gavin's response was the apparent notion that engineering decisions affecting the entire Bitcoin community's future are being made on a rapid basis because of perceived short-term needs. I am not sure this is necessarily a trend, but as an implementer it doesn't give me the greatest peace of mind.
Hmm I understood that the invoice/receipt stuff is not related to blockchain, just an additional protocol for these. However it might be questionable if this kind of stuff should be included in the main client.
I'd also add that I'm not sure bitcoin ever needs to be anything more than a medium of exchange. In digital commerce there is no reason not to denote in one currency, exchange in another while marking to a third.
Chargebacks, speed, etc all get translated to transaction costs. Lower transaction costs by an order of magnitude or two and all sorts of things become possible.
You miss one thing, though: the block chain has real costs. If you want another block chain for the document timestamping, for instance, then you'll have to convince people to mine that block chain. Inevitably, it'll be just another currency not very different from Bitcoin. And since both have almost the same objective properties and Bitcoin is already more valuable, nobody will spend CPU on your currency. So you'll end up using the Bitcoin block chain anyway.
This is exactly what is happening to Namecoin: initially, it was just another blockchain, but very soon people realized that nobody is willing to spend any CPU/GPU time on Namecoin if Bitcoin is worth more (no matter how much more). So Namecoin guys proposed "merged mining", which is just a fancy way to reuse proof-of-work done on Bitcoin block chain without asking people to devote any resources specifically to Namecoin.
I'm not sure bitcoin ever needs to be anything more than a medium of exchange
My sentiments exactly. The other stuff will sort itself out. (Historical example: GUI client in codebase!) IMHO what integrators really need is a fixed target, and what they have now is spiralling complexity and ill-defined scope... ie. very suboptimal.
These things are not "scope creep" because (for instance) timestamping can be done on top of the existing block chain - no modifications to the protocol needed. You simply pay for your transactions, miners include them and no one cares if you interpret them in some fancy manner.
It's still scope creep. The scope of implementing a real, user-facing bitcoin client is much greater than it was when the project started. Bitcoin reimplementors or those building tooling need to either support everything or risk fracturing an already fragmenting community.
There is no risk of fracturing. I'm not suggesting changing the protocol, or UI of the existing clients. You may use your client to send/receive money, no problem. I may build another client which will allow you to do manipulations with transactions without affecting anyone at all. E.g. timestamping is just a funny way to create an address and send back-and-forth the money. No one else needs to be concerned about it except for the people who wish to verify existence of a document. Money was not destroyed and it did not change its shape. This is not fragmentation, it is "building on top of" in a very compatible manner.
He writes about direct value of Bitcoin - but half of the examples he mentions are about crypto in general not about the particular system:
- Smart Property is just a theoretical proposal for a system and the linked page says: Smart property was first proposed by Nick Szabo in his 1997 paper, "The idea of smart contracts". There are currently no implementations of this idea.
- decentralized DNS is realized in a different system that uses the code from bitcoin software but is not connected in any way to the bitcoin system itself: http://dot-bit.org/Main_Page
I guess you can use bitcoin to do secure time-stamping of messages that can fit into the format of a bitcoin transaction (there is some place for comments or something) - so you can piggyback a message on a bitcoin transaction.
Finally https://en.bitcoin.it/wiki/Contracts seem to be connected to the existing bitcoin system, but it is not clear how much of it is already implemented in the clients.
More accurate title would be "direct value of cryptocurrency". Bitcoin has very conservative approach with this. The core developers won't merge any features which don't serve the basic idea of currency.
However alternative chains could be used to develop many of these systems. I think there can be a tremendous value with public database, not controlled by anyone. Lately I have been thinking about alt-chain which could be used as a distributed stock/asset/IPO ledger. Similar to http://www.bitcoinx.org/ , but done in a separate chain to server the needs better.
See my comment above. Many cool features (like timestamping) do not need any modification of the existing software. E.g. it is entirely possible to make DNS without alternative chain (like Namecoin), but fully on the existing block chain with timestamping through deterministic addresses.
The cool thing about block chain as it is right now (even with incomplete support for multi-signature tricks), it already allows you to leave a trace of your document using addresses alone. Without any piggybacking - you just create a transaction address derived from a hash of your document, move your money in and out, then publish the document. Everybody can compute the keys and verify that the address is indeed derived from that paper and you indeed had this document created before the transaction was recorded.
You interpret your hash as a private key. Or as a seed for the private key. Then out of the private key you compute a public key, which when hashed with SHA256 and RIPEMD-160 gives you an address.
Then, before disclosing the document, you transfer some amount to that address and back to your private address. After that, reveal the document: now everyone can repeat the procedure and verify that you have created that document (because you can always prove that you own that "coin" which travelled through the synthetic address).
Wow! I didn't realize that you could generate a public key given a private key. To me, keypair generation was just a "black box." I should have known (probably studied it in class.) Thanks.
since I am almost out of battery I won't comment long, but the place for comment is highly theoretical.
the transaction with comment is legal according to protocol, but non-standard and as such the official client refuses to propagate it through the p2p network. and because there is a client monoculture, you are out of luck with non-standard transactions if you are not owning a mining pool yourself.
IF the non-standard transaction gets into blockchain, THEN the comment stays there forever. but it really never propagates.
And this happens with some regularity. The number of orphaned branches on the blockchain is surprisingly (to me, at least) significant (last I looked, around a dozen).
You're absolutely right. I'm currently researching the cryptographic elements of bitcoin for this exact reason: ecash schemes actually rely on the power afforded by cryptography. In my mind, the economic disruption is actually less exciting.
When I'm done the research and it goes to press I'll keep the HN community posted, since there seems to be quite a bit of excitement here on Bitcoin.
He writes about direct value of steel - but half of the examples he mentions are about metal in general and not about the particular alloy.
While true, I don't see the relevance of this point. Bitcoin is a commodity with non-money uses. Yes, some of those over lap with other cryptography technology. But that doesn't really change anything.
How durable is Bitcoin, really? In case of major economic turmoil, the value of Bitcoins can drop to zero and stay there permanently.
This is very different from gold. In a truly apocalyptic scenario, gold also becomes nearly worthless. However, when society bounces back, the value of gold can be re-inflated based on the intrinsic value of gold.
In the case of Bitcoin, such a bounce-back is not as likely to happen, because it would be so tempting for people to just start an entirely new blockchain.
As durable as P2P network. In truly apocalyptic scenario I'll most likely be dead so I don't really care.
Resetting accounts to zero might be favorable scenario over getting killed over few pounds of gold in my basement and my suspected withholding of the information where is more.
>In case of major economic turmoil, the value of Bitcoins can drop to zero and stay there permanently.
It really can't. Bitcoin is used in over 100 countries. Economic turmoil in one, or even a few, country will not be sufficient to drop the price to 0.
The system becomes more robust every day. It's essentially a basket currency made of currencies proportional to all the proportion of people which use it in various countries.
After some more maturity there could not be a more robust currency scheme imaginable.
> In the case of Bitcoin, such a bounce-back is not as likely to happen, because it would be so tempting for people to just start an entirely new blockchain.
In such a situation, people could be categorised into two: those who previously held Bitcoin, and those who previously didn't. The ones who did would favour continuing with the old block chain, since they'd have more value there. Surely this alone would be enough?
The first two paragraphs seemed to be directed towards the layman, and then the author takes a tangent with: "For example, the block chain (distributed transaction history) is designed to be extremely hard to forge and very easy to verify." You lost me completely.
The bitcoin blockchain is a replicated database (not distributed, as this guy claims) which contains a copy of each and every bitcoin transaction ever made since the beginning of time. It's basically how they 'solve' the so-called double spending problem where a digital coin can be duplicated (spent twice) unless there is some way to verify the uniqueness of said coin. Given a total history of every transaction ever made, a recipient can check whether a coin hasn't been already given to someone else by the sender.
The idea is that anyone can participate in the peer-to-peer network that maintains this database, and that this database is signed on a block-by-block basis by the participants to maintain consensus. Hence the term 'block chain'.
Now, since the data in the block chain is a set of time-stamped transactions that are difficult to forge (unless someone controls >50% of the network), one can use it to store other time stamped information such as contracts.
(disclaimer: the above is just a semi-laymans attempt to explain the block chain to OP, feel free to correct me where I am wrong:)
(One of the better explanations I've seen).
Indeed, the bitcoin.org website claims that the blockchain is the central innovation in Bitcoin (since the rest of the ecash crypto has been around for decades)
I learned quite a bit with your article but there is a statement that is not quite accurate: "dollar bills do not have any value in themselves"
Legal tenders like dollar bills are the value themselves, it might even come to a situation where the material used to build it costs more than the actual value of the medium (1 cent coins).
A couple of words about "value". Value is a concept. It does not exist in reality like matter or energy. This concept applies to voluntary actions. It does not apply to involuntary actions. If a judge and a policeman force you to accept USD as a method of paying you, it says nothing about how USD is valuable for you. We can only observe that you value your life more than non-complience.
So "legal tender" laws do not create any kind of value at all. I would argue that, probably, the opposite is true: when something must be enforced, it is because of its negative utility.
In the peaceful situation, however, we may discuss different kinds of values.
Certain things can be valuable for your own immediate needs, without much participation from other people. E.g. your pen is useful without need for cooperation with others. You may say the pen has "direct" use value.
Dollar bills are almost only valuable when you can trade them for something with others. Of course, you can do paper planes or use them for cocaine sniffing, but that happens comparatively rarely.
Bitcoin block chain allows not only money exchange (which requires somebody to exchange with you), but also some bookkeeping for yourself, or your friends, or future generations.
How do you figure that a dollar bill has any intrinsic value? The raw materials have some minor value, sure, but the cost of making a dollar note is significantly lower than a dollar.
A dollar bill is a promise of value, conceptually no different to a cheque from the US government. If you believe that money has any value in itself, then I have some Zimbabwean dollars to sell you.
Representative money is a particularly vague term, which usually means money backed by a physical commodity, but can also encompass fiat money as well.
There's nothing inherently magical about something being legal tender. The only difference between a $1 cheque and a $1 note is risk. The probability of a cheque bouncing is more likely than the USA economy collapsing into hyperinflation.
As you said, once I give you a dollar bill, the transaction is over. If I give you a check it will takes days for the actual transaction to happen and the money transferred (which can possibly end up in a physical transfer of cash)
Money does not depend on any kind of backing at all, for instance: the US gov has been flooding the market with dollars backed by the promise it will buy them back someday. Some countries don't even bother buying dollars anymore, they rely 100% on swap agreements.
Even if the economy collapses, the dollar will still be accepted for paying your gov duties, which means it will collapse too, equalizing the system. (inflation and deflation can be too complex for me to have any useful discussion)
You say money does not have any backing, and then immediately after you say that dollars are backed with a promise from the US government.
Fiat money is backed by the faith in a countries economy and government. A dollar is worth something to me because I can ultimately exchange it for goods or services produced in the United States. If this were not possible, for instance if the USA completely closed their borders to all foreign trade and travel, then the dollar would be worthless to anyone outside the country.
You mention that a cheque needs time for the money to be transferred. So you give me a cheque for $1, I would have to wait for the dollar to be transferred from your bank account to mine. But what if I didn't cash the cheque? What if I gave that cheque to someone else as a substitute for a dollar bill? If Alice gives a cheque to Bob, then Bob can pay Carol with that cheque if Carol trusts Alice is good for the debt.
Finally, regarding the dollar being accepted for paying my government duties, that's only true for countries that have the US dollar as their official currency. If the USA disappeared tomorrow, the dollars I own would be worthless; they only have worth because they're backed by the USA, much has a cheque only has worth while a particular bank account exists and has funds.
Interesting how the cheque situation you explained (not cashing and passing it to others) is somewhat similar to what happens to swap agreements. It's really interesting how currency can manifest itself without a regulated system.
The main point of my article (I think my poor writing didn't help me convey the message) is that even when we move on to electronic money (like bitcoin) people will still not want to carry them (having their own wallets at home), they will prefer a bank or service to take care of this. I think this is great because we could start using bitcoins with systems that are already in place, I even built a small demo for Verifone PoS which integrated nicely with our current systems (I run a credit card company)
Sometimes I also think that electronic money, like credit cards, could not be as democratic as paper.
Isn't this value derived from the system as a whole rather than Bitcoins themselves? If the monetary value of Bitcoin dropped to zero for some reason you wouldn't be able to use your existing Bitcoin for these purposes.
It's kind of like saying you could use the comment/memo area of wires/checks to send or timestamp messages.
All of these uses would still apply if bitcoins were worthless.
No, because if bitcoins were worthless, there would be no incentive to mine, and if there is no incentive to mine, there is no security for the blockchain.
A simple explanation is that each time a new block is created ("mined"), the miner puts some or all of the outstanding transactions in the block, which "executes" them. The miner is allowed to pick which of those transactions he wants to include using any criteria he wants.
A person making a btc transaction can add "transaction fees" to the transaction, effectively making a second transaction to the miner of the block who accepts his transaction. This allows for a simple anti-spam/prioritization feature: The miner sorts outstanding transactions by transaction fees offered, and puts the top n txns into the block.
The total volume of transactions that are handled by the system is designed to be large enough to be practical for all and any uses. This means that at the moment if someone isn't embedding files in the block chain or something (BTCfs is a real thing!), transactions without fees will still typically be executed eventually.
The costs are negligible - several cents per transaction nowadays, and is always up to you to define related to how important the transaction is and how fast you'd like the network to confirm it.
In any case, the costs are miniscule compared to standard transaction fees that banks charge.
The costs are neglible now, but based on how Bitcoin works (shared transaction list) it seems likely that the costs will rise in the future:
1) Currently there's a transaction size limit of 1 MB in the protocol, with typical "large" transaction sizes being about one third of this. Once average transaction sizes will hit the limit, miners will probably include transactions paying higher fees, thus auctioning the available space.
2) Even if Bitcoin users agree on a protocol change to increase this limit costs will rise, as every transaction needs to be forwarded to all other nodes (or at least to the miners). So increasing transaction sizes will create higher hardware requirements for miners, without necessarily increasing their income. And there's the further complication that a fork will only work if a majority of the network actually supports it.
1) No, Gavin (Bitcoin lead developer) says he wants to make the transaction and block size unlimited (or rather, let the miners limit it). This should keep fees down. https://bitcointalk.org/index.php?topic=140233.40
2) No, costs for the majority of transactions will not go up- in fact, they may go down. Most miners already charge different fees based on any given transaction's size. The fees range from about a half-cent USD to about two cents USD. If someone wants to send a 2MB transaction, the miners will be able to charge whatever transaction fee they choose for expedient processing.
The fee system is pretty complicated. You can get some transactions through without a fee, but I doubt that this will be the case in the future, when transaction spam will be increasing. The required fee basically depends on the generated transaction size (in bytes).
I've edited the line: it costs "almost nothing". Comparing to the amounts exchanged and comparing to alternative systems, it is much-much cheaper. And today you can pay zero fees for your transactions and still get them included in the block without significant delay.
I thought old transactions in the block chain were rolled up into a new block and signed. So old transactions do vanish. Am I wrong or right on that one?
That's not true. You may want to have entire block chain - if you wish to verify every block. Miners need to do so, to be sure they don't build their blocks on top of invalid blocks. Regular people don't require that and can trust some web wallets or light clients like Electrum, that store only block headers and keep track of personal keys, but do not verify all the transactions.
It is true if we define client as "client which implements BTC protocol". If you define it as "random internet strangers I trust with my money" then of course it does not require the blockchain and also does not provide any of the strong guarantees from BTC. Even for Electrum which does not have your private keys, you are still trusting what it says the blockchain contains. If subverted this could for example lead you to believe that someone had sent BTC to your wallet that were not actually in the true blockchain.
I didn't say I don't need to trust anybody. I have to trust even the full client: I need to validate the checksum, make sure I don't have viruses and keyloggers on my machine, I have to trust my backup system and have to trust people who understand crypto better than me.
Everyone must trust someone, there is no clear line in the usability-vs-trust balance. I'm perfectly okay to trust a web wallet on blockchain.info small amount of bitcoins because they do a very good job with their iPhone app and SMS notifications. I'm also okay to put some of my money into Electrum and some - in Bitcoin-QT. And keep some on bitcoin-central.net in case I need to sell BTC for fiat quickly.
Given all of that, it's not fair to say that "the true" client is this one, while all the others - are considerably different. For people who value their time, it's important to be able to sacrifice some trust for usability and vice versa. If we would always tell them that they must use the full client, we are just imposing our personal tradeoffs and do not respect theirs.
Unit of account: Works fine but has issues due to the relative volatility of its value. Also, the complexity of accounting that can result from blockchain rollbacks and other Bitcoin-specific issues (new "invoices/receipts" scheme, etc...)
Store of value: Far too volatile at present to be much good; though it has been heading upwards, an individual party could easily destabilize the entire economy.
Medium of exchange: Excellent speed and reach, theoretically an improvement on existing systems due to a lack of chargebacks (finality). Realistically, increasingly complex to implement, particularly securely, and especially for real time goods and services. Unfortunately the market is relatively small and spotty right now, so any benefits here are largely negated for general commerce.
I can't help but feel the blockchain-tricks referenced by the author (in addition to the upcoming "invoices/receipts" mechanism) are nought but scope creep, best left out as violators of "do one thing and do it well", and in general a bad sign for Bitcoin's future.
That said, I am all for Bitcoin, I think it's great. It's just important to be realistic about its objective properties vs. other systems.