Recap
Last week, we did a quick round of Blockchain 1.0 concepts (consensus, decentralization, proof of work etc). The epitome of Blockchain 1.0 is Bitcoin where the focus is on movement of value across the Blockchain.
We then introduced Ethereum which is the next level Blockchain or Blockchain 2.0. Now, what makes Ethereum the next level of Blockchain?
Initial Concepts - Ethereum
Before we get into Ethereum, let us delve into a few terms for better understanding Ethereum. These are :
- Virtual Machine
- State Transition
- Turing Completeness
Let's dive in !!
Virtual Machine
Let us take a scenario where we own a Mac or Linux laptop but want to use Microsoft excel. There is a Mac version of excel but it is not as complete as the Windows version & we want to use the Windows version. There is no way to download the Windows version of excel to Mac or Linux systems as it will be incompatible & hence will not work. We need Windows operating system (Win 10, Win 11 etc) to run windows version of excel.
So, can we run Windows operating system in a Mac or Linux machine? Yes and this is made possible through a process called Virtualization.
What is Virtualization? Let us dive deeper !! (Source : here)
1. Virtualization uses software to create an abstraction layer over computer hardware that allows the hardware elements of a single computer - processors, memory, storage & more - to be divided into multiple virtual computers, or called Virtual Machines (VMs).
2. Each Virtual Machine runs its own operating system (OS) & behaves like an independent computer, even though it is running on just a portion of the actual underlying computer hardware.
Let us visualize the above where the physical machine is Linux based (Ubuntu) and the virtual machines are Windows, Mac OS or Arch Linux (another Linux distribution) :
Thus we understand that virtualization is like creating multiple computers inside one physical machine. Now how is this achieved?
This is achieved through software called Hypervisors which enable virtualization by
- creating an interface with the physical machine for resources which means the software connects with the physical machine for CPU, power, connections etc.
- creating a layer between the virtual machine & the physical machine so that the resources usage does not overlap between the virtual machine & physical machine.
The below visual makes it more clear :
This means we can run any system inside any machine irrespective of the operating system meaning we can run a windows system inside a Mac using a hypervisor or mac inside windows or Linux inside any of the machines.
Even though a Virtual machine feels like a physical machine, it is actually all code & erases once you shut down your physical machine. That is why it is called Virtual machine.
As a side, it is this concept of virtualization that is used in Cloud Computing where the service providers use their existing physical hardware to provide multiple virtual machines to different users and the users pay for this based on their usage of computing resources.
State Transition
As accountants, we are all too familiar with a balance sheet. For the benefit of others,
A Balance sheet shows a business's
- Assets - What the business owns or is owed
- Liabilities - What the business owes to third parties
- Shareholders equity - Amounts invested by owners, profits generated & reinvested into the business.
It provides a snapshot of the business at a particular point in time like
- What assets it owns & what others owe the business
- What it owes to others &
- What has been invested in it.
In other words, it provides the state of the business at that point in time.
Now, what can cause a change in this state? The answer is .. Any transaction.
Let us visualize a simple balance sheet (say, Balance Sheet 1) as below :
The company currently has cash and share capital invested by the shareholders.
Now, the company took some loan (say 500) to buy a car worth 500
Debit Car 500
Credit Loan 500
Now, the balance sheet is as below (say, Balance Sheet 2):
Thus, the state of the company has transitioned from Balance Sheet - 1 to Balance Sheet 2.
Turing Completeness
This is deeply technical but let us explore it at a high level. The word "Turing" is named after the computer scientist "Alan Turing".
Alan Mathison Turing (23 June 1912 – 7 June 1954) was an English mathematician, computer scientist, logician, cryptanalyst, philosopher, and theoretical biologist. Turing was highly influential in the development of theoretical computer science, providing a formalization of the concepts of algorithm and computation with the Turing machine, which can be considered a model of a general-purpose computer.He is widely considered to be the father of theoretical computer science and artificial intelligence. (Source : wikipedia)
To explain Turing completeness in very simple terms, Alan Turing deduced that there would one day be a machine that could solve any problem. This machine was known as the Turing Machine. This hypothetical machine could solve any computational problem that could be calculated & expressed in code.
We know that software is developed using programming languages. The code is used to develop software & the same is implemented in computer devices. Software or programs are created to solve various problems. Thus, a programming language or a device (computer) is considered to be TURING COMPLETE if it can solve any problem that the Turing machine could solve.
If the device or programming language cannot do the above, then it is called TURING INCOMPLETE.
Let us take the example of a simple calculator. We can do certain calculations using a calculator but not all. Hence it is a Turing incomplete device. But if the calculator is a programmable calculator which can be programmed to do complex computations, then it is a Turing complete device.