This is Part 2 of my conversation with Dominic Williams. Dom and I sat down to talk about how DFINITY got started, how he came up with the name, and most importantly: where we’re heading to. Join our conversation about both the milestones that we’ve reached and the ones that lay in front of us!
Cédric: In terms of Technology and vision, how would you describe what’s the goal for DFINITY? What motivates us building this NASA for decentralization?
Dominic: So DFINITY is building a network protocol and software that people can run. Typically, it’ll be like professional miners hosting centers to create what we call the Internet Computer. And the idea is that rather than building your software in traditional technology stack and then hosting it on something like Amazon or Google cloud or a Microsoft Azure, you can build software systems in a completely new way. You can actually get the Internet itself to host the software and data – so that’s a huge paradigm shift we’re pushing for. So, we want a world where people create software systems that run directly off the Internet on the Internet computer rather than off some monopolistic cloud provider.
The Internet Computer
Cédric: When you say the Internet you mean more on the infrastructure layer then on top of some private companies server infrastructure that’s built on top of that?
Dominic: So the objective is to host the world’s next generation of software and data and the reason I say next-generation is you build systems in a slightly different way on the Internet computer, which we believe provides enormous advantages. But once you build this software, you don’t have to install it on Amazon Web Services, or Google Cloud, or Microsoft Azure, or any other big hosting company, which of course, becomes kind of dependency. You’re sort of committing to another company if you like.
Instead you can build the software and just install it on the Internet. There are lots of curious aspects to that. The Internet computer doesn’t really have geography. It’s this thing that exists in cyberspace, it looks like a computer, it smells like a computer, you can install software onto it, it’ll run incredibly reliably and securely, and so on. The truth is although it looks like a computer and smells like a computer, the Internet computer is a sort of figment of protocol execution. It’s a really fascinating thing.
As a consequence of the way it’s created by the execution of this decentralized protocol between eventually millions of block producing full nodes, it’s able to provide very special properties. So we’re able to greatly simplify the process, by which software systems are created – it’s not a replication of the existing system. You don’t take your database and your Middleware server, and your web server, and all that kind of stuff and stick it on DFINITY; you create software in a completely new way, which dramatically reduces the total cost of ownership, first of all, of software systems.
What a lot of people don’t realize is the vast majority of the costs involved in IT infrastructure and software systems come from the human capital and inefficiencies. It’s the cost of the developers and the systems administrators – the biggest line on like balance sheet if you made one for a software system.
How will the Internet Computer make applications more secure?
Cédric: One aspect that’d be interesting to drill down a bit and you’ve hinted at this before, “How will the Internet computer make applications more secure?”
Dominic: The traditional stack if you’re doing something yourself, a lot people don’t, it’s precisely because it’s so complex and difficult a lot people use software as a service now. If you are going to do stuff yourself, you’re going to have a like a database, a middleware server, and a web server – all these different things a firewall. All of these systems can fail independently, your logic is spread out across many components, sometimes your data is even distributed across many components. You have to think about backing up that data, you have to think about maybe having a hot spare and failover.
DFINITY doesn’t have any of that, first of all. So the software models are way-way simpler. You just assume if you write software on DFINITY that it’s always going to be available, for example, you don’t back data up. Behind the scenes, DFINITY makes sure that you never lose your data and your system’s always available. Also the fact that it’s a blockchain means you have a version of every single point in time right, right? Not quite actually.
So DFINITY doesn’t provide that kind of log of every transactions ever created. DFINITY only guarantees that the current state has been reached through the execution of valid transactions. DFINITY aims to host the world’s software and data. We’re talking about enormous amounts of data being involved potentially, and just simply trillions of transactions in a second possibly, right? So there’s no way you could, even if you could record it, who would ever be able to read it, right?
Clever Cryptography at DFINITY
So DFINITY uses clever cryptography that makes sure that the current state, by which I mean the contents of the virtual hard drive is always created by the valid execution of the software, i.e. the transactions, which make function calls essentially a valid transactions and that the execution of the function, which modifies the data that the Internet computer stores is always done correctly. But we don’t try and store in every transaction, i.e. function call that ever existed. It’s slightly different in that sense.
More Scalability at DFINITY
Cédric: So listening to you about what I get from this is that DFINITY from the ground up, it’s designed for a lot more scalability than other blockchain-based decentralized systems.
Dominic: It’s time for a lot of things. So security is hugely important – like if you want to have an ambition, like we do for the Internet computer or we want to host the world’s software and data, there’s a lot of responsibility that comes with that. I mean can you imagine if a smart city was running on DFINITY, and then DFINITY stopped working, all got hacked – maybe all the traffic lights would go wrong and somebody would get run over or something.
Security at DFINITY
Dominic: So security is enormously important. We have designed a system that’s hugely secure that is also very performant, right? So we need to be able to finalize transactions, i.e. function calls that change that state very quickly – it’s around two seconds. And, of course, it has to scale because if you’re hosting the world’s next generation of software and data, well there’s going to be an awful lot of data storage involved and an awful lot of computation involved.
Cédric: One of the aspects that you mentioned is availability. How is DFINITY making sure that the Internet computer will have this like close to 100% uptime in a decentralized way?
Dominic: So, there will be some configurability actually because there’s a cost function, if you like. So behind the scenes, a specific application Dapp, will be running on what is typically called a shard. And a shard is composed of some number of replicas and these replicas remain in sync – they’re all running roughly equivalent hardware. We know when you submit a transaction, which is a function call, just executing some software, actually let’s say you’re running on a shard with 16 replicas, that software, i.e. the same function call, will be executed 16 different times. If it results in different machines. And if there are some new data created that’ll be stored 16 different times. There is a cost trade-off here.
So we actually believe that pretty thin shards will be very desirable. So we think for various reasons, without going into it, that a lot of people will be happy for 8 replicas shards. But, nevertheless, some people will want to have, we call very wide shards, so different shard widths – like eight, sixteen, thirty-two, sixty-four hundred and twenty-eight. If your application’s running 128 different replicas, which randomly distributed around the Internet typically on professional DFINITY miners machines, the chance that a majority of these is going to go offline and lose their data is really, really very small indeed. But that obviously costs more.
Replication Factor at DFINITY
Dominic: But I think the thing is that generally DFINITY aims to strike a grand bargain – we’re saying, “Okay. The Internet computer does involve more hardware. Look we’re replicating data or replicating computation, there’s all this kind of Moon Math and cryptography going on behind the scenes and just really computing protocols, and so on. Guess what the CPUs will burn harder and the more hard drives involve, and so on so forth. Notwithstanding, by the way, a lot of people don’t realize that Facebook replicates its data six times. So a replication factor of 8 or even 16 isn’t outlandish.
But generally speaking, we’re saying – we’re doing all this stuff behind the scenes – under the hood DFINITY is complex. However, as a result of all of this stuff happening under the hood and as a result of all this hardware working away, the platform itself provides enormous simplifications for people building on top of it. That’s when the total cost of ownership balance sheet for IT infrastructure becomes interesting because if you look at it, you realize that the vast majority of the cost is the human capital involved in developing, obtaining and administrating these systems.
And if you can dramatically cut that, even if people are spending a bit more on the underlying hardware effectively, overall, the costs are coming down dramatically.
Unique Piece of DFINITY Mission
Dominic: So that’s why we think in the end, the Internet computer will be a brilliant platform just for general purpose IT systems. So that’s an unusual unique piece of DFINITY mission. We’re trying to reinvent the traditional IT stack. Our proposition is, “Hey guys. when you want to build a new system, like just junk away all your old stuff, throw away all your databases and web servers, and middleware servers, and firewalls and whack.
Dominic: Build on DFINITY. Not only your cost is going to come down, but because DFINITY is inherently secure, you create much more security, so you’re building hack-proof platform. Your system is going to be much more secure – they’re always going to be available, backup and things like that. They’re going to be much more interoperable after all on the Internet computer. So systems on the Internet computer can interpret each other. And we’ve also got technology that makes it possible to preserve the privacy of data, so that’s another big one at the moment. So you look at you are offering and it’s a pretty killer proposition in my view.