Problems with the current Blockchain infrastructure today and why we need a truly decentralized Internet.
Starting with the definition of the Blockchain — it is sometimes referred to as distributed ledger technology (DLT), which consists of a growing list of records, called blocks on a network, that are securely linked together, unalterable and transparent through the use of cryptographic hashing.
So we can simply define the Blockchain as a shared, immutable ledger used to record various transactions and track assets to build trust.
Since last year, the dapp industry has seen year-over-year growth of over 765%, but despite this surge and growth, the world is yet to see the emergence of hyper-scale, blockchain-based dapps such as an Amazon-like e-commerce website or a decentralized streaming platform with high computing performance to rival Twitch.
If you would like to learn more about exactly what dapps are, you can do so here:
According to Decrypt, about 70% of Ethereum nodes run on centralized services in 2020. dapps often leverage centralized web hosting and cloud providers for their front-end interfaces rather than operating entirely on-chain. This greatly undermines decentralization and makes dapps dependent on cloud corporations, which is completely contrary to the blockchain’s values.
Given social media platforms and digital marketplaces are storage-heavy applications that add a new state to almost every activity, developers creating dapps demand a more efficient approach for on-chain web3 development. On traditional blockchains, network congestion simply causes the network to slow down, resulting in increased transaction costs (aka gas) and delayed block finality.
With all of these challenges, and many more, limiting the future of dapps to small-scale projects or requiring the use of centralized storages, a peculiar layer-1 blockchain known as the Internet computer has been solving this problem with thousands of large-scale dapps already functionally running on their chain, and we’ll be diving deeper into what it is, its major features that enable it to stand out amongst other blockchains, and how we could build on it.
The Internet computer is a layer-1 blockchain that allows you to create arbitrarily scalable web3 dapps, DeFi protocols, games, NFTs, social media, and metaverse projects that run end-to-end on the blockchain. It can store enormous amounts of data and do massive amounts of calculations quickly.
The Internet Computer (IC) is the world’s fastest and most powerful blockchain network. It is a set of protocols that allow independent data centers around the world to band together and offer a decentralized alternative to the current centralized internet cloud providers.
A set of these nodes combine to form a subnet blockchain. The Internet Computer is essentially a network of several standalone subnet blockchains, and it can scale its capacity indefinitely by adding new nodes to the network.
The Internet Computer hosts smart contracts called canisters that allow developers to deploy interoperable applications over the open internet by combining the computational capability of node computers maintained by independent data centers across the world. A significant aspect of the Internet Computer blockchain is the Network Nervous System (NNS), an open algorithmic governance system that governs the network and tokenomics that enables the development of open internet services, and enterprise systems capable of functioning at hyper-scale. The NNS is also responsible for swapping out nodes when they become faulty or need upgrading and can create new subnets.
To further explain how the NNS works it is important to understand the meaning of the Nervous System, so allow me to take you back to college/high school. According to Biology, the nervous system is an exceptionally complex element of an animal that organizes its activities and sensory information by delivering signals to and from many parts of its body.
The nervous system serves as the command center for your body, originating in your brain, which controls your movements, thoughts, and intuitive responses to your surroundings.
The network nervous system (NNS), like the nervous system of the body, is an autonomous tokenized system that governs the Internet Computer blockchain in a totally open, decentralized manner, allowing it to be effectively improved and developed.
You can further read this amazing article by Lara Schmid, a Dfinity Researcher, to discover more about the Network Nervous System.
Because the Internet Computer uses far less unneeded replication, its on-chain storage of smart contract data is the lowest in the industry, costing only $5 per year to store 1 GB of data. In contrast, at the time of writing, it costs a whopping $201 million to store 1 GB of data on Ethereum. Solana charges about $1 million and Avalanche charges $988,000 for 1 GB of on-chain storage. Because of this exorbitant cost, most dapp development is limited to apps with a minimal state on which their transactions work.
Each dapp on the Internet Computer has the capacity to store the data it requires within its own canister smart contract environment, where it can be utilized instantaneously by the dapp’s smart contract logic.
Canister smart contracts on the Internet Computer can receive and respond to HTTP queries, unlike other blockchains where smart contracts cannot deliver interactive web content to consumers.
This is the first time in history when a decentralized infrastructure will self-direct with the aim of competing with proprietary centralized infrastructures run by commercial organizations with leaders and boards.
The Internet Computer employs a reverse-gas architecture whereby smart contracts pay for their own execution, computing, and storage. Application developers charge their smart contracts with cycles, and users do not have to pay any “gas” fees to communicate with these smart contracts.
Users can easily engage with on-chain dapps over the web without the requirement for a token wallet to pay for gas fees. There are simply no gas fees for minting or purchasing NFTs on the Internet Computer, and the NFT and its associated asset are both hosted on-chain, rather than storing the hash on-chain and the asset on a cloud server.
Because there is no risk of centralized servers shutting down unexpectedly, the Internet Computer is the ideal blockchain for developing dapps with large state requirements. The Internet Computer is essentially a network of several standalone subnet blockchains, and it can scale its capacity indefinitely by adding new nodes to the network.
As explained above, the Internet Computer onboards new nodes and subnets via the Network Nervous System (NNS), an open, permissionless, on-chain DAO in which anyone can participate by staking ICP utility tokens into voting neurons. Each subnet hosts canister smart contracts, which are interoperable compute units that consist of code and state.
Smart contract execution on the Internet Computer is divided into updates and query calls, improving the network’s scalability. Update calls are state-modifying transactions, while query calls are simple read-only requests that are executed in milliseconds.
On the Internet Computer, every honest node in a subnet processes an update call while only one node is needed to process a query call. Each subnet can independently process update and query calls without relying on other subnets. Therefore the Internet Computer scales update calls by adding more subnets and it scales query calls by adding more nodes to a subnet.
A recent performance evaluation demonstrated that the Internet Computer can process more than 11,500 transactions per second, with 1-second finality on application subnets hosting dapps, as well as 250,000 queries per second. The Internet Computer’s NNS is just 2 seconds.
Starting with Wikipedia’s definition of the Internet Identity, it is termed to be a social identity that an Internet user establishes in online communities and websites. It may also be an actively constructed presentation of oneself. Although some people use their true identities online, others want to remain anonymous, identifying themselves using pseudonyms that expose varied degrees of personally identifiable information
The Internet Computer’s Internet Identity, like the definition above, allows users to create sessions with Web3 services and dapps, as well as sign conventional blockchain transactions. Users can build identification “anchors” to which suitable cryptographically enabled devices, such as a laptop’s fingerprint sensor, a phone’s facial ID system, or a portable HSM, such as a YubiKey or Ledger wallet, can be assigned.
Then, using any of the devices they’ve assigned to their anchor, they may sign up for and authenticate to any dapp running on the Internet Computer. For example, your Internet Identity can be used to log in to the Network Nervous System app (NNS), where you can store and stake ICP and participate in the governance of the Internet Computer.
This provides a high level of simplicity, allowing users to authenticate to dapps of interest with very little friction while benefiting from the highest level of cryptographic security, but without the need to directly manage or handle cryptographic key material themselves, preventing mistakes and key material theft. The technology anonymizes dapps, and if an anchor is used to engage with a dapp, the dapp sees a specially created pseudonym, preventing users from being tracked across several dapps. A user may construct an unlimited number of identification anchors.
To learn more about the Internet Identity and how it works, you may read more here:
As a developer, it is quite easy to get started with DFINITY’s developer center for Software Development Kits, documentation, developer forums, technical library, cycles faucet, etc.
There are two primary methods or workflow for designing dapps that operate on the Internet Computer blockchain.
Local development: you start a local canister execution environment simulating the Internet Computer blockchain on your computer. Then you write, compile, install, and iteratively update your canisters in the local execution environment. This allows you to test your canisters locally without the need for cycles.
On-chain deployment: Once your dapp is complete, you can deploy it to the Internet Computer blockchain mainnet, making it available to the rest of the world. To run on the Internet Computer blockchain mainnet, your canisters must contain cycles. You can read up on the Tokens and cycles concept to learn more.
With this in mind, let’s go through some practical code samples to get started with building on the Internet Computer. We would start with developing new canisters and dapps for the IC blockchain.
It is important to note that the IC uses the dfx Command Line Interface and there are various conditions you must meet before you can build on the Internet Computer:
Install the DFINITY Canister SDK, which is called “dfx sdk,” by running the following command:
To verify that dfx properly installed, run:
The DFX SDK is necessary for both local development and deployment on the IC.
Make sure you have node.js installed before you begin building locally. After installing node.js and the DFX SDK, use the following command to create a new dfx project:
Change your project directory by running:
Start the local canister environment by running:
Then, you can run the following two commands to deploy your dapp locally:
Conclusion: Dedicated user communities are already growing around products based on the internet computer, and the Internet Computer Ecosystem Showcase highlights a number of efforts in the works. Storage costs alone would make developing any of those dapps on other layer-1 chains difficult.
A diverse set of web3 use cases will pave the way toward an innovative, decentralized future as the Internet Computer’s dapp ecosystem evolves and grows.