J3 PAIN 06 Ameen Scalable Spanking
Ethereum Paris·Tue, Oct 9, 2018, 12:00 AM
Transcript
good afternoon so here to present spank chain and some of our scalability research I started masturbating when I was 5 years old my first experience with porn was when I was with 7 years old a friend of mine came over and loaded up some bestiality onto my dad's computer my mom found it in the browser history and they had a huge fight because she didn't believe that it wasn't him when she confronted me about it directly I did what any child consumed by guilt and shame would do I lied sorry dad since then I've learned not to be ashamed about the things that make me human and I don't think anybody else should be either yeah so I'm here to present spank chain and some of our scalability research this is joey kim she has she's an adult performer and she has an adult erotic art site called Joey Kim TV she you was using PayPal as a payment processor and they told her that her website qualified as erotic art December 27th 28th she was shocked to find out that they had blocked her account they froze her account with $70,000 still inside this cut off her main source of income and made it impossible for her to accept new members they claimed that she violated their Terms of Service by using PayPal for adult content even though she'd been using PayPal for about two years without any incident and that PayPal actually has an adult digital content section on their registration now despite many attempts to contact customer support they completely ignored her and the default policy that they have is to only release funds at six months so she reached out to spank Shane for help so I got the email addresses of PayPal's customer support department heads from a friend of mine at PayPal and sent them a friendly email okay I may have also cc'd our legal counsel and made some implicit threats either way it worked and within two months she had received her money and so this is it's still [ __ ] that it took that long but it's better than the alternative she sent us this nice thank-you letter so why spank chain because adult performers can't get access to banking institutions and because her story is not unique the discrimination against the adult industry is embedded deep in our financial system for adult performers and businesses the killer app is aetherium itself they need a secure place to receive and hold their money without fear that someone will shut down their account and seize their funds however aetherium has scalability and usability issues that must be solved in order to reach widespread consumer adoption and consumer adoption will start with porn because the people most motivated to switch to a new financial system are the ones ostracized by the existing one what is spanked chain spank chain provides scalable economic infrastructure to accelerate the migration of the adult industry to aetherium our platform is divided up into three layers at the top we have applications in the middle we have services and at the bottom we have the spank chain core sorry bottom to top so the core is a set of smart contracts and open source libraries that anyone can use for free so these will be things like the performer registry which is an identity system that we'll be building on a smart contract these are things like our payment channel library which is a smart contract and associated JavaScript's libraries and things like vine us which is our in-browser micropayment wallet which will also be open source soon so our partner for building our payment channels and the wallet is machinae me a micro payment specialist company in Russia the middle layer is the spank chain services so you can think of this sort of like the AWS report it's everything that you would need in order to build an adult campsite or clip site or whatever you you might want to make so this is things like payment channel hubs so that you can have payment processing easy and be able to accept tokens and eath as payment and things like indexing and search if you want to build a whitelist of our camp site and you want to see which models are active or you want to search for clips to share things like age verification and an ad network or an interface builder let go what you see is what you get editor for a website now all of these will have fees paid and booty token the other interesting thing about this is that all of these will be tightly integrated with our payment channels so you can imagine that for indexing and search will have an API rest endpoint and it'll be a paper query model for an ad network it'll be a micro payment per impression model things like that at the top we have applications which is our own and third-party UIs so we're building a campsite we'll also be building a content marketplace and partner sites we hope we'll build on top of spank chain and these will be language specific these will be interest specific you know it might be a gay site or a straight site or a kink site and BDSM and things like that so one one example is that we're building a red light district in partnership with district 0x and one of the interesting things we're doing with them is that the weight district 0x works you can stake your district the district network tokens on a specific community marketplace and in order to earn voting shares and that and we've done a sort of token joint venture where either spank or dnt can be used for voting rights of that content marketplace and we'll be using both the spank chain payment infrastructure as well as the district 0x voting infrastructure that they're getting from Aragon and it works because there's a billion to be Chokin so you can just do it one to one so let's talk about our tokens we have two tokens we have spank and we have booty and together they make our ecosystem work so spank is a staking token it's a dynamic platform license booty is a stable coin and it's pegged to one dollar and booty we trust here's how it works you stake your spank on the spank bank smart contract and you mint booty there's in a bit more detail so I'm gonna walk through this so we've got our performers and platform businesses as well as our viewers and supporters who collectively make up the spank chain community they take their spank and they stake it on the spank bank smart contract which records their deposits now you see a number to that new booty is minted proportionally to all spank stagers now the arrow there are only points the viewers and supporters but it should also point to performers and platform businesses right so the viewers and supporters of the platform can also tip in booty to performers and because booty is an AR c20 token it can all be traded on an AR c20 exchange and finally the platform performers and platform businesses will pay their fees in booty which will all be sent to the spank bank so it can keep track of how much was used in fees during a time period let's talk about booty generation for a second so the way the booty generation works is algorithmically determined by the smart contract by the spank bank so the target total booty supply is 20 times the amount of booty consumed during the previous time period and let's just assume that's a month for simplicity we're still working out the details but walk through how this sort of works so let's assume that in the first month the initial booty supply is 200 and in all of our platform we collect ten booty ten dollars in fees right this will be coming from fees that we're collecting for our services or applications things like that right so because our fees are 10 booty that means that the new target booty supply will be 200 booty and so we need to generate 10 more in order to get from the 190 which is what you get if you consume 10 from 200 because those 10 are burned - back to 300 and so I walked through a the increase in usage and the decrease in usage and the return to equilibrium so let's say in the second month usage increases to 20 booty right now the target booty supply will be 400 and the new booty generated will be 220 because you started with 200 you used 20 so you're at 180 you need to get to 400 you're gonna make 220 and remember all of this booty that is generated is distributed proportionally to the Spanx takers the third month the platform sees a slight decline to 15 booty all right so now the target booty supply is going to be 300 and because the amount that will be in existence already is 385 or above the target so we don't need to anymore so we don't and then in the the last month we are actually in month four then we receipt a return to the 20 booty and so then in order to get back to 400 we meant 35 because we're at 385 we consume 20 that puts us at 365 and so we make 35 more to get to 400 and then the final case is the equilibrium which is at 400 if we consume 20th and we just continue to generate the 20 that we used another way of framing this is that if you use 1% of the spank chained platform and hold 1% of spank you will generate enough booty to cover your fees and that's why it acts as a dynamic license proof of spank there is a problem and the problem is that age verified performers who have gone through a year now uploaded their IDs and you're taking the pictures can actually swap with underage performers on live cam shows and our solution to this is that we're gonna have put the Spanx takers to work so spanks takers must participate in real time age verification in order to earn booty so here's how it works every ten minutes a live streaming performer is selected at random for verification we generate four random numbers between one and twenty and the performer has to recite all four numbers and then they pick a number and they spank themselves that many number of times spanks takers would then participate in a token weighted vote on whether the performer matches their profile right and this is a lot of people are like why would you do this this is dumb you don't need this and it's like yeah but well if it's fun it'll actually be more effective so why not make it fun and spanking is actually in Cannes it's like a thing everybody does it you'll figure it out so if the outcome of the vote is that the performer is an impostor then we will investigate and possibly close their account and in order to do this at scale we will obviously use plasma so you can imagine that we will have a infinite throughput hierarchical plasma chains for proof of spank and while this will start out as a manual process well people will be clicking a button and voting we expect it to evolve into an automated like machine vision real-time verification system and those will be like the Asics of proof of spank we launched our first step about a month ago it is an educational and onboarding tool we wanted to test a theory that people are more motivated to learn about crypto once they have some so this is crypto titties it is a leaderboard ranked by the amount of eath that has been tipped there are 71 pairs of tits on crypto titties a total of 34 point 7/8 has been tipped and 100% of the funds have gone straight to performers in order to do this we on-boarded most of these performers on to cypher browser cipher browser is the most sophisticated crypto currency wallet on the market today it's great has it also has an integrated browser so if you wanted to go on crypto city's comm on cypher browser you would be able to tip seamlessly directly from your wallet we also made a three hundred thousand dollar development open source development grant and to cypher browser about a month ago this is what a cypher browser onboarding party looks like at a VN so we as a team went to a VN which is like the Oscars of porn and then we told our performer friends to tell their performer friends that any girl could come up to our booth and well we'd pay them a hundred dollars in cash if we could take a picture of their tits this was this was pretty interesting and so we had girls lining up outside of our booth like pretty much the whole time and we'd bring them in and we'd tell them you know what was gonna happen we'd take make sure their tits give them $100 cash and then we tell them that if they stuck around and downloaded cipher browser we'd also give them a hundred dollars in eath and $100 in spank so they did and it worked and we had about 70 girls sign up and gave out about twenty thousand dollars they loved it and you can see that the the fans love it too there's a lot of engagement in about a month we plan to launch our first main app which will be our camp site and it will use our wallet with the in browser wallet with integrated payment channels it's gonna look something like this it's got the video it's got chat it's got tipping goals and stuff like that it's everything you'd expect from a camp site the cool thing is that you can now pay anyth and you can pay anyth in a payment channels so what you're looking at is a wallet so this is a wallet just like madam asked or any other while it holds funds and transactions stuff like the kicker is that it actually is tightly integrated with our payment channels so when you click this fill-up 69 dollars into your spank card under the hood what is actually happening is you are opening up a payment channel with spank chain 4 with our with our hub and that's what it looks like when you're done and so now you have 69 dollars in a payment channel with spank chain and you can pay instantly on our platform you can deposit into open channels so as you can see another twenty dollars has been added to the you wallet and if you click load up twenty dollars in to spank card it will get deposited oops yeah directly onto the spank card and so the reason we came up with a spec card is because we needed a metaphor to explain payment channels to users so that they've never actually have to learn what payment channels are and everybody understands how cards work you pause it into it spend the money and then when you're done you withdraw and so we figured this made sense and I puli expect every other thing that uses payment channels to sort of follow this so remember where you saw first you can see the activity broken down by cam show and if you want more granularity you can click and dive deeper into what specific payments were made what exact tapes you made and so we have a sort of metadata schema that we're working on to help us represent visually the payments that are made in a hierarchy so now I'd like so what I've shown you so far is like the Wayne industries of spank chain what I'd like to show you now is the Batcave it's the R&D division so Nathan thank you I mean as you might know we like state channels here at spank chain and so the idea behind the work that I've been doing is that we may want different types of channels in the future and we kind of want to be prepared for this we don't want to build out implementations that can't scale in the future or have hard upgrade paths in the future so we're thinking about things now how might we build systems now that will be better for scalability in the future or may fit into state channels and how that would run the wrong way okay so I'm going to assume that we all know what state channels are I'm not going to get into too much of detail of what a state channel is ultimately it's you know it's a function that takes some state in an action and then you get some new state out of that and specifically here you'll see it's like a single Direction payment channel where you are adding money only as the action and you get a new balance out on the other side so we have this idea to generalize what a state channel does and we call these things interpreters so in general you need to have a system on chain that can take states and turn it into meaningful representations right usually this meaningful representation is a balance of some sorts in the crypto world and these interpreters need to enforce some rules on these state transitions to make sure that nothing is going awry in the balance case it's going to be something like make sure that the bonds that were put into a channel can't be overstepped by any state transitions that are happening off chain so this is how that might look in a visual sense we have two parties interacting on chain you could consider each one of these interpreters to be a different type of system so one of them might be your spank wallets another one might be a bi-directional payment channel that you have opened up with your friends so you can send money back and forth or generally anything you could fit into a state channel you're going to be throwing them on chain and they all take a dip implementation on change so as you can see there we're putting each implementation into its own on chain and deployment and all the funds are gonna sit on these different appointments and so this is an expensive way to do state channels if we have to deploy the logic for each individual channel each time and there's no way to connect balances between these channels so we've come up with this idea of a channel manager something that can point to multiple state channels and keep a record of a total balance of sub balances that may exist on other channels and you can kind of see how that would work here you have a channel manager that's basically just connecting multiple state channels this is still expensive of course as you saw that was all on chain so we like to do better than that so thanks to the work from elf for counterfactual they have come up with this idea of counterfactual addressing this is an idea that may take some explaining I might not be able to get this point completely across but main question is do we need to deploy each one of these interpreters on chain does each state channel representation or system actually have to go on chain and can we find a way to seamlessly move balances between these systems off chain not on chain at all in order to do this we think that you really only need one thing on chains some sort of multi signature agreements between the parties what we are calling a bond manager of sorts so here you can see the the trade off that has happened we've moved our state channels to the off chain section and the only thing left on the on chain section is some bond manager currently in the implementation that we have written this this multisig wallet has two takes the signatures of the parties involved the states of the initial balances and the actual deposits themselves so how does the bond manager know how to settle state from off chain contracts right that seems a little hand wavy so alpha has come up with this idea of a counterfactual register so the main problem that we are trying to address with this counterfactual registry is that we need a reference to a contract that has not been deployed yet with current aetherium implementations addresses of contracts cannot be known beforehand so we need to create a registry that can take a mapping of some predetermined things and allow them to be determined later so this is done by deterministic lis computing the parties involved in the channel as well as the bytecode of the contract that they or interpreter that they would like to use on Shane in the event that disputes happen off chain and this creates a contra factual address when you do combine these deterministic pieces and this potentially becomes the ID in the registry for how to look up what would be deployed in the future to see how this works exactly in our system you can see here where the first step would be to actually get the byte code of the interpreter that you would like to use in your channel so the first interpreter that you would be instantiate in is the channel manager itself that you see there it is a type of interpreter itself so you get the byte code you sign this byte code a special message you send that over to your counterparty they're going to do the same thing they're going to take a solidity compiler and compile the same channel manager and sign it make sure everything is valid from their other counterparty and once you've done this you could say that this channel manager has been counterfactually instantiated keep a close eye on the connecting pieces here the registry does exist on chain but you'll notice that there's no connecting line to it there is no interaction with the registry unless there's a dispute you never actually have to map that counterfactual address to the deploy address of course because if you're not deploying you never have that address anyway so now we have this idea since we have this channel manager now off chain that we can kind of load other interpreters or other channels into this channel manager and it's going to work like this in our implementation currently you see kind of how the channel manager sits on top of multiple channel implementations so you would first get some new bike code of the interpreter or channel that you would like to open up you're going to do the same kind of deal that you've just done with the the channel manager you're gonna send it over to your counterparty they're going to verify it now you've counterfactually instantiated a new type of channel with them and you can now a similar pattern you can now start interacting on this channel so the counterfactual address is generated for each interpreter the state transition is defined to kind of carve out a new subset of State in my current system where you are creating a state update on the channel manager that says hey I'm loading in a new channel and you're agreeing that this is going to be some new state that kind of gets appended to a global state so I'm calling it a subset users can now interact on this channel right and it's gonna look like this where you have this counterfactual contract client side you're going to have the same logic so you're going to be creating these state transitions and signing them you see I can update nonce there on the channel manager that's kind of like creating a new state transition sending it over to your counterparty to sign they are going to say okay I agree with this now I would like to make a state transition and do the same thing you can bounce back and forth this is normal state channels technology here that you may be used to now let's talk about what happens if we want to get out of these channels right so there's the happy cases and the dispute cases the happy case will look like this where you have this agreement to close the channel so one of the parties and this is not necessarily the channel manager this could be any channel that is attached to the channel manager and some party just wants to close that channel there we'll put a flag on the state that says I want to close this they'll send that over to the counterparty the counterparty will check it and go yes I agree I would like to close this channel so they both sign that now instead of counterfactually instantiating anything or deploying anything that was counterfactually instantiated you can go directly to the bond manager or the multi-sig with your final balance and close everything out that would be closing everything in one channel you would just remain off Shane and just update your channel manager state off chain so in the happy case you can close channels off Shane and then close everything on the monitor now we have to worry about challenges a client not responding or malicious activity or failures in the clients so we want to now actually get these kind of actual contracts on Shane [ __ ] just got real so let's say that I want to close a single direction payment channel we have three payment channels open and I want to close one of them so you'll see here a process where the first party has created some state update they say hey I want to close this channel even they send it over to their counterparty the counterparty runs some verification on and they go wait this the state update maybe takes more money out of our bond than we originally agreed to or there's something that I don't agree to this so they would like to now start a settlement period where they can settle on a previous state that they thought was good in order to do that they're going to need to talk to the registry so they're going to send the bytes that they agreed on to be counterfactually instantiated to the registry this is the point where you will see the mapping that existed the the CTF address which was pre-loaded into the bond manager will now point to the registry which has a deployed address after the registry deploys it you can settle that one channel by talking to the now deployed channel manager that is on Shane and figure out what the channel manager violence should be and if you want to close everything you can talk to the bond manager to do so and this would require everything being closed all other channels that the channel manager is tracking would also have to be closed too in order to do that so you can have multiple channels and that's I think kind of the cool takeaway from this you you get this ability to stack them underneath of this channel manager and kind of jump between them siding which state you're updating at which time and none of it has to go on Shane just do this over and over again the kind of the main takeaway here is it takes some thought to to make your system aware of this as I mentioned I think as a DAP developer we should think ahead for scalability not pigeonhole ourselves into an implementation that doesn't have a good upgrade path so if you want to use a system like this you may want to start thinking about state more how does your how does your DAP handle state transitions are there in any intermediary states that you can get rid of things that don't need to necessarily go on chain all the time not every system is going to Beach analyzable but we are exploring what can be and I think if you think ahead then we can get to some serious scaling and that's it hi so in the example you only have two parties how have you thought about having a state channel with more than two parties on it I have yes it's been a complicated thought that I've had in my head right so I believe it's possible I've had some conversations with elf for I believe they've figured out how to do this not saying that for sure but my challenge to that would be so imagine you have 10 people that open up a bond manager or multi-sig together and you have two people that want to open up a payment channel inside of that so now those two people will be signing state transitions together but do you need all 10 people to agree to their state transitions right what have we done to consensus whenever we've broken the parties up and is there a way to make sure that there's a rule just baked into the contracts that these two parties that are agreeing to their own state transitions can't steal more money from the multi-sig wallet then they have a agreed to bond into their off chain payment channel that's something I think can be settled I haven't quite figured it out yet thanks for the talk I have a booty question booty was picked to the dollar yeah yes how do you handle the currency peg so we we accept booty for $1 in platform fees and if booty drop significantly then we'll have to buy back with our reserves see sue do you hold an equivalent amount of US dollars to the booty supply at all times so like this is sort of you know how countries protect themselves against like speculative attacks and stuff right we have to have reserves and even possibly have hidden reserves so equivalent amount of dollars probably not I don't think so I wanted to ask a question about one case imagine there are a lot of makers of the content right on the net so the two of them have their Bo have their own profiles keys and wallets to receive money well what if two of them want to combine efforts for a period of time and how do this process come do you make a new payment channel or something yeah so these are the types of things that can actually be baked into payment channels itself so let me repeat the question the question was what if there's two performers that are on a show together how do you distribute the payments both right and the way to work is like you'll actually need to construct the payment channel in such a way that it can pay out to multi parties right and so this is why the stuff that Nathan and l4 is doing is so important because it'll allow us to upgrade our smart contracts that actually managed the channels off chain so like right now we have unidirectional ether only channels right if we wanted to have bi-directional channels or channels that can Pat's multi parties and allow users to upgrade to those it would cost us like two on chain transactions which would be a lot of gas cuz you have to move out of the old contract and into the new one and so that's why we're doing this research because it'll allow us to iterate faster and build these systems quicker Thanks [Applause]
Automatic transcript — names and jargon may be misspelled.