Skip to content

Base chain

Introduced in 2009 by the pseudonymous Satoshi Nakamoto, Bitcoin is a decentralized digital currency that emphasizes security and relies on a peer-to-peer network to facilitate transactions. The technology underpinning Bitcoin is the blockchain, a distributed ledger that records all transactions in a highly secure and transparent manner. Miners use their computational power to validate and process transactions, earning newly minted bitcoins as a reward. As the first and most prominent blockchain, Bitcoin has paved the way for numerous other digital currencies and applications, emphasizing the importance of secure, decentralized systems that challenge traditional, centralized models.

Resources

Network and Protocol

The Bitcoin network is a decentralized and distributed system built on a blockchain, which ensures security, transparency, and resilience. It operates based on a set of rules that govern the network's operation and fosters an environment where users can explore, contribute, and benefit from its secure foundation. Key aspects of the Bitcoin network and protocol include:

  • Cryptography: Employs public-key cryptography to secure transactions and protect user identities, allowing only the private key holder to authorize transactions while the public key is used for verification.

  • Consensus Mechanism: Utilizes Proof of Work (PoW) to validate transactions and maintain network security. This resource-intensive process discourages malicious attacks, as altering the blockchain would require immense computational power and financial resources.

  • Nodes: Computers that participate in the Bitcoin network, storing and validating the entire blockchain. There are different types of nodes, such as full nodes and lightweight (SPV) nodes, each with varying levels of participation and responsibility within the network.

  • Blockchain: A public, distributed ledger that records all Bitcoin transactions in a series of interconnected blocks. Each block contains transaction data, a timestamp, and a reference to the previous block via its hash, ensuring data integrity and auditability.

  • Miners: Specialized nodes that perform Proof of Work (PoW) to validate transactions and add them to the blockchain. They compete to solve complex mathematical problems, and the first miner to solve the problem gets to add a new block to the blockchain, receiving new bitcoins as a reward.

  • Transactions and Transaction Structure: Transactions are the transfer of bitcoins between users, represented by inputs and outputs. Inputs reference previously received bitcoins, and outputs determine the new recipients and the amount of bitcoins being transferred. Transactions are cryptographically signed using private keys, ensuring security and authenticity.

  • Peer-to-Peer (P2P) Communication: The Bitcoin network uses a P2P protocol to enable nodes to communicate and share transaction data and blockchain updates without relying on a central server or authority.

sequenceDiagram
    autonumber
    User->>Node: Broadcast transaction
    Node->>Miner: Relay transaction
    Miner->>Miner: Mine new block
    Miner->>Node: Broadcast new block
    Node->>Node: Verify block
    Note over Node: Valid block
    Node->>Blockchain: Add new block to local copy

Nodes

In the realm of the Bitcoin network, nodes play a crucial role in maintaining its decentralized nature and ensuring the security and integrity of the entire blockchain. These nodes, the lifeblood of the network, are computers that work tirelessly to store and validate the entire blockchain.

There are two distinct types: full nodes and lightweight (SPV) nodes. Each has its own unique set of responsibilities and levels of participation within the network. As far as this project is concerned we will only be dealing with full nodes.

  • Full nodes: are the guardians of the Bitcoin network, storing a complete copy of the blockchain and enforcing the consensus rules. By verifying and validating transactions and blocks, these nodes ensure that no nefarious activity slips through the cracks. Full nodes also serve as relay points for transactions, helping propagate them across the network. While running a full node requires more storage and computational resources, it offers the highest level of security and autonomy.

  • Lightweight (SPV) nodes, on the other hand, are the nimble participants of the Bitcoin network. They store only a subset of the blockchain, relying on full nodes to provide them with the necessary data to validate transactions. This streamlined approach allows lightweight nodes to operate with lower resource requirements, making them more accessible to a wider range of users. However, this convenience comes at the cost of reduced security and a greater reliance on full nodes for information.

Clients

Bitcoin clients are software implementations that allow users to connect to and interact with the Bitcoin network. These clients implement the Bitcoin protocol, enabling users to run nodes, send transactions, and mine new blocks. Clients are developed using different programming languages and offer various features. Some of the most popular Bitcoin clients include:

  • Bitcoin Core: Bitcoin Core is the reference implementation of the Bitcoin protocol, developed using the C++ programming language. It is the most widely used Bitcoin client and is maintained by the Bitcoin Core development team. Bitcoin Core serves as the backbone of the Bitcoin network, ensuring its security and stability. It is a full node client, which means it stores and validates the entire blockchain.

  • Bitcoin Knots: Bitcoin Knots is a derivative of Bitcoin Core, developed using the C++ programming language. It includes additional features and optimizations compared to Bitcoin Core, such as support for the Compact Blocks protocol and improvements in block validation. Bitcoin Knots is maintained by its development team and is compatible with the Bitcoin network.

  • btcd: btcd is a full node Bitcoin client developed using the Go programming language. It is maintained by the btcsuite developers and is designed to be an alternative to Bitcoin Core. btcd focuses on modularity and clean code, making it a popular choice for developers who prefer working with Go.

  • libbitcoin: libbitcoin is a set of cross-platform C++ libraries designed for building Bitcoin applications. It includes a full node implementation, as well as tools for working with the Bitcoin protocol at a lower level. libbitcoin is maintained by its development team and is known for its focus on performance, scalability, and security.

These Bitcoin clients contribute to the decentralization of the Bitcoin network by providing multiple implementations of the protocol. Users can choose a client based on their specific needs, programming language preferences, and desired features.

Infrastructure-based Governance

Nodes play a critical role in determining which version of the code is adopted within a blockchain network such as Bitcoin. By choosing which software version to run, node operators engage in the decentralized governance process that directs the network's development and evolution.

When updates or protocol changes arise, nodes must decide whether to support the proposed changes, leading to either a soft or hard fork. Soft forks involve backward-compatible changes, allowing nodes running older software to continue recognizing and validating new blocks. In these cases, nodes contribute to a seamless transition and maintain network stability by upgrading to the latest software version.

Hard forks, on the other hand, result in a permanent divergence of the blockchain, creating two incompatible chains. Nodes must then choose which chain to support, effectively determining the outcome of the fork. The chain with the majority of nodes and mining power backing it typically becomes the dominant chain, while the other may persist as a separate, smaller network.

Nodes serve as the foundation of the blockchain network, contributing to its security, stability, and overall consensus. Their collective decisions directly influence the adoption of specific code versions, ensuring the network remains decentralized and evolves to best serve its users. By participating in this decentralized governance process, nodes enable the community to guide the network's development and shape its future direction.

Operators

Bitcoin node operators in the Bitcoin network have several key responsibilities, with the most important duties listed below:

  • Choosing the software version: Node operators decide which version of the software to run, contributing to the decentralized governance process and shaping the network's growth and progress. For instance, they may decide whether to support a proposed soft fork by upgrading their node's software to the latest version.

  • Maintaining network connectivity: Operators ensure their nodes remain online and fully synchronized with the network, contributing to its security, stability, and overall consensus. To achieve this, they regularly check the node's internet connection and uptime to minimize downtime and maintain synchronization with the blockchain.

  • Staying updated on protocol changes: Node operators must keep up-to-date with proposed updates or modifications, deciding whether to support these changes, which in turn affects the adoption of soft or hard forks. Part of this responsibility involves actively participating in community discussions and forums to stay informed about potential protocol changes and the implications of supporting or opposing them.

  • Monitoring and maintaining hardware and software: Regular monitoring and maintenance of node hardware and software are essential to minimize downtime and ensure optimal performance. This requires periodically updating the node's software with the latest security patches and making sure the hardware is running efficiently to maintain the node's optimal performance.

By fulfilling these responsibilities, node operators serve as the backbone of the Bitcoin network, fostering its decentralized nature and acting as stewards of the blockchain to ensure its continued success.