Unlocking Web 3.0: The Promise and Power of the Internet Computer
Welcome to the world of the Internet Computer, a revolutionary new technology that is changing the way we think about computing. ♾️
In recent years, blockchain technology has gained immense popularity due to its decentralized and secure nature. One of the emerging protocols in this space is the Internet Computer Protocol (ICP). Developed by the DFINITY Foundation, ICP aims to revolutionize the way we build and deploy decentralized applications. In this blog, we will explore this revolutionary technology and how it works!
What is an Internet Computer?
So what exactly is this thing called the internet computer well if you look on the internet you will see people telling you it’s a scam I mean just look at the token prices, but also there are people who are extremely confident in the potential of this new technology as well. If you’re feeling confused right now that’s totally normal that’s why today take a few minutes to understand how the technology works and I will leave the opinion to you readers about this technology.
The term internet computer is used to talk about three different things. The first one is a network, a decentralized cloud we’ll talk a bit more in a few minutes. The second one is the token ICP is a cryptocurrency you can buy it on exchanges and trade it like any other coin.
The third one is that the token has utility in the network, you can burn it to pay for computation or you can stake it to participate in the governance and earn rewards. Finally, ICP stands for Internet computer protocol which is a program that runs in the node that powers out the network. The code is open source you can find it online and is currently researched and maintained by the definitive Foundation but other contributors are welcome to participate nodes are maintained by independent data centers and they have pretty high requirements in terms of hardware.
Uff that’s a lot ig! let’s review what we’ve seen so far the internet computer is composed of nodes those nodes are connected over the internet and they communicate with each other they all run the ICP protocol. This enables a network to exist which we call this network the Internet Computer. On top of it, we can create decentralized applications using canisters with ICP tokens built into one canister, called the ICP Ledger which is responsible for processing transactions minting, and burning ICP tokens.
The internet computer is divided into subnets with each subnet powering a number of canisters and each subnet again is powered by a number of nodes.
But wait! What exactly are these canisters, let me clear the air for you. A Canister is a super-powered Smart Contract that does many more things, they are computational units that consist of both code and data. A canister can be deployed on the Internet Computer and accessed over the Internet. In the technical language, it’s the state, the storage, and the memory for IC applications. For easier visualization, it’s like a real canister that holds all the elements required to run a scalable web3 application.
Webassembly like rust, motoko or even typescript can be used to write code for canisters. Users directly interact with canisters by sending messages that represent actions you will take on the network like transferring your token, minting an nft, or even posting on social media canisters can also interact with other canisters by sending and receiving messages.
Smart Contracts VS Canisters
If you are familiar with other ecosystems like Ethereum, Solana, Avalanche, etc you might be thinking that canisters and smart contracts are very similar and this is true they share a lot of properties however canisters are a completely new concept canisters were developed specifically for the internet computer and they can do things that smart constructs cannot do. Let’s see what they can do, let’s say that you want to interact with a decentralized application like uniswap which is powered by smart contracts and those smart contracts are hosted on the Ethereum network, so you as a user need to find a way to interact with the network. You will likely go to the website and download the web page. Unfortunately, the web page is not still on the Ethereum network, they are still on a centralized Cloud Server something like AWS and also you will need to pay fees for the execution of the smart contract through a wallet like metamask and inorder to download metamask you will likely go through a centralized store something like the Chrome extension store and each new intermediaries add to the risk of potential security breach and censorship.
Let’s see how the internet computer can solve this issue now.Let’s say that you want to interact with an application hosted in internet computer, the good thing about it is that everything in this app is in a canister and this helps to answer HTTP requests that’s a huge improvement. It means we can get rid of the sensored cloud also you don’t need to pay for any computation. The canister has a cycle balance and will use its own balance to pay for computation and thereby get rid of the wallet and all the intermediaries associated with it. This is called the Reverse Gas Model. Once you deploy your smart contract you can never change the code if you need to modify something you need to redeploy a new smart contract on the other side a canister can be upgraded, this makes it really useful if you are working on a large project and need to fix a bug or add a new feature.
Consensus Mechanism in ICP
Now that we have understood what a canister is, let’s try to understand how the nodes reach an agreement using the consensus. Like all the de-centralized protocols, the Internet Computer also uses a consensus model but it is not proof of work like Bitcoin or proof of stake like Ethereum, it’s actually a new model that was developed specifically for the Internet Computer. Let’s see how it works through an example this example we will assume that you want to use a social media application that is hosted on the Internet Computer, this application as a canister and you want to post a message so you send your message to the canister and you are waiting for an answer from the canister to confirm that your message has been posted. As we’ve said before, the canister is hosted in many different nodes some of them are good actors but some of them might be bad as well.
Thanks to something called threshold cryptography. Each ICP subnet has a fixed public key. The corresponding private key is not stored on a single node, nor is it ever available on any node. Instead, it is split into multiple secret shares and distributed over all nodes using threshold cryptography. This means that if you combine enough shares you can create a signature on behalf of the subnet but a node on its own cannot create a signature. A private key can be used to create a signature and the public key can be used to verify that this signature was indeed created by the private key. In our example, if you know the public key of the subnet and you receive a message with the signature of the subnet you can verify that this message was created by the subnet and was not modified by anyone else. The message of the user will be propagated across all nodes in the network, then all nodes will receive the message and they will run a computation on this message, then they will return their result. The result can be different at this stage after that they will sign the result with the respective share of the private key, and then they will propagate this information across all the nodes of the subnet assuming that the majority of the nodes share the same result they will combine their shares and they will create the signature that corresponds to the public key of the subnet. If the user knows the public key of the subnet the user can be sure that his message has been received and treated by the internet computer.
Now at this point, you might have a question that we’ve said the Internet Computer is divided into subnets and each subnet has its own public key does it mean that the user has to know all the public keys of all the subnets. Fortunately, there is a solution to this problem. There is one subnet called the Network Nervous System which stores all the public keys of all the subnets, which means that you only need to know the public key of this NNS subnet in order to satisfy any result coming from the Internet Computer.
Infinite Scalability
“Infinite Possibilities: ICP at the Center of Blockchain Innovation.”
In theory, if you want to verify transactions on the Bitcoin Network without any intimidatory you have to download the whole blockchain that’s approximately 400 gigabyte compared with the Internet Computer which only need one public key which is 48 bytes, that’s a huge reduction in size and it means no intermediary and more decentralization more verification. The Internet Computer can easily scale by adding more and more subnets. Each new subnet will add more capacity to the entire network. This is possible because each subnet runs its own consensus. You can think of a subnet as its own blockchain. Now you might be thinking how is it possible that we have so many subnets and yet we have one network? This is possible by finding a way for the subnets to communicate with each other and fortunately, each subnet has its own public key and its own private key which helps in trustworthy communication between each other. They just need to create and sign messages and send those messages between each other. In theory there is no limit to the number of subnets that can be added to the network meaning that the Internet Computer might be the first blockchain to Scale to Infinity. However, the network is still young and is yet to be proven.
With the ICP technology’s promise to scale to infinity, symbolized by its sleek infinity logo, we are stepping into an era where the internet’s capabilities are boundless, offering unparalleled opportunities for innovation and growth.
Conclusion
The Internet Computer (ICP) is revolutionizing the digital landscape. With its limitless scalability, enhanced security, and innovative potential, ICP is paving the way for a more decentralized and equitable internet. This technology empowers developers and users, fostering a new era of creativity and fairness online.
Thank you for taking the time to explore the promise and power of ICP. I hope you found it insightful. Have an amazing day! :)
Subscribe to my newsletter
Read articles from Karthik E directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Karthik E
Karthik E
Hey, tech fam! Wondering who's behind the keyboard? I'm a passionate software engineering student at Cochin University by day, but by night (and any free second!), code takes over! The tech world is my playground, and always loved to build cool stuff and learn new tech innovations. To connect with me on other platforms here's my linktree https://linktr.ee/karthi20