What is the Internet Computer (ICP)?
It’s not just “Internet + Computer = Internet Computer” ❌ — It tells a completely different story.
There is a highly centralized nature to today’s Internet. Popular web applications are often closed-source, proprietary, and hosted by a few data centers run by big tech companies. Likewise, a failure of a critical data center can also result in the collapse of large sections of the internet. The fact that centralized, corporate web services are able to censor or deplatform applications is another major concern (particularly for privacy advocates).
The Internet Computer is a blockchain that weaves together the compute capacity of independent data centers around the world to create a decentralized “world computer” that is capable of hosting virtually any software imaginable. The idea behind the Internet Computer is that software run on a blockchain has significant advantages over traditional software because it is highly secure and allows developers to make commitments in their code that they cannot later revoke.
It uniquely enables developers, organizations, and entrepreneurs to build and deploy secure, autonomous, and tamper-proof canisters, an evolution of smart contracts.
What is Canister?
One of the most crucial concepts to remember is that the Internet Computer is a blockchain that allows distributed, running software in a distributed, replicated way.
When you write source code for a dapp that runs on the Internet Computer, you compile the source code into a WebAssembly module. When you deploy the WebAssembly module that contains your program on the Internet Computer blockchain, the program is executed inside a conceptual computational unit called a canister smart contract, or canister in short.
End-users can interact with the canister smart contract once it is deployed, by accessing the entry point functions you have defined for that canister through a front-end client such as a browser.
Because canisters have capabilities that go much beyond those of smart contracts, they can be considered as an advanced form of smart contracts. For example, unlike smart contracts, once a canister has been deployed it can be edited by whoever controls it, which gives the developers a way to fix bugs in their code and add some new features relevant to their application. Moreover, control of a canister can be “tokenized” and shared among any number of people. This allows developers to create applications that are controlled by an arbitrarily large group of people.
Another example is that canisters have unique features that enable developers to scale their applications as needed. Unlike smart contracts, canisters have the ability to communicate with other canisters through asynchronous messages and to create new canisters.
Those features — which aren’t present in any other mainstream blockchain that exists today — allow both the Internet Computer and the applications built on top of it to scale without bound. Indeed, Facebook (for example) could theoretically run entirely on the Internet Computer, using millions of canisters running in parallel.
Who developed the Internet Computer?
The Internet Computer is built by the DFINITY Foundation and was started by a developer named Dominic Williams in 2016. The DFINITY Foundation is a nonprofit organization devoted to researching and developing the Internet Computer — after years of research, it officially launched in May 2021. The foundation’s work is supported by researchers from all across the world, including cryptographers with over 100,000 academic citations and 200 patents.