Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save luna-1999/215a92552540bac9151f2bb0cd2cb738 to your computer and use it in GitHub Desktop.
Save luna-1999/215a92552540bac9151f2bb0cd2cb738 to your computer and use it in GitHub Desktop.
Explaining the Bitcoin software
Q: Bitcoin has two aspects to it that make unique - software and economics.
Can you explain a bit about the software to us folks that can’t code?
A: Bitcoin itself can best be described as a protocol: a set of very specific rules that participants
agree to. We are used to thinking about social protocols, for example sending a gift on a special
occasion and then receiving a thank you card. Bitcoin’s protocol is automated with software. Each
participant runs their software, called a node, which connects to other nodes over the Internet.
The Bitcoin nodes verify that every transaction sending and receiving bitcoins is following the
protocol rules, and rejecting the ones that don’t. Secure timestamps determine the order in which
transactions are recorded, to prevent participants from spending the same bitcoins twice.
This timestamping function is provided to the network by specialized participants called “miners”,
who use hardware performing computationally intensive “proof of work”.
It’s important to note that while the media focuses on the energy consumption of miners,
the node software can be run on normal computers and consumes less electricity than
your web browser. This enables the Bitcoin network to be highly decentralized: the protocol
rules are jointly enforced (and thus determined) by a large community of people around the world.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment