On March 5, Dapper Labs, the team behind the popular blockchain game CryptoKitties, launched ‘Flow Playground’ — an interactive platform allowing developers to experiment with creating non-fungible tokens (NFTs) and smart contracts on the company’s forthcoming Flow blockchain.
Cointelegraph spoke to Dapper Labs co-founder and CryptoKitties co-creator Dieter Shirley on the launch of Flow Playground, the lessons he learned from breaking Ethereum with CryptoKitties, and his advice for aspiring developers in the crypto space.
Cointelegraph: Could you please provide an overview of what the Flow blockchain is and what problems it seeks to address with existing protocols?
Dieter Shirley: Flow blockchain is a new blockchain platform that's coming out from Dapper Labs, the team that created CryptoKitties.
“As soon as we launched CryptoKitties and broke Ethereum, we immediately started looking at what other protocols we could possibly move to, because we had all sorts of ideas and interest in additional entertainment experiences that were all based around decentralized technology. “
We knew that a much larger audience than we were able to reach on Ethereum was interested in what we were doing because we had hundreds of thousands of people who tried to connect to our Dapp and couldn't because the network didn't have the capacity.
So we did an investigation in early 2018, and there was no shortage of other people that were promising to build higher capacity protocols. But what we noticed was that almost all of the protocols were dependent on one of two techniques in order to scale.
One was limiting participation, in some cases quite dramatically, to a very small number of nodes — which we thought did not meet the goal of decentralized technology.
The other option was to go with sharding, and we really dislike the idea of sharding because we felt that one of the coolest things about blockchains was when smart contracts from different people talk to each other — one of the problems with state sharding is that it's quite difficult for smart contracts to interact, and some of the newest features about atomic transactions on turing-complete blockchains sort of disappear when you have a sharded state environment.
So we asked ourselves whether or not that was just a fundamental trade-off — that you either had to have some level of centralization, or you had to have some level of sharding.
And we came up with a system, an architecture for building a blockchain that we realized wouldn't have to compromise either — that we can have very large participation, full decentralization in all of the aspects of the blockchain that provide the security and verifiability, while getting the scale throughput that you get by having a small number of nodes that are doing the actual computations.
Dapper Labs launches playground for developers
CT: Why did you decide to build the Flow Playground?
DS: We decided that one of the first ways to give people outside Dapper Labs a taste of what was coming with Flow was to create an environment where people could write smart contracts in this new language Cadence — where they could construct transactions of the type that Flow blockchain will accept, and start to play with a simulated environment that that lets you interact with an emulator.
[Flow Playground] is very much like what we expect the final Flow blockchain to look like. The transaction format is our proposed transaction format. The language is still a work in progress, but that's the language that we expect for all of our smart contracts — we think that it provides a much more powerful and safe environment for building the kinds of decentralized apps that we want to build and that we think other people want to build on our blockchain.
CT: Are there any developers that have expressed and interest in building on top of the Flow blockchain that you are excited about?
DS: I can't speak to anybody who's made any sort of firm commitments, but I do know that a lot of the teams that are active in the NFT space have been taking a look.
“I don’t exactly want to name names because I feel like they should make their own announcements, but the kind of people who are the names in the NFT space are definitely looking at what we're doing.”
If you actually go into the the discord that is linked from the launch site on Flow.org, you can see some of the folks that are active in there and some of them have their project names in their profiles or in their names — so you can get an idea of maybe who might be interested in what we're doing.
Lessons learned from CryptoKitties
CT: What are some of the biggest lessons that you have learned from the CryptoKitties experience?
DS: Oh, so many lessons!
Lessons come from hardship, and so many of the best features of Flow come out of the pain that we had building things on Ethereum.
The language is a great example of that — Solidity was developed when no one knew what smart contacts could do; the ERC-20 spec came out after Solidity. We didn't really even know how to create secondary fungible tokens, and it wasn't until we hit ERC-721 — 700 improvement proposals later — that we realized that non-fungible tokens were interesting.
I don't want to rag on a language that was built really early, because no one could have known exactly everything that we were going to try and do with these blockchain platforms. But I do feel like we learned a lot about: What are the pain points of working in a blockchain? How do you make sure that the development cycles are tight and quick?
So we've built our tools to be much more efficient and let developers make changes to their code to test it out in a much, much faster way.
CryptoKitties was built in a traditional Dapp fashion, where we have our own off-chain infrastructure, but the source of truth is the blockchain itself. Well, how do you get the data off the blockchain into that off chain infrastructure? How do you make sure that you're not out of sync with what's happening on the blockchain?
So we're building tools into the node API for Dapp developers, or anyone who wants to query the state of the blockchain, to make sure that they're able to stay up to date. That they're able to, not just query information, but get push events when something is happening on the blockchain.
And every part of that stack is something that we have experience with: What does it mean to deploy a smart contract? What does it mean to get a smart contract audited? What does it mean to build in this off-chain infrastructure?
We're wallet developers, too. We know the pain of being a provider of wallet software and what kinds of things cause confusion for users, and what kinds of things users are scared of happening, and what kind of mistakes they make that we need to be able to protect against so that they don't lose all of their assets.
And so all of those things have informed the Flow blockchain. To give another concrete example, every Flow account is independent of the cryptographic keys that control it.
“[With] Bitcoin and Ethereum, your account address is literally your public key. And so if you want to change your key, you have to move all your assets. And in a world of NFTs, that actually could be very difficult, very time consuming, and possibly quite expensive.”
So we made sure that all of the Flow accounts could not just have multiple keys, but allow you to revoke keys. Multisig is built in, the ability to cycle your keys is built in — so that makes things much easier for users, and less likely for them to either lose access to their accounts.
Advice for aspiring blockchain developers
CT: Do you have any advice for aspiring developers looking to build in the crypto space?
DS: I don't know if my advice would be any different for crypto people than anyone else — create something that people will find valuable. I think at the end of the day, that's got to be the most important thing.
The exciting thing about blockchain is that it just makes so many more things possible. I think we've created this whole new possibility space where entirely different kinds of apps can be built in.
And as we're really seeing in the DeFi space, this sort of decentralized computer platform allows scenarios where very relatively small bits of code can interface directly with other people's code. And you can create these whole complex systems of interconnected code in this blockchain. So what you need to build is maybe a lot smaller than you think and you shouldn't be afraid to plug into the rest of that ecosystem.
“I think that's where the real power of blockchain will come, is when more developers realize that they don't have to build the whole thing — they just have to build that one extra piece that's missing, and that can be very successful. And we see that over and over again in the blockchain space.”
David Shirley on ETH 2.0
CT: I was curious to get your take on Ethereum's ‘ETH 2.0’ revamp as someone who has intimate experience with ‘Ethereum 1.0’?
DS: I think Ethereum 1.0, it created this. Bitcoin created the idea of decentralized networks, but Ethereum created the idea of a decentralized computer — and that is why we're here, that's why Dapper exists.
But the reality is that there are a lot of changes that need to happen in order to make these systems able to scale to a large community.
I think of ETH 2.0 as, in a sense, not that much different from the other proposed protocols, because if you have a Dapp on Ethereum 1.0, it will be a part of ETH 2.0. So CryptoKitties will still live in Ethereum 2.0, and that will be great.
But, if you're building a new app and you want to take advantage of the new features of ETH 2.0, it's more or less a brand new blockchain.
I think that team is doing the best they can to design the system within the parameters as they understand it, and I think that there are a lot of amazing ideas that are happening in ETH 2.0, but for our purposes, for the kinds of apps that we want to build, we just felt that the direction they were going didn't didn't make sense for us.
NFTs reflect the ‘real-word’ economy
CT: Do you have any predictions for the use of non-fungible tokens in coming years?
DS: Well, the funny thing about non-fungible tokens is that in the real world, almost everything is non-fungible.
“We don't even have a word for non-fungible because it's just so common. You are non-fungible. Your car is non-fungible. Your house is non-fungible. Your shoes are non-fungible. Everything in the real world, with the exception of money is, more or less, non-fungible.”
And it is kind of surprising that this idea that non-fungibility should be the exception and not the rule on blockchains, whereas in the real world, it's the exact opposite. And I think that the decentralized environment is just going to start to reflect the real world more.
Fungible tokens aren't going away by any stretch, and money isn't going away in the real world either. But I do think that as more and more things go online, that more and more things will fit into that bucket of being non-fungible.
Whether it's recording real estate assets or in-game items, or even just collectibles and momentos, I think that as time goes on, the non-fungible use cases will grow and grow — not because it's some new invention, but because that's actually how the real world works.
Flow “doesn't really matter until other people are using it more than we are”
CT: What are you most excited for with Flow in the coming months?
DS: Aside from actually launching it right and getting it out there and seeing our own apps running on top of it, I think the most exciting moment will be when we have somebody external, whether they're a partner or an independent developer, and they create something that we couldn't even imagine — and we'll go 'whoa, really? You can do that?'
And I am absolutely convinced that will happen, I obviously can't predict what it will be, but I think that's going to be the real 'wow moment' — I genuinely believe that it'll happen and I'm very much looking forward to that, because when the blockchain isn't just for us is when it actually becomes what we want it to be. And I'm very much looking forward to that day. The focus right now is that people can explore and play and try to understand what we're doing.
When we're doing these things, there's always the risk that you're doing the wrong thing, so we really want to listen to the community and make sure that the approach we're taking suits their needs as well as ours.
I hope people will join our discord and follow us on Twitter and things like that because we just really want to be involved in those platforms where they can send their questions and concerns back to us, because as I said, the thing doesn't really matter until other people are using it more than we are.