Bitcoin started out as a mathematical exercise. In that sense, the concept is sound.
<NERDY_POST_FOLLOWS>
However, as far as the wild price swings, it suffers from a disease we all contracted about 20 years ago, Something we don't understand must have an awesome application that we also don't understand. Better buy a bunch of it so we have some. Other people will want it too. Hello Kitty exists because it's an advertisement for Hello Kitty. Paris Hilton was famous for being famous. Bitcoin's price skyrockets because people want Bitcoin.
Obviously, any currency in use is a symbol for something we agree has value. Typically, it has to be limited (jokes about the US Treasury ignored), and widely agreed to have a certain value to be traded for things. I earn American dollars, acquire them, and hand them over for things like shoes, steak, and MyPillows. If I earned, say, Greek drachma, and the MyPIllow guy only accepted American dollars, we'd have to agree on how many dollars my drachma would buy. That exchange is obviously influenced by how many drachma and dollars are out there, and how many people want each. If, tomorrow, everyone though drachma were cool, then I could get a lot more dollars for my drachma, and consequently a nicer MyPillow or something.
Bitcoin is indeed limited. As expressed earlier, one bitcoin is basically a solution to a really ugly math problem. Those solutions are stupidly difficult to find, so the known solutions form a limited group. Bitcoin has, though, been tough on the 2nd test. People don't widely accept them in their "native" form. They've had to be sold on an exchange to other people who want them, and are prepared to hand over other more historic forms of currency - like dollars or drachma.
One reason for this is the "blockchain". It's a happy word in industry right now (all industry, because it's tough to understand what it is). Essentially, from Bitcoin's perspective, it's a big long adder tape of user ID's, the mathematical number corresponding to a Bitcoin, and a transaction code like "create", "delete", "transfer", etc.
In theory, if I owned bitcoin (like I owned dollars in a bank account), then I could go to a merchant that accepts bitcoin as payment. I'd input my user ID in some fashion (it's another massively ugly number), and assert that I wanted to transfer some amount of the bitcoin I owned to that merchant - essentially what you do at HEB paying for groceries with your bank account.
Here's where something silly and non-intuitive happens. My request then SEARCHES THE ENTIRE BLOCKCHAIN composed of every bitcoin transaction that's ever been recorded since the beginning of the Universe! It's calculating how many entries correspond with my user ID acquiring bitcoin, and subtracting the entries where my user ID expended bitcoin. In theory, at the end of this search, the exchange will then create a new entry transferring the agreed amount of bitcoin to the merchant - provided the result of the search indicated I had enough bitcoin.
I won't explain exactly how this process works, but it's an ugly process and getting uglier daily. Sometimes, the results of the payment attempt aren't known for a day or two! As you'd imagine, this limits the usefulness as direct payment. Solutions are being floated for this problem, but it takes agreement and "best of breed" for one to win out.
Executive Summary: All currency requires a societal agreement that the currency is "real" and "has value". None of them really do. Bitcoin could possibly have this attribute one day, but doesn't really yet.