 I'm coming up first Tom is gonna comp it a little bit and we're gonna talk about state channels and give some updates on What state channels that org is and the latest kind of collaborations that we've been doing and then talk about our roadmap kind of going forward So I get us mentioned What's going on with state channels? Where are we going? What to get excited about? So state channels that org you may have seen this website at some point It was on Twitter some talk about it What we're mostly doing here is we're trying to standardize the way that state channels work in this industry Myself and Tom and a bunch of others will show in a second I've all been working on this first like a couple years now and there's been a lot of progress across the tech stack and It's come to the be the point where we can begin standardizing a lot of the lower level Primitives and working our way up towards something that we got a mass adoption By dApps trying to get benefit from this technology in the in the coming year So about I don't know four or five months ago We all went to New York together for an event called East New York and during New York blockchain week And you can see here We have people from the Ethereum Foundation from prune from seller from magma connects and a bunch of companies Altogether we had a bit of like a state channel summit We got literally got into a room and we said okay look what are we doing? Why aren't we collaborating more? Why are we kind of all rehashing the same word together? And we had a lot of like really great results One thing that is important to note is that standardization sometimes can be kind of critiqued Whether you're looking at it from a VC perspective where you might want to see where you know one killer app Dominate the industry first until you see some standards adopt get adopted or get proposed But one thing that we've noticed that's been critical to Ethereum success is Defining standards and defining interfaces early on has led to some of the biggest actual booms in the entire industry You know most notably ERC 20 right after that was you know begun to get standardized when we saw this ridiculous boom You know which for the most parts financed like a lot of our actual operations here in the industry We've seen ERC 721 lead to like standard marketplaces for collectibles We've seen 712 lead to standard wallet Signing interfaces and there's many many more examples of once we get together Figure out how to do this thing right the rest of the community which is largely builders actually begin building on top So this is extremely critical So these are some of the companies that are involved We all have a really cool history if I had more time I'd tell you the whole story of how we've all been working together over the last little while, but we have L4 Perun prototype all connects seller magma fun fair Pisa all these companies and and there's some even on other Blockings have been collaborating another time It's been working on this problem together for the past couple of years And it's only been recently that we've been able to all kind of come together and Standardize at the lower level so so that's quite that's quite good And I want to just cut show the case for standardization What most people don't realize about state channels is that it's not just you know You write this thing once and all of a sudden, you know magically all Applications go wicked fast. It's actually quite a put a huge tech stack That is under the hood of the word state channels and I'll kind of show some of them You know one is the most obvious one is how do you actually progress state between two parties precisely? What are those objects precisely? What are you signing? The other one is like how do you fund these channels? How they how do they actually get funded in such a way that anything you do is meaningful on the chain that itself is yielded many papers of different protocols demanding many different standards difference across chains Networks themselves are built on top of this The actual Implementation of those engines which themselves are large software libraries that we've seen again through multiple different companies implementing these things Many archive repositories and GitHub trying to get this stuff working The wire protocol itself How do you communicate to other nodes if you're familiar with lightning and inter ledger and stellar and all these other network Attempted channel constructions these things are dramatically different across all of them And that's what's led to years and years of lack of interoperability for the most part And anyone here that's worked on things like inter ledger for example know that once you start getting Multiple protocols across different chains together. It's it's disastrous if because there's no good standards Integrations of the wallet level it is as well like a massive problem Once you actually have a good protocol that works when you go to a wallet It can take months and months and up to years to actually get that thing integrated well into wallets And again, we've seen that with lightning where it's been it's been taking quite a long time to get even lightning enabled wallets And then finally the UI itself when we talk about end users What did what does it mean to have a channel? Is it a card? Is it some other object in your in your channel? Is it the wallet itself? We've had so many discussions about this and The benefits for each of these things should be extremely obvious at each level What for example at the wallet UI level when we have a consistent UI? We have one set of UI components that every wall can standardize around and that users can have a familiar experience with when it comes to integrating itself We can have one API that a wallet just needs to import the API for and have a standard interface to how they open and close channels At the prior protocol level. I kind of gave the example communicating nodes between different blockchains is incredibly important Implementation of protocol engines we get this thing done, right? We can reuse the code in multiple different contexts When it comes to funding we can also have reusable collateral Pulled collateral is kind of a hubs so that if you ever wanted to you know reuse a hub and the lighting network in the state You know state channels now we're going to theory them or in any of the existing state channel networks that we have in the theorem You would definitely want to have pulled collateral And then obviously at the lowest possible level if we're going to have shared contract code if we're going to do any kind of Formal verification if we're going to do anything at all about Assuring this thing actually secure it like we say it is then we need to have at least one standardized protocol So it should be obvious that these are ridiculous the good benefits that Are worth pursuing So that's roughly the case for state channels that are in the case for standardization What I want to introduce now is just some updates on what we've been building in a project called state channels Which I'll get into is the collaboration between a couple other products in the space already so One is we've already taken the whole stack that I just described in the single implementation And we've got it on production today, so it's been a tremendous amount of effort between Our teams connect Specifically that have been building on top of it to get a full generalized a channels network on Production today, and this is like actually a ridiculously good accomplishment. I'm talking mostly in this talk about Standardization but the fact that we've been able to have all the stuff working at the point that now we have an example With which we can begin to standardize is an enormous success So like kudos to connects on on getting this working and the great part is we now have a feedback loop with with wallets with infrastructure Projects with applications that are actively using this that can give us feedback on what things they would like whenever we're discussing Which standards to adopt so that's been a great success a Second thing I want to mention is what I kind of said we're taking immediately a step of merging a project called counterfactual, which is initially the collaboration between two other those companies Prototypal and L4 and magmo and producing a single project Which is what I just described state channels and this is a phenomenal example of how once we begin to agree on standards We can dramatically amplify our efforts and you can see this on our github where we have now several people Extremely good engineers from multiple different backgrounds multiple different companies collaborating daily on in building this infrastructure Which you know obviously is going to lead to a lot more output a lot quicker and a lot less redundancy which For me and a lot of people in the show that have been working on state channels or other layer due constructions The ability to say that we're all working together Directly is an incredible success. So that's one good result from the state channel to the organization So I kind of just mentioned a lot of that stuff in practice if you want to follow that specific project We're continuing to work on it. It's called state channels We're gonna have a smooth upgrade path for anyone that's already working on it You can see the code today if you go to at state channels on github You can follow us on Twitter and where we're actively doing updates on that there Yeah, like you mentioned, this is how you can keep in touch with that project So, yeah, that's mostly the case one the make we've taken strides through all of the recent efforts this year of standardization immediately gotten something in production that works based on our initial and agreed upon standards and we're now merging projects in that set of projects to get a Single implementation that's going to be production ready for everybody else to take part in Over the next little while so yeah, that's that's state channels And now I'm gonna pass it on to Tom who's gonna talk a bit more about not just what we're done so far But what we're gonna be doing next Yeah, thanks Liam So I'm Tom close I am the founder of magma and as Liam mentioned we are one of the projects that have come together Into the state channels to org project And I just wanted to take this opportunity to thank Liam in his first role in that and really like getting the teams to work Together and creating this project That's gonna drive forward state channels in Ethereum and ultimately get state channels into the hands of developers so What I'm going to be talking about here is what we've been working on in the last couple of months and What our roadmap looks like for the months coming up? So what are we actually working on in this new state channels to org project? So this is the image you've already seen from Liam Explaining the different levels of the stack and I'm just gonna pick on a few projects that we're working on at the moment and Explain which and they're all from different parts of the stack and I'm gonna explain what work we're doing and each of those projects The first project is a project that we're just calling Protocols and contracts and that's to do with the underlying protocols the challenge and response mechanism And the contracts that support that I'm also going to be talking a little bit about our work on the client and the hub So this is the stuff that you need if you're actually going to run a state channel So this is going to be running on your browser. It's going to be running on a server somewhere It's going to be running the wire protocol It's going to be storing your states and all sorts of things like that and then finally I'm going to talk about a few things from right at the top of the stack and in particular I'm going to Focus on some of the ideas we've been discussing around browser and wallet user experience use of state channels Introduces all these additional Challenges in terms of how you explain what you're doing to a user and how you interact with the user So to start off with I'm gonna I'm gonna start talking about these protocols and contracts project So this is where The majority of our work has been so far So protocols the underlying protocol and the contracts form the foundation upon which the rest of the stack Sits and changes in this layer have to ripple up all the way through this attack So at the beginning of this con of this collaboration We've been focused on trying to get consensus at the base layer having a firm foundation that we can then build on top of So we came to this project with like we each had our slightly different protocols and over the past couple months we've been working to merge them together and Work towards a point where we can actually freeze these contracts in this protocol So there have been a couple of different Areas that we've been working on here the first one that I'm going to talk about is protocol hardening so this goes to I guess the very essence of what you're getting from the state channel and The the guarantee that you want to give people is that a participant in a state channel should be able to progress that channel or Terminate it and withdraw their funds within a fixed time regardless of the behavior of other participants So even if you're in a even if you're the only honest participant in a channel You should still have safety you should still be able to withdraw your funds in your if you need to and not have them indefinitely locked in the channel So We've been looking into this When we came into this we were pretty sure that our protocol was already Already pretty good and didn't have many holes We've been thinking about it for a long time and then we started using this new tool So we've been using this tool called TLA plus which was and a I guess it's a protocol specification language and protocol verifier and checker that was invented by Leslie lamport so it's for checking the behavior distributed systems and We built a model of our protocol in this specification Run it through the checker and it just threw up a ton of problems that we hadn't thought about So this was really interesting and in a minute. I'm going to point you to somewhere you can find out more about it The I guess the to give you an idea of the sort of problems that it threw up It was things like If you are able to front run transactions So it's pretty easy to dine a state channel framework so that if I can get a transaction into the chain Then I can definitely progress this the state channel What we started thinking about is what happens if you can get a transaction into the chain But if your opponent can get another transaction before yours What happens then and we found out in certain circumstances your attacker could like lock the channel forever Which is pretty bad So this is really interesting I think we're now in a place where we've closed up a lot of those holes if you want to find out more about this You should go to this research forum, which we have open source today So if you go to research dot state channels to org you can see about a lot of the conversations that are going on Some of the things that been thrown at it highlighted by the TLA plus stuff and other conversations about the protocol level This specification and later we will also have this basically going to be our place where we discuss all the changes to this protocol Right the next thing that we've been working on is gas optimized contracts So you're probably aware the whole point of state channels is to help chain scaling and throughput and Your ability as a scaling solution is very much limited if it costs a lot to open and close a state channel So for us coming into this project This was a very important thing We want it to be really cheap to open and close a state channel in the happy case And also as cheap as possible to launch a challenge and respond to a challenge if there's bad behavior So we have these two metrics the first one which I've just described is the happy path And that's how much it costs to deposit into the state channel to close the state channel collaboratively And then withdraw your funds and when we started out, this was pretty expensive. So this is 600 gas Which is I guess like 30 transactions, maybe a few slightly fewer than that But like that's pretty significant like you need to be doing quite a lot of activity in your state channel to make it worth it It's this expensive and we've now managed to get that down to a hundred and sixty five If you're using ETH 185 with ERC 20 So this is these are changes that happened in the last couple of months Most of these changes are due to like basically reducing the amount of stuff you store on chain And we think we can do even better than that There this is before we've started like batching transactions and stuff. So we think we can bring this down even further And the second part of that is the challenge part So how much does it cost to launch a challenge if you're opponent blocks and then how much does it cost to respond to that challenge? And this was originally a whopping 11,000 gas 1100 gas Can't even read numbers anymore and we've now managed to get that down to 200k gas So we're beginning to get into the range where these things make sense and it makes sense to use this as a scaling solution Finally, and the final part of this that we're working on is the protocol and contract documentation So if you want to find out more about these protocols today You have to go and read a couple of different research papers and most of those papers are out of date because of these changes That we've made in the last couple months So what we've been trying to produce is an authoritative and always up-to-date specification of the protocol and contracts So this living documentation that's always guaranteed to have the most accurate up-to-date information And we've made some progress on that still work in progress. We hope to be able to release this in the next couple of months But this will exist in the future and this is an important part of what we're working on In order to help the community like understand and use this framework So our goal here This is going to be the focus mostly for our next three months So we want by the end of 2019 to be able to freeze and release the v1 protocol And that's going to include a fully robust protocol the optimized and verified smart contracts and full documentation Okay, so I'm now going to talk a little bit about the client in the hub. So this is work that we're doing in parallel But like So this is like teeing it up for the next thing that we're going to work on when we've managed to freeze the protocol So the goal here is to provide a reference client and hub that implement the protocol And this will be something that wallet users can take wallet creators can take and put into their wallets It's going to have libraries that if you want to build everything from scratch You can and it's basically going to have the design patterns of actually how to interact with this protocol and There are lots of things this needs to do so we're merging these two code bases one from counterfactual one from magma and Both of these code bases did a subset of these things And we're trying to merge them together to get one that does everything that it needs to and so that includes robustly storing your states because your states like money in a state channel if you lose them You lose can lose money Validate transitions detect and respond to on-chain challenges launch your own challenges if you need to and Support virtual channels through the hub So this is another another part of the work that we're working on and we'll also be working pretty hard to try and merge those to code bases together over the next three months and Finally, I want to talk very briefly about some browser wallet UX design things we're thinking about and These are things that I think the whole community will have to get involved in but we've spent we're trying to build a Example application and thinking I've been thinking a lot about What the actual user and experience with a state channel could look like? So questions that we're thinking about here is how should a user interact with a state channel? How do you explain to you so that they're locking some funds? And then they're going to be able to do on-chain things, but their friends are kind of locked and they have to do something to get out Another question is can we avoid approving every single signature? So anyone who's used the DAP today will be used to getting a metamask pop-up Now the whole point of state channels is to allow Multiple transactions a second and you don't want to be doing multiple metamask pop-ups a second So can we avoid that? Can we allow the wallet? Can we allow our client to sign some things for you and in that case how much does the user have to trust the app? You know if the client is just going to sign things the app sends to it. How can we keep the client the user safe? Which is this next question to what extent can your channel wallet protect you? and then finally What policies should a channel wallet be able to enforce and very quickly? We're thinking we're beginning to think that the state channels the thing that makes sense is to have a policy-based Permission system, so you like approve a budget for an app rather than you're approving each channel or each Each interaction so you could imagine maybe something will look like this in the future your channel wallet pops up They ask you to approve a budget It will ask you to prove a spend budget of two E for a given site You approve that and then your channel wallet helps it takes care of anything else It opens it closes virtual channels that opens channels when it needs to it closes them The only constraint is it doesn't go above that to each limit so yeah, if these things are interesting to you or if you've got a use case and I want to have input into how we're thinking about this stuff Please come and talk to us or go to the state channels research forum These are the sort of conversations we want to have with everybody in the community So yeah, that's it from me and from Liam who has now disappeared, but stay tuned So this is ongoing work Follow state channels on Twitter and thanks for listening