Are you an application developer, a blockchain developer, or someone with little or no programming experience experiencing trepidation about the perceived nuances or difficulties around ‘blockchain’ development?
Our introductory course to Bitcoin Development course will start you off on a firm foundation while demonstrating blockchain development’s permission-less, low barrier to entry.
To give you an idea of what to expect from this free, certificate course, curriculum creator, Evan Freeman offers you this course preview.
Metaphors that illustrate the Bitcoin ledger’s unique properties
The beauty of the Bitcoin ledger and protocol is that it is one system, but it can be used as many different things depending on how you see it and use it.
It can be abstracted as a database, a Turing tape, an accounting book, a system log etc. All of these abstractions allow for using the network and ledger to build systems that need such abstractions. Let us look at some of these abstractions.
The Bitcoin ledger as an infinite database
When the Bitcoin ledger is used for storing data, it can be used indefinitely as long as you pay the small one-time network fee for the transactions. In future, specialised nodes will work as archiving nodes for the data stored and provide the data retention services. This means that the APIs that you build can work indefinitely as long as the Bitcoin network is functional in a way, enabling the creation of infinite APIs.
One huge benefit of Bitcoin over other databases is that the data stored is never corrupted (distributed network keeps multiple copies). If you mess up and lose records, you can always rewind and recreate the database, so it also provides excellent failsafe measures.
The Bitcoin ledger as infinite universal spreadsheet
You could also look at the universal public Bitcoin Ledger as an infinite universal spreadsheet. Since everything recorded is a transaction between two parties, it is kind of a distributed global spreadsheet available to anyone who is willing to pay the tiny amount of fee to update it and has a window to view a subset or whole of it. It can also be thought of as a global accounting book.
The Bitcoin ledger as an infinite motor
Bitcoin is cyclical. It has an approximately 10 minutes cycle which the network keeps repeating. But each cycle is unique in its own way, and its content is made up of a selective history of the human interactions that are selected and logged into Bitcoin.
We can take it a step further and think of Bitcoin as a perpetual rotating machine, an infinity motor, which (based on its algorithm) is capturing transactions by navigating in time and producing them as events.
This ‘motor’ travels through time and collects all the events (transactions) that happen through each rotation and takes an immutable snapshot (a block). The rotation logic (Bitcoin's algorithm) is deterministic and secure (powered by Proof of Work), making it the perfectly stable piece of technology to power all kinds of useful machines.
Once developers understand the abstraction of Bitcoin = motor, they can think about how to build a machine with a motor (Bitcoin).
The Bitcoin ledger as an infinite, or Turing tape
In computer science and computational theory, the idea of a Turing machine and Turing completeness of a machine is considered quite an important measure to attribute the capabilities of a certain machine. In 1930, Turing created an abstract model for a machine, hypothetical it may be, but can simulate any computer algorithm no matter how complex it is.
As Turing wrote in The Undecidable, p. 128:
It is possible to invent a single machine which can be used to compute any computable sequence. If this machine U is supplied with the tape on the beginning of which is written the string of quintuples separated by semicolons of some computing machine M, then U will compute the same sequence as M.
A graphic representation of such machine is shown below:
It consists of an infinitely long tape which acts as the memory in a typical computer, a head which can be positioned on the individual square which can read and write on the tape, one at a time (during Turing’s time, the head was imagined as a typewriter). The typewriter writes 1 or 0 on the tape one at a time and the same is for reading, which happens one at a time. The typewriter is programmed to perform the next step based on its current state and the inputs that it reads from the tape.
Turing machines were the first general purpose model of a computer and a Universal Turing machine is conceptualised as a Turing machine which can simulate any computers of past, present and future, hence having the capability to solve any computer algorithm.
The Turing machine’s halting problem
The Church-Turing thesis later proposed that any real-world computation can be translated into an equivalent computation involving a Turing machine. Typically, in a real-world scenario, this computation requires recursive functions. Languages which allow for recursive functions by looping are considered as having capability to perform any computation making them Turing complete but suffer from the well-known unresolved issue of halting problem.
The halting problem is the problem of determining, from a description of an arbitrary computer program and an input, whether the program will finish running, or continue to run forever.
Bitcoin solves this issue quite elegantly, by breaking the system into two parts, the tape and the programme managing that tape.
The second part of the Bitcoin network which acts as the typewriter in the Turing machine is Bitcoin Script language, allowing for simple recursion using the method to unroll the loops in computation by its property of having two stacks. To learn more about the Bitcoin scripting language, register for our introduction to Bitcoin Development course.
An introductory course to Bitcoin development
If you’re interested in learning more about Bitcoin development, you’re sure to benefit from the BSV Academy’s free introduction to Bitcoin development course.
Introduction to Bitcoin Development is focused on providing students with a solid understanding of the concepts and tools needed to start building applications using Bitcoin blockchain. Upon completion of this course, students will be awarded a Certificate 1.
In particular, it will focus on a series of short introductions to commonly used development tools in the space, with practical implementation assessments after each chapter.
The aim of this course is to introduce audiences to various application layer protocols or ALPs which enable reading and writing to the blockchain along with various tools and concepts which can help build real world applications using the Bitcoin blockchain as data store, repository, payment ledger or a token creation/storage and maintenance system.
To sign up for this free course, head over here.