Just checking: by show of hands, how many people here really understand what bitcoins are or how the system works, beyond knowing they're a new form of currency, cryptography is involved, and anonymity comes into play somehow?
I am just now beginning to try to research it to really understand it, because despite being a developer and having a decent understanding of public-key cryptography, I am at a total loss to understand how this system works or achieves its apparent purposes.
My impression is that it's actually quite complex, and that the press (and developer community at large) is failing to really explain it in any meaningful way to people who don't already get it. Not that this is out of the norm with tech topics, but this is very flagrant.
I think you are overstating the complexity for someone who basically understands signing, or even just hashes. Yes, it is rather clever and takes some time to wrap you head around, but the core structure of Bitcoin is certainly not beyond reach for an average software engineer. Some of the more esoteric pieces like the runtime machine.. etc not withstanding.
I haven't seen the recent crop of materials, but I grocked it watching a 60 minute or so video presentation which I think was from someone at Mozilla. Oh, here it is:
https://vimeo.com/27177893
I never said it was out of reach, I'm saying the community that already understands it isn't doing a very good job making it so that others can reach it without standing on a chair.
I'll check out the video when I have time tonight.
> The community that already understands it isn't doing a very good job making it so that others can reach it
Where I disagree is that I don't believe that all ideas/concepts can be made "easy to understand" to a general audience. Many concepts - especially those technical in nature - simply require a large amount of background knowledge to understand.
You can be the best mathematics teacher in the world, but you won't be able to (and no one expects you to) make the Riemann hypothesis widely understood to the general public. It's just not feasible. And I posit that Bitcoin (whilst maybe not as technical as the Riemann hypothesis) similarly requires a large amount of background knowledge and is not an "easy" concept to understand in 30 minutes.
The good news is that there are millions of things that people use every day that they don't understand - cars, computers, TVs - in fact, due to the specialization of knowledge, most things people encounter they do not fully understand. I don't think this is a big deal.
I wrote an academic paper on Bitcoin; now, I don't understand e.g. the detailed cryptanalysis of SHA256, which it uses. But I've a pretty solid understanding of how, given the availability of such hashing functions, and assuming they live up to their promises, you build a distributed ledger from them, and what some of the properties of that ledger might be. Not every implementation detail, but the high level principles.
I reckon most folk with degree or grad level CS education (or equivalent) would get to around that point in a few weeks (full-time?) study, probably less. (Given we can read the Bitcoin paper, nice explanations of it etc - not if we had to invent it ourselves.) I even think I've explained the main principles successfully to technical friends over the course of a few hours.
Yes, you don't just read a blog and understand how the whole system works, but thats true of many systems. Compare understanding Paxos (I'd say this is harder?), or DynamoDB, etc.
IMO there's nothing especially mysterious about Bitcoin here. Its clever, and its too complicated to explain in a paragraph in a media article, but its not an order of magnitude more complex than comparable distributed systems.
The paper introducing Bitcoin (https://bitcoin.org/bitcoin.pdf) is well-written and easy to read. Understanding _how_ it works should be simple.
On the other hand, understanding _why_ it works is difficult, as it requires understanding the hard math underlying the system. In fact, nobody knows _why_ it works, because, AFAIK, we do not know whether the hash functions used have the necessary properties (in fact, it is worse: we do not even know whether one-way functions exist, let alone that we can point to one)
While the paper is certainly well-written and reader-friendly, I politely disagree that understanding how it works is simple. Even understanding digital signatures is hardly simple, and that's merely a small subcomponent of the bitcoin system.
Moreover, there's not much point in saying things like that to people who are trying to learn, as it adds nothing except to suggest that if someone doesn't understand this easily just by reading that paper, they might be a bit less capable than some of the rest of us.
The white paper doesn't explain a lot of the very complicated additional bits needed to build the Bitcoin system that were already well documented elsewhere- For instance, the node discovery algorithm.
I understood the important obvious parts of Bitcoin at one point, but haven't cared enough to retain that knowledge perfectly well. But I gather the key plot points of this fiasco revolve entirely around simple public-key cryptography- underneath all this mess about genesis blocks and transaction hashes, the issue is that Craig hasn't shown us he can encrypt messages with any of Satoshi's special private keys. (Correct me if I'm missing something there.) That, along with a two-sentence "public-key cryptography is magic that lets you..." primer, could be explained to any interested highschool graduate in a short blog post... by someone who cared more about being understood than generating ad revenue, at least.
You have a better technical background than me, so take this recommendation with a grain of salt, but I've found this textbook very useful: https://freedom-to-tinker.com/blog/randomwalker/the-princeto...
I've only read the first few chapters, but it seems to avoid the obvious traps of inaccessibility and misleading simplification.
When I finally came to the realisation about what mining is actually doing and why it's necessary to reward miners (it actually keeps the entire network secure): mind = blown.
I second you on that one. I attended the Consesus hackathon over the weekend, which is like the culmination of the blockchain community before the summit started today. I asked a whole bunch of the lot to explain bitcoin and blockchain in simple terms. All I got were more and more big words. It seems the language is very foreign, maybe it's just me.
I think that lack of simple explanation is what has slowed down innovation around blockchain. A lot of developers simply don't understand fully what they are dealing with. The presentations were mediocre at best and the recurrent question was "How is this better than what people currently use?" Unfortunately, the answer was mostly, "It uses blockchain." I doubt that suffices.
Sorry to hear about your somewhat negative experience at the hackathon. I was there hoping to explain bitcoin things to folks, I co-hosted the bitcoin 101 session on Saturday but maybe you missed that? Catch me at the event and I can answer whatever questions.
"Where I'm going" is that bitcoin keeps coming up in the news in various forms like this thread, yet I don't think most people really understand what it is.
You understand the bitcoin software and how the system is built and functions, end to end? Cool, I'm jealous.
You think most other developers share that understanding? Given that in my experience most developers have only a so-so understanding of basic cryptography to begin with, I find that very, very dubious.
I just read the original whitepaper and it isn't exactly trivial. Statements of the form "Because we do X in the implementation, bitcoin has property Y" are where it takes a fairly strong knowledge to truly follow along with the logic. The implications of the methodologies are not obvious, or else this whitepaper (and by extension the identity of Nakamoto) wouldn't be quite so important.
If you want to understand Bitcoin right down to the data structure, network packets and encyption algorithms, check out these articles, including Bitcoin mining with pencil and paper. (I'm hesitant to tout my own articles, but I think they are what you're looking for.)
'end to end' is probably an unattainable goal. I'd go for understanding it at some level given some axioms, and gradually dig in to the axioms.
I think it's difficult to create an all encompassing post for that reason. It's a bit like trying to describe how any application protocol works - can you assume knowledge of TCP/IP? Do you just black-box it? etc.
My contact details are in my profile and I'm happy to lend a hand if you think that might be useful.
I am just now beginning to try to research it to really understand it, because despite being a developer and having a decent understanding of public-key cryptography, I am at a total loss to understand how this system works or achieves its apparent purposes.
My impression is that it's actually quite complex, and that the press (and developer community at large) is failing to really explain it in any meaningful way to people who don't already get it. Not that this is out of the norm with tech topics, but this is very flagrant.