The Bitcoin network is often talked about but never really broken down into it’s smaller parts. The network itself is a stage with multiple pieces working in tandem that make up the larger network as a whole. This article will give the reader a cursory overview of these individual pieces, as well as how they interact together.
Bitcoin Network – Layer 1
The base layer 1 of the bitcoin network refers to nodes, miners, clients, wallets, and the blockchain. This is a settlement layer for payments and are permanently etched into the blockchain for all eternity. Anyone can interact with layer 1 by broadcasting their p2p payments to each other, but you must wait for confirmations to ensure there won’t be a double-spend on the transfer.
Bitcoin nodes are the backbone of the bitcoin network, which hold and maintain the entire blockchain. They communicate with one another about new blocks that are to be added to the end of the chain, and are the enforcers based on predefined rules as to whether the block is valid or not.
Bitcoin miners – while also bitcoin nodes – perform the actual mathematical calculations of attempting to find a new block. You read about these the most in the news, as they use a lot of electricity, and are the actual pieces of the network that can “make you money”. The use of electricity is a trade-off and ensures the security of the blockchain. Proof of work is utilized in that it took 10 minutes worth of expending electricity to discover a new block.
The block consists of selected transactions from a pool of transactions that people have broadcast to the bitcoin network. Miners choose which transactions to include in their discovered block based on the fees associated with the broadcasted payment.
Clients and Wallets
Individual users of bitcoin have software that allows them to receive and send bitcoin payments. This software manages their wallet, which is just a collection of private keys. Some wallets require the entire bitcoin blockchain to be downloaded in order to send bitcoin, while others like SPV or light wallets do not. Here’s a list of some of them and what they are:
- Bitcoin Core – this is a client maintained by the core bitcoin team, and requires the full blockchain to send payments
- Electrum – this is an SPV wallet that relies on seed words to backup your wallet. This does not require the full blockchain to send payments.
- Ledger Nano S and Trezor – these are hardware wallets that create a very secure environment for your keys. You use the device to sign transactions that will be broadcast to the bitcoin network, and the private key never touches the computer. You can use this on public computers or on compromised machines housing keyloggers with no fear that your coins will be stolen.
The bitcoin blockchain consists of every single transaction since Bitcoin’s inception in 2009. Each individual block consists of either 0 kb in size or 1024 kb (1 megabyte) in size. The number of transactions that can be stored in a block depends on the type of transaction sent and miner’s desire to include a transaction in the block. Since each transaction includes some fees, miners are incentivized to include as many transactions as possible that will fit.
Bitcoin Network – Layer 2
A recent development in the bitcoin space is the Lightning Network. This is a layer on top of layer 1, much like PayPal or Visa is a layer on top of the banking system. Layer 2’s goal is to increase the transactions per second between two parties transferring value while still keeping security, anti-censorship, and decentralization as cornerstones of the protocol.
Since the base layer’s blockchain is 1 megabyte maximum in size for every block, there’s an obvious limit as to the number of transactions per second that can be processed by the bitcoin network. To get around this without increasing the blocksize to infinity (which would be impossible for people to download large blocks before the next block would be found, thereby leading to network congestion), layer 2 was built. Read more about what the lightning network is and how it relates to solving the blocksize problem in this article.