So what exactly is the Internet computer and how can we build dapps using the Internet computer? 1
So the goal of the Internet computer is to reach blockchain singularity. 2
The idea is to have a powerful, secure blockchain that's capable running the entire base layer of the 3
web. 4
So everything from hosting, storage, services, basically everything in one secure protocol. 5
Now, back in 2019, when Vitalik Buterin, who's the founder of Ethereum, the person who first thought 6
of and implemented these smart contracts, when he was talking at 2019 Unchained Live, he was asked this 7
question of, 'What do you think is the biggest competitor to Ethereum today?' 8
And his answer was Dfinity's Internet computer. 9
And a part of the reason for that is because today's decentralized applications are only partially decentralized. 10
They have a very small amount of logic and data that's hosted on a secure blockchain. 11
But the majority of the logic and the data is all hosted on large web2 companies. 12
For example, using Amazon's AWS or Microsoft Azure in order to host a lot of the data or using something 13
like Chrome's browser extensions in order to connect a wallet and let users spend and earn tokens. 14
So if the majority of a dapp is not on-chain, then it's not really decentralized and it doesn't have 15
all of the benefits that's offered by a truly decentralized application. 16
So it means that any of these companies, Amazon, Microsoft, can actually shut down your project just 17
by snapping their fingers. 18
So why is this? Why is it that we have all of this technology and yet we're still relying on legacy infrastructure? 19
Well, the reason is because it's extremely difficult with the current blockchains, for example, Ethereum, 20
to be able to host large amounts of data and carry out a large amount of transactions because it wasn't 21
built for that purpose. 22
Ethereum was built primarily to act as a ledger. It's not designed to handle a lot of computation 23
or data storage. 24
So if we look at a day in data just to see how much data gets created in your bog-standard web2 applications, 25
there's something like 500 million tweets that are sent every day, and about 95 million photos and 26
videos are shared on Instagram, which is a crazy amount of data to try and put onto a traditional blockchain. 27
And if you look at how much it costs just to store one gigabyte of data on blockchain, for Ethereum, 28
that's something like $350 million at the current price of Ethereum. 29
So a gigabyte of data is just about 300 phone photos. 30
So if we go back to that 95 million photos, if you multiply out, that'll cost something like $11 trillion, 31
basically just completely unfeasible, which is why nobody creates fully-fledged decentralized applications 32
entirely on chain, which is what I meant when I said Ethereum just wasn't designed to handle the entire 33
tech stack of a web application. 34
Also, remember how we said that each new block contains transaction data that updates the blockchain. 35
The rate at which transactions can be processed determines how fast a blockchain-based app can run or 36
how big it can scale. 37
Each new post in a decentralized social media app is a transaction. That means the number of transactions 38
per second of the blockchain itself will limit how many posts all of your users can make, because the 39
TPS determines how fast your app can update it's state. 40
It currently takes something around 14 seconds to create a new block on the Ethereum blockchain, and 41
Ethereum has gradually increased the block size over time so that more data can be stored into a single 42
block. 43
But in the current version of Ethereum, we're limited to about 15 transactions per second. 44
So imagine a Twitter that's completely on-chain on Ethereum, and it would only let four users post 45
the tweet every minute. 46
And it will probably cost them something like $100 to pay to tweet that single tweet because it's so 47
expensive and it's so slow. 48
Now, the Dfinity organization has been researching this problem and trying to come up with a better 49
technological solution to address this. 50
If you search the Internet archives, you can see that even as far back as 2015, the Dfinity team have 51
already started working on this problem. 52
How do you make blockchain smart contracts scale? 53
How can you make it more performant? 54
How can you turn this simple ledger into a new form of computer capable of processing thousands of computations 55
per second and even be able to store data on chain? 56
And they came up with basically a novel consensus algorithm, what they call threshold relay, and it 57
allows the Internet computer to be able to reach much faster 58
speeds when compared to the other major layer one blockchains that are currently in existence. 59
But how does it work under the hood? 60
Well, basically, the Internet computer aggregates the compute capacity of a large number of independent 61
data centers, and it takes all of these data centers around the world and combines them using the Internet 62
computer protocol into a large, single, decentralized world computer, if you will. 63
And this decentralized computer is organized into individual, what they call, canisters or canister smart 64
chains. 65
And these canisters can basically run processes, execute code and store the data for the programs. 66
So as a user, you can tap into the canisters directly by making HTTPS requests. 67
But as a developer, what you need to realize is that this Internet computer is basically just a whole 68
bunch of canisters where each canister can hold programs and programs state through a web assembly module 69
and a flash memory model called a memory page. 70
So you as a developer can write code that compiles into a performant way to run web applications on 71
user hardware using web assembly 72
and you can do that using many languages such as rust or Dfinity's motoko. 73
And the really cool thing about these canisters is how they manage memory. Because your program's state, 74
so the contents of your variables, your collections, your arrays, can actually get stored within the 75
canister. 76
And each of these canisters acts a bit like a process or a code sandbox. 77
It's kind of similar to containers if you're familiar with Docker and that kind of stuff. 78
But essentially, the program state gets preserved, so your canister kind of acts as if it runs forever. 79
So imagine if you run something in Code Sandbox and you click Run and that program never gets killed, 80
then all of your data can just simply be kept in their 81
variables. 82
So if you have a collection, if you have an array, a dictionary or an object, they just hold on to 83
their state and they never get wiped. 84
So that means you don't even have to think about data persistence or putting things into databases, 85
taking things out of databases, because your program behaves like it never gets killed. 86
So this makes canisters not only an evolution in the way that smart contracts work, but even a leap 87
in the way that programs can be written. 88
Because you as a developer only really have to worry about the logic and the Internet computer takes 89
care of the rest. 90
Now, currently, there's over 30,000 of these canisters that are running on the Internet computer, and 91
it's growing at an incredible rate. 92
There's already hundreds of applications are built on the Internet computer, for example, decentralized 93
Reddit or the decentralized version of TikTok. 94
And because everything is on-chain, you can enable some really fascinating new ways of interacting 95
with these Web applications. 96
For example, in the decentralized version of TikTok, which is called Cancan, that runs on the 97
Internet computer, they have this ability for you to like a video. 98
And then if that video later goes viral, then it looks at who were the first ten or 20 people who liked 99
this video and rewards them with tokens from Cancan, which you can then later spend to buy real products 100
or virtual products or get things from sponsors. 101
So it's genuinely bringing about a new way that we think about developing web applications and how you 102
can interact with users through these token economics. 103
And currently there are definitive developer ground programs where you can get anything from $25,000 to 104
$100,000 in grants. 105
So that means no strings attached money to help you develop applications for the Internet computer. 106
So there is no better time than now to get started. 107
And in the coming lessons, we're going to be learning exactly how to do just that. 108
So once you're ready, head over to the next lesson where we're going to get started by setting up our 109
computer to be able to develop decentralized applications using the Internet computer.