Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

At the highest level, Bitcoin is relatively easy to understand. There's a lot of additional detail in the communications algorithm and the programmable extensibility embedded in transactions (for instance, how multi-party/escrow/conditional transactions work). But the concept of a proof-of-work-based blockchain can be explained rather briefly.

As a miner, you have access to a pile of transactions that people want to resolve. Take enough of those transactions to fill up a block, based on some rules you want to follow (e.g. prioritize transactions that pay a transaction fee, which you claim; prioritize transactions that have been waiting longer). Add a transaction that gives you the current consensus mining fee out of "thin air"; that's the only place new coins get injected into the system. Include a hash of the previous block; that's what makes it a block chain. Then, via brute force computation, come up with some additional data appended to the transactions such that the double-sha256 hash of the data block (the sha256 of a sha256 hash of the block) is smaller than a certain upper bound (determined by the current consensus "difficulty"). Since you can assume the hash is evenly distributed across all possible values, to compute a hash smaller than a certain value requires brute-forcing enough hashes for one to land in that range. This is equivalent to "find a hash that starts with a certain number of 0 bits", but "less than a certain value" allows increasing the difficulty without doubling it.

Once you have a new block, tell other miners about it. Assuming you've followed the "consensus" rules for difficulty, mining fee, transaction fees, and similar, then the other miners will accept your block, and immediately start trying to mine a new block starting from yours rather than starting from the previous block. So, at that point, the consensus block chain includes your block, which means all the transactions you included took place.

The rest of the complexity comes in with questions like "how do you advertise a transaction you want to the miners", "how do miners communicate with each other", "how does the consensus change over time", and "how can existing clients handle new kinds of transactions that they don't natively understand".



Do you think this 'simple' explanation would be adequate for someone without a CS related background strong enough to understand hashing or the difficulty of reversing crypto hashing? What about explaining why people can't fake transactions?


Does it need to be? Most people don't know anything about the underpinnings of the bank and credit card systems. I talk about btc as pseudonymous digital cash first (and the tradeoffs of consumer/producer benefits that entails), mention its capability for more (escrow, 'programmable money', store of value, signatures...) next, and give my best go at explaining what I know of the more complicated details of the implementation only to people really interested. It's fun to try metaphors (and there are a lot, even just around asymmetric encryption) for those without the tech background but I don't think it's very fruitful.


I mean no offense by this, but I'm in a similar boat to OP in terms of not fully "getting" the tech of Bitcoin (despite being a very technical person) and this explanation did not clear up anything for me. The density of technologies and keywords and buzzwords every time someone tries to "simply" explain Bitcoin is mind boggling.


People want to send money to others, so they go to their nearest accountant and ask the latter to write their transaction down, so it's formalized. All these accountants are in the same room and each one has a bunch of transactions to write down, but they need to figure out how to write them down a specific way.

When an accountant figures out how to write down the transactions he has at the moment, he yells "HA! I got it!" and the transactions to everyone else in the room, who goes "ugh, damnit", the accountant collects the fee from the people whose transactions he wrote down, and the cycle begins anew.


By sending BTC to other addresses,including a small fee, you broadcast transactions across the Bitcoin network, nodes collect these transactions in their mempool.

Every 10 minutes a miner finds the answer to a problem, and collects as many high fee paying transactions that will fit into a block of 1mb, awards himself 25btc and collects the fees. Miner broadcasts this block. Other nodes receive it,verify its validity and relay it.

Work then begins on finding the next block by miners.


To be fair, you covered only the blockchain construction part of Bitcoin. There's also the transaction part - keys, addresses, scripts, etc. Of course these also have an equally simple high-level explanation.


Given that the article was about a competing blockchain technology, the blockchain itself seemed like the main foundation to start with.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: