New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Nanopayments: The Game – Justin Sheek & Nathan Handler

Ethereum DenverFri, Oct 9, 2020, 12:00 AM

This talk is from ETHDenver, the world’s largest Web3 BUIDLathon and Community Gathering. ETHDenver’s content is crypto and blockchain focused. Subscribe to our channel to learn more + connect on Twitter: https://twitter.com/EthereumDenver. Speakers: Nathan Handler & Justin Sheek of Orchid Abstract: Orchid engineers Nathan Handler and Justin Sheek will walk you through a series of interactive economic games designed to #BUIDL understanding of how nanopayments can work for you. This talk was recorded Friday, February 14, 2020. ETHDenver 2020’s content themes included DeFi; DAOs and Token Engineering (TE); Gaming and Usability; Protocols and Interoperability; and Public Good and Social Impact. Industry experts also weighed in on topics like decentralization, privacy, identity, non-fungible tokens, scaling, governance, diversity, and arts and culture in blockchain technology. The 2020 event was February 14-16 in Denver, Colorado and hosted 2000+ blockchain enthusiasts, developers and community members from 50 countries and 50 U.S. states. 🔴 SUBSCRIBE ETHDenver’s YouTube https://www.youtube.com/channel/UCgz9NU06t_FkT0Py1Vadczw 💡 LEARN ETHDenver’s Official Website https://www.ethdenver.com/ 👋 CONNECT ETHDenver Twitter https://twitter.com/EthereumDenver 📖 READ ETHDenver News on Medium https://medium.com/ethdenver 🛍️ SHOP ETHDenver Official Merchandise bufficorn.com 💬 CHAT Telegram https://t.me/Ethdenver Discord https://discord.gg/jteMn5c 📱 FOLLOW LinkedIn https://www.linkedin.com/company/ethdenver Instagram https://www.instagram.com/ethdenver/ Facebook https://www.facebook.com/ETHDenver/

Transcript

good morning everyone welcome to nano payments the game I'm Nathan handler this is my colleague Justin chic we both work at an orchid so VPNs have been growing more more popular as a means of stopping governments and corporations from monitoring inspecting and blocking your internet traffic while traditional view Ken's typically work well enough they suffer from inherent weaknesses around centralized trust based models how do you know that your provider isn't logging or sharing your data due to government coercion or for additional revenue lock-in for macro payment limitations or the link to contracts also prevents cheaply and rapidly switching providers when blocked or when they're slow and finally pay with credit cards associate skee personal identifying information along with all of your internet activity some people might try to avoid this lock-in by using one or more free VPNs being free to use is not actually an advantage free VPN providers as well as tor typically suffer in terms of performance or security this is where orchid comes into play orchid is a decentralized open source bandwidth marketplace built on top of aetherium it supports connecting with multiple hops as well as staking in addition it utilizes a technology called probabilistic nano payments to solve some of these issues around payments as well as others that we'll talk about later ok let's start by examining how a traditional fiat payments will stack up against probabilistic payments so we're gonna walk you through a few exercises and sort of demonstrate what the differences are between our payment system and traditional payments and also if you're familiar with payment channels will show some differences between those as well all right so we've got some props with traditional payment systems for instance you might use a credit card to pay a dollar for something however with our system with probabilistic nano payments instead while you'll send is a lottery ticket with a 1% chance of $100 so in either case it's $1 that that's being transferred and we'll show you how that adds up to the same way let's examine the difference now through a quick exercise so Nathan and I will just go ahead and walk you through that okay so let's say your goal in this exercise is to stream a 4k movie and let's just for the sake of argument say it's about 20 gigs in size and that Ben with is you know kind of in total be about $1 worth of bandwidth to stream that movie so the pink tickets that we're gonna show you are gonna represent a dollar in fiat so this is gonna be just a really basic example and orange tickets that we're handing over will represent banana payments with a 10% chance of being worth $1 and the blue tickets will will signify the bandwidth in intense and increments so you know about a few gigabyte to gigabytes say a bandwidth so first we'll demonstrate traditional payments so please okay you have the I bet you have the tickets here all right so he's got some some pink tickets which are gonna represent yeah just a traditional Fiat and I'm gonna have some bandwidth that I'm trying to sell him okay so I'll say please okay hand over your payment of $1 one thing ticket great and then in return I'll just give him you know 10 of these bandwidth tickets okay so he got the whole movie in one go and that's how sort of more traditional payment system might work whereas in a traditional sort in a probabilistic setting instead what we're gonna do is we're gonna hand over he's gonna hand over some some fiat used to give so the pink tickets yeah okay so he's gonna take two of those pink tickets and he's gonna lock them up into the orchid smart contract so this is not going to come to me as a as the recipient it's going to go into an escrow and now that it's in the escrow I can confirm by looking at the by looking at the etherion blockchain that Nathan actually has money to be able to send to me so that I can honor his probabilistic payments because I know they're backed by real currency so I'm gonna hand him some orange tickets now instead when he hands me an orange ticket he's only handing me a very small amount of value he's not handing me the full dollar so I'm only gonna give him a little bit of bandwidth in return so now he's downloaded a little bit of the movie and I've created a little bit of the payment and we can repeat this interactively one at a time if only I had three hands so I'll continue giving him bandwidth in response he'll keep giving me payment and we'll just pretend that we did this you know eight or nine more times just hand me like you just hand me the few tickets right for the sake of time and so this is more of an interactive protocol for payment and at the end what I've received is a bunch of orange tickets which are these banana payments so I have these things which are only worth something if they are backed by a winner so what I need to do is I need to go to the orchid smart contract and I need to show hey I've got these things from Nathan these Nana payments what can i are any of these worth anything and so let's suppose that just for the sake of argument that out of all the orange tickets that I hand over to the smart contract only the ticket sending in seven our winners so I'll walk through and I go okay this ends in a1 this sends in a to this sends in a four five six oh he's a winner so I show the smart contract hey I've got a winning ticket and because these fiat payments were locked up in an escrow that smart contract can now say great oK we've confirmed you have a winner this is provably secured and walked through how how we actually secure this to make sure that nobody neither Nathan or I could cheat this protocol and they say great you have a seven here's a winner and at the end of the protocol I receive one payment so you can see in both cases I received one of these ping tickets worth a dollar it's just that the the protocols were quite different as we walk through them so for instance if I send a hundred payments with those systems I may have sent a hundred dollars in exchange for 100 items and in either in either case but interestingly you can extend this to very small scale purchases by adjusting the probability of these winning tickets downward to say one in a million chance of a dollar and now you can pay for really really tiny payments so let's now take a look at how unchain crypto transactions compared to off chain probabilistic nano payment transactions with on chain transactions every purchase gets read into the blockchain this requires paying a transaction fee for small purchases the transaction fee would completely wipe out any potential earnings this is why you'll typically see minimum purchase amounts with off chain transactions you're able to send many tickets with only the winner resulting in a transaction fee this allows for the purchase of extremely small items that would be impossible to efficiently purchase with on chain transactions what's examined this difference between on chain and off chain transactions through another exercise for this exercise rather than streaming large 4k movie we're gonna attempt to stream a much smaller trailer that typically might cost about 10 cents there so in order to convey this point we're gonna introduce a new type of ticket a purple ticket that represents transaction fees so we're gonna start by showing off the Unchained situation here so in this case here Justin wants to watch a trailer so he's gonna have to hand over a purple ticket to pay the transaction fee so he hands over a purple ticket and he's able to watch a trailer if he wants to watch another trailer afterwards he's gonna have to hand over another purple ticket and pay a second transaction fee so now let's compare this though to the off chain situation in the off chain situation with nano payments it's going to work a bit differently here so justin is going to hand over to pink and two purple tickets it's cover a deposit as well as the transaction fees ultimately there so in this situation here we're gonna tear up this purple tickets these aren't it's not profit for orchid they're gonna go to the miners instead there so now if Justin wants to watch a trailer he's gonna hand over an orange nano payment ticket he's now able to watch the trailer if he wants to watch another trailer he hands over another orange ticket there he isn't handing over purple tickets he isn't paying additional transaction fees there the only time those purple tickets he handed over at the start are actually utilized is if there's a winning ticket which is gonna happen very infrequently so in the Unchained situation despite the low cost of the trailer that we were showing before the user ends up paying a very sizable amount in transaction fees compared to the off chain situation and this is all in addition to having to still pay the money upfront for it to cover the actual cost of the trailer itself so as you saw with the probabilistic nano payments you don't really need to worry about the transaction fees and this allows us to make extremely small payments with orchid or even able to handle paying for something as small as a single Network packet but can you go even smaller we encourage you all to think about why or why not this is possible come chat with us afterwards is it possible to pay efficiently for a single disk i/o or even a single CPU instruction we've shown how nano payments enable these small purchases but what else do they enable small payments significantly affect the level of trust required of a provider and they can route they can reduce the trust burden down to miniscule levels allowing for a truly decentralized trustless system they also make it possible to rapidly switch between providers so one of the things that nana payments enables is actually interacting in a more trustless context so finally let's look at what happens when you introduce untrusted providers into our mix and who may not behave in a fair and honest way so you might ask if you pay upfront as we did in our system why do you even get service when you're trying to buy something from an anonymous stranger on the Internet if you hand them your money upfront you have no guarantee that you're actually going to get any sort of service in response so I think we may how are we doing on time good ok let's go ahead and go through this final exercise to talk about trustless interactions with the other payments ok so let's demonstrate something that's really only possible with Nana payments for an untrusted party you want to make sure that your balance of trade with them never goes out of whack you don't want to hand $40 to a stranger on the internet and then just you know hope that they give you something in response instead with Nana payments you can hand them ten cents or a hundredth of a cent as payment and see if you get anything back and then you can interactively verify that you're actually receiving service and at no point are you ever trusting them with more than a fraction of a penny so let's go back to the trailer example and let's imagine you're trying to pay for a trailer with with it with the Nana payment protocol but I you're going to check that you actually because you're interacting with potentially an untrusted party you're gonna check whether they actually send you the trailer maybe they send you the wrong trailer and if so then you don't hand them any more money before you couldn't hand them a very small payment like 10 cents because the transaction fees were dominating when you have a transaction fee of five cents sending 10 cents is very inefficient so instead you had to hand them maybe a large sum like a dollar or you had to set up a payment channel with them which is also costly and if they behaved maliciously you're out that dollar or you're out the the time and expense of setting up your payment channel with with orchid nano payments you actually only setting up a single payment channel with orchid and then anybody who accepts orchid tokens is able to receive money from you now so at those scales of the ten cents scale and so on it may not seem like much but what if we changed the scale and now with Nana payments you're only losing a millionth of a penny or a thousandth of a penny and with the traditional payment you're trying to buy something worth ten dollars you might be out you know an entire chipotle burrito at that point so let's go ahead and execute this protocol in a traditional sense Nathan's gonna go ahead and hand me a one ping ticket but imagine that I'm an untrusted provider I go thanks Nathan it's a dollar and then I walk away and he's left holding the pack so on the other hand with the Nana payment system he sets up his as before in the last example at two pink and two purple tickets we grab a couple purple so what he'll do is he'll hand those two pink tickets and two purple tickets over to the orchid nano payment contract and those are going to go effectively into an escrow and then I ask hey anything you want to watch a trailer yeah I'll give you some orange tickets so you can start making some payments so he's gonna go sure here's some Nana payments and then I'll go aha I've got a nano payment and I'll run away if I'm malicious but in this case it's very unlikely that this Nana payment was even a winner and so the amount of value that I've been able to take out of Nathan's pocket is really tiny in comparison it's not a dollar it's more like a hundredth of a cent so I'm actually incentivized to stick around and see if he's gonna download more because as long as it makes sense for me to stick around then I have less of an incentive to walk away so I might want to say okay here's a little bit of this trailer so I'll go ahead and send him a few data packets and the Nathan goes great here's another hundredth of a cent and I go oh if we keep doing this I might make a dollar and so at no point is Nathan trusting me with really much of anything and that enables applications that weren't possible with traditional payments weren't possible with even payment channels where the costs of interacting with an untrusted provider could have still been quite high because once you create that payment channel you're sort of locked into paying only that provider so we asked the question earlier if you pay upfront why do you get service and we've answered that by saying because you never make it clear for the person who might behave maliciously you never make it clear for them to walk away because you never trust them very much so most nano payments don't result in a record I'm Shane but the rare winning ticket will result in a public payment record this is why our theory based nano payments are really only Sunnah pseudonymous their users desiring stronger anonymity guarantees they should try using a mixer or funding source like Z cash and for multi hop circuits the orchid client can even use a separate account per hop which makes it more difficult to trace your circuit from public payment information an adversary trying to trace the route may still learn some of the payment providers associated with the pair's public addresses but not all of them so you might ask the question how do we handle double spending and we actually had kind of a cool way of preventing these attacks essentially we require the payer to create a small burnable deposit we sort of kind of glossed over that in the exercise but a complete analysis of the various possible spending attacks and the required deposit sighs that's all beyond the scope of this talk but we do describe it in detail in our white paper and we walk you through the full game tree and we'll be at the booth as well they answer your questions about double spending so we've incorporated these probabilistic nano payments as a core feature of orchid to provide for the ability for our users to interact with providers at a scale in a safe private and affordable way if you're interested in learning more about the nano payments and potentially incorporating them into new and existing projects we encourage you to check out our white paper and our introductory blog post also be sure to follow us on social media and come check out our booth ask questions and get connected we're here all weekend and we'd love to discuss nano payments more detail with you we also have a limited supply of free trials for orchid debt so you can experience it all for yourself thank you [Music]

Automatic transcript — names and jargon may be misspelled.