Accountable Watching Services (PISA) by Patrick Mccorry (Devcon5)
Devcon·Fri, Oct 9, 2020, 12:00 AM
Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on IPFS and more. https://archive.devcon.org/archive/watch/5/accountable-watching-services-pisa At Devcon IV, we presented PISA, a solution to help alleviate the online requirements for state channels. Thanks to an Ethereum Foundation grant, the team has taken the idea of an 'accountable watching service' further to help alleviate the online requirement for other off-chain protocols such as Plasma and in general most smart contracts. What do we mean that PISA is usable by most smart contracts? Ideally, if we consider a smart contract where the user has to be online and watching for an on-chain event, then PISA can be hired to protect them (and perform the final step). Our goal is to help improve the UX for most smart contracts as users can simply go off-line and PISA can finish the task in a financially accountable manner. In this talk, we'll discuss the substantial changes to PISA such that it can be generically used for most smart contracts. We'll discuss the implementation of PISA, the open-source project, and how other projects can use our simple API to sign up to the accountable watching service. Speaker(s): Patrick McCorry Skill level: Advanced Track: Execution layer Keywords: finance, accountability, network, dapps, developers, technical Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum Learn more about devcon: https://www.devcon.org/ Learn more about ethereum: https://ethereum.org/ Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. Devcon 5 was held in Osaka, Japan on Oct 8 - 11, 2019. Devcon is organized and presented by the Ethereum Foundation, with the support of our sponsors. To find out more, please visit https://ethereum.foundation/
Transcript
thank you guys couples come for this talk when I want to present about today is what we've been building for the past six months a financially accountable watching Network and this is in calabria some of Chris who's in the audience Sergey and Salvatore I wanna what I really want to highlight is that normally when people think of Pisa they think of all team protocols and scalability so I've actually taken this moment where this talk is not gonna have anything to do of off gym protocols whatsoever I want to highlight how P's is generally useful for mousse top developers cool now when I'm gonna begin with is actually a watching network is a misnomer there's actually two different rules in this third-party Broadcasting Network we have relators where our meta transactions you know you give a transaction to this third party and they guarantee that it gets relayed to the network or you have Watchers you know these watch towers and a watch tower you can be hired simply the watts for events on the blockchain if there's an event it will then respond in your behalf so that's why it's actually a third party broadcast network which sounds really boring you know lol but that's actually what it is so why do we have you know real Ayres and responders real Ayres try to solve the problem when the user doesn't have access to the native token so this could be onboarding new users accessing coins in a contract like a multi sake or mixing and doubling as well where watchtowers and responders they try to alleviate the user liveness requirement that's to say you do an auction you know you submit your bid three days later you have the reveal your bid and you don't want to come online in three days time so the wast Harkins is do that in your behalf of course the main motivations always been off team protocols like plasma and steer channels onion also to date availability providers as well so what is the perception of a third-party broadcasting network you know how do people typically think about it in their protocols well first you have a user and this is the anime edition by the way of the talk so the user typically has a job and what they're going to do is hire multiple watch towers at exactly the same time so they're gonna send the job out you know Bom Bom Bom and then multiple Watts Towers now have the job but the user has to pay for multiple Watts Towers so this sounds a bit crazy expensive doesn't it so typically what people do instead is that there's his own chain bounty so the first Watts tower the salt you know the relay the transaction and get it in the blockchain will get the claim this bounty so can you see the obvious problem with this if you've hired 20 Watts Towers on they're all competing for the same bounty you're gonna get spams bombs bombs bombs bomb you know only one watched how it's gonna get rewarded and the rats are gonna have to pay a penalty you know the gas price of a transaction for failing to get it in and that's not very good you know as an illustrated example bomb you know the reward has given in this watch tower now they're competing for this 5k you know $5,000 as a bounty that's fine over the long period you make some losses you win but if they're competing for $5.00 that's a sucks you know who wants to compete for $5.00 and lose money in the long run so it's not a great way to build these third-party watching networks an alternative approach with people 10 that recommend is why don't we you know do segments so watts Tower 1 can respond by time t1 Watchtower two can respond by t2 opto TN now the issue here is that is really awkward to enforce either your smart contract considers is up front or you somehow try to enforce is an altar monitor which doesn't really work either so I've never really considered this as a real valid solution to the problem and then the worst case scenario you guys hire 20 Watchers and nobody responded and your transaction has never relayed maybe you lost the auction you lost money in your steer channel well there's no evidence there's no recourse nothing so I really sucks this from a user perspective you can't blame anyone because they didn't do their job so why do we always think this is the best way that builders third party broadcasting network it was actually really frustrating because it's clearly awkward and doesn't work that well you know come a little animate gift there so from the end user perspective why are we trying to design these third-party relay networks in this fashion so what are the goals that were trying to achieve typically we're trying to minimize trust we don't want to blindly trust a single party to respond on our behalf and also for the availability of Broadcasters if I hire 22 Watchers hopefully ones at least online to complete the job for me but well most people seem to forget about as accountability you know if the watch tower doesn't do the job for me can I prove that and can I hold them accountable so this is basically what we're building a Pisa safe announce the accountable third-party Broadcasting Network so now I'm going to start my talk cool so what is Pisa basically we have this broadcaster he has skin in the game and coins locked up on the blockchain and there's a piece of contract which is effectively the service level agreement between the tower and the customer now when the customer hires Pisa you send the job the Pisa and in return the customer will get a signed receipt so now they have you know cryptographic evidence that they're actually hired Pisa or a watch tower so what type of job can Pisa accept both it can be a real layer you know these meta transactions and it can be a responder it can watch for events and respond on your behalf and of course the way I will look like is you know Alice and Bob do something Alice hires Pisa Alice goes offline if there's an event on the blockchain then Pisa will simply respond in Alice's behalf then Alice can come back online later and then she can you verify the peas and the watchtower actually did his job now the question is what a Pisa didn't respond what a Pisa didn't do the job and didn't protect the customer you know when it when it promised it would can we do anything about that and that's exactly what peas is trying to solve Pisa is a trust minimized you know third-party broadcaster because it has pronounced reliability the user has a signed receipt that they hired this watcher on they have on she and evidence that Pisa didn't do its job you simply submit both pieces of evidence to the Pisa contract whoops then the Pisa contract will look at the evidence evaluate it and say yep Pisa didn't do his job so now it forces his refund period and there's two outcomes either alice is refunded a pre agreed amount that was you know specified in the signed receipt or pisa is eventually sloshed so Pisa issues the refund really straightforward you send the money you know that challenge is cancelled and everyone's happy so I got one question here who's ever sent a transaction to the network that lingered for six hours there we go look at these year old top developers definitely now what would be nice is if it lingers for six hours you're gonna get a $20 refund from Pisa you know you're gonna have a little smile in your face cuz you made money for that for the body wax use your experience anyway if Peter doesn't give you that twenty dollar refund well you know blocks keep ticking pisac is slashed and pieces it will loses money and be very upset and that's the basic principle about but I you know behind this now what does this on chiyan evidence actually look like well first Lazar did the real a kiss these meta transactions every Tammy hire Pisa the real a a transaction in your behalf Pisa will relay that via the Pisa contract and it simply keeps a record of every attempt okay now yep so it keeps a record of that attempt so later on if you come online you know Pisa promised you this transaction would be relayed before time T you come online after time T you look at the Pisa contract and there's no record of the attempt there's no record of the attempt he's it didn't do its job you just send over the signed receipt I'm Pisa gets punished so that's cool that actually works out of the box today on the other hand what about the responder well in the kids of the responder basically we have to look for events in the other contract so let's consider the auction we have to watch out for you know the auction to be triggered sorry yeah we have the Watts out for the auction to be triggered once it's been triggered then there's evidence the auction was triggered and that we didn't respond now the issue is that this can't work today but it requires its external contract to use our data registry and that's not great it's a bit invasive we want to make sure we have seamless integrations tupiza so for seamless integrations we have to push for this hard fork for block top block hash if there's you know hard fork then we can use the transaction receipts and a block as evidence that Pisa didn't do its job if you wanted or more information about that just check out this wonderful blog post that Chris wrote oh and I also found this emoji I'll try to find a fork emoji so if you want to get this in the iOS and it was sign up to the Chien's org so what's the current state of the PISA project you know this is something we've been working on for two years in terms of designing the protocol and now we've been trying to implement it for the past six months what's nice is that we envisioned it to be like an inferior Lake API as a top developer you're simply gonna have a very simple API like this you tell Peter when do you need that transaction delivered what was the code theater and what is the contract address you simply call the API and in return you'll get a signed receipt and that's awesome and right now our current guinea pigs are connects and l4 so now we're actually trying to do an integration to see how well this works and once it works everyone here can try it out and of course if you want to find more information about it our client information is on an new MP MP m Jas and everything's open source so you can just look at this repo and you can see exactly how Pisa works today you know and try it locally amongst yourselves now where's Pisa a boring tedious and hard project actually Pisa is a high availability reliability and fault tolerant project what do I mean by that so if you're a dub developer and you've got a guarantee transactions for your users get in the blockchain once you've got to worry about is bumping the feature in congestion you've got to worry about managing the balance of multiple hot wallis to pay for gas managing dependent and chiyan transactions handling block readers and hard Forks detecting these emitted events taking data from it and using that as part of the response I'm one really good example of this was defy see ever you know if you combine if you picked here more of the above it could become non-trivial so device chin C ever had a chiyan transaction but in the chiyan the first transaction had a low fee it had a low fee and it didn't get in which meant the other transactions also didn't get in so this is actually a non-trivial problem the builds and actually most projects have to do this with sort of sucks has taken us four or five months to get an alpha version that we're sort of comfortable with and we expected to every team to replicate this you've already lost four or five months of engineering time so that's exactly why I think P's is useful for move stop developers now what about the future of Pisa what I really want to build is a watching pool okay so typically when people think about these watching networks every all the watchers are in competition we're actually you gonna have a pool real there's non trusted coordinator you know I send the job to the Pisa server the Pisa server will send their job to each watcher and we get Caravan Watchers or green we get a fully signed receipt then the sign receipt goes out to the customer so actually all the Watchers are watching each other's backs so Alisa's you know we know our service gets tossed hopefully one remains online there's also the motivation for n level programming the avoid critical bugs now what about the security clutter or lockup a lot of people ask about this you know one of the me of Pisa is that we may have to lock up 50k dollars there really sure that we have skin in the game well it's nice is that we can outsource that other people can donate the money in our behalf and they're sort of betting on our reputation that we won't get slashed I'm by betting on our reputation you get a share of that revenue and we can also just lock it up a maker and compound then use that money to earn interest as well there's actually quite nice you know the money doesn't go to whist there's a real store of all you now I just want to finish to my takeaway message of all of this you know talk what makes cryptocurrency so grit you know why are we all excited about it from my perspective what makes cryptocurrency so grit is that everything is publicly verifiable and we have a set of you know we have a decentralized set of validators I don't in the world can volunteer blocks in real time if you're volunteered in a block you can you know hold the miners accountable you vallah date it and you accept it or you reject it if the miners cheat you just reject the block and what you're actually doing is holding the block producers pronounce the accountable if they produce Bob blocks and that's really cool so I guess my motivation for the past few years and what we're trying to now build a Pisa has lost bringing financial accountability to every single online service starting with you know third party broadcast networks we're building this new finance the accountable therap RT and this is what everyone in this room should be aiming towards as well we should be building services such that they've you know the terms of the you know service level agreement are easily enforceable and verifiable we should not blindly trust third parties we should verify everything they do and if the third parties deviate from the protocol or if they cheat we should have an ability the issue punishments you know they make sure we hold them financially accountable and that's actually what makes cryptocurrency so grid you know that's the toss is real vision of why he built this entire system so that's basically the end of this talk you know our goal is to build as financially accountable the party broadcast network hopefully people here realized I did not talk about Austrian protocols whatsoever it's generally useful for most smart contracts and now hopefully we're going to be I mean there's an alpha version running already and hopefully the API will be publicly available very soon you
Automatic transcript — names and jargon may be misspelled.