The grandly-named Internet Computer is, at first glance, something between a blockchain and a decentralized cloud provider. It’s run by the DFINITY Foundation, a Swiss not-for-profit organization. Since launching last May, Dfinity has made some big claims about what the Internet Computer is capable of in the emerging Web3 world – it’s being pitched as “build almost anything, dApps without cloud.” So to find out more, I spoke with Lomesh Dutta, Vice President of Growth at the DFINITY Foundation.
Richard is a senior editor at The New Stack and writes a weekly column about web and application development trends. Previously he founded ReadWriteWeb in 2003 and built it into one of the world’s most influential blogs. Follow him on Twitter @ricmac.
First, let’s get our heads around what the Internet Computer is. In a primer published last year, Dfinity founder Dominic Williams called the Internet Computer an “infinite blockchain” and said it was “the third great innovation in blockchain,” after Bitcoin’s cryptocurrency in 2009 and Ethereum’s smart contracts in 2015. Now, clearly we need to be careful about hyperbole in the crypto world. So, to translate what Williams is saying into practical web architecture language: the Internet Computer is made up of independent data centers that cooperate with each other (thanks to a Redditor for that definition). I’m not sure why this makes it “infinite,” but I guess the point is it’s a peer-to-peer network and not one owned by a corporation.
In our conversation, Lomesh Dutta defined the Internet Computer as “essentially a network of interconnected blockchains.” These are called “subnets” in Dfinity’s terminology. In its documentation, Dfinity states that “each subnet is a blockchain that consists of some number of decentralized, independently owned and controlled machines – connected peer computers called nodes – that run the software components of the Internet Computer protocol.” This means that each of these subnet blockchains is capable of running web applications.
How Internet Computer Compares to Ethereum
So how does all this compare to Ethereum, the current leading web development platform for blockchain? The key difference is that Internet Computer apps are run fully “on-chain,” whereas with Ethereum it’s common to put only transaction data on the blockchain. Since Ethereum is basically a giant blockchain, it’s terribly inefficient as an application platform. So it relies heavily on “off-chain” solutions and decentralized storage services. But with the Internet Computer, said Dutta, everything can be done on its subnets.
“You can essentially connect one blockchain to another,” he said, “so we have a way in which all of these blockchains can communicate with each other.”
Critics have noted that because the Internet Computer is a series of interconnected blockchains, relying on a limited number of nodes to achieve blockchain consensus, it is not as decentralized as Ethereum. When I put this to Dutta, his first response was that “we never say we are a direct competitor to Ethereum.” Ethereum is awesome at what it does, he said, which in his view is being “a global settlement layer.” What the Internet Computer does, he continued, is “something that Ethereum isn’t even designed to do.”
“We are saying that we have created an environment where you can run any kind of software application completely on the blockchain – and you can use tokens, [so] it can also bridge to different Ethereum contracts. ”
Taking on Web 2.0 Clouds
The Internet Computer is one of many blockchains jockeying for a slice of the Web3 developer pie. In fact, it’s currently the 33rd ranked blockchain by market capitalization, at the time of writing, which puts it well below the likes of Solana, Cardano, Polkadot and Avalanche. Perhaps for this reason, Dfinity is keen to emphasize how the Internet Computer can integrate with other blockchains – including the two biggest.
“So, one of the things that we’re working on is integrating with Bitcoin and Ethereum,” Dutta said. “That means that the Internet Computer can directly connect to those networks without using any bridge. So what that means is a smart contract on the Internet Computer can just directly pass on messages – not just simple tokens – between the two networks. And what that allows us to do is, you could keep your token logic (let’s say) on Ethereum, and you can build your front-end middleware on the Internet Computer. ”
This all sounds great, but how different is this from using cloud providers like AWS or Azure to host the front-end of your web application? This is what many Ethereum “dApps” use today – for example hosting the app on AWS and having it talk to the blockchain via smart contracts. It seems that the Internet Computer, if used in an integrated way with Ethereum or Bitcoin, is essentially taking over what AWS was responsible for.
Again, Dutta deflected the comparison. “We treat ourselves as a blockchain and we don’t necessarily say that we compete with the likes of AWS and Google,” he said. However, he made it clear that apps that run on the Internet Computer don’t need the likes of AWS.
“Let’s say from the point of view of somebody who’s building a decentralized app. So the Internet Computer definitely offers the capabilities where they can host the entire application as they [would] do it on a traditional cloud. So they don’t need AWS or Google Cloud. If they were to build let’s say a Twitter, or a Reddit, or a LinkedIn, or an enterprise application, they can just run completely, one hundred percent on the blockchain, without needing a cloud. ”
As Dr. Emmett Brown said to Marty McFly in Back to the Future, “Roads? Where we are going we don’t need roads. ”
How Smart Contracts Work on the Internet Computer
Any discussion of an app running on a blockchain needs to touch on smart contract programming – in other words, how to program instructions for data on a blockchain. On the Internet Computer, a smart contract is called a “canister,” which Williams defined in his video primer as “a bundle of WebAssembly bytecode logic which you can create from any high-level programming language, such as Rust or Motoko.” The latter is a unique language created for the Internet Computer.
According to Dutta, the Internet Computer has “a few thousand active developers” and about half of them use Rust, the other half Motoko. As to how the canister programming environment is different to Ethereum’s Solidity, Dutta said it all comes down to WebAssembly.
“Solidity is a language that the Ethereum Foundation designed, which then compiles down to essentially execute on the EVM [Ethereum Virtual Machine]. In our case, we work with an open standard – which is WebAssembly – as our execution environment. So it’s different [from] the Ethereum environment. Anything that compiles down to WebAssembly is a fair game for us. ”
Taking on Web 2.0 Apps
As with most other blockchains (including Ethereum), it’s early days for the Internet Computer in terms of web applications running on its platform. Dfinity has a showcase that includes some interesting apps – including a web hosting service billed as a Netlify competitor, called Fleek. But none of these apps are truly webscale yet, in terms of number of users, compared to current web mainstays like Twitter, Reddit, and indeed Netlify.
Naturally, Dutta is bullish about what can and will be built on the Internet Computer. “Anything that you can imagine that exists in the Web2 world, people are building a version of that [on Internet Computer], ”He said. “From Google Drive, to Google Photos, to Reddit, to Twitter, to Instagram – all [of] these services are being reimagined on the Internet Computer. They are all running today as applications. ”
Of course, it remains to be seen whether any of those Web3 applications will ever usurp the Web 2.0 applications Dutta namechecked. And as for Web 2.0 clouds… I hate to disagree with Dr. Emmett Brown, but I think roads will be needed for many decades to come.