Flat-Earth-Academy.com is supposed to offer things you should find in schools. Some of the "things" are meant to be foundation knowledge. Others try to demonstrate that struggling with ideas can have rewards.
This page is one of the "you might find this fun" pages, not a "you should know this" page.
This doesn't aspire to be "the whole story of Bitcoin"... but it tries to shed a little light on an aspect that stumped me, and several very bright, knowledgeable people I lodged enquiries with.
If you've visited this page before, and don't need to refresh your memory, you can just jump down to material added early in April 2018.
First... just in case... "What is bitcoin?"
Bitcoin is the so far... so far as we know (and I'll come back to that!)... is the so far most successful of the crypto-currencies which are emerging.
So what is a crypto-currency?
It is a new sort of money. The technologies are very different, but when I say crypto-currencies are a "new sort of money", it is a bit like someone might have said, a few years ago, that "e-mail is a new sort of mail".
"Why do we need a new sort of money?", you ask... just as people asked "Why do we need a new sort of mail?".
1) Do you like paying your bank for the "services" it provides? It isn't just the fees you pay for your accounts, making a transfer, etc. When you leave money on deposit at a bank, the bank makes money off of that. If you borrow from the financial services industry you can pay 15% and more. When you loan them the money for which they charge that interest, how much of the interest income do they pass on to you?
2) When money passes through a bank, or almost any other financial institution, it is visible to the tax collectors and police. I don't mean to suggest that you, Gentle Reader, would want to hide anything from either of them, but there are people who would like to do so.
But I'm not getting a lot closer to the "interesting" (I hope) part of this.
Visit Wikipedia and Bitcoin.it and Thoughtworks.com if you want more comprehensive information. (And I should thank them all, especially the latter two for getting me further along the road to understanding crypto-currencies!)
Finally! We get to a few comments from me, which I hope will help you, if you are curious about bitcoin and the others....
First: I've written the Flat-Earth-Academy mainly in the hopes of helping kids. If you are a young reader, remember that life isn't all about pocket money ("allowances") which you decide whether to spend on candy or going to a film. Think, say, about the money that goes 'round and 'round, just so that there is candy in the store. At a big factory somewhere, workers have to be paid. Supplies have to be paid for. The candy has to be delivered to the store. More employees to be paid. The money you hand over for your candy bar will go on quite a journey, one way and another. And all the little bits of money spent in a month had better add up to a very large amount of money, or the store won't be there very long.
Back to crypto-currencies. You've probably heard about the block chain: The block chain is very, VERY clever... worthy of many hours study in its own right... but put that aside for a while. All you need to know about the block chain is....
1) It holds the information about who has what bitcoins.
2) It is secure, in the sense that it can't be lost. Two hundred years ago, banks had "books", in several senses of the word. In them was written down what you had left with them for safe-keeping, and what you'd had back from them. If the bank had a fire, it was really, really bad. There could be difficulties over who was owed what. (Yes, of course, they had procedures in place... but I speak of such things to explain what I mean about the block chain being secure, "can't be lost.")
3) The block chain is "secure" in a second sense. I said it holds the information about who has what bitcoins. Wouldn't it be nice if you could "hack" the block chain, and "give" yourself more? Well.... it would. But Good Luck. Lots of people have been trying for some time. There are things about how the block chain works which make it very hard to "rob" it.
I said "The block chain holds the information about who has what bitcoins." Well... not exactly. The trouble with trying to get your head around a new technology is that it probably doesn't work exactly like the Old Skule thing it is replacing. Go back to email again. TODAY most people understand that while an old fashioned letter had an address on the envelope, and emails have recipient lists in the headers, and that they both take care of sort of the same thing, they aren't really so very similar.
Without the block chain, there'd be no bitcoins. But it "holds the information" in a way that is very different from what we're used to. the information itself isn't what you might imagine it to be.
I've seen it described as a ledger. Well. It is... sort of. Or perhaps it would be better to say that the information takes the place of an old fashioned ledger.
An old fashioned ledger kept track of the flow of money. When money went into your account, it went out of somewhere else, be it ever so humble, e.g. your pocket.
I don't think the block chain holds history the way a ledger does. Nor does it hold who owns a particular bitcoin.
With a bank's ledger, properly authorized people can look up how much money you have deposited with the bank at the moment. (And can see your balance at different times stretching back into the past.) The block chain doesn't have that sort of information!
Partly because I don't really understand it(!), and partly because it is so different from anything we've ever had before for keeping our money safe, I have to ask you to bear with me and imagine something pretty strange. And ask you to believe me when I say that when the inventors built the crypto-currency system, they "built" something a bit like what I'm going to describe, even though it doesn't exist physically like this, of course.
As a starting point, please imagine some post office boxes. Imagine lots and lots and lots of them.
Alternatively, think of the sort of "lockers" that you get for leaving things for safekeeping. The "things" in the block chain that "hold the money" have characteristics of both.
But hang on, 'cause it isn't quite just a bunch of traditional post office boxes. (Or lockers.) Bear with me.
First of all... there's a little slot in each door. You can push a slip of paper in, but you can't get anything out, except by opening the door.
And the door opens with a code, "entered" on a "keypad". You don't use a key. No postman has access to the box.
And here's where it gets really weird: The boxes aren't arranged on the wall in order. In fact, a box's number can change between owners. (It wouldn't change when there was something in the box, but the number of boxes isn't "fixed", it can grow, if necessary. But sometimes... quite often, in fact, a box will become empty. And it's number can change before it is "re-cycled".) And there's a "magic" system in place so that you can go to any box, with just its number. It might be your box. Or someone else's box. To look in a box, or do things with the "slips of paper inside", you need the password for that box. If you have the password, the contents are yours. But no one keeps track of who ought to have the password for a given box. Lose your password, and you lose access to the contents, i.e. your money. (Which raises an interesting question... what happens, eventually, to boxes for which people have lost the password? Will they just sit there forever? And if that's so, how does the system survive? Eventually, every byte of storage in the universe would be keeping track of boxes to which no one has the password!)
I said a moment ago that you can go to any box, by its number. If you don't have the password for that box, you can still put things in it. That's how you give money to someone else. They give you the number, but not the password, for one of their boxes. You can then send money to that box, through services offered by "the system". You say "Take x bitcoins from MY box (number 1234) (for which the password is ((my password)), and send them to box 5678". And it Just Happens.
The code (password) to open a particular box changes from time to time. Not at random! I'll explain, in a moment.
So. To recap...
We have a vast hall, with row upon row of boxes. Each box has an owner. A person may have one box, or many. An owner can go to one of his/ her boxes, open it, change (within strict rules!) what is on slips in the box. An owner can tell someone else where the owner's box is, so that the "someone else" can put a slip of paper in the box.
What's on these slips of paper?
Numbers! If there's a slip in my box with, say, BTC 57.12 on it, then I HAVE 57.12 bitcoins!
But the slips are rather "magic" too. You can't forge one. But you can "chop it in bits". I could take my BTC 57.12 slip, and turn it into one slip saying BTC 50 and another saying BTC 7.12. But the slips I make from the old slip will always add up to the number that was on the old slip.
Now, if I want to, I can put one of the slips into one of my own boxes, and put the other in one of your boxes. I can always open MY box, and get at the slip I've put there. (A box can hold several slips, by the way.) But only someone with the password for "your" box can get at (and thus use) slips that have been put in that box through. (They arrive, from other user's boxes, through the "slit in the door" which I described earlier.)
I can also "combine slips"... if I had three for BTC 1, and one for BTC 12.34 I could "tidy my box", convert them to one slip for BTC 15.34.
(I'm not, by the way, going to go into how you get someone to give you bitcoins in the first place, to start your collection of slips, nor how you can turn the slips we are imagining into "real" money that you could use in the outside world. At least for a while. There might be things about that further down the page! (There are ways!... covered in the Wikipedia article, for a start.) I will mention one easy- to- grasp way: Suppose you do something for, or give something to, someone who already has bitcoins? He can pay you from his supply, can't he! And your bitcoin fortune begins! But where did he (or she) get the bitcoins you would be given?
So, as I said, we have this vast hall of boxes.
There's a system... I don't know the details... for letting you know where there's an empty box. And when you take over an empty box, you can change the password for opening it. And you learn the address of the box, so that you can go back to it, and more importantly, tell others to go there with their slips of paper, to push through the slit so that the bitcoins on the slip become yours.
There's something weird here! NOBODY knows WHO owns what! Nobody knows where things came from. You just have the boxes with the slips. If you forget where your box(es) is/ are, or its password, no one can help you! Any slips in that box will sit there unloved until the end of time. (Or until you remember the box number and the password!) Weird! As crypto-currency is in several ways!
There are no "armed guards" protecting the boxes... the system "guards" them. If you can find a way to open one that doesn't belong to you, the slips in it are yours! (The fact you can open the box is the whole determinant of ownership.)
The weakest part of the analogy above is the bit where I said you could "split" a slip marked BTC 57.12 into two slips, BTC 50.00 and BTC 7.12, and that the numbers on the new slips had to add up to the number on the first slip.
Obviously, the actual mechanism used by the crypto-currencies is somewhat different. But in principle, that's how you spend part of your bitcoin money.
Note that there are no "coins", nor anything even much like them. You don't pass "something" on, that goes on existing, just moving from one owner's pocket to another. (I suppose if person "A" had, from some earlier transaction, a "slip" saying BTC 50, and he owed "B" 50, and then "B" owed "C" 50, the same slip might pass from A to B to C... but as soon as the need to "make change" arose, any similarity to what we're used to breaks down.
At one stage in my journey... far from complete!... to understanding crypto-currencies, I was convinced that it was based on tracking individual "coins". I thought it was as though each coin had a serial number, and tracking where a given coin was the basis of the system. If you reach a similar conclusion, I have to tell you that I think you are wrong. For Bitcoin, specifically (the rules for other crypto-currencies are probably different), a Bitcoin can be split into 100,000,000 "satoshi"s. So, if I had 1 Bitcoin, I can split it between 100 friends, giving each of them 1/100th of a Bitcoin. Or, if I had 3.24 Bitcoins, I could give a satoshi to every man, woman and child in the United States... Bitcoins can be "chopped" that finely... but not more than that.
Clearly, "the system" must be able to deal in fractions of Bitcoins. Either what I read ("The system tracks the coins") was wrong, or I misunderstood what someone was saying. Don't follow my example, there!
The block chain is "just" a bunch of numbers living in cyberspace. (There are several copies, and they continually change, and update one another... all of that is a fascinating story for another time.) Just a bunch of numbers. How do you get "a bunch of numbers" to "hold" all the boxes, slips, passwords? That's not so very difficult for an experienced programmer.
The amazing part was coming up with this extraordinary new alternatives to the systems of storing and passing money back and forth between us. We've had coins for perhaps 2700 years. Before that, we passed lumps of valuable metal back and forth, perhaps going back another millennium or so. I don't know when we started keeping money simply as figures in a ledger, not backed up by actual coins or notes held SOMEWHERE... not long ago, I suspect.
The crypto-currencies are a logical extension of "figures in a ledger", but they are very different, a new breed... as email is "different" from mail. I wonder how long it will be before they are deemed "every day" and "unremarkable"?
I hope you were able to make sense of what I was trying to say? And that it actually bears some relation to how crypto-currencies actually work! I can't promise that it does! And of course, I didn't begin to look at many aspects of crypto-currencies. But until you understand what is in the block chain, understanding the container is fairly moot, don't you think?
I wrote the above some time before April 2018. If you visited this page previously, thank you for coming back! Today... some new stuff. (There have only been minor tidies in what is above here.)
The blockchain is a computer "thing" which "holds stuff".
Although blockchains are famous for holding the records for Bitcoin and many (most?) other crypto-currencies, they can hold just about anything that you can turn into numbers... in other words, just about anything. (The document you are reading is "just numbers" to your computer.)
The Clever Bit about blockchains is that they are "secure". Once something is in a blockchain, it is pretty safe. Safe from being lost. Safe from being tampered with. You could set up a blockchain to keep track of every Tweet a single celebrity ever posted. Each would have a datestamp. That record of Tweets posted could never be lost (by mistake) or destroyed (by malice or perfidy). It could never be tampered with. (Anyone reading any Tweet in the record, as stored in the blockchain, could rely on the knowledge that unless someone created fake news when they added that Tweet to the blockchain (preventing that would be a whole OTHER challenge), then that Tweet was actually sent, as shown, when stated by the datestamp.)
Pretty cool! This new "thing", this invention, this technology could one day be remembered as being as important at Gutenberg's printing press. What other system currently exists to make records so reliable? Reliable in that they can't be lost by fire, flood or foolishness. Reliable in that what they say can't be tampered with.
"All" the Bitcoin blockchain is: It is "just" a complete list of who gave what to whom. Going back to the beginning of bitcoin. Stand by for an explanation of what "The System" is.
You'll see that I refer to "boxes". Those are the boxes I discussed in the first part of this... every box has a password. If you have the password for a box, you can cause Bitcoins (money) to go FROM it. You send them TO another box. You say which box by giving the box number. You can send Bitcoins TO any box. But you can only take them FROM a box to which you have the password.
So... this is what was in the Bitcoin blockchain early on. (BTC means "Bitcoin")
From TheSystem to Box123: BTC 1.0 From Box123 to Box456: BTC 0.6 From Box123 to Box789: BTC 0.3 From Box456 to Box789: BTC 0.1 From TheSystem to Box789: BTC 1.0
Whew! And that was after just the first transactions!
After the above, if I've got my figures right (please contact me, complain, cite FEA/money/CrypCurr.htm, if not!) then the boxes will "hold" the following amounts...
Box 123 BTC 0.1 Box 456 BTC 0.5 Box 789 BTC 1.4
STRANGE AS IT SEEMS, IMPOSSIBLE AS IT SEEMS...
I firmly believe that the above illustrates a fundamental element of how crypto-currencies work. All transactions, back to the birth of the currency, are stored in the blockchain for that currency.
Which is impossible. Because that would be a system that would eventually break down, because there wouldn't be room on all the hard drives on the planet to store all of the transactions!
But I still, after hours of study, believe that the above, or something very like it, is at the core of how crypto-currencies work.
The "back to the birth of the currency" may be the key to "fixing" "the problem". There may be a mechanism for saying something like this:
"On (say) 1 Jan 18, these were the existing boxes, and in them they held the following..."
If there's a way to do that... a way immune to fraud... then you can "throw away" the earlier transactions, once you've done the "On 1 January 2018" "new starting point".
Even then, there's a difficulty: Can it really be true, that if I have the password to Box123, and I say "send BTC 0.1 to Box 456", the system has to "work out" what's in box 456 by going back through all the previous ins and outs for that box? But, if it doesn't then the system has to keep not only all the transactions, which, as I said, I'm pretty sure it does, then it ALSO has to keep a table of current balances! Yikes! Fine for the accounts of one bank in a small town. But for a whole currency? (If you can swallow that, there's something else I haven't mentioned before now: Part of the reason that it is very, very unlikely that the Bitcoin blockchain will ever be lost is that it keeps multiple copies of itself in the cloud. Keeping one copy of all those records wasn't enough to manage?)
So. Food for thought. It has been fun for me, personally, leaving aside "talking to you", to get this far. Clearly I am not all the way "there" yet. But when are we, ever, with anything non-trivial.
In the discussion above, there were a few mentions of "the system". In particular, the Bitcoins which flowed from box to box originated not from a pre-existing box balance, but from "the system".
I suppose you could almost call the crypto-currencies a form of AI. A "program" is running, on the internet, and "doing things". It is a distributed, multiprocessor system, with no single node having overall authority.
In simple terms, there is "the blockchain". This is an ever growing (can we say "not scaleable"?) "file". And there are multiple copies of that file.
And there are multiple computers out there watching various copies of "the file"... well, the file as it exists at the moment.
They are watching to be sure that all the separate copies are truly copies... that they agree with one another.
If a rogue appears, a "copy" that differs form the others, it is zapped. (Or at least put on a "don't pay any attention to this copy" list. Something like that!) (A rogue copy might arise if someone tried to "cook the books", change the number of Bitcoins in one of their boxes by illicit means, for instance. Or even one might simply arise due to innocent, "these things happen" data corruption.)
So the (many copies of) "the blockchain" remain "true". (This is part of the reason the system is seen as being robust).
Now... factor in the fact that the chain is always growing.
But, at least, it is a CHAIN: Things get added on at the end. Simplifies stuff greatly.
Now, another ingredient: There are clever mathematical tricks, "checksums on steroids", if you want to call them that, and if you know what a checksum is. (I'll cover that in a moment.) These tricks make it fairly easy (for a rocket scientist!) to make something "tamper proof". Yes, you can tamper with what's in the blockchain... but not without your tampering being noticed, that copy of the blockchain being noticed as rogue... and thereafter zapped or ignored. So... these tricks mean that you can trust the information in the blockchain... be it the blockchain which "is" the "Bank of Bitcoin", or a blockchain holding any other precious information.
I'll come back to that in a moment, but first a quick aside on checksums:
You're heard of ISBNs? They give almost every edition of any modern book an internationally agreed and unique ID number. Let's say that we only had to ID up to 9999 books. We could give each a four digit number, but, if we copied the ISBN people, we would give it at least 5. The extra digit(s) would be used for a checksum.
There would be a rule which would convert the first four digits of the book's ID into a further number. Only one number would be right for a give basic four digits, the digits which would identify the book by themselves.
Here's the reason for the checksum: Let's say that the right checksum for "1234" is "8".
In any complex system... Amazon's retail operation, say?... if you asked for "Book 12348", you would get your book. If you asked for "Book 12347", you'd get a message saying, sorry... we don't think that's actually the right number for any book.
Without checksums, you would simply ask for "Book 1234". But you might make a typo. You might ask for "Book 1243". And there probably is a book with that ID... just not the book you wanted. So... as long as the system we're putting numbers into checks that the ID-base-number+checksum entered is a combination which makes sense, i.e. the checksum you entered is the number that should arise from that ID-base-number, then if you do make a typo... even just a transposition of digits, the system should let you know there's something wrong.
So... that's a sketch of the point of checksums. Back to blockchains...
There's a checksum-like thing called a digital signature.
Blockchains use them to check that the data isn't being messed with. They use them a bit like high security CCTV camera systems... there's a "camera A" watching "camera B", which in turn is watching camera A. If you try to take out either one, you get caught by the fact that the other one sees you doing it.
On top of all this "only a geek could love it" computery cleverness, there's a neat bit of human engineering.
If you're really thinking, by now it will have occurred to you to wonder...
Okay... I can sort of see how this works. But.
It seems that a lot of computer and web-service time is going to be needed. Who's going to pay for that? Why would people help with the running of this gigantic "thing"?
And here's the answer: If you set a computer to work, checking the digital signatures, keeping the multiple copies of the chain complete, and up to date, and accessible, you get paid!. Paid in Bitcoin!
All that "Bitcoin mining" you hear about? That's computers churning away at the tasks described above... plus one other.
Remember the digital signatures? ("Checksums"). Each new block added to the chain has one. And in the preceding chain there was a "thing" to go with it. Call them a "lock" and a "key". If the key fits the lock, all is well. And it is very, very hard to "pick the lock" or "forge a key". And quite simple to see if a particular key fits a particular lock. So checking (and re-checking) that all is well, that all the keys fit all the locks, is very do-able.
But for the system to continue, new "key-lock" pairs are constantly needed. Finding a valid, now "key-lock" pair is very hard indeed. Takes a LOT of computing. THAT's why you get paid for finding one. And the system is set up so that while you are trying to find a new "key-lock" pair, you are also doing the things that make "the system" work.
So... some bits that were mysteries a little more clear, I hope?
The above isn't perfect. But maybe it will help you make progress. I've enjoyed trying to put my partial understanding into words, as it has taken my own grasp of it all forward!
Let me return for a moment to the pairs of numbers I've called "key-lock" pairs.
Remember: It is important that these be hard to find, but easy to test for "correctness".
Here are some "key-lock pairs" that wouldn't be too hard to find, as long as you keep the numbers small. Make them big, and life becomes difficult. (And I'm missing something here, too. Sorry. But the following is "along the lines" of something that actually does come into one system of doing a digital signature...
107 109 113 127 181 191 193 197 19367 20819 21809 25019
In each column, the last number is the result of multiplying the previous two together. 107 and 181 are the only numbers you can multiply together and get 19367. (Other than 1 x 19367, if you want to be obsessive!)
It is quite easy to confirm that the factors (107 and 181) do equal 19367, but very hard (very, very hard, if you work with bigger numbers) to figure out what the two factors of 19367 are.
As I say... I'm missing something, because I can't quite see which TWO things you can reveal without revealing too much. Or maybe it is that "Camera A watches camera B" thing that makes this "work". But I do "know" that this is something like an essential element of the heart of why the blockchain system works.
I'll try again to convey something I've just tried to say.
My example of sets of numbers where two multiply to create the third are an example of the sort of thing that is used with digital signatures. They are quite easy to do one way (multiplying the two factors to get the product) and hard to do the other way (starting with just the product, and working out the factors).
PART of the reason Bitcoin works, one element in the big picture, is that people have a reason to help provide the computer time and web services: They're doing the "hard part"... finding the equivalent of the factors of numbers that only have two factors. So that those things can be used to "lock down" the blockchain, protect it from villains and accidents. The reason is: They will be paid. In Bitcoin... which "costs" the system nothing, as long as the new Bitcoins are not doled out too freely.
But this brings us to another "does the Emperor have any clothes?" question...
At the moment, it has been stated that after a certain number of Bitcoins have been created, there will be no more. And why would anyone provide computer time or web-services after that happens? (Hummm... maybe having a "purse" (a way to get into "boxes" for which you have the password) entails allowing your machine to be used for some of the system's needs? A bit like participating in something like Bit-torrent? Will people be willing to spare the cycles/ broadband traffic/ disk space? (If you are public minded, consider helping the distributed processing projects of Boinc, especially the World Community Grid projects there. I've had the software on many computers, for years. No (lasting) regrets. Years ago, once in a while, the settings would go awry, and my computer would be sluggish, because Boinc wasn't going to sleep when I wanted to use my computer! But that probably doesn't happen now. Or if it does, it is fixable, now that you know what avenues to explore!))
On a less fancy level, you can also do good work on collaborative projects at Zooniverse and Distributed Proofreaders.
When, from the information most of this page was about, you've hacked the Bitcoin system, and are anonymously fantastically wealthy, you'll need things to occupy your time! Boinc, etc, should suffice.
At least this instance of "living in interesting times" isn't, if you haven't been burned by joining the rabid buying and selling, isn't a curse!
If you've read this far, the work I've done on this must have intrigued you, at least? A Facebook "like", or Google+ recommendation would be very welcome. If you want to send me a Bitcoin, that would be acceptable, too... but I won't hold my breath! (No need to send me a few shatoshi... I haven't got a Bitcoin purse, have no inclination to obtain one.)
Search across all my sites with the Google search button at the top of the page the link will take you to.
Search just this site without using forms,
Or... again to search just this site, use...
The search engine merely looks for the words you type, so....
*! Spell them properly !*
Don't bother with "How do I get rich?" That will merely return pages with "how", "do", "I", "get" and "rich".
I have other sites. My Google custom search button will include things from them....
One of my SheepdogGuides pages.
My site at Arunet.
--Click here to visit editor's freeware, shareware page.--
This page's editor, Tom Boyd, will be pleased if you get in touch by email.
Page tested for compliance with INDUSTRY (not MS-only) standards, using the free, publicly accessible validator at validator.w3.org. Mostly passes. There were two "unknown attributes" in Google+ button code, two further "wrong" things in the Google Translate code. Sigh.