WEBVTT - Automatic transcript; recognition may contain errors. Reviewed for technical wording and speaker labels. Times match the published episode.

00:00:07.950 --> 00:00:12.810
<v Aaron van Wirdum>Live from El Zonte, El Salvador, a.k.a. Bitcoin Beach, this is the

00:00:12.810 --> 00:00:17.840
<v Aaron van Wirdum>Van Wirdum Sjorsnado. Today we're doing a special episode. I think I'm going to

00:00:17.840 --> 00:00:22.440
<v Aaron van Wirdum>call it the Bitcoin Beach special or something. I'm doing this episode without

00:00:22.440 --> 00:00:27.320
<v Aaron van Wirdum>Sjors. Instead, I have Nicolas Burtey, right?

00:00:27.840 --> 00:00:28.060
<v Nicolas Burtey>Yes.

00:00:28.460 --> 00:00:30.860
<v Aaron van Wirdum>Welcome, Nicolas. So you're going to be my Sjors today.

00:00:31.500 --> 00:00:32.660
<v Nicolas Burtey>Yes, thank you for having me.

00:00:33.620 --> 00:00:36.740
<v Aaron van Wirdum>Nicolas, can you introduce... Yeah, so that means, by the way, we're going to

00:00:36.740 --> 00:00:41.430
<v Aaron van Wirdum>need you to do the puns, because usually Sjors does the puns. So I hope you

00:00:41.430 --> 00:00:43.030
<v Aaron van Wirdum>brought some good puns for this episode.

00:00:44.500 --> 00:00:46.780
<v Nicolas Burtey>I'm not sure what puns means, but I will try.

00:00:48.020 --> 00:00:49.280
<v Aaron van Wirdum>Like the words jokes?

00:00:49.840 --> 00:00:53.540
<v Nicolas Burtey>Okay, okay. I'm not the best at, you know, words jokes.

00:00:53.760 --> 00:00:56.500
<v Aaron van Wirdum>You got it, Nicolas. I have faith in you.

00:00:57.740 --> 00:01:01.500
<v Aaron van Wirdum>All right, let's, yeah, first of all, Nicolas, for our listeners, explain who you

00:01:01.500 --> 00:01:02.960
<v Aaron van Wirdum>are. Please, introduce yourself.

00:01:03.360 --> 00:01:09.340
<v Nicolas Burtey>Hi, so you will guess with my accent, I'm a French guy. I

00:01:09.340 --> 00:01:15.160
<v Nicolas Burtey>have lived a couple of years in the US, and I'm currently, I have become a

00:01:15.160 --> 00:01:20.480
<v Nicolas Burtey>nomad last year, and I've been working on open source software. And I've been

00:01:20.480 --> 00:01:24.760
<v Nicolas Burtey>building a wallet that is called the Bitcoin Beach wallet that is used by the

00:01:24.760 --> 00:01:29.340
<v Nicolas Burtey>community here in El Zonte. I'm currently living in El Zonte as of now.

00:01:31.380 --> 00:01:35.180
<v Aaron van Wirdum>Maybe really quickly, you know, we don't need to dwell on this. There's other

00:01:35.180 --> 00:01:38.940
<v Aaron van Wirdum>podcasts on this specific topic. But maybe, you know, explain real quick what El

00:01:38.940 --> 00:01:40.760
<v Aaron van Wirdum>Zonte is and what's going on here.

00:01:41.180 --> 00:01:46.840
<v Nicolas Burtey>Yeah, so El Zonte is a small village in El Salvador. There is about 3,000 people

00:01:46.840 --> 00:01:52.680
<v Nicolas Burtey>here. And it's overall a poor village, right? The average salary here

00:01:52.680 --> 00:01:54.380
<v Nicolas Burtey>is about $400 per month.

00:01:56.460 --> 00:02:01.520
<v Nicolas Burtey>And what makes Zonte quite special is that it's the

00:02:01.590 --> 00:02:07.250
<v Nicolas Burtey>project where Bitcoin Beach started. And Bitcoin Beach is an initiative that

00:02:07.540 --> 00:02:13.280
<v Nicolas Burtey>involves Bitcoin, as the name suggests, and how to use maybe Bitcoin in

00:02:13.280 --> 00:02:17.540
<v Nicolas Burtey>a local community and to get those people out of poverty.

00:02:19.230 --> 00:02:23.370
<v Nicolas Burtey>challenge with El Salvador in general is that there is a lot of requirement to

00:02:23.370 --> 00:02:28.070
<v Nicolas Burtey>open a bank account. And so if you're not wealthy enough, basically, you know,

00:02:28.210 --> 00:02:32.410
<v Nicolas Burtey>banks are not very interested in providing banking services to you. And so here,

00:02:32.730 --> 00:02:37.430
<v Nicolas Burtey>you know, people typically don't have a bank account. And on average, 70% of the

00:02:37.430 --> 00:02:42.370
<v Nicolas Burtey>population in El Salvador don't have a bank account. And so what we are doing

00:02:42.370 --> 00:02:48.260
<v Nicolas Burtey>here is that… So first, there has been a donor that have

00:02:48.260 --> 00:02:52.380
<v Nicolas Burtey>contributed some Bitcoin like two years ago. And, you know, this is how the

00:02:52.380 --> 00:02:57.800
<v Nicolas Burtey>initiative gets really started. On our side, what we have been doing is a wallet

00:02:57.800 --> 00:03:02.160
<v Nicolas Burtey>to help, you know, the adoption of Bitcoin. And I guess this is what we'll be

00:03:02.160 --> 00:03:03.100
<v Nicolas Burtey>discussing more today.

00:03:03.460 --> 00:03:08.540
<v Aaron van Wirdum>Yeah, so you're the developer and... You run a company as well, right?

00:03:08.980 --> 00:03:09.030
<v Nicolas Burtey>Yeah.

00:03:09.120 --> 00:03:11.580
<v Aaron van Wirdum>The wallet is developed by your company, essentially.

00:03:11.860 --> 00:03:14.860
<v Nicolas Burtey>Yeah, yeah. So we have a company called GaloyMoney.

00:03:16.530 --> 00:03:22.170
<v Nicolas Burtey>We are developing open source software and the idea that we think there is a type

00:03:22.170 --> 00:03:25.790
<v Nicolas Burtey>of wallet that we can bring to the market, which is like what we call shared

00:03:25.790 --> 00:03:29.790
<v Nicolas Burtey>custody wallet and that use Lightning for payment. And our goal is to develop

00:03:29.790 --> 00:03:34.190
<v Nicolas Burtey>open source software for the community. This is what we are doing.

00:03:34.430 --> 00:03:38.130
<v Aaron van Wirdum>Yeah. So the interesting thing about it is you came to El Zonte or did you

00:03:38.130 --> 00:03:43.030
<v Aaron van Wirdum>already start working on the wallets before you came here or what was the order

00:03:43.030 --> 00:03:44.270
<v Aaron van Wirdum>of things there?

00:03:44.440 --> 00:03:48.280
<v Nicolas Burtey>Yeah, yeah. So I started working on the wallet initially, like late 2019, you

00:03:48.280 --> 00:03:54.240
<v Nicolas Burtey>know, initially as a non-custodial wallet, and after I

00:03:54.240 --> 00:03:59.780
<v Nicolas Burtey>moved to the shared custody model, I decided to dedicate my time to

00:03:59.780 --> 00:04:05.220
<v Nicolas Burtey>the Bitcoin Beach community as a proof of concept early 2020. And I came here

00:04:05.220 --> 00:04:10.140
<v Nicolas Burtey>about seven, eight months ago for the first time. So the [unclear] was already

00:04:10.140 --> 00:04:15.740
<v Nicolas Burtey>starting to be here when I came here. But yeah, I really wanted to come here to

00:04:15.740 --> 00:04:17.220
<v Nicolas Burtey>see the people using the wallet on the ground.

00:04:17.520 --> 00:04:21.260
<v Aaron van Wirdum>Yeah, exactly. That's sort of one of the interesting things about... this wallet

00:04:21.260 --> 00:04:26.080
<v Aaron van Wirdum>and your efforts I think is that first of all like you mentioned people here for

00:04:26.590 --> 00:04:31.170
<v Aaron van Wirdum>them it's not even really a luxury it's kind of a necessity or at least you know

00:04:31.170 --> 00:04:34.710
<v Aaron van Wirdum>they can't get a bank account and this is actually like a digital solution for

00:04:34.710 --> 00:04:40.490
<v Aaron van Wirdum>them first of all and second of all you you came here personally to meet these

00:04:40.490 --> 00:04:45.430
<v Aaron van Wirdum>people and speak with these people and see what they actually needed what's you

00:04:45.430 --> 00:04:49.410
<v Aaron van Wirdum>know what their experience was with using Lightning and how you could improve

00:04:49.410 --> 00:04:53.170
<v Aaron van Wirdum>that experience for the people in this actual village right

00:04:53.610 --> 00:04:58.010
<v Nicolas Burtey>Yeah, correct. I believe it's important to meet the people that use your product

00:04:58.010 --> 00:04:59.690
<v Nicolas Burtey>generally, right? Whatever you're doing.

00:05:00.270 --> 00:05:05.990
<v Aaron van Wirdum>Yeah, so I think, so one of the things you discovered

00:05:05.990 --> 00:05:11.470
<v Aaron van Wirdum>while you were here was that, correct me if I'm wrong, but is that the

00:05:11.470 --> 00:05:17.410
<v Aaron van Wirdum>existing Lightning solutions, the existing wallets, Lightning wallets, excuse

00:05:17.410 --> 00:05:21.790
<v Aaron van Wirdum>me, let's say just the non-custodial Lightning wallets, they had their

00:05:21.790 --> 00:05:24.440
<v Aaron van Wirdum>limitations. Is that right?

00:05:24.820 --> 00:05:30.300
<v Nicolas Burtey>So when I was coming here, the people were using wallet of Satoshi. So it was a

00:05:30.300 --> 00:05:36.280
<v Nicolas Burtey>custodial wallet. But I believe the way on our side, we start thinking about

00:05:36.280 --> 00:05:39.720
<v Nicolas Burtey>the wallet initially, like close to two years ago.

00:05:41.710 --> 00:05:46.250
<v Nicolas Burtey>Is that on my side, I start, you know, with a non-custodial wallet and I was

00:05:46.250 --> 00:05:50.430
<v Nicolas Burtey>trying to experiment with it. And I had the model of like open the channel of the

00:05:50.430 --> 00:05:56.290
<v Nicolas Burtey>fly where like maybe you, you know, as a user, you download this app and maybe

00:05:56.290 --> 00:06:01.610
<v Nicolas Burtey>you don't have yet any UTXO in your on-chain or off-chain balance. But like the

00:06:01.610 --> 00:06:05.350
<v Nicolas Burtey>first time you receive your off-chain payment, your Lightning payment.

00:06:07.170 --> 00:06:11.090
<v Nicolas Burtey>Basically, the wallet provider will open a channel on the fly to you. And so I

00:06:11.090 --> 00:06:13.850
<v Nicolas Burtey>experimented with it for a couple of months.

00:06:15.250 --> 00:06:20.330
<v Nicolas Burtey>Then my thinking was like, it's hard to scale because from the wallet provider

00:06:20.330 --> 00:06:24.570
<v Nicolas Burtey>standpoint, each time there is a new user, you need to provide liquidity to this user.

00:06:27.620 --> 00:06:30.860
<v Nicolas Burtey>And so you need to have this upfront liquidity to provide. And the more you grow,

00:06:30.980 --> 00:06:35.100
<v Nicolas Burtey>the faster you grow, the harder the liquidity challenge, which is difficult.

00:06:36.480 --> 00:06:42.480
<v Aaron van Wirdum>You don't need to, right? You can also open channels just where the channels are

00:06:42.480 --> 00:06:46.400
<v Aaron van Wirdum>funded only on the side of the user. So they can't receive payments in that case

00:06:46.400 --> 00:06:49.880
<v Aaron van Wirdum>unless... and until they've made payments themselves.

00:06:50.180 --> 00:06:50.400
<v Nicolas Burtey>Yeah.

00:06:50.520 --> 00:06:52.020
<v Aaron van Wirdum>Which is another limitation, of course.

00:06:52.160 --> 00:06:55.640
<v Nicolas Burtey>Yeah. So this would be maybe, you know, the way if you have a LND, you know,

00:06:55.980 --> 00:06:59.720
<v Nicolas Burtey>node. And so this is how it will typically work is that, okay, you need to open a

00:06:59.720 --> 00:07:02.980
<v Nicolas Burtey>channel and then all the liquidity is on your side. And then when you, after you

00:07:02.980 --> 00:07:08.540
<v Nicolas Burtey>spend some money on this channel, then, you know, you can receive payment

00:07:08.570 --> 00:07:13.350
<v Nicolas Burtey>afterwards. So, you know, this is a vanilla Lightning node, how this works. An

00:07:13.350 --> 00:07:18.760
<v Nicolas Burtey>improvement based on that is the idea that, hey, maybe... you will be connected

00:07:18.760 --> 00:07:24.600
<v Nicolas Burtey>to a wallet provider like a node or LSP. And

00:07:24.600 --> 00:07:28.860
<v Nicolas Burtey>basically to make the experience better, you know, like the first time you see a

00:07:28.860 --> 00:07:32.240
<v Nicolas Burtey>Lightning payment, you know, this is the time a channel is being opened and the

00:07:32.240 --> 00:07:35.300
<v Nicolas Burtey>channel is not opened by you because you don't have [unclear] yet. The channel is

00:07:35.300 --> 00:07:40.740
<v Nicolas Burtey>being opened by the other party of the channel that, you know, will send you the

00:07:40.740 --> 00:07:45.000
<v Nicolas Burtey>money that, you know, they receive from the channel and maybe they will retain

00:07:45.000 --> 00:07:50.820
<v Nicolas Burtey>some, you know, sats as a payment to open the channel. But they

00:07:50.820 --> 00:07:55.840
<v Nicolas Burtey>still need to provide a lot of liquidity, basically. And this is a model that I think...

00:07:55.840 --> 00:08:01.580
<v Aaron van Wirdum>So that are sort of the two options, I guess. Either you allow anyone

00:08:01.580 --> 00:08:06.010
<v Aaron van Wirdum>to open a channel... but it's only funded on their end, so they can't receive

00:08:06.010 --> 00:08:11.210
<v Aaron van Wirdum>payments at first. Or you can offer the liquidity, but that's hard to scale

00:08:11.210 --> 00:08:16.190
<v Aaron van Wirdum>because then you need a lot of liquidity to offer all across all of your user bases.

00:08:16.430 --> 00:08:20.530
<v Nicolas Burtey>Yeah, yeah. And there is like, to my knowledge, three wallets that are doing

00:08:20.530 --> 00:08:25.510
<v Nicolas Burtey>this, Muun Wallet and [unclear] and Phoenix. And I think they have, you know,

00:08:26.830 --> 00:08:31.670
<v Nicolas Burtey>Éclair, to my knowledge, Phoenix have a lot of success, right? I still see this

00:08:31.670 --> 00:08:36.310
<v Nicolas Burtey>as something that would be hard to scale, especially in an area like El Zonte.

00:08:37.190 --> 00:08:42.510
<v Nicolas Burtey>And the reason is, so on average, the median balance,

00:08:42.790 --> 00:08:46.230
<v Nicolas Burtey>not on average, the median balance, I believe in a wallet is about $10.

00:08:47.910 --> 00:08:49.250
<v Nicolas Burtey>So, you know, it's really like...

00:08:49.250 --> 00:08:51.110
<v Aaron van Wirdum>Do you mean here or do you mean in general?

00:08:51.630 --> 00:08:56.430
<v Nicolas Burtey>In here, like, you know, the people that have been using the Bitcoin Beach

00:08:56.430 --> 00:09:02.230
<v Nicolas Burtey>wallet. And so $10 is like, you know, it depends on what are the

00:09:02.230 --> 00:09:07.490
<v Nicolas Burtey>fees on chain, but, you know, it's often, you know, above the

00:09:07.490 --> 00:09:12.870
<v Nicolas Burtey>price you will pay to open a chain, right? And so this is the limitation, basically.

00:09:14.530 --> 00:09:18.230
<v Aaron van Wirdum>Right. What you're saying is that opening,

00:09:19.720 --> 00:09:23.440
<v Aaron van Wirdum>wait, I think you're saying two different things. First of all, there's a

00:09:23.440 --> 00:09:29.220
<v Aaron van Wirdum>challenge on how to start. start an account, start a wallet. That's one challenge

00:09:29.220 --> 00:09:33.840
<v Aaron van Wirdum>because you have two choices that both aren't ideal. And then the second

00:09:33.840 --> 00:09:38.420
<v Aaron van Wirdum>challenge is that if people really don't have a lot of money, then even opening

00:09:38.420 --> 00:09:43.680
<v Aaron van Wirdum>one Lightning channel is a lot of money. If you only have $10 and fees are $2,

00:09:44.260 --> 00:09:48.480
<v Aaron van Wirdum>then opening a Lightning channel is still a lot of money, essentially. So there's

00:09:48.480 --> 00:09:49.640
<v Aaron van Wirdum>two problems there, right?

00:09:49.840 --> 00:09:52.240
<v Nicolas Burtey>Yeah, that's correct. And those problem compound, right?

00:09:54.430 --> 00:09:55.410
<v Nicolas Burtey>But that's great.

00:09:57.540 --> 00:10:02.860
<v Aaron van Wirdum>And then the other option, if we go to the other end of the spectrum, so to say,

00:10:03.000 --> 00:10:06.830
<v Aaron van Wirdum>is to have custodial wallets. And these also exist.

00:10:07.530 --> 00:10:11.090
<v Nicolas Burtey>Yeah, and so probably the first wallet that is known in the space is the wallet

00:10:11.090 --> 00:10:15.930
<v Nicolas Burtey>of Satoshi. And this is the wallet that was being used as the main wallet until

00:10:15.930 --> 00:10:21.850
<v Nicolas Burtey>we started working on the Bitcoin Beach wallet here. And Custodial Wallet,

00:10:21.870 --> 00:10:25.990
<v Nicolas Burtey>you know, have the benefits of, like, it's probably the best UX today and

00:10:25.990 --> 00:10:31.610
<v Nicolas Burtey>probably also the ones that have, I wouldn't say the lowest fees, but, like,

00:10:31.990 --> 00:10:37.610
<v Nicolas Burtey>a lot of the on-chain management, you know, like, you can share the capital that

00:10:37.610 --> 00:10:43.370
<v Nicolas Burtey>is required to open a channel and close a channel, you know, if you have like a

00:10:43.370 --> 00:10:47.370
<v Nicolas Burtey>thousand users and you have one channel, then basically the cost of creating a

00:10:47.370 --> 00:10:51.010
<v Nicolas Burtey>channel and closing a channel is shared across, you know, a thousand users. So

00:10:51.010 --> 00:10:55.030
<v Nicolas Burtey>obviously the cost per user is very, is greatly reduced.

00:10:55.350 --> 00:11:01.040
<v Aaron van Wirdum>Yeah, just for listeners that don't, that might not know this. Non-custodial,

00:11:01.140 --> 00:11:06.820
<v Aaron van Wirdum>what we were just discussing a minute ago, simply means that you can always

00:11:06.820 --> 00:11:11.260
<v Aaron van Wirdum>claim the funds in your Lightning wallet on-chain if you want. At any point, you

00:11:11.260 --> 00:11:15.620
<v Aaron van Wirdum>can just say, okay, I want my funds now, and then you're getting it to your own

00:11:15.620 --> 00:11:20.880
<v Aaron van Wirdum>on-chain address. Custodial, this is powered by

00:11:20.880 --> 00:11:25.700
<v Aaron van Wirdum>the cryptography and the technology of Lightning itself. Custodial means you're

00:11:25.700 --> 00:11:31.530
<v Aaron van Wirdum>essentially giving up that control to the wallets provider or whoever,

00:11:31.670 --> 00:11:35.930
<v Aaron van Wirdum>because, you know, if you want to withdraw your funds, they're still going to

00:11:35.930 --> 00:11:39.230
<v Aaron van Wirdum>have to actually give you the funds. They're going to have to cooperate with

00:11:39.230 --> 00:11:44.110
<v Aaron van Wirdum>that. They are actually controlling the keys. So the problem in that sense is,

00:11:44.250 --> 00:11:47.910
<v Aaron van Wirdum>you know, it's not, it's, it sort of goes against the Bitcoin mantra of not your

00:11:47.910 --> 00:11:53.310
<v Aaron van Wirdum>keys, not your coins, but it offers these benefits that, um… So

00:11:53.310 --> 00:11:58.910
<v Aaron van Wirdum>the liquidity problem we just mentioned is immediately solved. Essentially, you

00:11:58.910 --> 00:12:04.430
<v Aaron van Wirdum>kind of just create an account at the wallet provider and the fee problem is

00:12:04.430 --> 00:12:09.150
<v Aaron van Wirdum>solved because you don't need any on-chain fee to get started. Is that right?

00:12:09.530 --> 00:12:10.110
<v Nicolas Burtey>That is correct.

00:12:10.370 --> 00:12:14.830
<v Aaron van Wirdum>Right. And then, like I mentioned, the downside is you're actually trusting the

00:12:14.830 --> 00:12:15.630
<v Aaron van Wirdum>wallet provider a bit.

00:12:16.070 --> 00:12:16.550
<v Nicolas Burtey>Yeah, correct.

00:12:16.810 --> 00:12:22.700
<v Aaron van Wirdum>So you have with... the Beach wallet you're going for some kind

00:12:22.700 --> 00:12:28.260
<v Aaron van Wirdum>of what you're calling it shared custody right so it's still custodial but you're

00:12:28.260 --> 00:12:32.840
<v Aaron van Wirdum>trying to limit the risk a little bit is that right so maybe you can explain what

00:12:32.840 --> 00:12:33.300
<v Aaron van Wirdum>that means?

00:12:33.300 --> 00:12:37.660
<v Nicolas Burtey>Yeah so from the user perspective the wallet is custodial so they will open a

00:12:37.660 --> 00:12:41.460
<v Nicolas Burtey>wallet the same way they will do with a custodial wallet and they will have an

00:12:41.460 --> 00:12:47.000
<v Nicolas Burtey>account. The reason we talk about shared custody is because so the wallet there

00:12:47.000 --> 00:12:48.600
<v Nicolas Burtey>is two parts to the wallet there is a

00:12:50.030 --> 00:12:55.940
<v Nicolas Burtey>There is a cold storage and hot storage. And so the hot storage is basically a

00:12:55.940 --> 00:12:59.970
<v Nicolas Burtey>Lightning node, an LND node. When there is a single key for it, this is how

00:12:59.970 --> 00:13:05.430
<v Nicolas Burtey>Lightning works today. But there is only a tiny portion of the fund in this hot

00:13:05.430 --> 00:13:10.810
<v Nicolas Burtey>wallet. The major party of the fund are in a cold storage, which

00:13:10.810 --> 00:13:16.260
<v Nicolas Burtey>is good for security reasons. But there is something quite unique with Bitcoin

00:13:16.260 --> 00:13:19.400
<v Nicolas Burtey>that, you know, maybe doesn't exist with like the fiat system, for instance,

00:13:19.760 --> 00:13:23.640
<v Nicolas Burtey>where you could have a multi-sig and you could have different members of the

00:13:23.640 --> 00:13:28.720
<v Nicolas Burtey>community that have, you know, the signature. So here's the idea that you,

00:13:29.020 --> 00:13:34.380
<v Nicolas Burtey>instead of like trusting maybe a company when you use like a custodial product,

00:13:34.780 --> 00:13:40.180
<v Nicolas Burtey>here you could trust the member of your community, you know, to maintain the key

00:13:40.180 --> 00:13:46.160
<v Nicolas Burtey>and to make sure they keep the, you know, key in a good shape and say don't lose

00:13:46.160 --> 00:13:51.260
<v Nicolas Burtey>it and um and so here you you're basically not

00:13:51.840 --> 00:13:55.500
<v Nicolas Burtey>trusting a company you're trusting you know people in your community basically

00:13:55.500 --> 00:14:00.440
<v Aaron van Wirdum>Yeah although this is not I understand this is not something you can actually

00:14:00.440 --> 00:14:04.960
<v Aaron van Wirdum>verify in the wallet or there's no way to make sure that this is actually

00:14:04.960 --> 00:14:09.740
<v Aaron van Wirdum>happening so in that sense you're still you are still trusting the words of you

00:14:09.740 --> 00:14:13.020
<v Aaron van Wirdum>that It is being held by multiple people. Is that right?

00:14:13.460 --> 00:14:17.900
<v Nicolas Burtey>Correct. And we're actually thinking about this, how to... There is a question,

00:14:18.140 --> 00:14:21.200
<v Nicolas Burtey>should the people that hold the key be known or not?

00:14:22.000 --> 00:14:22.280
<v Aaron van Wirdum>Right.

00:14:22.520 --> 00:14:27.970
<v Nicolas Burtey>And it's... interesting to think about it. Like, if you think about, okay, you

00:14:27.970 --> 00:14:31.650
<v Nicolas Burtey>want to bring the trust, you know, to the system, then you will publish, you

00:14:31.650 --> 00:14:35.930
<v Nicolas Burtey>know, who owns the key, basically. And then you can, and maybe, you know, those

00:14:35.930 --> 00:14:40.430
<v Nicolas Burtey>members can publish, you know, the public key, you know, and then you can verify

00:14:40.430 --> 00:14:42.350
<v Nicolas Burtey>the fund, you know, available.

00:14:44.050 --> 00:14:47.670
<v Nicolas Burtey>But if you publish who on the key, it's also like, it creates a new security

00:14:47.670 --> 00:14:51.070
<v Nicolas Burtey>risk. We're like, okay, you know, there are different people that have the key of

00:14:51.070 --> 00:14:53.070
<v Nicolas Burtey>this wallet, you know, this and this and this.

00:14:53.370 --> 00:14:58.350
<v Aaron van Wirdum>Yeah. Even if it's a three out of five or a six out of ten or whatever it is, if

00:14:58.350 --> 00:15:02.940
<v Aaron van Wirdum>you publish who they are, then... you know, now you know exactly which three or

00:15:02.940 --> 00:15:08.940
<v Aaron van Wirdum>which people you need to extort. So there's benefit in not sharing that

00:15:08.940 --> 00:15:14.640
<v Aaron van Wirdum>information, but that does increase the trust in, that's the trade-off, now

00:15:14.640 --> 00:15:18.160
<v Aaron van Wirdum>you're trusting that there are actually three out of five people that are holding

00:15:18.160 --> 00:15:22.180
<v Aaron van Wirdum>the keys and you don't know who they are. So just a promise in that sense.

00:15:22.640 --> 00:15:26.720
<v Nicolas Burtey>Exactly. And so far, this is, we go for the, you know, it's not published on the

00:15:26.720 --> 00:15:31.280
<v Nicolas Burtey>key. But yeah, it's something we are thinking about.

00:15:31.780 --> 00:15:37.640
<v Aaron van Wirdum>Yeah. Yeah, I will say before we move on. So I've used the

00:15:37.640 --> 00:15:42.740
<v Aaron van Wirdum>Bitcoin Beach wallet while I'm here. I've also used other wallets. And I will say

00:15:43.250 --> 00:15:49.030
<v Aaron van Wirdum>I personally like it a lot. There is the trust trade-off. And,

00:15:49.030 --> 00:15:54.970
<v Aaron van Wirdum>you know, it does go against the mantra of Bitcoin. But I've used other

00:15:54.970 --> 00:15:57.910
<v Aaron van Wirdum>Lightning wallets and I like other Lightning wallets as well.

00:15:59.200 --> 00:16:04.900
<v Aaron van Wirdum>But, you know, I make a payment and I'm standing there at the merchant waiting to

00:16:04.900 --> 00:16:10.380
<v Aaron van Wirdum>get my bottle of water or whatever it is. And it can take half a minute or longer

00:16:10.380 --> 00:16:15.520
<v Aaron van Wirdum>for a payment route to be found. While with Bitcoin Beach Wallet, if they use the

00:16:15.520 --> 00:16:19.180
<v Aaron van Wirdum>same wallet, oh, we'll get into it in a bit, actually. I'm sort of jumping the

00:16:19.180 --> 00:16:24.560
<v Aaron van Wirdum>gun here. But it does work so much faster. You really are done within three

00:16:24.560 --> 00:16:25.600
<v Aaron van Wirdum>seconds, which is nice.

00:16:27.460 --> 00:16:32.120
<v Aaron van Wirdum>And I guess the other thing that it makes sense in a community like this, I

00:16:32.120 --> 00:16:36.360
<v Aaron van Wirdum>think, to use a setup like we were just describing, especially because it's

00:16:36.360 --> 00:16:42.340
<v Aaron van Wirdum>small. If there's 10 million users, maybe, and there's a lot of money involved,

00:16:42.380 --> 00:16:47.960
<v Aaron van Wirdum>and out of these 10 million users, almost no one knows the actual owner of the

00:16:47.960 --> 00:16:53.800
<v Aaron van Wirdum>wallet, at that point, it's starting to sound less smart to me. But

00:16:53.800 --> 00:16:55.520
<v Aaron van Wirdum>here in a village of 3,000 people,

00:16:56.910 --> 00:17:02.270
<v Aaron van Wirdum>And even though you don't know exactly who owns the public keys, there's not that

00:17:02.270 --> 00:17:08.020
<v Aaron van Wirdum>much money involved all in all. And people know to find you, probably,

00:17:08.380 --> 00:17:13.480
<v Aaron van Wirdum>and we're recording this in the Hope House. You know, something goes, which is

00:17:13.480 --> 00:17:18.820
<v Aaron van Wirdum>like a community house for the Bitcoin community here. You know, people can at

00:17:18.820 --> 00:17:23.180
<v Aaron van Wirdum>least come here and ask what's going on. It's a more, you know, on a small scale,

00:17:23.500 --> 00:17:28.280
<v Aaron van Wirdum>it probably makes, it kind of makes sense to do this way, I think. Or at least

00:17:28.280 --> 00:17:32.320
<v Aaron van Wirdum>the trade-off is acceptable in my personal view.

00:17:33.900 --> 00:17:38.840
<v Aaron van Wirdum>One other solution to mitigate this problem of...

00:17:39.930 --> 00:17:45.930
<v Aaron van Wirdum>the custodial solution is to have proof of reserves. Is this something the

00:17:45.930 --> 00:17:46.770
<v Aaron van Wirdum>Bitcoin [unclear] has?

00:17:47.610 --> 00:17:52.790
<v Nicolas Burtey>So we don't have proof of reserve today, but it's something that is high on our

00:17:52.790 --> 00:17:53.470
<v Nicolas Burtey>priority list.

00:17:53.710 --> 00:17:53.910
<v Aaron van Wirdum>Right.

00:17:55.150 --> 00:18:00.950
<v Nicolas Burtey>And I think it's very complementary to the fact that multiple people in the

00:18:00.950 --> 00:18:06.240
<v Nicolas Burtey>community have keys for the multi-sig wallet, for the cold storage. Proof of

00:18:06.240 --> 00:18:10.740
<v Nicolas Burtey>reserve, you know. is aiming to solve a different issue.

00:18:12.040 --> 00:18:14.900
<v Nicolas Burtey>If you think about Mt. Gox for instance,

00:18:16.320 --> 00:18:22.190
<v Nicolas Burtey>what we, I believe, now know is that the, over time, you know, fund

00:18:22.190 --> 00:18:25.870
<v Nicolas Burtey>has been drained from the wallet, you know, for like a year or so. It has been a

00:18:25.870 --> 00:18:31.850
<v Nicolas Burtey>slow process of like depleting the current wallet of, you know, these exchanges.

00:18:32.700 --> 00:18:36.140
<v Nicolas Burtey>And if they had something like a proof of reserve, you know, the day, like,

00:18:36.320 --> 00:18:39.920
<v Nicolas Burtey>suddenly there was a fund missing, the [unclear] would be [unclear], right? And

00:18:39.920 --> 00:18:44.400
<v Nicolas Burtey>there would not be the wallet or the exchange that would continue to operate if

00:18:44.400 --> 00:18:48.160
<v Nicolas Burtey>proof of reserve was here. So it doesn't mean that if you have proof of reserve,

00:18:48.300 --> 00:18:51.240
<v Nicolas Burtey>suddenly, you know, one day from the next, you know, the [unclear] will disappear

00:18:51.240 --> 00:18:55.700
<v Nicolas Burtey>and people who have the key, you know, will take away the money.

00:18:57.080 --> 00:19:01.520
<v Nicolas Burtey>But it means that, you know, if something bad were happening, you would know it

00:19:01.520 --> 00:19:05.560
<v Nicolas Burtey>right away and you will not end up in a situation where maybe, hey, there was

00:19:05.560 --> 00:19:09.960
<v Nicolas Burtey>like some money left, but, you know, maybe there is enough money to keep it

00:19:09.960 --> 00:19:15.560
<v Nicolas Burtey>going, which is a bad, you know, a bad thing eventually, because then maybe the

00:19:15.560 --> 00:19:18.500
<v Nicolas Burtey>people at the end, which is the case for the Mt. Gox it has been ongoing for

00:19:18.500 --> 00:19:19.140
<v Nicolas Burtey>months.

00:19:19.960 --> 00:19:25.760
<v Aaron van Wirdum>Yeah, essentially it's true that... Whoever is holding the keys for the Bitcoin

00:19:25.760 --> 00:19:29.780
<v Aaron van Wirdum>Beach Wallet right now, they could get into a collective boating accident still

00:19:29.780 --> 00:19:33.440
<v Aaron van Wirdum>and the money would be gone. That's still true even with proof of reserves.

00:19:33.780 --> 00:19:38.400
<v Aaron van Wirdum>What's not true with proof of reserves is that they could run a fractional

00:19:38.400 --> 00:19:43.940
<v Aaron van Wirdum>reserve banking type of system for months or years. That would be impossible,

00:19:43.940 --> 00:19:49.220
<v Aaron van Wirdum>ideally at least. So maybe... So how you say it's high on your priority list.

00:19:49.700 --> 00:19:54.360
<v Aaron van Wirdum>Can you explain as simple as possible how that would work or what it would look like?

00:19:55.290 --> 00:20:00.170
<v Nicolas Burtey>Yeah. So the idea of proof of reserve is when you have a wallet, you have assets

00:20:00.170 --> 00:20:06.080
<v Nicolas Burtey>and liability. So your assets are your UTXO and maybe the fund you have

00:20:06.080 --> 00:20:12.060
<v Nicolas Burtey>in your Lightning wallet. So you have a channel and you have money on your

00:20:12.060 --> 00:20:16.380
<v Nicolas Burtey>side of the channel. So all this constitutes your assets. And you have the

00:20:16.380 --> 00:20:22.330
<v Nicolas Burtey>liability, which is how much money you owe to each user of your wallet. And

00:20:22.330 --> 00:20:25.930
<v Nicolas Burtey>basically, proof of reserve is you try to prove that you have enough money in

00:20:25.930 --> 00:20:27.610
<v Nicolas Burtey>your assets to cover your liability.

00:20:29.130 --> 00:20:34.890
<v Nicolas Burtey>And so on the asset side, the way you can prove you have some assets is you have

00:20:34.890 --> 00:20:39.590
<v Nicolas Burtey>one UTXO or, you know, a couple of UTXO. And for each UTXO, you should have

00:20:39.590 --> 00:20:44.300
<v Nicolas Burtey>private key associated with this UTXO. And you can send a message, hey, you know,

00:20:44.820 --> 00:20:49.880
<v Nicolas Burtey>out of today, you know, this UTXO belongs to this wallet. And like this, you can

00:20:49.880 --> 00:20:55.360
<v Nicolas Burtey>sum, you can do it for each UTXO. You can sum how much money you have for your

00:20:55.360 --> 00:20:55.760
<v Nicolas Burtey>assets.

00:20:57.010 --> 00:20:58.910
<v Nicolas Burtey>And the way you prove on the label...

00:20:58.910 --> 00:21:04.070
<v Aaron van Wirdum>So in that way, it would be publicly known which... UTXOs, which Bitcoins

00:21:04.070 --> 00:21:06.710
<v Aaron van Wirdum>belong to the Bitcoin Beach Wallet in this case.

00:21:07.050 --> 00:21:07.510
<v Nicolas Burtey>Yes, correct.

00:21:08.790 --> 00:21:11.270
<v Aaron van Wirdum>On the Bitcoin blockchain itself, yeah.

00:21:12.030 --> 00:21:16.170
<v Nicolas Burtey>And I believe there will be improvements to that with some zero-knowledge proof

00:21:16.170 --> 00:21:20.850
<v Nicolas Burtey>scheme, which I'm not deep into it, but I think there is a solution for that, to

00:21:20.850 --> 00:21:26.090
<v Nicolas Burtey>try to prove that you have enough reserve without showing how much...

00:21:26.700 --> 00:21:32.060
<v Nicolas Burtey>you know, money you owe. Because the reason I believe one, why a lot of, you

00:21:32.060 --> 00:21:35.780
<v Nicolas Burtey>know, no one, so far, really no one have really adopted proof of reserve is

00:21:35.780 --> 00:21:40.400
<v Nicolas Burtey>because, you know, no exchange wants really to publicly state, you know, which

00:21:40.400 --> 00:21:41.960
<v Nicolas Burtey>[unclear] they own basically.

00:21:43.780 --> 00:21:49.080
<v Aaron van Wirdum>Coinfloor, I think, does it. They have the proof reserve check regularly.

00:21:49.420 --> 00:21:49.620
<v Nicolas Burtey>Okay.

00:21:51.270 --> 00:21:52.930
<v Nicolas Burtey>Okay, so...

00:21:52.930 --> 00:21:58.890
<v Aaron van Wirdum>But this is zero-knowledge proof. That's maybe even further into the

00:21:58.890 --> 00:22:04.250
<v Aaron van Wirdum>future. Let's stick with just the basics of proof reserves.

00:22:04.570 --> 00:22:10.350
<v Nicolas Burtey>And so... You know, you prove how much assets you have, you know, it can become,

00:22:10.630 --> 00:22:11.770
<v Nicolas Burtey>in that case, public information.

00:22:13.190 --> 00:22:18.510
<v Nicolas Burtey>On the liability side, the way it works is, okay, let's say you have five users

00:22:18.510 --> 00:22:24.380
<v Nicolas Burtey>in your wallet and each of them have 0.1 BTC. And so you want

00:22:24.380 --> 00:22:30.150
<v Nicolas Burtey>to construct a Merkle tree where at the top you will

00:22:30.150 --> 00:22:35.430
<v Nicolas Burtey>have 0.5 BTC. And you want to show that on the leaves of the tree,

00:22:35.790 --> 00:22:41.630
<v Nicolas Burtey>each user, their balance has been accounted into

00:22:41.630 --> 00:22:47.650
<v Nicolas Burtey>the total that is shown at the root of the Merkle tree.

00:22:48.950 --> 00:22:53.270
<v Nicolas Burtey>And so, yeah, you can construct this, you know, Merkle tree and basically every

00:22:53.270 --> 00:22:57.070
<v Nicolas Burtey>user will be able, maybe using the mobile app, will be able to log in and say,

00:22:57.190 --> 00:23:01.410
<v Nicolas Burtey>hey, is my balance, you know, in this total? And so there is a cryptographic

00:23:01.410 --> 00:23:05.770
<v Nicolas Burtey>proof to show that, yes, you know, this balance, which is 0.5, you know, my

00:23:05.770 --> 00:23:10.630
<v Nicolas Burtey>balance, which is 0.1, has been included in this total. And the general idea here

00:23:10.630 --> 00:23:15.010
<v Nicolas Burtey>is that if enough people check it, you know, statistically, you will have a very

00:23:15.010 --> 00:23:17.010
<v Nicolas Burtey>high likelihood of yes, you know, like...

00:23:18.630 --> 00:23:24.310
<v Nicolas Burtey>There has been no check that has not been verified. Therefore, it's very

00:23:24.310 --> 00:23:27.550
<v Nicolas Burtey>likely it's a fully reserved operation.

00:23:28.150 --> 00:23:31.710
<v Aaron van Wirdum>Yeah, these are these kinds of things that are much easier to explain with a

00:23:31.710 --> 00:23:35.670
<v Aaron van Wirdum>little bit of a drawing, which you just made for me half an hour ago. But yeah,

00:23:35.750 --> 00:23:41.560
<v Aaron van Wirdum>the basic idea is that you're sharing the Merkle Path. Hopefully, listeners will

00:23:41.560 --> 00:23:44.340
<v Aaron van Wirdum>know what the Merkle tree is. If not, this is going to be over their head

00:23:44.340 --> 00:23:49.620
<v Aaron van Wirdum>anyways. So yeah, you give every user the Merkle path. And the Merkle path

00:23:49.620 --> 00:23:55.000
<v Aaron van Wirdum>doesn't only include the hashes, which any Merkle path does, but it also includes

00:23:55.000 --> 00:24:00.830
<v Aaron van Wirdum>the amounts. And therefore, you can sort of add up that your amount

00:24:00.830 --> 00:24:02.130
<v Aaron van Wirdum>was included in total.

00:24:04.420 --> 00:24:09.640
<v Aaron van Wirdum>If enough users do that, then like you said, statistically, if you're trying to

00:24:09.640 --> 00:24:14.660
<v Aaron van Wirdum>cheat, someone will figure it out. Someone will find out that their total, that

00:24:14.660 --> 00:24:20.600
<v Aaron van Wirdum>their amount wasn't in the total. So it's not a hard proof for any individual

00:24:20.600 --> 00:24:25.340
<v Aaron van Wirdum>user. But collectively, if enough people do it, I don't know, maybe 10% is

00:24:25.340 --> 00:24:29.980
<v Aaron van Wirdum>enough. Or I have no idea. There's probably statistics wizards out there that

00:24:29.980 --> 00:24:33.260
<v Aaron van Wirdum>would have a better grip on that. But if enough people do it, then you get them.

00:24:33.870 --> 00:24:39.770
<v Aaron van Wirdum>they know pretty sure that the proof of reserves proves that

00:24:39.770 --> 00:24:42.290
<v Aaron van Wirdum>the reserves are there. Right?

00:24:42.610 --> 00:24:42.710
<v Nicolas Burtey>Yeah.

00:24:42.970 --> 00:24:45.730
<v Aaron van Wirdum>All right. So, but this is not in the Bitcoin Beach wallet yet.

00:24:46.030 --> 00:24:46.170
<v Nicolas Burtey>No.

00:24:46.270 --> 00:24:49.630
<v Aaron van Wirdum>This is part of the long priority list.

00:24:49.910 --> 00:24:50.070
<v Nicolas Burtey>Yeah.

00:24:51.130 --> 00:24:53.010
<v Aaron van Wirdum>As every wallet has, so I know.

00:24:53.290 --> 00:24:53.390
<v Nicolas Burtey>Yeah.

00:24:56.680 --> 00:25:02.540
<v Aaron van Wirdum>Okay, yeah, so let's get to more the user experience side of things.

00:25:03.440 --> 00:25:08.180
<v Aaron van Wirdum>I already mentioned that I actually really like using the Bitcoin Beach Wallet

00:25:08.180 --> 00:25:13.900
<v Aaron van Wirdum>here because it's just fast. And this is part of the custodial thing, I think,

00:25:14.200 --> 00:25:15.200
<v Aaron van Wirdum>where...

00:25:17.100 --> 00:25:21.260
<v Aaron van Wirdum>all of these merchants in this town and there are a lot of merchants in this town

00:25:21.260 --> 00:25:26.440
<v Aaron van Wirdum>you know a lot of pupusa shops which is like the local dish or uh just these tiny

00:25:26.440 --> 00:25:32.400
<v Aaron van Wirdum>corner shops or restaurants or lots of people are actually accepting Bitcoin

00:25:32.400 --> 00:25:38.280
<v Aaron van Wirdum>and they have this QR code out and this QR code essentially just um if you scan

00:25:38.280 --> 00:25:43.480
<v Aaron van Wirdum>it a username comes up, right? Well, it says the username and letters as well.

00:25:43.620 --> 00:25:47.100
<v Aaron van Wirdum>And if you scan the QR code, what does the QR code say? Is it the username

00:25:47.100 --> 00:25:48.260
<v Aaron van Wirdum>specifically?

00:25:48.660 --> 00:25:51.860
<v Nicolas Burtey>So the QR code is a link to a webpage.

00:25:52.060 --> 00:25:57.440
<v Aaron van Wirdum>Okay, yes, you're right. So let's, one thing at a time. So everyone here or a lot

00:25:57.440 --> 00:26:02.280
<v Aaron van Wirdum>of people have a username. So if you have someone's username, you can very easily

00:26:02.280 --> 00:26:08.170
<v Aaron van Wirdum>pay that person because it is custodial. It's just, you know, The wallet

00:26:08.170 --> 00:26:13.950
<v Aaron van Wirdum>has a ledger and it just changes the ledger from me if I'm buying a pupusa

00:26:13.950 --> 00:26:19.030
<v Aaron van Wirdum>to the pupusa shop lady. And that's why, you know, it happens within three

00:26:19.030 --> 00:26:24.550
<v Aaron van Wirdum>seconds, which is kind of nice when you, you know, when you're on the go. And

00:26:24.550 --> 00:26:27.530
<v Aaron van Wirdum>even if you're not on the go, it's just a little bit awkward to stand in front of

00:26:27.530 --> 00:26:31.470
<v Aaron van Wirdum>a shop for a minute or a half minute finding a path.

00:26:31.590 --> 00:26:35.970
<v Nicolas Burtey>I would also say that if you use, you know, Wallet of Satoshi or Strike Wallet,

00:26:37.130 --> 00:26:40.750
<v Nicolas Burtey>We're connecting with those wallets, right? We're connecting with other wallets

00:26:40.750 --> 00:26:46.750
<v Nicolas Burtey>that are often used here. In a way that the transaction will be the fastest if it

00:26:46.750 --> 00:26:51.060
<v Nicolas Burtey>is from Bitcoin Beach Wallet to Bitcoin Beach Wallet. But Bitcoin Beach Wallet to

00:26:51.060 --> 00:26:55.160
<v Nicolas Burtey>Wallet of Satoshi should also be very fast because basically the server of, you

00:26:55.160 --> 00:26:58.280
<v Nicolas Burtey>know, the Bitcoin Beach Wallet and the server of Wallet of Satoshi have, you

00:26:58.280 --> 00:27:01.580
<v Nicolas Burtey>know, the Lightning have a direct channel. And so it will also be fast.

00:27:01.720 --> 00:27:05.360
<v Aaron van Wirdum>Right. Yeah. So in that case, pathfinding isn't a big deal. It's just right there.

00:27:05.560 --> 00:27:09.500
<v Nicolas Burtey>There is no pathfinding, basically. It's like, you know, immediate payment. And

00:27:09.500 --> 00:27:12.860
<v Nicolas Burtey>so maybe if you add some experience where the, you know, payment was much lower,

00:27:13.100 --> 00:27:17.150
<v Nicolas Burtey>it's probably that. Yeah, the node was not directly connected to us, and this is

00:27:17.150 --> 00:27:19.050
<v Nicolas Burtey>where things can take a bit more time.

00:27:19.430 --> 00:27:24.250
<v Aaron van Wirdum>Yeah, so let's get back into the trade-off side of things. The trade-off here,

00:27:24.530 --> 00:27:29.370
<v Aaron van Wirdum>besides the trade-off we mentioned, the fact that it's custodial and you're

00:27:29.370 --> 00:27:33.130
<v Aaron van Wirdum>trusting whoever's holding the keys, the other trade-off here would be privacy.

00:27:34.520 --> 00:27:39.900
<v Aaron van Wirdum>Whoever's running... the wallet or I guess, yeah, I guess that would be whoever's

00:27:39.900 --> 00:27:43.600
<v Aaron van Wirdum>running the wallet server, right? They could tell that I just ate a pupusa.

00:27:44.120 --> 00:27:44.280
<v Nicolas Burtey>Yeah.

00:27:44.480 --> 00:27:49.060
<v Aaron van Wirdum>Right. So that's another trade-off that you're making for convenience sake in

00:27:49.060 --> 00:27:54.870
<v Aaron van Wirdum>this case. And I'm sure you've had a lot of complaints about this

00:27:54.870 --> 00:27:57.230
<v Aaron van Wirdum>in El Zonte. There's a lot of privacy activists.

00:27:59.750 --> 00:28:04.330
<v Nicolas Burtey>Yeah. So, yeah. I'll share a funny story about this.

00:28:05.920 --> 00:28:10.900
<v Nicolas Burtey>So when you make a payment, you can add a memo to the payment, like, hey, I'm

00:28:10.900 --> 00:28:14.160
<v Nicolas Burtey>pupusa, and I like the pupusa, thank you.

00:28:15.950 --> 00:28:17.050
<v Nicolas Burtey>And the

00:28:18.300 --> 00:28:24.160
<v Nicolas Burtey>way we've been thinking about it when we start the memo feature is

00:28:24.160 --> 00:28:30.070
<v Nicolas Burtey>that, okay, memo should be private. So if I say, hey, I

00:28:30.070 --> 00:28:35.010
<v Nicolas Burtey>have pupusa for the memo, it's just to remind me that I am this…

00:28:35.840 --> 00:28:38.220
<v Nicolas Burtey>$2 or $5 payment is for pupusa, right?

00:28:39.640 --> 00:28:44.020
<v Nicolas Burtey>But basically, we had some actually feedback that, hey, you know, the memo is not

00:28:44.020 --> 00:28:47.880
<v Nicolas Burtey>shared. Like, we want the memo to be shared because I want to send a payment to

00:28:47.880 --> 00:28:53.760
<v Nicolas Burtey>someone and tell him, hey, I sent you $10 for, you know, for the pizza that

00:28:53.760 --> 00:28:58.560
<v Nicolas Burtey>we ate yesterday. And today, they don't like the fact that it's not been shared,

00:28:58.860 --> 00:28:59.860
<v Nicolas Burtey>which is interesting, right?

00:29:01.120 --> 00:29:06.540
<v Nicolas Burtey>And probably the reason why they don't... you know, think about privacy too much,

00:29:06.540 --> 00:29:12.530
<v Nicolas Burtey>it's important to imagine that most of the users today,

00:29:12.730 --> 00:29:17.660
<v Nicolas Burtey>like this is their first, you know, bank account, if I can call it that way. And,

00:29:17.660 --> 00:29:20.820
<v Nicolas Burtey>you know, like they're discovering, you know, internet money for them, it's

00:29:20.820 --> 00:29:25.620
<v Nicolas Burtey>magic, right? Like the notion of privacy is not the top of their mind, actually.

00:29:26.330 --> 00:29:32.050
<v Nicolas Burtey>The utility function is much higher on their mind. And therefore, privacy,

00:29:32.190 --> 00:29:36.110
<v Nicolas Burtey>they don't really care so far. They actually prefer to share information when

00:29:36.110 --> 00:29:37.970
<v Nicolas Burtey>they send a payment, for instance.

00:29:38.370 --> 00:29:41.850
<v Aaron van Wirdum>Right, yeah. Well, I mean, I do think privacy is very important. Don't get me

00:29:41.850 --> 00:29:46.310
<v Aaron van Wirdum>wrong. It's just also clear to me that people here are probably fine with

00:29:46.310 --> 00:29:52.170
<v Aaron van Wirdum>whatever can help them at this point. And this seems to help them. But do you

00:29:52.170 --> 00:29:55.840
<v Aaron van Wirdum>have any idea of how that... Do you have any plans to improve that somewhere on

00:29:55.840 --> 00:30:00.160
<v Aaron van Wirdum>the priority list? Are there ways to improve that? Maybe not. The account system

00:30:00.160 --> 00:30:03.840
<v Aaron van Wirdum>is just not private, and that's just a trade-off you're making here.

00:30:05.920 --> 00:30:10.880
<v Nicolas Burtey>Yeah, I think it's, if you're using a [unclear], like if you want privacy, you

00:30:10.880 --> 00:30:13.720
<v Nicolas Burtey>should not use a [unclear]. I think it's a way to think about it.

00:30:14.120 --> 00:30:19.540
<v Aaron van Wirdum>Yeah, I mean, there are like the Chaumian… um, Chaumian cash type of solutions

00:30:19.540 --> 00:30:24.020
<v Aaron van Wirdum>that might be applicable here in some way or another. They probably are, but we

00:30:24.020 --> 00:30:27.420
<v Aaron van Wirdum>should talk about this maybe after the episode.

00:30:28.800 --> 00:30:30.780
<v Aaron van Wirdum>Yeah, no, that's probably an option, actually.

00:30:33.070 --> 00:30:33.510
<v Aaron van Wirdum>Yeah.

00:30:35.500 --> 00:30:39.380
<v Aaron van Wirdum>What else? Oh yeah, so the

00:30:41.050 --> 00:30:46.210
<v Aaron van Wirdum>QR codes we just mentioned. So you know someone's username, it's very easy to pay

00:30:46.210 --> 00:30:50.330
<v Aaron van Wirdum>that person. You know, it happens instantly, which is nice

00:30:50.330 --> 00:30:56.190
<v Aaron van Wirdum>if you also have the Bitcoin Beach wallet. If you don't have the Bitcoin Beach

00:30:56.190 --> 00:31:02.110
<v Aaron van Wirdum>wallet, there's this QR code. This QR code is not a Lightning...

00:31:02.640 --> 00:31:06.900
<v Aaron van Wirdum>address or anything. So yeah, you already sort of started mentioning that. So

00:31:06.900 --> 00:31:07.320
<v Aaron van Wirdum>what is it?

00:31:07.500 --> 00:31:12.680
<v Nicolas Burtey>Yeah. So the current QR code that you can see on most of the Tienda here or the

00:31:12.680 --> 00:31:15.940
<v Nicolas Burtey>restaurant is basically a webpage.

00:31:17.150 --> 00:31:22.550
<v Nicolas Burtey>And the current webpage will be ln.bitcoinbeach.com slash Tienda Mario.

00:31:23.470 --> 00:31:28.030
<v Nicolas Burtey>And so if you scan this QR code with a QR scanner, it will open a

00:31:28.030 --> 00:31:33.810
<v Nicolas Burtey>page on Safari if you use an iOS, and you will have a

00:31:33.810 --> 00:31:35.070
<v Nicolas Burtey>Lightning invoice that you can pay.

00:31:38.200 --> 00:31:42.960
<v Aaron van Wirdum>It's a uniquely generated Lightning invoice in that case. So either you have the

00:31:42.960 --> 00:31:47.360
<v Aaron van Wirdum>Bitcoin Beach wallet, in which case it's very easy to make the payment, or you

00:31:47.360 --> 00:31:51.800
<v Aaron van Wirdum>have another Lightning wallet, in which case you need to scan the QR code, open

00:31:51.800 --> 00:31:56.040
<v Aaron van Wirdum>that in a web page, and then you get a unique Lightning invoice there, and then

00:31:56.040 --> 00:31:58.440
<v Aaron van Wirdum>you can pay that with whatever wallet you have, right?

00:31:58.640 --> 00:32:02.850
<v Nicolas Burtey>Yeah, so it's really a two-step process, it's not ideal. And if you were to try

00:32:02.850 --> 00:32:07.630
<v Nicolas Burtey>to scan this QR code directly from the Wallet of Satoshi, it would say, hey, this

00:32:07.630 --> 00:32:10.410
<v Nicolas Burtey>is not an invoice, I don't know what this is, and it would fail.

00:32:10.590 --> 00:32:14.450
<v Aaron van Wirdum>Yeah, that's what happened to me on day one. It was a little bit confusing at

00:32:14.450 --> 00:32:19.670
<v Aaron van Wirdum>first, but now I get how it works and it actually, it makes sense actually. It

00:32:19.670 --> 00:32:24.190
<v Aaron van Wirdum>just, you need to know that that's how it works. And it helps if the person

00:32:24.190 --> 00:32:29.790
<v Aaron van Wirdum>that's holding up the QR code speaks the same language as you otherwise. You're lost.

00:32:32.440 --> 00:32:37.700
<v Aaron van Wirdum>But yeah, but it's not compatible with all wallets, I think. Right? Or there

00:32:37.700 --> 00:32:40.180
<v Aaron van Wirdum>are some incompatibilities?

00:32:40.720 --> 00:32:45.960
<v Nicolas Burtey>Yeah, and some of the issue with the way we generate the invoice is it's

00:32:45.960 --> 00:32:49.360
<v Nicolas Burtey>currently an amountless invoice. So like when you open the webpage, you would...

00:32:49.360 --> 00:32:50.320
<v Aaron van Wirdum>An amountless invoice.

00:32:50.500 --> 00:32:54.760
<v Nicolas Burtey>Yeah, so an invoice that doesn't include an amount, meaning it is a sender. It is

00:32:54.760 --> 00:32:59.420
<v Nicolas Burtey>up to the sender to set the invoice. It's not the recipient… have not set the

00:32:59.420 --> 00:33:04.400
<v Nicolas Burtey>invoice by the time the invoice has been created. And the reason it's causing

00:33:04.400 --> 00:33:10.190
<v Nicolas Burtey>issue is like... up to maybe 18 months ago, two months ago, it was

00:33:10.190 --> 00:33:15.490
<v Nicolas Burtey>insecure to create a amountless invoice. I know it's secure, but like some

00:33:15.490 --> 00:33:19.570
<v Nicolas Burtey>wallets, you know, don't accept a amountless invoice. So like if you try to pay,

00:33:19.670 --> 00:33:24.390
<v Nicolas Burtey>I believe this invoice with Strike for example, like it will say, hey, I don't

00:33:24.390 --> 00:33:25.390
<v Nicolas Burtey>know how to pay this invoice.

00:33:25.550 --> 00:33:31.150
<v Aaron van Wirdum>So wait, so first of all, before, maybe explain why you want, why amountless

00:33:31.150 --> 00:33:33.210
<v Aaron van Wirdum>payment? What's the point of an amountless payment?

00:33:34.250 --> 00:33:34.730
<v Nicolas Burtey>So,

00:33:35.370 --> 00:33:36.650
<v Aaron van Wirdum>or an amountless invoice?

00:33:38.080 --> 00:33:43.060
<v Nicolas Burtey>So you can see an amountless invoice like a traditional on-chain, you know,

00:33:43.540 --> 00:33:46.800
<v Nicolas Burtey>address, right, where like you will pay to this address, but typically there is

00:33:46.800 --> 00:33:50.660
<v Nicolas Burtey>no amount associated to it, right, and if you have an on-chain address, you will

00:33:50.660 --> 00:33:54.600
<v Nicolas Burtey>send, like, the sender defines how much money should be sent, not the recipient.

00:33:55.220 --> 00:34:01.200
<v Nicolas Burtey>And so you can have both a amountless invoice or like an invoice

00:34:01.200 --> 00:34:05.450
<v Nicolas Burtey>with an amount, like both options are possible. And maybe I can talk about why,

00:34:05.450 --> 00:34:11.190
<v Nicolas Burtey>you know, it was not secure before and it's secure now. And maybe it would be the

00:34:11.190 --> 00:34:14.410
<v Nicolas Burtey>reason why some wallets don't accept amountless invoice till today.

00:34:14.710 --> 00:34:20.570
<v Aaron van Wirdum>Yeah, well, first of all, I'm still trying to find out why would you want

00:34:20.570 --> 00:34:23.390
<v Aaron van Wirdum>to use an amountless invoice as well. I think it has something to do with

00:34:23.390 --> 00:34:27.400
<v Aaron van Wirdum>pathfinding, right? Wasn't that the reason or routing?

00:34:28.140 --> 00:34:28.540
<v Nicolas Burtey>Nope.

00:34:28.900 --> 00:34:32.420
<v Aaron van Wirdum>Oh, then I just made that up. No, you were telling me the other day over a beer.

00:34:34.130 --> 00:34:36.950
<v Aaron van Wirdum>You're doing something unique with pathfinding, and there was something

00:34:36.950 --> 00:34:37.470
<v Aaron van Wirdum>incompatible.

00:34:37.550 --> 00:34:39.030
<v Nicolas Burtey>Oh, yeah, the probing.

00:34:39.350 --> 00:34:43.110
<v Aaron van Wirdum>Yes, exactly. Doesn't that have to do with amountless?

00:34:43.270 --> 00:34:45.470
<v Nicolas Burtey>Yeah, probing is something else, actually.

00:34:45.750 --> 00:34:46.270
<v Aaron van Wirdum>Oh, all right.

00:34:46.270 --> 00:34:47.550
<v Nicolas Burtey>We can talk about probing.

00:34:47.550 --> 00:34:51.770
<v Aaron van Wirdum>Yeah, we'll get into probing as well. Okay, so first, one thing at a time,

00:34:52.150 --> 00:34:53.070
<v Aaron van Wirdum>amountless invoices.

00:34:54.060 --> 00:34:59.900
<v Nicolas Burtey>So the first, I guess, version of Lightning Invoice was you add a hash

00:34:59.900 --> 00:35:05.240
<v Nicolas Burtey>in the invoice. And this is the only cryptographic element that you have in the

00:35:05.240 --> 00:35:10.610
<v Nicolas Burtey>invoice. And so let's say you have Alice and Bob and Charlie.

00:35:12.690 --> 00:35:18.220
<v Nicolas Burtey>Basically, Alice wants to pay Charlie and Bob is an intermediary node. And so

00:35:18.220 --> 00:35:24.220
<v Nicolas Burtey>the issue with just a hash is that... Let's say Alice

00:35:24.220 --> 00:35:26.720
<v Nicolas Burtey>wants to send a thousand sats to Charlie.

00:35:28.280 --> 00:35:30.380
<v Nicolas Burtey>So Charlie generates a amountless invoice.

00:35:32.320 --> 00:35:37.760
<v Nicolas Burtey>Alice initiates the payment saying, hey, please send a thousand sats to

00:35:37.760 --> 00:35:43.660
<v Nicolas Burtey>Charlie through Bob. Maybe Bob will take five sats in fee. And so

00:35:43.660 --> 00:35:49.370
<v Nicolas Burtey>Alice will send a thousand and five sats. Bob will take five sats and

00:35:49.370 --> 00:35:54.950
<v Nicolas Burtey>Charlie will receive a thousand sats. This is a normal flow. But here, the

00:35:54.950 --> 00:35:58.670
<v Nicolas Burtey>reason it can be dangerous is that

00:36:00.620 --> 00:36:06.380
<v Nicolas Burtey>basically Charlie doesn't know how much money to expect from Alice because it's

00:36:06.380 --> 00:36:12.040
<v Nicolas Burtey>not in the invoice. And so Alice could send a thousand five sats and

00:36:12.040 --> 00:36:17.270
<v Nicolas Burtey>Bob could take a thousand sats and say, hey! Charlie, please take this five sats,

00:36:17.430 --> 00:36:22.970
<v Nicolas Burtey>you know, it's a payment I receive. And basically, you know, some, the

00:36:22.970 --> 00:36:28.670
<v Nicolas Burtey>nodes, typically the last hop, you know, before the recipient, like, could take

00:36:28.670 --> 00:36:34.310
<v Nicolas Burtey>as much money as they want. If they know somehow, if they try

00:36:34.310 --> 00:36:38.970
<v Nicolas Burtey>to see if, like, sending less money would work, right? So this is why it was

00:36:38.970 --> 00:36:40.010
<v Nicolas Burtey>insecure before.

00:36:40.270 --> 00:36:45.510
<v Aaron van Wirdum>Right. Yeah, I've seen some wallets reject, or maybe not reject it, but at least

00:36:45.510 --> 00:36:50.270
<v Aaron van Wirdum>throw up a warning sign. So this is why they're throwing up a warning sign. But

00:36:50.270 --> 00:36:55.170
<v Aaron van Wirdum>other wallets just reject it outright. Okay, and this is because, so you just

00:36:55.170 --> 00:36:57.930
<v Aaron van Wirdum>explained the problem. This used to be a problem, but you're saying this problem

00:36:57.930 --> 00:36:58.710
<v Aaron van Wirdum>is now solved.

00:36:59.010 --> 00:37:03.690
<v Nicolas Burtey>Yeah, it's... If you use, so if you generate an invoice with

00:37:03.690 --> 00:37:09.670
<v Nicolas Burtey>new invoice, like since at least on LND, I believe LND, I mean, three or

00:37:09.670 --> 00:37:13.550
<v Nicolas Burtey>four versions of LND, maybe LND 0.10 or along this line.

00:37:13.810 --> 00:37:14.570
<v Aaron van Wirdum>When was this?

00:37:17.530 --> 00:37:21.930
<v Nicolas Burtey>Maybe more than a year ago, between a year and 18 months ago, I would say.

00:37:23.570 --> 00:37:28.030
<v Nicolas Burtey>Now invoice, not only generate a hash, but also a payment secret.

00:37:30.760 --> 00:37:36.440
<v Nicolas Burtey>Basically, the hash will be known by every party along the route, but the payment

00:37:36.440 --> 00:37:42.460
<v Nicolas Burtey>secret will only be known by the recipient and the sender, right?

00:37:42.800 --> 00:37:43.020
<v Aaron van Wirdum>Right.

00:37:43.160 --> 00:37:48.500
<v Nicolas Burtey>And because this information is not

00:37:49.200 --> 00:37:53.930
<v Nicolas Burtey>shared between intermediary nodes, like... basically the last hop, you know,

00:37:54.030 --> 00:37:57.670
<v Nicolas Burtey>cannot made up information because, you know, then the last onion that will

00:37:57.670 --> 00:38:01.490
<v Nicolas Burtey>arrive to the, you know, to Charlie in that case, like, he will know that

00:38:01.490 --> 00:38:05.090
<v Nicolas Burtey>something is wrong, basically, because there is no new cryptographic element that

00:38:05.090 --> 00:38:05.630
<v Nicolas Burtey>has been added.

00:38:06.090 --> 00:38:10.210
<v Aaron van Wirdum>I see, yeah. So Lightning always use, you know, the hash that's passed around on

00:38:10.210 --> 00:38:12.530
<v Aaron van Wirdum>each step, and now apparently there's [unclear] security.

00:38:12.790 --> 00:38:17.070
<v Nicolas Burtey>Yeah, there is a payment secret, what it's been called. Right. And if you create

00:38:17.070 --> 00:38:20.900
<v Nicolas Burtey>an invoice with a payment secret, you know, then... Amountless invoice are no

00:38:20.900 --> 00:38:21.900
<v Nicolas Burtey>longer unsecured.

00:38:22.830 --> 00:38:27.050
<v Aaron van Wirdum>Okay, so I think I understand where my confusion is coming from now. My

00:38:27.050 --> 00:38:32.810
<v Aaron van Wirdum>confusion, so yeah, you've got the amountless invoice. What that means is not

00:38:32.810 --> 00:38:38.750
<v Aaron van Wirdum>that it requires me to send zero satoshis. What it means is that I can fill in

00:38:38.750 --> 00:38:43.270
<v Aaron van Wirdum>my own. the amount of my own preference. That's what amountless invoice means.

00:38:43.450 --> 00:38:43.890
<v Nicolas Burtey>Yes, correct.

00:38:44.210 --> 00:38:47.530
<v Aaron van Wirdum>Right. Nicolas, see, I was confused because we were talking about two different

00:38:47.530 --> 00:38:52.290
<v Aaron van Wirdum>things and these two different things turn into one thing in my brain. But okay,

00:38:52.470 --> 00:38:56.290
<v Aaron van Wirdum>so yeah, you're hanging this QR code in the store, you're scanning that, you're

00:38:56.290 --> 00:39:01.680
<v Aaron van Wirdum>getting... with your QR code scanner, you get onto a webpage that has an

00:39:01.680 --> 00:39:07.240
<v Aaron van Wirdum>amountless invoice from Lightning, amountless Lightning invoice, which means that

00:39:07.240 --> 00:39:11.660
<v Aaron van Wirdum>now you can enter the amount yourself and make the payment to the pupusa shop.

00:39:12.060 --> 00:39:16.140
<v Aaron van Wirdum>And now everyone's happy because you had a great pupusa and the pupusa shop got

00:39:16.140 --> 00:39:19.580
<v Aaron van Wirdum>paid, even if I didn't have the Bitcoin Beach wallet.

00:39:19.860 --> 00:39:22.500
<v Nicolas Burtey>So is it the place where I'm supposed to make a bad joke?

00:39:22.920 --> 00:39:24.720
<v Aaron van Wirdum>Yes, this is where the pun comes in.

00:39:26.600 --> 00:39:32.220
<v Aaron van Wirdum>All right. Okay, that part is clear to me. Now, there

00:39:32.380 --> 00:39:37.980
<v Aaron van Wirdum>is another sort of futuristic idea. It's not that futuristic, but another idea

00:39:37.980 --> 00:39:41.860
<v Aaron van Wirdum>you were thinking about moving forward. Because right now,

00:39:43.150 --> 00:39:48.970
<v Aaron van Wirdum>basically, you speculated about this concept where the

00:39:48.970 --> 00:39:54.350
<v Aaron van Wirdum>username system right now works very well. And that could maybe be

00:39:54.350 --> 00:39:55.910
<v Aaron van Wirdum>expanded across.

00:39:57.330 --> 00:40:01.970
<v Aaron van Wirdum>custodial wallets at least right or shared custodial wallets like yours so maybe

00:40:01.970 --> 00:40:05.670
<v Aaron van Wirdum>explain how that would work or how you would see that working

00:40:05.670 --> 00:40:10.690
<v Nicolas Burtey>yeah so the first thing is like the username people loves it here like it's very

00:40:10.690 --> 00:40:13.710
<v Nicolas Burtey>useful because you know they know the username of their friend and they can

00:40:13.710 --> 00:40:19.020
<v Nicolas Burtey>easily send them money it's really magic right If you're living in the US,

00:40:19.960 --> 00:40:23.200
<v Nicolas Burtey>you have PayPal, you have Venmo, you have Cash App. It's not something new, but

00:40:23.200 --> 00:40:28.080
<v Nicolas Burtey>here it's something very new and useful for the people using the Bitcoin Beach

00:40:28.080 --> 00:40:34.070
<v Nicolas Burtey>wallet. But the downside of this is that it's also a very centralizing

00:40:34.070 --> 00:40:39.270
<v Nicolas Burtey>force. It means that, hey, you need to have this wallet, right? It's not great

00:40:39.270 --> 00:40:43.010
<v Nicolas Burtey>because it forces more people to use this wallet and not another one.

00:40:43.250 --> 00:40:46.650
<v Aaron van Wirdum>Yeah, there's strong network effects at play. If your friends have the Bitcoin

00:40:46.650 --> 00:40:50.430
<v Aaron van Wirdum>Beach wallet, they're going to want to use the Bitcoin Beach wallet instead of

00:40:50.430 --> 00:40:55.960
<v Aaron van Wirdum>the Bitcoin Forest wallet from the community next door. And ultimately,

00:40:56.120 --> 00:40:59.120
<v Aaron van Wirdum>everyone's using a Bitcoin Beach wallet because network effects are strong, even

00:40:59.120 --> 00:40:59.960
<v Aaron van Wirdum>in the Bitcoin forest.

00:41:00.440 --> 00:41:04.240
<v Nicolas Burtey>And then you end up with one wallet that rules the world, and that's not the

00:41:04.240 --> 00:41:05.060
<v Nicolas Burtey>place you want to be.

00:41:05.340 --> 00:41:05.520
<v Aaron van Wirdum>Right.

00:41:05.620 --> 00:41:10.240
<v Nicolas Burtey>It's not what Bitcoin is about. And so I've been thinking about this, and I think

00:41:10.240 --> 00:41:16.060
<v Nicolas Burtey>there could be a way to be able to send a payment from a wallet to another

00:41:16.060 --> 00:41:18.600
<v Nicolas Burtey>wallet. And let's say...

00:41:18.600 --> 00:41:19.920
<v Aaron van Wirdum>Using the username system.

00:41:20.040 --> 00:41:24.210
<v Nicolas Burtey>Using the username system. You know, let's say I want to send a payment to a

00:41:24.210 --> 00:41:27.170
<v Nicolas Burtey>Strike user and I am using the Bitcoin Beach wallet.

00:41:29.170 --> 00:41:34.530
<v Nicolas Burtey>And the idea is that if you think about a non-custodial wallet, it's like one

00:41:34.530 --> 00:41:40.310
<v Nicolas Burtey>person, you know, have one node. It's not shared. But if you use a

00:41:40.310 --> 00:41:44.630
<v Nicolas Burtey>custodial wallet, you know, the principle of a custodial wallet is that there is

00:41:44.630 --> 00:41:48.550
<v Nicolas Burtey>one node, but there is like many accounts to this node. And, you know, here, in

00:41:48.550 --> 00:41:53.530
<v Nicolas Burtey>our case, you know, we can identify each account with a username. And so the idea

00:41:53.530 --> 00:41:58.130
<v Nicolas Burtey>is the following, like you can do, you can send a payment with something like

00:41:58.130 --> 00:42:04.000
<v Nicolas Burtey>KeySend or AMP today. So I could send a payment for my node to like Strike,

00:42:04.140 --> 00:42:08.540
<v Nicolas Burtey>for instance, push payment. And in the payment, I would say, hey, you know,

00:42:08.700 --> 00:42:12.300
<v Nicolas Burtey>please pay this username, please pay Aaron at Strike.

00:42:13.550 --> 00:42:17.490
<v Nicolas Burtey>The way it will work is, okay, Bitcoin Beach Wallet will initiate the payment and

00:42:17.490 --> 00:42:23.410
<v Nicolas Burtey>send it to Strike. You know, it's known which public key the Strike node

00:42:23.410 --> 00:42:26.710
<v Nicolas Burtey>is, so I could push to a payment to the Strike node.

00:42:26.850 --> 00:42:31.250
<v Aaron van Wirdum>Yeah, which Lightning nodes on the Lightning network, essentially, through the

00:42:31.250 --> 00:42:37.210
<v Aaron van Wirdum>public key that's published. So, you know, a company like Strike... for them it's

00:42:37.210 --> 00:42:40.190
<v Aaron van Wirdum>public, which public key, which Lightning node is actually theirs.

00:42:40.550 --> 00:42:40.910
<v Nicolas Burtey>Exactly.

00:42:41.230 --> 00:42:45.050
<v Aaron van Wirdum>Right. So that's what you're sending the payments to directly in that case.

00:42:45.050 --> 00:42:48.950
<v Nicolas Burtey>Yeah. And so you send to a node, but here in the, basically in the payload of the

00:42:48.950 --> 00:42:53.670
<v Nicolas Burtey>payment, you can say, hey, you know, please credit Aaron, you know, a thousand

00:42:53.670 --> 00:42:59.290
<v Nicolas Burtey>sats. You know, the way this could work is that, you know, and this is

00:42:59.290 --> 00:43:03.370
<v Nicolas Burtey>so far very, you know, it's at the ideation stage, like, you know, there will

00:43:03.370 --> 00:43:07.810
<v Nicolas Burtey>need to be a spec for this. But, you know, I can describe the idea of how this

00:43:07.810 --> 00:43:12.250
<v Nicolas Burtey>will work. And so, you know, the Strike wallet will receive this payment and say,

00:43:12.370 --> 00:43:16.270
<v Nicolas Burtey>oh, do you know this user? Yes, I know it. OK, so I will credit, you know, a

00:43:16.270 --> 00:43:21.110
<v Nicolas Burtey>thousand sats for this account for our wallet. And to make it work, we also want

00:43:21.110 --> 00:43:25.270
<v Nicolas Burtey>to make sure that if the wallet receives some money, but they don't know the

00:43:25.270 --> 00:43:29.750
<v Nicolas Burtey>user, you know, like they should refuse the payments, obviously, because

00:43:29.750 --> 00:43:35.570
<v Nicolas Burtey>otherwise the sender will send some money and you know the recipient will

00:43:35.570 --> 00:43:41.560
<v Nicolas Burtey>not credit anyone and that will not be good but yeah that's really one way to

00:43:41.560 --> 00:43:47.000
<v Nicolas Burtey>be able to basically have a username system that is compatible across wallets and

00:43:47.000 --> 00:43:52.060
<v Nicolas Burtey>I believe that would be you know awesome to have um so far you know there is no

00:43:52.060 --> 00:43:57.380
<v Nicolas Burtey>equivalent if you think about the the traditional fiat system like you know with

00:43:57.380 --> 00:43:58.860
<v Nicolas Burtey>cash app and venmo

00:44:00.670 --> 00:44:04.390
<v Nicolas Burtey>you know, you cannot send money from CashApp to Venmo, even if you know there is

00:44:04.390 --> 00:44:07.810
<v Nicolas Burtey>a name on it. You have to use the same wallet. And the reason you cannot do it is

00:44:07.810 --> 00:44:12.470
<v Nicolas Burtey>really because there is no shared, you know, ledger between, you know, CashApp

00:44:12.470 --> 00:44:13.270
<v Nicolas Burtey>and Venmo.

00:44:14.710 --> 00:44:16.010
<v Nicolas Burtey>But on Lightning, you could do it.

00:44:16.010 --> 00:44:19.350
<v Aaron van Wirdum>Yeah, I think you might not even need that, thinking about it. Like, you could

00:44:19.350 --> 00:44:24.430
<v Aaron van Wirdum>just, you know, in my wallet interface of Bitcoin Beach, it could just say, you

00:44:24.430 --> 00:44:28.630
<v Aaron van Wirdum>know, send 10 [unclear], 10 [unclear] to Nicolas on Strike.

00:44:30.380 --> 00:44:36.020
<v Aaron van Wirdum>And then, you know, the Bitcoin Beach wallet knows to send a 10 [unclear]

00:44:36.020 --> 00:44:40.740
<v Aaron van Wirdum>payment to Strike with this message. And then Strike will look into their own

00:44:40.740 --> 00:44:45.860
<v Aaron van Wirdum>ledger if there is indeed a Nicolas there. If so, it gets credited 10 [unclear].

00:44:46.080 --> 00:44:50.540
<v Aaron van Wirdum>If not, it's just returned to sender. And, you know, that's really all you need

00:44:50.540 --> 00:44:54.180
<v Aaron van Wirdum>if you think about it, right? I think. You don't need… you don't need… even you

00:44:54.180 --> 00:44:58.930
<v Aaron van Wirdum>don't need… you don't even need… a shared ledger between the wallets necessarily.

00:44:59.150 --> 00:45:02.850
<v Nicolas Burtey>Oh, no, you don't. I was describing, you know, in the Fiat ecosystem, like, you

00:45:02.850 --> 00:45:06.710
<v Nicolas Burtey>know, I mean, and the reason it will work is that because on Lightning, hey, you

00:45:06.710 --> 00:45:10.570
<v Nicolas Burtey>can push payment, right? You don't need to share the ledger. Exactly. You can use

00:45:10.570 --> 00:45:14.790
<v Nicolas Burtey>Lightning to go from one wallet to another wallet, which is the magic of

00:45:14.790 --> 00:45:15.450
<v Nicolas Burtey>Lightning, obviously.

00:45:16.490 --> 00:45:21.810
<v Aaron van Wirdum>Yeah, so that's a potential future idea you're thinking about. Let's get back

00:45:21.810 --> 00:45:26.740
<v Aaron van Wirdum>to... So I already mentioned the pathfinding

00:45:26.740 --> 00:45:32.560
<v Aaron van Wirdum>issues or challenges because this is currently not compatible across

00:45:32.560 --> 00:45:37.560
<v Aaron van Wirdum>all wallets. So maybe you can explain what are the differences or what are the

00:45:37.560 --> 00:45:38.440
<v Aaron van Wirdum>problems there.

00:45:39.080 --> 00:45:45.080
<v Nicolas Burtey>Yeah, so some other issue we are facing and we are working on is related

00:45:45.120 --> 00:45:45.980
<v Nicolas Burtey>to probing.

00:45:47.360 --> 00:45:52.590
<v Nicolas Burtey>So we do probing to have like... more precise accounting for the fees.

00:45:54.240 --> 00:45:58.660
<v Nicolas Burtey>And so what is a probe? A probe is like, if I want to pay from the Bitcoin Beach

00:45:58.660 --> 00:46:01.570
<v Nicolas Burtey>wallet to, let's say, a Muun user,

00:46:04.410 --> 00:46:07.410
<v Nicolas Burtey>I will basically, to know if I have liquidity,

00:46:09.040 --> 00:46:14.280
<v Nicolas Burtey>a probe is I send a payment to this user, but instead of using the

00:46:14.280 --> 00:46:17.600
<v Nicolas Burtey>hash of the invoice, I invent a new hash.

00:46:19.110 --> 00:46:20.210
<v Nicolas Burtey>And so let's say...

00:46:20.210 --> 00:46:25.410
<v Aaron van Wirdum>First of all, maybe... Actually, the previous Van Wirdum Sjorsnado episode was

00:46:25.410 --> 00:46:29.650
<v Aaron van Wirdum>about pathfinding and routing. So that's short enough ago that I still remember

00:46:29.650 --> 00:46:35.600
<v Aaron van Wirdum>some of it. And what Joost Jager explained

00:46:35.600 --> 00:46:40.530
<v Aaron van Wirdum>is that most wallets, or at least LND, I think, they have this system where they

00:46:40.530 --> 00:46:41.870
<v Aaron van Wirdum>map out the entire network.

00:46:44.110 --> 00:46:48.110
<v Aaron van Wirdum>They have information about the channels on the network and based on this

00:46:48.110 --> 00:46:53.830
<v Aaron van Wirdum>information They calculate the cheapest route to the destination where cheapest

00:46:53.830 --> 00:46:59.670
<v Aaron van Wirdum>means literally cheapest fees, but it can also factor in real reliability of the

00:46:59.670 --> 00:47:03.850
<v Aaron van Wirdum>channel and What else that was another factor?

00:47:04.880 --> 00:47:06.780
<v Nicolas Burtey>There is a time period for which...

00:47:06.780 --> 00:47:12.660
<v Aaron van Wirdum>Oh, yeah, yeah, exactly. The timeout. So that sort of factors in

00:47:12.660 --> 00:47:18.140
<v Aaron van Wirdum>and it calculates one cost. And that's how one node routes a payment to another

00:47:18.140 --> 00:47:23.720
<v Aaron van Wirdum>node. And I think right now what these nodes

00:47:23.720 --> 00:47:29.700
<v Aaron van Wirdum>do is they basically specify a maximum fee amount that

00:47:29.700 --> 00:47:34.140
<v Aaron van Wirdum>it's allowed to cost, that a payment is allowed to cost. So your own node, if I'm

00:47:34.140 --> 00:47:38.880
<v Aaron van Wirdum>making a payment, it knows how much I'm willing to pay for it. It calculates a

00:47:38.880 --> 00:47:43.440
<v Aaron van Wirdum>route, sees if there is a route available for that cost. If so, it picks the

00:47:43.440 --> 00:47:45.420
<v Aaron van Wirdum>cheapest one. Maybe that one will fail.

00:47:47.090 --> 00:47:51.870
<v Aaron van Wirdum>Try the next [unclear] one as long, and it keeps doing that until it hits sort of

00:47:51.870 --> 00:47:56.650
<v Aaron van Wirdum>the roof or the, you know, the limit of what you've said that, what I said that

00:47:56.650 --> 00:48:01.190
<v Aaron van Wirdum>it was allowed to cost. That's how it sort of works right now. And probing is an

00:48:01.190 --> 00:48:05.050
<v Aaron van Wirdum>alternative to this. Is that, is that a way, is that a good way to describe it?

00:48:05.170 --> 00:48:10.010
<v Nicolas Burtey>It's not an alternative to this. Probing use pathfinding. Probing is a way to

00:48:10.010 --> 00:48:12.480
<v Nicolas Burtey>know which path would work in advance.

00:48:12.880 --> 00:48:16.380
<v Aaron van Wirdum>Right. So instead of there are 10 different options and I just gave a max,

00:48:16.740 --> 00:48:21.980
<v Aaron van Wirdum>probing allows my node to tell me exactly how much it's going to cost.

00:48:22.360 --> 00:48:22.560
<v Nicolas Burtey>Yeah.

00:48:22.840 --> 00:48:24.140
<v Aaron van Wirdum>Right. Okay. So how does it work?

00:48:25.620 --> 00:48:31.420
<v Nicolas Burtey>So it's like you do a normal payment, but instead of having the hash of the

00:48:31.420 --> 00:48:35.840
<v Nicolas Burtey>invoice you want to pay, you create a new hash, like a random hash, a fake hash,

00:48:35.920 --> 00:48:40.860
<v Nicolas Burtey>if you want. And so you're still trying to pay the same node, the same amount.

00:48:41.560 --> 00:48:46.500
<v Nicolas Burtey>But because it's a fake hash, when the node receives the payment, they should

00:48:46.500 --> 00:48:52.440
<v Nicolas Burtey>say, hey, I receive this, but I don't know which hash is it. I don't have the

00:48:52.440 --> 00:48:57.300
<v Nicolas Burtey>preimage of the hash, therefore, I will reject this payment. But if you receive

00:48:57.300 --> 00:49:02.600
<v Nicolas Burtey>an error message that says, hey, this node rejects the payment for this fake

00:49:02.600 --> 00:49:07.070
<v Nicolas Burtey>hash, you know that eventually you reach this node. Therefore, you know that

00:49:07.070 --> 00:49:12.390
<v Nicolas Burtey>there is liquidity for this route. If you have another

00:49:12.390 --> 00:49:16.910
<v Nicolas Burtey>message that is, hey, sorry, I cannot go further in the path because there is no

00:49:16.910 --> 00:49:20.910
<v Nicolas Burtey>liquidity. You know that this path you try to pay is not working, and then you

00:49:20.910 --> 00:49:25.230
<v Nicolas Burtey>would try another one, right? And so this is how probe is working. And the

00:49:25.230 --> 00:49:29.810
<v Nicolas Burtey>reason, yeah, you want to do probing is like, if you want to charge, you know,

00:49:29.870 --> 00:49:34.150
<v Nicolas Burtey>only the fees that is... You have to pay on the Lightning Network, but not more

00:49:34.150 --> 00:49:38.750
<v Nicolas Burtey>fees than that. Probing is the best way to do it because now you will know

00:49:38.750 --> 00:49:42.070
<v Nicolas Burtey>exactly in advance of a payment how much it will cost if successful.

00:49:43.590 --> 00:49:49.520
<v Aaron van Wirdum>Right. So this is how the Bitcoin Beach wallet uses it to make payments, I

00:49:49.520 --> 00:49:52.820
<v Aaron van Wirdum>guess? Or is it also relevant to receiving payments?

00:49:53.590 --> 00:49:56.690
<v Nicolas Burtey>So it's only relevant to making payments.

00:49:58.470 --> 00:50:00.010
<v Aaron van Wirdum>But this is not compatible.

00:50:01.500 --> 00:50:05.880
<v Aaron van Wirdum>This is not... [unclear] is trying to distract me at the other side of the glass.

00:50:06.340 --> 00:50:09.840
<v Aaron van Wirdum>This is not compatible with all wallets right now, right?

00:50:10.800 --> 00:50:16.580
<v Nicolas Burtey>So one of the issues that we are facing is, for instance, the Muun Wallet, it

00:50:16.580 --> 00:50:22.480
<v Nicolas Burtey>doesn't really work today. So the probe is failing because Muun

00:50:22.480 --> 00:50:27.080
<v Nicolas Burtey>Wallet does actually what we talked earlier today about. Like they open a channel

00:50:27.080 --> 00:50:31.120
<v Nicolas Burtey>on the fly and they have a way to manage this. And they also create a new... pub

00:50:31.120 --> 00:50:34.600
<v Nicolas Burtey>key for which invoice is being created so they have like a way to increase

00:50:34.600 --> 00:50:39.380
<v Nicolas Burtey>privacy for the user but as a result probing doesn't work and therefore like

00:50:39.380 --> 00:50:43.880
<v Nicolas Burtey>payments are failing if you know currently you want to send a payment from the

00:50:43.880 --> 00:50:49.320
<v Nicolas Burtey>Bitcoin Beach wallet to the to the Muun wallet and we try to solve this issue but

00:50:49.320 --> 00:50:51.440
<v Nicolas Burtey>it's um it's not an easy issue to solve

00:50:51.630 --> 00:50:56.590
<v Aaron van Wirdum>Right so that's that's another trade-off of using the Bitcoin Beach wallets that

00:50:56.590 --> 00:50:58.610
<v Aaron van Wirdum>is not compatible with all other wallets.

00:50:59.040 --> 00:50:59.860
<v Nicolas Burtey>Yeah, not yet.

00:51:00.080 --> 00:51:00.240
<v Aaron van Wirdum>Right.

00:51:00.480 --> 00:51:05.420
<v Nicolas Burtey>But I mean, my goal, and I believe it's the goal of, you know, most wallet

00:51:05.420 --> 00:51:09.680
<v Nicolas Burtey>providers is like we want to increase compatibility across each other. It's just

00:51:09.680 --> 00:51:12.780
<v Nicolas Burtey>that the Lightning space is very interesting in the sense that you can

00:51:12.780 --> 00:51:16.500
<v Nicolas Burtey>experiment. You know, it's not like Bitcoin, which has a very strict set of

00:51:16.500 --> 00:51:20.380
<v Nicolas Burtey>rules. Like on Lightning, it's a lot more, you know, you can try anything you

00:51:20.380 --> 00:51:24.600
<v Nicolas Burtey>want. You know, some other wallets might work with it. Some other wallets might

00:51:24.600 --> 00:51:25.060
<v Nicolas Burtey>not work.

00:51:26.580 --> 00:51:30.180
<v Nicolas Burtey>which makes it very interesting. Obviously, we don't want to diverge in a way

00:51:30.180 --> 00:51:35.640
<v Nicolas Burtey>like, you know, wallets are not compatible between themselves, right? But, yeah,

00:51:35.660 --> 00:51:40.020
<v Nicolas Burtey>currently there is still, you know, work to do to basically have better

00:51:40.020 --> 00:51:41.940
<v Nicolas Burtey>integration between different wallets.

00:51:42.160 --> 00:51:46.490
<v Aaron van Wirdum>Yeah. Well, I mentioned this, but my experience with the wallet has been

00:51:46.490 --> 00:51:51.970
<v Aaron van Wirdum>positive. I like it. I like that you're here, that you're actually trying to

00:51:51.970 --> 00:51:57.590
<v Aaron van Wirdum>see what people are experiencing with the wallet, which problems they have.

00:51:59.590 --> 00:52:02.330
<v Aaron van Wirdum>The trade-offs are also there.

00:52:03.610 --> 00:52:08.790
<v Aaron van Wirdum>We mentioned the privacy trade-offs, the custodial trade-offs, but it's

00:52:08.790 --> 00:52:14.730
<v Aaron van Wirdum>definitely... the easiest wallet to use right here, at least. And I think,

00:52:15.820 --> 00:52:19.780
<v Aaron van Wirdum>I also mentioned it kind of makes sense, I think, in this context, in this

00:52:19.780 --> 00:52:23.880
<v Aaron van Wirdum>context of a village that's adopting it, of a specific community that's adopting

00:52:23.880 --> 00:52:29.270
<v Aaron van Wirdum>it. And I think you're now, the wallet is open source, correct?

00:52:29.770 --> 00:52:30.030
<v Nicolas Burtey>Yeah.

00:52:30.290 --> 00:52:34.910
<v Aaron van Wirdum>And the idea is also that this format, this way of doing...

00:52:36.680 --> 00:52:41.940
<v Aaron van Wirdum>In a way, it's a third layer now, right? At least if you use the username system,

00:52:42.080 --> 00:52:45.620
<v Aaron van Wirdum>it's like a third layer at this point. We're talking about Bitcoin layer 3,

00:52:45.920 --> 00:52:49.200
<v Aaron van Wirdum>people. That's how advanced this podcast is.

00:52:50.660 --> 00:52:54.700
<v Aaron van Wirdum>Yeah, and the idea is that other communities maybe like Bitcoin Beach, but in

00:52:54.700 --> 00:52:58.380
<v Aaron van Wirdum>other places of the world could adopt this type of system, could use the open

00:52:58.380 --> 00:53:03.700
<v Aaron van Wirdum>source code, you know, smack it on top of their own logo or other way around,

00:53:03.840 --> 00:53:09.240
<v Aaron van Wirdum>smack their logo on top, smack the Bitcoin forest logo on top or the Bitcoin

00:53:09.240 --> 00:53:14.730
<v Aaron van Wirdum>volcano logo inland and have their own local

00:53:14.730 --> 00:53:16.730
<v Aaron van Wirdum>versions of the Bitcoin Beach wallet.

00:53:17.720 --> 00:53:18.340
<v Nicolas Burtey>Yeah, yeah.

00:53:20.260 --> 00:53:23.220
<v Nicolas Burtey>So it's open source software, so anyone can use it.

00:53:24.430 --> 00:53:28.870
<v Nicolas Burtey>And I expect, you know, in a couple of years to have hundreds, if not thousands

00:53:28.870 --> 00:53:33.210
<v Nicolas Burtey>of those, you know, communities around the world. And maybe it will be, you know,

00:53:33.390 --> 00:53:36.890
<v Nicolas Burtey>small community, large community, it can be cities, it can be, you know, state,

00:53:37.170 --> 00:53:40.690
<v Nicolas Burtey>it can be enterprise, you know, so anyone that wants their own wallet, you know,

00:53:40.770 --> 00:53:41.830
<v Nicolas Burtey>could use what we have built.

00:53:43.100 --> 00:53:49.120
<v Aaron van Wirdum>All right. Nicolas, thank you. uh, let’s… uh, let’s hear one last pun from you.

00:53:50.410 --> 00:53:52.890
<v Nicolas Burtey>Come to El Zonte, experience in a Bitcoin Beach.

00:53:53.540 --> 00:53:54.380
<v Aaron van Wirdum>There you go.

