The purpose of this podcast is because I want to extract a reasonable amount of knowledge from you and create content around it. So it’s not just like an interview. Many people have no idea what blockchain is all about; there is so much information out there that you often don’t know where to begin and it becomes overwhelming. So it’s always best to talk to somebody who has it defined so you can know the path to take. And there are just so many people in Web 2.0 trying to transition to Web 3.0. I’ll start with my questions. What exactly does a blockchain developer do? Like, what exactly? What is it all about?
Interesting question. I mean, I would love to go into the specifics of the kinds of systems that blockchain developers do, but I think it’s helpful to understand what blockchains are themselves? Like, why do they even exist in the first place?
So let’s start with like, what are blockchains? What problems do they solve? I think we should start with the idea of digital money. This is an idea that has been floated around, ever since the early days of the internet. You know, we have messaging on the internet, people wonder if we could send money, the same way we send messages.
Developers and other key computer scientists know that the problem with sending money as data (like as a message), you can just copy that data and send it somewhere else. Right? which violates, the basic principle of money, which is, you should not be able to double spend.
So we’ll make use of this idea of the double-spending problem associated with digital money. So there have been lots of attempts to figure out how to create this digital money. But then, the only one that has succeeded so far is Bitcoin. This is how Bitcoin works. Bitcoin uses the idea of a blockchain to prevent double-spending because this is the biggest problem with money. So Satoshi Nakamoto, whoever this person is, or whoever this group of people is, published the Bitcoin white paper on October 31, 2008, showing that by using a combination of cryptographic proofs, as well as Byzantine Fault Tolerance consensus mechanisms, we can essentially solve the double-spending problem associated with digital money.
So I said a lot of big words, let’s break them down. Cryptographic proofs, in the sense that we only allow people to spend money if they can produce digital signatures that can be used as authorization for them to spend money, essentially.
So digital signatures are not a new technology. We use them in HTTPS, as well. When your browser wants to send your credit card data to a secure server, maybe Master Card, or Visa Card, your browser will encrypt your Visa cards, details, or Master Card details using the public key of the Master Card server, right? This is the public key that is known by every browser in the world. Now by encrypting it with the Visa cards public key, we have made it such that only the visa servers can decrypt it and that process can not be brute-forced within the time-space of the Universe. Even if you start to guess all the different keys that can decrypt this message, but then the way cryptography is structured is such that it provides a guarantee that the search space for this key is longer than the time that the universe even has to exist in the first place. Using like very high mathematical computation.
We have been using HTTPS to secure our card data for almost 20 years right now and we’ve never had any issues with it. Right? Satoshi Nakamoto brought the idea of a decentralized system, where people have to authorize the transactions using a digital cryptographic signature. Now, these transactions are then put into a block. These blocks are shared across the network in a way in that everyone on the network knows, what’s everybody’s balance is – just by looking at the transactions in the block. So because we know you spent 10 tokens in a previous block, we know you no longer have those 10 tokens again to spend.
This is why they say blockchains are immutable, meaning that the history of the blocks is preserved in the protocol itself.
If I get your point clear, we have a set of blocks, each block comes with a signature that is connected to the next block,
Yes, a block contains transactions, which also contain signatures that authorize these transactions.
Okay. So what if I want to change a block, and I re-write data on a block, what happens?
So when you write data to a block or when you add a transaction to the network, that transaction will get processed by the computers on the network, they will include that transaction in a block and that transaction will get executed once that block is accepted by the network. Now, the reason why we use blocks, we use these orders or transactions is such that, because we know what transactions have been executed, we now know you no longer have those tokens, that is the idea of the blockchain, or chain of blocks that show the history of what has happened. Now, this is useful for money, right? This solves the double-spending problem because once you spend something on the network acknowledged expenses, you can’t spend it again.
But then, Vitalik Buterin, Gavin Wood, Charles Hoskinson, Anthony Di Iorio, and Joseph Lubin—the entire Ethereum team—discovered that you could also embed what is called a virtual machine on the blockchain. The virtual machine is kind of like a virtual computer. As a result, the computer does not exist as hardware but rather as simulated software. This virtual machine can execute transactions, and it is open for everybody to inspect.
Let’s look at the way bank systems work. Let’s say I want to send money to somebody through my bank. There’s no way I can confirm if the person received the money, but on the blockchain, I can confirm that the person received the money. This is all about openness and transparency and the trustlessness of the blockchain.
In the first case, I was trusting the bank to do what they said they would do, but with blockchain, I don’t need to trust anyone—everything is out there in the open. This enables a wide range of applications, all the way from decentralized lending protocols to decentralized gaming to decentralized lotteries. We don’t have to trust a singular entity. In the case of centralized lotteries here in Nigeria, we have to trust the likes of Baba Ijebu and Bet9Ja to pay out the wins. With the blockchain, we have an open protocol that we can confirm by reading the smart contract that they will do what they said they will do. It’s all about transparency.
Blockchain developers create these open protocols that remove trust from old systems and essentially create new trustless systems.
There is a lot of big terms related to blockchain technology – we have the consensus mechanism, proof of work, and proof of stake, can you break these terms down?
I said before that the nodes on the network will put your transactions into a block, but then these nodes don’t know each other, which also means that they can’t trust each other. The idea of the consensus mechanism was introduced to help the nodes trust each other and trust that the blocks that are being sent around are valid. In the case of the proof of work system, the consensus mechanism here is computation. PoW requires nodes on a network to provide evidence that they have expended computational power (i.e. work) to achieve consensus in a decentralized manner and to prevent bad actors from overtaking the network. Proof of work is used widely in cryptocurrency mining, for validating transactions and mining new token. The consensus proof for proof of work system is a random number that has to be guessed by the nodes, and that random number has to satisfy an equation before it is considered to be valid – getting this number is not so easy, to get it you need to go through rigorous CPU cycles before you finally find the number that satisfies the proof of work equation.
Once you find that number, you then include the number in your block and then you send that block out to all the nodes who don’t trust you. Once they verify that the number that you included in the block is valid, they insert it into the agreed-upon proof of work algorithm. This tells the other nodes that you’ve done a lot of computational steps to arrive at that number.
It’s kind of like algebra, if you remember algebra class, yes, you have to do a lot of computation steps to arrive at what “X” is but to verify what “X” you just substitute it back to the equation and get your answer.
That is the consensus proof of a proof of work system and it is designed such that the nodes don’t spam the network with blocks.
Spamming in the sense that if we didn’t have a consensus proof, and we just send out blocks anyhow, we could essentially have blocks that are double-spending. But then we would have to execute those blocks first to know if there’s a double-spending block. Now, by introducing this time complexity before you’re even able to produce a block, limits how fast you can broadcast double-spend blocks, which means that if you are trying to double spend, it will take you more time to double spend. Essentially we can verify your blocks first before you have the time to produce another one with the double-spent block. For the nodes to trust each other, that, they’re not being malicious in the network. There’s quite a cost attached to producing a block, there is less incentive for you to try to double spend on the network.
Is a bitcoin node the same as a Bitcoin miner?
Bitcoin node is essentially just a storage device, like a laptop or a PC with internet access, it’s that simple (nothing complex) This storage device can store the Bitcoin blockchain. These nodes relay information from users to miners. Nodes are synchronized with each other. When a node goes offline for any reason, it will download the latest data from the other nodes once it connects to the internet again. Anyone with a storage device that has enough space and is connected to the internet can run a node. A node doesn’t necessarily mine Bitcoin. All miners are nodes but not all nodes are miners.
So these miners are the ones that are going to collect transactions from the consensus nodes. When you send a transaction, you probably send it to a consensus node. That consensus node will relay those transactions to everybody it’s connected to. Some miners will be connected to those consensus nodes, but in some cases, miners might not be connected directly.
But the idea is that the message actually goes through all the nodes of the network, and eventually finds its way into the transaction pool of a miner node. What this miner node is doing is trying to get some block rewards. For creating the block, there are rewards for it.
If a miner can successfully add a block to the blockchain, they will receive 6.25 bitcoins as a reward. The reward amount is cut in half roughly every four years, or every 210,000 blocks. As of January 2022, bitcoin traded at around $43,000, making 6.25 bitcoins worth nearly $270,000.
And the idea there is that the miner will take all the transactions in the transaction pool, put them into a block, calculate the hash of the block, then try to calculate the consensus proof for this block. At the same time, all the other nodes in the network are doing the same thing. So it’s a race.
And then, once one of them arrives at a valid consensus proof, they will now broadcast this block to all the other nodes in the networks, saying that this is the new block. The other nodes will verify it, including the consensus node. If they check the proof and the proof is valid, they will accept this new block as the block for that number.
What are smart contracts? Please give us an analogy how it can be applied in a decentralized environment
Okay, so a smart contract is a program that runs on the blockchain. Okay, I think a very simple smart contract would be, for instance, what is called a “proof of existence” smart contract.
Yes, let’s take a look at an alternative design for patent applications. To begin with, you need to bear in mind that the whole point of the blockchain is to take existing centralized systems and then make them open and decentralized on the blockchain. So, for instance, we understand the patent system. You essentially have to submit a design to the patent office. The patent office will now validate the design and ensure that nothing like that existed before. They will now finally decide, “Okay, yes, we’ll give you the patent for this.” Of course, after a lot of legal processes.
Let’s now look at what the decentralized patent system will look like on the blockchain. It will be privacy-preserving at the same time, because we don’t want to expose our designs to the whole world because blockchains are open and we don’t want them to know what we’re doing.
We just want a way to guarantee this new thing that we’ve designed. So for this, we will use what are called hash functions. Hash functions are essentially computer codes that can take in some data and then spit out a compressed version of the data such that only the data can give you this hash. If you change the data even slightly, it will give you a completely different hash. Another property of hash functions is that you can not reverse engineer the input data from the output hash. It is completely computationally impossible. So I will take, for instance, a document that explicitly states what I designed, and I will hash it and then put that hash on the blockchain, and boom, that is a decentralized patent service, such that if someone in the future infringes on my patents, maybe they copied my design after I have hashed and put them on the blockchain. The smart contract will see that this patent has already existed. This means this patient has already been filed and you can’t file this patient anymore.
Even if you tweak the patent a little bit, just so it will look like you did the original version, I can bring the original documents that have a hash that is earlier than yours, and you can bring yours. It will be confirmed that they have the same similarities, but mine was seen by the team much earlier. Do you see how we have a decentralized patent system through smart contracts?
Can you clear my confusion as to what Polkadot and Substrate are all about?
So, in order to understand Polkadot, you must first understand the blockchain ecosystem and the blockchain industry as a whole, where we’ve been, what we’ve tried, and what the future holds. So the creator, the father of parity, was one of the original engineers of the EVM on Ethereum. His name is Gavin Wood. He led the design of the EVM. But during the design of EVM he saw multiple problems that were wrong with the Ethereum network, starting with the idea of the proof of work system. You know, proof of work is very energy-intensive. Ethereum is now transitioning to proof of stake. But from the beginning, his idea was that we should have waited a bit and done this blockchain thing correctly. Instead of even putting smart contracts on the blockchain, we should be running blockchain on this base layer blockchain. In the sense that a single blockchain cannot host all the world’s smart contracts. We’ve seen how high the Ethereum gas fees are because of the number of smart contracts that it’s hosting. And, you know, the competition among those attempting to execute these smart contracts drives up the cost of execution. A more scalable system will be a proof-of-stake system that secures other blockchain networks. In the sense that you will have blockchains that commit their stake to this base layer blockchain. And then they are secured. You can’t hack these blockchains unless you hack the base layer.
These blockchains themselves then go on to be hosts for smart contracts on them. Now, you have multiple blockchains that are hosts for smart contracts, and the security layer is removed from the smart contracts. In Ethereum, security and the execution layer are the same.
But in Polkadot, the security layer and the execution layer are very different. As a result, this is a far more scalable blockchain design than Gavin Wood has seen from the start.
The Ethereum Foundation is transitioning to Ethereum 2.0, which is also going to remove the execution layer and the security layer and make them independent in the form of rollups, and then also have shards for data availability to guarantee data security as well as data availability for the execution layer.
Rollups perform transaction execution outside layer 1 and then the data is posted to layer 1 where consensus is reached. As transaction data is included in layer 1 blocks, this allows rollups to be secured by native Ethereum security.
Sharding is the process of splitting a database horizontally to spread the load. In an Ethereum context, sharding will reduce network congestion and increase transactions per second by creating new chains, known as “shards.” This will also lighten the load for each validator, who will no longer be required to process the entirety of all transactions across the network.
I’m going to liken blockchains to the early computers. You know, the early computers used cathode ray tubes. They were big, they were impractical, they didn’t store a lot, and that’s essentially what blockchain is today. In order to arrive at the smartphones that we have today, which are much more powerful than the old computers, we needed new technologies, new groundbreaking technologies.
The same applies to blockchain. To make blockchain economically feasible for applications, we need a new architecture as well. We can’t be using the same architecture and then hoping to scale. From my perspective, Polkadots is the most advanced blockchain platform yet.
Polkadot is everything that Ethereum 2.0 will be, and even more. Well, substrate fits into that equation by being the framework, kind of like Reactjs or Expressjs, if you’re familiar with the idea of frameworks that allow you to quickly assemble a blockchain and run it as Parachains on the Polkadot network.
The term “Etherscan” Can you just tell me what it is all about?
Etherscan is essentially what is called a “block explorer.” It’s like a much more UI-friendly way for human beings to read what is happening on the blockchain because, you know, blocks themselves are just bits. To be honest with you, only they know what they are doing. Only the code that runs the blockchain knows what is inside and how to read the data inside the blocks. For us human beings, we require something similar to text. So that is what blocks explorers is in general. They convert all these arbitrary bytes and data inside the blocks on the blockchain into something that we can read and understand.
Polygon is known as layer-2 solution for Ethereum and Alchemy Supernode is the most widely used blockchain API for Ethereum, can you tell us about these two technologies
We can start with the idea of what a rollup is. Rollup is an emerging layer-2 scaling technology for blockchain. You have the base layer, which provides security. Before, we used to have the execution layer and security layer together. That was fine, but then we quickly realized that this was not a scalable architecture. The security layer can become clogged because the execution layer is directly attached to it. So, by removing the execution layer and making it a completely different thing—maybe a different blockchain network or a decentralized service— For instance, the execution layer will do the actual execution of smart contracts and make the state commitments. When I say state commitment, I mean the output of smart contract execution, and just put it on the security layer.
So when I talk about the security layer, I’m talking about the actual Ethereum network itself. Blockchains are really glorified databases. They are databases that just provide security guarantees.
So let’s just treat them like that. In this new architecture, we’re going to treat them as that; they are just going to be a database where the execution layer will commit its output, so we still retain that transparency of execution because it will eventually be committed to the blockchain, and then we will get a security guarantee from the blockchain.
You seem to know a lot. For a total beginner, what advice do you have for them in getting started?
I think the first video that everybody should watch is this video on YouTube by 3blue1brown. They make videos about core computer science subjects, and they make these very beautiful videos of how Bitcoin works.
The video is 17 minutes long, but they go through the fundamentals from the beginning, all the way to the complicated part of the Bitcoin network. They break down the philosophy, which I think is what people find difficult. Technology is very easy to comprehend if you’re a programmer. You can understand hash functions, you can understand consensus mechanisms. To be able to understand why all these things are being put together, to do these things. I would say that the first thing to understand is the why of blockchain. Why do we need self-sovereign money? Why do we need open-ended decentralized applications? What are the benefits to society at large when we no longer have centralized systems that accrue all value, whereas participants in the system can also accrue value by using the system. So, once you understand why, you can’t even begin to understand how. The how now becomes very easy because all these Lego pieces start to fall into place.
Is Blockchain technology limited to crypto, DeFi, and Dapps, or can it be used for other purposes?
I believe that one of the more pressing needs for decentralization will be social media platforms, where we are seeing massive censorship and massive amounts of misleading information.
Blockchain decentralized technologies, in my opinion, will revolutionize social media platforms by bringing openness to the platform. It is no longer a small group of people who have complete control over the world’s information. We all have collective control over the information that will be available on the platform. There will be decentralized open committees that can tell you what is and is not misinformation.