State Channels Summit (Devcon5)
Devcon·Fri, Oct 9, 2020, 12:00 AM
Qingkai Liang, Liam Horne, Lisa Eckey, Sebastian Stammler, Franziska Heintel, Arjun Bhuptani, Augusto Hack, Jeremy Longley, Tom Close
Transcript
[Applause] we all is developed generally fermentation some puns on tape dominating particular properties of what it is that you want this stage to be about where he rules of that challenge following the channel and so and they can make some funds into a context on change effected concert in this case we have an initial state where they like that fine and then if they make an analysis in seven except so these are the series of transactions that people make even saw you so we end up with a final state we've distributed to change his mind [Music] accordingly so this channel is just which funds to really use too much for more complex interactions with the extension sheet so stay tuned see we are determining has no side effects so by the terminus it can be made you every time you might be second to this - grunts that machine easy in this state is entitled attack and then using this technique so we're going to talk a little bit about any an example of this over the first of the few tools so we picked this this is because in terms of state alison actually working for a news experience issues so choosing how much this is the properties of the channel so i'm choosing how much funds to open the channel width and signing in transaction and that translators sent to the changes so you might see them you know the other council policy which is housing up example it's also join us in a transaction it's all simply missing funds to be checked and set up face and so when the chain is open because the team's open we have been busy to play our game versus advancing stone so we can make the player is taking the premise equals event and see it's a random numbers process every school talked about that it returns down winnings and each time that that was unveiled in this corner you can see these are the balances of the player and announcer the team people to the channel these balances change as the game progressed [Music] so in order to look at this we need to implement the rules of its kind essentially we need to establish a protocol for orderly state transition as we need to and of that and that's pretty much the they install so yeah the way that we're going to be going to this is I'm going to do a bit the tongs gonna do a bit and we're gonna explained is one part very clearly that we just anodized first a channel so this is specifically the state progression protocol and how you move state forward and we're going to go through the example of relents but before we do their legs and fungus the abstract what you state so instead of into that forgive ourselves so what is this thing I mean a physical question was like please much at the mountain because this is like take a long time people to point where this was all the rage upon and did anything because understood is very useful to verify so what Wednesday English this is exactly everything so it's a pretty comprehensive listen to go through and the sponsor know go through them so obviously in every state object you need to know who's involved and reason why is because this is a fixed set of people you know I am sent where company needs to know that so it's in the state's the list of addresses to is the chain that identifier is this maintenance that Robson's that bring to be what is this as they like it yes there it is need to know of the janitor fire is three is that you need to that apart for this particular channel so that's basic one number for all the chance to ever use as a client to track of that fourth is the challenge area so if you you need to go to the change you want to know how long are we gonna wait so again this month this is per state you keep track of this and then it's version number obviously because this is say channeling to keep track of each time here committed person number I think is somewhat obvious but it's important to know this is that there you say dogtective see one bit though would be found by the state this one's a bit more nuanced if you're not familiar with say channels every single time you update the state of your channel for all channels to keep track of if this state for the last state never you know for example in the real life game you'll see it's using exams of is if it just ended there you know who gets much money right is it a final state in state challenge the notion of late a week but we've done for sure and if everyone signs off on about the final stage which I'll show you can know that you do not need a challenger because there's a motion of family you're not gonna progress further from this particular state it's not going on the definition of the state machine which Jeremy just described as a necessary and important part of state channels what exactly defines how you move from one state to the other and these the application-specific state data obviously like a state machine only makes sense if you're passing in data with and then the most obvious pieces a signature of eternity now normally maybe it's a challenge really like you sign each state update with everybody but we're gonna describe how to that to be a bit more simplified for each individual state you just need one signature to move before so that's the English question so it seems like some of these are in addition wives where the channels created and then they never change but then other ones are okay yeah I'll show you I'll show you exactly that in a second so this is back when I subscribe but it salinity types okay so look it's pretty self-explanatory some of these are somewhat numbers nice and you can see to your question that somewhere fixed summer than ever the fixed parts is they the entire duration of the state champ King so honorable inattentive coolest same people same long chain the same unique that apart for this channel the same challenge duration longer than your two biggest and everybody's circuits dead and the same state machine which is what we call the app definition you'll see why it's a half definition variables of turnover it goes up the outcome changes based on the situation that you're at the game the app data august agendas because professing the state is its final changes because you might get to the end and the signature changes because each time you get a new solution so this very specific resorting to keep the final all these properties of space vital so some some things to keep in mind each individual states it has a mover that's a you can see an example of how stages progressed between two people as they passed ball situation here one goes and the other goes that one goes and the other goes as always it's not one sums up maybe to see maybe maybe it's always ABC ABC ABC it's cyclical in that sense and again there's a lot of reasons fundamentally because this is a unanimous consent protocol you need to be able to account for the fact that every single person is involved in this protocol and has to be consensual to State updates work and we're nothing without the good case then one compute the other you can't attend every situation since it's fundamentally in some sense you want to move through each person for simplicity and so there's constant a mover and we were is pretty straightforwardly as though it's the person of dismiss lists who is turn them checkout person on says March 11 coolest time to is pushing forward 0 1 0 1 0 1 0 so obviously the person whose turn it is at the side of the state that should be fairly straightforward you can't have Alice signing the state where it's meant to be bought which means if Alice is signing some state sensing this ending at the bottom if that is the latest in on the state it's expected that Bob is going to reply and that's a very important property if you want to know if any way you can assert that someone is at fault by not responding that is very useful for a run on chain 153 syphilis Boston and other properties that would be is fine a lot of fire anyone can exit anytime if at any time I choose I'm done I can say that this is final for me if the rest of the participants sign up with their return say it's also final it's over so this is not always something you want to do usually it's going to be not in your favor to this end abruptly for example and here seems roulette if you will if you want to end abruptly when years when you're expected to be making a move such as like rolling then you're basically doing your board you use a quick profit but it's useful properly because you do not want to be locked up so the main point being made here is that you should want to be able to attack we should be able to exit any point in time if you choose does anybody's unlocked but I know that you're going to be losing out because you did support where operation in a payment channel attempt it's more simple because you can end the payment channel at any time and so declaring his final is saying I've done with the channel and then some of the core state challenges in logic is operated on by this balance understand function the way that state is considered to be valid finally programs to that the balance just between any two function returns true so you take two states s 1 that's 2 it should be true as two mystery it should be true and the most basic possible example and right on the slide is a counter in a counter this application would be as a number the next logical state is that number plus 1 ok so here you can see the most basic you know statement mr. Cochran on state machine you want the S to counter to be two plus one if it's not it'll obviously this one so there will not be a true outcome and so that is pumpkin under pressure so Jeremy was talked about in fantasy is there a difference between the advanced state of transition yeah so this is the new ones we want to be I can explain that lets you know ones that we didn't learn which one the slides but basis as it as clear as I can't rattle condition as a function of suffice if you have two states if you one about some of the jitters so the truth advanced state is from the way we look at it more or functional interface on top of this function and you can think of it as if I have some stake and I want to advance with an action so let's say to take that type echo board I want to place the excellent metal board then result is the ticket to avoid I would be excellent so we free think through the previous or give the action we have the new board if you know you can write a function file condition which says take the hash of the preview of the young of the side of the new state with the X on the board that's very well one and then we run apply advanced state for the old board and the action and you get the output from that function and compare the hash of that equal to the hash of the new state being proposed which estimates so the hash of the sentence states is equal to the ban state s1 plus an action that is about conditional so this is just a slightly higher level abstraction which allows for that to application to be built and also for this kind of operator to be built and since we're not this is more about the standard of the state progression toward : Thomas so standards for how you write applications developer one of you or maybe that's been simpler we think about shouting this way because this could be non-deterministic so there's one thing I didn't well I say it can't be this was pure and so if every toy deterministic piston state yeah let's so you don't have access to the action so essentially you have to be able to tell that it's a valid transition yes and like you mentioned in that for this but it's however I think that the thing I mentioned you can do right on top of this generalize the person that you do have access to that okay and that's more of a way of describes for example a TV playing artichoke could be defined in terms of have to think in general essentially like it if it was hard to like it the state transforms complicated than percent you know just potentially without the action it might be hard to actually like calculate whether or not that's Jim properly and that's one way always actually indistinct that's right how you define yeah that's what I recommended for application building permissible for the Roth or recalled admission and he has a pole of attraction so that's my part of the song so I'm just going to describe that's written in the country the audience just explained the cat's is structured states that are gonna stay calm and what I'm going to start by talking about is how you actually write an application that runs in this format and a focus on is based on the roulette table patient the Jeremy VG's we're gonna simplify it slightly absolutist or so will be another nap is this example which we're calling red black we left and red black through that is basically just relate to be even only choose the red numbers black numbers so you just went through how this works you can either pick spread or back and I think we're looking at a two pair scenario where as it does giving what we've got playing at a house was the two participant station out here there's not one pot inspired young so they see that they look at the house been inside and an amount wagered on the house decides whether to accept the pastor knows the real entity has been spun I generate a random number between 0 and 36 and Fairwinds in a chair a businessman and non zero or with a truth black so the interesting thing here is going to be that or third point where the relocate is fun and it generates a random number in tariff exits and we're going to to do that in a state channel and as a spoiler the answer is to do a commit reveal scheming for ameliorate balance a little pen style so you in order to write this mistake child we have to break this process down into a series of different states and define which transitions are allowed between those states the case of relent we're going to end up with this state machine here so we start in this top left hand corner in the start state the start state listicles the balances for the house and the player so when they like entering the state channel where girl and in that state and those amounts should match the amounts there later the next steps of the poster synthesis the things that the player selected as as the instead of these first two terms so we go to start and staff proposed is going to be player does the house is gonna respond except the players in as 100 revealed and then we gonna go around around in terms of these states so to start the game the player formulates proposed step and doing that very step has balances inactivate the wager in this case I want to wait in treaty they choose their color and then they commit to a random number I think you meant to random number by dividing a hash of the number that you've chosen in this case for and some secret body and that's the thing they made into the state and they said that into the house and out a little bit laterally I happy to accept this bet it's like yes and say then they reply with this other state they take everything into a state and to that they add their random number so we're actually doing what aside from it reveal but that's fine say like at this point the houses just like kicked around number and then they said my master plan now the pair at this point there is worth everyone knows they can see the houses rounded number they were there at the Concours and the next action is to reveal this state so the reveal state has the final in position so like to convey that home position they had to get a mystery random numbers not too very committed six seven loosen they seven generate that they would be less salt they used to hash there under number so that the house been verified in there my teaching is competitive and they calculate the winner and the updated people's correctly and then they continue around this thing as many rounds they want to do so these are the different states and this is how we're going to model this despite relaxed game in our state channel so when we're actually writing a state contract we need to encode these states and we also need to encode the valid transition rules these days so if the starting to start state what are the possible bodies toe state to the pea crop is obviously not we have to be quite specific about which which states are okay so for infinity pink now it just go through each these transitions are expected we'll probably start getting you know say don't what is insanity the first rule here is the house balance can't change so we can't have to say like formulating at the bed and some you know taking with us money really well change this is kind of basic stuff the wager has to be smaller than equal to the house balance and the way to have to be smaller equal to the Pythons choice has to be red flag and after that with it so these are just like pretty much like takes about education things it has to be equated into a small contract and the reason has missed by creditors our contract is if we end up having to step on chain the chain needs to able to check like will come to this later felt like one thing but the problems about the interstates like is the one of the problems the state channels is one player stops responding and that's the thing we need to get a changing role and you have to be able to say you know like you know responding I'm gonna change your change by the next eight and it's and the change has to be able to check whether the state you provided about a transition so these Google's do need a small contract and this is like the missing okay the next one is the proposal is get little bit what you think so in this step we update Alice's and again we can explain why update he bounces like this later but as a big speech video is basically because you're thinking what happens if player doesn't respond to the next step and he basically is prepared with respond to the next step let's do it a later so these balances have to up to you update that this does he missing part and in this book we change the joy should change the house changing the players run eventually change the next one if you set the reveal this is where life makes the coaching of the actual application in so to meet us that the planet we need to make sure they have calculated the joint random number correctly and in doing that they've used the value that they've repented to and that's what this does basically recalculating boxes what was the difference in position of house brothers number and then we checking that when you touch that with the solders provided you get this this random planet the last and the other thing is that we have to calculate and win it correctly now that's just--that's that looks like it other describing my earlier ballet if it's red and even not korean worthless stuff and we also need to make sure you update a house band played on correctly in this case you can see that the player is one and batters mistake then finally going through reveal that to start the facial balances okay so what I guess we're just described there is a gain of this cific parts of writing mu net as a state channel application combined if that are the framework parts which isn't as definitely in learning into so what so here is the state where a jailer is how we actually take that light a specific and put it into the state town or framework so this is the statement the introduced this is how it maps onto that start state trade Philippe so we've taken that light gauge specific stuff we've put it into a donut framework stuff so that it things like participants the addresses the assigning addresses the participant stored in an array got the chain ID a channel and the channel monsters picked by the players to make sure that the channel ID is unique that the next time there's a definition by writing it that we let that I mean the address that the on chain smart contract I've cleared out the bullseye a to previous light turn number starting at zero it's the first stage of thing the outcome is what people catch this chance go to this petition that's the house balance and pay a balanced state just and then we got it's not final so the actual third the light the gamestate and Gables and that put inside frameworks page because it's extra stuff and there are also some framework of rules which define the how these states are out about dates and framework will cover things like participants had changed chain know you can change the term number must increment and anything grouchy gonna go places these Colts beat you find those and okay so this is how we construct initial state and going to say one that they were actually craft well and they also can pitch a mighty so the channel ID is activated by mashing together the participants and the channel noise and the chain ID so that's how we like identify this channel and that's gonna be important when we start putting money on the change purposes in this channel is really that child identify I'm just gonna cool that our one two three in fact that's going to be a byte certitude buddy it's going to be each other to find a channel and it's one of the participants make sure that is so together they can make sure that that time they can change that telephones to make sure that they had why did they they that's one of the things they have to take on they should never enter into a channel with a untidy that word exists on the curry on the hot-tempered we are often called it so check is a user participant to make sure each attention to another channel the same ID so the burden that in addition to all the other object stuff I have I never talk about all the knots I deal with there it's not to store the highest not see each always you can also do things like you get around this bite the addresses the top there could be a temporal addresses so it might mean that you'll so if I just generates a brand new address to you every time you enter into mr. Fun Run Derby nameste college just one from the Hongshan that not clear so exactly what we made possible yet we'll see kind of like every country yes sir you'd like a lot of these channels allow these young ladies to change under an interpreter so I picked a really can't keep track that's what you you have to do it again the first is talk within a place my important field so I'm basically going to find a lot of stuff that just tastes the same and say this is what I'm going to get beautiful and what I'm going to do now is I'm going to go through state by state how an interaction this patient would actually work with all the updates in this format all right okay so this is the this is the first thing we start with they emulate the stable and you can see its got like to be the star state in their house and a house is going to moderate its next state set it back and what the players are doing here is they're doing a big big kind of shape so we're doing this round when they're doing equal is the pre-fund setup round and it's making sure that both players have a state that site where both of them before they put any money on the chain and that's important in order to play it safe it's basically their key to releasing that money if something goes wrong so both parties now hold two sided states one of each person in charge we call this is the court from a state one it's like some even tries to change to show you that both if we got to state 1 it's like it's I guess the format is like signature pair 1 by the transition signature they're two they're going to stay between together and tasting each Thunder that's like the induced agreement that changed Sabre likely state why you will check remember Ireland yes you need both because each one is ID signed by one participant said general prezygotic wins I need signatures spiritual apartments people otherwise I can join you naturally I just like be like if I get it creates a tent but they're not to change it up now I need to focus it basically the reason is pick up in speediness turn taking stuff is a consequence of that if you can assign in each person is can assign one state in the you need two signatures not need to eat in space we do not have an optimization we need but after you send your son part of the party that sends the turn number one that he has no confirmation the other party receive plenty yes very simple medicine zero what yes offices at least once a day and Cassandra yep then bombers and the new turn number one - I hate to say what happens not a century 12 and then folks in one Telus at that point Alice has 0 1 and 4 K serum on and when he first has 0 1 then is say to them chain so the only two entities is GT painter which is one chain contract which is going to hold the funds for the duration the tunnel and it is also going to be responsible for enforcing the rules if the times it is a separate event so you at moment we're gonna have to just think of it like in actual fact educator this suite with a number of contracts by just going to consider it as one contract and it's gonna have addresses that's created as a child balances so now they've both holes in these two states they can then deposit to prepare the players answer first and say the first participant today August wasn't method and into G into get the channel ID and amounts or next to it and then the half deposits and you end up with channel ID and 10 stored next to it the order in there is important the ordering there has to match the ordering of the participants and the reason it has to match that is because that's the order they get the money out in so like if you ended if their channels any partly funded the first player is going to have precedence in getting money out first which is quite a bit of the universe that should become a victor okay so once they see the coins to the gym later they can then proceed with the off the exchange in space to have done this pre fun set up that deposit we're now going to have the clothes upon the setup stage and this is again part of the framework transition rules and that is to proposal conscious / - like acknowledge that they know this - Thomas now funded they both see the money on the chain so again that is gonna echo the same state back and forth so they've now basically got four copies of this like start state with increasing turnovers the first two other being that pre-punch set up but after being placed on set up and now in a position where all the participants agreed to go to the channel with by the channel and now I can actually start winning a village so I have a fix so these next states when you start any algorithm here we are actually you can see the update has expanded and side the updater we've got way states that I have stationed see major choice that around an event so guys tell you state and the house respond to this this access date and they run the company the next stage three to you the reveal state again it's all packed into the updater and we finally finish up in back in the start a still don't like all four states in that lets a machine and it will packed in to the site framework estate is rounded suppose now that the player wants to start stop playing so what I'm showing you here is a hatch case scenario the state of estate channel so I deposit in play you can conclude collaboratively so in this case what happens is player then site the exact same state but putting its final to true so this is wedding what's going to happen here it's both but it's gonna going to like sign off on the final state so that they assigned the state the final tree house by the state final true they're both holding two states with quietness final true relaxation so they hit like both both players to sign up on this and that's evidencing gives mr. change say we finished this channel without TV d and then take that conclusion proof we're going to provide adjudicator and the outcome from this channel is going to get printed into adjudicator so if I now confer dishes prepare that seven thousand three and ice that it's like stored on the chain and at this point we say the child is finalized I'll come that we agree of chain has been registered on chain and it's the final version of that child so this idea between method which we've met the checks the victor players are I like final States and they're about a condition in stone and then finally the final step is to actually get the money out of this and the way you do that will transfer so transfer by a channel it looks at what was in each debater like well it's my laptop that's the best place out best place out to the first thing the after it sets up to zero and then paid out to second person to help us pay out the external during addresses so the money is now after the contract and we finish the state child interaction the interstellar talk about what happens I think they're wrong with all that affection separate bachelor dinner cards for each application No so the way you have it currently is that we have one adjudicate contract which is responsible for the third way going from sunlight each outcome and then we have best suite of asset holding tracks wanted to each time you want to use as bait channels is like an asset holder is the ERC 20 asset holder but it's pretty important absolute these things are all the same contract way to get on having like more advanced channels of fun for another is any to be able to send money within the contract to each other there any more questions beforehand over so okay so great that's how it's supposed to work what what can go wrong I'm not going to talk about the two most important cases as one so it most important areas one is the player is playing and sending estate to the house house deficit and he's waiting for the player to respond and dumping that software is just waiting and specifically when this matters is in this example right here where the player like gambled some money on some unread and the house accepted the gamble and the player now is expected to the reveal that we starting to target earlier and realize they home like Isaac lost I said they sleep what happens this scenario you know like I said the house is gonna have its funds locked unless it does something so I we do is we introduced into the adjudicator this new method called challenge and challenge is basically a button you can push on the adjudicator which requires that you send in like Tom mentioned a has it been a supported state that shows that the player chose this after this choice I accepted it and now the guy's not responding so for step two basically by initiating assignment so you pass in the last state where Jennifer was made they had proposed their their state capacity or acceptance of its you taking the buck bundle own into the contract the first challenge and what happens is it puts this data on state it's supposed to end at 73 at this point in my acceptance of the state was an important kind of subtlety there the outcome immediately after that house except sit at this point says the house wins because if that state were to be the last state ever which is the case if the players respond to this challenge the house should win is basically what attack what that means is that this was the last state the player does deflect which is a kin to that informant so we say a 7-3 I want my money I attended it as a time I've had that's timeout of the length of the state talents duration I mentioned earlier and you know this is that looks like and the guy who doesn't respond after that timeout is finished you know the number of locks is passed once on the translation then basically it's considered to be done and in the same way that you would with a conclusion proof from what Tom just mentioned with the chain says single 7 3 that's basically selling chain it's now 7 3 and the channel is done this is what happens if someone stops responding to you you can always forced it that's why it is hope things will forcefully protocol fees if anything at a point in time - as long you can push this button and force your counterparties to make their to take their time so there's two beds without they're forced to respond in some way they both get a copepod region and in the states in this when they have accepted the bet that the player made the applicant was changed to be the size of the house 1 this point that has the sense of bet I now get money and if the player route provides a reveal state after this that is one that calculates that they were the winner bases that function we mentioned then it would change to me that the player won in the next state however you know ultimately maybe the house won the same situation so that's basically what happens here is you force them to make their moves and the only logical thing that they respond with is something that passes about just testament they're forcing the state machine for that's challenge however there's like another version of this where maybe the player just like was gone for a little while and they weren't actually trying to not you know respond because they thought they lost maybe they actually did win just like close the laptop for 20 minutes on a cell phone see a lot of cell phone signal something like this basically they should be able to respond right that's my way to time up and so pretty straightforwardly you can imagine the state exists with a lot of a second ago actually I swap the seven we do it consistently in this case McLaren gets the seventh because they revealed and the fact they they did choose a good number they chose red it was red and the most they should be able to do is take that go to the do Decatur and respond so we introduced new button don't respond you just pass in that late a state that you signed which is a logical transition based on the rules and then you'll be able to see their challenge basically if it gets erased and they can it's been playing at a loss until they're going to decide to conclude maybe there's another challenge scenario whatever ends up happening the point is like they weren't malicious that came back everything's okay and the chain allowed for this to say so those of like that's a 99.99% of the failure cases the only other failure case was patented but slides are super quick they explain it is you know maybe it's something maybe the player decides to put some super old statement wait at the beginning when they were back at five five then what you can also do is the third button is a checkpoint and pass in the future state that's way in the future a tournament and then whatever and it will effectively slash the player is that's the most obvious case of dem trying to cheat but that's the more HP software error situations that's where the unexplained question of slides these are the nine hundred ninety nine percent cases the actual launch and operations you need to do so that's the respond coach that's it so everybody's rushin something about humans so yeah any questions does it today have an incentive to respond if they lost but they want to keep their reputation as having enough time or something to complain they like I mean if they don't respond the best with them as a pawn chain artifact same like at some point they were expected to respond they didn't so if you want to keep track reputation then you probably take that into account so they wouldn't necessarily default or not you want to take like don't know times of change where the latest one to you or where I responded to you you thought it so one thing you can do is you don't have to make the numbers all line up exactly like you can make it that you lose a little bit more if you don't respond that if your spawn say he lost and there's always at least some incentive to respond yeah yeah there's all kinds of wishing optimized like um distribution basically scenarios this is like the most basic basis there Pat challenge are you settling on Shane or the funds box and distinction Oh so I guess what happened ensue if you know cheese challenge and the customer is spotted in that channel comes five lights on chains and at that point yes it's identifiable form if you computed it all it means is if you have your channel ID and your outcome and adjudicator said that where you just transfer out your funds just like we did in the exam to be okay tonight in the happy case if basically we've got the exact same situation is in the happy case but you have the change doesn't respond can't be one that moved upon distinction yes sir if Ted is gone you wait the timeout so today it doesn't respond you wait you just climb out of that timeout finish go then exactly the same situation in the title is finalized on change of channel and outcomes in the GTA 2 and then you can use Oscar instead of on top then for one good how does the contract the time is like there's a house need to send another conductance a mr.
Challenger period that's like them like it's basically you tell me when you actually want to interact with this like it's not that change that's not actually literally say like maybe the time is done protect mark alludes to it's more so the next time you to interact with it there's a check which checks enter the title up that I did it effectively as collectors you don't really need as necessarily to kind of check that the boolean flag saying times up but you can see like the challenge and the block numbers probably greater than that generally need to register that check mark merchant so so put it another way you just watch the client side and then just go to withdraw because you know that the times up and then when you go to withdrawing it checks and says yeah the time was enough so kind of lazy evaluates it says the house I would submit it Yeah right do you want to draw the money anyways so you just say hey withdraw and it's on here after the time period you know that together it's just you know chill our talk tomorrow we ever talk tomorrow 11th edition I think I'm a two-stage we're going to talk about this general project and Walker both might be condoms way that Karen would make great memories and there's any what about the funding for cohorts all they would stuff we're talking with that and hopefully now you know like forgetting standardization of not channels all of those we have some great working folks a lot of which domain image thanks my talk about today and yeah it's an interesting Channel say thanks for all right thanks my and we realize that's a really really big topic so we nerd that down into means arouser and then realize it's still a really big topics economic one very specific these are experienced future improvement that we did and then I'm just going to hand away believe allude to the rest of them at least sometime in and you guys can like sort of choose your own adventure at the last moment so that yeah structure this talk is gonna be about three slides of mutually connects so I'm just going to give people a background on what could you and found that not a lot of people know yet and then after that we're gonna jump right the channel provider standard that we're trying to it went both within our system and then also have that be useful across another channel cool what is best so we started out as a user experience company we spent a bunch of time trying to figure out like what the key barriers were to getting people to use aetherium initially we thought it was sort of like a bridging mechanism we needed to find better ways for people to bring their value chain and we sort of realized okay right before people either bring their value on chain there doesn't scale and it's just a really significant consistent environment which is absolutely terrible for any kind of development and and so since then we kind of shifted to doing channel stuff it's about a year ago we went live the first women channel imitation or just spanking from a telephone that was actually at Def Con last year and F my master I said we were going to work on getting this integrate more places and make more usable sort of good because we did actually do that and it turned out to be a lot harder than we expected just because when you put this stuff in front of people you realize oh there's a lot of really like base assumption like how usable these things are in lemon limited market and that you really needed to validate and sometimes to change so after after doing that we we realized about halfway almost half a year later that the the best way to do that would just be to like build a full stack environment where we we were controlling everything from lengthy channel protocol contracts all the way up to the wallet layers we actually built a production-ready wallet the departed browser earner style slash a style wallet and it like influenced my clothes and and then put that in front of a bunch of people who actually used it like all the time still a lot of completed which is kind of cool and it seems like mostly it's being used for like demos of channel stuff or as a reference implementation but it was really really helpful for us to understand oh wait so many of these things are completely wrong and that directly led to us working with other more like other really interesting products in the space like you know he talked or while it was I know and so it's time for me to get the sort of being dimension built a lot of exposures origins cool where we now we went live at b2 b2 uses the state channels framework at least a sort of precursor to it which will have like a very directional would like very it was transition it was the contract said the same and then we sort of aggregate all of these lessons that we learned from doing things really really made for a while and then we also significantly improved our trust assumptions we said we still look back at the way that we were building things and said okay how can we reduce the amount of time to hub is holding on to user state not do the thing where we like kind of just pretend like the user is like we sort of had this assumption maybe one we're like okay well the user can back up their state we're always just give them a lot of state because we really don't want to ever have a case of it like the user state break so we just hadn't had the time to fix it it's like things like that which which are second level assumptions outside of the language based bergamont environment which are really important thing obviously and where we're going everyone keeps conveying that nobody's using channels so we're gonna make you believe them this is a this is sort of where we're like trying to create the next few months and then next we're trying to like build something new system then hop into and eventually decentralize a little more like what cool sorry sorry for being chill back to a state to lid okay so how can we make a channel to let's say and you feel better in the browser this is actually like a harder task than most people realize because there's a lot of the sort of common things that people talk about like you know how do you backup user state in the browser process or a really insecure environment you you don't want to or your keys there but you do want to put your state that every deal so you want to backup your state somewhere else and then then you have all these other headaches like okay but in reality users aren't just gonna be on one browser at a time they're probably going to want to have their channel available on multiple different devices you know and like when you when you do that on your choice shares between all these places we kind of decided male just focusing on one very specific problem which is the biggest user experience hurdle we've seen so far which is that the hardest part about using layer two is that layer one it's possible and in like anything any point where layer two touches layer one is sort of the biggest user experience ever a really good recent example of this is that we spent like a year with our channels on painting that made into this problem until about two weeks ago in the whole air happen and then for the I don't know where users started saying like hey like I'm not able to deposit to my channel I'm not actually put money in there what's going on is your stuff broken like what you know what is happening and we were like what the hell is happening all of our stuff since it's fine you don't understand that anyway we actually looked at me first and realize it's like user transactions we're taking six hours to find and and so like our contract in high mountain because we don't want users to sort of deposit and then just like like or say that they're gonna deposit then just like leave it forever this is it really this is sort of a safety mechanism both like mostly for the users were like okay well okay you know the user forgets to deposit or something goes wrong like messages doesn't get sent or something like that you don't want them to have an unusable Channel and so it's good because it worked but it's terrible because everybody was like oh your channels broken so this is a really good example of like situations where you you don't really understand like what is gonna happen on champions it's such a stupid stochastic environment so we sort of meet you said okay let's not only improve the user experience of depositing and get rid of this timeout but also try to make it so that users never really have to go on chain or like really can just pick out their channel take it whatever so what does that look like so there's a really interesting and existing example of how this works when you use any decentralized application today the old way to do it was that you'd have to actually like recover your keys and house right and that was possible because then you're trusting that your keys obviously that's terrible in the browser and and the solution to that is like we came up with this like key provider standard matter mask implemented but father Wallace implemented where you have your key listed in this remote much more safe environment like usually a nice environment like that it like an extension or your phone can be put into a key story be kept in a place where you really only have like very very like narrow function that can pass in and out and and then you you sort of been cooked calls from from your browser environment to that remote that remote key and so we sort of looked at this and said okay maybe why can we not just do this for channels as well and actually Bruno from Adam asked about this a ton was hearing this out but it was it turns out we could and what we what we sort of ended up doing was treating the the core channel code that's implemented by finite state channels of our projects NS a as like an isolated pieces and then the Wallaces sort is trusted code in the sense that it is like the user's code that validates that the state that they're getting as you wanted to be in the trusted environment booth you don't want something too right Roth validators or like over out there to implement the validators period of any of your weird estate and so we said okay let's just treat that along with the key that's been getting passed into it as like a normal key and then do the exact same thing inject a provider to the channels instead from a application that exists on front end in a browser context back into this remote wallet cool so what does this look like so in a wallet that's basically means spinning up a client and it can be the next or it can be any other state channel framework client that anybody wants to build right now or in the future anything about standards and then and then map all those methods to a channel provider it's a pretty standard interface we actually just took the same interfaces for now and like in the future we can I mean that is needed but I sort of suspect that it's it's probably gonna stay roughly like this for a while and then and the way that that looks from an implementation perspective for wallets is like the ERC is it one two three seven notes 1 1 3 7 I don't know there's a there's a standard RPC it like Jason RPC interface if you just copy paste that and then just work and then basically like set up like bundle that up and then inject that into whatever context how everyone's there's a few different ways to do this you can set it right into the in browser context using like like chrome messaging like like meta mask report is or protect you you can also use something like quality metrics it's nice little protocol for we're actually bridging two environments together you can also do this like you can have look at it like a hardware device and like do this using some other messaging system it's like you could sort of imagine like the club's context around this really interesting like banker parking you just like tap your phone and confirm on your phone and like here you're not actually injecting your channel like you're injecting your channel into like the the barrier you're not actually like recovering your key on the barrier and that thing there's being awful and then and then on the debit you need this is this is the visible part that we kind of want to optimize on is we just wanna make it incredibly easy for people to leverage channels so if you get to the point where like a lot of pull ups are using provider standard as an app it's basically just like the existing provider standard you just say if this doc contacts top channel provider get the top rider context pass it in to whatever fine implementation is one that runs on the same framework and now all of a sudden you you have access to use its remote Channel they don't have a channel great one but otherwise most times you just Paul function above the channel plan tonal I notice it passed up to the public what is it most positive so actually one are sighted just how it works one when you hit the spin what that's doing is calling like updating the state like basically like proposing a state is it like the best analogy that basically enjoy seeing your channel and in that invoices for any sort of state update and so then you get that on your phone you confirm on your phone your wallet can decide how they want to show that experience to you whether they want you to sign on every transaction or signing on just like like your app installed but your confirm on your phone and updated and then that's reflected back in the application why do it this way so this is we learned from experience would be one that like wild building things using channels are awesome the process of actually getting users to interact with the channels themselves that live on chain is just brutal and like like the intergroup integrate ability of the one was really effective so I guess you sort of sort of probably saw that part when he Monica next really was integrated Leslie than once and the reason that that was the case was because having to build and like completely isolated like application meant that users have to deposit into that application separately and every single person we went to and asked about that said oh we're already doing all of this work to try to on works villages theorem and now you're asking is on for people has a separate step into connects and that just doesn't make sense for people to it is actually the easiest possible integrate the channel you're definitely there's there's no we haven't yet found a way to make it as simple to just make calls to a remote channel than this and if you can find a way like let us know people love to maintain insular and then lastly this makes the safety of your channel exactly the same as the safety of ethereum bullets are a product I space unlike most of the other work that is being done in the space like a Theron wallet have like material user protection and they are being used in production and so they've had production problems and they've had you know things like key leakages like user response being lost like dependency issues that caused people to get hacked rightly those are the sorts of things that that plate you need to worry about to bring channels to production and like this those main channels and operating image analyzer environment the same as what well so there's there's a that's sort of the channel provider stuff that we've been thinking sir that's why if now it's like on staging and we're waiting to put it into master this is another consequence in like having people using the one name product is like it we actually like to like migrate everybody and that takes time and support patient burden we can just like release it and so we're in the process of doing that right now but once that happens you be able to use this within like a public context please the other sort of user experience things that we've kind of seen were reasonable for this operation or things like treating your channels as I call it in the in the state channels it's literally true that your camera's ability signal and that's really awesome because now you can leverage all of the other you know user experience paradigms that people have been building like veteran traction so for instance getting rid of doing gas extraction canoes right like they they're able to deposit into their wallet not paying gas making linderhof chain transfers and then withdraw in a way with where the counterparty or the hub offering or somebody else is the one that's actually transfers to offline recipients availability is really the issue on the web not just because people go offline and because the internet also is the design system that is stochastic but also because like people aren't always gonna be around to receive your payments that's the thing that we really really focus hard on plugins stay back these are services things like Pisa for watchtowers but then this also means even just having the user be able to use their intellect their channel or their application and a bunch of odd bunch of different devices at the same time or maybe thousands say at the same time but at least like like it and then only in deploying like on shape again only making launch in a transaction when you're absolutely moving your channel employment to to withdrawal if you think creating visual so this is your menu is there anything here that you'd like me to cover or any other topics that I think aside from this I was just going to leave it open for questions yeah my No that is an interesting idea do not forget even thought of it we just said okay let's so so like it's an accept my system and it gets more decentralized over time is like greedy centroids on caller ID we don't want it to necessarily be the case that might equals like I'm sure this will happen in some fun but we don't want it to becoming this might be both become political around like which connects related organizations actually get their transactions across processed ideally we just solved the problem at its root there will still be this issue if it wants me when throwing but if we can move it to a point where it could happen asynchronously then it doesn't matter if matter 56 hours right like it can it's something where like you can start a deposit for $100 at the start of your day and then like leave and then use your channel later on in the day and not not even know that a new coaster the signage project is giving the mecca mine oh yeah that's a good question it sort of got to the someone like madam asked how they wanted to end up it's like because the zoo this is sort of a nuance that I didn't really cover but like the part of the way that Seychelles is implemented right now is like there's a there's you need a mnemonic because it is each application actually has a unique key and so you use a mnemonic to carve out a unique key path for for this specific framework that is different from all the keys that you would normally get on on is their name the rationale behind this is actually like they're in the easy way to enforce stopping replayability across different apps and like handles a whole host of conditions and then also erratically which can be simplified it should also make things more private because that's the case what we get what we can actually found the most of all on sis but they said okay well we'll just use a channel specific come on and we'll just do that differently in terms of signatures well just build a completely different user experience for switches over there that's I think that that probably makes sense and it's going to be we we like we don't want to be too opinionated so we're trying to leave it outside of next for now but I suspect that what will probably happen is something like you know sign on install and like uninstalling an app and then like maybe sign on certain places and maybe we can like explode Xplosive that uh flags are like what seems safe design for being a provider but yeah yeah so there's metadata attached to it right like you're you the the the state that you're getting is like the signature but then it's also like an encoded application so you can always do the application state and check it we can do that within our yeah like this is a there's that there's a usability like a security trade-off there the cool thing about hiring application-specific he is like worst comes to worst if somebody like compromises your funds that like or you lose the key or something horrible thing happens you lose only the applications funds and not the rest of your stuff which is weird like the same that's also love it by the way the farmers manifest so my question is going to protect on the silver problem and is operating to use inhibit you with factories taking the issue that people do you mean forth for life like that to happen yeah yeah yeah so that's it like it's sort of about to it sort of up to the wand to mentor how they choose to do this right like because they're the one who are like I get a final Interbike because they're the ones that are making the object exactly in that case in this specific case it was actually has actually come from a Damascus today and then Brewer and I talked about this and like literally it was just that like it was set to exactly these like recommended I think in a safe low gas price and and then he bumped it up like 5 to 10% and then it was fine but it just it just happened to be the case that at the time say like the safe low gas prices be effectively bossed yeah yeah I will see parts allow you to join a channel now transactions is there like the source of funds for the next yes you always have like one okay you always have a pocket you always have one on tape two that came to get it phones in Georgia right sometimes it can be made by the hub and then they can send you money in the channel so you can imagine like I buy funds that are already in a channel using them like why are something like that in this case like the user is still depositing into their channel but we're saying instead of depositing every single time you want to do anything like use any application we're saying you deposit once with your wallet and then whatever balance do you have there you don't really need to withdraw it you just sort of keep it there it's safe nothing's really gonna happen to it and like it's completely anonymous certainly you can just take it with you wherever you want and then at some point the future people materials yeah the real thing that we are assume lis excited about big-time provider stuff is it becomes like we want to get to the point where like you're able to leverage state channels without actually needing to be a state channel application so like being able to say like if channel provider if like if like a channel exists make this payment using the channel and if it doesn't exist that make it all chain okay that's that's automatically going to get like massive scale other benefits my disease we're gonna watch thank you okay so morning everyone my name is Mike and I come on Darryl Center Network today I'm very happy to talk about the some of the design principles that we got why are building and operating the station networks email program order protection and before we get down to some Walter technical details I want to do is a five minutes to talk about adoption of sustainable so just a few months ago ten network test launches that we met and the joinin and effectively create spaces the first things is our user fee single application cost tax which is the real money is giving careful that view on talk about a channel network the second is that for the game developers were also released as they're actually an arcade and so help them to the maintenance polish their games on to their selects booga app and enjoy the benefits brought by the transitions and finally for the auction developers will also release the seller web SDK that can rotten too bad for us to leverage there is a channel primitives like Amazon Payments as and this is a demo about absolute your app where best leader the players can play the skill based of launching games on Halsted X and we clicked reprises my producer dialogue Sara and the entire thrust payout process and also some of the case entirely viewing on top of a channel technology so it is welcome to directly in the latency and there are cafes and also it is as secure as the online launching and so far their clearances has spent over 1.6 billion u.s. dollars on to assist app and that's the over swing as with that 300,000 against play on columns and currently our monthly active users is over tell solid and is properly one of the most active to sintra applications on Sarah Brightman and our users are also spread across the country okay and also for the game developers some of the questions that the Monarchs me that cannot get my own games on top of stacks because sax is in stealth is beyond popular station networks estrogens so to living on standards as technology Daniel's option payment do they need to mention strategies so the hunters know and we also released a self-executing SDK so a second America as long as we have the vanilla html5 game with just adding two lines of code you can integrate your game with their experience DK and enjoy the benefits of using the stage and on our stations and they also was zero two experiences and we because we also want to bring the t-virus that is outside the logic community into their consciousness and on the left is how you might integrate with select skinny SDK and otherwise our dignity portal which can basically control and begin submission and publishing process and so far we have got over 250 to Barbara's richest ultimate reward and they have a radius available for 100k tomorrow and the first time integration time or integrating with the sax bikini SDK is just less than 30 minutes so that has the illness of innovating with their skin estimate and finally we also provide a Seraphim SDK so this is exposed many of the useful low level station of Romania's that help them to so how's that become good many interesting acuteness like a prediction market not custodian change and also some boats are micro payment services okay so today next I will spend the rest of the talk talking about their some of their technical design of our state channel network and in particular we just released the protocol specification about our Invitational exchanger network if you're interested feel free to check out this link for more details and today I'm going to give a very high-level overview of our key design principles that we use by a building and operating a state champion okay so here's the high-level architecture Mozilla network so so basically it's a great area to such an arrogant condition of payment network so this network has a lot of larger Trevino's connecting to each other and also has a lot of smaller end users connect users who they know fancies conditional payment network has a lyric anchor to give a public importance which is essentially a set of smart contracts that handles that object a bunch of interactions such as opening China on depositing is for seller channel and all these kind of operations so within this conditional payment network anybody can say that payment to any multiplies this network but this is not just a single so we love the payment to have an arbitrary dependency on the hot cup of a certification logic and this is called conditional carries some example as can send off $10 if Bob is the winner of the chess game so here is a payment from Alice to Bob it's conditioned on the outcome of the chess game so we use a network network to provide a very generalized interface operation in your chart and also the high-level state application logic so semantically when you couple their channel for designers and laws of the highly most states a progression of the application logic so basically you can do a lot of state rental applications and this year at one common channel on the assignments and this kind of company and later an architecture allowed to modules to be updated and evolve independently just like in today's internet and I will introduce the benefits brought by this kind of tumbling and linear architecture okay so now let's first look at how setting our candles a hop by hop forward of the conditional payments so the first important structure that we use here is called the conditional payment channel so you said network we allowed to have travel so which basically allow the two peers to send him and each other concurrently without interfering with each other okay so in order to intimate is kind of the context channel each peer we have maintained simplex channel data structure which basically maintains the current transfer amount from this pier to the other point so here we use the prototype message to show what kind of information needs to be included in the simplex gated channel data structure example you need to include the channel ID there appeared rest sickness never planning a transfer from a spear to be out of here and also most importantly will also have a list that's maintained currently pending payments in this state now I know that this is different from the some of the existing state channel design which used the vertical beautiful story and verify in the country with any payment in the channel so here because we over here because what we used for the case where you have a pen only operations but in the station especially the conditional payment channel you have a lot of freaking insertion animation of the payment object so in this case using broker boots we haven't heard any necessary SP the computer in the moon and also dark right especially we need when you need to do some function verification after pending so which Esther use the list that maintains a list of qualities for the country pending payments okay and the second important dense structure that we use it's called a conditional unit so the condition payment has a timestamp and also the sauce as nation for the conditional payment and also it includes a list of conditions that this payment is dependent on and most importantly there's also a transfer function which tells or specifies how we should resolve this payment depending on the outcome of this country provide many kills were prepared for resolving for example it means that the sauce needs to paint the destination the payment amount if all of the conditions including the disappearance of the country but it also provide a certain resolution logic that will involve a circuit and also the logic to handle the numerical conditions the basic reason sauce can send the destination and a betrayer Mount depending on the orthotic matches okay so here's a kind of hypothetical that we are bugs that the messaging protocol which we know basically how you forwards the conditional payment to the next pump so the first step is that for the sauce to set up the payments with the destination is only lost one longship of messages the sauce just say okay a request that condition failing to do and as the destination just responds badly okay and when you want to resolve a payment is basically saying that okay this condition has been finalized we have finished the chest pain at Kobey's that packet send you the money then the solvent destination where several payment option this also involves only one round-trip of messages and when necessary the sauce or destination also choose to dispute or settle or resolve the payment unchanged in case that there's someone tries to change all there's a disagreement about the payment state of the application logic and also we use the sliding window techniques in order to allow the assaults with send multiple concurrent payments to the destination and without receiving is act so this kind of sliding window techniques are significantly improved kind of scruple we can get within a single hub and the that also desired by the current identity okay so just to summarize the kind of properties that we've got a single level we use so this kind of comical produce you know humans already is it only involves very few bunch of messages and channel and also we actually also the context channel implementation or also as a sliding window communication okay so so currently what I'm talking about is all the help I hope already so what's happening within a single so what about the Monica what a kind of since we can build on talkin about my home it's not even permitted okay so what your husband wants what a kind of the end-to-end design for minutes that we can provide on top okay and at the end you end design patent is also very important in the traditional distribution the internet if you look at this kind of very classical paper but that in market with the defect to the age of the beginning of the internet invest invest does also love humanity computer system so how it is that freezing possible designs was end to end a patent is this is two thoughts first we want to create a couple of the channel function allocation process and the high-level state progression of that occasion logic and a second we want to push the complexity to the age while we do things or kind of rellenos complexity this is to ensure that the bank owned network as just like today's Internet is as secure and as robust as possible okay and I hope that when we provide several use for end-to-end design patents the first is called the long haul payment with putting conditions so with this design patent effectively the result campaigns the destination a full amount if this condition and this is a person without head and that is it is probably the most commonly used scenario in practice for example in our FedEx mobile applications we use this two times per minute to implement the head to head in competition and also you can cover your skates like the prediction market or peer-to-peer social banking and also include some of the casino applications that relate vacations destination earlier and these are basically the overview out there with the patient portal cause when you when we're trying to implement that payment with institutions so for the sake of time we cover not going to the details about this protocol see if everything is including either first of all specification doc if you're interested in to check it out and also you can settle the payment option and destination also my chance of payment option and also the salsa destination also to choose to resolve the payment function if necessary I know not hear that so in our designs of rellenos never needs to send any and country transaction Ami's assault by the destination is to do that so this is great to these reduce the capacity for the retainer and also ensure they're secure and also robust with a bank okay so to summarize there the properties with very complimentary conditions in a simple because there really knows never needs to care about certification logic is just doubling for the observed accomplishment payment to the next part and it is awesome low cost because me sirs where they know that were needs to assess the housing transaction and in most of the cases it does not even as a single view only budget on the bed watching so that's going to be reduce is nasty and it's also see there it is resilient and arbitrary relationship and a behavior and is also loading the messaging overhead and the second entrant is a tremendous that would provide is this new many market conditions which best means that the sauce contains the destination and arbitrary amount depending on the outcome after condition so this enables among other interesting use cases like a second price auction whereas the option winner can pay well laser second highest price to the and also operates its usage based insurance and enter public service and so forth and these are the products here okay so so so far we summarized the kind of end to end of the doctor premise that we got mainly these are multiple payment with three conjuration and we're talking in today's America condition there is that critical for something that we highly optimized for the majority of use cases so that for the majority of uses case is highly efficient and also a secure and robust and with this - and - and design parameters we can do a dependency on lots of Education logic of example you can build a turn based destination on a vacation like the CONCACAF that we're building and also also at the dedication will also be some there's some chap like the Oracle service is good by drilling and also it could even be some application logic running on the row up chain or commit change so that's really give us a lot of flexibility but besides there is a two kinds of convenience that will you know we also allow for example you can also build up your home for example the actual protocol that to be able to talk about tomorrow and to intended like a protocol permeate and also on the application layer you can also give a base station on their patients so we provided this kind of disability to lacking your honor acacia lodge recall your into and a channel forming logic so so this kind of stacked and layered architecture two things just like today's Internet architecture well online you have a unified IP Leah so this is just like Lisa R key later for the value transfer Network and the next thing is a transport layer that had no that end-to-end control and on top of that we computed different application layer protocols like HTTP FTP and SMTP and all the layers share a common and unified interface between deployments okay so just to summarize and given give us some of their key takeaways theory that we designed our regional networks we have several key design principle might the first design person is of course that eventually is secure and also trust rate and the second C that we want to minimize the arching footprint will we are building their station network because the exact cost and also the latest is verified and certainly we'll also want to minimize the relay really note the complexity by pushing the - hm and fourthly we'll also want to minimize the country of non-consecutive directions for example such as human functions or the event watching this might be in contrast to many people's thoughts that's where the action will only function Saudi will more she is great because it is instant as there's a way that it is that if you'll run the state route network of young artists from Tractatus entrust applications in production you will need to also pay for this functionality in warship using some officer watching infrastructure services like parapapa me and that countries are priced and also calling a few only function for between and watching also Universal much larger latency than you doing that with the mobile storage server or annoying exchange message with sake and lastly we also want to minimize the object communication are happening so with this deal nine principles in mind we did several bad choices which some of the PC is that we try to decouple the channel phone assignment process and at the high level stated Pro question of the application logic and this kind of design principles are also highly optimized for the majority of the experience and possibly result is unhappy vanity of example we use that blog chat Gnostic texts a structure was from about such as post option arch and different public projects can share the common data schema and we even build out our own like wrote about compiler for the solidity and it's interesting to check it out and we also support that there are unkind contractor and the prototype great denomination at least including the bug and finally the kind of leader and to cover a conjecture is best of all for future use cases so it's hard to squeeze in as squeezing everything in 10 minutes but this is just a high of you so heresy is including our protocol specification table so forget to check out the technical Ramage we are to be to to space in not jumpy and I'm the research team and some observations we make might be very early into the twenty five channels recently and there okay so what do you party someone we talked about the real evidence people we talked about how we connect to things but quite often in the beer world what to connect wasn't for example free or as many as we want this we can build of course my contract in Syria is also the rate of change in winter cottage check that collects water and this is something we've been researching and to already get to the result it's possible but sometimes it's a present it's better so what I want to do in response talk a little bit about the challenges when it gets difficult in zionists and where designers of X for this so the first question is how do I set it up well it's heard about how to set up the normal channel and it most of these constructions you can just set it up in fact it's actually not that different but we also talked about networks wait oldest networks will be connected always to people so can we take this existing network and also the pointy part of channel development and the answer is yes so in order to connect Ellis for each idea we have to restructure this a little bit or organizes a little bit and then we can build up at all but the nice thing is we don't have to go or chain at all option the first fighting off the cadets I already have so for example in this case products and such money and when I want to tell you they and all of them that say invest one point then what has able to pay out [Music] so this is so it though okay another thing that is how to progress with the space one that we've seen so far is that I said before smooth don't wear and they always have a turn so when any system is utilized England and its waters confirms an extractor contracts both oxidizing and then actually be too much less at all of the inputs of attention so he needs quite some steps while this data so it's not too bad a lot of parties might take quite a while until all of them vertical turn and unless have delays that so unless we have all of the confirmations we never actually know if this reinforcements so another way of the present States which makes our case sometimes in large particle so everyone in parallel simply statements to everyone else so this is a lot of communication anyone plans the contract functional office input so that means to be like some sort a personal response or serve in this way but if you don't hear that but what function of all of these inputs have a nice page and then everyone Center out their container of plastic and then in two steps we have all confirmations and all of the infant's apparently and I don't want to say one which one makes more sense but it's interesting to have more might decide to be to some names made for insurance professionals because we have a sequential in Vancouver if we need one step depends on the next one so really make sense to go and sequentially but if you have for example you want to generate rankness everyone has said very important together so it might make sense to use parallel approach if it makes them have separate peril and add part and then there's a third thing that I want to highlight which is what happens with party words this is easy to soften it to this is one of them stops responding so in fact in an end party setting it might make sense to which we want to continue right in the making what party is well let's say you're playing corporate one of them doesn't have any fun anymore so you cannot continue playing but the others might want to finish working on the other end they don't want to have this empty to the party that kind of lost already Ellison as well memory so you want to make me exclude architecture and this is another new concept that so far was a very interesting message in two cases that we get from partisan the first ones when this party please which might be the case okay example when this person say hey I lost count see I confirm the amount so that you can come to object you don't have to but then I saw some other case was somehow doesn't mean Awards than just okay whatever I don't care and wine and other funds whether right and in this case are tend to go fun change change the underlying context but still this has decided one thing it's really important that a few of us cannot exclude someone if they want so you have to be quite careful but see where this is an important feature in the signed contract all these kind of games it's also very danger so think about this a lot when you design team even worse than this is a transformer Genesis in general something that is really cartridge to go to party scenarios and this when people start to food so in this case of communicates edits in the related time as we've had before from the front on how you generate - so how you basically determine the winner in roulette things we'll do it with your steps so first anyone to mr. venomous and they kill it and then they malfunction which says was actually the winner so Charlie mom we do now Thank You ami actually in the six rounds those all of the information to see who's the winner so surely can say we're losing these two points so I should rather important and of course for China this will be back - together / - its money gets burned well from up with secure the sea keeps us going and when many people came who still has 50/50 chance that's right when his own and Alice's point so in the end they will they have quite a high chances of still getting some of the night so it will always make sense for Charlie to reward and it's really hard to protect offenses so one way of content analysis is very expensive punishments so what are Charlie mustn't lose that much money that it cannot be worthwhile act upon discouragement and this really gets closer to potentially with the amount of parties because now also welcomed polluted areas we must be able to make podcasting securities and it's getting really bad when you have a lot of parties and our idea is to have external balances to agree are made some some cash in the future that also adds a little bit of randomness or which are the only images to detectives the winner will they include media but so this is something which is really tricky to design and something that I want to mention is it's important to keep in mind when you design your party okay now I don't know which is faster my message table the stuff what you must [Music] so the first thing I want to talk about is some general thoughts about what should be included in social favor watch it nothing casaya so definitely and everything this also induces magic both very botanist assistants because you got an option product or an after application you always have assists for example State optical signatures that you receive the signatures that you send keep track of the nuances to keep track of other data may be enough some like the protocols that can execute all this has to be persistent and really design framework you have to think about this nautical you also want have a dog chain wallet so you might design a system to have families we talked about this might be since all kinds of life TV channel so that you would have like a chain wallet that generates toasties this is awesome and then of course because you now have been complete an application you can actually have networking an application right so you have the white design a protocol and this is this for example with have a different like participants for example you one agree on Channel right what agree on participants the parameters that the channel is working on so you have to exchange resources and things that might not be included or on chain wallet so you probably so West called expect to use a comic so we also probably don't want you to track malfunctioned so that that's also reason why sometimes I want to extension so it can relate it was awesome stuff and if you also don't necessarily need to implement a could be that you only defined the messages as you defined the wife or the phone but maybe you you developed a lightweight that hooks into another application of this application already has some kind of novelty layer so you can just duplex the communication here you just sent always a case sent this message you set up a subscription that you can to messages that are so we don't need providers and then of course the family's outfit of - the absence of the absence like and not at all set right what so so one thing we can do is stay channel SDK this is what we're doing right now internally so this is the first step this is the inner core of it that's unlikely so the station is engaged like we have an application and it already uses video marketing and now we want to enable it to get the same channel so what we do is we like it the station was and then suddenly you can also obtain direct donations the complexity of the whole channel protocol and cost should be get nervous so you have to design very nice API that makes it's possible to extend to elimination so it should be easy concept back okay I want to connect those two people we found the channel and we said something that should be very light and we also think that it's very important that we maybe developer injects over white stock magnets inside logging and the networking stack and the persistence text so you find the persistence on abstract level but you can't but and then that the developer injects a SQL database and use this for systems and that the next step is to have the something like the lightning note the led though synthesis of full-blown standalone applications of a stand-alone application has all the logic behind the stage on all networks but on top of this it also has an interface that which can communicate with the application so that for example check to see face is actually a I Direction interface because in channels you always have the situation that you want to have always to the application because you may receive a state update from the other party so we have to ask back to the user how to handle this case at no update I received an update and so this has one a scent like callbacks back to your application but there are also other things that you want to buy for example you probably want to at least give this automated dispute handling so the you want application watch the chain and handle disk units automatically it's a very it's local yes and then you also work sample because I'm in such way because you have object always to the application for certain on chain actually slightly funding ostrich and then this is the third level is really to have a half server because I mean we didn't really talk about this much but state channels really become awesome the moment you the network's there's also by the Lightning Network is pretty awesome so you want to have my song central server half server and it should help other people to build the virtual channels that's what we call virtual channels to enable applications so there is probably that you have some depth and the develop of the staff constantly uses to use these them and very efficient way to do this you give it state channels and then you run the half server and then you let people connect to your house and then you can help them open to baguio multi-party works or channels over your heart yes so it's I think that you probably would have the client note and the house some of both before SDK but a probably kind of separate I mean I think the implementation of kruskal's at launch Apple that I think at least that's what I call I think about it is that it is something kind of separate because I think they have servers all about the whole walking about handling virtual channels helping the virtual channels that was the results won't be any life statuses Bethany's life and yeah so just very brief notice on the banker services go a lot of people are using javascript and I think anyone's good or bad it's just that many people did the JavaScript and we just wanted to fight that makes sense for some like stand-alone forms of babies so so it really comes down to use cases like sample you have a developer extension that's what we saw up today Kemosabe yesterday was talking about patience or always makes a lot of sense jocks business you think the refuge willing is actually much better for Giles with for example so we also have some iut aunty use cases of mind and follows cases we think it makes a lot of sense girls and SL so the beaches have been slow but yes my language to us this is briefly talk about architecture that we have internally so we see there are some layers that at the bottom you see interfaces of contravention of a pen you know a little engine that you have on the left is watching back and record and then you have like some generic stuff database working networking the top block checker channel application and we designed the whole system using there's no direct dependency on anything specific like no but we film tendencies no dependencies on sale or us for logging or dependencies yeah I don't know like TCP or something so it's really all going down to these places that means we defined interfaces will say that's the way we want to use the stuff if it were to exist and then we use it all in the whole protocol core and that we implement all those interfaces and watching back and everything yes and this is a very very nice decoupling of the source software so that the core protocol because all the protocols you have seen today person agent importance are very generic concept right it's an absent concept I think we also talked about it like seller they're doing launch an agnostic messaging protocols here and this is like you can think of actually the whole engine of this part of the station of problems in this area aspects at my sample she also looked in the parent papers they're written in a very abstract way so for example them it only has like models the blockchain as a letter has an account-based letter okay so this is a very very small request you were not use yeah that's that's actually very good question yeah here's castle yes so when you're designing this in an abstract set where suddenly many many things become quite complicated complex so you benefit a couple of concepts for example atlases they have the concept of an address but you don't want to specify koala status so there's a solid interface so you only say ok what do you really want to do with that is you wanna check that it's equal to another endless so you give this interface it equals method and you want to sign with your ok so actually also concept of the counters or the second camera so you have an atlas in California some Tokyo that was a you can sign with it and you can verify so you have something called signature but it's just like an abstract signature but then you can verify that the signature we lost this campus and this is like one of those concepts but you yeah so it makes things more complex but it's awesome nice because it forces you to really defined very well interfaces and really forces you to understand when you designed those protocols here West sac leaders layer where what separates that really the core the protocol from implantation specific so it's quite interesting and this is also like that that's the same here on the top that's like this blotching interface that was talking about so what I really want to do with a buck chain it actually just wanted me to accurately judicata in those days what a funky fun channels we're gonna watch the adjudicator suit there's this concept of watching something but you don't want it you don't really need to go to too much into detail you just need to say okay watch this channel with this idea for something that can happen and then you want a dispute or just like register States yeah actually I just wanna show like a shot of that what we want to do so we received a grant from the German government research to stop we are going to this sdk for better state channels my god Russell as channels to work with channels again is this concept of having several channels that you connect together to a long versatile channel to networks many wanna go to only state channels and have to observer and then we also wanted to additional magnets because country obviously were just concentrating on material because it's like the nicest watching to develop on right now finally girls stasia that's my chains so instead of having blockchain as a back engine so this is the nice thing if you have such a abstract concept you can be just provided plasma magnets of me networks and especially designed Adonis experience and basically share some of our experiences that we encountered along the way yeah very fancy and I was also talking about stuff later our goal may be shared with all of the other projects that happens and Hamas is making for all the links and with less education talk about hysteria as possible and yeah surprise what being comes with no new mayor was that if you miss I experience and the system architecture right for this screen II heart so yeah you won't be dive into why it is hard I just want to I don't know raises image many years try to talk compared to the other talks before we've been somehow shifting between like generalized insurance and pensions made the Sony payment channels and can be compared to for example lighting their corporate party and yeah the very core idea of is that you know always backed by an option wasn't and once you have deposited hope it's into para channel can do as many option transfers as you wish by exchanging balance groups with your channel partner and those balance between anticipation - checks send something back and forth and eventually saying yeah what it goes my tab the coolest thing about rating as execut society is that you cannot only pay people that you have a direct channel open with but you can also pay anybody as in the network as long as you have a connected path of payment channels within receiving party but that comes with some challenges and it is what I have senses that we are that contaminant with the limited version of since end of last year and this moment is featuring all of the core functionalities that you can imagine for a magenta networks of the retiring transverse minute and so on but to be limited in terms of user experience of as well as in terms of which talk networks you can currently use right now is limited to rectifier and yeah they need to see our current maintenance is pretty pretty small stuff that we hope that we can make it with a bigger by improving so yeah that's take a moment to talk about this magic Canseco is an experience and why does hang about so well and try to cast this into two different user groups because we have basically the direct and user that wants to make a payment using Maine right now and we have the tiger food which is actually project and developers that want to integrate with rady into their application by the user themselves the end user may not really know that section is available by using this application so it is the actual end users and those are experiencing or might experience some challenges when they want to interact with Cambridge and Catherine for example first and Roman is really about education so far was expecting where technicalities problem is I don't want everybody and I also don't know how to use them part of that is that most users don't understand the idea of a network you can send payments any month you don't need to open a channel with them this is like number one use interfaces are cumbersome to do we would have really unfamiliar with the terminology we use that's definitely also problem Allison how can we make things easier not thinking so much technology respective but rather which comparisons can be used that already exist in the real world there hmm then another problem is I definitely don't want to have to be on that all of the time and I totally want my payments to go through that I shouldn't be right and that's one of these I don't want to write a note what is in the note and why do I have to run it so yeah few of those problems we're trying to take it with the next release that upcoming the first problems I want to be online all of the time that I want my payments to go through they can be at least improved by introducing new services so on top of rain you would have very soon some states which we come with monitoring services and with cosmetic services those to Olympus that can be provided by anybody who wants to join it kind of brings us and yeah experience the monitoring service will basically be your Watchtower example many of akiza they are promote our services and they were basically just go mapping your channel if you go up 9 and solve this problem with the challenge by dispute that we talked about and the pathway new service with amazing majestic leadership short routes through the network so that you can for sure that the payment actuals and go through passage yeah then reduce from I don't want to this problem we have to solution approach is one the first one is like try to instill more progress but you can already taste and here in the back we see how the light trucks are going to transfer sugar ratings footnote already told the light rail is available anywhere in a browser so basically you just use well mask obviously also right now like beside random extremes and messages which is really cumbersome but we're getting that and the interface that you see is basically first implementation of the pipeline yesterday the second option hiya you can try to sell tonight the Masters always rates of network if you want to try it out it would be great to talk to us after because right now there's only one the TGT and if you want to win this or if we should send you some tokens just let us know I also see castles in the back so I like pasta such as follow that time option number two is yeah we can also have people to make running notes easier and things we also rely on somebody you know for anymore so they need to go with that's not greatness available so if you are already running other notes via just one click and already Mouse option is help with onboarding to us in the past it was really difficult to solve rain if you are not technically will be able to do in the past and now you are able to do it it has been train whistle which basically insults and launches way you need to do is download it and double-click it and you have to have your project we assume that people who don't wonderful rather not intrude on what we don't know how to install it probably not but their own background I assume in future philosophy to and yeah then it does all of the stuff and that one you can't install without and he helped news from our site so it's in this country our is hampering the network such radiance Tata or since grappa and it's available for Mac OS and coordinates for the Testament for now but for the next we needs we hope to also heaven yeah and then the challenges from the other sites or projects that want to integrate with rating they are also facing problems the first ones begin and Anna medication with abstraction problem deafness new people or our project developers that integrate movement they don't want to have to know how payment channel networks work and what we do so user to their product second properly identified users - I know also thanks to last overnight I don't want the complexity to increase I I really don't want unrest experience for my users it should be basically seamless and then awesome and suddenly choice that I don't find the rent right now so maybe some of the problems we can solve for example not understanding yeah peace don't all go and throw a magician in for tech now because this so I could wait for you we try to make it as easy as possible by offering a really high and I which should be self-explanatory we are also working on some sanitation we have a parody of and very extensive documentation already and now we're trying to and we are also always available by our technical help shed pizza so in case you should have any problems just give us a comment yeah we don't want but users to write a lot that's how the back end of the Rain Man festival tonight yes and just did you soon as it's ready you can imagine try I need somebody just that's not a problem at all because now that we have basically another all of the components and features that are the basics for people today would be as well to incorporate in whatever teaching you might need we have already started on that so some of the projects Chalmers draw feature which means that he can simply this brought certain height all paths of the plants without the need of closing achievement this is interesting for example if you want to keep this channel open because you know you take with this person a lot but maybe you are the party always receiving plants then you might want to catch out once in a while without dosing each other and that is not possible drop feature and it takes less on opening the union that just launched their the spot each being defined enlightening and I am ready and safe but also like really close in touch without another class so yeah I guess if you want to have some feature implements and just let us know talk it out and then yeah okay cover to our business hot UX obviously not only about the front-end seven features but it's being influenced by a like mr.
and yeah I just want to share with you guys what are some of the consequences you zapped into perspective of the things that we have chosen to design-wise what are the consequences of our design so let's just start with like whatever it's right to pieces by them okay so the idea that we have here these enough for watching systems they can convict you of these three possibilities and that we want to fix that so that's why we are viewing the state channels where you can actually have a scalable solution that's also secure and it's also decentralized so that that serves that we go of every single presentation that we have had today and interpretation and think the biggest problem that we have it was tough to communication right because a proof of work of a pro physics isn't you actually have to share the data with a lot of notes and then that's actually removes kind of deviance offenses so sometimes have true in some circumstances we have to sacrifice speed so if everything happens on the happy case type of thing is good but it's very hard to try to explain to people descent is when things actually don't go so well and that can happens for a few reasons the balances of the channels in the network are actually changing all the time right so you never really know in a distributed network like Raven if the channels that are trying to use actually have confessed to Depot when they so the imminent self made us pay for something that a dual happy no one throw whatsoever it's just like the nature of innocence or lysis it could also be that suspect and one of the guys that are trying to communicate with just went offline and that's just the truth right and a lot of my user perspective that's very very hard to explain why we transfer center find and it's a failure because they seeks our certain sections in mind on chain we have to think that consideration want to be defined the expiration of the hash nine lock and that sort of goes back to be using they're very unexpected and unpleasant wait so just you show that in a marketeer fashion when we started transfer into the left side very fast actually be transferring everything is successful the capacity is fine every this is going to be happy what about if something goes wrong it's going to take a lot of time and that's one of the things that we went through actually at least improve in season because we cannot actually fatigue status in heritage in victory which is how it works right now what we do yes well I meant just like lock funds into the path before you actually make the commitment transaction that's exactly what we do we first block the funds and then we're going to review the secret backwards and everything is going to unlock right but in neck is the locked payment failing shouldn't apologize because like so so I'm trying to block refunds yeah and right now walk stretch luck funds with the channel and the chart if the chart is off like you're not block your funds does it make sense right okay so what I'm asking is from a user experience perspective what you're doing is a is basically committing to the transaction to be you and they initiate that's that transference and so they have no ability to back out of that transfer exactly what I'm saying is if you separate out the process of you you reduce everybody's balances then you make the transfer into time in two separate steps that means that you can decouple pathfinding from actually me action so path by new fields you can have like a three second timeout okay that's finest will become best moment right that's what I mean it's like you just lock the value in the channel as part both the path lighting itself yes and then I was transferred to later and that not his weapons failure can happen if you're trying to log the funds and one of those not align the block and then the notes I actually have locked funds they have to wade into the block expires to get funds but you're given that state from that if it went to state that you're going to end up with double spending so what we can do is actually from the user perspective sort of hide a face but it's like there's no buddha solution the worst days it's always going to have to wait for long expiration what we do right now is that we introduce in the protocol ways of not having to wait until of which expire so really happy thing that's going to refund transferred so if the problem is that the channel capacity we just found out the way to initiate the best recipes even before anyone so it's like a better user experience in that sense it's making its edible trees because refunds are in space right now require twice as much capacity because it has to be has to be sent from the fading no other way of actually achievement that we are going to have twice a classroom and we want to remove that so that we don't have to actually have twice two collectors they would like to start an impressive another pro that we have with these entities we want to make these system report and of one of the very important things that we have to do in these systems make sure that the network sections going to be balanced because if the network is unbalanced and payments are not going to go through the ratios been an increase so we have to watch some strategies you help the network balance itself and the way that we do that is that we just introduced rebalance rebalancing fees so we use a path line service and we redefine service we can compute which have this better be the cheapest and we always always try to make sure that the cheapest path is the fact that's actually going to rebalance a network the problem here is that this strategy works part with any network but it's actually very hard to explain to people like works because you always have to take channels in pairs from the perspective of when you're actually doing that sort of buy strategy and that may be cumbersome to expect way so what we until here to try to fix this problem is that inside of 20 and we just like to be very beautiful so we think about the problem and we just make the decision when we have a producer and there we always try to make sure that it was going to be safe secure and it's going to be efficient for your network yes that's our solution you're just thinking of one peoples and I'd be very problem that sometimes happens is that for me since it's very important for us to actually know the balances of the videos that's crucial for path time service because we need to try to choose a method as capacitor the problem there is that you know the capacity we actually have to share information about the things that are happening so we have to trade off at a bit of a privacy to make sure that the payments are not happening backward so that the firm's really depends on giving up a little bit of privacy so the way that we try to fix this is that every sort of allows you to buy a little bit of other capacity and an on-set updates all that often so that we don't have a complete view of everything that happened but we can actually choose that out of use that there to find paths that connection so yeah that's also very important thing we never force or users to do something we always have like escaped actually the inspiration that allows mention about something that we believe that may not be good for everyone in this case a node can decide to not saying that stuff dates because of nothing uses in here since I listened but it is not necessary that it was genetic payment school yet so for the next four years those time to fix this problems we introduced at least one other instance we're gonna work and intensify transfers and of your trying to figure out colors and actually making that same service more privacy-preserving but it features that actually we have that even though there are are trade-offs we think they're important because they're going to help making sure that such dissolve will be usually it's going to have just better experience by not having to both throughout these problems that can happen yeah so with that I just want to say that we're pretty much cutting there it isn't a few weeks that's going to have to monitor your service and it's going to have two paths nine services when we expect the successful rate of increase and people don't have to run an old-school time anymore so please try it out I would say that we are pretty much production buddy and everyone should try it out if you have questions I just reaches all in the US and we are happy [Applause] [Music]
Automatic transcript — names and jargon may be misspelled.