In today’s episode, I and Robert present DFINITY’s vision of a blockchain computer, its objectives and technological achievements. During the presentation, we covered a wide range of topics: everything from vision and general architecture of DFINITY to its governance mechanisms.
So that you guys know who you’re talking to my name is Cédric. I originally set up the DFINITY foundation together with our founder Dominic Williams just over yeah roughly two years ago now. And Robert is our researcher in Zurich. And we’re both based out of Zurich. I travel a lot as everyone in the space and we’re here for you today. So we’re going to be covering a whole bunch of topics. Everything from vision and general architecture of DFINITY to its governance mechanisms. And then Robert is also going to deep dive on some of our innovations.
What’s very important to us is that we’re here for you so whenever you guys have a question, just jump up or let us know and we’ll answer that right away. Plus we’ll have some time in the end. And if there’s more motivation needed we also have a bunch of cool t-shirts that we’re going to give out for anyone who has questions. Alright!
The Big Vision
I’m going to start with like the big vision. So DFINITY is the internet computer. And before we can talk about what an internet computer is I just want to go way, way back and talk about what a computer is.
It was originally defined like mathematically defined by Alan Turing – this gentleman over here. Then we entered an era where we had computers on our desks, now we have them in our pockets with a kind of like these standalone devices that do computations for us, all kinds of… Then we entered an age which we could be seeing as the web 2.0 where we have a cloud architecture, meaning we have a set of computers that create a static group or static network and then do computations for us.
And now, the internet computer is what we think of a dynamic network of computers that never stops; that dynamically group together and start and stop individually and help us execute applications on a global scale. Unstoppable, completely decentralized applications.
And so DFINITY is part of this fourth era of computers. And we’ll talk more about why we think that makes sense or why it’s important over the course of this presentation and also how we make it happen.
The Internet Computer
So first, this is how the internet computer looks like. A very nice GIF that we created and this is actually showing our test net run. So we have – for those who have done a bit of research on DFINITY – you’ve probably seen that we’re not trading on any exchanges or not live yet. Our network is not running yet. We still have investors so some tokens are assigned but the network is not live. But we have test nets running and at this time it works. And we’ll be showing a roadmap a bit later for you to see when this is all gonna be available to all of you. And then also Robert is going to show you a bit about more… a bit more details about this test net and what it’s actually capable of right now.
But in the big picture, an internet computer is a network of computers. Each and every one can be a server. It could be as simple as your desktop computer or laptop. They all use a protocol, they all use the same client software to connect to each other. And we call those mining nodes. So mining in DFINITY means you’re running the DFINITY client and it connects to other computers in the network and they together execute some applications. And one of the big benefits of having this internet computer or having this decentralized world computer is that they’re inherently resistant to faults or interruptions. Because it dynamically starts and stops and regroups itself there’s no way for it to ever be shut down once you reach enough traction, once enough people are convinced that there’s value in this network.
How is DFINITY different?
And the way DFINITY scales – I’m sure you’re all somewhat familiar with Bitcoin and Ethereum… And Ethereum originally introduced this idea of smart contracts. DFINITY goes a step further and talks more about distributed apps and kind of more capable applications that can be run on this distributed computer. And one of the ways how it scales – and Robert will later on talk more about how it scales much, much better than existing technology and what’s different about DFINITY – are three dimensions.
One is computation. What that means is we… the more computers or the more miners join the network, the more computational cycles we’ll be able to execute at any given time.
Second is storage. So DFINITY is not a storage-focused protocol like FineCoin but storage is still a big part of it. The more computers we have, the bigger the internet computer grows, the more data can be stored on it.
And third – memory. Meaning the state between two different blocks will get more and more capable the more machines join the network.
What WebAssembly is and its role for the Internet Computer
Here’s a very important term – WebAssembly. WebAssembly is a core aspect of what makes DFINITY applications more capable than, for example, smart contracts in Ethereum. WebAssembly is not something that we’ve invented but we’re adopting it and we’re driving it forward. What WebAssembly is – they call it the first open standard for universal software that runs anywhere.
And so they thought about bringing a more efficient standard to all browsers. And what they’ve come up with is WebAssembly which is a bytecode format. What that means is the first time that you can send compiled code to your browser. Which is a lot more efficient to run and it offers a number of other benefits as well which… among them security and you can mask applications. Like they’re compiled so you don’t offer your source code and secrets to anyone anymore.
So this was developed by these big browser manufacturers and we’re adopting them in DFINITY as we call them canisters. And the reason why we’ve gone with that standard is that we think that WebAssembly is going to be a big topic over the next few years because all these big browsers are adopting them. They’re actually live already but you don’t find too many applications yet. And we want to be not just yet another platform that you have to learn. We don’t want to be just yet another standard that you have to first understand. We want to make it very easy for the biggest group of developers on the planet which are web developers. And that’s why we’re adopting the same standard.
Why? Beyond the efficiency and the higher throughput that you reach with WebAssembly, there are a few other advantages. One of them is that because it’s a byte format you can use a number of high-level languages to then compile it into WebAssembly. So what that means – not all of these are available but there’s going to be a number of compilers that you can use to use any of these high-level languages to produce WebAssembly.
And then the way we bring this to DFINITY is kind of twofold. One is we’re gonna have these canisters or actors or – that’s our name for what smart contracts are on Ethereum – so a way to deploy applications onto a blockchain infrastructure, onto a decentralized infrastructure. That’s what’s happening here. So you’re gonna have your business logic and you’re gonna have your database or state or long-term information. And then you’re gonna have ports. And these ports are there to interact with whatever interface you choose but the most obvious one is probably a browser. So you can open a port 80 or 8080. And then you can use the same technology that you’ve used here – WebAssembly – to write stuff in your browser and then interact with the blockchain and use that as an interface to your business launching on the blockchain.
Decentralized computing vs Web 2.0
So what are some of the benefits of running on this decentralized world computer versus your traditional web 2.0 or even web 1.0 infrastructure where you have one or just a static set of servers?
We think that one) security is going to be improved because it’s a much, more transparent environment – people can generally see what you’re doing and they can help you improve it. Whereas in the traditional world, it’s all protected and you’re always working on an application per application basis and you need to work on your firewall and your network settings and all that. And then in DFINITY, that’s all taken care of by the internet computer. So you can focus more on business logic.
The second reason could be reliability. Whereas in the traditional world you always have to worry about backups and uptime and network connections and Wi-Fi… And there’s a lot of bottlenecks or single points of failure in your typical infrastructure… The internet computer, at least in theory – this is all to be proven because it’s so decentralized and it’s so hardware generic and can be running so many data centers – the chances of it ever going down are very, very small. Because it’s all blockchain-based the chances of losing data are also much, much smaller than they are in the traditional world where you just… if there’s a database with no backup, you’re stuck.
Then one more thing – if you’re working on traditional web applications, you’re always interfacing with third-party apps and they all – these different protocols also may use REST API, some use older protocols… With DFINITY because it’s all gonna be hosted on the same computer, it’s a lot easier to operate or interoperate with each other for that case… interface with other applications.
And last but not least is privacy. So because cryptography is built into the internet computer or these distributed systems, you can make use of that and protect what you need to protect. Whereas in the traditional world, it’s always a matter of you figuring out what’s right for which application and there’s no kind of generally available toolbox that allows you to securely protect your data.
How is decentralization relevant to security and privacy issues?
If I get the question right it’s – you think that security interoperability and privacy could all be built into traditional systems, why is it such a big step forward?
I think it’s all a matter of perspective. What we think is that – because in this new world it’s all decentralized, a lot of this is built in so you don’t have to think about it and you don’t have to provide the systems for that. So even if you’re a web developer that wants to build a very simple application, you’re probably not gonna… you don’t want to worry about creating backups and failover systems and lots and lots of redundancy. And that’s all built into the new world of decentralized computation.
I think a lot of it comes with decentralization. For example, the fact that your database cannot just be erased or you cannot lose data that was there in the past just comes with the blockchain architecture. Because it’s immutable. Like you could later on say this record is removed but you could always go back a few blocks and see that it’s still there if you ever wanted to get it back. Whereas if you delete something in a traditional MySQL database or any other database system, like the data might actually be completely gone.
Isn’t the overhead too big?
So I fully agree with the first point – it’s a huge overhead, right. Because all… and this does not only go for storage but it also goes for computation. Because if you want to make sure that everything is done the right way, you’re gonna have the same transactions executed by every miner. So instead of doing the computation once, you’re gonna have to do it hundreds of times. And the next slide actually… we’ll talk about that. What t-shirt size are you wearing? Medium, small?
It’s not for everyone
Okay so I think you hit a very critical point – so this is not probably the way for all applications. We think that a lot of applications will benefit from this infrastructure and we also think that there’s going to be hybrids between putting some data on the internet computer or the fully decentralized hardware or infrastructure while still keeping some data off chain in traditional infrastructure. And we think that a lot of these systems that we mentioned here – order management systems, user forums, e-commerce – I personally really think that, for example, something like voting will inherently like will benefit a lot from the additional transparency and the decentralization. And that’s somewhere where the benefits of what you gain outweigh the additional computation and storage that you need to go through and that’s why it will live on decentralized hardware.
On the other hand, we think that there’s… we imagined two here but I think there’s more – there are certain types of applications that will not move on to such a decentralized architecture in the near future which are those that are extremely data intensive. So big data stuff or extremely computation intensive – artificial intelligence. Because there you’re much better off using all the computation you have on your network for individual transactions than using them all to verify one transaction.
Mining in DFINITY
So who’s participating, who’s providing on the storage, computation, and memory? In DFINITY it’s miners. And the term “mining” – we talk about it a lot, whether mining is the right term because it’s so predefined by what mining is in proof of work systems.
So DFINITY is a proof of stake system which means we don’t have the riddles or puzzles that you have in proof of work systems like Bitcoin and Ethereum to determine who signs the next block. I don’t know – are you going to talk about it? Yeah, we’ll talk more about that but in general… so for now we call it mining but we could also call it validation or we’ve been talking about a lot of terms but…
What you do when you connect your servers and machines to the network is first you install the mining nodes. And what’s different with us than Ethereum or Bitcoin is you will be able to mine with normal or generic hardware. So there are no special GPUs needed, there’s no ASIC or special chips needed and that gives us a few opportunities.
And one of them is with a high interest in this system being very distributed meaning there’s a lot of mining going on around the globe and not just a few big mining pools that occupy most of the mining power in the network.
That’s why we’ve made some architectural decisions. One of them is to make this hardware fairly standard so that a lot of hosting centers can mine for DFINITY. And what we hope they will do is they will use idle space or idle computation power that they have in their network for down peaks or when there’s just not… when they haven’t rented out everything in their inventory to mine for DFINITY and make some money through that.
And then yeah – what’s similar to proof of work mining is that mining is one way to make DFINITY tokens. The way you do that is by validating new blocks but also by processing transactions.
Yeah and in general, what DFINITY has in common with many other networks is it’s also a token-operated network. Meaning at the core there is a token and we use that for a number of things.
One of them, we talked about is computation. So all those miners, they will replicate transactions across the network.
You need a certain amount of tokens to mine for the network – that’s part of the proof of stake mining that Robert will explain in a bit.
And then number three is governance. And that’s an interesting point. You’ve probably all heard about Ethereum hard forks or many other networks that hard forked because the community could not agree on one way to go forward. And this could be large decisions like naming conventions or which client to adopt or in which language to release the next version. But it could also be smaller things like the Bitcoin block size where some people think it should be larger, some people think it should stay at one megabyte…
And that’s why we thought a lot about how to solve that for the future. Because we believe that for this to really work and be a global initiative, there needs to be an efficient way for all participants to come to conclusions together.
So whenever you own DFINITYs or the token that we’re gonna release, you can also stake these, meaning you can deposit them. And in return for depositing them, you get neurons. And neurons are… you could see them as a voting token. So those are not tokens that you’re gonna sell or trade but you can use them to make decisions in the network.
The Blockchain Nervous System
And the way this will work is – and we call this the Blockchain Nervous System (BNS) – the way this will work is everyone could come up with proposals. And these proposals were or not -the system does not fully exist yet, it’s not fully specified yet – but proposals could be wide-ranging. It could be “we should change the block size to a certain amount” or it could be “the next version of the client should be this versus another one.” And anyone can come up with these proposals. These proposals are shown to what we call the Blockchain Nervous System which is an implementation of liquid democracy or delegative democracy. Which means instead of… it’s kind of similar to how we vote nowadays where we have politicians. We kind of delegate our votes to a politician, only that this is a lot more transparent and immediate.
So if there’s a vote coming up about certain parameters then I’m gonna know… like I’m gonna delegate my vote to Robert because he knows a lot more about that stuff. Whereas if it’s something about whether or not a certain project should receive money out of our ecosystem fund, maybe he’s going to delegate his votes to me because he knows I spend a lot of time with that.
Here are just some examples. And then what that does after the voting has run and all those neurons have been gone for one of the proposals, it’s automatically adopted and then run on the network. So I think the first protection against it is that for all these mining identities, it’s not really dependent on how many… how much computation power you have but how much you can stake. Meaning for each miner you will have to deposit a certain amount of DFINITYs.
How can you protect the network from incumbents like AWS?
So Amazon will first have to really invest in the network and even then I think… Because once you have that many tokens on your balance sheet, you want to do what’s right for the network. You want the amount of… or the value of the token to increase. And so if Amazon was suddenly to kind of monopolize the network, the network would lose attractiveness and so the token value will go down. The network will die but Amazon also loses its investment. So the only scenario where I could see them doing this is a) if they were to make a huge investment into the tokens and then completely write it off on the balance sheet eventually.
You can listen to the audio version here: