 Test, test, test. Okay, cool. So next talk is the current and future state of Ethereum by Aidan Hyman. Okay. Hi everyone. How's it going? My name is Aidan Hyman. I'm a co-founder and CEO of Chainsafe Systems. So I was planning on talking about the current and future state of Ethereum. And then I saw the schedule and I saw that someone who's working on an E3.0 client was actually talking before me. So I decided to kind of not make you all watch through that twice. So we're going to talk today about how to get started with Ethereum and to start building kind of scalable dApps today. What on the Layer 2 side of Ethereum is usable for you right now. So this is really geared towards developers that might have heard in the past that Ethereum doesn't scale and doesn't work and everyone's trying to kill it. So yeah, I'm going to try and kind of provide a different source of information on the current state of Ethereum. So a little bit about us in Chainsafe Systems. We're a 23-person blockchain research and development shop. We only do work though on Ethereum and recently we've started working on Polkadot. So these are our projects that we're currently working on. They're all fully open source. You can check them out at github.com slash Chainsafe Systems. It's all there. Yeah, so Loatstar is a beacon chain client in TypeScript that we're working on. The beacon chain is one of the kind of parts of Ethereum 2.0. It should be live in three years. So yeah, not really usable by developers right now. The GoPRE, so that is a project that we just announced a couple days ago and we're really proud to be working on it. A PRE is a Polkadot runtime environment. So basically this would be a piece of software that would allow you to in Go build parachains and other types of blockchains that could or not necessarily but could be a part of the Polkadot ecosystem. So that's a kind of, yeah, a different blockchain that I'm going to be talking about today. Then we have Chainbridge, which basically allows individuals to have EVM to EVM token transfers or EVM to EVM to EVM. So the EVM is if you're in virtual machine. And so this would allow you to basically transfer data, which is basically a token across these blockchains, however you deem necessary. Waypay is a mobile cross-platform mobile wallet. We kind of, in working with different people, found that a lot of these wallet providers, even if they're open source, they charge exorbitant amounts of money to get people's tokens listed. So we decided to, yeah, kind of get rid of that business model for people and make it completely open source. It's in React Native, so it's really easy for people to kind of get involved with and contribute to, to target both kind of iOS and Android at the same time. We then have Denode, which is a full node incentivization mechanism. Though we talk a lot about decentralization in the blockchain world, we don't really talk about where that decentralization is coming from. So Denode attempts to solve that by trying to incentivize people to run their own full nodes. Right now that doesn't really happen. And unfortunately that means that service providers are kind of allowing people to have endpoints for free or for a charge. But that obviously doesn't allow you to actually build up the infrastructure of the blockchain and instead kind of lets you kind of do it in an easier way, but also in a way that almost is contradictory to the whole ethos of blockchain in the first place. We then have EthLocal, which is, sorry if this is boring anyone, EthLocal, which I'm just trying to explain my background, so you see why I think this matters. EthLocal is basically a module and CLI that allows you to decide what your key management kind of looks like within a decentralized application. Right now in terms of user experience, we're really stuck with something called MetaMask in the Ethereum world, which is extension to your browser and that basically manages all your keys. We believe that developers should decide the own UX of their DApps and so we built this to allow people to, if they want to build a browser extension or if they want to do whatever they want to do. And so that's what that tries to do. The Gurly Testnet is a testnet that we're really proud to have launched also a couple days ago with Afri over here. And yeah, the Gurly Testnet is the first cross client proof of authority testnet. The reason that matters is because in testing contracts, traditionally POA, which is proof of authority, which is kind of the easiest testing consensus mechanism, traditionally these things were restricted to different clients and so there was no interoperability amongst this and so you weren't able to test certain things even on the client side on the testnet. And so this, for example, made certain clients more robust in the testing that they were able to do than for the mainnet and just a couple little things like that. And then Ringo, which is a project that my colleague Elizabeth works on through a grant by the Ethereum Foundation and basically that looks to bring signatures to the Ethereum blockchain. This would be done through adding a precompile that would allow for the arithmetic necessary to be done to be able to be done in a cheaper way. Yeah, that's basically it. So Ethereum currently is an account-based blockchain unlike Bitcoin, which is UTXO-based and it's a proof-of-work blockchain that has an Ethereum virtual machine. So that's just a couple little things to consider when talking about Ethereum and within that there are two kind of layers. There's layer one and then layer two. Layer one is the core of Ethereum and it's restricted to the amount of transactions per second. You can actually fit in a block. And any changes to that require a hard fork. So, I mean, you need the entire community basically to decide, okay, this is something we agree on and then we agree on it and we move forward. So what does kind of layer one look like? This is a little screen grab, I'm not sure if you can all see it but basically I was trying to say, hey, there are this many transactions per block and then I kind of started looking at it and realized more and more how I would be lying to you all if I didn't just show it to you. So as you can see, there's a 5-second block, a 52-second block, there's a whole bunch of different times in which these blocks have been finalized mostly due to kind of different things within the network itself but basically what it looks like is about a 17-second block time currently with around, as you can see, around 150, 100 transactions per block. Just to give you kind of an idea, there's 8 million gas in a block and then 21,000 gas per single, a very simple transaction of one ether to another, one ether from one address to another. This is the current chain data size of the Ethereum blockchain. As you can see, it's not that large. It's only really 130-something gigabyte which really is an incredible feat. It's something that people like to complain about which I'm not too sure why. It's mostly due to kind of, I think, misunderstanding over what an archive node is and a full node. This would be a full node, so this would allow you to get whatever information you need and unpack that data to get an archive node. And so what does Staling Layer 1 look like? It looks like Scharding and Casper FFG, the friendly finality gadget. I'm hoping more of this was discussed in the earlier talk and so I will not be talking about this too much but basically these two together bring us the beacon chain which is that Ethereum 2.0, ETH 2.0 release that's happening in about three years. So we're talking about Layer 2. Layer 2 really has and has more than this but the two main things we focus on are state channels and plasma chains. So there's a distinct difference between the two and we'll kind of explore that and also look at examples of tools you can use today to spin up state channels, spin up plasma chains and even integrate them to pre-existing applications that you are all working on. So what is this Layer 2 thing? Well it's defined as the layer above the base protocol and it's reliant on security guarantees from Layer 1. Now the reason the second part is really important to consider is that a lot of these Layer 2 or all of these Layer 2 scaling solutions they require for you to be able to kind of rebalance the state of accounting on the mainnet. So if we're not able to do that because the blockchain is clogged on Layer 1 meaning too many transactions are trying to kind of go through the network at once we might actually not be able to reconcile that kind of Layer 2 solution. So yeah, it does require both Layer 1 and 2 working together and scaling together but we can still do a lot right now with the technology that exists. So to kind of define state channels Jeff Coleman who's also from Toronto wrote something in 2015 that I honestly think is the best kind of explanation of what a state channel is I could never begin to do it as well as him so I'll put it up here so it's a three part thing so part of the blockchain state is locked by a multi-sig or some kind of smart contract so that a specific set of participants must completely agree with each other to update it. Now what does that really mean? That means that we all put kind of this we all agree to this multi-signature and agree to terms in which kind of those funds or whatever it is we agreed on can be kind of changed so whatever we agree on at the beginning in terms of what allows for that state to then change kind of we do that from the beginning. So number two, participants update the state amongst themselves by constructing and signing transactions that could be submitted to the blockchain but instead of merely held instead are merely held onto for now each new update trumps previous updates what this means is that basically every time we have an off-chain like state channel transaction that's occurring what we're doing is signing it in a way in which it can be reconciled on layer one it does not need to be because we're all in agreement and we're all okay with what's going on but we can at any moment take that information and then reconcile it on layer one without the permission of anyone and that's a really important feature of this. And number three, finally participants submit the state back to the blockchain which closes the state channel and unlocks the state again usually in a different configuration than before this one is a bit more simple basically it's this idea of closing a channel and what that kind of looks like is basically grabbing that state and going to number one that we talked about and meeting the requirements of what we decided to do and then unlocking those funds and allowing them to kind of be sent to whoever needs to be sent so we might have had 10,000 transactions off-chain 1,000 whatever the amount off-chain we're now able to go on-chain and make sure that those funds go to whoever they need to go to and I got that here so if anyone cares to read more about this this is from 2015 I would definitely read his blog post on state channels two really good you can't really see the one on the left but two what I think are the best examples of current live state channels that you could start working with today are Raiden and the connects network so you still can't, I don't know if you can see but Raiden I'll make sure this is plugged in Raiden is an incredible project and what they allow you to do is open, top up, close and then settle these payment channels so similarly to what we talked about before but what's amazing about this is that you can automatically join one of these networks and open these channels with peers all through their kind of throughout their network and the amazing thing for developers that aren't necessarily blockchain savvy is that they open up they have a REST API with endpoints for all the functionality that you can find within the contracts, within the network within anything so it's all there for you and again you do not need to know anything about the blockchain integrated into something you're building they have an explorer so you can actually see everything that's happening in the network it's recoverable in case of an irregular shutdown of the Raiden node which would be a node that's running on top of the Ethereum blockchain itself and they use matrix for communication if you're looking to get started with Raiden start by reading the docs they just went to the mainnet with red eyes their new release and it's incredibly exciting and a really good time to start playing around with it as yeah, this is very new technology that's only starting right now in the past couple weeks to really be there for people to play with another example is Connex Network Connex custodial payment channels are actually being used in SpankChain which is a project that some of you might be familiar with so Connex is yeah, it's live right now with custodial hubs so what does that look like? well it looks like something around this where you have two spokes, maybe two individuals and then someone else acting as a custodian, as a hub and so I do not need to open up a channel with the second spoke instead what I do is have a channel open with the hub the other person has a channel open with the hub and so we're able to interact through the hub to send transactions to one another meaning we do not have to have channels open with each other which saves us a lot of computation in that yeah, anyone can have a channel open with the hub and send a transaction through there to another person so it's really really useful and if you're looking to get started yeah, check out their GitHub it's all there and incredibly easy to play with if you're looking to learn more about state channels in general learnchannels.org is an incredible resource for anyone to kind of be able to get their hands dirty moving over to plasma so I like plasma a bit more because I find it a bit more exciting and it's because instead of state being updated it's more about the transition of state itself similarly to the Ethereum virtual machine it's more about the transition than the actual state this paper was written by Joseph Poon and Vitalik Buterin and it's called from the plasma scalable autonomous smart contracts incredible paper available at plasma.io so yeah, there's a small definition that I got from there so plasma is a proposed framework for incentivized and enforced execution of smart contracts which is scalable to a significant amount of state updates per second enabling the blockchain to be able to represent a significant amount of decentralized financial applications worldwide just to put this into perspective if you go to E3search which is an amazing resource for where most of the Ethereum research happens in the world what you'll be able to see is that people are now working on a whole array of plasma chains one for example that's being talked about is one made specifically for decentralized exchanges why that's so exciting is that you can now make these plasma chains that have the specific instruction sets necessary to achieve what you want to achieve we were recently at a hackathon in Singapore and someone worked on a zero knowledge plasma chain so these really allow you to do whatever it is you need to do for a specific application while utilizing the security of the Ethereum mainnet so yeah these smart contracts are incentivized to continue operation automatically via network transaction fees which is ultimately relying upon the underlying blockchain to enforce transactional state transitions this goes back to the earlier point I made where though layer 2 is super exciting layer 1 still needs to scale to allow for these things to make sense because at the end of the day if you cannot rectify that balance on the mainnet really you've done nothing but lose your money in a contract and then gone and done something with it on the side so this is kind of what the relationship looks like between the root chain which would be Ethereum and then the child chain which there could be you know an N amount of and so that's the whole point if you want to learn more about plasma check out plasma.io and then similarly to learn channels there's learnplasma.org which again it's absolutely incredible that these resources exist now which they didn't two years ago a year ago so plasma group just got announced maybe a week ago maybe less and what they allow you to do is have a command line wallet the plasma operator software a Node.js client network explorer why this is amazing is that simply with these three terminal inputs you could get a plasma chain deployed on your machine right now and that's an incredible feat it might not sound too exciting but this is something that's been worked towards as a goal in Ethereum for years and it's finally possible today so if you have been considering in the past playing with Ethereum and you were kind of in a way by how ridiculous gas costs are or you know things that didn't really make sense from a privacy perspective please do check this out because this could potentially be the solution to building what it is you want to build on top of Ethereum yeah just go to plasma.group to read more about them and then one thing that I have to mention because a lot of our work is building these side chains and then bridging them to the mainnet so basically allowing these side chains to interact with Ethereum itself so something that you know people don't always consider layer 2 are these side chains themselves and so what that is is usually a fork of Ethereum and it's optimized for a specific use case but it relies on interoperability through a bridge so it's this bridge that looks something like this that allows you to deposit something on the root chain and then withdraw it on the side chain or vice versa whatever the case needs to be an amazing example of a side chain is Xdai which is a joint project by the POA network and MakerDAO so quickly I don't have really time for this but what DAI is is a pegged token that allows for a token to remain stable while remaining the most decentralized as possible with today's technology and so you do something called a CDP and you basically leverage two thirds of E3 to get one third in DAI so it's an incredible project that again if you're looking to integrate some kind of token to your project you don't really need to because they've allowed you to have a stable token that really meets the demands of users because there's nothing worse than for example when we go to hackathons and give people their prizes and now a year later those prizes are almost worthless we would have rather been giving people DAI like we receive when we get grants so yeah I'm not going to read too much into this but basically why I thought that was important is because DAI itself allows for application developers to think about blockchains in a really different way yeah that's basically it thank you