Computer

Where We’re Going, We Don’t Need Clouds – The New Stack

Where We're Going, We Don't Need Clouds – The New Stack

The great-named internet computer is, at first glance, something between a blockchain and a decentralized cloud provider. It is managed by the DFINITY Foundation, a Swiss non-profit organization. Since its launch last May, Dfinity has made big claims about what the Internet Computer is capable of in the emerging world of Web3 – it’s billed as “build almost anything, dApps without the cloud”. So to find out more, I spoke with Lomesh DuttaVice President of Growth at the DFINITY Foundation.

Richard McManus

Richard is an editor at The New Stack and writes a weekly column on web and app development trends. Previously, he founded ReadWriteWeb in 2003 and made it one of the most influential blogs in the world. Follow him on Twitter @ricmac.

First, let’s see what the Internet computer is. In a primer published last year, founder of Dfinity Dominique Williams called the internet computer an “infinite blockchain” and said it was “the third big blockchain innovation” after Bitcoin’s cryptocurrency in 2009 and smart contracts in Ethereum in 2015. Now it’s clear that we need to be careful of hyperbole in the crypto world. So, to translate what Williams says into practical web architecture language: the Internet computer is made up of independent data centers cooperating with each other (thanks to an editor in chief for this definition). I don’t know why that makes it “infinite”, but I guess the point is that it is a peer-to-peer network and not a company owned network.

In our conversation, Lomesh Dutta defined the internet computer as “essentially a network of interconnected blockchains”. These are called “subnets” in Dfinity terminology. In its documentation, Dfinity states that “each subnet is a blockchain that consists of a 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 of this compare to Ethereum, today’s leading web development platform for blockchain? The main difference is that internet computing applications run entirely “on-chain”, whereas with Ethereum it is common to place only transaction data on the blockchain. Since Ethereum is essentially a giant blockchain, it’s woefully inefficient as an application platform. It therefore relies heavily on “off-chain” solutions and decentralized storage services. But with the Internet computer, Dutta said, anything can be done on its subnets.

“You can basically connect one blockchain to another,” he said, “so we have a way that all of those 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 said this to Dutta, his first response was that “we never say we are a direct competitor to Ethereum”. Ethereum is great at what it does, he said, which he says is “a global settlement layer.” What the internet computer does, he continued, is “something Ethereum isn’t even designed for.”

“We’re saying we’ve created an environment where you can run any type of software application completely on the blockchain – and you can use tokens, [so] it can also link to different Ethereum contracts.

Embrace Web 2.0 Clouds

The Internet Computer is one of many blockchains vying for a piece of the Web3 developer pie. In fact, it is currently the 33rd ranked blockchain by market capitalization, at the time of writing, which places it well below Solana, Cardano, Polkadot, and Avalanche. Perhaps that’s why Dfinity is keen to highlight how the Internet Computer can integrate with other blockchains, including the two biggest ones.

“So one of the things we’re working on is that we’re integrating Bitcoin and Ethereum,” Dutta said. “This means that the Internet computer can connect directly to these networks without using a bridge. This therefore means that a smart contract on the Internet can simply directly transmit messages – not just simple tokens – between the two networks. And what that allows us to do is that you can keep your token logic (say) on Ethereum, and you can build your front-end middleware on the internet computer.

This all sounds great, but how is it different 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 application 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, essentially takes over what AWS was responsible for.

Again, Dutta deflected the comparison. “We consider ourselves a blockchain and we’re not necessarily saying we compete with AWS and Google,” he said. However, he clarified that applications that run on the internet computer do not need AWS.

“Let’s say from the perspective of someone building a decentralized application. So the internet computer definitely offers the capabilities to 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, say, a Twitter, or a Reddit, or a LinkedIn, or a business app, 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 application running on a blockchain must address 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 “box”, which Williams defined in his video introduction as “a set of WebAssembly bytecode logic that 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.

cans

Source: Definition

According to Dutta, Internet Computer has “a few thousand active developers” and about half of them use Rust, the other half Motoko. As for the difference between the canister programming environment and Ethereum’s Solidity, Dutta said it all comes down to WebAssembly.

“Solidity is a language designed by the Ethereum Foundation, which then compiles to essentially run on the EVM [Ethereum Virtual Machine]. In our case, we are working with an open standard – which is WebAssembly – as the runtime environment. So it’s different [from] the Ethereum environment. Anything that compiles up to WebAssembly is fair game for us.

Embrace Web 2.0 applications

As with most other blockchains (including Ethereum), the internet computer is still in its infancy in terms of web applications running on its platform. The definition has a display case which includes some interesting apps – including a web hosting service billed as a competitor to Netlify called Fleek. But none of these apps are truly web-wide yet, in terms of user numbers, compared to current web stalwarts like Twitter, Reddit, and even Netlify.

definition apps

Source: Dfinity homepage

Naturally, Dutta is optimistic about what can and will be built on the Internet computer. “Everything you can imagine that exists in the Web2 world, people build a version of it [on Internet Computer],” he said. “From Google Drive, to Google Photos, to Reddit, to Twitter, to Instagram – everything [of] these services are reinvented on the Internet computer. They all work today as apps.

Of course, it remains to be seen if any of these Web3 apps will ever spoof namechecked Dutta Web 2.0 apps. 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.