Chapter 14. Second-Layer Applications

Let’s now build on our understanding of the primary Bitcoin system (the first layer) by looking at it as a platform for other applications, or second layers. In this chapter we will look at the features offered by Bitcoin as an application platform. We will consider the application building primitives, which form the building blocks of any blockchain application. We will look at several important applications that use these primitives, such as client-side validation, payment channels, and routed payment channels (Lightning Network).

Building Blocks (Primitives)

When operating correctly and over the long term, the Bitcoin system offers certain guarantees, which can be used as building blocks to create applications. These include:

No double-spend

The most fundamental guarantee of Bitcoin’s decentralized consensus algorithm ensures that no UTXO can be spent twice in the same valid chain of blocks.

Immutability

Once a transaction is recorded in the blockchain and sufficient work has been added with subsequent blocks, the transaction’s data becomes practically immutable. Immutability is underwritten by energy, as rewriting the blockchain requires the expenditure of energy to produce PoW. The energy required and therefore the degree of immutability increases with the amount of work committed on top of the block containing a transaction.

Neutrality

The decentralized Bitcoin network propagates valid transactions regardless of the origin of ...

Get Mastering Bitcoin, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.