CD154: DAN GOULD - PAYJOIN

Dan is the maintainer of Payjoin Dev Kit. Payjoins are a type of collaborative bitcoin transaction that can reduce fees and improve privacy. We discuss the potential for broad industry adoption among bitcoin wallets and companies.
Dan on Nostr: https://primal.net/p/nprofile1qqszvkpk9scn064gq8awgp97xmlusrsk5cwy82y35wsyd0kykuhynzspqmlwl
Dan's Website: https://bitgould.com/
Payjoin Dev Kit: https://payjoindevkit.org/
..
EPISODE: 154
BLOCK: 891950
PRICE: 1210 sats per dollar
Video: https://primal.net/e/nevent1qqsyzvxeztjtjkur9y6t2a34768545vpw6e83e4wnwg6u29uecmv42qg3pvdr
support dispatch: https://citadeldispatch.com/donate
nostr live chat: https://citadeldispatch.com/stream
odell nostr account: https://primal.net/odell
dispatch nostr account: https://primal.net/citadel
youtube: https://www.youtube.com/@CitadelDispatch
podcast: https://serve.podhome.fm/CitadelDispatch
stream sats to the show: https://www.fountain.fm/
rock the badge: https://citadeldispatch.com/shop
join the chat: https://citadeldispatch.com/chat
learn more about me: https://odell.xyz
(00:06:23) Bitcoin and Freedom Tech Discussion
(00:08:02) Payjoin and Privacy Enhancements
(00:18:22) Payjoin Dev Kit and Integration Challenges
(00:30:10) Technical Aspects of Payjoin
(00:47:00) Future of Payjoin and Multi-Party Transactions
(01:00:03) Open Source Funding and Community Involvement
06:23 - Bitcoin and Freedom Tech Discussion
08:02 - Payjoin and Privacy Enhancements
18:22 - Payjoin Dev Kit and Integration Challenges
30:10 - Technical Aspects of Payjoin
47:00 - Future of Payjoin and Multi-Party Transactions
01:00:03 - Open Source Funding and Community Involvement
NOTE
Transcription provided by Podhome.fm
Created: 04/11/2025 21:25:26
Duration: 4314.41
Channels: 1
1
00:00:00.080 --> 00:00:01.939
Where's the upside for crypto?
2
00:00:05.120 --> 00:00:08.020
This is Sectors Up Close, and we're talking cryptocurrency.
3
00:00:08.880 --> 00:00:10.960
Bitcoin hit a $20.25
4
00:00:10.960 --> 00:00:11.940
low on Monday,
5
00:00:12.255 --> 00:00:13.795
sliding alongside equities
6
00:00:14.255 --> 00:00:17.395
even though president Trump had promised favorable policies
7
00:00:17.775 --> 00:00:20.755
that would make The US the crypto capital of the planet.
8
00:00:21.135 --> 00:00:23.875
So what's happened to the optimism around cryptocurrency?
9
00:00:24.575 --> 00:00:27.360
Well, Andrew O'Neil is digital assets managing director
10
00:00:28.560 --> 00:00:29.780
at S and P
11
00:00:30.320 --> 00:00:38.100
Global Ratings. Andrew, cryptocurrency was intended as a departure from the traditional financial system, but isn't it moving a lot like any other risky asset at the moment?
12
00:00:38.480 --> 00:00:46.155
Well, Elena, thank you for having me. I think, you're referring to price movements in the last few, few days, few weeks. Certainly, we've seen,
13
00:00:47.655 --> 00:00:48.635
a trend where,
14
00:00:49.735 --> 00:00:51.755
markets have moved to a risk off,
15
00:00:53.150 --> 00:00:56.170
paradigm, in recent days. And, and, clearly,
16
00:00:56.870 --> 00:01:02.410
crypto has joined other asset class in that movement. I think when we come back to why
17
00:01:03.270 --> 00:01:04.395
crypto could be,
18
00:01:04.875 --> 00:01:10.895
an asset that behaves differently, a lot of the assumptions behind that are things that, you know, are are still developing,
19
00:01:11.274 --> 00:01:13.854
may over a number of years become true.
20
00:01:14.395 --> 00:01:16.414
But I would also highlight that then among
21
00:01:16.720 --> 00:01:20.979
crypto assets themselves that there are significant differences. And when we're talking about that
22
00:01:21.759 --> 00:01:25.700
asset that may behave differently, that may be a,
23
00:01:26.240 --> 00:01:29.939
a hedge against current TV basement, for example, that may be uncorrelated
24
00:01:30.465 --> 00:01:43.590
to, to stocks. We're primarily focused on Bitcoin. We're focused on its characteristics as an alternate form of money. We're focused on the fact that it's decentralized, that it's geopolitically neutral,
25
00:01:44.310 --> 00:01:53.689
And we're starting to see adoption in that sense, so that narrative of investment appearing among institutional investors, among public sector investors, among national governments.
26
00:01:54.069 --> 00:02:02.035
But that but we are still very early in that trend. And so it's not very surprising that in an environment where investors are rapidly
27
00:02:02.735 --> 00:02:21.160
switching risk off in their portfolios, that we're seeing some, some correlation between crypto assets and other asset classes. Yes. Last year, of course, there was a lot of talk about Bitcoin being the new gold, about it becoming a safe haven asset. When do you think we will see that happen then? Or perhaps what do we need what needs to happen first? We've already seen,
28
00:02:21.700 --> 00:02:25.800
a an executive order announcing the creation of a,
29
00:02:26.500 --> 00:02:27.000
US
30
00:02:28.114 --> 00:02:28.614
strategic
31
00:02:28.915 --> 00:02:29.814
Bitcoin reserve.
32
00:02:30.114 --> 00:02:30.594
And,
33
00:02:30.995 --> 00:02:33.575
what that has done so far is allocating
34
00:02:34.275 --> 00:02:35.894
existing holdings of Bitcoin,
35
00:02:36.194 --> 00:02:39.814
that, that the, the government has acquired through various
36
00:02:40.510 --> 00:02:41.730
law enforcement procedures,
37
00:02:42.910 --> 00:02:44.930
to this reserve that will not be sold.
38
00:02:45.790 --> 00:02:55.814
There is there there was some discussion in that executive order about adding to that reserve over time if a way to do that can be found that does not bring additional cost to taxpayers.
39
00:02:56.594 --> 00:02:59.974
So we will see over the next couple of months if proposals emerge
40
00:03:00.355 --> 00:03:02.674
or or brought forward that that that are that,
41
00:03:03.394 --> 00:03:08.135
that carry that effect. There was a proposal made last year by senator Cynthia Lummis,
42
00:03:08.720 --> 00:03:09.860
which aimed to accumulate
43
00:03:10.160 --> 00:03:12.020
a million Bitcoin over a period
44
00:03:12.560 --> 00:03:15.220
of five years, which would clearly be significant,
45
00:03:16.320 --> 00:03:23.465
well, bring significant buying pressure to, to to Bitcoin markets. That would be, for context, more Bitcoin than is actually produced
46
00:03:23.765 --> 00:03:26.745
on an annual basis coming as a as a net new,
47
00:03:27.125 --> 00:03:28.745
demand, for the asset.
48
00:03:29.045 --> 00:03:29.545
So
49
00:03:30.005 --> 00:03:32.245
there it's possible that some of the,
50
00:03:32.885 --> 00:03:35.864
early exuberance this year, in Bitcoin price was
51
00:03:36.940 --> 00:03:49.760
something like that being announced. So far, we've only had the announcement regarding Bitcoin already held, but we'll see in the in the next few months if something further comes on that. Bitcoin investors have been a bit disappointed so far with the second Trump administration.
52
00:03:50.060 --> 00:03:55.525
Were they expecting further crypto friendly moves that we haven't seen yet? I think there is that aspect around,
53
00:03:56.465 --> 00:03:59.045
additional buying coming from from the National Reserve.
54
00:03:59.585 --> 00:04:01.525
Beyond that, you know, I I think
55
00:04:01.905 --> 00:04:05.765
crypto markets do bring in a certain amount of leverage that can lead to,
56
00:04:06.660 --> 00:04:07.160
liquidations
57
00:04:07.540 --> 00:04:09.640
and more rapid price decreases.
58
00:04:10.020 --> 00:04:13.560
So we've kind of experienced that in the last few days with
59
00:04:14.340 --> 00:04:18.920
increasing liquidations across centralized and and decentralized exchanges and crypto.
60
00:04:19.555 --> 00:04:20.055
But,
61
00:04:20.595 --> 00:04:24.354
when we look at some of the early developments that we've seen in,
62
00:04:25.395 --> 00:04:27.815
since the change of administration, we've seen the repeal
63
00:04:28.435 --> 00:04:30.134
of SAB one twenty one, which was
64
00:04:30.914 --> 00:04:32.455
a a a a regulatory measure that effectively
65
00:04:32.995 --> 00:04:34.250
made it impossible
66
00:04:34.630 --> 00:04:41.050
for regulated banks to provide custody services on crypto assets. And so that's a major change in terms of bringing institutional
67
00:04:41.510 --> 00:04:42.650
players into the market.
68
00:04:43.030 --> 00:04:46.330
We expect to see regulation emerge on stablecoins
69
00:04:46.790 --> 00:04:49.805
in The US market this year, which will bring,
70
00:04:50.825 --> 00:04:51.565
more comfort
71
00:04:52.265 --> 00:04:56.605
to regulated institutions using blockchain technology and using crypto rails
72
00:04:56.985 --> 00:05:07.010
to transact on, and, again, more emphasis on participation in in, in crypto markets. The last piece of that puzzle is market structure, which is
73
00:05:07.470 --> 00:05:13.330
a legal framework looking to say which regulator will be responsible for which area of the crypto market.
74
00:05:14.110 --> 00:05:15.490
That, that that
75
00:05:16.030 --> 00:05:16.750
that's also,
76
00:05:17.230 --> 00:05:23.705
on on, on the to do list of the US legislature, but, these things take time. And it's certainly not surprising
77
00:05:24.165 --> 00:05:24.565
that,
78
00:05:25.285 --> 00:05:27.785
that, that those things have not yet been,
79
00:05:28.245 --> 00:05:39.030
brought into effect, but we would expect to see movement on that, this year. That was Andrew O'Neil of S and P Global Ratings. Don't forget, you can watch more videos on Reuters.com.
80
00:06:23.925 --> 00:06:30.090
Happy Bitcoin Friday, freaks. It's your host, Odell, here for another Citadel Dispatch, the interactive
81
00:06:30.470 --> 00:06:35.210
live show focused on actual Bitcoin and Freedom Tech discussion.
82
00:06:35.990 --> 00:06:37.130
That intro clip
83
00:06:37.670 --> 00:06:39.210
was from Reuters
84
00:06:39.510 --> 00:06:41.930
interviewing some suit from S and P,
85
00:06:43.275 --> 00:06:44.415
talking about Bitcoin.
86
00:06:44.715 --> 00:06:48.795
Completely irrelevant really to our today's discussion, but it it felt,
87
00:06:49.435 --> 00:06:52.895
notable enough to to put in the beginning of dispatch.
88
00:06:53.355 --> 00:06:55.950
So I wanna thank you guys for sitting through that with us.
89
00:06:56.830 --> 00:07:01.650
As always, dispatch is a % audience funded. We do not have ads or sponsors.
90
00:07:02.990 --> 00:07:04.690
It is supported by
91
00:07:05.070 --> 00:07:10.130
all you ride or die freaks that continue to donate sets to the show. I see we have
92
00:07:10.724 --> 00:07:14.985
some of our rider dies already in the Nasr live chat. It's good to have the Nasr live chat
93
00:07:15.525 --> 00:07:17.465
back up and on screen
94
00:07:17.925 --> 00:07:19.544
today for this episode
95
00:07:20.245 --> 00:07:21.064
or this show.
96
00:07:22.485 --> 00:07:24.425
I will start off by saying
97
00:07:25.199 --> 00:07:28.660
that I may have blamed some technical difficulties on ZapStream
98
00:07:29.039 --> 00:07:29.780
by Kieran,
99
00:07:30.960 --> 00:07:33.300
but it appears my stream key was rotated,
100
00:07:33.680 --> 00:07:36.900
and I had not adjusted that on my side. So
101
00:07:37.245 --> 00:07:37.905
hand up,
102
00:07:38.205 --> 00:07:43.485
I'll take full blame for that. But we have Super Fat Hour has already zapped 21,000.
103
00:07:43.485 --> 00:07:45.745
EZ has zapped 3,000.
104
00:07:45.885 --> 00:07:47.985
And our top boost from the last
105
00:07:48.365 --> 00:07:51.745
two shows was from Wood Butcher. Wood Butcher,
106
00:07:52.500 --> 00:07:56.199
4,200 sets, and he said, God bless capitalism.
107
00:07:57.539 --> 00:07:58.599
Love to see it.
108
00:07:59.060 --> 00:08:07.965
We have ride or die freak Dan Gould here to join us. It is the second time on the show. First time as a solo guest, we'll be talking about PayJoint. We'll be talking about
109
00:08:08.925 --> 00:08:13.425
using Bitcoin privately. We'll be talking about many things. How's it going, Dan?
110
00:08:13.805 --> 00:08:15.665
Good. Talk about whatever you want.
111
00:08:16.044 --> 00:08:16.365
It's,
112
00:08:17.645 --> 00:08:19.985
something I've been looking forward to to a long time.
113
00:08:20.365 --> 00:08:20.790
Yeah.
114
00:08:22.150 --> 00:08:25.290
I I an interesting place to start, just a relevant,
115
00:08:26.870 --> 00:08:28.090
newsworthy item.
116
00:08:28.950 --> 00:08:33.370
I was pretty excited about this DOJ memo that came out,
117
00:08:34.315 --> 00:08:36.654
saying that they're getting rid of their crypto enforcement
118
00:08:37.035 --> 00:08:37.535
division
119
00:08:38.075 --> 00:08:40.975
and that they will not be
120
00:08:41.435 --> 00:08:41.935
focused
121
00:08:42.875 --> 00:08:45.455
on individuals and developers that are running
122
00:08:45.835 --> 00:08:47.055
or that are maintaining
123
00:08:49.040 --> 00:08:52.899
sovereignty focused Bitcoin software. I think they called out by name,
124
00:08:53.279 --> 00:08:54.579
mixers and tumblers
125
00:08:55.519 --> 00:08:58.899
and self custody wallets. Do you have any opinions on that?
126
00:09:00.000 --> 00:09:08.805
As soon as that came out, my first reaction was, I can't wait for Lola leads to report on this, which did come right after, from the rage.
127
00:09:10.225 --> 00:09:12.485
It's an internal memo. It's not really
128
00:09:13.025 --> 00:09:15.685
a law. It's not even guidance like
129
00:09:16.390 --> 00:09:19.130
FinCEN has. We'll see what actually changes.
130
00:09:19.670 --> 00:09:21.290
It's a narrative shift, but
131
00:09:22.149 --> 00:09:23.130
I'm cautiously
132
00:09:23.589 --> 00:09:24.089
optimistic
133
00:09:24.630 --> 00:09:27.209
to look at it, as anything more than that.
134
00:09:27.830 --> 00:09:31.850
Yeah. I mean, I I appreciate the constant skepticism from Lola.
135
00:09:32.525 --> 00:09:38.545
She is quite unique in the Bitcoin journalism space. And I I don't think she's wrong. Right? Like, it's definitely not
136
00:09:38.925 --> 00:09:40.045
a panacea, but,
137
00:09:42.285 --> 00:09:47.345
I think it's also absolutely massive. Like, I think it's pretty crazy that a year ago,
138
00:09:49.000 --> 00:09:52.700
less than a year ago, we had the samurai developer start in jail.
139
00:09:53.320 --> 00:09:54.860
And today, we have
140
00:09:55.240 --> 00:09:59.900
the DOJ shuttering the same crypto enforcement division that led that case.
141
00:10:00.595 --> 00:10:03.415
I mean, they're obviously still in jail. They still have a court case.
142
00:10:03.795 --> 00:10:04.295
Lola
143
00:10:04.995 --> 00:10:06.695
rightfully pointed out that
144
00:10:07.315 --> 00:10:10.935
they, said that that part is out of scope. They, like,
145
00:10:11.875 --> 00:10:13.255
took that out of the memo.
146
00:10:15.000 --> 00:10:18.140
But, yeah, I think it's a big deal. I think she also reported today,
147
00:10:18.840 --> 00:10:19.900
at least on Noster,
148
00:10:21.880 --> 00:10:27.660
that the broker dealer rule from the IRS is out, which wanted to do KYC on self custody exchanges.
149
00:10:28.735 --> 00:10:34.355
And she seemed pretty optimistic on that. So I don't know. It feels like a lot of progress is being made. It feels like
150
00:10:34.735 --> 00:10:36.115
we have a window here,
151
00:10:38.815 --> 00:10:44.970
where at least the US government isn't actively trying to throw open source contributors into the gulags,
152
00:10:46.070 --> 00:10:48.170
and we should probably be seizing the moment.
153
00:10:50.390 --> 00:10:51.770
Absolutely. It's time
154
00:10:52.230 --> 00:10:52.810
to take
155
00:10:53.110 --> 00:10:54.410
as much as we can
156
00:10:55.315 --> 00:10:58.774
that enables self custody, like sovereign self custody mainstream,
157
00:10:59.475 --> 00:10:59.975
and
158
00:11:01.475 --> 00:11:04.214
raise the bar in terms of what's expected
159
00:11:04.915 --> 00:11:06.455
for bare minimum privacy.
160
00:11:08.020 --> 00:11:14.360
Damn right. Okay. So let's talk about let's just start let's just dive right in. You've been focused on PageJoin,
161
00:11:15.460 --> 00:11:17.000
specifically PageJoin DevKit.
162
00:11:17.860 --> 00:11:19.960
Let's start high level. What is PageJoin?
163
00:11:21.285 --> 00:11:24.825
Pay join is the most fundamental way to batch
164
00:11:25.205 --> 00:11:25.705
transactions
165
00:11:26.325 --> 00:11:27.465
on the input side.
166
00:11:28.005 --> 00:11:28.505
So
167
00:11:28.965 --> 00:11:34.505
almost everyone's familiar with output batching. When you make a withdrawal from
168
00:11:34.890 --> 00:11:36.270
any exchange. They're gonna
169
00:11:36.730 --> 00:11:44.990
make a ton of inputs in or a ton of outputs in that transaction to pay out their users because they make less change and they share the overhead and they save money.
170
00:11:45.770 --> 00:11:48.510
But So, like, if if I do, like, a strike withdrawal,
171
00:11:50.055 --> 00:11:53.495
you'll like, when you look up your strike withdrawal on mempool.space
172
00:11:53.495 --> 00:11:54.075
or whatever,
173
00:11:54.455 --> 00:12:04.955
that transaction is really sending Bitcoin to maybe 200 people, 300 people, including you, and that's that output side batching. Exactly. Because they save a ton of money, and
174
00:12:06.270 --> 00:12:07.490
it doesn't clog
175
00:12:08.110 --> 00:12:13.090
up mempool so they're able to have high throughput so that happened all in 2017
176
00:12:14.590 --> 00:12:18.770
when mempools were full and full and full and fees were getting more and more expensive
177
00:12:19.265 --> 00:12:25.685
Everyone's like, how do you scale a database, which fundamentally Bitcoin blockchain is, and you do that with batching. And that
178
00:12:26.065 --> 00:12:27.925
is consensus. I mean, there was even
179
00:12:28.545 --> 00:12:29.605
calls from
180
00:12:30.625 --> 00:12:36.110
the community at large, like naming and shaming people that didn't do batching until they did it. It was very effective.
181
00:12:38.490 --> 00:12:40.510
Okay. So but in that situation,
182
00:12:40.890 --> 00:12:46.110
usually, it's just one or two on the input side. There's, like, one or two input transactions.
183
00:12:47.130 --> 00:12:52.824
Well, yeah, there there may be any number of inputs, but they all come from the exchange. The exchange
184
00:12:53.845 --> 00:12:58.185
constructs this transaction so that there are enough inputs to fund all of their withdrawals.
185
00:12:59.125 --> 00:13:01.704
They sign it, and they post it to the network.
186
00:13:02.404 --> 00:13:05.305
And that has been great for
187
00:13:06.190 --> 00:13:06.690
throughput.
188
00:13:07.310 --> 00:13:09.410
It's reduced the fees everyone pays,
189
00:13:10.110 --> 00:13:12.050
but it doesn't address this
190
00:13:12.670 --> 00:13:21.490
problem that even Satoshi left in the white paper that anyone looking at a transaction can assume that all the inputs came from the same person.
191
00:13:22.535 --> 00:13:24.075
But because of the way that
192
00:13:24.615 --> 00:13:25.515
Bitcoin works,
193
00:13:27.415 --> 00:13:30.714
any inputs can be spent in a transaction as long as they have a signature.
194
00:13:31.415 --> 00:13:32.154
So if
195
00:13:32.774 --> 00:13:36.394
the person sending the transaction and the person receiving the transaction
196
00:13:37.430 --> 00:13:41.769
both talk to each other, they can contribute inputs and break that assumption
197
00:13:42.870 --> 00:13:43.370
and
198
00:13:43.910 --> 00:13:46.490
that lets us do a ton of stuff. It lets us
199
00:13:47.110 --> 00:13:52.010
save fees because it's even better batching. You're packing more intents into one transaction
200
00:13:52.655 --> 00:13:58.755
and it raises the bar in terms of the minimum privacy everyone gets because that assumption
201
00:13:59.695 --> 00:14:00.195
about
202
00:14:00.575 --> 00:14:02.275
how money flows in the chain
203
00:14:02.975 --> 00:14:06.275
is no longer true. That assumption that all the inputs come from one person.
204
00:14:08.400 --> 00:14:09.300
Right. So
205
00:14:09.920 --> 00:14:12.580
just to unpack a little bit, with Bitcoin surveillance,
206
00:14:14.080 --> 00:14:17.620
and transaction tracking, it's all just probability analysis.
207
00:14:18.320 --> 00:14:18.820
And
208
00:14:19.305 --> 00:14:22.265
so the what is that probability analysis to property
209
00:14:22.745 --> 00:14:27.805
probability analysis is trying is is these surveillance firms are trying to figure out
210
00:14:28.345 --> 00:14:33.965
what percent chance is there that ownership has changed hands between Bitcoin UTXOs.
211
00:14:35.610 --> 00:14:39.310
And the main the main heuristic they use for that
212
00:14:39.769 --> 00:14:48.829
is common input ownership heuristic. This idea that everything on the input side is owned by the sender and who's a single person or a single entity.
213
00:14:51.205 --> 00:14:52.505
With pay join,
214
00:14:54.085 --> 00:14:56.345
multiple parties can contribute inputs.
215
00:14:56.805 --> 00:14:59.385
So all of a sudden, you break that fundamental
216
00:15:01.125 --> 00:15:03.225
probability assumption that everyone
217
00:15:03.605 --> 00:15:05.600
on the input side is the
218
00:15:06.940 --> 00:15:08.399
same the same entity.
219
00:15:09.100 --> 00:15:13.100
Yeah. And there's other tech that Yeah. Breaks this too, but pay join is kind of
220
00:15:14.060 --> 00:15:15.279
pay join is the most
221
00:15:15.740 --> 00:15:18.560
convenient way to do that. Everything around
222
00:15:18.894 --> 00:15:19.394
PayJoin
223
00:15:20.095 --> 00:15:21.475
is set up so that
224
00:15:22.654 --> 00:15:28.675
any two software services can set up a standard way that they can talk to each other and arrange
225
00:15:29.214 --> 00:15:31.394
to make this kind of batch
226
00:15:31.774 --> 00:15:33.020
if they're both online.
227
00:15:35.400 --> 00:15:36.140
So then
228
00:15:38.520 --> 00:15:40.140
why don't you so so
229
00:15:40.600 --> 00:15:41.100
the
230
00:15:41.560 --> 00:15:50.325
the the privacy improvement is clear. I mean, is that you're breaking this you're you're breaking that probability assumption, your that common input ownership heuristic.
231
00:15:51.345 --> 00:15:54.005
How does how does that process of
232
00:15:54.385 --> 00:16:00.145
of adding additional inputs that aren't, you know, maybe they're not even necessary to,
233
00:16:02.370 --> 00:16:07.029
fulfilling the transaction. I mean, you could do the transaction without PayJoin. How does that save fees?
234
00:16:07.810 --> 00:16:09.110
Yeah. The really interesting
235
00:16:10.050 --> 00:16:11.510
savings comes from
236
00:16:12.290 --> 00:16:12.790
creating
237
00:16:14.225 --> 00:16:16.885
fewer coins overall. So this is the same thing
238
00:16:17.345 --> 00:16:17.845
with
239
00:16:18.465 --> 00:16:20.325
receiver side batching that I think
240
00:16:20.865 --> 00:16:21.365
people,
241
00:16:22.705 --> 00:16:27.845
it doesn't readily, it's not readily apparent to people the first time they think about it. So when you batch a bunch of outputs,
242
00:16:29.240 --> 00:16:34.220
yes, all of these transaction intents share one transaction and they share that 10 byte overhead.
243
00:16:34.920 --> 00:16:39.740
But really the big savings comes from not every single
244
00:16:40.839 --> 00:16:41.339
output
245
00:16:42.225 --> 00:16:45.605
to, someone withdrawing from an exchange, say, creating change.
246
00:16:45.985 --> 00:16:52.725
So if there's a change for every single person that withdraws, that input then needs to be spent at some point in the future.
247
00:16:53.265 --> 00:16:54.885
But if you batch them all together,
248
00:16:55.200 --> 00:17:01.860
you can batch 300 people and just get one change. And the input is actually the expensive part of a transaction that includes
249
00:17:02.320 --> 00:17:04.260
the the witness and the script.
250
00:17:05.200 --> 00:17:05.700
So
251
00:17:07.665 --> 00:17:12.725
when you do a pay join, you can do the same sort of thing where if I was gonna send
252
00:17:13.585 --> 00:17:14.405
some exchange
253
00:17:15.185 --> 00:17:19.445
some money and they knew they needed to make a withdrawal, they would have to take my UTXO
254
00:17:19.985 --> 00:17:22.005
and then they would need to spend it again
255
00:17:23.080 --> 00:17:24.700
and we would both create
256
00:17:25.240 --> 00:17:28.460
change. But instead, we can do something called cut through
257
00:17:28.840 --> 00:17:30.139
where some proposal
258
00:17:30.679 --> 00:17:33.260
to a receiver, an exchange from a depositor,
259
00:17:33.960 --> 00:17:39.855
can directly fund withdrawals. So So in some cases, the exchange may not even need to spend their internal coin.
260
00:17:40.235 --> 00:17:40.894
The sender
261
00:17:41.434 --> 00:17:42.815
can fund the transaction
262
00:17:43.115 --> 00:17:43.774
that directly
263
00:17:44.635 --> 00:17:45.135
pays
264
00:17:45.755 --> 00:17:46.255
the,
265
00:17:47.514 --> 00:17:48.894
the people making withdrawals.
266
00:17:50.420 --> 00:17:51.320
And, overall,
267
00:17:51.860 --> 00:17:56.520
there are both fewer transactions and there are fewer coins created. So that
268
00:17:57.860 --> 00:18:00.120
that is where the savings come from.
269
00:18:00.420 --> 00:18:05.155
So if there's, like, a hundred people depositing to strike at the same time as
270
00:18:05.615 --> 00:18:08.115
there's 50 people withdrawing from strike,
271
00:18:08.815 --> 00:18:13.635
then those hundred people that are depositing could actually be on the input side of the withdrawal transaction,
272
00:18:13.935 --> 00:18:17.715
and you kinda knock you knock off both sides at the same time.
273
00:18:18.059 --> 00:18:20.000
That's what we wanna do long term. Yeah.
274
00:18:22.220 --> 00:18:26.240
Okay. So what is page join dev kit, and where does it
275
00:18:27.100 --> 00:18:28.399
fit into this whole
276
00:18:29.500 --> 00:18:30.000
mission?
277
00:18:30.779 --> 00:18:32.720
Yeah. Page join dev kit.
278
00:18:33.325 --> 00:18:35.985
Pedro and DevKit was the way to get me to,
279
00:18:36.525 --> 00:18:39.825
have people understand what the hell I was working on because
280
00:18:40.925 --> 00:18:45.565
Lightning DevKit was working so well, Bitcoin DevKit was working so well, and I was working on kind of the same thing,
281
00:18:46.045 --> 00:18:47.745
a software development kit
282
00:18:48.045 --> 00:18:48.545
to
283
00:18:49.460 --> 00:18:51.400
let any wallet or service
284
00:18:51.940 --> 00:18:53.480
take advantage of this technology.
285
00:18:55.380 --> 00:18:56.680
But without that
286
00:18:57.620 --> 00:18:58.120
branding,
287
00:18:58.420 --> 00:19:00.915
people didn't people didn't get what it was. And this is where,
288
00:19:01.715 --> 00:19:05.895
PayJoin's a bit different than a lot of what has come before in terms of privacy tech.
289
00:19:06.275 --> 00:19:14.455
It only really works if everyone is using it or if a significant number of people are using it. So PayJoin DevKit lets you take this off the shelf
290
00:19:14.835 --> 00:19:16.135
protocol implementation
291
00:19:16.890 --> 00:19:19.630
and plug it into your wallet. So Bold Bitcoin
292
00:19:19.930 --> 00:19:20.590
just released
293
00:19:21.210 --> 00:19:21.950
in December
294
00:19:22.570 --> 00:19:23.070
this
295
00:19:23.450 --> 00:19:26.030
PayJoin DevKit integration into their wallet,
296
00:19:26.730 --> 00:19:30.830
and we were able to demonstrate its use also in Bolt's
297
00:19:31.415 --> 00:19:36.155
Exchange and Liana over this past week. So it's an off the shelf toolkit.
298
00:19:37.095 --> 00:19:40.315
Any software can take, plug into their wallet, and activate PayJoin.
299
00:19:41.735 --> 00:19:42.715
Because if
300
00:19:43.030 --> 00:19:44.410
for this to work,
301
00:19:45.030 --> 00:19:47.370
you need you kinda need widespread
302
00:19:48.790 --> 00:19:56.505
wallet and, like, service ex support. Right? Like, the exchanges would need to support it and the the people who are,
303
00:19:57.145 --> 00:19:59.005
I guess, the people that are depositing
304
00:19:59.865 --> 00:20:03.325
their wallets would need to support it, not necessarily on the receiver side. Right?
305
00:20:04.905 --> 00:20:13.860
Matt, in an ideal world, you'd want the receivers to do this too. Oh, I guess so. Any any transaction intent, you can think of this as kind of a pseudo mempool. It's like before
306
00:20:14.320 --> 00:20:20.740
we get to mempool, if we're willing to communicate with other people, we can take all the transactions we wanna make and batch them together.
307
00:20:21.520 --> 00:20:24.660
And everyone Right. Saves money. But, yeah, that's the idea.
308
00:20:25.085 --> 00:20:30.785
You need as many but you just need as many wallets and services to support it as possible for it to work at scale,
309
00:20:31.485 --> 00:20:35.985
basically. And so dev the page join dev kit makes it easy for all of these different
310
00:20:36.445 --> 00:20:48.110
maintainers to to add support. Right? Yeah. I think of it as HTTPS. That was controversial in its day, but now it's ubiquitous and so everyone has better privacy. The only real way we can do this,
311
00:20:48.970 --> 00:20:49.470
upgrade
312
00:20:50.305 --> 00:20:51.045
to Bitcoin
313
00:20:51.745 --> 00:20:55.125
is by making it network wide, which in
314
00:20:55.505 --> 00:20:58.325
the application world, if you're not changing the actual protocol,
315
00:20:58.705 --> 00:21:01.365
you need many people to participate in. And
316
00:21:02.545 --> 00:21:03.045
the
317
00:21:04.410 --> 00:21:10.910
reason that PayJoin lets this happen across the network and not just between the people that use it is because a lot of the transactions
318
00:21:11.850 --> 00:21:17.470
that went through this process look the same as transactions that didn't necessarily go through this process.
319
00:21:18.195 --> 00:21:19.174
So you have
320
00:21:20.274 --> 00:21:22.294
you have a greater degree
321
00:21:23.955 --> 00:21:24.455
of
322
00:21:25.315 --> 00:21:25.815
ambiguity
323
00:21:27.715 --> 00:21:30.855
on whether all the inputs came from one person or not
324
00:21:31.315 --> 00:21:32.054
for everyone.
325
00:21:33.440 --> 00:21:34.260
There's a
326
00:21:34.799 --> 00:21:35.280
if you,
327
00:21:35.840 --> 00:21:38.660
so, like, if you just, like, see a non paid join transaction
328
00:21:39.280 --> 00:21:47.745
on mempool.space, for instance, you you might not be able to tell if it's a paid join or not. Right? So it just breaks that. Yeah. It's it's complex because
329
00:21:48.205 --> 00:21:49.665
there are a lot of other fingerprints,
330
00:21:50.125 --> 00:21:56.865
but this is kind of the least we can do in a package that can be automatic for all this software. So you plug it into your wallet.
331
00:21:57.325 --> 00:22:01.265
Your users don't have to take additional actions. It's just packed into the
332
00:22:01.669 --> 00:22:03.210
flow that everyone's used to.
333
00:22:03.990 --> 00:22:04.890
You send me
334
00:22:05.429 --> 00:22:07.370
an address, basically a URI,
335
00:22:08.390 --> 00:22:11.530
and, you know, like, some payment instructions, and I pay that
336
00:22:12.390 --> 00:22:20.054
by pasting that address, and my wallet takes care of the rest. If there's an opportunity to batch, we do the page one batch. If not, we fall back,
337
00:22:20.674 --> 00:22:25.414
and everyone gets this as a convenience. I think in the past, a lot of these techniques
338
00:22:25.875 --> 00:22:35.990
have involved a lot of know how. And if you didn't use them right, you could make mistakes, and you might have paid a bunch of money and time and not even be any better off. This is about the widespread
339
00:22:37.730 --> 00:22:39.909
increase for everyone. Everyone has
340
00:22:40.690 --> 00:22:41.350
a higher
341
00:22:42.610 --> 00:22:43.750
degree of privacy
342
00:22:45.035 --> 00:22:46.815
whether they even use this or not
343
00:22:47.674 --> 00:22:48.575
by existing.
344
00:22:49.275 --> 00:22:53.775
And I love the it just falls back. It'll just do a regular transaction if the pay join
345
00:22:54.554 --> 00:23:02.220
process fails. But the so, I mean, one of the the big not not necessarily issues, but trade offs with page join historically
346
00:23:02.520 --> 00:23:04.300
has been that it needs to be
347
00:23:05.080 --> 00:23:07.420
interactive and that, you know, so effectively,
348
00:23:08.120 --> 00:23:15.085
senders, all senders and receivers need to be online to, like, coordinate with each other and sign and broadcast this transaction.
349
00:23:15.705 --> 00:23:18.684
My understanding is that's no longer the case. And,
350
00:23:19.625 --> 00:23:21.645
like, how are you handling that
351
00:23:22.120 --> 00:23:23.179
information exchange?
352
00:23:27.080 --> 00:23:33.740
The beauty of Bitcoin is that it's noninteractive. You just take a transaction you post it, you submit it to Right. Whatever,
353
00:23:35.080 --> 00:23:35.580
mempool,
354
00:23:35.975 --> 00:23:37.835
and eventually it'll get mined in a block.
355
00:23:39.255 --> 00:23:44.395
Pay join takes advantage of the fact that most of us are online some of the time.
356
00:23:45.015 --> 00:23:45.515
So
357
00:23:46.055 --> 00:23:48.155
the fallback is there in case we're not.
358
00:23:48.775 --> 00:23:51.100
But if we are, we can both
359
00:23:51.480 --> 00:23:51.980
use
360
00:23:52.680 --> 00:23:54.060
what's essentially a mailbox
361
00:23:56.280 --> 00:23:58.860
to coordinate together. So the problem with
362
00:23:59.720 --> 00:24:00.460
the past,
363
00:24:01.800 --> 00:24:05.925
the his so there was there were two iterations. This has been going on since 2018.
364
00:24:06.545 --> 00:24:07.045
And
365
00:24:07.665 --> 00:24:09.125
the standard communication
366
00:24:10.065 --> 00:24:11.285
required you to
367
00:24:12.465 --> 00:24:17.125
run a public publicly accessible server to receive page lines. But we,
368
00:24:18.210 --> 00:24:19.990
meaning the page join dev kit team,
369
00:24:20.770 --> 00:24:21.909
came up with a
370
00:24:23.010 --> 00:24:24.150
directory server
371
00:24:24.690 --> 00:24:25.990
that hosts these mailboxes
372
00:24:26.450 --> 00:24:28.230
and anyone can host one of these servers.
373
00:24:28.690 --> 00:24:32.390
And you put your message in the mailbox and the person that is
374
00:24:32.695 --> 00:24:35.275
waiting for your payment is listening to updates for this.
375
00:24:35.735 --> 00:24:40.715
And just like email, when that message comes in, they can reply to it. And if they don't reply to it in time, we fall back.
376
00:24:44.870 --> 00:24:49.690
Okay. So it's still interactive. It's just Yeah. Like, it's a looser interaction.
377
00:24:50.710 --> 00:24:55.450
It's asynchronous. So we don't need to be online at the same time because there's that box in the middle.
378
00:24:56.230 --> 00:24:56.550
We
379
00:24:57.110 --> 00:25:11.965
as long as we come on within some time frame, we're both comfortable with. And what is that time frame? It's like lightning is the same thing. Lightning, you need to come online to communicate and a big issue with like zaps is that it's a synchronous protocol for the most part right now. But if we
380
00:25:13.050 --> 00:25:16.750
make that asynchronous, this problem goes away and that's where like
381
00:25:17.210 --> 00:25:22.030
an npub. Cache makes things easier because they're always online on your behalf.
382
00:25:23.690 --> 00:25:24.190
The
383
00:25:24.650 --> 00:25:26.110
async pay join spec
384
00:25:26.490 --> 00:25:26.990
says
385
00:25:27.784 --> 00:25:32.205
there's someone that can always be online on your behalf. It's not exactly the same, but
386
00:25:32.664 --> 00:25:34.524
yeah. What was the question you just asked?
387
00:25:35.544 --> 00:25:42.205
Like, in practice, how long do you think that period will be? Oh, by default, we set it to twenty four hours in clients just like,
388
00:25:43.120 --> 00:25:50.820
you know, your typical lightning invoice, but it's configurable on the client. So application specific. I think exchanges with exchange rates will probably have
389
00:25:51.120 --> 00:25:53.539
narrower constraints like b t c pays,
390
00:25:54.080 --> 00:25:55.779
exchange rate holds for an hour.
391
00:25:56.960 --> 00:25:57.460
And
392
00:25:58.835 --> 00:25:59.335
it's
393
00:25:59.715 --> 00:26:02.135
application specific. The point of the protocol is
394
00:26:02.435 --> 00:26:03.395
not to
395
00:26:05.155 --> 00:26:09.735
and I'm talking about the BIP 77 v two join async page on protocol that's
396
00:26:10.195 --> 00:26:18.450
being finalized right now. Right. The point is that everyone can communicate on the same standard just to make a batch. It doesn't restrict itself
397
00:26:19.070 --> 00:26:21.809
to the transaction needs to be of this certain shape
398
00:26:22.350 --> 00:26:30.115
or amount or within a certain time frame is just a very fundamental, convenient way we can attempt to talk to each other,
399
00:26:30.654 --> 00:26:31.154
and,
400
00:26:32.575 --> 00:26:35.794
hopefully, we're able to. And if not, we fall back.
401
00:26:37.135 --> 00:26:37.635
So,
402
00:26:39.629 --> 00:26:45.570
yeah, I mean, I don't think, you know, even twenty four hours probably be fine for most people.
403
00:26:47.230 --> 00:26:51.970
I mean, I there there's some there's some precedent already. Right? So, like, for instance,
404
00:26:52.905 --> 00:26:53.565
at least
405
00:26:54.265 --> 00:26:57.405
to my knowledge, both strike and cash app offer,
406
00:26:58.105 --> 00:27:12.850
you can like pay for a priority withdrawal or you can get a free withdrawal that happens sometime within twenty four hours. Right. And plenty of people choose the I'm willing to wait up to twenty four hours. Usually it doesn't take a full twenty four hours, but I'm willing to wait up to twenty four hours to
407
00:27:13.390 --> 00:27:14.450
have a free withdrawal.
408
00:27:15.230 --> 00:27:25.215
And those are the best targets for the cut through because if if once people are queued up to have their withdrawal and a pay join comes into the exchange, that person depositing to the exchange can
409
00:27:25.595 --> 00:27:27.455
preempt that queue. It can pay everyone.
410
00:27:27.995 --> 00:27:28.495
Exactly.
411
00:27:29.675 --> 00:27:31.934
So my point is is, like, there's already
412
00:27:33.080 --> 00:27:37.660
effectively like real world user testing that people are like fine with that time period.
413
00:27:38.280 --> 00:27:43.500
You know, maybe you'd want it to be a little bit shorter, but that makes sense to me now in practice,
414
00:27:43.800 --> 00:27:45.420
like, just walk us through this.
415
00:27:46.280 --> 00:27:46.780
If
416
00:27:48.195 --> 00:27:52.294
let's free, let's use easy numbers. A hundred people are depositing a hundred people withdrawing
417
00:27:52.595 --> 00:27:54.455
and it's a cut through pay join.
418
00:27:54.995 --> 00:27:56.775
That means every single person
419
00:27:57.155 --> 00:27:58.135
in that transaction
420
00:28:00.030 --> 00:28:00.850
needs to be
421
00:28:01.390 --> 00:28:04.210
online for at least a little bit during that period. Right?
422
00:28:05.710 --> 00:28:07.250
Not exactly. So there's
423
00:28:07.550 --> 00:28:11.330
there's a couple levels to this thing. The page r d two spec
424
00:28:11.710 --> 00:28:13.170
is really only for
425
00:28:13.665 --> 00:28:20.165
one sender and one receiver, but that one receiver can define as many outputs as they want. So your base case
426
00:28:20.545 --> 00:28:22.645
is that there's a queue at an exchange
427
00:28:23.105 --> 00:28:27.045
where people are willing to wait, a depositor sends some money to the exchange,
428
00:28:27.420 --> 00:28:30.080
and that preempts the whole queue. If the
429
00:28:30.460 --> 00:28:32.960
exchange needs to add some input to pay for that,
430
00:28:33.300 --> 00:28:33.800
they
431
00:28:34.140 --> 00:28:35.520
can add that input.
432
00:28:35.820 --> 00:28:36.320
But
433
00:28:36.780 --> 00:28:37.260
there's
434
00:28:37.660 --> 00:28:43.065
because it's only one back and forth round of communication, it only really works with one
435
00:28:44.005 --> 00:28:44.505
depositor.
436
00:28:45.925 --> 00:28:46.425
Now
437
00:28:48.165 --> 00:28:50.665
we did just sneak in a feature
438
00:28:51.925 --> 00:28:52.425
into
439
00:28:53.925 --> 00:28:54.425
our
440
00:28:54.805 --> 00:28:57.060
last release of PageOne DevKit that allows
441
00:28:57.380 --> 00:29:00.680
multiple senders and senders to send to one receiver.
442
00:29:01.140 --> 00:29:08.680
But still that one receiver is defining all of the outputs. So from the perspective of the depositor, they're only interacting with the exchange,
443
00:29:09.460 --> 00:29:15.015
but the exchange is free to choose all of the outputs. So they can forward payment to anyone, but those
444
00:29:15.475 --> 00:29:16.615
people making withdrawals
445
00:29:17.475 --> 00:29:18.775
are not part of the interaction.
446
00:29:20.835 --> 00:29:27.390
It's just the deposit side is. Just the deposit side because they need to provide signatures. And because they need to provide signatures, you need to
447
00:29:27.850 --> 00:29:29.150
interact until that's done.
448
00:29:29.690 --> 00:29:38.270
Right. On the on the withdrawal side, it's just the exchange providing, like, all the withdrawal addresses like they usually do. Yeah. And then have the amounts or whatever.
449
00:29:39.095 --> 00:29:50.395
Okay. So that's way more doable too because then the exchange just has, like I I guess you use the word queue. It has, like, a queue of withdrawals that are, like, their free batch withdrawals, and they just wait till
450
00:29:51.059 --> 00:29:51.799
they have
451
00:29:52.899 --> 00:29:57.000
an appropriate amount of inputs on the the sender side to do the transaction.
452
00:29:57.460 --> 00:29:58.279
Boom. Done.
453
00:29:58.659 --> 00:30:04.279
At some point in the future, maybe we can have receivers too, and we can have the receiver specify what output they want
454
00:30:04.635 --> 00:30:06.975
because then then even the
455
00:30:07.355 --> 00:30:13.455
exchange wouldn't know exactly what address they sent to. They'd they'd get a proof of payment, but, like, for the highest,
456
00:30:15.435 --> 00:30:25.560
version of this, I wanna be able to send to you. I don't really care what address you have. As long as I get some proof that it ended up in your address, I don't actually wanna know what your address is.
457
00:30:26.340 --> 00:30:26.840
Right.
458
00:30:29.855 --> 00:30:31.475
That'll make sense to me.
459
00:30:32.335 --> 00:30:33.955
The you mentioned earlier
460
00:30:34.815 --> 00:30:36.035
that there's some nuances
461
00:30:36.415 --> 00:30:38.275
in terms of PayJoin fingerprinting.
462
00:30:38.655 --> 00:30:43.235
I mean, the Wallet fingerprinting. Yes. Yeah. The hype the hype
463
00:30:43.679 --> 00:30:51.139
answer is always, you know, with pay join, if we get like 5% of transactions using pay join, then everyone has privacy.
464
00:30:53.200 --> 00:30:56.740
What are the new, like, where, where are the nuances there in terms of,
465
00:30:59.505 --> 00:31:03.845
being able to tell which transactions are paid join versus which ones aren't?
466
00:31:05.424 --> 00:31:06.085
It's tough
467
00:31:06.625 --> 00:31:21.800
because this 5% number just comes from what people think of as statistically significant. Like that number is literally pulled out of the sky and I think a lot of people in research community say 5% is statistically significant but that p value can
468
00:31:22.740 --> 00:31:23.535
can change. And the other tricky part is because the page one's blank,
469
00:31:24.255 --> 00:31:25.955
And the other tricky part is
470
00:31:26.335 --> 00:31:37.055
because the page ones blend in, it's hard for it's impossible for us really to collect data on exactly how many page ones there are. And by page join here, I'm not talking about the coordination. I'm talking about,
471
00:31:38.610 --> 00:31:40.710
let's say common input transactions,
472
00:31:41.730 --> 00:31:44.630
transactions that break that assumption and those that don't.
473
00:31:45.170 --> 00:31:45.809
So it is,
474
00:31:46.770 --> 00:31:50.150
it is a vibes based measurement, but if this is widespread,
475
00:31:50.930 --> 00:31:51.830
if it's significant
476
00:31:52.210 --> 00:31:53.190
to some degree,
477
00:31:53.785 --> 00:31:55.085
then you do have
478
00:31:56.505 --> 00:31:57.005
compounding
479
00:31:57.945 --> 00:32:12.570
ambiguity in what happened in every transaction. Because if you like, if I'm doing the analysis, I have to make a guess. I have to say, I think there's a 5% chance, there's an n percent chance that these inputs came from different people and every hop along the way
480
00:32:13.830 --> 00:32:16.410
that whether or not the input is linked to the output,
481
00:32:19.110 --> 00:32:21.210
is is uncertain to me. The
482
00:32:21.585 --> 00:32:25.445
probability compounds. Wallet fingerprinting is a different is a little bit different,
483
00:32:25.985 --> 00:32:31.445
in general. So like some wallets will maybe use a certain unlock time or a certain script type
484
00:32:31.745 --> 00:32:33.125
and you can follow
485
00:32:35.269 --> 00:32:36.090
their activity
486
00:32:36.789 --> 00:32:39.929
because you know this software only produces transactions
487
00:32:40.710 --> 00:32:41.690
with this shape.
488
00:32:42.470 --> 00:32:44.010
But I believe in general
489
00:32:45.110 --> 00:32:46.409
batching this stuff together
490
00:32:47.190 --> 00:32:47.690
helps,
491
00:32:51.215 --> 00:32:52.355
make those, helps
492
00:32:52.895 --> 00:32:57.555
make those fingerprints less distinct because it's unclear what software is producing
493
00:32:58.335 --> 00:33:04.440
what fingerprint. You got to go through the source code and like pull out what fingerprints this stuff is making. There's great work,
494
00:33:05.320 --> 00:33:06.679
at ashana.com
495
00:33:06.679 --> 00:33:14.200
about this, but that's What's that? Area improvement. How do you spell that? I shaana,
496
00:33:14.200 --> 00:33:14.700
ashana
497
00:33:15.159 --> 00:33:15.659
Com.
498
00:33:16.279 --> 00:33:16.940
Got it.
499
00:33:18.045 --> 00:33:20.225
I mean, part of that gets kinda solved
500
00:33:20.605 --> 00:33:27.505
if the more wallets that add pay joint support. Right? Because that fingerprint is what wallet was used to construct the transaction.
501
00:33:28.045 --> 00:33:29.505
So if that wallet was
502
00:33:30.285 --> 00:33:37.370
has pay joint support, then it kinda solves that. And if all these things are plugged together in a big graph, it's very difficult
503
00:33:37.670 --> 00:33:40.410
to find the cluster, the edge of the cluster. Yeah.
504
00:33:40.710 --> 00:33:42.810
But, like, in a in a real world
505
00:33:43.270 --> 00:33:43.770
scenario,
506
00:33:44.310 --> 00:33:51.745
like, I think most Bitcoiners in our bubble don't realize that the number one self custody in wallet in the world by far is Trust Wallet by Binance,
507
00:33:52.365 --> 00:33:58.945
which is an absolutely horrible Bitcoin wallet, but supports Tron and Solana and everything else. So many people use it.
508
00:34:01.230 --> 00:34:10.530
And for instance, they probably have I mean, I don't know. I'm speaking out of my ass, but my guess is that they have a relatively obvious fingerprint when you do a trust wallet transaction.
509
00:34:10.990 --> 00:34:14.450
I mean, for starters, I think they just reuse addresses. But
510
00:34:16.585 --> 00:34:20.605
so if you were a user of that, then you're not getting any of the passive PayJoin
511
00:34:21.065 --> 00:34:28.365
privacy benefits because it's very obvious you're sending from Trust Wallet. So in that situation, you're clearly not using PayJoin. Right?
512
00:34:31.710 --> 00:34:32.210
Yeah.
513
00:34:33.230 --> 00:34:33.730
You're
514
00:34:34.750 --> 00:34:38.210
probably you're probably stuck with it. There is a limit to
515
00:34:39.630 --> 00:34:44.615
how effective pay join can be. If you're if you're using the same address every time, even if you're
516
00:34:46.115 --> 00:34:49.655
involved, you're not gonna be helped. There is basic hygiene
517
00:34:50.275 --> 00:34:51.175
we need to
518
00:34:51.555 --> 00:34:52.055
promote
519
00:34:52.915 --> 00:34:53.895
at, you know,
520
00:34:55.475 --> 00:34:58.600
devs and promoters in the space that people clean
521
00:34:59.700 --> 00:35:00.360
up. So,
522
00:35:01.780 --> 00:35:03.080
if I recall correctly,
523
00:35:03.540 --> 00:35:05.320
there was a pay join
524
00:35:06.820 --> 00:35:07.320
implementation
525
00:35:08.500 --> 00:35:10.440
that might still exist, that was pushed,
526
00:35:11.415 --> 00:35:14.715
that was that was implemented by BTCPay server
527
00:35:15.015 --> 00:35:16.955
that I think Kooks was,
528
00:35:19.175 --> 00:35:20.475
the maintainer of.
529
00:35:20.855 --> 00:35:23.355
And they had, like, this concept of
530
00:35:23.895 --> 00:35:25.675
I think he called it, like, a snowball
531
00:35:26.420 --> 00:35:28.680
where, like, the idea was that if you're the receiver,
532
00:35:29.300 --> 00:35:31.080
you could get fee savings
533
00:35:31.460 --> 00:35:32.200
by using
534
00:35:33.780 --> 00:35:37.400
transactions where you're receiving, let's say, you're a merchant and you could,
535
00:35:38.580 --> 00:35:43.984
basically, consolidate UTXOs because the number one fee burden for transactions is
536
00:35:44.365 --> 00:36:01.620
how many UTXOs you have on the input side. So ideally, if you care about fees, you want to consolidate UTXOs. But if you consolidate UTXOs, you have privacy loss. So why not use PayJoin to do that process for you so you don't have privacy loss, but you do have consolidation so you have fee savings?
537
00:36:03.680 --> 00:36:05.300
What is your opinion on that?
538
00:36:05.760 --> 00:36:17.225
That sounds great. All of this PayJoin dev kit is built on the foundation that Kooks and Nicholas and the contributors to BIP 78 page join version one worked on. So it's totally backwards compatible
539
00:36:17.845 --> 00:36:18.505
with that.
540
00:36:20.245 --> 00:36:30.900
That protocol is limited because of the liveness assumption. It requires sender and receiver to be online at the same time. But for someone like a merchant, it's it still works. You lose a little bit on the metadata protection,
541
00:36:31.840 --> 00:36:32.980
but it still works.
542
00:36:33.360 --> 00:36:42.075
Yeah. That was my next question. Like, isn't it a heuristic itself, the snowballing? Like, isn't that kinda obvious on chain that that that's what you're doing and it's a pay join?
543
00:36:42.474 --> 00:36:42.974
It
544
00:36:43.275 --> 00:36:46.175
is, but it's no different really than if you're
545
00:36:46.555 --> 00:36:58.369
making a peel chain by sending a small amount and receiving change and sending a small amount on that change the same direction. The way you get by that is by, batching some outputs or making some intermediate transactions.
546
00:36:59.630 --> 00:37:00.369
But still,
547
00:37:02.510 --> 00:37:04.050
even if you have this snowball,
548
00:37:04.430 --> 00:37:06.210
all of the inputs to that transaction
549
00:37:06.750 --> 00:37:10.050
might not necessarily come from the same person, and you might be making
550
00:37:11.795 --> 00:37:12.454
a bigger
551
00:37:13.875 --> 00:37:19.015
change. Maybe there's an amount that maybe there's a pay join out. It's hard to distinguish.
552
00:37:19.635 --> 00:37:24.055
So you don't know if this snowball, the big ball is going as change to the sender
553
00:37:24.369 --> 00:37:31.030
or the receiver. You don't necessarily know the direction. You might be able to make some assumptions about it, but I don't think it says
554
00:37:31.650 --> 00:37:34.630
I don't think that problem is as clear cut to analyze
555
00:37:35.010 --> 00:37:36.310
as some of the naysayers
556
00:37:36.690 --> 00:37:37.349
might think.
557
00:37:38.904 --> 00:37:45.964
It would it would probably have to be more of an active attack rather than, like, a passive attack looking back on the chain. Right? Because you could
558
00:37:46.585 --> 00:37:47.645
you could do, like,
559
00:37:48.184 --> 00:37:56.470
if you're thinking is a merchant using paid join in a Snowball, you can just do some transactions to the merchant, open up their BTC based server,
560
00:37:57.970 --> 00:38:08.230
send some money, see how it flows. But that's obviously completely different than, like, looking back five years on the chain or something. Right? If you're second party to the transaction, if you are the sender, you can see the change.
561
00:38:09.010 --> 00:38:09.405
That's
562
00:38:09.885 --> 00:38:10.865
or you can see
563
00:38:11.405 --> 00:38:13.745
the consolidation between the Yeah. You would know.
564
00:38:14.125 --> 00:38:17.585
Yeah. That is a big issue that needs to be alleviated
565
00:38:18.205 --> 00:38:34.610
and only can really be fixed if we have these multiparty pay joins where there are multiple senders and multiple receivers. Right now, because there's only two people involved, I know what like, if I'm sending money to you, I know what inputs and outputs are mine. You know what inputs and outputs are yours. Until we have another person involved, that's always the case.
566
00:38:35.150 --> 00:38:38.290
I guess there's there is a caveat there, which is if you're the receiver,
567
00:38:38.670 --> 00:38:45.704
you can make outputs that forward money to other people, and I don't necessarily know about that. But I Right. Would not rely on that strictly.
568
00:38:46.565 --> 00:38:47.145
I mean
569
00:38:48.005 --> 00:38:51.545
and you you have this I mean, the big issue there, right, is that
570
00:38:53.550 --> 00:38:57.650
let's just use the merchant example again. Like, if a merchant's doing paid join
571
00:38:59.230 --> 00:39:00.770
and I'm trying to
572
00:39:01.230 --> 00:39:03.250
figure out their transaction graph,
573
00:39:05.085 --> 00:39:06.065
they're disclosing
574
00:39:06.445 --> 00:39:07.585
UTXO ownership
575
00:39:07.965 --> 00:39:17.585
that they might not otherwise to me when they're giving me their input. Right? Like, is there is there, like, almost like a denial of service style? It's not really denial of service, but, like,
576
00:39:19.330 --> 00:39:19.910
input harvesting
577
00:39:20.290 --> 00:39:21.270
kind of information
578
00:39:21.650 --> 00:39:22.150
gathering
579
00:39:23.170 --> 00:39:25.270
attack that could happen there if you're
580
00:39:25.970 --> 00:39:31.975
pulling Yeah. This is the inputs from the target. Probing attack in the literature. It's a probing attack. So
581
00:39:32.355 --> 00:39:34.035
on payjoindevkit.org,
582
00:39:34.035 --> 00:39:36.775
there's a blog post all about the probing attacks
583
00:39:37.395 --> 00:39:38.295
that have been
584
00:39:38.915 --> 00:39:42.295
discussed since the earliest days of this before even the first spec
585
00:39:42.675 --> 00:39:47.175
by Ryan Hovar came out when he was trying to build a pay join protocol for
586
00:39:47.660 --> 00:39:48.160
bustabit.
587
00:39:48.540 --> 00:39:52.320
This is before HTTP servers, before p s b t's were even a thing.
588
00:39:53.020 --> 00:39:54.640
This was talked about, and
589
00:39:54.940 --> 00:39:58.240
it's mitigated to some extent by the receiver requiring
590
00:39:58.780 --> 00:40:00.560
a payment in order to consolidate.
591
00:40:01.115 --> 00:40:03.775
But, also, the receiver should only be consolidating
592
00:40:05.434 --> 00:40:06.174
what they
593
00:40:06.474 --> 00:40:07.295
are comfortable
594
00:40:07.595 --> 00:40:10.655
consolidating. If I'm gonna pay, BTC pay server
595
00:40:11.355 --> 00:40:11.855
and
596
00:40:12.954 --> 00:40:25.570
they have some input that they never want to consolidate, they don't want their customers to know about. They're just never gonna consolidate that. If they were gonna consolidate it otherwise because they needed to make a big payment later, because they needed to make a big transfer
597
00:40:26.030 --> 00:40:27.890
to an exchange to get some fiat,
598
00:40:28.590 --> 00:40:31.010
that's the type of input you would wanna use anyway.
599
00:40:31.635 --> 00:40:33.255
PayJoin, like I said, it doesn't
600
00:40:34.115 --> 00:40:34.615
make
601
00:40:34.915 --> 00:40:36.135
any requirements
602
00:40:36.475 --> 00:40:36.975
on
603
00:40:37.315 --> 00:40:40.135
coin selection. That's all up to the implementing wallet
604
00:40:40.595 --> 00:40:41.095
and
605
00:40:42.595 --> 00:40:43.095
is
606
00:40:43.395 --> 00:40:44.935
a problem to be solved
607
00:40:45.320 --> 00:40:51.180
unto itself. We've got a research team working on these problems too, but they're a little bit outside of the scope of
608
00:40:51.480 --> 00:40:53.580
the pay join coordination itself.
609
00:40:55.800 --> 00:40:56.940
So when you say
610
00:40:57.320 --> 00:41:07.345
require payment, the whole idea there is you you're putting a a cost to the attack. Right? So, like, they're gonna have to send you Bitcoin, and so they keep doing the attack to try know.
611
00:41:09.164 --> 00:41:11.184
Did you really lose me? I still have you.
612
00:41:14.010 --> 00:41:15.070
You don't have me?
613
00:41:19.050 --> 00:41:20.270
I still have you.
614
00:41:21.210 --> 00:41:24.910
I wish there was a way to post this to the live chat, the probing attacks paper,
615
00:41:25.850 --> 00:41:33.204
because we just came up with this. Can you There's a big Can you not hear me? Can you not hear me? Kit.org.
616
00:41:33.984 --> 00:41:34.805
Let's see.
617
00:41:39.585 --> 00:41:41.365
Yeah. I think I lost Dan.
618
00:41:41.930 --> 00:41:45.310
Live chat. Do you see me or Dan or both of us?
619
00:41:49.210 --> 00:41:49.710
Leave
620
00:41:50.090 --> 00:41:50.590
and
621
00:41:51.290 --> 00:41:52.510
come back.
622
00:42:00.945 --> 00:42:02.484
Live chat. Do you still have me?
623
00:42:04.385 --> 00:42:10.590
We got Mav twenty one zapped 10,000 sats. We have Lido zapped 2,100
624
00:42:10.590 --> 00:42:13.390
sats. We have chief white zapped 4,200
625
00:42:13.390 --> 00:42:17.230
sats, and Madaroo zapped 1,111
626
00:42:17.230 --> 00:42:17.730
sats.
627
00:42:18.430 --> 00:42:20.770
We have space bear saying we see both.
628
00:42:21.550 --> 00:42:25.730
I just thought I heard Dan rejoin, but I do not see him.
629
00:42:28.244 --> 00:42:29.865
Let's see if he's texting me.
630
00:42:36.724 --> 00:42:37.224
You
631
00:42:37.685 --> 00:42:38.185
lost
632
00:42:38.565 --> 00:42:39.065
me.
633
00:42:44.980 --> 00:42:45.480
Rejoin.
634
00:42:53.540 --> 00:42:54.760
Okay. He rejoined.
635
00:42:55.300 --> 00:42:56.119
Let's see.
636
00:42:56.515 --> 00:42:57.895
Dan, can you hear me?
637
00:43:02.195 --> 00:43:06.215
Test? I see your Internet is, like, trash. And, oh, I hear you now.
638
00:43:10.690 --> 00:43:14.710
I think it was your side, but who the hell knows? They're trying to stop the signal.
639
00:43:16.370 --> 00:43:17.010
Yeah. We can't
640
00:43:19.650 --> 00:43:20.550
I don't remember
641
00:43:21.170 --> 00:43:22.550
what we were talking about.
642
00:43:24.145 --> 00:43:25.765
Probing attacks, mitigations.
643
00:43:26.065 --> 00:43:36.405
Yeah. This problem has been around for years. It's mitigated. Basically, you require a government to receive money, and you always have that fallback broadcast. So there's a cost to you. There's a cost to it. Yes.
644
00:43:37.660 --> 00:43:38.160
Yeah.
645
00:43:38.780 --> 00:43:41.920
So that they'll run out of Bitcoin eventually if they're trying to
646
00:43:42.540 --> 00:43:43.680
figure out your
647
00:43:44.540 --> 00:43:45.040
UTXOs.
648
00:43:47.980 --> 00:43:51.440
Yeah. And if they try to make the same request, if they have this Yeah.
649
00:43:52.535 --> 00:43:56.815
Name puts you ban them. You just say, I'm not gonna I'm not gonna page one with you. Right.
650
00:43:57.255 --> 00:43:57.755
Money.
651
00:44:00.935 --> 00:44:04.555
Oh, because you have the fallback, so you can just just take the take the money.
652
00:44:09.760 --> 00:44:11.140
You mentioned multiparty
653
00:44:12.800 --> 00:44:13.700
input side
654
00:44:14.560 --> 00:44:15.060
transactions.
655
00:44:15.760 --> 00:44:21.380
Where do we stand on that? Was that a is that a six month problem? Is that a year long problem?
656
00:44:22.185 --> 00:44:22.685
When
657
00:44:23.225 --> 00:44:24.365
when when release?
658
00:44:27.465 --> 00:44:29.905
So it's launched. We just launched one that lets you do multis
659
00:44:30.345 --> 00:44:31.165
one receiver.
660
00:44:32.505 --> 00:44:33.485
It's in
661
00:44:34.505 --> 00:44:36.150
page one o dot 23.
662
00:44:36.630 --> 00:44:37.289
It's on,
663
00:44:37.910 --> 00:44:38.970
but you can use it.
664
00:44:41.510 --> 00:44:42.089
In terms
665
00:44:43.670 --> 00:44:47.450
of multiple receivers interacting, this is for, like, a year or two.
666
00:44:48.309 --> 00:44:49.049
It depends.
667
00:44:49.349 --> 00:44:50.250
So right now,
668
00:44:50.950 --> 00:44:51.609
in terms
669
00:44:53.725 --> 00:44:54.625
of implementations,
670
00:44:55.485 --> 00:44:56.625
we can be take
671
00:44:58.125 --> 00:44:59.505
off the shelf and integrated.
672
00:44:59.885 --> 00:45:06.625
But to have all the testing and make the thing work really well, it takes engineers on both teams, on our team and on the to do.
673
00:45:11.610 --> 00:45:14.810
We've got research too. I'm not sure. I'm losing connection again. Let me
674
00:45:16.730 --> 00:45:19.310
We can kinda hear you. You cut in and out a little bit.
675
00:45:32.975 --> 00:45:34.275
Yeah. They actually,
676
00:45:35.295 --> 00:45:36.755
they're where this
677
00:45:39.210 --> 00:45:40.170
It requires Do you sound
678
00:45:40.730 --> 00:45:42.030
the trickiest part.
679
00:45:46.170 --> 00:45:47.710
Try turning off your camera.
680
00:45:54.005 --> 00:45:55.865
You're all popcorn y for us.
681
00:45:58.325 --> 00:45:59.704
Well, it was a great rip.
682
00:46:03.525 --> 00:46:04.984
I think we lost him again.
683
00:46:10.990 --> 00:46:12.290
We've lost him again.
684
00:46:12.590 --> 00:46:13.570
What's up, freaks?
685
00:46:14.990 --> 00:46:18.770
You have any questions for me while we're waiting for Dan to come back in?
686
00:46:20.030 --> 00:46:21.490
Lightning q and a.
687
00:46:22.255 --> 00:46:23.395
Oh, here comes Dan.
688
00:46:25.215 --> 00:46:33.555
You told me Adam back for fifteen minutes, so I figured I'd just play with my network connection and see what I could get away with. You look clear as day now. Did you change something?
689
00:46:34.015 --> 00:46:35.555
Yeah. Change networks.
690
00:46:36.520 --> 00:46:38.940
Oh, there we go. Okay. We're back.
691
00:46:39.400 --> 00:46:40.860
Back in business, freaks.
692
00:46:42.120 --> 00:46:43.980
But we were talking about multi party.
693
00:46:45.080 --> 00:46:47.980
You said we have it under an experimental flag.
694
00:46:48.765 --> 00:47:00.704
Basically, the bottleneck is we have to you have to work you guys have to do work on your side, but then also the implementers have to do it on their side. So there's, yeah, there's there's two things that page one dev kit is working on mainly. We're doing
695
00:47:01.480 --> 00:47:05.660
Page one integrations. Like, we have to get this thing out into the world, and we have research.
696
00:47:06.600 --> 00:47:07.100
And
697
00:47:07.800 --> 00:47:08.460
right now,
698
00:47:09.160 --> 00:47:11.500
almost all of our research effort
699
00:47:11.800 --> 00:47:13.980
has been shifted over to implementation
700
00:47:14.440 --> 00:47:14.940
because
701
00:47:15.295 --> 00:47:18.435
it doesn't make sense for us to come out with this v two protocol and then just immediately
702
00:47:18.815 --> 00:47:26.835
work on, this async protocol and immediately work on the multiparty protocol, then nothing ever gets done. We have to actually prove this stuff works. So we got in Bull Bitcoin.
703
00:47:27.215 --> 00:47:30.195
We've made some proof of concept for Bolts and Liana.
704
00:47:31.530 --> 00:47:34.270
Like, we've shown this stuff works, but we need
705
00:47:34.730 --> 00:47:35.870
it's a big effort
706
00:47:36.650 --> 00:47:39.790
to get this stuff working with wallets in a way that someone
707
00:47:40.650 --> 00:47:43.070
is comfortable putting big money through.
708
00:47:43.450 --> 00:47:46.185
We've got QA now. We've got a person that's just
709
00:47:46.905 --> 00:47:48.365
shout out Ben Allen
710
00:47:48.825 --> 00:47:52.045
for chomping away at the bit there, just making sure stuff works.
711
00:47:53.065 --> 00:48:06.930
As we roll those out, we'll be able to focus more on both the multi party protocol and then the development in the kit so that anyone that's already in integrated this integrated page one dev kit can just flip a switch basically and turn on
712
00:48:07.310 --> 00:48:07.810
multiparty.
713
00:48:08.750 --> 00:48:09.650
But right now,
714
00:48:11.390 --> 00:48:13.490
yeah, we're doing the we're doing the integrations,
715
00:48:13.869 --> 00:48:16.530
and we have more people asking for the integrations
716
00:48:17.315 --> 00:48:18.695
then we can
717
00:48:19.155 --> 00:48:21.575
build quickly. That is the the biggest bottleneck.
718
00:48:22.595 --> 00:48:30.295
Got it. Okay. That makes sense. And how I didn't ask you. How is the communication handle? Is there, like, a coordination server or something? Does
719
00:48:30.950 --> 00:48:33.050
does the exchange run the coordination?
720
00:48:33.430 --> 00:48:35.050
How does that work? There's
721
00:48:35.510 --> 00:48:42.410
two servers involved. We use something called oblivious HTTP. So the async pay join spec, like I said, has these mailboxes,
722
00:48:42.965 --> 00:48:47.225
and anyone can run a directory server that has that hosts the mailboxes.
723
00:48:48.485 --> 00:48:58.265
Right now, page join dev kit hosts one, and we just came up with a way for anyone to host one to be reachable by these oblivious HTTP relays. So
724
00:48:58.720 --> 00:49:00.420
why are we using oblivious HTTP?
725
00:49:00.880 --> 00:49:04.020
Because the directory shouldn't need to know about your IP address.
726
00:49:05.200 --> 00:49:07.220
To do that, oblivious HTTP
727
00:49:08.080 --> 00:49:12.260
enforces that there's a proxy in the middle that's one of these relay servers.
728
00:49:13.464 --> 00:49:20.445
And up till this point, those have mostly been the wallet service providers. Because if you're a wallet, you probably already know your user's IP.
729
00:49:20.984 --> 00:49:28.680
You may not. Some of them, like, cake really let you dial in all the you can have your own Electrum server. You can have your own node, but not everyone does that. Sparrow
730
00:49:28.980 --> 00:49:31.720
refuses, like, Craig Raul will never run a server.
731
00:49:32.580 --> 00:49:34.120
Yeah. Yeah. So
732
00:49:35.060 --> 00:49:46.954
you can just plug in either one of these standard servers as your configuration. Well, your the oblivious HTTP servers are really the configuration. You choose who you wanna proxy to, and you can reach a directory which is defined by the receiver.
733
00:49:47.335 --> 00:49:53.515
The the the receiver says, I'm listening at this mailbox. Talk to me here. And you communicate to that through one of these proxies
734
00:49:53.815 --> 00:49:54.315
using
735
00:49:54.695 --> 00:49:56.474
o HTTP, oblivious HTTP.
736
00:49:58.270 --> 00:49:59.569
Got it.
737
00:50:00.589 --> 00:50:09.730
That makes sense. It's a web standard. Apple uses it for their private relay, so that's really where it came from. It's this it's a standard that is becoming
738
00:50:10.464 --> 00:50:13.765
ubiquitous. I mean, even it's in Firefox for oblivious HTTP,
739
00:50:16.305 --> 00:50:18.325
like, DNS over oblivious HTTP.
740
00:50:18.944 --> 00:50:23.185
It's getting all over the place. And for the end user, like, 99%
741
00:50:23.185 --> 00:50:24.885
of end users will have no idea
742
00:50:25.190 --> 00:50:31.370
that this is really how this is working in the background. That's the whole point. Yeah. Scanning a deposit address and
743
00:50:31.990 --> 00:50:32.890
pressing send.
744
00:50:33.190 --> 00:50:38.010
Yeah. It's like two hop tour. So if that directory server and the relay colluded,
745
00:50:38.630 --> 00:50:40.725
then they could match the IP address
746
00:50:41.285 --> 00:50:42.425
to the two people
747
00:50:42.725 --> 00:50:43.225
communicating.
748
00:50:43.605 --> 00:50:57.000
But, otherwise, the directory just knows it's talking to proxies, and clients just know they're talking to proxies in one directory server. They never learn each other's IP addresses, and the directory server doesn't have enough information to know that two IP addresses are talking to each other.
749
00:50:57.700 --> 00:51:00.520
And if the user wanted extra protection, they could
750
00:51:01.220 --> 00:51:04.119
use a VPN as well or a Tor. Yeah.
751
00:51:05.220 --> 00:51:07.640
Yeah. Okay. That'll make sense to me.
752
00:51:08.495 --> 00:51:16.435
It's all about raising the bar on the default. That's everything we're doing is about making the default way, the convenient way, have a minimum
753
00:51:16.975 --> 00:51:17.475
privacy.
754
00:51:18.415 --> 00:51:18.915
Right.
755
00:51:20.255 --> 00:51:22.835
What do you say to the user that maybe
756
00:51:25.640 --> 00:51:27.420
for privacy reasons only
757
00:51:27.960 --> 00:51:28.780
pays merchants
758
00:51:29.240 --> 00:51:30.940
or deposits to exchanges
759
00:51:31.240 --> 00:51:32.059
using Lightning?
760
00:51:34.440 --> 00:51:37.660
Should they keep doing that? Should they switch to pay join if their
761
00:51:37.965 --> 00:51:44.705
merchant or service supports it? How do you think about that? Doing that? It depends. Are they this is someone that's not interested in self custody?
762
00:51:47.885 --> 00:51:49.985
Why? Because you can't self custody lightning.
763
00:51:50.690 --> 00:51:57.349
Well, the thing is if you're doing lightning self custody, you probably need to move coins around from time to time. And in those cases,
764
00:51:58.049 --> 00:52:09.224
you can use pay join with the lender. Yeah. They solve different problems. I think they're Yeah. Compatible. That's everything we've built has been as a building block too. So PayJoin plugs into the existing infrastructure.
765
00:52:09.684 --> 00:52:11.785
It doesn't try to push people out of the way.
766
00:52:12.404 --> 00:52:16.825
It makes the lightning network Got it. Have more privacy because the
767
00:52:18.710 --> 00:52:20.089
analysis of the blockchain
768
00:52:20.470 --> 00:52:26.010
gives you even less data into what's going on on the Lightning Network if Page one is being used,
769
00:52:26.470 --> 00:52:29.290
if fewer assumptions can be made about what,
770
00:52:30.595 --> 00:52:31.635
what channels have
771
00:52:32.595 --> 00:52:34.455
what channels are related to what clusters.
772
00:52:38.195 --> 00:52:38.695
Right.
773
00:52:39.235 --> 00:52:43.415
Would you consider is so a lightning channel open is
774
00:52:44.000 --> 00:52:47.059
a two of two multisig between you and your channel party,
775
00:52:49.680 --> 00:52:50.500
where both
776
00:52:51.760 --> 00:53:03.175
both both parties are providing inputs to the transaction. Do you consider that already a pay join, or is that just like a semantic thing? I I think it's a semantic thing, but I don't think it hurts to think about it as a pay join. It definitely breaks
777
00:53:03.715 --> 00:53:05.015
the common input heuristic.
778
00:53:05.395 --> 00:53:05.895
Well,
779
00:53:07.555 --> 00:53:09.475
not really. Not really. Right? It's like those
780
00:53:10.035 --> 00:53:18.050
it's like two person common in Yeah. I guess the output puristic. It's like those two people have the same But the output of the channel when you close the channel, you don't know which
781
00:53:18.350 --> 00:53:21.410
output that's made came Is who. Who. Exactly.
782
00:53:21.790 --> 00:53:22.290
Yeah.
783
00:53:22.830 --> 00:53:25.090
So it does break it in that way. Yeah.
784
00:53:27.095 --> 00:53:32.234
Yeah. Like, unless you're doing active surveillance on the lightning channel Which I the best. I think it
785
00:53:33.095 --> 00:53:34.154
is is Group probing.
786
00:53:34.535 --> 00:53:39.115
Assuming that that's being done if you want any privacy guarantees. But probably isn't.
787
00:53:40.530 --> 00:53:49.110
You should assume it, but it probably isn't for most people's channels. In the inputs, you know who's participating in the channel because that's all broadcast information. Right?
788
00:53:50.610 --> 00:53:51.110
Right.
789
00:53:52.770 --> 00:53:54.530
But you don't necessarily know
790
00:53:55.745 --> 00:53:59.125
unless you're actively probing, you don't know. Balances of the channel?
791
00:53:59.985 --> 00:54:03.365
The yeah. The active balance. Yeah. That's a good point. So that that
792
00:54:03.745 --> 00:54:04.245
helps
793
00:54:05.025 --> 00:54:09.925
create that ambiguity between which inputs and outputs are connected at the end of the channel close.
794
00:54:12.359 --> 00:54:14.140
Area so I guess to the
795
00:54:14.440 --> 00:54:18.540
the next part of that question is, like, there's probably a scenario where we could have multiparty,
796
00:54:20.280 --> 00:54:24.045
like, more than two people pay joins for channel opens for Lightning too.
797
00:54:24.605 --> 00:54:32.785
Right? Yeah. Absolutely. And I think even before we get to that, there's something in terms of convenience that is a reason you might wanna use pay join. So, like,
798
00:54:33.244 --> 00:54:37.984
I'm funding a lightning channel for the first time. I have some coins on a non lightning
799
00:54:38.910 --> 00:54:40.849
wallet, I wanna put them into the,
800
00:54:41.869 --> 00:54:43.730
node with a wallet to open channels,
801
00:54:44.510 --> 00:54:59.325
I would typically have to communicate using the chain, which is annoying and leaves a fingerprint where I'd send my funds into the lightning nodes single sig wallet, and and then I would create a multiparty channel. But instead, if the two wallets can talk to each other,
802
00:55:01.385 --> 00:55:03.405
I can just send a fallback
803
00:55:03.785 --> 00:55:10.780
message to my node saying, hey. I wanna send you money. Do you wanna open any channels? And you manage both sides, so you're just gonna say, yeah. Open a channel.
804
00:55:11.080 --> 00:55:11.740
That's gonna
805
00:55:12.760 --> 00:55:18.700
construct the transaction that actually opens the channel, put it back to your wallet, say it's an exchange that supports PayJoin.
806
00:55:19.560 --> 00:55:22.380
They'll still sign because it's the same amount of money, and it's authenticated
807
00:55:22.760 --> 00:55:23.660
by the receiver.
808
00:55:24.075 --> 00:55:25.214
And then that one
809
00:55:25.915 --> 00:55:34.095
transaction funded from an external wallet can fund your channels, and it could even splice in perhaps. It it's really just a matter of sending messages
810
00:55:34.474 --> 00:55:40.780
back and forth. Adding that little bit of interaction where we can lets us build all sorts of these cut through transactions.
811
00:55:41.720 --> 00:55:45.980
Another one, like, we just proved was possible was with the Liana
812
00:55:46.520 --> 00:55:47.020
inheritance
813
00:55:47.400 --> 00:55:51.660
refresh. Do you mind if I talk about that a little bit? Let's go for it. Yeah. So
814
00:55:52.200 --> 00:55:52.700
Liana
815
00:55:54.135 --> 00:55:54.955
has this
816
00:55:55.975 --> 00:55:56.475
degrading
817
00:55:57.655 --> 00:55:58.475
time lock.
818
00:55:58.775 --> 00:55:59.655
And after the
819
00:56:00.215 --> 00:56:02.315
so your coins are in this
820
00:56:03.575 --> 00:56:07.675
in this time lock where after, say, ten years pass, then someone else
821
00:56:08.150 --> 00:56:09.610
can spend your coins.
822
00:56:10.550 --> 00:56:18.010
And the reason you would want this is, say, you die. Like, you want someone to be able to recover your coins, but you need to consistently refresh that,
823
00:56:18.950 --> 00:56:28.485
especially if you wanted someone to have the access access to the money sooner, say, like, within six months if they wanted to, you know if they had some payments to make to clean up your estate.
824
00:56:30.145 --> 00:56:33.765
So when you receive a pay join to one of these wallets,
825
00:56:35.710 --> 00:56:36.370
it can
826
00:56:36.750 --> 00:56:38.770
say, don't just create a new coin
827
00:56:39.150 --> 00:56:40.130
with this policy.
828
00:56:40.990 --> 00:56:47.010
It can spend all of the coins or some of the coins that have this policy and refresh the time lock in the same transaction
829
00:56:47.390 --> 00:56:49.755
that it receives from an outside wallet.
830
00:56:50.215 --> 00:56:56.395
So this is less privacy focused until all of this stuff is tappered and difficult to see the policies.
831
00:56:57.255 --> 00:56:58.875
But still, we at least
832
00:56:59.175 --> 00:57:03.275
that, that refresh can be an automatic user experience where every time
833
00:57:03.789 --> 00:57:04.849
that user wants
834
00:57:06.029 --> 00:57:07.410
to increase their stack,
835
00:57:08.829 --> 00:57:12.769
they're refreshing their time lock at the same time so they don't have to worry as much.
836
00:57:15.835 --> 00:57:16.655
Every time
837
00:57:17.875 --> 00:57:18.375
I'm
838
00:57:19.595 --> 00:57:24.575
adding DCA to my cold storage or whatever, it would refresh my time lock, which in Yeah.
839
00:57:25.035 --> 00:57:27.935
Otherwise, it wouldn't. Otherwise, you'd have to send another transaction.
840
00:57:28.715 --> 00:57:29.215
Right.
841
00:57:30.240 --> 00:57:31.060
That makes sense.
842
00:57:31.760 --> 00:57:36.260
And so specifically to the, I mean, I don't know how you made it this far, but
843
00:57:36.720 --> 00:57:40.660
to the, to the, to the freaks that are listening that maybe are a little bit confused
844
00:57:41.280 --> 00:57:42.580
about that Liana,
845
00:57:43.200 --> 00:57:48.475
example is it's using mini script and time locks, and you have to constantly refresh it. And the whole idea
846
00:57:49.195 --> 00:57:52.175
and just correct me if I'm wrong. The whole idea there is
847
00:57:52.475 --> 00:57:53.935
when that time lock ends,
848
00:57:54.395 --> 00:58:00.895
it goes from, like, a multi sig to a single sig, and so you can use it in, like, an inheritance type of situation where
849
00:58:01.490 --> 00:58:04.069
your air only has access to the single SIG.
850
00:58:05.010 --> 00:58:12.710
And so that your air can't rug you unless you stop refreshing your time lock because otherwise your air is in your threat model. Right?
851
00:58:13.475 --> 00:58:15.875
Yeah. Shout out to Armin Saburi and,
852
00:58:17.075 --> 00:58:22.215
Arthur for getting this out last weekend. They did this in the weekend. I have no idea. I don't know. It was nuts.
853
00:58:22.915 --> 00:58:24.595
I think I'm going to have,
854
00:58:25.900 --> 00:58:27.520
Rob Hamilton on the show
855
00:58:27.820 --> 00:58:31.920
in the coming weeks. Who's, one of the preeminent manuscript influencers,
856
00:58:33.340 --> 00:58:43.025
and cofounder of Anchor Watch, which has their Trident wallet. And I think, I mean, do you know, are there any other mini script wallets between Trident and Liana? Are those the two?
857
00:58:43.805 --> 00:58:48.945
I don't know. I know you keep pushing Rob to open source his stuff and he's really missing out.
858
00:58:49.325 --> 00:58:53.665
If he was open source, we would have done it on anchor watch. This would have already been done.
859
00:58:54.030 --> 00:58:56.530
So you heard it you heard it at the MIT,
860
00:58:57.230 --> 00:58:59.170
Bitcoin Expo in person,
861
00:59:00.670 --> 00:59:03.570
me pressuring him. What'd you think of MIT?
862
00:59:04.670 --> 00:59:07.730
That was I've been to those expos since I think 2018,
863
00:59:08.265 --> 00:59:11.404
and that was the best one. I think partnering with HRF
864
00:59:12.105 --> 00:59:13.565
to make it about FreedomTech
865
00:59:14.424 --> 00:59:18.204
completely changed the vibe, the content, people that were there.
866
00:59:19.145 --> 00:59:21.085
I I really enjoyed doing the hackathon.
867
00:59:22.530 --> 00:59:24.150
I liked when Roger
868
00:59:24.770 --> 00:59:27.350
Zingledine talked about Tor and how
869
00:59:27.650 --> 00:59:30.310
he communicates with the larger world about how,
870
00:59:30.850 --> 00:59:32.870
this is a necessary piece of infrastructure.
871
00:59:33.810 --> 00:59:38.414
Yeah. Overwhelmingly positive. I was really stoked to have that happen.
872
00:59:38.875 --> 00:59:40.095
Yeah. I was gonna say HRF
873
00:59:40.954 --> 00:59:41.454
HRF
874
00:59:41.755 --> 00:59:47.295
being the signaling mech it was HRF to me being involved was a signaling mechanism that it was gonna be,
875
00:59:47.595 --> 00:59:50.520
more high signal and worth my time coming out for it.
876
00:59:51.480 --> 01:00:06.625
And I, I couldn't agree more. I, and I mean, the, the currency initiative too. Like that's been around for a while churning research out at the same time. But in the past, in the past has been more like crypto blockchain stuff. Right. And, like, this time was, more focused on Bitcoin.
877
01:00:07.805 --> 01:00:08.305
Definitely.
878
01:00:09.005 --> 01:00:13.025
People showing me Flexa and Algorand last time I was there, I think. Yeah.
879
01:00:13.485 --> 01:00:13.805
I,
880
01:00:15.085 --> 01:00:18.865
yeah, it was a high signal group that were there. I mean, I was,
881
01:00:21.530 --> 01:00:38.595
fanboying a little bit on some of the Bitcoin I won't name names, but some of the Bitcoin developers that were there. When I saw you on stage, you were like, oh, man. I'm getting imposter syndrome speaking at MIT. What? Is so cool? Well, my mom was watching the live stream. I was I almost said, look, ma, I made it to MIT,
882
01:00:39.455 --> 01:00:44.755
because there's no shot. There's no shot I would've gotten in, when I was applying for colleges. So,
883
01:00:45.970 --> 01:00:49.030
it definitely definitely felt that way. It felt a little bit unreal.
884
01:00:49.890 --> 01:00:52.950
You know, the back the background for my,
885
01:00:54.050 --> 01:00:56.070
calling out Rob for the open source
886
01:00:56.770 --> 01:01:01.455
was I was making my deck, and I was gonna put a slide in there about
887
01:01:02.235 --> 01:01:04.415
how there's this beautiful, sustainable
888
01:01:05.755 --> 01:01:12.395
method of maintaining open source software, where you have a company like Anchor Watch, and then they have their open source,
889
01:01:13.850 --> 01:01:18.670
software stack Trident wallet that's available to the world, but then they monetize it through Lloyd's of London
890
01:01:18.970 --> 01:01:19.470
insurance.
891
01:01:20.330 --> 01:01:29.435
And, and there's, you know, it's, it's, it's beautiful because you don't have to rely on grant funding or anything else. And I'm like searching around for their license for Trident wallet.
892
01:01:29.815 --> 01:01:33.835
And I'm like, oh, this is not open source. This is just scratched it from the deck.
893
01:01:34.535 --> 01:01:38.455
But yeah, one day I think it's just an order operations thing. I think they intend to,
894
01:01:39.895 --> 01:01:41.310
fully open source it.
895
01:01:42.030 --> 01:01:45.330
Yeah. And that brings up something else, which is, like,
896
01:01:45.870 --> 01:01:52.290
why we're operating as a dev kit like BDK or Yeah. Lightning dev kit that's grant funded. I think
897
01:01:53.310 --> 01:01:55.970
we've seen that the sort of privacy wallet
898
01:01:56.655 --> 01:01:57.155
idea
899
01:01:58.095 --> 01:01:58.595
is
900
01:01:59.135 --> 01:02:00.195
dead as
901
01:02:00.815 --> 01:02:15.590
a funding source. It's too high risk and there's also this problem where all these shortcuts are made to get a product out that Right. Has military grade encryption or whatever. You just say whatever you need to secure a bag, and the incentives are not aligned to actually serve
902
01:02:16.210 --> 01:02:16.710
the
903
01:02:17.330 --> 01:02:32.065
users to bring the privacy up. And we get at these local maxima too where it's like, okay. I have the monopoly business. I'll focus on telling everyone that my thing is the best instead of fixing any further problems. Cause there's just no incentive for me to do that. And I think that's changing, which is welcome, but it's difficult.
904
01:02:33.325 --> 01:02:33.885
Yeah. I,
905
01:02:36.880 --> 01:02:43.060
yeah. I mean, we kinda saw that with both Wasabi and Samara last cycle where they're like, we've solved Bitcoin privacy.
906
01:02:43.920 --> 01:02:50.900
And it was not solved. Like, I didn't recommend that stuff to people. I wasn't like, yeah. Go use that because there's too many ways it can go wrong.
907
01:02:51.675 --> 01:02:54.175
HRF can't tell people, like, go and use
908
01:02:54.475 --> 01:02:58.575
Whirlpool. You'll be safe for sure. It's like, no. Not the case. No.
909
01:02:58.875 --> 01:03:01.455
The bigger issue is is the regulatory
910
01:03:01.835 --> 01:03:03.915
exposure of taking a cut of
911
01:03:05.780 --> 01:03:09.080
even if you're not taking custody, taking a cut of the flow of transactions
912
01:03:09.619 --> 01:03:11.880
seems to be where a lot of
913
01:03:12.500 --> 01:03:13.960
the regulatory targets
914
01:03:14.260 --> 01:03:15.480
come from. From their perspective,
915
01:03:15.780 --> 01:03:18.119
I think so. I don't know if that's actually the
916
01:03:18.740 --> 01:03:20.680
legal circumstance, but I think
917
01:03:21.225 --> 01:03:26.205
that's where the regulator gets upset because they're like, you're a person. You're making money. You shouldn't be doing this.
918
01:03:26.665 --> 01:03:31.645
Yeah. Like, clearly, you're involved because you're making money from people using the
919
01:03:31.945 --> 01:03:32.445
tool.
920
01:03:32.825 --> 01:03:39.190
Yeah. But, like, signal people are involved using signal, and we don't, like, they're not going to jail for But it's donation based.
921
01:03:41.170 --> 01:03:44.230
It's value for value. You can use it for free. WhatsApp then?
922
01:03:44.530 --> 01:03:47.030
WhatsApp has encrypted messaging. Is just spyware.
923
01:03:47.490 --> 01:03:52.485
Yeah. I mean, they're fine with that being encrypted. Like we've been able to get to the, they're getting all the metadata
924
01:03:52.785 --> 01:04:01.125
though. They're just getting all the, there, there was a handshake deal that happened there behind the scenes. It was like, yeah. You know, it's if a hunt, if 1,500,000,000
925
01:04:01.425 --> 01:04:07.890
messages are going through WhatsApp, we can let them think it's private. And they also do, like, clear text backups and stuff. Like, that's,
926
01:04:09.810 --> 01:04:17.670
WhatsApp is a dark pattern. Like, I hopefully, we don't emulate WhatsApp. I think signal is I to me, signal is one of these massive wins.
927
01:04:18.705 --> 01:04:20.645
This this successful independent
928
01:04:21.905 --> 01:04:23.125
relatively sustainable
929
01:04:23.425 --> 01:04:26.085
donation funded open source privacy project.
930
01:04:27.745 --> 01:04:32.645
I think it's harder you know, it it helped that there was, you know, a couple billionaires involved
931
01:04:34.000 --> 01:04:40.740
in making sure that it's funded. Yeah. And, I mean, some of them are the same, like I think Dorsey doesn't get enough credit.
932
01:04:41.280 --> 01:04:42.660
He took tech secure
933
01:04:44.000 --> 01:04:44.820
into Twitter
934
01:04:45.625 --> 01:04:49.485
and let them let which was the precursor to signal and then let them
935
01:04:50.025 --> 01:04:51.245
spin out signal
936
01:04:51.625 --> 01:04:56.445
as a nonprofit entity with, without, like, taking any IP or anything.
937
01:04:57.145 --> 01:05:09.790
Like, he, like, birthed it to a degree. Yeah. It takes these live player actions. Encrypted DMs. What? It takes these live player actions. Like, this stuff doesn't just happen because the incentives are set up right. Like, people actually need to make moves.
938
01:05:11.130 --> 01:05:13.550
So I heard you talking to Nifty about this. Yeah.
939
01:05:13.974 --> 01:05:16.474
Yeah. It's tricky. How do you get the model right?
940
01:05:17.494 --> 01:05:19.575
I bet there's no perfect model. It's
941
01:05:19.895 --> 01:05:20.875
I mean, it's,
942
01:05:21.335 --> 01:05:21.994
you know,
943
01:05:22.695 --> 01:05:24.875
the real world is difficult. I
944
01:05:26.799 --> 01:05:34.020
I so I'm curious. So, like, how is how is paid joint dev kit funded right now? What is your current funding situation?
945
01:05:35.520 --> 01:05:36.020
OpenSats.
946
01:05:37.119 --> 01:05:38.420
Shout out, Odell,
947
01:05:39.035 --> 01:05:40.095
and Spiral.
948
01:05:41.195 --> 01:05:42.655
I'm trying to think if we have
949
01:05:44.075 --> 01:05:48.575
income from other play. I think that's the those are the those are the two right now. So it's
950
01:05:49.355 --> 01:05:49.855
individual
951
01:05:50.475 --> 01:05:50.975
grants
952
01:05:51.800 --> 01:05:53.980
for the most part at the moment, but
953
01:05:54.440 --> 01:05:58.060
stay tuned. If you're a business who wants to see this in the world,
954
01:05:58.600 --> 01:06:05.480
get in touch. We'll make an integration happen, and we'll take this to the next level. That's what I'll say for now. So what I think is, like
955
01:06:06.515 --> 01:06:09.635
and that, by the way, that wasn't a setup. There's I like
956
01:06:10.675 --> 01:06:12.875
it's hard for me to keep track of Yeah. Yeah.
957
01:06:13.315 --> 01:06:27.329
Of of who we're actively funding and who we're not. I said to someone the other day, I was like, you know, I'm really proud that we're funding you. He's like, my grant ended, like, four months ago. Like, you guys didn't renew me or whatever. I was like, well, I did you know, I wasn't being I wasn't trying to be a dick.
958
01:06:28.510 --> 01:06:29.010
Because
959
01:06:29.390 --> 01:06:31.809
it's way bigger than me at this point. I mean,
960
01:06:32.190 --> 01:06:32.910
we have,
961
01:06:33.549 --> 01:06:36.289
Gigi himself is just a quiet warrior.
962
01:06:38.755 --> 01:06:46.295
Then we have some part time people there, but then at the end of the day, we have our nine person volunteer board, and then we have a bunch of volunteer committee members that are reviewing stuff.
963
01:06:46.995 --> 01:06:47.955
And it's just,
964
01:06:48.355 --> 01:06:49.975
it's a full time job in itself.
965
01:06:50.515 --> 01:06:57.280
I I gotta give HRF a shout out to Because Human Rights Foundation had this bounty at all last year that They're great. That we
966
01:06:57.980 --> 01:07:00.320
were able to secure with this Bold Bitcoin
967
01:07:00.620 --> 01:07:02.000
integration as a team.
968
01:07:02.300 --> 01:07:05.755
So and they've helped us from the very beginning since, like, 2021,
969
01:07:05.755 --> 01:07:07.535
I got a tiny grant to
970
01:07:07.835 --> 01:07:08.735
work on PayJoin,
971
01:07:09.275 --> 01:07:12.175
and that was before any of the dev kit existed.
972
01:07:13.515 --> 01:07:14.655
Thank you, HRF.
973
01:07:15.915 --> 01:07:16.795
Doing great work. I
974
01:07:19.480 --> 01:07:23.020
and we do a lot of cross, like, co grants with them as well.
975
01:07:23.320 --> 01:07:23.640
I,
976
01:07:24.120 --> 01:07:26.460
where I was going with it, I just got a little bit sidetracked,
977
01:07:27.000 --> 01:07:27.500
is
978
01:07:28.760 --> 01:07:29.420
I think
979
01:07:30.440 --> 01:07:36.615
an interest just talk about business on air. I or not business, open source projects on air. I think,
980
01:07:38.135 --> 01:07:40.315
the model that Cashew is doing
981
01:07:41.255 --> 01:07:47.755
is an interesting model where they spun up and BDK is doing it as well, where they basically spun up their own foundation.
982
01:07:51.200 --> 01:07:53.220
I guess BTC pay server also
983
01:07:53.599 --> 01:07:58.099
Mhmm. Where they spin up their own foundations and then they take grants into that.
984
01:07:58.400 --> 01:08:02.420
And then they take actual independent donations out of that. And then they can pay
985
01:08:03.945 --> 01:08:08.365
all these different open source contributors and they have more focus. Like, they know
986
01:08:08.745 --> 01:08:13.405
it's hard. Like, for instance, it's if if if PayJoint DevKit ends up having
987
01:08:13.705 --> 01:08:20.960
20 contributors that are focused on different aspects of the project, it's really hard for an organization like OpenSats to be able to determine,
988
01:08:22.619 --> 01:08:29.360
you know, where money needs to go and and how how best to place support. But if you have someone like
989
01:08:29.980 --> 01:08:32.239
Cali running the Open Cash
990
01:08:32.855 --> 01:08:35.835
Foundation, I think it's called, but it's called Open Cash.
991
01:08:36.215 --> 01:08:41.915
He knows where the contributors are, where support needs to happen, and you can, like, greater focus
992
01:08:42.375 --> 01:08:46.475
the donate. And I guess that's kinda what signal does too. Signal's probably a little bit more centralized.
993
01:08:48.030 --> 01:08:51.010
We have plans here. Stay tuned. Okay.
994
01:08:51.469 --> 01:08:55.409
Well, if I can be helpful at all, let me know. You already have. Awesome.
995
01:08:58.110 --> 01:08:59.985
I got nothing else. Do you have,
996
01:09:00.605 --> 01:09:03.265
do you have anything else you wanna chat about before we wrap?
997
01:09:05.165 --> 01:09:06.145
This has been great.
998
01:09:07.165 --> 01:09:10.225
This has been really good. Yeah. Thanks for having me on.
999
01:09:11.245 --> 01:09:13.265
I guess oh, yeah. One more thing.
1000
01:09:14.330 --> 01:09:21.310
So like what's, what's the next steps here? Like there's people that are listening that are like founders of companies. There's people listening
1001
01:09:21.770 --> 01:09:23.130
that are users of,
1002
01:09:23.930 --> 01:09:25.150
customers of businesses,
1003
01:09:25.450 --> 01:09:27.550
users of wallets, maintainers of wallets.
1004
01:09:27.935 --> 01:09:30.595
Like how do we, how do we get paid, joined in every wallet,
1005
01:09:31.055 --> 01:09:32.275
every, every
1006
01:09:32.655 --> 01:09:41.075
exchange? Like what, what is, what is the next steps? What do you want to see from the community? Yeah, we gotta, we gotta do these integrations. So you mentioned foundation we've got, I think,
1007
01:09:42.740 --> 01:09:43.720
four people
1008
01:09:44.340 --> 01:09:53.800
full time right now and one part time. Like, people are working on the development kit actively. We've got these integrations out. We need people to own those.
1009
01:09:54.215 --> 01:09:54.875
If you
1010
01:09:55.895 --> 01:09:59.355
are a if you want to integrate PayJo and come and say hi and
1011
01:09:59.735 --> 01:10:04.155
use the dev kit. At this point, it's got bindings. It works in Python,
1012
01:10:04.535 --> 01:10:05.835
Kotlin, Swift.
1013
01:10:06.215 --> 01:10:08.715
We just did WebAssembly, so it'll work in the browser.
1014
01:10:09.450 --> 01:10:13.070
We can adapt it for Go and c sharp pretty straightforwardly.
1015
01:10:13.370 --> 01:10:15.950
Like, we need we need hands
1016
01:10:16.489 --> 01:10:17.790
to plug those in.
1017
01:10:18.489 --> 01:10:21.230
That's the main thing. If you wanna get involved in research,
1018
01:10:21.565 --> 01:10:26.065
once a week on Fridays, we have a study club in the
1019
01:10:26.525 --> 01:10:30.065
pay join discord, which you could find at payjoindevkit.org.
1020
01:10:31.804 --> 01:10:33.344
We've got documentation
1021
01:10:33.804 --> 01:10:36.465
being written and blog posts.
1022
01:10:37.080 --> 01:10:39.580
People need to understand what's happening, but, primarily,
1023
01:10:40.120 --> 01:10:40.860
those integrations
1024
01:10:41.400 --> 01:10:42.780
need to happen. And
1025
01:10:43.640 --> 01:10:44.140
with
1026
01:10:44.760 --> 01:10:51.240
the if you're a commercial entity, if you're an exchange, that is probably where the biggest impact can be made. If you can get
1027
01:10:52.305 --> 01:10:57.365
if your exchange supports this, you can do the cut through, you can get the savings, and you can protect the privacy
1028
01:10:57.905 --> 01:10:58.885
of your users.
1029
01:11:00.545 --> 01:11:05.905
Awesome. You said if someone wants to integrate, they should come say hi. Is that payjoindevkit.com?
1030
01:11:05.905 --> 01:11:10.760
Or how do they send that? .Org. Yep. Or github.com/payjoin
1031
01:11:10.760 --> 01:11:11.820
is where we are.
1032
01:11:12.199 --> 01:11:13.260
That would be the thing.
1033
01:11:13.880 --> 01:11:16.380
Because my my contact at bitgool dot com.
1034
01:11:17.719 --> 01:11:22.860
Love it. I'll put all those links in the show notes. Dan, thank you for joining us. I think, you know, maybe
1035
01:11:23.885 --> 01:11:25.745
six months to a year, we'll do
1036
01:11:26.125 --> 01:11:37.345
a, pull you back on and see where we're standing and do an update and just keep pushing. How do you think about that? Awesome. Well, thank you for joining us freaks. Thanks for joining us in the live chat. You make it special.
1037
01:11:37.860 --> 01:11:39.880
Appreciate you all for supporting the show.
1038
01:11:41.460 --> 01:11:45.800
I'm not sure when the next show will be, but if, if you keep track on Noster,
1039
01:11:46.500 --> 01:11:48.440
I'll keep you guys updated. We got some
1040
01:11:49.055 --> 01:11:52.115
good conversations in the works, but love you all. Stay humble.
1041
01:11:52.655 --> 01:11:53.155
Thanks.