Aaron van Wirdum Live from Utrecht, this is the Van Wirdum Sjorsnado.
Transcript
Sjors Provoost Hello.
Aaron van Wirdum Sjors, I have amazing news.
Sjors Provoost You have amazing news. Tell me.
Aaron van Wirdum Are you ready for this?
Sjors Provoost I don't know.
Aaron van Wirdum The Van Wirdum Sjorsnado now has its own feed.
Sjors Provoost Its own RSS feed.
Aaron van Wirdum Yes. So, in your own podcast app, you can find the Van Wirdum Sjorsnado. Or maybe not yet. I think it usually takes a few days for these things to pop up. Longer than you would expect. Like it could take up to two weeks maybe even.
Sjors Provoost Well, I already signed up for it a week ago. So I think it exists, but I had the URL.
Aaron van Wirdum Yeah, but that's the RSS feed because you're a technical wizard. Most people just click subscribe in their podcast app.
Sjors Provoost I did it in iTunes.
Aaron van Wirdum Oh, it's there?
Sjors Provoost I subscribe directly to the podcast feed.
Aaron van Wirdum Yep. It's there? Okay, it's not in my app yet, but it will show up soon. So we have our own... feed this is also for our listeners yep ladies and gentlemen the Van Wirdum Sjorsnado has its own feed for you to subscribe to
Sjors Provoost yes sir
Aaron van Wirdum Sjors, how do you like reusing addresses
Sjors Provoost I love reusing addresses it's amazing
Aaron van Wirdum it's so convenient isn't it
Sjors Provoost yeah it just makes you feel like you know your exchange if you're sending the money they know everything about you And they like that, right?
Aaron van Wirdum It's so convenient. It's so easy. Nothing to complain about here.
Sjors Provoost Absolutely.
Aaron van Wirdum So that was our episode.
Sjors Provoost Thank you for listening.
Aaron van Wirdum Okay. Actually, I think everyone will know reusing addresses is a horrible idea. Absolutely. You're giving away all your privacy. I guess that's the main problem, right? You're just giving away your privacy. I guess in the long run, there's maybe some sort of quantum risk, but we mostly care about privacy. You're giving away your own privacy and also you're giving away, you're compromising the privacy of everyone you're interacting with because if you give away your privacy, that means everyone who's paying you, you know, blockchain analysts can figure out that they're paying you and do the other way around if you're paying people. So it's compromising everyone's privacy. So while it's very convenient, it's something we shouldn't be doing.
Sjors Provoost Exactly. So that's why most wallets have a button called get new address. And some good wallets will actually automatically make a new address whenever you even click on receive. Some wallets don't.
Aaron van Wirdum All right. So that works. We need to generate a new address for each payment we receive. However, this is a little bit inconvenient as well, isn't it?
Sjors Provoost It can be.
Aaron van Wirdum Here's the solution. We need an account system for Bitcoin. Or at least it's possible to create an account system on Bitcoin. And it could be useful.
Sjors Provoost I think the word account has some negative connotations. But it'd be nice if you knew one thing about the other party. And then you can keep sending the money while automatically using a new address. I think that's what we want.
Aaron van Wirdum Right. So José Femenías Cañuelo. That's probably a severe mispronunciation of his name. But Spanish developer José Femenías Cañuelo, he also believes so. He believes Bitcoin would benefit from an account system. It's called Easypaysy, which is short for Easy Payment System, I think. Easypaysy, and that's what we're going to... discuss today all right okay so it's pretty clever and we'll get to possible downsides later but let's first just explain how it works yeah
Sjors Provoost yeah how does it work because this time you're going to explain how this thing
Aaron van Wirdum works i'm going to do most of the explaining this time all right so To generate an account, one of the clever things about this proposal is that it uses nothing outside of the Bitcoin blockchain itself, necessarily. There's options to that, but we can do it all without any outside of blockchain thing.
Sjors Provoost Well, by thing, you don't mean wallets, but you mean there's no communication protocol. You don't have to run a server to communicate with the other person.
Aaron van Wirdum Exactly, we generate the account on the Bitcoin blockchain itself, and people can find the account on the Bitcoin blockchain itself.
Sjors Provoost Okay, so how do I generate an account?
Aaron van Wirdum Right, so an account is basically a transaction. That's in this proposal what an account is. And this transaction consists of one input, so one address where coins are sent from, but this one input is a multisig input, so it has two public keys. It also has one output, which is a... What's it called? No... OP_RETURN, sorry. So one OP_RETURN output.
Sjors Provoost So you're sending some money from a multisig address that you control yourself to...
Aaron van Wirdum vacuum. You're basically sending no money, but you do need to pay a fee. So that's the only money that's involved in this transaction. You're not actually... spending anything to anyone but you need a little bit of funds to have it confirmed so the inputs the input does need to send some money which is the fee and then the output receives nothing right
Sjors Provoost right and so the reason why we need a Two of two multisig is...
Aaron van Wirdum Yeah, okay. So there's two public keys in there. So these are basically your public keys at this point. When you're making this transaction, you're announcing to the world, these are my two public keys. One public key is your identity public key or... yeah so well one of them is for communication anyways I forget there's a term for it which i'm which slipping my mind right now but one of them is for communication so if you want to send me some kind of message you use this public key which I think is the first of the two like it's just in order the first one is for communication and then the second one is for value one of the reasons there's two or I think the main reason there's two is that one is even more important than the other like if you lose your communication key that's a problem, but at least you're not losing money. Well, if you lose the value key, you're actually losing money. So what you can do is you can put the value key in cold storage in a safe somewhere secure while you can still talk with people, communicate with people. So that way, even if your computer is compromised and only your communication is compromising, you still keep your funds. So that's why there's two, basically.
Sjors Provoost Yeah, and it might be worth reminding the listener that, so what you're doing here is you're funding your own Or like putting a trivial amount in your own multisig address and then immediately spending from that multisig address. And the reason you have to do the latter is because you reveal the keys when you're spending, not when you're receiving. So in order for the rest of the world to see what your keys are, you have to spend from it.
Aaron van Wirdum Right, yeah, that's a good addition. Indeed, when you're spending two, well, anyway, no need to repeat. You're right.
Sjors Provoost Okay, so then the OP_RETURN message that's in the outputs of this transaction can communicate any other piece of information to the world.
Aaron van Wirdum Yeah, you can basically communicate text in this output. So the text we're communicating here is a JSON message, and it includes the instructions for how to pay to this account. That's the main thing it includes.
Sjors Provoost Yeah, I doubt it's actually JSON.
Aaron van Wirdum I thought it was JSON.
Sjors Provoost Well, it's some sort of serialized format, probably, that you can convert to JSON. Because otherwise it would be very inefficient.
Aaron van Wirdum What José told me is it's a small JSON document. You think that's probably a simplification?
Sjors Provoost Well, I don't know. I didn't read it in that level of detail. So there's only 80 bytes available in OP_RETURN. So you could use those 80 bytes to write ASCII characters, you know, with an opening bracket and colons and all this stuff. But you can also agree on a serialization format that could put way more information in a smaller space.
Aaron van Wirdum But you don't need to communicate a lot of data. You just need to... tell people which kinds of transactions you're accepting on this account.
Sjors Provoost Sure, you can do it inefficient if there's not much data. But if you want more data, you can do it more efficiently.
Aaron van Wirdum Okay, fair enough. Well, anyway, so there's three ways of receiving funds on these accounts. The first way is not recommended. It's to receive payments on your value public key. So now we're back to reusing addresses. We don't actually want that, but it's an option.
Sjors Provoost it's it's even worse than that I guess because you're announcing hey this is where the money is going to the whole world and then it's reusing addresses with everyone that you receive money from Plus everyone you're not even receiving money from because you've published it.
Aaron van Wirdum It's bad. It's in there because it's just an option for people to use. You can choose not to use it, but if we're making this protocol, that was Jose's reasoning. We might as well include it for people who do want to use it. It's a little bit like donation addresses. Some people do use a donation address which is just one address they post on our website somewhere. And anyone can pay to this address. So while it's not ideal, it's an option for people that insist on compromising their privacy. Okay, what's the other option? Okay, so the one I just described was, that's type one. That's how José called it. Then type, no, that was type zero, sorry. And then type one is the next option, which uses the communication key basically to request an address.
Sjors Provoost Okay. How do you request an address?
Aaron van Wirdum There's different ways of doing it. You can do it through mail. This is not specified in the protocol.
Sjors Provoost Okay. So this is where you do need some back and forth communication.
Aaron van Wirdum Yes. Yes. This one is interactive. Yeah. So you can request it through email or maybe Signal or maybe some other, maybe, I don't know, snail mail, however you want.
Sjors Provoost Okay. But this to me sounds like what we're already doing. We're giving people unique addresses.
Aaron van Wirdum Yeah, this is pretty similar to that indeed. So this is just one of the options in the account system. It's not all groundbreaking.
Sjors Provoost So tell me about this groundbreaking third option before I fall asleep. No, just kidding. Keep going.
Aaron van Wirdum Well, one of the... Interesting things here, I would argue, is that you're still signing it with your communication key to sort of prove that it's you who's requesting the payment, which can come in handy later on.
Sjors Provoost Okay.
Aaron van Wirdum Okay, so that was type one. And then type two, this closely resembles stealth addresses. So this is where it gets a little bit more complicated. This is where the sender of the transaction takes the recipient's, so the account holder's value key, And the sender himself generates a public key and a private key. He uses his key pair in combination with the recipients, the account holder's public key, to generate a new key pair. And then he sends the funds to the public key or to the address that corresponds to this newly generated key pair. So the money is going there. In this transaction, he also includes another OP_RETURN in which the public key is included the public key he generated himself and with this public key the account holder can use this public key to regenerate the new key pair and thereby he can spend the funds okay so the way this works if you're an account holder is you need to know that this transaction happened There's two ways of figuring that out. One of them is that the sender just tells you like, hey, I sent you some money, look at that transaction and you can use it with the information in the OP_RETURN to generate a private key, which you can use to spend the money. Or the account holder just needs to scan the blockchain to see if there are any transactions with an OP_RETURN in there. And if there is, see if there's information in there that he can use to generate this new key pair that actually matches and that actually lets him spend the coins. In which case, you know, he just finds money on the blockchain basically. So he knows he's been paid. This is a little bit of a hassle, of course, because, you know, it requires scanning of the blockchain and all of that. But it is very private because even though it's relatively private, because even though the value key was revealed in his account, This new money isn't sent to anything that anyone can link to the account by just looking at the blockchain. It's sent to a completely new address, which even the recipient, the account holder, didn't know at first and had to figure out. So therefore, it does offer nice privacy features.
Sjors Provoost Yeah, I'd say that's quite nice. The privacy gotcha there that I would think about is that when you, as the recipient, you first publish your identifier, your account.
Aaron van Wirdum Yeah, so shall I first explain that? And then you get to the privacy gotcha. Like what the identifier is.
Sjors Provoost Oh, what the identifier is. Yeah, sure. You can do that.
Aaron van Wirdum Right. So how do people find your account? As mentioned, it's just a transaction. It's a Bitcoin transaction that's going to be included in the blockchain. So the place where it is included in the blockchain, that is the identifier.
Sjors Provoost For example, the block height plus the place in the block.
Aaron van Wirdum That's exactly what it is. Not for example, that's exactly what it is. So the block height is, I don't know, 578,000. 331. I'm just making something up.
Sjors Provoost You're one of those old schoolers that still remembers blocks in the 500,000 range.
Aaron van Wirdum No, I think that's what I used in my article when I wrote this. So that's why it's still sort of stuck in my hand. I didn't use this exact number, but somewhere in the 500k range, I think. Yeah, and then it's like the 738th in the blockchain, and then... the actual account identifier is if I'm recalling correctly it starts with the actual actual blockchain so if it's Bitcoin it's like BTC at 500 whatever number I just used in the 500k range dot and then 700 whichever one I just used and then I think there's a slash and there's a checksum right so then you have There's an identifier, which is based on the place in the blockchain. There are ways where you can revert. That's not the right word.
Sjors Provoost I think what you were going to say is it's going to convert to some nice mnemonic style. So a couple of words like rabbit, big.
Aaron van Wirdum Exactly. Right now I was unable to remember the exact numbers I used, but if I would have used a mnemonic in the first place, rabbit, fish, I already forgot. Yeah, rabbit, big fish. Whatever it was, that's much easier to remember.
Sjors Provoost Yeah, that makes sense.
Aaron van Wirdum So then you can remember it and you can tell people and you don't forget. It's much easier to remember.
Sjors Provoost And you can go on TV and say, remember, rabbit, big fish. And then people can send money to RabbitBigFish. And maybe that's slightly easier than giving them an address. Though I'm a little skeptical whether that short name is such a big deal. But this is kind of where we get privacy. And also the stealth address part.
Aaron van Wirdum Let's hear it.
Sjors Provoost The first time you're using this as a recipient, so you're going to create an account, you're going to put a transaction on the blockchain. If then later on you receive coins, we're going to assume you use this third methodology, the nice privacy thing. It's going to arrive on different addresses, so that's very nice. But if you're stupid, or if your wallet is stupid, it's going to combine coins that are related to that first transaction. The first transaction itself is not spendable because it's an OP_RETURN, but maybe it comes from another coin.
Aaron van Wirdum Sure.
Sjors Provoost And now you start combining coins and somebody can link your identity to everything you received. So you still need to be very wary of this cluster analysis. A risk. A new wallet could avoid that and warn you about it.
Aaron van Wirdum No, that's true. You have coins in your wallet which you're going to use to pay the fee. You probably have more in your wallet than just the fee. So you have change and it's then sort of linked to your account. After which the coins can be linked to even the coins you received privately. That's something to be aware of, sure.
Sjors Provoost So I think it's this initial step where you have to announce something on the blockchain that creates this liability almost. Now for some parties, that's actually kind of a feature, or at least they can manage it. If you're an exchange, you know what you're doing, you're not going to make those privacy mistakes. And one of the cool things is that you can... Add a DNS record is one of the suggestions so that people can verify that, hey, this DNS record matches this big fish thing. And that's a nice way to double check. I could imagine hardware wallets could also embed some of these well-known codes so that if you're sending to Kraken or whatever, Your hardware wallet could say, oh yeah, that's actually an address that belongs to that exchange. At least the last time we updated the firmware to know these accounts. It's kind of nice against clipboard attacks and that sort of stuff. But that's for these schemes in general. I don't think you need to have this announcement into blockchain specifically. So if you go to stealth addresses, which I believe is BIP47, the mechanism there was slightly different, though I might remember it incorrectly. But the idea there is that you generate a payment code. which is longer, but it's not something you have to put in the blockchain. And so you can give that code to somebody else and that's your identity. Right. But that identity is not tied to anything in the blockchain. And then you do the same magic trick with somebody takes their own key and adds it and does a bunch of math and then sends it to an address. And then I think there is an announcement on the blockchain, but it's done by the sender. So when...
Aaron van Wirdum It's always done by the sender. Well, at least the payment is... Oh, there's a separate announcement from the payment?
Sjors Provoost So in the scheme we just talked about in Easypaysy, it's the recipient who has to announce their identity on the blockchain essentially once. But then when you want to send to them, there's some back and forth. But here in the Stealth Addresses scheme, it is the sender that needs to make an announcement on the blockchain saying... To a standard address, hey, so they get a payment code and they send one transaction to a standardized address, which is always the same thing, as a handshake. And then using the handshake, that's how you come up with the unique addresses that you're actually going to use. So the recipient will watch the handshake address, and every time it sees a transaction on the handshake address, it then knows what other addresses it should be watching.
Aaron van Wirdum Right. Okay, so that does require more. blockchain transactions then?
Sjors Provoost I don't know about the number of blockchain transactions maybe a little bit but the nice thing is that it's the senders that are sort of sacrificing their privacy but only really to the recipient and they're doing that anyway because they're paying the recipient rather than the recipient revealing it, you know, lowering its privacy. But I don't think it's a huge deal and all of these schemes you can choose to just do more off-chain. You can just have an identifier that you sent via email. And yeah, it's not a short, that's a downside, but it's just a public key in that case and you can do fun things with it.
Aaron van Wirdum Right. Well, you want to get into the benefits of this system?
Sjors Provoost Well, we did some benefits and some downsides. I would like to remind the listeners of a chicken egg problem that was brought up by the infamous ZmnSCPxj. Z-man. Z-man, or as the Canadians say, Zed-man. If you're a new Bitcoin user and you want to use this system, you don't have coins to send anywhere. So that's a problem, but there might be ways around it, especially if you're buying coins from an exchange. Maybe they can help you set it up.
Aaron van Wirdum I want to get into more benefits. I think we skipped over the benefits a little bit.
Sjors Provoost I mentioned a few, but give me more.
Aaron van Wirdum Recurring payments. Did we mention that one?
Sjors Provoost No, we haven't mentioned that. That's a good one.
Aaron van Wirdum Yeah, so recurring payments. So you want to pay rents every month. So your landlord would have to generate a new address every month. And wait, why is this a problem?
Sjors Provoost Well, you could say it's annoying for the landlord to have to send you an email with an address every month.
Aaron van Wirdum Right, exactly.
Sjors Provoost And then it's nice if you can generate, if you can predict these addresses yourself. Right. But I would immediately say there's a downside to that. Because if let's say my landlord has this magic box that he receives his Bitcoin on and then his magic box breaks, but he can't give you a phone call to say, hey, yo, don't send me any more Bitcoins. Then your rent just goes into the ether. Pardon the pun. Yeah.
Aaron van Wirdum He can call you, right? He knows where you live.
Sjors Provoost He does know where you live.
Aaron van Wirdum Yeah, he probably does.
Sjors Provoost But maybe the postal service is down because of some election issue. So, you know, it can be tricky. And more generally, let's say you are a very sophisticated recipient of these Bitcoins. Maybe you are a landlord. And initially you just have a, you know, you have one tenant that pays rent that way. And you just use your little hardware wallet and you generate these addresses that way. all is good and well, then you have lots of customers and you have a lot of money. Maybe you want to set up a multi-sig cold storage. Oh, but now you have to tell all your clients, all your renters to basically use this new payment code. So it's nice if you can just give a new address every month, then the customer doesn't have to care how you generate that address. You can do it yourself. You can have all the sophisticated... address generation methods you want
Aaron van Wirdum sure but here's the thing I think your your argument doesn't hold up because I think the idea is that if you're the landlord you can request payment each month you just send a message hey, pay me. And then your wallets can be programmed to allow this once a month for up to whatever your pay is. That way your wallet doesn't need to know all of the addresses into the future. It just needs to know, okay, it's okay to pay this amount to this account each month whenever they request it.
Sjors Provoost But then we really don't need anything in this scheme. Because now what you're talking about is saying, okay, our landlord has some sort of public key identifier that you somehow... trust on maybe trust on first use could be a PGP key or could be some other just a Bitcoin key that your wallet and then there's a protocol where your wallet you know where they can request payments from you whether that's push based or pull based maybe your wallet is running and it's pulling the landlord server every day to say hey do you have an invoice for me do you have an invoice for me and then based on some rules you automatically pay it I don't I don't think this scheme makes that easier The biggest complication there is just the, okay, what does the server look like that you're going to ping? What's expected from a wallet? Should it ping every day, every week, every month? What if it doesn't? So that is an interesting problem to solve, but I think that's almost perpendicular to this.
Aaron van Wirdum Okay, then I think the other big benefit is non-repudiation.
Sjors Provoost Tell me, what is repudiation and what is non-repudiation?
Aaron van Wirdum So I don't know what repudiation is, but I can perfectly explain what non -repudiation is. So I guess repudiation will be the opposite of that. It means that once you've paid someone, you can prove that you've paid someone.
Sjors Provoost Okay.
Aaron van Wirdum So you make some sort of order. I don't know. You order to buy a laptop or a tea kettle. I'm just pointing at stuff on your desk right now.
Sjors Provoost Yeah, a teapot.
Aaron van Wirdum Oh, yeah, that's what it is. That's what you're ordering. And then the seller receives the money and after it doesn't ship the order. And then when you complain, he says, hey, I never received any money. I don't know what you're talking about. I don't know who you are. Go away. At that point, now with Bitcoin, once you've sent it to a regular Bitcoin address, you have no way to prove that you actually did pay this guy.
Sjors Provoost Depending on how you got the address, right?
Aaron van Wirdum I guess, I guess.
Sjors Provoost If you got the address on a website and then...
Aaron van Wirdum But I want to solve it on the Bitcoin blockchain. So now we're solving it on the Bitcoin blockchain.
Sjors Provoost Why do you want to do everything on the blockchain? You sound like an Ethereum person.
Aaron van Wirdum I'm trying to make you hear me out because I want to finish my story. Yeah. At this point, normally when you're sending an address, that guy can just ignore you and claim that he never received a payment. Now, thanks to the brilliance of non repudiation, I can take it to court and I can prove to court, look, this is his account. Look, I actually made a payment to this account. I can prove it. He signed it with this communication key. or this is the stealth address. I can prove it in all sorts of ways. And at that point, there's no way for him to deny that he got the payment. So now the judge can order him to finally give me that laptop or tea kettle.
Sjors Provoost Right, or less radical. You can use it in your accounting software. So there's a little bit of an extra check that payments actually happened where you think they happened.
Aaron van Wirdum So you do agree there's a benefit now?
Sjors Provoost I think in general, there's a benefit of having... receipts, essentially. And basically, when somebody sends you an invoice, you really need to have some evidence that you really got that invoice. So normally if you send an invoice by PDF or via email, it should have the address in it. And that email should be signed by something, maybe just the standard email, DKIM, whatever stuff. And then the proof of payment really is just that address now has money. But okay, so that's all cool. Great.
Aaron van Wirdum Yeah. But there's more.
Sjors Provoost There's more, tell me.
Aaron van Wirdum Okay, so actually I got an email from José earlier this month. There's updates to the protocol.
Sjors Provoost Right, because just for the listener, this protocol was announced in December. Then there were some distractions in the world, I guess.
Aaron van Wirdum Oh, last December?
Sjors Provoost Yeah. Okay. Now he's back on it.
Aaron van Wirdum I'm going to read the updates to you.
Sjors Provoost Okay.
Aaron van Wirdum Okay. Update A. Radical simplification. Interactive payments, most of the scaling solutions, and a few other minor things will be left out of the first implementation of the protocol.
Sjors Provoost Okay, we didn't really talk about the relations to Lightning because that's even more complicated. But what was the first bit again?
Aaron van Wirdum So interactive payments, that's going to be left out.
Sjors Provoost And interactive payments, was that the second method you were talking about?
Aaron van Wirdum Yeah, I think so.
Sjors Provoost Okay, so we already dropped that and now he's dropped it.
Aaron van Wirdum Cool. Okay. B, leaner and more powerful transactions. Do you know what IOC transactions are?
Sjors Provoost I think that was the back and forth protocol. No, sorry, the cryptographic protocol we were talking about.
Aaron van Wirdum Stealth one?
Sjors Provoost The stealth-ish address.
Aaron van Wirdum Okay, so, IOC transactions don't need the OP_RETURN output anymore, so Easypaysy transactions can be as lean as any regular Bitcoin transaction now.
Sjors Provoost Okay, that sounds good for privacy too. Like not having these OP_RETURN things everywhere.
Aaron van Wirdum Okay. C. Support for SPV wallets. There is a new discovery mechanism that allows for simple support for SPV wallets.
Sjors Provoost Right, because we didn't really touch on that. But if you need to monitor the blockchain, that's a little bit more difficult for lightweight wallets to do than for full-fledged wallets.
Aaron van Wirdum Yeah, so apparently that's solved. D. The business model. As a side effect, the discovery mechanism needed to support SPV wallets opens up the door to having a business model for Easypaysy, since it will now generate revenue for investors and wallet developers.
Sjors Provoost I thought it was an open protocol.
Aaron van Wirdum None of this is really explained in the email. Or maybe if I would take the effort and read the PDF. That's maybe for another time.
Sjors Provoost Let's stick to the main technical points here. I mean, Usually you have a business that... adds contributes to the ecosystem with a standard or with some code and they might have their own plan for how to monetize that which doesn't have to be a problem
Aaron van Wirdum that's all I have Sjors. you don't so you don't sound very you don't sound very impressed I mean you sound mildly
Sjors Provoost I was around in the BIP 47 days right and there's still only I think one wallet that sort of supports it
Aaron van Wirdum which is Samourai. yeah
Sjors Provoost so I do think we need something like this. So in that sense, I'm happy that people are working on trying to figure out a good standard for some sort of identity, not in the KYC sense, but in the sense that I know that I'm actually paying this shop that I think I'm paying and some sort of way to make address reuse really hard. Although I think... Part of that is already solved. I think projects like BTCPay Server have made it ridiculously easy for at least for shops to just never use the same address. Exchanges should just never use the same address, otherwise they're just completely incompetent. One thing that might be worth noting is there's a development in Lightning by Rusty, who's proposed a system where normally with Lightning you scan an invoice, that's a QR code somewhere, and you pay it. That's it. But this proposal would basically have a QR code where if you scan it, You ping the node, then you get an invoice and you pay it. That might sound trivial, but it means that you can stick a QR code on an orange in the supermarket and like multiple people can buy an orange basically and get a unique invoice for it. And you can adjust the price real time rather than having everything fixed. Because if you put an actual lightning invoice on an orange, then after a week, the price might be completely wrong. So in this case, your orange, it's more like an identifier that says, hey, go to this lightning node and ask me about the price of the orange. And that sort of solves a lot of these problems too. So you can have fixed identities. The orange could have an identity or it's probably the supermarket that sells the orange. And so you get sort of the same thing. You can also do recurring payments and all these cool things.
Aaron van Wirdum With an orange?
Sjors Provoost With an orange, yes. But the thing is, I think there should also be systems like this for just regular Bitcoin transactions.
Aaron van Wirdum Yeah, what you're saying is it's basically solved for Lightning or there's a very, you know.
Sjors Provoost It's not solved for Lightning, but it is easier to solve for Lightning because with Lightning, you have to have a running node anyway.
Aaron van Wirdum Right, and yes, and that's one of the critiques that I've heard of this solution as well. That's why focus on on-chain. Let's just move this type of stuff to Lightning.
Sjors Provoost You could for smaller payments, but I don't want to pay my rent with Lightning.
Aaron van Wirdum Exactly. What you're saying is, no, no, it would actually be good to have it on -chain as well. It's just you're not necessarily convinced that Easypaysy is the way to go.
Sjors Provoost No, but I'm not saying there's any other specific way to go. My guess is because there's so many different ways to go and not a lot of people are enthusiastic about building it, it's going to be in a bike-shedding-ish state for many more years. So my hope is that on Lightning we'll get all of this sorted out more quickly. And then maybe whatever happens on Lightning can inspire on -chain. Or for that matter, maybe you just run your Lightning node software and let it hand out some on-chain addresses when needed. So Lightning might be the default, but for big payments, you do use on-chain, but you use all the Lightning protocol stuff, including the encryption and the routing and the 24-7 server to take care of generating on-chain addresses and verifying payments. Something like that. That's all I have.
Aaron van Wirdum I'm through. All right. I was just thinking of that XRCP or whatever XKCD cartoon about standards.
Sjors Provoost Oh, yeah. Let's make another situation.
Aaron van Wirdum All right. Anyways. Should we close it out?
Sjors Provoost Let's do that. All right, everybody. Thank you for listening to the Van Wirdum Sjorsnado.
Aaron van Wirdum There you go.