1
00:00:19,600 --> 00:00:20,900
Life from it.
Reacts.
2
00:00:20,900 --> 00:00:27,700
This is Bitcoin explained.
Hello Asher's, I'm good and
3
00:00:27,700 --> 00:00:29,400
welcome back.
Ruben, thank you.
4
00:00:29,400 --> 00:00:31,600
Good to be.
Back back-to-back episodes for
5
00:00:31,600 --> 00:00:33,400
you.
Yeah, sure.
6
00:00:33,500 --> 00:00:35,100
Almost.
All right, has there not been an
7
00:00:35,108 --> 00:00:36,400
episode in between, I don't even
know.
8
00:00:36,600 --> 00:00:39,600
We should we skip last one?
So, okay, I know you truly
9
00:00:39,600 --> 00:00:42,900
back-to-back for you.
Anytime happy, you are back
10
00:00:42,900 --> 00:00:47,100
because we're gonna discuss a
particularly interesting, and at
11
00:00:47,100 --> 00:00:49,300
least, in my opinion, pretty
complex topic.
12
00:00:49,400 --> 00:00:54,000
Mmm, we did have a, we had a
call the three of us before we
13
00:00:54,000 --> 00:00:55,800
started recording this this
afternoon.
14
00:00:56,200 --> 00:01:00,800
And it was basically a call
between the two of you because I
15
00:01:00,800 --> 00:01:04,400
Taps I was after like a minute
and I specially when it became
16
00:01:04,400 --> 00:01:08,400
mathematical method when the
mathematics came into play.
17
00:01:08,400 --> 00:01:11,300
That's where it went a little
bit over my head.
18
00:01:11,300 --> 00:01:14,600
So, let's see, let's see how we
can manage this episode today.
19
00:01:14,700 --> 00:01:17,400
Yeah, for me, it was also just
confusing initially, especially
20
00:01:17,400 --> 00:01:19,700
reading some of the
documentation that, you know,
21
00:01:19,800 --> 00:01:23,400
explains some of the assumptions
behind it and then just skips
22
00:01:23,400 --> 00:01:26,500
all all the details that I care
about to actually understand it.
23
00:01:26,600 --> 00:01:29,700
It's not the full math.
But yeah, it's the cat.
24
00:01:30,000 --> 00:01:32,400
Me one more thing, tell me one
more thing but then you're if
25
00:01:32,400 --> 00:01:34,800
you're listening to a high-level
talk by somebody, who's not
26
00:01:34,800 --> 00:01:37,100
trying to make a technical,
they're not filling out the
27
00:01:37,100 --> 00:01:40,400
details and then if you want to
read an actual spec, it's too
28
00:01:40,400 --> 00:01:41,900
technical.
Yeah.
29
00:01:42,100 --> 00:01:43,800
So yeah.
So the thing we are going to
30
00:01:43,800 --> 00:01:47,500
discuss our is discrete lock
contracts.
31
00:01:47,500 --> 00:01:51,700
Also known as DLCs.
Yeah, and it's spelled discrete
32
00:01:51,700 --> 00:01:58,400
EET, which kind of means, like,
you know, careful in what you're
33
00:01:58,400 --> 00:02:04,600
saying versus is discreet with
ete, which is single digits,
34
00:02:04,900 --> 00:02:11,500
like a discrete number, but it's
a pun Yeah, cannot say an audio
35
00:02:11,500 --> 00:02:13,900
because it sounds the same.
I think the end result is that
36
00:02:13,900 --> 00:02:18,100
people are just confused but
it's a, it's funny for those who
37
00:02:18,100 --> 00:02:19,300
aren't to know.
Yeah.
38
00:02:19,300 --> 00:02:22,800
Anyway, so let's start with a
short summary of what discreet
39
00:02:22,800 --> 00:02:28,000
long lock contract actually are.
I would summarize it as their
40
00:02:28,000 --> 00:02:29,600
eye.
They are essentially smart
41
00:02:29,600 --> 00:02:32,900
contracts for Bitcoin and a
little bit more specifically.
42
00:02:32,900 --> 00:02:35,800
They are bets essentially.
Yeah.
43
00:02:36,400 --> 00:02:40,300
And the interesting thing about
bets is That many types of
44
00:02:40,300 --> 00:02:43,500
financial contracts are
essentially bets.
45
00:02:43,500 --> 00:02:48,800
Even if we don't normally think
of them as bad that you can sort
46
00:02:48,800 --> 00:02:50,800
of distill them.
As bad like right there not
47
00:02:50,800 --> 00:02:53,300
gambling necessarily, they could
just be saying, I think the
48
00:02:53,308 --> 00:02:56,900
dollar is going to go up.
So I want a derivative project
49
00:02:57,100 --> 00:03:00,100
product that follows the dollar
price and you could call that
50
00:03:00,100 --> 00:03:02,300
bedding.
But it's the same thing to do
51
00:03:02,300 --> 00:03:05,200
even as a non gambler.
Yeah, yeah, exactly.
52
00:03:05,200 --> 00:03:08,900
Or like an insurance.
If you're insuring your house in
53
00:03:09,000 --> 00:03:12,200
Way you're sort of betting that
your house will burn down.
54
00:03:12,900 --> 00:03:16,000
Yes, and then if you lose the
bat and you didn't, you know,
55
00:03:16,000 --> 00:03:18,400
your house is still there,
you're kind of happy but, you
56
00:03:18,400 --> 00:03:21,100
know, they cost a little bit of
money so that's sort of the down
57
00:03:21,100 --> 00:03:23,300
payment.
Well, if your house burns down
58
00:03:23,300 --> 00:03:25,700
you, you win the bet and you get
all this money.
59
00:03:26,000 --> 00:03:28,400
So a lot of financial products
are essentially bet.
60
00:03:28,400 --> 00:03:33,700
So that's why it's interesting
to think of how can we bring
61
00:03:33,700 --> 00:03:38,700
this sort of betting to bitcoin
and then what we really want or
62
00:03:38,700 --> 00:03:41,000
you know, No, the essence of
smart contract with smart
63
00:03:41,000 --> 00:03:45,800
contracts are ideally, at least,
is that these bets are executed
64
00:03:46,200 --> 00:03:48,900
automatically, right?
Yes.
65
00:03:48,900 --> 00:03:52,300
And in the case of blockchain,
not just automatically but also
66
00:03:52,300 --> 00:03:54,400
in a way that does not require
any trust.
67
00:03:55,000 --> 00:03:59,500
Now, just a spoiler, there is
this thing called The Oracle
68
00:03:59,500 --> 00:04:02,600
problem and we are not solving
the Oracle problem.
69
00:04:02,600 --> 00:04:05,700
And for the article problem,
basically means that if you have
70
00:04:05,700 --> 00:04:08,100
anything that relies on
information, outside the
71
00:04:08,108 --> 00:04:11,100
blockchain, Well, anything
except the knowledge of a
72
00:04:11,100 --> 00:04:15,400
private key, or Ash, if you need
any kind of information from
73
00:04:15,400 --> 00:04:17,600
outside blockchain like the
weather or the dollar price,
74
00:04:17,600 --> 00:04:20,100
there has to be an oracle that
knows this thing.
75
00:04:20,500 --> 00:04:23,400
And the blockchain is no idea of
the article is lying or not, and
76
00:04:23,400 --> 00:04:26,300
we're not going to solve that.
So everything we're doing here
77
00:04:26,300 --> 00:04:29,400
still assumes that the Oracle is
honest and then there are some
78
00:04:29,400 --> 00:04:33,200
tricks that you can use to make
it slightly more honest, but
79
00:04:33,200 --> 00:04:35,600
it's not a perfect solution.
Well that would that is kind of
80
00:04:35,600 --> 00:04:38,200
what we're doing, right?
We're sort of Trying to minimize
81
00:04:38,200 --> 00:04:41,200
the trust in the Or at least a
little bit.
82
00:04:41,500 --> 00:04:43,300
Well, yeah.
We're also trying to reduce the
83
00:04:43,300 --> 00:04:46,200
workload for the Oracle and
increased it.
84
00:04:46,200 --> 00:04:47,800
Plausible deniability for the
Oracle.
85
00:04:47,800 --> 00:04:50,900
Yeah that's that's I think an
important point where the Oracle
86
00:04:50,900 --> 00:04:53,700
doesn't have to be directly
involved with your bets, it can
87
00:04:53,700 --> 00:04:57,500
just post the outcome and then
you take the outcome and you
88
00:04:57,500 --> 00:05:00,200
resolve your bet with that
outcome without the Oracle
89
00:05:00,200 --> 00:05:02,400
specifically, having to know
that you were even betting,
90
00:05:02,800 --> 00:05:04,500
right?
And that also makes the Oracle
91
00:05:04,600 --> 00:05:07,300
hopefully more neutral though.
Again, you cannot guarantee
92
00:05:07,300 --> 00:05:08,500
that.
Yeah, okay.
93
00:05:08,500 --> 00:05:12,500
So Before we get into it let's
pick a very nice and easy sort
94
00:05:12,500 --> 00:05:14,300
of bats that everyone will
understand this.
95
00:05:14,300 --> 00:05:17,900
A bet if it's going to rain
tomorrow, I don't like that one
96
00:05:17,900 --> 00:05:19,700
shorts.
How about especially because the
97
00:05:19,700 --> 00:05:23,900
answer tends to be yes here.
So let's go for the World Cup
98
00:05:23,900 --> 00:05:26,100
final.
We'll have the World Cup later.
99
00:05:26,100 --> 00:05:29,000
This year, let's assume the
World Cup final was the
100
00:05:29,008 --> 00:05:30,300
Netherlands vs.
Germany.
101
00:05:30,800 --> 00:05:33,000
And now we're going to bet on
the winner of the World Cup.
102
00:05:33,000 --> 00:05:34,700
Final it.
Alright yeah.
103
00:05:34,800 --> 00:05:38,800
Alright trivial but that will be
the best throughout this
104
00:05:38,800 --> 00:05:40,400
episode.
Obviously, the Netherlands gonna
105
00:05:40,400 --> 00:05:42,300
win.
But okay, the Netherlands vs.
106
00:05:42,300 --> 00:05:43,700
Germany.
All right, in the World Cup
107
00:05:43,700 --> 00:05:47,800
finals.
So The very let's start at the
108
00:05:47,800 --> 00:05:49,800
beginning.
We want to solve this problem.
109
00:05:51,000 --> 00:05:52,800
Ruben ensures.
You want to bet against each
110
00:05:52,800 --> 00:05:55,300
other, Reuben, you're betting on
the nether Netherlands,
111
00:05:55,300 --> 00:05:57,100
apparently shorts, you're
betting on Germany.
112
00:05:57,600 --> 00:06:00,700
Now we need to make this
trustless somehow.
113
00:06:01,000 --> 00:06:05,500
I think the most basic solution
is to create a multi sick.
114
00:06:05,800 --> 00:06:08,900
Well, you could create a multi
sick between the two of you to
115
00:06:08,900 --> 00:06:11,000
of to.
But then you have the obvious
116
00:06:11,000 --> 00:06:13,800
problem that the loser might not
cooperate, right?
117
00:06:13,800 --> 00:06:17,300
Yeah yeah.
So if we take The Next Step will
118
00:06:17,300 --> 00:06:19,600
take it one step further will
introduce the Oracle.
119
00:06:19,600 --> 00:06:21,700
That's going to be me both of
you trust me.
120
00:06:22,100 --> 00:06:24,700
So now we create a two out of
three multisig.
121
00:06:25,300 --> 00:06:29,000
And now, the final has been
plate.
122
00:06:29,000 --> 00:06:31,800
The Netherlands has won at this
point.
123
00:06:32,300 --> 00:06:35,700
Either shorts can cooperate with
Ruben to get all the money in
124
00:06:35,700 --> 00:06:40,100
the multi-sector, Reuben, or if
you're short, doesn't cooperate,
125
00:06:40,100 --> 00:06:42,400
then Reuben can contact me.
I'll step in.
126
00:06:42,400 --> 00:06:45,000
How else?
You know, all acknowledge it in
127
00:06:45,000 --> 00:06:46,000
a 125.
Anal.
128
00:06:46,100 --> 00:06:50,000
So I'll provide my signature and
I'll help Reuben get the money.
129
00:06:50,000 --> 00:06:51,900
Yeah.
And now, because I can do this
130
00:06:51,900 --> 00:06:54,400
and because both of, you know, I
can do this and shorts in
131
00:06:54,400 --> 00:06:56,600
particular, you know, for a fact
that I can do this.
132
00:06:57,000 --> 00:06:59,600
So this point there's really no
reason for you to obstruct.
133
00:06:59,600 --> 00:07:01,300
You might as well just
cooperate, right?
134
00:07:01,400 --> 00:07:04,700
Yeah, exactly.
And so this could just be a
135
00:07:04,700 --> 00:07:08,700
trusted friend or this could be
you know the actual organization
136
00:07:08,700 --> 00:07:11,900
that runs the soccer match that
you know has no reason to lie
137
00:07:11,900 --> 00:07:15,000
about the result and is subject
to some scrutiny.
138
00:07:15,100 --> 00:07:17,900
But the problem is Of course, if
you want to, if you want to do a
139
00:07:17,900 --> 00:07:22,400
contract with this, this world
cup organizer, you know, you
140
00:07:22,400 --> 00:07:25,000
need to involve them you, they
actually need to sign something
141
00:07:25,000 --> 00:07:28,000
specifically for you, and they
may not want to do that because
142
00:07:28,000 --> 00:07:31,800
hey, then they're cooperating
with sports betting or they, you
143
00:07:31,800 --> 00:07:33,300
know, they don't feel like doing
that.
144
00:07:34,400 --> 00:07:37,100
I don't know.
Yeah, the what you're saying is
145
00:07:37,100 --> 00:07:41,700
that work, there are a number of
problems with this solution.
146
00:07:41,900 --> 00:07:45,300
One of them, is it requires me
to actually be actively
147
00:07:45,300 --> 00:07:46,500
involved?
Moved in your bed.
148
00:07:46,500 --> 00:07:50,000
Even before the bed is made.
I need to provide my public key
149
00:07:50,000 --> 00:07:52,100
and I sort of need to know what
you guys are doing.
150
00:07:52,100 --> 00:07:53,700
And I need to agree with that.
Yeah.
151
00:07:53,700 --> 00:07:55,800
And then after that, you might
need my help.
152
00:07:55,800 --> 00:08:01,000
And I might do stuff.
And if it's just two of you,
153
00:08:01,000 --> 00:08:04,000
that's maybe, you know,
acceptable but now tens of
154
00:08:04,000 --> 00:08:06,900
thousands of people want to make
the same bet and I would have to
155
00:08:06,900 --> 00:08:09,700
provide my public key to ten
thousands of people.
156
00:08:09,700 --> 00:08:12,700
And now it starts to become a
lot of work right now and they
157
00:08:12,700 --> 00:08:15,200
don't even know what you exactly
are betting, right?
158
00:08:15,200 --> 00:08:18,000
So they They would have to read
the terms and conditions of each
159
00:08:18,000 --> 00:08:21,900
of your bats to even know which
side to have to sign because he
160
00:08:21,900 --> 00:08:24,900
can't tell by the public key
which, which side I Rubin bedded
161
00:08:24,900 --> 00:08:26,600
on.
Yeah, so yeah, it's pretty
162
00:08:26,600 --> 00:08:28,700
tedious.
And then there's a problem that
163
00:08:28,700 --> 00:08:31,500
I need to know what you guys
were doing, which is sort of bad
164
00:08:31,500 --> 00:08:33,600
for your privacy.
I know need to know which coins
165
00:08:33,600 --> 00:08:35,799
are yours and what they're used
for.
166
00:08:37,000 --> 00:08:39,900
Are there more problems?
I think.
167
00:08:39,900 --> 00:08:41,200
I think you summed it up pretty
well.
168
00:08:41,799 --> 00:08:43,600
That's it.
I think it's possible.
169
00:08:43,600 --> 00:08:45,600
It's not, it's not impossible.
Yeah.
170
00:08:45,800 --> 00:08:52,100
Obviously, I could try to cheat
by, for example, shows could try
171
00:08:52,100 --> 00:08:54,500
to bribe me.
He could contact me, say, hey
172
00:08:54,500 --> 00:08:58,900
Aaron, let's share the price,
forget about Reuben, let's share
173
00:08:58,900 --> 00:09:01,300
price between us and, you know,
I could be corrupted in this
174
00:09:01,300 --> 00:09:02,900
way.
It's not a problem.
175
00:09:03,300 --> 00:09:04,700
Lots of problems with this
solution.
176
00:09:04,700 --> 00:09:08,000
Even though technically Works,
yes, I will say there is an
177
00:09:08,008 --> 00:09:11,800
upside to it as well, which is
that, if the bats somehow is
178
00:09:11,800 --> 00:09:14,900
unclear or I don't know.
There's a meteor crashes on the
179
00:09:14,900 --> 00:09:18,500
Earth and Finals are canceled.
And now we're like, oh, what are
180
00:09:18,500 --> 00:09:22,800
we going to do with our bets?
Then you being a human, you can
181
00:09:22,800 --> 00:09:26,500
maybe, you know, sort of have a
day, you can make a decision on
182
00:09:26,500 --> 00:09:30,100
RBF.
That's maybe one at one small
183
00:09:30,100 --> 00:09:31,800
Advantage but I don't think it's
a great one.
184
00:09:32,300 --> 00:09:34,300
Okay, method to remember that
one.
185
00:09:34,400 --> 00:09:37,500
Yeah, so let's try to improve on
this solution shows.
186
00:09:37,500 --> 00:09:40,600
You wanted to improve on the
solution Yes.
187
00:09:41,400 --> 00:09:44,800
So today I learned about the
concept which I had not
188
00:09:44,800 --> 00:09:46,600
followed, and it's called
reality Keys.
189
00:09:46,600 --> 00:09:49,900
Yeah, and this is actually, a
pretty simple idea.
190
00:09:50,700 --> 00:09:54,500
Takes it one step further did
this is an existing thing.
191
00:09:54,500 --> 00:09:57,300
It wasn't exist.
This was an existing it existed
192
00:09:57,300 --> 00:10:01,600
between 2014 and 2018 and it
just disappeared.
193
00:10:01,600 --> 00:10:04,100
And I don't think a lot of
Bitcoin is remember, but it was
194
00:10:04,100 --> 00:10:06,900
actually kind of a, a really
awesome little platform.
195
00:10:07,400 --> 00:10:09,700
I think.
Well, it's a good General.
196
00:10:09,800 --> 00:10:11,900
Idea is still exists.
Of course, you can do this.
197
00:10:11,900 --> 00:10:15,000
Yeah, so what, what year World
Cup leaders in this case,
198
00:10:15,000 --> 00:10:16,300
probably they would be the
Oracle.
199
00:10:16,300 --> 00:10:19,900
What they would do is they would
say here is to public Keys,
200
00:10:20,100 --> 00:10:23,700
public key, a or bubble quien, I
guess.
201
00:10:24,500 --> 00:10:27,800
And public Edie is in the, the
Netherlands, public key and the
202
00:10:27,800 --> 00:10:30,900
Germany public key.
And depending on who wins, we
203
00:10:30,900 --> 00:10:34,900
will publish one of those keys.
We will probably do private key
204
00:10:34,900 --> 00:10:39,300
of one of those two keys, right?
So either winner, both winners
205
00:10:39,300 --> 00:10:44,000
have a A key attribute to them
essentially by reality keys, by
206
00:10:44,600 --> 00:10:50,300
whoever's running this and based
on the winner, depending on who
207
00:10:50,300 --> 00:10:52,300
wins.
They will publish one of the
208
00:10:52,300 --> 00:10:54,800
corresponding private keys and
they promise to only publish
209
00:10:54,800 --> 00:10:57,100
one.
So in that case, Reuben and I
210
00:10:57,100 --> 00:11:02,000
set up our little multisig with
again, two out of three.
211
00:11:02,000 --> 00:11:07,800
I think the threshold one key of
you, one key of me and then the
212
00:11:08,300 --> 00:11:11,500
Germany key, I guess, what?
Would send it to me and the
213
00:11:11,500 --> 00:11:13,500
Netherlands.
Keyword, send it to you a little
214
00:11:13,500 --> 00:11:15,400
bit more complicated.
Well, but it was essentially, I
215
00:11:15,400 --> 00:11:18,800
guess you would set up to 12 to
3 multi 6, right?
216
00:11:18,800 --> 00:11:23,100
You can do well you can make it
a to of, to wear, one is my key,
217
00:11:23,100 --> 00:11:26,400
plus the Netherlands key.
And the other key is shorts plus
218
00:11:26,400 --> 00:11:28,200
the dry key that also makes
sense.
219
00:11:28,200 --> 00:11:31,200
Yeah.
But the the thing is that really
220
00:11:31,200 --> 00:11:33,200
Keys doesn't care.
They're just going to issue the
221
00:11:33,200 --> 00:11:35,900
key and we get to deal with that
key whatever you want.
222
00:11:35,900 --> 00:11:39,200
So we can set up we can set it
up in any way that we like, but
223
00:11:39,200 --> 00:11:40,800
that would be Be a plausible way
from.
224
00:11:40,800 --> 00:11:43,800
Yeah I guess we put the money
into the multisig and then we
225
00:11:43,800 --> 00:11:45,900
take it out.
We have two different Precinct
226
00:11:45,900 --> 00:11:47,700
ejections right one that takes
it out.
227
00:11:48,600 --> 00:11:49,800
Or something like that.
Oh yeah.
228
00:11:49,800 --> 00:11:54,500
You probably wanted two out of
three where the third key is.
229
00:11:54,500 --> 00:11:57,800
You and me together.
So on, well, that might also not
230
00:11:57,800 --> 00:11:58,800
make sense.
Yeah, I'm not sure.
231
00:11:58,800 --> 00:12:02,200
But anyway, like, you need to
have a fallback for if the, if
232
00:12:02,200 --> 00:12:04,400
Ray leakey's doesn't issue any
key whatsoever.
233
00:12:04,800 --> 00:12:06,600
Yeah, so you need to take that
into account as well, which we
234
00:12:06,600 --> 00:12:08,600
didn't those farm.
And there's another problem that
235
00:12:08,600 --> 00:12:12,800
they might actually reveal both
keys, which is a problem.
236
00:12:13,100 --> 00:12:16,800
And that's not a problem in the
first situation because they're
237
00:12:16,800 --> 00:12:19,500
just putting the signature.
ER, I guess they could also just
238
00:12:19,500 --> 00:12:22,100
sign to transactions.
Then you have to fight over it
239
00:12:22,100 --> 00:12:24,700
with replaced by fee.
Well, yeah, you can have two
240
00:12:24,700 --> 00:12:28,400
bats with the interactive Oracle
and and it could resolve this to
241
00:12:28,400 --> 00:12:31,200
bets in a different way, right?
Even though there's one one
242
00:12:31,200 --> 00:12:33,800
outcome.
So I think we're watching this.
243
00:12:33,800 --> 00:12:35,900
I think the simple solution
would be to have three out of
244
00:12:35,908 --> 00:12:38,700
four rights and then you will
sign.
245
00:12:38,700 --> 00:12:40,200
Am I saying this right?
What's it?
246
00:12:40,200 --> 00:12:43,600
What's the solution?
Because we're a different
247
00:12:43,600 --> 00:12:46,100
results depending on which
public he gets published.
248
00:12:46,300 --> 00:12:49,200
Yeah, if it's just three out of
four, The script doesn't care
249
00:12:49,200 --> 00:12:53,400
which three so it would it would
just send the money to one
250
00:12:53,400 --> 00:12:56,200
person regardless of who wins.
So you need to think about this
251
00:12:56,200 --> 00:12:58,000
a little bit two out of four.
I think.
252
00:12:58,600 --> 00:13:02,500
Anyway it's got afford it makes
I think I think that works.
253
00:13:02,800 --> 00:13:04,700
I think I sold it.
That's the one.
254
00:13:04,800 --> 00:13:06,500
Okay.
All right we figure it out.
255
00:13:06,500 --> 00:13:11,400
Two out of four however we're
still not so yeah to clarify two
256
00:13:11,400 --> 00:13:13,100
out of four because then it
work.
257
00:13:13,100 --> 00:13:15,700
Again can still do.
There's still a problem?
258
00:13:15,700 --> 00:13:18,600
Yeah.
Sound is very Simple on paper
259
00:13:18,600 --> 00:13:21,400
until we start circling figured
it out life on the podcast.
260
00:13:21,400 --> 00:13:23,900
Yeah, it's yeah, the platform is
down.
261
00:13:23,900 --> 00:13:25,100
You can't really test it
anymore.
262
00:13:25,100 --> 00:13:27,000
But you know what was
interesting about the platform
263
00:13:27,000 --> 00:13:28,800
is that it actually worked with
apis.
264
00:13:28,800 --> 00:13:30,800
So, it was just connected to a
bunch of apis.
265
00:13:31,300 --> 00:13:34,400
And you could then, just tell it
to pay attention to that API
266
00:13:34,400 --> 00:13:37,700
and, and publish a key depending
on an event from the diep.
267
00:13:37,700 --> 00:13:40,600
I so it was semi-automated in
that regard.
268
00:13:41,100 --> 00:13:43,900
So it was kind of a Nifty little
platform that I think is very
269
00:13:44,500 --> 00:13:47,200
similar, but you know, one sort
of downside I think too that
270
00:13:47,200 --> 00:13:50,800
that I'm that we're going to
address as well, is that it was
271
00:13:50,800 --> 00:13:53,400
mostly centered around binary
bets, right?
272
00:13:53,400 --> 00:13:57,500
Where either one party or the
other party is going to win, or
273
00:13:57,700 --> 00:14:01,100
the price of Bitcoin is going to
be X at this date, things like
274
00:14:01,100 --> 00:14:04,000
that.
But so not very you wouldn't
275
00:14:04,000 --> 00:14:07,600
have these kind of bats with a
granular outcome where depending
276
00:14:07,600 --> 00:14:10,700
on the price, I get this amount
of Bitcoin and shorts, gets some
277
00:14:10,700 --> 00:14:13,000
other amount of Bitcoin, right?
And especially when you're
278
00:14:13,000 --> 00:14:16,200
talking about say the US dollar
price if that's what you're
279
00:14:16,200 --> 00:14:18,900
betting on ya then.
Could be have all sorts of
280
00:14:18,900 --> 00:14:20,700
numbers involved.
Okay.
281
00:14:21,000 --> 00:14:24,300
So so anyways, real tikis I
don't understand how it would
282
00:14:24,300 --> 00:14:26,700
actually work, but there's
probably some way to make it
283
00:14:26,700 --> 00:14:28,300
work.
I'm sure there's a way where the
284
00:14:28,300 --> 00:14:31,000
Oracle just publish the private
key depending on the winner.
285
00:14:31,600 --> 00:14:34,400
But we just discuss that as a
sort of stepping stone for the
286
00:14:34,400 --> 00:14:38,900
actual subject of this specific
podcast which is DLC stand.
287
00:14:38,900 --> 00:14:40,100
That's sort of what we're
getting out.
288
00:14:40,100 --> 00:14:42,500
Yeah.
Now, right, so, who wants to
289
00:14:42,700 --> 00:14:49,200
give DLCs vertical, Our all
starts and then maybe short skin
290
00:14:49,500 --> 00:14:52,700
can continue from where I begin.
Right?
291
00:14:53,700 --> 00:14:58,800
So I think the DLC paper came
from tattooed Raja Who currently
292
00:14:58,900 --> 00:15:01,400
works on you trick.
So very interesting project as
293
00:15:01,400 --> 00:15:03,100
well.
Which I think we discussed we
294
00:15:03,100 --> 00:15:05,700
have yeah.
Also one of the co-authors of
295
00:15:05,700 --> 00:15:07,300
the lightning white.
Yeah.
296
00:15:07,400 --> 00:15:09,700
And when lightening and work
papers, well, yeah, good points.
297
00:15:11,100 --> 00:15:17,500
So the idea there is to
basically have The bets be
298
00:15:17,500 --> 00:15:20,200
Channel where you lock up your
funds together with the
299
00:15:20,200 --> 00:15:24,300
counterparty and then from that
states where you have a channel.
300
00:15:25,100 --> 00:15:27,100
So they're very similar to a
lightning channel, right?
301
00:15:27,100 --> 00:15:30,300
There's two of two and you would
have to have some kind of
302
00:15:30,600 --> 00:15:34,200
transaction where you can exit
out of it in case you disagree
303
00:15:34,200 --> 00:15:36,500
or something.
So, hang on, in this specific
304
00:15:36,500 --> 00:15:39,700
case, essentially, Ruben
ensures, the two of you would
305
00:15:39,700 --> 00:15:43,900
open a payment Channel which
looks a little bit like a
306
00:15:43,900 --> 00:15:45,500
lightning Channel.
Yeah, right.
307
00:15:45,500 --> 00:15:47,300
Okay.
Hey Goldie, the initial cell,
308
00:15:47,300 --> 00:15:49,900
which essentially means you're
both depositing funds in this
309
00:15:49,900 --> 00:15:51,100
channel, right?
Yes.
310
00:15:51,500 --> 00:15:54,500
But the way that you can get the
funds out is sort of the key
311
00:15:54,500 --> 00:15:57,000
difference.
We're now in order to get your
312
00:15:57,000 --> 00:16:02,000
funds out, You have a bunch of
transactions that are basically
313
00:16:02,000 --> 00:16:06,700
better outcomes and so in our
example, Rock up Netherlands vs.
314
00:16:06,700 --> 00:16:10,100
Germany, we would have two
transactions.
315
00:16:10,100 --> 00:16:15,300
Basically one transaction would
be transaction, wear shorts wins
316
00:16:15,300 --> 00:16:20,400
so he can publish his version of
the transaction and then he can
317
00:16:20,400 --> 00:16:23,000
spend that money with both his
key.
318
00:16:23,000 --> 00:16:28,500
Plus, the key of the Oracle
where the Oracle says, that's a
319
00:16:28,500 --> 00:16:31,600
German.
You won, but then there's also a
320
00:16:31,600 --> 00:16:36,000
time lock because if Shores
publishes his transaction, but
321
00:16:36,000 --> 00:16:38,900
that transaction is actually
not.
322
00:16:39,000 --> 00:16:41,200
The one that the Oracle
published.
323
00:16:41,900 --> 00:16:45,000
Well then basically, what
happens is that he can't spend
324
00:16:45,000 --> 00:16:46,300
it because he doesn't have both
keys.
325
00:16:46,300 --> 00:16:49,300
You only one of the keys then
the time-lock expires and the
326
00:16:49,300 --> 00:16:51,300
time-lock says that after the
time expires.
327
00:16:51,400 --> 00:16:53,100
I get to take the money.
Okay?
328
00:16:53,100 --> 00:16:57,400
So hang on in a lightning
Channel if I'm remembering
329
00:16:57,400 --> 00:17:01,100
correctly, which I think I am.
Am both of you would essentially
330
00:17:01,400 --> 00:17:04,900
you've exchanged signed
transactions, right?
331
00:17:04,900 --> 00:17:09,000
You both have different version
of the Redemption.
332
00:17:09,000 --> 00:17:10,400
Transaction.
Am I saying that right?
333
00:17:10,400 --> 00:17:13,500
Yeah, yeah.
And so in this case, both of
334
00:17:13,500 --> 00:17:17,599
these transactions depends on
the outcome of the match
335
00:17:17,599 --> 00:17:20,200
essentially.
So you would have the
336
00:17:20,200 --> 00:17:23,500
transaction that should be
broadcast if the Nellis winds
337
00:17:23,500 --> 00:17:24,300
Reuben.
Yeah.
338
00:17:24,300 --> 00:17:28,200
And then short has a slightly
different version of an almost
339
00:17:28,200 --> 00:17:30,500
identical.
Transaction that he should
340
00:17:30,500 --> 00:17:33,100
broadcast if Germany wins.
Yeah, right.
341
00:17:33,100 --> 00:17:36,800
Yeah, okay, so and in both
cases, if we happen to broadcast
342
00:17:36,800 --> 00:17:41,000
the wrong one, But you know you
don't have to do but then the
343
00:17:41,000 --> 00:17:44,000
other side can just take the yes
this what was wrong was just
344
00:17:44,000 --> 00:17:45,600
explaining.
So the Netherlands woman our
345
00:17:45,600 --> 00:17:50,000
example and sure spends on
Germany's or shorts has the
346
00:17:50,200 --> 00:17:52,900
transaction that he should
broadcast only if Germany wins
347
00:17:53,100 --> 00:17:57,000
but he broadcasts It.
Anyways, the reason he can't
348
00:17:57,000 --> 00:18:00,900
actually claim the funds is
because he needs something from
349
00:18:00,900 --> 00:18:04,500
the Oracle in combination with
his own signature in order to
350
00:18:04,500 --> 00:18:06,200
actually claim the funds.
Right?
351
00:18:06,200 --> 00:18:08,900
Yes.
So he because He can't do that.
352
00:18:08,900 --> 00:18:10,700
Now.
A time lock is ticking.
353
00:18:11,000 --> 00:18:15,600
Yeah, he's gonna clock out at
which point the money sent to
354
00:18:15,600 --> 00:18:18,100
you Ruben.
Yeah, so that's sort of a strong
355
00:18:18,100 --> 00:18:21,800
disincentive disincentive for
short to try to claim the money
356
00:18:21,800 --> 00:18:23,500
even though we didn't win.
Yes.
357
00:18:23,700 --> 00:18:25,600
Okay.
So this it's useful to know here
358
00:18:25,600 --> 00:18:28,200
that a transaction, you know,
has inputs and outputs and so
359
00:18:28,200 --> 00:18:31,300
the transaction like that both
of us are transactions that go
360
00:18:31,300 --> 00:18:35,300
out of this pot that we put the
money in or this channel both of
361
00:18:35,300 --> 00:18:38,800
them have the same inputs.
So both of Us can just throw it
362
00:18:38,800 --> 00:18:41,600
on the Chain because they, you
know, but the outputs are
363
00:18:41,600 --> 00:18:43,000
different.
And so we need another
364
00:18:43,000 --> 00:18:45,600
transaction to actually take the
money to really own it.
365
00:18:45,600 --> 00:18:48,100
And that's where the Oracle
signature comes in, right?
366
00:18:48,100 --> 00:18:50,600
So, so let me ask about it.
So the Netherlands won.
367
00:18:50,700 --> 00:18:52,000
Reuben.
You bet on the Netherlands?
368
00:18:52,000 --> 00:18:54,000
Yeah.
So we just gave the example,
369
00:18:54,000 --> 00:18:56,000
where shows his trying to cheat.
Let's forget about that.
370
00:18:56,000 --> 00:18:59,000
Now, you're just broadcasting
the legitimate transaction?
371
00:18:59,100 --> 00:19:02,200
Yeah.
Which requires now a signature
372
00:19:02,200 --> 00:19:05,700
from you, as well as what's the
other thing?
373
00:19:05,700 --> 00:19:06,700
Exactly.
Yeah.
374
00:19:06,700 --> 00:19:10,400
So so really It is and we have
to go into more detail here.
375
00:19:10,400 --> 00:19:15,000
But essentially it is two keys.
One is mine and the other key
376
00:19:15,000 --> 00:19:18,800
comes from the Oracle and I am.
Wait, wait, you're saying key?
377
00:19:18,800 --> 00:19:20,700
Do you mean key or do you mean
signature?
378
00:19:20,700 --> 00:19:22,500
I mean an actual key.
Yeah.
379
00:19:22,500 --> 00:19:26,200
Also, so dear when I send my
transaction to the Bitcoin
380
00:19:26,200 --> 00:19:29,400
blockchain there's going to be
an output and the output is
381
00:19:29,400 --> 00:19:33,600
encumbered by a key and that key
is the combination of my key.
382
00:19:34,000 --> 00:19:38,400
And a key that is provided by
the oracle And I basically take
383
00:19:38,400 --> 00:19:42,400
both keys when the Oracle
Reveals His, his private key.
384
00:19:43,000 --> 00:19:46,200
I get that private key, I
combined it with my private key.
385
00:19:46,600 --> 00:19:50,600
And that combined number is what
I use to sign it transaction and
386
00:19:50,600 --> 00:19:53,300
then actually take the money.
And I have to do that, because
387
00:19:53,300 --> 00:19:55,700
if I don't do that, then the
time-lock expires in shorts gets
388
00:19:55,700 --> 00:19:56,500
to take it.
Yeah.
389
00:19:56,500 --> 00:19:58,700
And to go back to that,
encumbering it's incumbent.
390
00:19:58,700 --> 00:20:02,100
Of course, by the public key of
its increment by.
391
00:20:02,300 --> 00:20:04,700
So it's basically saying anybody
with this public key can spend
392
00:20:04,700 --> 00:20:06,200
it.
And that's this publicly happens
393
00:20:06,200 --> 00:20:08,500
to be.
Your public key plus a public
394
00:20:08,500 --> 00:20:11,600
key that we have precomputed
that belongs to the Oracle.
395
00:20:12,000 --> 00:20:15,000
Yeah.
And so this is sort of with
396
00:20:15,000 --> 00:20:17,800
them, but the magic comes in,
because it's not the same as the
397
00:20:17,800 --> 00:20:20,600
previous mechanism.
The Oracle is not actually
398
00:20:20,600 --> 00:20:25,700
publishing a private key, like a
private key to holds funds, but
399
00:20:26,000 --> 00:20:28,700
this is, but we actually getting
it from the signature.
400
00:20:29,200 --> 00:20:33,600
And this is kind of where things
get a little funky, because a
401
00:20:33,600 --> 00:20:39,100
signature is really two numbers.
It is essentially a public key
402
00:20:39,100 --> 00:20:42,700
or it's not a public key, but
it's a point a point on the
403
00:20:42,700 --> 00:20:47,500
elliptic curve.
And it is a number and in
404
00:20:47,500 --> 00:20:51,000
general when you have a number,
you can treat that as a private
405
00:20:51,000 --> 00:20:52,900
key.
And we have a point, you can
406
00:20:52,900 --> 00:20:55,800
treat that as a public key and
the reason is that you can very
407
00:20:55,800 --> 00:20:59,400
easily go from a number to a
point, but you cannot go from a
408
00:20:59,400 --> 00:21:01,300
point to the corresponding
number.
409
00:21:01,800 --> 00:21:05,600
So, that's why the private key
is the number and the point is
410
00:21:05,600 --> 00:21:09,400
the public key.
But in the case of the
411
00:21:09,400 --> 00:21:11,000
signature, we don't interpret it
that way.
412
00:21:11,100 --> 00:21:15,500
So we're seeing a point and
we're seeing a number but we can
413
00:21:15,600 --> 00:21:16,900
if we want to.
And that's actually what we're
414
00:21:16,900 --> 00:21:21,100
doing is so we're interpreting
the the second part of the
415
00:21:21,108 --> 00:21:24,400
signature, which is a number.
We're interpreting that as a
416
00:21:24,400 --> 00:21:27,700
private key and that is the
private key that we're missing.
417
00:21:27,700 --> 00:21:32,500
And now, the nice thing is that
the Oracle can publish, you
418
00:21:32,500 --> 00:21:35,500
know, can sign anything really,
they can publish any signature
419
00:21:35,500 --> 00:21:37,500
they want.
And depending on exactly,
420
00:21:37,700 --> 00:21:40,300
Message they sign.
We're going to get a different
421
00:21:40,300 --> 00:21:44,100
private key in that signature.
Yeah.
422
00:21:44,100 --> 00:21:49,100
And so if they published
Germany, then I get a private
423
00:21:49,100 --> 00:21:52,000
key that then that private key
that the Oracle just publishes
424
00:21:52,000 --> 00:21:53,900
useful.
For me, it allows me to redeem
425
00:21:53,900 --> 00:21:56,800
the coins.
If the Oracle wrote Germany in
426
00:21:56,800 --> 00:21:59,800
the message, then Reuben gets
his private key.
427
00:21:59,800 --> 00:22:02,000
It gets the private key.
That is useful for him and of no
428
00:22:02,000 --> 00:22:06,300
use to me.
And to make it even nicer is if
429
00:22:06,300 --> 00:22:11,300
they publish both.
Well, now we can actually punish
430
00:22:11,300 --> 00:22:15,800
the Oracle because the Oracle
also has its own private key.
431
00:22:15,800 --> 00:22:19,700
And by this, I mean, the real
private key that he would use to
432
00:22:19,700 --> 00:22:23,200
protect his own funds and that
now becomes known because
433
00:22:23,200 --> 00:22:25,300
there's a rule that if you
publish basically, if you make
434
00:22:25,300 --> 00:22:29,500
two, if you signed two different
messages, this way you're giving
435
00:22:29,500 --> 00:22:32,500
away your your private key.
Yeah, that said, it's exactly
436
00:22:32,500 --> 00:22:35,300
right.
So maybe To sort of give a
437
00:22:35,900 --> 00:22:37,300
that's maybe a little bit then
gentle.
438
00:22:37,300 --> 00:22:41,300
But yeah, yeah, to give sort of
a high-level summary here.
439
00:22:41,300 --> 00:22:46,700
Is that basically we just get
the Oracle to pre-commit to what
440
00:22:46,700 --> 00:22:48,400
it's going to sign.
So it's got its going to say,
441
00:22:48,400 --> 00:22:51,500
like look, I'm going to sign
either Germany or the
442
00:22:51,500 --> 00:22:55,400
Netherlands and we calculate
ahead of time.
443
00:22:55,400 --> 00:22:58,000
What that signature is going to
look like.
444
00:22:58,800 --> 00:23:04,300
And we use that in our, in our
scripts, in our And so you can
445
00:23:04,300 --> 00:23:05,900
know what the signature will
look like.
446
00:23:05,900 --> 00:23:08,000
Exactly right now.
We know one part of that
447
00:23:08,000 --> 00:23:09,100
signature.
What's going to look like?
448
00:23:09,100 --> 00:23:13,400
Yeah we know sort of we know the
as sure stated.
449
00:23:13,400 --> 00:23:17,100
You can treat the signature as a
key and so we know the public
450
00:23:17,100 --> 00:23:20,600
key but we do know the private
key, basically of of the
451
00:23:20,600 --> 00:23:23,200
signature.
So we treat the signature as a
452
00:23:23,208 --> 00:23:25,200
key and we only know the public
key.
453
00:23:25,500 --> 00:23:28,600
We don't know the private key
until the Oracle actually signs.
454
00:23:33,700 --> 00:23:37,100
Yo, what is going on, guys?
We are proud to have voltage as
455
00:23:37,100 --> 00:23:40,200
a sponsor of this episode.
How many of you developers out
456
00:23:40,200 --> 00:23:43,200
there have wanted to streamline
infrastructure provider for your
457
00:23:43,200 --> 00:23:46,100
particular project?
Well, I'll tell you what voltage
458
00:23:46,100 --> 00:23:48,300
is the Bitcoin infrastructure
provider?
459
00:23:48,300 --> 00:23:51,100
You have been looking for that
makes building on bitcoin, quick
460
00:23:51,100 --> 00:23:54,100
and easy, whether it's Bitcoin
nodes, lightning notes.
461
00:23:54,100 --> 00:23:57,200
BTC pay and so much more, but
don't take it from me.
462
00:23:57,300 --> 00:24:00,800
Just ask the guys over and boss
thinks podcast index and Thunder
463
00:24:00,800 --> 00:24:03,300
games and so many others that
you guys already know it.
464
00:24:03,500 --> 00:24:06,700
Of their Enterprise grade
products, make it fast and easy
465
00:24:06,700 --> 00:24:09,100
to build deploy and scale your
next project.
466
00:24:09,200 --> 00:24:11,500
So make it easy on yourself even
or me plebs can use the
467
00:24:11,500 --> 00:24:14,300
dashboard or API.
Don't wait before the next block
468
00:24:14,300 --> 00:24:17,000
confirmation, let your team
focused on building great
469
00:24:17,000 --> 00:24:21,300
products and let voltage handle
all the rest voltage is your go
470
00:24:21,300 --> 00:24:24,200
to zero management, Bitcoin
infrastructure solution.
471
00:24:25,200 --> 00:24:28,100
Yo, what is going on plebs?
We're going to take a break from
472
00:24:28,100 --> 00:24:29,700
our programming.
To tell you about the
473
00:24:29,700 --> 00:24:32,800
resurrection of our print
magazine starting with the El
474
00:24:32,800 --> 00:24:35,400
Salvador.
Or issue starting this fall.
475
00:24:35,400 --> 00:24:37,600
Bitcoin magazine will be
available on newsstands
476
00:24:37,600 --> 00:24:40,800
Nationwide and at retail Source
such as Barnes & Noble.
477
00:24:41,100 --> 00:24:43,400
Don't want to get off your couch
though, no problem.
478
00:24:43,400 --> 00:24:47,000
You can also go to stored at
Bitcoin magazine.com, so skip
479
00:24:47,000 --> 00:24:49,700
the line and get each issue
shipped directly to your front
480
00:24:49,700 --> 00:24:51,200
door with her annual
subscription.
481
00:24:51,400 --> 00:24:54,100
I'm talking for issues a year
that contain exclusive
482
00:24:54,100 --> 00:24:57,000
interviews and profiles with
leading bitcoiners actionable
483
00:24:57,000 --> 00:24:59,600
insights, on the state of the
market, breaking news and
484
00:24:59,600 --> 00:25:02,600
cultural Trends along with
powerful photos and artwork from
485
00:25:02,600 --> 00:25:05,200
the best.
Artists in the world, subscribe
486
00:25:05,200 --> 00:25:08,300
today and get twenty one percent
off using Code podcast at
487
00:25:08,300 --> 00:25:09,900
checkout.
That's pod.
488
00:25:09,900 --> 00:25:17,000
Cas T podcast at checkout.
All right.
489
00:25:17,000 --> 00:25:20,200
Well, I didn't get all of them.
Maybe some of our listeners that
490
00:25:20,500 --> 00:25:24,300
I do want to add at the risk of
Hangouts and the risk of
491
00:25:24,300 --> 00:25:26,300
confusing, our listeners, even
more.
492
00:25:26,300 --> 00:25:27,800
I actually want to take one step
back.
493
00:25:28,100 --> 00:25:29,700
Hmm.
So we were discussing this
494
00:25:29,700 --> 00:25:32,400
reality Keys idea where the
Oracle would just publish a
495
00:25:32,408 --> 00:25:35,600
private key.
Why can't we just use that in
496
00:25:35,600 --> 00:25:38,700
this setup?
So the Netherlands won Ruben
497
00:25:38,700 --> 00:25:40,900
your.
Now, publishing your transaction
498
00:25:40,900 --> 00:25:45,700
that allows you to try to
withdraw the funds which Has
499
00:25:45,700 --> 00:25:48,400
your signature.
And why don't we just say it?
500
00:25:48,400 --> 00:25:52,400
Also requires a signature from a
private key, which is right for
501
00:25:52,400 --> 00:25:54,000
the known specifically.
Yeah.
502
00:25:54,000 --> 00:25:57,000
Like we were thinking out loud
where we were at that step of
503
00:25:57,000 --> 00:26:00,100
the podcast and we were watching
it, but this actually seems to
504
00:26:00,100 --> 00:26:02,000
make sense to me like, this can
actually work, right.
505
00:26:02,000 --> 00:26:03,800
Yeah.
So that I think the first thing
506
00:26:03,800 --> 00:26:05,800
to point out is that, yes, that
works.
507
00:26:06,100 --> 00:26:08,300
So if you're confused about
everything that we said, you can
508
00:26:08,300 --> 00:26:11,000
just think of it in that way.
Right, so that's I think like
509
00:26:11,000 --> 00:26:14,700
the first first point, second
point is there are too subtle
510
00:26:14,700 --> 00:26:17,700
differences.
In the first difference is what
511
00:26:17,700 --> 00:26:21,000
shorts explained earlier.
Where if the Oracle signs two
512
00:26:21,000 --> 00:26:25,700
things, we can punish the Oracle
by by extracting their private
513
00:26:25,700 --> 00:26:26,900
key, right?
Yeah.
514
00:26:26,900 --> 00:26:31,700
So, so if so, the article would
say in the article, was
515
00:26:31,700 --> 00:26:34,300
published both results for
whatever reason.
516
00:26:34,300 --> 00:26:37,800
Then there's this mathematical
trick, where you can combine
517
00:26:37,800 --> 00:26:41,600
these signatures and from there,
derived actual private key from
518
00:26:41,600 --> 00:26:46,200
the actual Oracle, assuming that
the Oracle put up, Some funds
519
00:26:46,200 --> 00:26:48,200
there to prove that it won't
cheat.
520
00:26:48,400 --> 00:26:52,200
That's how how you while you're
sure that the Oracle will only
521
00:26:52,200 --> 00:26:53,500
publish one result.
Right?
522
00:26:53,500 --> 00:26:56,300
That's the point here.
Yeah right and then there was
523
00:26:56,300 --> 00:26:57,800
another shot of point I think
you were going.
524
00:26:57,800 --> 00:27:01,700
Yeah Ruben yeah the second point
is sort of a smaller one that
525
00:27:01,700 --> 00:27:03,900
probably not everybody
appreciates but it's just less
526
00:27:03,900 --> 00:27:08,500
data basically.
So it the Oracle can basically
527
00:27:08,500 --> 00:27:12,500
commit to what it's going to
what it's going to reveal in
528
00:27:12,500 --> 00:27:17,400
less data than you would need if
you would If you would create a
529
00:27:17,400 --> 00:27:20,800
public key for every bet events
on this becomes, especially
530
00:27:20,900 --> 00:27:22,400
important.
If you're doing something like,
531
00:27:22,400 --> 00:27:25,200
predicting the price of the US
dollar in Bitcoin, because you
532
00:27:25,200 --> 00:27:28,300
might want to publish a six
digit number and that means, you
533
00:27:28,308 --> 00:27:30,900
know, hundreds of thousands of
public keys that you would have
534
00:27:30,900 --> 00:27:32,800
to publish for each possible
value.
535
00:27:33,100 --> 00:27:35,300
And you'd have to pre sign
transactions for each of these
536
00:27:35,300 --> 00:27:38,100
possible values.
Yeah, well, not necessarily
537
00:27:38,100 --> 00:27:41,800
because you can do it in binary,
which makes it a lot less, but
538
00:27:41,800 --> 00:27:43,600
we'll get to that.
We'll get, we'll get that later.
539
00:27:43,700 --> 00:27:47,000
Yes.
Okay, so Maybe fun to just dive
540
00:27:47,000 --> 00:27:49,600
into a little bit more detail to
stand up for those who do
541
00:27:49,600 --> 00:27:54,900
understand the math, better than
we do we.
542
00:27:54,900 --> 00:27:56,100
Yeah.
So there's a couple of things
543
00:27:56,100 --> 00:27:59,000
that the article publishes are
that, that are known here.
544
00:27:59,300 --> 00:28:02,700
If you look at what a signature,
is this like a couple?
545
00:28:02,700 --> 00:28:05,100
It's like an equation
essentially, if I can read it
546
00:28:05,100 --> 00:28:08,800
out loud you have on the left
side of the equation you have.
547
00:28:10,100 --> 00:28:17,100
S times G where s is the
signature g is the so-called
548
00:28:17,100 --> 00:28:20,400
generator is a generator.
Now, the generator is a publicly
549
00:28:20,400 --> 00:28:23,300
known Universal number that uses
that all of Bitcoin users.
550
00:28:23,300 --> 00:28:24,600
So, that's a number that
everybody knows.
551
00:28:24,600 --> 00:28:26,800
So, we only have one unknown
thing on the left side.
552
00:28:26,900 --> 00:28:28,300
Yeah.
And then, on the right side, we
553
00:28:28,308 --> 00:28:34,200
have capital R and R is actually
something that the Oracle is
554
00:28:34,200 --> 00:28:37,100
going to reveal before the bet.
So they're going to say this is
555
00:28:37,100 --> 00:28:39,700
my arm, so again, we have
something that we already know.
556
00:28:39,800 --> 00:28:43,400
Then we have the capital r.
Meaning, it's a curve points.
557
00:28:43,500 --> 00:28:45,700
Yes.
And then the next part of the
558
00:28:45,700 --> 00:28:49,700
equation is plus the hash of are
concatenated by the message.
559
00:28:49,700 --> 00:28:53,400
So the message is something.
We already said, we don't know
560
00:28:53,400 --> 00:28:55,100
what the message will be, but we
can enumerate.
561
00:28:55,100 --> 00:28:58,000
All the possible messages we
can, you know, we can enumerate
562
00:28:58,000 --> 00:29:02,600
m is Germany or M is Netherlands
and we're hatching that with
563
00:29:02,600 --> 00:29:04,000
our, we know our.
Yeah.
564
00:29:04,000 --> 00:29:06,900
So that's all known.
And then there's times P.
565
00:29:06,900 --> 00:29:12,100
Capital p and p is the public
key of of the Oracle which they
566
00:29:12,100 --> 00:29:15,400
also published.
So the Oracle is say hey I'm a
567
00:29:15,408 --> 00:29:18,800
Bitcoin related Oracle.
So you have to assume G is the
568
00:29:18,800 --> 00:29:20,700
generator as we know it in
Bitcoin.
569
00:29:21,300 --> 00:29:24,600
Here's my public key and by the
way, this public key belongs to
570
00:29:24,600 --> 00:29:26,600
a Bitcoin address and there's a
million dollars on it.
571
00:29:27,000 --> 00:29:29,100
So I'm not going to do anything
bad.
572
00:29:31,100 --> 00:29:35,300
And here's our that I'm going to
use for this specific bet.
573
00:29:36,500 --> 00:29:38,000
So, you have to have a new our
for every bed.
574
00:29:38,000 --> 00:29:40,000
But in this case, if it's
Netherlands, Germany, here's the
575
00:29:40,000 --> 00:29:42,700
are for that.
And so that equation that I just
576
00:29:42,700 --> 00:29:46,300
read out loud, only really only
has one real unknown.
577
00:29:46,300 --> 00:29:48,700
And that's lowercase s.
Yeah, and if you have an
578
00:29:48,700 --> 00:29:51,700
equation with only one unknown,
well then you're quite happy,
579
00:29:52,700 --> 00:29:53,600
right?
Yeah.
580
00:29:53,800 --> 00:29:56,800
Except in this case, you cannot
actually derive the public.
581
00:29:56,900 --> 00:29:59,900
The private key is if we said
you cannot go from a public you
582
00:29:59,900 --> 00:30:03,000
to a private key.
So anyway, let's just to say
583
00:30:03,000 --> 00:30:04,900
that, you know, if you really
looked at it and you had a
584
00:30:04,900 --> 00:30:06,700
little bit more time and you
could In front of you, you
585
00:30:06,700 --> 00:30:09,700
could, you see, it's an equation
with some unknowns and it's not
586
00:30:09,700 --> 00:30:10,600
that hard.
Yeah.
587
00:30:10,700 --> 00:30:16,000
And so then, when the bat, when
the Oracle actually signs a
588
00:30:16,008 --> 00:30:19,600
message, they let you know
which, and they picked that's
589
00:30:19,600 --> 00:30:22,200
not going to be too much of a
surprise, it's going to be the
590
00:30:22,200 --> 00:30:25,400
Netherlands and then it's going
to actually put down the
591
00:30:25,400 --> 00:30:27,400
signature and that reveals this
lower case.
592
00:30:27,400 --> 00:30:32,000
S that was the only missing part
from our equation and we use
593
00:30:32,000 --> 00:30:34,300
that to do our little our own
signature.
594
00:30:34,400 --> 00:30:36,900
Yeah.
Okay, so let's bring this back
595
00:30:36,900 --> 00:30:42,000
to the real world a little bit.
We start with the example, where
596
00:30:42,400 --> 00:30:44,500
your son Reuben.
The two of you are betting on
597
00:30:44,500 --> 00:30:48,500
the winner of the World Cup, and
I was part of a multi sick, who
598
00:30:48,500 --> 00:30:52,500
would help in case, one of you
try to obstruct and he went and
599
00:30:52,500 --> 00:30:55,100
then we mentioned some of the
problems with that.
600
00:30:55,400 --> 00:30:59,800
Now, we have this new solution,
which we just describes, which I
601
00:30:59,800 --> 00:31:03,700
sort of got in the two of you
seem to get it pretty well.
602
00:31:04,000 --> 00:31:08,500
So the benefits Here are that
the FIFA who's organizing a
603
00:31:08,500 --> 00:31:11,800
World Cup.
They can always just publish a
604
00:31:11,800 --> 00:31:16,100
signed message of the winner.
Yeah and this can be used by
605
00:31:16,100 --> 00:31:17,100
anyone.
Right.
606
00:31:17,100 --> 00:31:20,300
So so the fever does not need to
be part of any multisig.
607
00:31:20,300 --> 00:31:23,400
They do not need to have any
active involvement.
608
00:31:23,600 --> 00:31:27,400
They do not even need to know
that a bet took place at all.
609
00:31:27,400 --> 00:31:30,900
Yeah, all they need to know is
that they need to sign a message
610
00:31:30,900 --> 00:31:34,500
and this will allow anyone to
create bets on their own accord,
611
00:31:34,500 --> 00:31:35,200
right?
That is correct.
612
00:31:35,900 --> 00:31:38,300
Is that and optionally?
They can publish.
613
00:31:38,300 --> 00:31:41,200
They can post the collateral
that if they cheat, right?
614
00:31:41,200 --> 00:31:43,700
Then they lose a collateral but
that's not essential for the
615
00:31:43,700 --> 00:31:44,700
algorithm.
Yeah.
616
00:31:44,900 --> 00:31:47,200
Right.
And then I think another benefit
617
00:31:47,200 --> 00:31:51,600
here is that if the thief I
would try to cheat for whatever
618
00:31:51,600 --> 00:31:54,600
reason.
If they would announce the wrong
619
00:31:54,600 --> 00:31:59,200
winner, then that's also very
obvious and publicly known to
620
00:31:59,200 --> 00:32:01,300
anyone.
So now everyone knows we
621
00:32:01,300 --> 00:32:04,800
shouldn't rely on them to settle
our bet for the next world.
622
00:32:04,800 --> 00:32:06,400
Yeah, right.
We might be more difficult to
623
00:32:06,400 --> 00:32:08,000
prove in the earlier scenarios
right?
624
00:32:08,000 --> 00:32:11,400
Where they were where they just
manually signed one of our
625
00:32:11,400 --> 00:32:13,100
sites.
We don't really, you know, you
626
00:32:13,108 --> 00:32:15,500
don't really know what was going
on there and I think it's still
627
00:32:15,500 --> 00:32:18,400
solvable because you can get
them to commit to what they're
628
00:32:18,400 --> 00:32:20,100
going to do.
And you can reveal that they
629
00:32:20,100 --> 00:32:22,800
said they were going to do X if
this happened and they didn't.
630
00:32:23,000 --> 00:32:26,300
So okay it's probably solvable
either way but it's a little
631
00:32:26,300 --> 00:32:27,900
nicer here, it's more
formalized.
632
00:32:27,900 --> 00:32:31,100
Okay?
Okay, so this message that FIFA
633
00:32:31,100 --> 00:32:34,500
is broadcasting.
This can be used as we explained
634
00:32:34,900 --> 00:32:36,900
in common Asian with your own
beds.
635
00:32:36,900 --> 00:32:38,300
Depending on what?
Who won?
636
00:32:38,400 --> 00:32:41,400
You publish the original
transaction that you have.
637
00:32:41,400 --> 00:32:44,800
Then you use this signature from
the fever, combine it with your
638
00:32:44,800 --> 00:32:46,900
own signature.
Does this require small?
639
00:32:46,900 --> 00:32:50,600
By the way, this is requires nor
signatures, it's easier it.
640
00:32:50,900 --> 00:32:56,800
So the, the Oracle signs with
snore signatures because that's
641
00:32:56,800 --> 00:33:00,100
the because nor signature are
linear and that's how you can do
642
00:33:00,100 --> 00:33:02,200
the thing that shark's dorsal
lateral.
643
00:33:02,600 --> 00:33:05,200
Well, that's how you can, that's
how you can calculate ahead of
644
00:33:05,300 --> 00:33:08,800
Time what the expected signature
is going to be the public key of
645
00:33:08,800 --> 00:33:11,600
the expect signature, right?
And you need, you need to know
646
00:33:11,600 --> 00:33:12,900
for that.
You can't do that with that.
647
00:33:12,900 --> 00:33:17,600
You see this, I believe.
But the on the side of the
648
00:33:17,600 --> 00:33:21,100
batter's, you can use easily
say, but we're not going to
649
00:33:21,100 --> 00:33:23,900
Orchestra cool people and we use
nor that's right.
650
00:33:24,000 --> 00:33:26,900
Anyway, but there's more.
Okay.
651
00:33:26,900 --> 00:33:30,400
Yeah, I was almost done with
sort of reiterating the point of
652
00:33:30,400 --> 00:33:33,100
how it actually works.
So the FIFA broadcasts, a
653
00:33:33,100 --> 00:33:35,200
message saying the Netherlands
won in this.
654
00:33:35,400 --> 00:33:38,500
Case, then Reuben can take that
message, he brought cash
655
00:33:38,500 --> 00:33:42,600
transaction that he had sure she
cannot because then he might
656
00:33:42,600 --> 00:33:45,000
lose his money.
So Ruben is broadcasting that
657
00:33:45,000 --> 00:33:49,300
message that transaction and
then he uses this sight message
658
00:33:49,400 --> 00:33:52,600
from fever combined hit with his
own signature.
659
00:33:52,900 --> 00:33:56,100
And now he, yeah, with some key.
And now you're withdrawing the
660
00:33:56,100 --> 00:33:57,900
funds for yourself, and you won
the BET.
661
00:33:57,900 --> 00:34:00,000
And that's right.
The FIFA doesn't even need to
662
00:34:00,000 --> 00:34:01,600
know that.
There was a bad at all.
663
00:34:01,700 --> 00:34:04,100
Yep, right.
Great.
664
00:34:04,300 --> 00:34:09,400
So that gets us one step ahead
and then I think there's another
665
00:34:10,300 --> 00:34:13,199
incremental Improvement, which
were also going to discuss it.
666
00:34:13,199 --> 00:34:14,100
I right?
Yeah.
667
00:34:14,100 --> 00:34:16,900
And well, basically gets rid of
a bunch of transactions and
668
00:34:16,900 --> 00:34:20,699
makes it look even more
inconspicuous.
669
00:34:20,699 --> 00:34:24,100
So, hang on, what I just
explained to what we just
670
00:34:24,100 --> 00:34:28,000
discussed our discrete log
contracts, right from the, from
671
00:34:28,000 --> 00:34:32,600
the paper by task register, this
is the original design and not
672
00:34:32,600 --> 00:34:34,199
the design that is Currently
use.
673
00:34:34,199 --> 00:34:37,400
Okay, so now, there has been an
improvement on the original
674
00:34:37,400 --> 00:34:38,300
design.
Yeah.
675
00:34:38,300 --> 00:34:40,500
Is it still called discrete log
contract?
676
00:34:40,500 --> 00:34:41,400
Yes.
All right.
677
00:34:41,400 --> 00:34:43,300
Just an improved version of it.
It is.
678
00:34:43,300 --> 00:34:47,600
It is just, I would say it's a
slight tweak that was kind of
679
00:34:47,699 --> 00:34:50,800
obvious, but makes things a lot
easier.
680
00:34:50,900 --> 00:34:55,699
All right.
Who once said, I think I'm going
681
00:34:55,699 --> 00:34:57,400
to go give this one to Reuben.
Okay.
682
00:34:57,500 --> 00:34:59,200
Because he wrote a mailing list
boast about it.
683
00:34:59,400 --> 00:35:02,800
That is true.
Yeah, so to my knowledge, I'm
684
00:35:02,800 --> 00:35:04,700
the first person who actually
wrote it up.
685
00:35:05,200 --> 00:35:08,200
I don't think it was super like
novel because it's literally
686
00:35:08,200 --> 00:35:13,500
just I just realized, oh, you
can combine adapter signatures
687
00:35:14,000 --> 00:35:20,100
with the DLC protocol.
That pads dragic came up with
688
00:35:20,200 --> 00:35:22,200
which you're being modest,
probably Both.
689
00:35:22,400 --> 00:35:24,500
Are you saying, did you invent?
This is to show it.
690
00:35:24,500 --> 00:35:29,900
Wasn't, I don't think because
it's literally just, yes, I'm
691
00:35:29,900 --> 00:35:33,800
probably the first person who
mentioned it, but it wasn't
692
00:35:33,800 --> 00:35:36,800
like, it wasn't an invention.
I would say because it's
693
00:35:36,800 --> 00:35:39,800
literally just you're taking
adapter, signatures, which was
694
00:35:41,300 --> 00:35:44,700
invented, I guess by and
repulsed ra Ma and applying it
695
00:35:44,700 --> 00:35:47,400
to the DLC protocol.
And there's nothing like it's a
696
00:35:47,408 --> 00:35:49,900
very straightforward one-to-one
conversion.
697
00:35:50,600 --> 00:35:55,100
So, Guess I'm the first person
who maybe saw the connection,
698
00:35:55,100 --> 00:35:58,400
maybe I'm sure other people must
have seen it too, but just
699
00:35:58,400 --> 00:36:00,400
didn't mention it.
I'm at least.
700
00:36:00,400 --> 00:36:01,900
Maybe the first person to
actually mention it.
701
00:36:02,000 --> 00:36:04,100
Okay, let's put it like that.
Okay, so let's start a
702
00:36:04,100 --> 00:36:07,400
beginning.
Adopt our signatures, what so
703
00:36:07,400 --> 00:36:09,400
adapter signatures at a high
level?
704
00:36:09,400 --> 00:36:13,200
The way I would explain them is
that it's a way to do a
705
00:36:13,200 --> 00:36:15,400
signature.
That is incomplete.
706
00:36:15,900 --> 00:36:18,500
So you create a signature but
it's not actually valid.
707
00:36:18,600 --> 00:36:22,800
It's missing something.
And what is what it's missing.
708
00:36:22,800 --> 00:36:25,800
You can you can know the public
key of what is missing.
709
00:36:25,800 --> 00:36:30,100
So there's a number that is
missing that number is basically
710
00:36:30,100 --> 00:36:33,800
a private key, but you only know
the public key of what is
711
00:36:33,800 --> 00:36:35,800
missing.
So if someone reveals the
712
00:36:35,800 --> 00:36:39,700
private key, then you can
complete the signature and now
713
00:36:39,700 --> 00:36:42,100
the signature becomes valid,
right?
714
00:36:42,100 --> 00:36:46,300
I see I think when I was trying
to summarize our summarize DLCs
715
00:36:46,300 --> 00:36:49,800
earlier this was kind of what I
had in mind but okay but this is
716
00:36:49,800 --> 00:36:52,600
actually what That is, yes.
All right, got it and and it
717
00:36:52,600 --> 00:36:55,100
makes a whole lot of sense
because it makes things a lot
718
00:36:55,100 --> 00:36:58,000
easier.
So what we had earlier was this
719
00:36:58,200 --> 00:37:00,200
mechanism where you publish a
transaction.
720
00:37:00,200 --> 00:37:02,400
If you publish the wrong
transaction, you get punished.
721
00:37:03,200 --> 00:37:06,100
And now we can basically get rid
of that with adapter signatures
722
00:37:06,100 --> 00:37:09,000
because what we can do is we can
again start from our tools to
723
00:37:09,000 --> 00:37:12,200
multisig.
That means yours have and then
724
00:37:12,300 --> 00:37:14,400
we can create a bunch of
transactions in this case, two
725
00:37:14,400 --> 00:37:17,200
transactions, right, shorts wins
or I win.
726
00:37:17,700 --> 00:37:19,800
We put our signature on that
transaction.
727
00:37:20,600 --> 00:37:22,900
We do it in such a way that it's
incomplete.
728
00:37:22,900 --> 00:37:27,600
We do it with an adapter
signature and the signature wear
729
00:37:27,600 --> 00:37:31,900
shorts, winds can be completed.
If the Oracle signs Germany
730
00:37:31,900 --> 00:37:35,800
wins, right?
And my transaction, that
731
00:37:35,800 --> 00:37:38,100
signature can be completed.
If the Oracle science, the
732
00:37:38,100 --> 00:37:41,600
Netherlands wins.
And now we completely circumvent
733
00:37:41,600 --> 00:37:46,500
that issue of having to go back
and having to punish if Shore
734
00:37:46,700 --> 00:37:48,900
published the wrong transaction,
having to publishing because he
735
00:37:48,900 --> 00:37:51,300
can't publish this transaction
because The Oracle never
736
00:37:51,300 --> 00:37:55,500
revealed that Secrets, right?
So, so, in the previous example,
737
00:37:55,500 --> 00:37:58,400
I explain stats like, in a
payment Channel.
738
00:37:58,400 --> 00:38:00,900
Both of you, essentially have a
mirror version of the
739
00:38:00,900 --> 00:38:03,000
transaction.
Yeah, you both have sort of your
740
00:38:03,000 --> 00:38:05,900
own version of the transaction,
and then you publish that, and
741
00:38:05,900 --> 00:38:08,100
then from that transaction, you
can withdraw the funds.
742
00:38:08,300 --> 00:38:11,500
And in this case, you still kind
of have this mirror versions of
743
00:38:11,500 --> 00:38:14,000
the transactions.
However, you can't even publish
744
00:38:14,000 --> 00:38:17,100
it in the first place if you
don't have the adapter
745
00:38:17,100 --> 00:38:19,300
signature, is that, right?
And that's also because the
746
00:38:19,300 --> 00:38:20,400
inputs are different in this
case.
747
00:38:20,500 --> 00:38:22,500
A.
So in the previous thing that we
748
00:38:22,500 --> 00:38:25,700
described are basically the
money that takes it out of the
749
00:38:25,707 --> 00:38:29,900
multisig, the transaction that
takes it out of the multisig is
750
00:38:30,000 --> 00:38:32,800
is the same that the input side
of the transaction is the same
751
00:38:32,900 --> 00:38:35,300
as the same signatures
essentially because it's just
752
00:38:35,300 --> 00:38:38,300
taking out of a regular multisig
and what adapter so you can just
753
00:38:38,300 --> 00:38:43,200
do is they kind of create broken
signatures to get it out of the
754
00:38:43,200 --> 00:38:45,900
multisig.
So you're not actually getting
755
00:38:45,900 --> 00:38:47,600
it out of the multisig, but once
you've got it out of the
756
00:38:47,607 --> 00:38:49,700
multi-state, you can just send
it straight to your own wallet.
757
00:38:50,600 --> 00:38:54,200
The only thing is, you can't get
it out of the multisig because
758
00:38:54,300 --> 00:38:56,200
you need this, this thing from
the Oracle.
759
00:38:56,500 --> 00:38:59,300
And we both do this, we both
have this broken.
760
00:38:59,300 --> 00:39:03,200
Transaction that cannot spend
any coins and then we just hope
761
00:39:03,200 --> 00:39:05,000
that we get the private key.
Yeah.
762
00:39:05,000 --> 00:39:07,000
So there's nothing we need to
keep secret for each other.
763
00:39:07,200 --> 00:39:09,800
Well, except, you know our own
private keys but yes?
764
00:39:10,400 --> 00:39:12,100
Right, yeah.
So this does sound like a
765
00:39:12,107 --> 00:39:14,400
streamlined version of the
previous exam.
766
00:39:14,400 --> 00:39:19,100
So in this case to clarify this,
if I'm getting it right, is the
767
00:39:19,100 --> 00:39:23,400
Netherlands won.
The FIFA broadcast a message
768
00:39:23,600 --> 00:39:26,600
that says the melons one and
this time you actually use that
769
00:39:26,600 --> 00:39:31,900
message itself, Ruben to combine
that with your own signature and
770
00:39:31,900 --> 00:39:34,700
and persistent store signature
specifically, right?
771
00:39:34,700 --> 00:39:36,400
Because that's the one I need to
complete.
772
00:39:36,600 --> 00:39:39,100
I can complete my own signature.
That's not hard because I have
773
00:39:39,100 --> 00:39:42,200
my own key, but shorts also had
to put a signature on that
774
00:39:42,200 --> 00:39:43,700
transaction.
And that's the one I want a
775
00:39:43,707 --> 00:39:44,900
complete, right?
Yeah.
776
00:39:44,900 --> 00:39:46,600
When I said your signature
right?
777
00:39:46,600 --> 00:39:48,800
Okay, I kind of meant off the
tree watching that you're
778
00:39:48,800 --> 00:39:49,900
holding.
Is that right?
779
00:39:50,100 --> 00:39:50,600
Yes.
Yes.
780
00:39:50,700 --> 00:39:52,800
But it is technically shortest
things, right?
781
00:39:52,800 --> 00:39:54,600
Got it.
All right.
782
00:39:55,500 --> 00:39:58,100
Is there anything else do you
want to get into the piece and
783
00:39:58,100 --> 00:39:59,600
the G's in the?
No.
784
00:39:59,600 --> 00:40:03,300
I mean, we did before we try to
and I think conceptually, you
785
00:40:03,300 --> 00:40:05,200
know, it's again you just have
an equation with something on
786
00:40:05,200 --> 00:40:06,500
the left.
It's something I'll do right and
787
00:40:06,500 --> 00:40:08,400
you can see what the Oracle
knows and what you know, and
788
00:40:08,400 --> 00:40:11,500
that's all straightforward.
The only thing I got confused of
789
00:40:11,500 --> 00:40:14,400
is because, you know, we're
doing this fancy lightning-like
790
00:40:14,400 --> 00:40:17,400
thing, the multi sick, the
transaction goes out of the
791
00:40:17,400 --> 00:40:22,000
multisig is a joint.
Sort of a joint signature with
792
00:40:22,000 --> 00:40:24,100
something like music to as a
protocol.
793
00:40:24,400 --> 00:40:27,500
Ideally and and I was wondering
whether you can actually combine
794
00:40:27,500 --> 00:40:29,500
that with this with this Moon
math.
795
00:40:29,700 --> 00:40:31,500
Yeah.
And I'm pretty sure the answer
796
00:40:31,500 --> 00:40:33,700
is yes.
And then you think the answer is
797
00:40:33,700 --> 00:40:34,800
super straightforward?
Yes.
798
00:40:35,200 --> 00:40:38,200
And I looked at some some
comments by and Nick.
799
00:40:39,200 --> 00:40:43,000
What's his last name?
Jonas, Jonas.
800
00:40:43,000 --> 00:40:46,400
Think Jones Nick from a block
stream and he said complicated
801
00:40:46,400 --> 00:40:49,100
things about security Pros but
he also said it was possible.
802
00:40:49,700 --> 00:40:52,400
Yeah.
So, maybe that it's, you know,
803
00:40:52,400 --> 00:40:56,500
you want to talk to your local
photographer before implementing
804
00:40:56,500 --> 00:40:59,400
something that is, that is
always wise for sure.
805
00:40:59,500 --> 00:41:01,000
That is always wise.
Okay.
806
00:41:01,200 --> 00:41:03,200
But that's pretty much.
Yeah, I do have one more
807
00:41:03,200 --> 00:41:04,900
question.
I do we have a bonus section.
808
00:41:04,900 --> 00:41:08,000
Yeah, well, you while you
touched on this throughout the
809
00:41:08,000 --> 00:41:10,600
episode, at some point she was
but I do want to get back to
810
00:41:10,600 --> 00:41:13,300
this point towards the end,
which is now.
811
00:41:13,400 --> 00:41:17,500
Yeah, so in the example, so far,
we've used this very simple.
812
00:41:17,500 --> 00:41:19,800
Bet of the Netherlands vs.
Germany.
813
00:41:20,400 --> 00:41:24,100
But now we want to bet on
something like the price of
814
00:41:24,100 --> 00:41:26,800
Bitcoin in the future.
So now there's not two outcomes
815
00:41:26,800 --> 00:41:31,500
but there's I don't know because
and limited endless, not endless
816
00:41:31,500 --> 00:41:33,700
but n NR?
Yeah, sure.
817
00:41:33,700 --> 00:41:37,700
So, how would this translates to
this these Solutions?
818
00:41:37,700 --> 00:41:41,800
How are we going to do naively?
If you say, you want to do the
819
00:41:41,800 --> 00:41:44,400
dollar price?
And let's say it's a, it's a
820
00:41:44,400 --> 00:41:48,300
five digit binary number, just
to make it simple and to sort of
821
00:41:48,300 --> 00:41:52,300
anticipate where we're going.
So, that's not a huge Precision,
822
00:41:52,300 --> 00:41:55,200
but that's fine for every
combination.
823
00:41:55,400 --> 00:41:59,800
So, 45 2 to the power of 5,
that's the number of
824
00:41:59,800 --> 00:42:03,300
combinations.
We would write a contract that
825
00:42:03,300 --> 00:42:05,500
redeems, the correct amount for
me and be correct around for
826
00:42:05,500 --> 00:42:07,700
Ruben.
So this is not no longer
827
00:42:07,700 --> 00:42:11,900
completely binary, but if the
dollar price is your 0 0 0 1,
828
00:42:12,200 --> 00:42:14,600
then, you know, you get a little
bit of Satoshi.
829
00:42:14,600 --> 00:42:18,100
If the low price is 1000, you
get more Satoshi.
830
00:42:18,600 --> 00:42:20,900
That's the idea.
So we could just sign all these
831
00:42:20,900 --> 00:42:24,400
transactions but if you want to
have a bit more Precision, we
832
00:42:24,400 --> 00:42:26,200
have to pre sign a lot of
transactions.
833
00:42:26,400 --> 00:42:28,800
Yeah, but for the oracles point
of view, it's very simple.
834
00:42:28,800 --> 00:42:32,200
The article just produces
publishes a binary number and
835
00:42:32,200 --> 00:42:36,500
signs that All right, so that's
one way to do it or the Oracle
836
00:42:36,500 --> 00:42:39,200
in this case would only have to
sign one message for Oracle.
837
00:42:39,200 --> 00:42:42,700
Nothing changes is very simple.
However the two of you would
838
00:42:42,700 --> 00:42:44,800
need to do a lot more
preparation for all the
839
00:42:44,800 --> 00:42:47,300
different amounts.
And so and this works with both
840
00:42:47,300 --> 00:42:49,000
the proposals.
We just talked about right with
841
00:42:49,000 --> 00:42:52,500
the adapter signatures but also
without the Adaptive signatures
842
00:42:53,800 --> 00:42:59,600
but we can do better.
Yeah so okay so to be like
843
00:42:59,800 --> 00:43:02,800
hopefully I'm not last year but
okay so what you described us
844
00:43:02,800 --> 00:43:08,000
far is you just get the Oracle
to sign a specific number and
845
00:43:08,000 --> 00:43:10,600
that number is in binary.
In this case yeah I already made
846
00:43:10,600 --> 00:43:13,600
it in binary so it's easier to
introduce your optimization.
847
00:43:14,800 --> 00:43:21,000
So In this case, you could have
every possible number.
848
00:43:21,000 --> 00:43:24,500
So, a, 55 B would be 32 possible
outcomes.
849
00:43:24,700 --> 00:43:27,700
So you could have 32
transactions that with every
850
00:43:27,700 --> 00:43:30,400
each and every outcome a
shortened I get a different
851
00:43:30,400 --> 00:43:33,000
amount of Bitcoin depending on
the bed outcome that's what you
852
00:43:33,008 --> 00:43:34,300
described as far basically
right.
853
00:43:34,300 --> 00:43:35,100
Yeah.
Okay.
854
00:43:36,100 --> 00:43:38,100
Yeah.
So the thing that the Oracle can
855
00:43:38,100 --> 00:43:42,100
do is literally sign every bit
so there are five bits in this
856
00:43:42,100 --> 00:43:46,200
example and the bit can be
either 1 or can be 0.
857
00:43:46,800 --> 00:43:50,100
So, There are 10 possible
outcomes that the Oracle can
858
00:43:50,100 --> 00:43:54,400
basically sign and out of those
ten outcomes.
859
00:43:54,400 --> 00:43:57,700
It is only allowed to sign five
of them, because we use the same
860
00:43:57,700 --> 00:44:00,700
trick, where if it's signed
something twice, you can punish
861
00:44:00,700 --> 00:44:03,400
the Oracle.
So for every B, it can sign
862
00:44:03,400 --> 00:44:07,200
either 0 or a 1 but never both
because of its science.
863
00:44:07,200 --> 00:44:09,700
Both, then we can punish the
Oracle because we get turkey.
864
00:44:10,500 --> 00:44:13,900
And so basically, we get the
Oracle to publish these five
865
00:44:13,900 --> 00:44:18,600
numbers, which is the binary
outcome of The dollar amount
866
00:44:18,600 --> 00:44:23,200
that we want and with that
shorts and I can now create our
867
00:44:23,200 --> 00:44:26,100
transactions that we want to
create to resolve our bats, but
868
00:44:26,100 --> 00:44:28,800
we can now because we have the
binary number, we can actually
869
00:44:29,300 --> 00:44:35,300
do some some cool stuff with it.
What we can do is so hopefully
870
00:44:35,300 --> 00:44:37,600
this is follow-up, why?
I'm not sure if this is going to
871
00:44:37,607 --> 00:44:43,200
be easy but basically we have
five bits and let's say my bet
872
00:44:43,200 --> 00:44:49,100
number was so like the bet is
that if it's 7 or higher, I win
873
00:44:49,100 --> 00:44:51,700
for instance.
Yeah, that's what I was wrong in
874
00:44:51,700 --> 00:44:54,100
my example because I made it
like a dollar.
875
00:44:54,100 --> 00:44:56,700
Derivative, but in this case,
yeah, like if it's more than, if
876
00:44:56,700 --> 00:45:00,500
the dollar prize is more than
once at OC you win or is less
877
00:45:00,500 --> 00:45:03,000
than one Satoshi I win?
Yeah we want the dollar price
878
00:45:03,000 --> 00:45:04,100
with high Precision.
Yeah.
879
00:45:04,100 --> 00:45:07,100
But you could still have like
you could still have a bet where
880
00:45:07,100 --> 00:45:10,800
it's like but between 3 and 7 we
get paid out different amounts
881
00:45:10,800 --> 00:45:13,600
and seven or more.
I get paid out everything 3 or
882
00:45:13,600 --> 00:45:15,900
less you get paid on every.
Yeah from the key here is that
883
00:45:15,900 --> 00:45:20,500
the the article does not want To
like make a custom bet for
884
00:45:20,500 --> 00:45:22,400
everybody.
Yeah, it just wants to publish
885
00:45:22,400 --> 00:45:24,900
the actual dollar price.
It doesn't care what ranges you
886
00:45:24,900 --> 00:45:25,800
have in mind.
Yeah.
887
00:45:26,100 --> 00:45:29,000
So yeah.
So the nice thing is that you
888
00:45:29,000 --> 00:45:32,500
can sort of have these, you can
have multiple outcomes, you can
889
00:45:32,500 --> 00:45:36,300
combine them in a single bath,
by just adding the points
890
00:45:36,300 --> 00:45:40,100
together.
So, in this case, What we could
891
00:45:40,100 --> 00:45:45,400
do is if we want the outcome 7.
Specifically, that means that
892
00:45:45,400 --> 00:45:50,400
the first three bits the lowest
three B have to be 1 and so we
893
00:45:50,400 --> 00:45:53,300
can make it, we can make an
outcome where we just combine
894
00:45:53,300 --> 00:45:56,100
the key.
For first bit is 1, second bit
895
00:45:56,100 --> 00:46:00,100
is 1, third bit is 1.
We combine those three and debt.
896
00:46:00,100 --> 00:46:04,400
If the Oracle reveals all three
then that specific bad outcome
897
00:46:04,400 --> 00:46:06,200
becomes valid and that means 7
or higher.
898
00:46:06,200 --> 00:46:12,400
So in this case what I grab this
far is just 7 if 17 or higher
899
00:46:13,000 --> 00:46:17,100
then we need another another
transaction where we say or
900
00:46:17,600 --> 00:46:20,900
instead of the first three bits.
It's also okay.
901
00:46:20,900 --> 00:46:24,500
If the Oracle signed the fourth
bit or it's also, okay, if the
902
00:46:24,500 --> 00:46:26,800
Oracle signed the fifth bit.
Yeah, so maybe we can make the
903
00:46:26,800 --> 00:46:29,800
example a little bit simpler if
we want to do say 1 or higher?
904
00:46:31,400 --> 00:46:35,100
Yeah, that works.
Well, then that it's a if it's
905
00:46:35,100 --> 00:46:39,500
one or higher then you can
basically if the first bit is Is
906
00:46:39,500 --> 00:46:42,000
signed.
Then you win basically
907
00:46:42,000 --> 00:46:43,400
regardless of what the other
bits are.
908
00:46:44,100 --> 00:46:46,800
Well, well now not not
regardless of what the other
909
00:46:46,800 --> 00:46:48,700
bits are.
Because if the second bit is
910
00:46:48,700 --> 00:46:52,900
signed, if the answer is 2, then
the first bit is 0, so that's
911
00:46:52,900 --> 00:46:54,700
not, that's not sufficient,
crap.
912
00:46:54,700 --> 00:46:57,600
Yeah, so that's the problem.
That is, it is quite
913
00:46:57,600 --> 00:46:59,300
complicated.
Anyway, you can basically say,
914
00:46:59,300 --> 00:47:02,600
like, if these in these bits are
signed, that means this and this
915
00:47:02,600 --> 00:47:04,800
number range.
Yeah, you can make bets like
916
00:47:04,800 --> 00:47:08,000
that, and and each each digit
represents a public key
917
00:47:08,300 --> 00:47:10,300
essentially.
So, Before the Oracle had only
918
00:47:10,300 --> 00:47:13,000
one public key.
Now, the Oracle might have, I
919
00:47:13,000 --> 00:47:15,200
don't know how many bits you
want, maybe they have 32 public
920
00:47:15,200 --> 00:47:16,100
Keys.
Yeah.
921
00:47:16,200 --> 00:47:19,500
And so you can actually make a
smart contract quote on quote,
922
00:47:19,500 --> 00:47:22,500
that says something about which
public Keys have to be present,
923
00:47:23,000 --> 00:47:27,400
and this is very cool.
Yeah, and so, so this is why
924
00:47:27,400 --> 00:47:29,600
this is a bonus segment.
Basically, because it is
925
00:47:29,600 --> 00:47:32,500
complicated and I'm sure we're
losing a lot of the audience.
926
00:47:32,500 --> 00:47:37,400
But for those who are still with
us, basically you'll really what
927
00:47:37,400 --> 00:47:39,000
at a high level.
What we've been describing here.
928
00:47:39,100 --> 00:47:43,400
Is that you can have these end
and or statements with the
929
00:47:43,400 --> 00:47:45,300
oracles.
So you can even combine multiple
930
00:47:45,300 --> 00:47:49,200
Oracle outcomes and you can say
this and this and this outcome
931
00:47:49,200 --> 00:47:53,500
and this in this in this outcome
or this and this and this and
932
00:47:53,500 --> 00:47:56,700
this and you can just basically
make a whole bunch of bets based
933
00:47:56,700 --> 00:48:00,500
on whatever you want.
So it just allows for a lot of
934
00:48:00,500 --> 00:48:04,700
custom custom contracts.
Whereas the Oracle itself
935
00:48:04,700 --> 00:48:06,100
doesn't have to do a lot of
complex.
936
00:48:06,100 --> 00:48:08,600
Things just has to sign the
outcome in binary.
937
00:48:09,400 --> 00:48:12,000
Exactly.
And I guess we're not even going
938
00:48:12,000 --> 00:48:14,300
to explain anything about it
because I haven't even read it.
939
00:48:14,300 --> 00:48:16,300
But the bonus bonus.
Bonus, bonus section, would be
940
00:48:16,300 --> 00:48:21,500
that with, OP CTV, this template
thing where you can pre commit
941
00:48:21,500 --> 00:48:24,800
to a whole series of child
transactions, you can do even
942
00:48:24,800 --> 00:48:26,000
fancier things.
Yeah.
943
00:48:26,000 --> 00:48:28,600
So I can maybe very briefly try
to summarize it.
944
00:48:29,800 --> 00:48:33,100
Basically what we've done so far
is we've been pre signing all
945
00:48:33,100 --> 00:48:36,100
these transactions and if you
have a lot of bad outcomes,
946
00:48:36,100 --> 00:48:39,700
that's a lot of signatures.
And you can sort of Rid of those
947
00:48:39,700 --> 00:48:44,400
signatures by using op C TV
because up CTV, you can have in
948
00:48:44,400 --> 00:48:47,900
tap scripts, you can have a
bunch of up CTV branches and in
949
00:48:47,900 --> 00:48:51,100
every Branch commits to a
different Oracle outcome.
950
00:48:51,400 --> 00:48:53,800
And then together, with the
signature of the Oracle for that
951
00:48:53,800 --> 00:48:57,000
specific outcome, you can
publish that specific table, CTV
952
00:48:57,000 --> 00:49:00,700
branch, and what that means is
that you only have to sign one
953
00:49:00,700 --> 00:49:05,100
specific tab script with one
signature from both of us and
954
00:49:05,100 --> 00:49:07,600
that commits to every possible
bet outcome.
955
00:49:07,900 --> 00:49:12,100
And so What that means is that
it is just much faster to
956
00:49:12,100 --> 00:49:14,700
generate our bets.
Other than that, it doesn't
957
00:49:14,700 --> 00:49:17,900
really change anything, okay?
I don't understand that, but
958
00:49:17,900 --> 00:49:20,300
maybe if I listen back to the
episode, I will sure someone
959
00:49:20,300 --> 00:49:22,900
will out there back to Earth
One.
960
00:49:22,900 --> 00:49:25,800
Last Time.
What's the status of all of
961
00:49:25,800 --> 00:49:29,800
those DLCs?
Is anyone working on this, is
962
00:49:29,800 --> 00:49:33,600
there any progress?
So, I know there's a work group
963
00:49:33,900 --> 00:49:37,500
that has a mailing list that you
can follow, and I think it's a
964
00:49:37,508 --> 00:49:42,200
DLC hyphen Dev, but you'd have
to Google for that.
965
00:49:42,900 --> 00:49:46,500
I know Chris Stewart is working
on it, Lloyd for Nia is working
966
00:49:46,500 --> 00:49:52,400
on it, Lloyd Fournier, okay, he
actually, he came up with a way
967
00:49:52,400 --> 00:49:56,200
to do adapter, sequences, for
ecdsa.
968
00:49:56,200 --> 00:49:59,000
So that's sort of the kind of
the way in which it's being used
969
00:49:59,000 --> 00:50:01,600
today, even though we have
similar, I don't think the DLC.
970
00:50:01,800 --> 00:50:05,000
Because switched from ECT say to
tuition or yet.
971
00:50:05,900 --> 00:50:10,300
So I would check out their
projects, I think deal CS.
972
00:50:10,300 --> 00:50:13,900
I think, is Christy words is
project and I know Lloyd for Nia
973
00:50:13,900 --> 00:50:17,500
has a gun dot fun, which is very
funny.
974
00:50:17,900 --> 00:50:21,500
Funny name, but he has a little
DLC project where you can
975
00:50:21,500 --> 00:50:26,400
basically create a bet and you
can publish it on Twitter and he
976
00:50:26,400 --> 00:50:30,200
sort of came up with a way to
sort of encode it in Twitter.
977
00:50:30,200 --> 00:50:34,100
So you can, it's It's quite a
bit of data but it fits into it.
978
00:50:34,100 --> 00:50:35,500
Sweet.
Because it uses all these weird
979
00:50:35,500 --> 00:50:38,300
characters.
It's a fun little project so if
980
00:50:38,300 --> 00:50:40,900
you want to mess around with it
I definitely recommend that one.
981
00:50:41,800 --> 00:50:44,200
Yeah, I think Nicholas.
Doria is also working on
982
00:50:44,200 --> 00:50:47,500
something.
I think it's called n DL c--.
983
00:50:47,900 --> 00:50:49,700
Okay.
I'm not familiar with that with
984
00:50:49,700 --> 00:50:52,600
that but that's cool.
Yeah they did it.
985
00:50:52,600 --> 00:50:55,900
He used that and Chris Stewart
used his own implementation I
986
00:50:55,908 --> 00:50:59,000
guess they've done this one bet
on the presidency or the
987
00:50:59,000 --> 00:51:02,200
presidential elections like last
year We go.
988
00:51:02,800 --> 00:51:05,800
That's the only example that I
know of that it was actually
989
00:51:06,100 --> 00:51:10,900
used in some way or another.
Yeah, I used both projects on
990
00:51:10,900 --> 00:51:16,000
test Nets but not may not right?
Well I think that covers it.
991
00:51:16,300 --> 00:51:18,500
I think so too.
Yep Ruben.
992
00:51:18,500 --> 00:51:21,200
Thanks a lot for coming again
and I don't think we could have
993
00:51:21,200 --> 00:51:23,800
done this without you.
It wasn't sure we could not
994
00:51:23,800 --> 00:51:25,300
have.
It was a tough one.
995
00:51:25,300 --> 00:51:25,900
Yeah.
For sure.
996
00:51:25,900 --> 00:51:30,100
It's hard to explain it as well
but I think we did a decent job
997
00:51:30,100 --> 00:51:32,000
even though I'm sure not
everything was clear.
998
00:51:33,000 --> 00:51:34,900
At least I understand it better.
Great.
999
00:51:35,500 --> 00:51:37,300
So do I shows?
So that's good.
1000
00:51:37,300 --> 00:51:39,600
That's that's it.
We want something today.
1001
00:51:40,400 --> 00:51:44,100
All righty, in that case, thank
you for listening to bitcoin
1002
00:51:44,100 --> 00:51:45,800
explained.
There you go.
00:00:19,600 --> 00:00:20,900
Life from it.
Reacts.
2
00:00:20,900 --> 00:00:27,700
This is Bitcoin explained.
Hello Asher's, I'm good and
3
00:00:27,700 --> 00:00:29,400
welcome back.
Ruben, thank you.
4
00:00:29,400 --> 00:00:31,600
Good to be.
Back back-to-back episodes for
5
00:00:31,600 --> 00:00:33,400
you.
Yeah, sure.
6
00:00:33,500 --> 00:00:35,100
Almost.
All right, has there not been an
7
00:00:35,108 --> 00:00:36,400
episode in between, I don't even
know.
8
00:00:36,600 --> 00:00:39,600
We should we skip last one?
So, okay, I know you truly
9
00:00:39,600 --> 00:00:42,900
back-to-back for you.
Anytime happy, you are back
10
00:00:42,900 --> 00:00:47,100
because we're gonna discuss a
particularly interesting, and at
11
00:00:47,100 --> 00:00:49,300
least, in my opinion, pretty
complex topic.
12
00:00:49,400 --> 00:00:54,000
Mmm, we did have a, we had a
call the three of us before we
13
00:00:54,000 --> 00:00:55,800
started recording this this
afternoon.
14
00:00:56,200 --> 00:01:00,800
And it was basically a call
between the two of you because I
15
00:01:00,800 --> 00:01:04,400
Taps I was after like a minute
and I specially when it became
16
00:01:04,400 --> 00:01:08,400
mathematical method when the
mathematics came into play.
17
00:01:08,400 --> 00:01:11,300
That's where it went a little
bit over my head.
18
00:01:11,300 --> 00:01:14,600
So, let's see, let's see how we
can manage this episode today.
19
00:01:14,700 --> 00:01:17,400
Yeah, for me, it was also just
confusing initially, especially
20
00:01:17,400 --> 00:01:19,700
reading some of the
documentation that, you know,
21
00:01:19,800 --> 00:01:23,400
explains some of the assumptions
behind it and then just skips
22
00:01:23,400 --> 00:01:26,500
all all the details that I care
about to actually understand it.
23
00:01:26,600 --> 00:01:29,700
It's not the full math.
But yeah, it's the cat.
24
00:01:30,000 --> 00:01:32,400
Me one more thing, tell me one
more thing but then you're if
25
00:01:32,400 --> 00:01:34,800
you're listening to a high-level
talk by somebody, who's not
26
00:01:34,800 --> 00:01:37,100
trying to make a technical,
they're not filling out the
27
00:01:37,100 --> 00:01:40,400
details and then if you want to
read an actual spec, it's too
28
00:01:40,400 --> 00:01:41,900
technical.
Yeah.
29
00:01:42,100 --> 00:01:43,800
So yeah.
So the thing we are going to
30
00:01:43,800 --> 00:01:47,500
discuss our is discrete lock
contracts.
31
00:01:47,500 --> 00:01:51,700
Also known as DLCs.
Yeah, and it's spelled discrete
32
00:01:51,700 --> 00:01:58,400
EET, which kind of means, like,
you know, careful in what you're
33
00:01:58,400 --> 00:02:04,600
saying versus is discreet with
ete, which is single digits,
34
00:02:04,900 --> 00:02:11,500
like a discrete number, but it's
a pun Yeah, cannot say an audio
35
00:02:11,500 --> 00:02:13,900
because it sounds the same.
I think the end result is that
36
00:02:13,900 --> 00:02:18,100
people are just confused but
it's a, it's funny for those who
37
00:02:18,100 --> 00:02:19,300
aren't to know.
Yeah.
38
00:02:19,300 --> 00:02:22,800
Anyway, so let's start with a
short summary of what discreet
39
00:02:22,800 --> 00:02:28,000
long lock contract actually are.
I would summarize it as their
40
00:02:28,000 --> 00:02:29,600
eye.
They are essentially smart
41
00:02:29,600 --> 00:02:32,900
contracts for Bitcoin and a
little bit more specifically.
42
00:02:32,900 --> 00:02:35,800
They are bets essentially.
Yeah.
43
00:02:36,400 --> 00:02:40,300
And the interesting thing about
bets is That many types of
44
00:02:40,300 --> 00:02:43,500
financial contracts are
essentially bets.
45
00:02:43,500 --> 00:02:48,800
Even if we don't normally think
of them as bad that you can sort
46
00:02:48,800 --> 00:02:50,800
of distill them.
As bad like right there not
47
00:02:50,800 --> 00:02:53,300
gambling necessarily, they could
just be saying, I think the
48
00:02:53,308 --> 00:02:56,900
dollar is going to go up.
So I want a derivative project
49
00:02:57,100 --> 00:03:00,100
product that follows the dollar
price and you could call that
50
00:03:00,100 --> 00:03:02,300
bedding.
But it's the same thing to do
51
00:03:02,300 --> 00:03:05,200
even as a non gambler.
Yeah, yeah, exactly.
52
00:03:05,200 --> 00:03:08,900
Or like an insurance.
If you're insuring your house in
53
00:03:09,000 --> 00:03:12,200
Way you're sort of betting that
your house will burn down.
54
00:03:12,900 --> 00:03:16,000
Yes, and then if you lose the
bat and you didn't, you know,
55
00:03:16,000 --> 00:03:18,400
your house is still there,
you're kind of happy but, you
56
00:03:18,400 --> 00:03:21,100
know, they cost a little bit of
money so that's sort of the down
57
00:03:21,100 --> 00:03:23,300
payment.
Well, if your house burns down
58
00:03:23,300 --> 00:03:25,700
you, you win the bet and you get
all this money.
59
00:03:26,000 --> 00:03:28,400
So a lot of financial products
are essentially bet.
60
00:03:28,400 --> 00:03:33,700
So that's why it's interesting
to think of how can we bring
61
00:03:33,700 --> 00:03:38,700
this sort of betting to bitcoin
and then what we really want or
62
00:03:38,700 --> 00:03:41,000
you know, No, the essence of
smart contract with smart
63
00:03:41,000 --> 00:03:45,800
contracts are ideally, at least,
is that these bets are executed
64
00:03:46,200 --> 00:03:48,900
automatically, right?
Yes.
65
00:03:48,900 --> 00:03:52,300
And in the case of blockchain,
not just automatically but also
66
00:03:52,300 --> 00:03:54,400
in a way that does not require
any trust.
67
00:03:55,000 --> 00:03:59,500
Now, just a spoiler, there is
this thing called The Oracle
68
00:03:59,500 --> 00:04:02,600
problem and we are not solving
the Oracle problem.
69
00:04:02,600 --> 00:04:05,700
And for the article problem,
basically means that if you have
70
00:04:05,700 --> 00:04:08,100
anything that relies on
information, outside the
71
00:04:08,108 --> 00:04:11,100
blockchain, Well, anything
except the knowledge of a
72
00:04:11,100 --> 00:04:15,400
private key, or Ash, if you need
any kind of information from
73
00:04:15,400 --> 00:04:17,600
outside blockchain like the
weather or the dollar price,
74
00:04:17,600 --> 00:04:20,100
there has to be an oracle that
knows this thing.
75
00:04:20,500 --> 00:04:23,400
And the blockchain is no idea of
the article is lying or not, and
76
00:04:23,400 --> 00:04:26,300
we're not going to solve that.
So everything we're doing here
77
00:04:26,300 --> 00:04:29,400
still assumes that the Oracle is
honest and then there are some
78
00:04:29,400 --> 00:04:33,200
tricks that you can use to make
it slightly more honest, but
79
00:04:33,200 --> 00:04:35,600
it's not a perfect solution.
Well that would that is kind of
80
00:04:35,600 --> 00:04:38,200
what we're doing, right?
We're sort of Trying to minimize
81
00:04:38,200 --> 00:04:41,200
the trust in the Or at least a
little bit.
82
00:04:41,500 --> 00:04:43,300
Well, yeah.
We're also trying to reduce the
83
00:04:43,300 --> 00:04:46,200
workload for the Oracle and
increased it.
84
00:04:46,200 --> 00:04:47,800
Plausible deniability for the
Oracle.
85
00:04:47,800 --> 00:04:50,900
Yeah that's that's I think an
important point where the Oracle
86
00:04:50,900 --> 00:04:53,700
doesn't have to be directly
involved with your bets, it can
87
00:04:53,700 --> 00:04:57,500
just post the outcome and then
you take the outcome and you
88
00:04:57,500 --> 00:05:00,200
resolve your bet with that
outcome without the Oracle
89
00:05:00,200 --> 00:05:02,400
specifically, having to know
that you were even betting,
90
00:05:02,800 --> 00:05:04,500
right?
And that also makes the Oracle
91
00:05:04,600 --> 00:05:07,300
hopefully more neutral though.
Again, you cannot guarantee
92
00:05:07,300 --> 00:05:08,500
that.
Yeah, okay.
93
00:05:08,500 --> 00:05:12,500
So Before we get into it let's
pick a very nice and easy sort
94
00:05:12,500 --> 00:05:14,300
of bats that everyone will
understand this.
95
00:05:14,300 --> 00:05:17,900
A bet if it's going to rain
tomorrow, I don't like that one
96
00:05:17,900 --> 00:05:19,700
shorts.
How about especially because the
97
00:05:19,700 --> 00:05:23,900
answer tends to be yes here.
So let's go for the World Cup
98
00:05:23,900 --> 00:05:26,100
final.
We'll have the World Cup later.
99
00:05:26,100 --> 00:05:29,000
This year, let's assume the
World Cup final was the
100
00:05:29,008 --> 00:05:30,300
Netherlands vs.
Germany.
101
00:05:30,800 --> 00:05:33,000
And now we're going to bet on
the winner of the World Cup.
102
00:05:33,000 --> 00:05:34,700
Final it.
Alright yeah.
103
00:05:34,800 --> 00:05:38,800
Alright trivial but that will be
the best throughout this
104
00:05:38,800 --> 00:05:40,400
episode.
Obviously, the Netherlands gonna
105
00:05:40,400 --> 00:05:42,300
win.
But okay, the Netherlands vs.
106
00:05:42,300 --> 00:05:43,700
Germany.
All right, in the World Cup
107
00:05:43,700 --> 00:05:47,800
finals.
So The very let's start at the
108
00:05:47,800 --> 00:05:49,800
beginning.
We want to solve this problem.
109
00:05:51,000 --> 00:05:52,800
Ruben ensures.
You want to bet against each
110
00:05:52,800 --> 00:05:55,300
other, Reuben, you're betting on
the nether Netherlands,
111
00:05:55,300 --> 00:05:57,100
apparently shorts, you're
betting on Germany.
112
00:05:57,600 --> 00:06:00,700
Now we need to make this
trustless somehow.
113
00:06:01,000 --> 00:06:05,500
I think the most basic solution
is to create a multi sick.
114
00:06:05,800 --> 00:06:08,900
Well, you could create a multi
sick between the two of you to
115
00:06:08,900 --> 00:06:11,000
of to.
But then you have the obvious
116
00:06:11,000 --> 00:06:13,800
problem that the loser might not
cooperate, right?
117
00:06:13,800 --> 00:06:17,300
Yeah yeah.
So if we take The Next Step will
118
00:06:17,300 --> 00:06:19,600
take it one step further will
introduce the Oracle.
119
00:06:19,600 --> 00:06:21,700
That's going to be me both of
you trust me.
120
00:06:22,100 --> 00:06:24,700
So now we create a two out of
three multisig.
121
00:06:25,300 --> 00:06:29,000
And now, the final has been
plate.
122
00:06:29,000 --> 00:06:31,800
The Netherlands has won at this
point.
123
00:06:32,300 --> 00:06:35,700
Either shorts can cooperate with
Ruben to get all the money in
124
00:06:35,700 --> 00:06:40,100
the multi-sector, Reuben, or if
you're short, doesn't cooperate,
125
00:06:40,100 --> 00:06:42,400
then Reuben can contact me.
I'll step in.
126
00:06:42,400 --> 00:06:45,000
How else?
You know, all acknowledge it in
127
00:06:45,000 --> 00:06:46,000
a 125.
Anal.
128
00:06:46,100 --> 00:06:50,000
So I'll provide my signature and
I'll help Reuben get the money.
129
00:06:50,000 --> 00:06:51,900
Yeah.
And now, because I can do this
130
00:06:51,900 --> 00:06:54,400
and because both of, you know, I
can do this and shorts in
131
00:06:54,400 --> 00:06:56,600
particular, you know, for a fact
that I can do this.
132
00:06:57,000 --> 00:06:59,600
So this point there's really no
reason for you to obstruct.
133
00:06:59,600 --> 00:07:01,300
You might as well just
cooperate, right?
134
00:07:01,400 --> 00:07:04,700
Yeah, exactly.
And so this could just be a
135
00:07:04,700 --> 00:07:08,700
trusted friend or this could be
you know the actual organization
136
00:07:08,700 --> 00:07:11,900
that runs the soccer match that
you know has no reason to lie
137
00:07:11,900 --> 00:07:15,000
about the result and is subject
to some scrutiny.
138
00:07:15,100 --> 00:07:17,900
But the problem is Of course, if
you want to, if you want to do a
139
00:07:17,900 --> 00:07:22,400
contract with this, this world
cup organizer, you know, you
140
00:07:22,400 --> 00:07:25,000
need to involve them you, they
actually need to sign something
141
00:07:25,000 --> 00:07:28,000
specifically for you, and they
may not want to do that because
142
00:07:28,000 --> 00:07:31,800
hey, then they're cooperating
with sports betting or they, you
143
00:07:31,800 --> 00:07:33,300
know, they don't feel like doing
that.
144
00:07:34,400 --> 00:07:37,100
I don't know.
Yeah, the what you're saying is
145
00:07:37,100 --> 00:07:41,700
that work, there are a number of
problems with this solution.
146
00:07:41,900 --> 00:07:45,300
One of them, is it requires me
to actually be actively
147
00:07:45,300 --> 00:07:46,500
involved?
Moved in your bed.
148
00:07:46,500 --> 00:07:50,000
Even before the bed is made.
I need to provide my public key
149
00:07:50,000 --> 00:07:52,100
and I sort of need to know what
you guys are doing.
150
00:07:52,100 --> 00:07:53,700
And I need to agree with that.
Yeah.
151
00:07:53,700 --> 00:07:55,800
And then after that, you might
need my help.
152
00:07:55,800 --> 00:08:01,000
And I might do stuff.
And if it's just two of you,
153
00:08:01,000 --> 00:08:04,000
that's maybe, you know,
acceptable but now tens of
154
00:08:04,000 --> 00:08:06,900
thousands of people want to make
the same bet and I would have to
155
00:08:06,900 --> 00:08:09,700
provide my public key to ten
thousands of people.
156
00:08:09,700 --> 00:08:12,700
And now it starts to become a
lot of work right now and they
157
00:08:12,700 --> 00:08:15,200
don't even know what you exactly
are betting, right?
158
00:08:15,200 --> 00:08:18,000
So they They would have to read
the terms and conditions of each
159
00:08:18,000 --> 00:08:21,900
of your bats to even know which
side to have to sign because he
160
00:08:21,900 --> 00:08:24,900
can't tell by the public key
which, which side I Rubin bedded
161
00:08:24,900 --> 00:08:26,600
on.
Yeah, so yeah, it's pretty
162
00:08:26,600 --> 00:08:28,700
tedious.
And then there's a problem that
163
00:08:28,700 --> 00:08:31,500
I need to know what you guys
were doing, which is sort of bad
164
00:08:31,500 --> 00:08:33,600
for your privacy.
I know need to know which coins
165
00:08:33,600 --> 00:08:35,799
are yours and what they're used
for.
166
00:08:37,000 --> 00:08:39,900
Are there more problems?
I think.
167
00:08:39,900 --> 00:08:41,200
I think you summed it up pretty
well.
168
00:08:41,799 --> 00:08:43,600
That's it.
I think it's possible.
169
00:08:43,600 --> 00:08:45,600
It's not, it's not impossible.
Yeah.
170
00:08:45,800 --> 00:08:52,100
Obviously, I could try to cheat
by, for example, shows could try
171
00:08:52,100 --> 00:08:54,500
to bribe me.
He could contact me, say, hey
172
00:08:54,500 --> 00:08:58,900
Aaron, let's share the price,
forget about Reuben, let's share
173
00:08:58,900 --> 00:09:01,300
price between us and, you know,
I could be corrupted in this
174
00:09:01,300 --> 00:09:02,900
way.
It's not a problem.
175
00:09:03,300 --> 00:09:04,700
Lots of problems with this
solution.
176
00:09:04,700 --> 00:09:08,000
Even though technically Works,
yes, I will say there is an
177
00:09:08,008 --> 00:09:11,800
upside to it as well, which is
that, if the bats somehow is
178
00:09:11,800 --> 00:09:14,900
unclear or I don't know.
There's a meteor crashes on the
179
00:09:14,900 --> 00:09:18,500
Earth and Finals are canceled.
And now we're like, oh, what are
180
00:09:18,500 --> 00:09:22,800
we going to do with our bets?
Then you being a human, you can
181
00:09:22,800 --> 00:09:26,500
maybe, you know, sort of have a
day, you can make a decision on
182
00:09:26,500 --> 00:09:30,100
RBF.
That's maybe one at one small
183
00:09:30,100 --> 00:09:31,800
Advantage but I don't think it's
a great one.
184
00:09:32,300 --> 00:09:34,300
Okay, method to remember that
one.
185
00:09:34,400 --> 00:09:37,500
Yeah, so let's try to improve on
this solution shows.
186
00:09:37,500 --> 00:09:40,600
You wanted to improve on the
solution Yes.
187
00:09:41,400 --> 00:09:44,800
So today I learned about the
concept which I had not
188
00:09:44,800 --> 00:09:46,600
followed, and it's called
reality Keys.
189
00:09:46,600 --> 00:09:49,900
Yeah, and this is actually, a
pretty simple idea.
190
00:09:50,700 --> 00:09:54,500
Takes it one step further did
this is an existing thing.
191
00:09:54,500 --> 00:09:57,300
It wasn't exist.
This was an existing it existed
192
00:09:57,300 --> 00:10:01,600
between 2014 and 2018 and it
just disappeared.
193
00:10:01,600 --> 00:10:04,100
And I don't think a lot of
Bitcoin is remember, but it was
194
00:10:04,100 --> 00:10:06,900
actually kind of a, a really
awesome little platform.
195
00:10:07,400 --> 00:10:09,700
I think.
Well, it's a good General.
196
00:10:09,800 --> 00:10:11,900
Idea is still exists.
Of course, you can do this.
197
00:10:11,900 --> 00:10:15,000
Yeah, so what, what year World
Cup leaders in this case,
198
00:10:15,000 --> 00:10:16,300
probably they would be the
Oracle.
199
00:10:16,300 --> 00:10:19,900
What they would do is they would
say here is to public Keys,
200
00:10:20,100 --> 00:10:23,700
public key, a or bubble quien, I
guess.
201
00:10:24,500 --> 00:10:27,800
And public Edie is in the, the
Netherlands, public key and the
202
00:10:27,800 --> 00:10:30,900
Germany public key.
And depending on who wins, we
203
00:10:30,900 --> 00:10:34,900
will publish one of those keys.
We will probably do private key
204
00:10:34,900 --> 00:10:39,300
of one of those two keys, right?
So either winner, both winners
205
00:10:39,300 --> 00:10:44,000
have a A key attribute to them
essentially by reality keys, by
206
00:10:44,600 --> 00:10:50,300
whoever's running this and based
on the winner, depending on who
207
00:10:50,300 --> 00:10:52,300
wins.
They will publish one of the
208
00:10:52,300 --> 00:10:54,800
corresponding private keys and
they promise to only publish
209
00:10:54,800 --> 00:10:57,100
one.
So in that case, Reuben and I
210
00:10:57,100 --> 00:11:02,000
set up our little multisig with
again, two out of three.
211
00:11:02,000 --> 00:11:07,800
I think the threshold one key of
you, one key of me and then the
212
00:11:08,300 --> 00:11:11,500
Germany key, I guess, what?
Would send it to me and the
213
00:11:11,500 --> 00:11:13,500
Netherlands.
Keyword, send it to you a little
214
00:11:13,500 --> 00:11:15,400
bit more complicated.
Well, but it was essentially, I
215
00:11:15,400 --> 00:11:18,800
guess you would set up to 12 to
3 multi 6, right?
216
00:11:18,800 --> 00:11:23,100
You can do well you can make it
a to of, to wear, one is my key,
217
00:11:23,100 --> 00:11:26,400
plus the Netherlands key.
And the other key is shorts plus
218
00:11:26,400 --> 00:11:28,200
the dry key that also makes
sense.
219
00:11:28,200 --> 00:11:31,200
Yeah.
But the the thing is that really
220
00:11:31,200 --> 00:11:33,200
Keys doesn't care.
They're just going to issue the
221
00:11:33,200 --> 00:11:35,900
key and we get to deal with that
key whatever you want.
222
00:11:35,900 --> 00:11:39,200
So we can set up we can set it
up in any way that we like, but
223
00:11:39,200 --> 00:11:40,800
that would be Be a plausible way
from.
224
00:11:40,800 --> 00:11:43,800
Yeah I guess we put the money
into the multisig and then we
225
00:11:43,800 --> 00:11:45,900
take it out.
We have two different Precinct
226
00:11:45,900 --> 00:11:47,700
ejections right one that takes
it out.
227
00:11:48,600 --> 00:11:49,800
Or something like that.
Oh yeah.
228
00:11:49,800 --> 00:11:54,500
You probably wanted two out of
three where the third key is.
229
00:11:54,500 --> 00:11:57,800
You and me together.
So on, well, that might also not
230
00:11:57,800 --> 00:11:58,800
make sense.
Yeah, I'm not sure.
231
00:11:58,800 --> 00:12:02,200
But anyway, like, you need to
have a fallback for if the, if
232
00:12:02,200 --> 00:12:04,400
Ray leakey's doesn't issue any
key whatsoever.
233
00:12:04,800 --> 00:12:06,600
Yeah, so you need to take that
into account as well, which we
234
00:12:06,600 --> 00:12:08,600
didn't those farm.
And there's another problem that
235
00:12:08,600 --> 00:12:12,800
they might actually reveal both
keys, which is a problem.
236
00:12:13,100 --> 00:12:16,800
And that's not a problem in the
first situation because they're
237
00:12:16,800 --> 00:12:19,500
just putting the signature.
ER, I guess they could also just
238
00:12:19,500 --> 00:12:22,100
sign to transactions.
Then you have to fight over it
239
00:12:22,100 --> 00:12:24,700
with replaced by fee.
Well, yeah, you can have two
240
00:12:24,700 --> 00:12:28,400
bats with the interactive Oracle
and and it could resolve this to
241
00:12:28,400 --> 00:12:31,200
bets in a different way, right?
Even though there's one one
242
00:12:31,200 --> 00:12:33,800
outcome.
So I think we're watching this.
243
00:12:33,800 --> 00:12:35,900
I think the simple solution
would be to have three out of
244
00:12:35,908 --> 00:12:38,700
four rights and then you will
sign.
245
00:12:38,700 --> 00:12:40,200
Am I saying this right?
What's it?
246
00:12:40,200 --> 00:12:43,600
What's the solution?
Because we're a different
247
00:12:43,600 --> 00:12:46,100
results depending on which
public he gets published.
248
00:12:46,300 --> 00:12:49,200
Yeah, if it's just three out of
four, The script doesn't care
249
00:12:49,200 --> 00:12:53,400
which three so it would it would
just send the money to one
250
00:12:53,400 --> 00:12:56,200
person regardless of who wins.
So you need to think about this
251
00:12:56,200 --> 00:12:58,000
a little bit two out of four.
I think.
252
00:12:58,600 --> 00:13:02,500
Anyway it's got afford it makes
I think I think that works.
253
00:13:02,800 --> 00:13:04,700
I think I sold it.
That's the one.
254
00:13:04,800 --> 00:13:06,500
Okay.
All right we figure it out.
255
00:13:06,500 --> 00:13:11,400
Two out of four however we're
still not so yeah to clarify two
256
00:13:11,400 --> 00:13:13,100
out of four because then it
work.
257
00:13:13,100 --> 00:13:15,700
Again can still do.
There's still a problem?
258
00:13:15,700 --> 00:13:18,600
Yeah.
Sound is very Simple on paper
259
00:13:18,600 --> 00:13:21,400
until we start circling figured
it out life on the podcast.
260
00:13:21,400 --> 00:13:23,900
Yeah, it's yeah, the platform is
down.
261
00:13:23,900 --> 00:13:25,100
You can't really test it
anymore.
262
00:13:25,100 --> 00:13:27,000
But you know what was
interesting about the platform
263
00:13:27,000 --> 00:13:28,800
is that it actually worked with
apis.
264
00:13:28,800 --> 00:13:30,800
So, it was just connected to a
bunch of apis.
265
00:13:31,300 --> 00:13:34,400
And you could then, just tell it
to pay attention to that API
266
00:13:34,400 --> 00:13:37,700
and, and publish a key depending
on an event from the diep.
267
00:13:37,700 --> 00:13:40,600
I so it was semi-automated in
that regard.
268
00:13:41,100 --> 00:13:43,900
So it was kind of a Nifty little
platform that I think is very
269
00:13:44,500 --> 00:13:47,200
similar, but you know, one sort
of downside I think too that
270
00:13:47,200 --> 00:13:50,800
that I'm that we're going to
address as well, is that it was
271
00:13:50,800 --> 00:13:53,400
mostly centered around binary
bets, right?
272
00:13:53,400 --> 00:13:57,500
Where either one party or the
other party is going to win, or
273
00:13:57,700 --> 00:14:01,100
the price of Bitcoin is going to
be X at this date, things like
274
00:14:01,100 --> 00:14:04,000
that.
But so not very you wouldn't
275
00:14:04,000 --> 00:14:07,600
have these kind of bats with a
granular outcome where depending
276
00:14:07,600 --> 00:14:10,700
on the price, I get this amount
of Bitcoin and shorts, gets some
277
00:14:10,700 --> 00:14:13,000
other amount of Bitcoin, right?
And especially when you're
278
00:14:13,000 --> 00:14:16,200
talking about say the US dollar
price if that's what you're
279
00:14:16,200 --> 00:14:18,900
betting on ya then.
Could be have all sorts of
280
00:14:18,900 --> 00:14:20,700
numbers involved.
Okay.
281
00:14:21,000 --> 00:14:24,300
So so anyways, real tikis I
don't understand how it would
282
00:14:24,300 --> 00:14:26,700
actually work, but there's
probably some way to make it
283
00:14:26,700 --> 00:14:28,300
work.
I'm sure there's a way where the
284
00:14:28,300 --> 00:14:31,000
Oracle just publish the private
key depending on the winner.
285
00:14:31,600 --> 00:14:34,400
But we just discuss that as a
sort of stepping stone for the
286
00:14:34,400 --> 00:14:38,900
actual subject of this specific
podcast which is DLC stand.
287
00:14:38,900 --> 00:14:40,100
That's sort of what we're
getting out.
288
00:14:40,100 --> 00:14:42,500
Yeah.
Now, right, so, who wants to
289
00:14:42,700 --> 00:14:49,200
give DLCs vertical, Our all
starts and then maybe short skin
290
00:14:49,500 --> 00:14:52,700
can continue from where I begin.
Right?
291
00:14:53,700 --> 00:14:58,800
So I think the DLC paper came
from tattooed Raja Who currently
292
00:14:58,900 --> 00:15:01,400
works on you trick.
So very interesting project as
293
00:15:01,400 --> 00:15:03,100
well.
Which I think we discussed we
294
00:15:03,100 --> 00:15:05,700
have yeah.
Also one of the co-authors of
295
00:15:05,700 --> 00:15:07,300
the lightning white.
Yeah.
296
00:15:07,400 --> 00:15:09,700
And when lightening and work
papers, well, yeah, good points.
297
00:15:11,100 --> 00:15:17,500
So the idea there is to
basically have The bets be
298
00:15:17,500 --> 00:15:20,200
Channel where you lock up your
funds together with the
299
00:15:20,200 --> 00:15:24,300
counterparty and then from that
states where you have a channel.
300
00:15:25,100 --> 00:15:27,100
So they're very similar to a
lightning channel, right?
301
00:15:27,100 --> 00:15:30,300
There's two of two and you would
have to have some kind of
302
00:15:30,600 --> 00:15:34,200
transaction where you can exit
out of it in case you disagree
303
00:15:34,200 --> 00:15:36,500
or something.
So, hang on, in this specific
304
00:15:36,500 --> 00:15:39,700
case, essentially, Ruben
ensures, the two of you would
305
00:15:39,700 --> 00:15:43,900
open a payment Channel which
looks a little bit like a
306
00:15:43,900 --> 00:15:45,500
lightning Channel.
Yeah, right.
307
00:15:45,500 --> 00:15:47,300
Okay.
Hey Goldie, the initial cell,
308
00:15:47,300 --> 00:15:49,900
which essentially means you're
both depositing funds in this
309
00:15:49,900 --> 00:15:51,100
channel, right?
Yes.
310
00:15:51,500 --> 00:15:54,500
But the way that you can get the
funds out is sort of the key
311
00:15:54,500 --> 00:15:57,000
difference.
We're now in order to get your
312
00:15:57,000 --> 00:16:02,000
funds out, You have a bunch of
transactions that are basically
313
00:16:02,000 --> 00:16:06,700
better outcomes and so in our
example, Rock up Netherlands vs.
314
00:16:06,700 --> 00:16:10,100
Germany, we would have two
transactions.
315
00:16:10,100 --> 00:16:15,300
Basically one transaction would
be transaction, wear shorts wins
316
00:16:15,300 --> 00:16:20,400
so he can publish his version of
the transaction and then he can
317
00:16:20,400 --> 00:16:23,000
spend that money with both his
key.
318
00:16:23,000 --> 00:16:28,500
Plus, the key of the Oracle
where the Oracle says, that's a
319
00:16:28,500 --> 00:16:31,600
German.
You won, but then there's also a
320
00:16:31,600 --> 00:16:36,000
time lock because if Shores
publishes his transaction, but
321
00:16:36,000 --> 00:16:38,900
that transaction is actually
not.
322
00:16:39,000 --> 00:16:41,200
The one that the Oracle
published.
323
00:16:41,900 --> 00:16:45,000
Well then basically, what
happens is that he can't spend
324
00:16:45,000 --> 00:16:46,300
it because he doesn't have both
keys.
325
00:16:46,300 --> 00:16:49,300
You only one of the keys then
the time-lock expires and the
326
00:16:49,300 --> 00:16:51,300
time-lock says that after the
time expires.
327
00:16:51,400 --> 00:16:53,100
I get to take the money.
Okay?
328
00:16:53,100 --> 00:16:57,400
So hang on in a lightning
Channel if I'm remembering
329
00:16:57,400 --> 00:17:01,100
correctly, which I think I am.
Am both of you would essentially
330
00:17:01,400 --> 00:17:04,900
you've exchanged signed
transactions, right?
331
00:17:04,900 --> 00:17:09,000
You both have different version
of the Redemption.
332
00:17:09,000 --> 00:17:10,400
Transaction.
Am I saying that right?
333
00:17:10,400 --> 00:17:13,500
Yeah, yeah.
And so in this case, both of
334
00:17:13,500 --> 00:17:17,599
these transactions depends on
the outcome of the match
335
00:17:17,599 --> 00:17:20,200
essentially.
So you would have the
336
00:17:20,200 --> 00:17:23,500
transaction that should be
broadcast if the Nellis winds
337
00:17:23,500 --> 00:17:24,300
Reuben.
Yeah.
338
00:17:24,300 --> 00:17:28,200
And then short has a slightly
different version of an almost
339
00:17:28,200 --> 00:17:30,500
identical.
Transaction that he should
340
00:17:30,500 --> 00:17:33,100
broadcast if Germany wins.
Yeah, right.
341
00:17:33,100 --> 00:17:36,800
Yeah, okay, so and in both
cases, if we happen to broadcast
342
00:17:36,800 --> 00:17:41,000
the wrong one, But you know you
don't have to do but then the
343
00:17:41,000 --> 00:17:44,000
other side can just take the yes
this what was wrong was just
344
00:17:44,000 --> 00:17:45,600
explaining.
So the Netherlands woman our
345
00:17:45,600 --> 00:17:50,000
example and sure spends on
Germany's or shorts has the
346
00:17:50,200 --> 00:17:52,900
transaction that he should
broadcast only if Germany wins
347
00:17:53,100 --> 00:17:57,000
but he broadcasts It.
Anyways, the reason he can't
348
00:17:57,000 --> 00:18:00,900
actually claim the funds is
because he needs something from
349
00:18:00,900 --> 00:18:04,500
the Oracle in combination with
his own signature in order to
350
00:18:04,500 --> 00:18:06,200
actually claim the funds.
Right?
351
00:18:06,200 --> 00:18:08,900
Yes.
So he because He can't do that.
352
00:18:08,900 --> 00:18:10,700
Now.
A time lock is ticking.
353
00:18:11,000 --> 00:18:15,600
Yeah, he's gonna clock out at
which point the money sent to
354
00:18:15,600 --> 00:18:18,100
you Ruben.
Yeah, so that's sort of a strong
355
00:18:18,100 --> 00:18:21,800
disincentive disincentive for
short to try to claim the money
356
00:18:21,800 --> 00:18:23,500
even though we didn't win.
Yes.
357
00:18:23,700 --> 00:18:25,600
Okay.
So this it's useful to know here
358
00:18:25,600 --> 00:18:28,200
that a transaction, you know,
has inputs and outputs and so
359
00:18:28,200 --> 00:18:31,300
the transaction like that both
of us are transactions that go
360
00:18:31,300 --> 00:18:35,300
out of this pot that we put the
money in or this channel both of
361
00:18:35,300 --> 00:18:38,800
them have the same inputs.
So both of Us can just throw it
362
00:18:38,800 --> 00:18:41,600
on the Chain because they, you
know, but the outputs are
363
00:18:41,600 --> 00:18:43,000
different.
And so we need another
364
00:18:43,000 --> 00:18:45,600
transaction to actually take the
money to really own it.
365
00:18:45,600 --> 00:18:48,100
And that's where the Oracle
signature comes in, right?
366
00:18:48,100 --> 00:18:50,600
So, so let me ask about it.
So the Netherlands won.
367
00:18:50,700 --> 00:18:52,000
Reuben.
You bet on the Netherlands?
368
00:18:52,000 --> 00:18:54,000
Yeah.
So we just gave the example,
369
00:18:54,000 --> 00:18:56,000
where shows his trying to cheat.
Let's forget about that.
370
00:18:56,000 --> 00:18:59,000
Now, you're just broadcasting
the legitimate transaction?
371
00:18:59,100 --> 00:19:02,200
Yeah.
Which requires now a signature
372
00:19:02,200 --> 00:19:05,700
from you, as well as what's the
other thing?
373
00:19:05,700 --> 00:19:06,700
Exactly.
Yeah.
374
00:19:06,700 --> 00:19:10,400
So so really It is and we have
to go into more detail here.
375
00:19:10,400 --> 00:19:15,000
But essentially it is two keys.
One is mine and the other key
376
00:19:15,000 --> 00:19:18,800
comes from the Oracle and I am.
Wait, wait, you're saying key?
377
00:19:18,800 --> 00:19:20,700
Do you mean key or do you mean
signature?
378
00:19:20,700 --> 00:19:22,500
I mean an actual key.
Yeah.
379
00:19:22,500 --> 00:19:26,200
Also, so dear when I send my
transaction to the Bitcoin
380
00:19:26,200 --> 00:19:29,400
blockchain there's going to be
an output and the output is
381
00:19:29,400 --> 00:19:33,600
encumbered by a key and that key
is the combination of my key.
382
00:19:34,000 --> 00:19:38,400
And a key that is provided by
the oracle And I basically take
383
00:19:38,400 --> 00:19:42,400
both keys when the Oracle
Reveals His, his private key.
384
00:19:43,000 --> 00:19:46,200
I get that private key, I
combined it with my private key.
385
00:19:46,600 --> 00:19:50,600
And that combined number is what
I use to sign it transaction and
386
00:19:50,600 --> 00:19:53,300
then actually take the money.
And I have to do that, because
387
00:19:53,300 --> 00:19:55,700
if I don't do that, then the
time-lock expires in shorts gets
388
00:19:55,700 --> 00:19:56,500
to take it.
Yeah.
389
00:19:56,500 --> 00:19:58,700
And to go back to that,
encumbering it's incumbent.
390
00:19:58,700 --> 00:20:02,100
Of course, by the public key of
its increment by.
391
00:20:02,300 --> 00:20:04,700
So it's basically saying anybody
with this public key can spend
392
00:20:04,700 --> 00:20:06,200
it.
And that's this publicly happens
393
00:20:06,200 --> 00:20:08,500
to be.
Your public key plus a public
394
00:20:08,500 --> 00:20:11,600
key that we have precomputed
that belongs to the Oracle.
395
00:20:12,000 --> 00:20:15,000
Yeah.
And so this is sort of with
396
00:20:15,000 --> 00:20:17,800
them, but the magic comes in,
because it's not the same as the
397
00:20:17,800 --> 00:20:20,600
previous mechanism.
The Oracle is not actually
398
00:20:20,600 --> 00:20:25,700
publishing a private key, like a
private key to holds funds, but
399
00:20:26,000 --> 00:20:28,700
this is, but we actually getting
it from the signature.
400
00:20:29,200 --> 00:20:33,600
And this is kind of where things
get a little funky, because a
401
00:20:33,600 --> 00:20:39,100
signature is really two numbers.
It is essentially a public key
402
00:20:39,100 --> 00:20:42,700
or it's not a public key, but
it's a point a point on the
403
00:20:42,700 --> 00:20:47,500
elliptic curve.
And it is a number and in
404
00:20:47,500 --> 00:20:51,000
general when you have a number,
you can treat that as a private
405
00:20:51,000 --> 00:20:52,900
key.
And we have a point, you can
406
00:20:52,900 --> 00:20:55,800
treat that as a public key and
the reason is that you can very
407
00:20:55,800 --> 00:20:59,400
easily go from a number to a
point, but you cannot go from a
408
00:20:59,400 --> 00:21:01,300
point to the corresponding
number.
409
00:21:01,800 --> 00:21:05,600
So, that's why the private key
is the number and the point is
410
00:21:05,600 --> 00:21:09,400
the public key.
But in the case of the
411
00:21:09,400 --> 00:21:11,000
signature, we don't interpret it
that way.
412
00:21:11,100 --> 00:21:15,500
So we're seeing a point and
we're seeing a number but we can
413
00:21:15,600 --> 00:21:16,900
if we want to.
And that's actually what we're
414
00:21:16,900 --> 00:21:21,100
doing is so we're interpreting
the the second part of the
415
00:21:21,108 --> 00:21:24,400
signature, which is a number.
We're interpreting that as a
416
00:21:24,400 --> 00:21:27,700
private key and that is the
private key that we're missing.
417
00:21:27,700 --> 00:21:32,500
And now, the nice thing is that
the Oracle can publish, you
418
00:21:32,500 --> 00:21:35,500
know, can sign anything really,
they can publish any signature
419
00:21:35,500 --> 00:21:37,500
they want.
And depending on exactly,
420
00:21:37,700 --> 00:21:40,300
Message they sign.
We're going to get a different
421
00:21:40,300 --> 00:21:44,100
private key in that signature.
Yeah.
422
00:21:44,100 --> 00:21:49,100
And so if they published
Germany, then I get a private
423
00:21:49,100 --> 00:21:52,000
key that then that private key
that the Oracle just publishes
424
00:21:52,000 --> 00:21:53,900
useful.
For me, it allows me to redeem
425
00:21:53,900 --> 00:21:56,800
the coins.
If the Oracle wrote Germany in
426
00:21:56,800 --> 00:21:59,800
the message, then Reuben gets
his private key.
427
00:21:59,800 --> 00:22:02,000
It gets the private key.
That is useful for him and of no
428
00:22:02,000 --> 00:22:06,300
use to me.
And to make it even nicer is if
429
00:22:06,300 --> 00:22:11,300
they publish both.
Well, now we can actually punish
430
00:22:11,300 --> 00:22:15,800
the Oracle because the Oracle
also has its own private key.
431
00:22:15,800 --> 00:22:19,700
And by this, I mean, the real
private key that he would use to
432
00:22:19,700 --> 00:22:23,200
protect his own funds and that
now becomes known because
433
00:22:23,200 --> 00:22:25,300
there's a rule that if you
publish basically, if you make
434
00:22:25,300 --> 00:22:29,500
two, if you signed two different
messages, this way you're giving
435
00:22:29,500 --> 00:22:32,500
away your your private key.
Yeah, that said, it's exactly
436
00:22:32,500 --> 00:22:35,300
right.
So maybe To sort of give a
437
00:22:35,900 --> 00:22:37,300
that's maybe a little bit then
gentle.
438
00:22:37,300 --> 00:22:41,300
But yeah, yeah, to give sort of
a high-level summary here.
439
00:22:41,300 --> 00:22:46,700
Is that basically we just get
the Oracle to pre-commit to what
440
00:22:46,700 --> 00:22:48,400
it's going to sign.
So it's got its going to say,
441
00:22:48,400 --> 00:22:51,500
like look, I'm going to sign
either Germany or the
442
00:22:51,500 --> 00:22:55,400
Netherlands and we calculate
ahead of time.
443
00:22:55,400 --> 00:22:58,000
What that signature is going to
look like.
444
00:22:58,800 --> 00:23:04,300
And we use that in our, in our
scripts, in our And so you can
445
00:23:04,300 --> 00:23:05,900
know what the signature will
look like.
446
00:23:05,900 --> 00:23:08,000
Exactly right now.
We know one part of that
447
00:23:08,000 --> 00:23:09,100
signature.
What's going to look like?
448
00:23:09,100 --> 00:23:13,400
Yeah we know sort of we know the
as sure stated.
449
00:23:13,400 --> 00:23:17,100
You can treat the signature as a
key and so we know the public
450
00:23:17,100 --> 00:23:20,600
key but we do know the private
key, basically of of the
451
00:23:20,600 --> 00:23:23,200
signature.
So we treat the signature as a
452
00:23:23,208 --> 00:23:25,200
key and we only know the public
key.
453
00:23:25,500 --> 00:23:28,600
We don't know the private key
until the Oracle actually signs.
454
00:23:33,700 --> 00:23:37,100
Yo, what is going on, guys?
We are proud to have voltage as
455
00:23:37,100 --> 00:23:40,200
a sponsor of this episode.
How many of you developers out
456
00:23:40,200 --> 00:23:43,200
there have wanted to streamline
infrastructure provider for your
457
00:23:43,200 --> 00:23:46,100
particular project?
Well, I'll tell you what voltage
458
00:23:46,100 --> 00:23:48,300
is the Bitcoin infrastructure
provider?
459
00:23:48,300 --> 00:23:51,100
You have been looking for that
makes building on bitcoin, quick
460
00:23:51,100 --> 00:23:54,100
and easy, whether it's Bitcoin
nodes, lightning notes.
461
00:23:54,100 --> 00:23:57,200
BTC pay and so much more, but
don't take it from me.
462
00:23:57,300 --> 00:24:00,800
Just ask the guys over and boss
thinks podcast index and Thunder
463
00:24:00,800 --> 00:24:03,300
games and so many others that
you guys already know it.
464
00:24:03,500 --> 00:24:06,700
Of their Enterprise grade
products, make it fast and easy
465
00:24:06,700 --> 00:24:09,100
to build deploy and scale your
next project.
466
00:24:09,200 --> 00:24:11,500
So make it easy on yourself even
or me plebs can use the
467
00:24:11,500 --> 00:24:14,300
dashboard or API.
Don't wait before the next block
468
00:24:14,300 --> 00:24:17,000
confirmation, let your team
focused on building great
469
00:24:17,000 --> 00:24:21,300
products and let voltage handle
all the rest voltage is your go
470
00:24:21,300 --> 00:24:24,200
to zero management, Bitcoin
infrastructure solution.
471
00:24:25,200 --> 00:24:28,100
Yo, what is going on plebs?
We're going to take a break from
472
00:24:28,100 --> 00:24:29,700
our programming.
To tell you about the
473
00:24:29,700 --> 00:24:32,800
resurrection of our print
magazine starting with the El
474
00:24:32,800 --> 00:24:35,400
Salvador.
Or issue starting this fall.
475
00:24:35,400 --> 00:24:37,600
Bitcoin magazine will be
available on newsstands
476
00:24:37,600 --> 00:24:40,800
Nationwide and at retail Source
such as Barnes & Noble.
477
00:24:41,100 --> 00:24:43,400
Don't want to get off your couch
though, no problem.
478
00:24:43,400 --> 00:24:47,000
You can also go to stored at
Bitcoin magazine.com, so skip
479
00:24:47,000 --> 00:24:49,700
the line and get each issue
shipped directly to your front
480
00:24:49,700 --> 00:24:51,200
door with her annual
subscription.
481
00:24:51,400 --> 00:24:54,100
I'm talking for issues a year
that contain exclusive
482
00:24:54,100 --> 00:24:57,000
interviews and profiles with
leading bitcoiners actionable
483
00:24:57,000 --> 00:24:59,600
insights, on the state of the
market, breaking news and
484
00:24:59,600 --> 00:25:02,600
cultural Trends along with
powerful photos and artwork from
485
00:25:02,600 --> 00:25:05,200
the best.
Artists in the world, subscribe
486
00:25:05,200 --> 00:25:08,300
today and get twenty one percent
off using Code podcast at
487
00:25:08,300 --> 00:25:09,900
checkout.
That's pod.
488
00:25:09,900 --> 00:25:17,000
Cas T podcast at checkout.
All right.
489
00:25:17,000 --> 00:25:20,200
Well, I didn't get all of them.
Maybe some of our listeners that
490
00:25:20,500 --> 00:25:24,300
I do want to add at the risk of
Hangouts and the risk of
491
00:25:24,300 --> 00:25:26,300
confusing, our listeners, even
more.
492
00:25:26,300 --> 00:25:27,800
I actually want to take one step
back.
493
00:25:28,100 --> 00:25:29,700
Hmm.
So we were discussing this
494
00:25:29,700 --> 00:25:32,400
reality Keys idea where the
Oracle would just publish a
495
00:25:32,408 --> 00:25:35,600
private key.
Why can't we just use that in
496
00:25:35,600 --> 00:25:38,700
this setup?
So the Netherlands won Ruben
497
00:25:38,700 --> 00:25:40,900
your.
Now, publishing your transaction
498
00:25:40,900 --> 00:25:45,700
that allows you to try to
withdraw the funds which Has
499
00:25:45,700 --> 00:25:48,400
your signature.
And why don't we just say it?
500
00:25:48,400 --> 00:25:52,400
Also requires a signature from a
private key, which is right for
501
00:25:52,400 --> 00:25:54,000
the known specifically.
Yeah.
502
00:25:54,000 --> 00:25:57,000
Like we were thinking out loud
where we were at that step of
503
00:25:57,000 --> 00:26:00,100
the podcast and we were watching
it, but this actually seems to
504
00:26:00,100 --> 00:26:02,000
make sense to me like, this can
actually work, right.
505
00:26:02,000 --> 00:26:03,800
Yeah.
So that I think the first thing
506
00:26:03,800 --> 00:26:05,800
to point out is that, yes, that
works.
507
00:26:06,100 --> 00:26:08,300
So if you're confused about
everything that we said, you can
508
00:26:08,300 --> 00:26:11,000
just think of it in that way.
Right, so that's I think like
509
00:26:11,000 --> 00:26:14,700
the first first point, second
point is there are too subtle
510
00:26:14,700 --> 00:26:17,700
differences.
In the first difference is what
511
00:26:17,700 --> 00:26:21,000
shorts explained earlier.
Where if the Oracle signs two
512
00:26:21,000 --> 00:26:25,700
things, we can punish the Oracle
by by extracting their private
513
00:26:25,700 --> 00:26:26,900
key, right?
Yeah.
514
00:26:26,900 --> 00:26:31,700
So, so if so, the article would
say in the article, was
515
00:26:31,700 --> 00:26:34,300
published both results for
whatever reason.
516
00:26:34,300 --> 00:26:37,800
Then there's this mathematical
trick, where you can combine
517
00:26:37,800 --> 00:26:41,600
these signatures and from there,
derived actual private key from
518
00:26:41,600 --> 00:26:46,200
the actual Oracle, assuming that
the Oracle put up, Some funds
519
00:26:46,200 --> 00:26:48,200
there to prove that it won't
cheat.
520
00:26:48,400 --> 00:26:52,200
That's how how you while you're
sure that the Oracle will only
521
00:26:52,200 --> 00:26:53,500
publish one result.
Right?
522
00:26:53,500 --> 00:26:56,300
That's the point here.
Yeah right and then there was
523
00:26:56,300 --> 00:26:57,800
another shot of point I think
you were going.
524
00:26:57,800 --> 00:27:01,700
Yeah Ruben yeah the second point
is sort of a smaller one that
525
00:27:01,700 --> 00:27:03,900
probably not everybody
appreciates but it's just less
526
00:27:03,900 --> 00:27:08,500
data basically.
So it the Oracle can basically
527
00:27:08,500 --> 00:27:12,500
commit to what it's going to
what it's going to reveal in
528
00:27:12,500 --> 00:27:17,400
less data than you would need if
you would If you would create a
529
00:27:17,400 --> 00:27:20,800
public key for every bet events
on this becomes, especially
530
00:27:20,900 --> 00:27:22,400
important.
If you're doing something like,
531
00:27:22,400 --> 00:27:25,200
predicting the price of the US
dollar in Bitcoin, because you
532
00:27:25,200 --> 00:27:28,300
might want to publish a six
digit number and that means, you
533
00:27:28,308 --> 00:27:30,900
know, hundreds of thousands of
public keys that you would have
534
00:27:30,900 --> 00:27:32,800
to publish for each possible
value.
535
00:27:33,100 --> 00:27:35,300
And you'd have to pre sign
transactions for each of these
536
00:27:35,300 --> 00:27:38,100
possible values.
Yeah, well, not necessarily
537
00:27:38,100 --> 00:27:41,800
because you can do it in binary,
which makes it a lot less, but
538
00:27:41,800 --> 00:27:43,600
we'll get to that.
We'll get, we'll get that later.
539
00:27:43,700 --> 00:27:47,000
Yes.
Okay, so Maybe fun to just dive
540
00:27:47,000 --> 00:27:49,600
into a little bit more detail to
stand up for those who do
541
00:27:49,600 --> 00:27:54,900
understand the math, better than
we do we.
542
00:27:54,900 --> 00:27:56,100
Yeah.
So there's a couple of things
543
00:27:56,100 --> 00:27:59,000
that the article publishes are
that, that are known here.
544
00:27:59,300 --> 00:28:02,700
If you look at what a signature,
is this like a couple?
545
00:28:02,700 --> 00:28:05,100
It's like an equation
essentially, if I can read it
546
00:28:05,100 --> 00:28:08,800
out loud you have on the left
side of the equation you have.
547
00:28:10,100 --> 00:28:17,100
S times G where s is the
signature g is the so-called
548
00:28:17,100 --> 00:28:20,400
generator is a generator.
Now, the generator is a publicly
549
00:28:20,400 --> 00:28:23,300
known Universal number that uses
that all of Bitcoin users.
550
00:28:23,300 --> 00:28:24,600
So, that's a number that
everybody knows.
551
00:28:24,600 --> 00:28:26,800
So, we only have one unknown
thing on the left side.
552
00:28:26,900 --> 00:28:28,300
Yeah.
And then, on the right side, we
553
00:28:28,308 --> 00:28:34,200
have capital R and R is actually
something that the Oracle is
554
00:28:34,200 --> 00:28:37,100
going to reveal before the bet.
So they're going to say this is
555
00:28:37,100 --> 00:28:39,700
my arm, so again, we have
something that we already know.
556
00:28:39,800 --> 00:28:43,400
Then we have the capital r.
Meaning, it's a curve points.
557
00:28:43,500 --> 00:28:45,700
Yes.
And then the next part of the
558
00:28:45,700 --> 00:28:49,700
equation is plus the hash of are
concatenated by the message.
559
00:28:49,700 --> 00:28:53,400
So the message is something.
We already said, we don't know
560
00:28:53,400 --> 00:28:55,100
what the message will be, but we
can enumerate.
561
00:28:55,100 --> 00:28:58,000
All the possible messages we
can, you know, we can enumerate
562
00:28:58,000 --> 00:29:02,600
m is Germany or M is Netherlands
and we're hatching that with
563
00:29:02,600 --> 00:29:04,000
our, we know our.
Yeah.
564
00:29:04,000 --> 00:29:06,900
So that's all known.
And then there's times P.
565
00:29:06,900 --> 00:29:12,100
Capital p and p is the public
key of of the Oracle which they
566
00:29:12,100 --> 00:29:15,400
also published.
So the Oracle is say hey I'm a
567
00:29:15,408 --> 00:29:18,800
Bitcoin related Oracle.
So you have to assume G is the
568
00:29:18,800 --> 00:29:20,700
generator as we know it in
Bitcoin.
569
00:29:21,300 --> 00:29:24,600
Here's my public key and by the
way, this public key belongs to
570
00:29:24,600 --> 00:29:26,600
a Bitcoin address and there's a
million dollars on it.
571
00:29:27,000 --> 00:29:29,100
So I'm not going to do anything
bad.
572
00:29:31,100 --> 00:29:35,300
And here's our that I'm going to
use for this specific bet.
573
00:29:36,500 --> 00:29:38,000
So, you have to have a new our
for every bed.
574
00:29:38,000 --> 00:29:40,000
But in this case, if it's
Netherlands, Germany, here's the
575
00:29:40,000 --> 00:29:42,700
are for that.
And so that equation that I just
576
00:29:42,700 --> 00:29:46,300
read out loud, only really only
has one real unknown.
577
00:29:46,300 --> 00:29:48,700
And that's lowercase s.
Yeah, and if you have an
578
00:29:48,700 --> 00:29:51,700
equation with only one unknown,
well then you're quite happy,
579
00:29:52,700 --> 00:29:53,600
right?
Yeah.
580
00:29:53,800 --> 00:29:56,800
Except in this case, you cannot
actually derive the public.
581
00:29:56,900 --> 00:29:59,900
The private key is if we said
you cannot go from a public you
582
00:29:59,900 --> 00:30:03,000
to a private key.
So anyway, let's just to say
583
00:30:03,000 --> 00:30:04,900
that, you know, if you really
looked at it and you had a
584
00:30:04,900 --> 00:30:06,700
little bit more time and you
could In front of you, you
585
00:30:06,700 --> 00:30:09,700
could, you see, it's an equation
with some unknowns and it's not
586
00:30:09,700 --> 00:30:10,600
that hard.
Yeah.
587
00:30:10,700 --> 00:30:16,000
And so then, when the bat, when
the Oracle actually signs a
588
00:30:16,008 --> 00:30:19,600
message, they let you know
which, and they picked that's
589
00:30:19,600 --> 00:30:22,200
not going to be too much of a
surprise, it's going to be the
590
00:30:22,200 --> 00:30:25,400
Netherlands and then it's going
to actually put down the
591
00:30:25,400 --> 00:30:27,400
signature and that reveals this
lower case.
592
00:30:27,400 --> 00:30:32,000
S that was the only missing part
from our equation and we use
593
00:30:32,000 --> 00:30:34,300
that to do our little our own
signature.
594
00:30:34,400 --> 00:30:36,900
Yeah.
Okay, so let's bring this back
595
00:30:36,900 --> 00:30:42,000
to the real world a little bit.
We start with the example, where
596
00:30:42,400 --> 00:30:44,500
your son Reuben.
The two of you are betting on
597
00:30:44,500 --> 00:30:48,500
the winner of the World Cup, and
I was part of a multi sick, who
598
00:30:48,500 --> 00:30:52,500
would help in case, one of you
try to obstruct and he went and
599
00:30:52,500 --> 00:30:55,100
then we mentioned some of the
problems with that.
600
00:30:55,400 --> 00:30:59,800
Now, we have this new solution,
which we just describes, which I
601
00:30:59,800 --> 00:31:03,700
sort of got in the two of you
seem to get it pretty well.
602
00:31:04,000 --> 00:31:08,500
So the benefits Here are that
the FIFA who's organizing a
603
00:31:08,500 --> 00:31:11,800
World Cup.
They can always just publish a
604
00:31:11,800 --> 00:31:16,100
signed message of the winner.
Yeah and this can be used by
605
00:31:16,100 --> 00:31:17,100
anyone.
Right.
606
00:31:17,100 --> 00:31:20,300
So so the fever does not need to
be part of any multisig.
607
00:31:20,300 --> 00:31:23,400
They do not need to have any
active involvement.
608
00:31:23,600 --> 00:31:27,400
They do not even need to know
that a bet took place at all.
609
00:31:27,400 --> 00:31:30,900
Yeah, all they need to know is
that they need to sign a message
610
00:31:30,900 --> 00:31:34,500
and this will allow anyone to
create bets on their own accord,
611
00:31:34,500 --> 00:31:35,200
right?
That is correct.
612
00:31:35,900 --> 00:31:38,300
Is that and optionally?
They can publish.
613
00:31:38,300 --> 00:31:41,200
They can post the collateral
that if they cheat, right?
614
00:31:41,200 --> 00:31:43,700
Then they lose a collateral but
that's not essential for the
615
00:31:43,700 --> 00:31:44,700
algorithm.
Yeah.
616
00:31:44,900 --> 00:31:47,200
Right.
And then I think another benefit
617
00:31:47,200 --> 00:31:51,600
here is that if the thief I
would try to cheat for whatever
618
00:31:51,600 --> 00:31:54,600
reason.
If they would announce the wrong
619
00:31:54,600 --> 00:31:59,200
winner, then that's also very
obvious and publicly known to
620
00:31:59,200 --> 00:32:01,300
anyone.
So now everyone knows we
621
00:32:01,300 --> 00:32:04,800
shouldn't rely on them to settle
our bet for the next world.
622
00:32:04,800 --> 00:32:06,400
Yeah, right.
We might be more difficult to
623
00:32:06,400 --> 00:32:08,000
prove in the earlier scenarios
right?
624
00:32:08,000 --> 00:32:11,400
Where they were where they just
manually signed one of our
625
00:32:11,400 --> 00:32:13,100
sites.
We don't really, you know, you
626
00:32:13,108 --> 00:32:15,500
don't really know what was going
on there and I think it's still
627
00:32:15,500 --> 00:32:18,400
solvable because you can get
them to commit to what they're
628
00:32:18,400 --> 00:32:20,100
going to do.
And you can reveal that they
629
00:32:20,100 --> 00:32:22,800
said they were going to do X if
this happened and they didn't.
630
00:32:23,000 --> 00:32:26,300
So okay it's probably solvable
either way but it's a little
631
00:32:26,300 --> 00:32:27,900
nicer here, it's more
formalized.
632
00:32:27,900 --> 00:32:31,100
Okay?
Okay, so this message that FIFA
633
00:32:31,100 --> 00:32:34,500
is broadcasting.
This can be used as we explained
634
00:32:34,900 --> 00:32:36,900
in common Asian with your own
beds.
635
00:32:36,900 --> 00:32:38,300
Depending on what?
Who won?
636
00:32:38,400 --> 00:32:41,400
You publish the original
transaction that you have.
637
00:32:41,400 --> 00:32:44,800
Then you use this signature from
the fever, combine it with your
638
00:32:44,800 --> 00:32:46,900
own signature.
Does this require small?
639
00:32:46,900 --> 00:32:50,600
By the way, this is requires nor
signatures, it's easier it.
640
00:32:50,900 --> 00:32:56,800
So the, the Oracle signs with
snore signatures because that's
641
00:32:56,800 --> 00:33:00,100
the because nor signature are
linear and that's how you can do
642
00:33:00,100 --> 00:33:02,200
the thing that shark's dorsal
lateral.
643
00:33:02,600 --> 00:33:05,200
Well, that's how you can, that's
how you can calculate ahead of
644
00:33:05,300 --> 00:33:08,800
Time what the expected signature
is going to be the public key of
645
00:33:08,800 --> 00:33:11,600
the expect signature, right?
And you need, you need to know
646
00:33:11,600 --> 00:33:12,900
for that.
You can't do that with that.
647
00:33:12,900 --> 00:33:17,600
You see this, I believe.
But the on the side of the
648
00:33:17,600 --> 00:33:21,100
batter's, you can use easily
say, but we're not going to
649
00:33:21,100 --> 00:33:23,900
Orchestra cool people and we use
nor that's right.
650
00:33:24,000 --> 00:33:26,900
Anyway, but there's more.
Okay.
651
00:33:26,900 --> 00:33:30,400
Yeah, I was almost done with
sort of reiterating the point of
652
00:33:30,400 --> 00:33:33,100
how it actually works.
So the FIFA broadcasts, a
653
00:33:33,100 --> 00:33:35,200
message saying the Netherlands
won in this.
654
00:33:35,400 --> 00:33:38,500
Case, then Reuben can take that
message, he brought cash
655
00:33:38,500 --> 00:33:42,600
transaction that he had sure she
cannot because then he might
656
00:33:42,600 --> 00:33:45,000
lose his money.
So Ruben is broadcasting that
657
00:33:45,000 --> 00:33:49,300
message that transaction and
then he uses this sight message
658
00:33:49,400 --> 00:33:52,600
from fever combined hit with his
own signature.
659
00:33:52,900 --> 00:33:56,100
And now he, yeah, with some key.
And now you're withdrawing the
660
00:33:56,100 --> 00:33:57,900
funds for yourself, and you won
the BET.
661
00:33:57,900 --> 00:34:00,000
And that's right.
The FIFA doesn't even need to
662
00:34:00,000 --> 00:34:01,600
know that.
There was a bad at all.
663
00:34:01,700 --> 00:34:04,100
Yep, right.
Great.
664
00:34:04,300 --> 00:34:09,400
So that gets us one step ahead
and then I think there's another
665
00:34:10,300 --> 00:34:13,199
incremental Improvement, which
were also going to discuss it.
666
00:34:13,199 --> 00:34:14,100
I right?
Yeah.
667
00:34:14,100 --> 00:34:16,900
And well, basically gets rid of
a bunch of transactions and
668
00:34:16,900 --> 00:34:20,699
makes it look even more
inconspicuous.
669
00:34:20,699 --> 00:34:24,100
So, hang on, what I just
explained to what we just
670
00:34:24,100 --> 00:34:28,000
discussed our discrete log
contracts, right from the, from
671
00:34:28,000 --> 00:34:32,600
the paper by task register, this
is the original design and not
672
00:34:32,600 --> 00:34:34,199
the design that is Currently
use.
673
00:34:34,199 --> 00:34:37,400
Okay, so now, there has been an
improvement on the original
674
00:34:37,400 --> 00:34:38,300
design.
Yeah.
675
00:34:38,300 --> 00:34:40,500
Is it still called discrete log
contract?
676
00:34:40,500 --> 00:34:41,400
Yes.
All right.
677
00:34:41,400 --> 00:34:43,300
Just an improved version of it.
It is.
678
00:34:43,300 --> 00:34:47,600
It is just, I would say it's a
slight tweak that was kind of
679
00:34:47,699 --> 00:34:50,800
obvious, but makes things a lot
easier.
680
00:34:50,900 --> 00:34:55,699
All right.
Who once said, I think I'm going
681
00:34:55,699 --> 00:34:57,400
to go give this one to Reuben.
Okay.
682
00:34:57,500 --> 00:34:59,200
Because he wrote a mailing list
boast about it.
683
00:34:59,400 --> 00:35:02,800
That is true.
Yeah, so to my knowledge, I'm
684
00:35:02,800 --> 00:35:04,700
the first person who actually
wrote it up.
685
00:35:05,200 --> 00:35:08,200
I don't think it was super like
novel because it's literally
686
00:35:08,200 --> 00:35:13,500
just I just realized, oh, you
can combine adapter signatures
687
00:35:14,000 --> 00:35:20,100
with the DLC protocol.
That pads dragic came up with
688
00:35:20,200 --> 00:35:22,200
which you're being modest,
probably Both.
689
00:35:22,400 --> 00:35:24,500
Are you saying, did you invent?
This is to show it.
690
00:35:24,500 --> 00:35:29,900
Wasn't, I don't think because
it's literally just, yes, I'm
691
00:35:29,900 --> 00:35:33,800
probably the first person who
mentioned it, but it wasn't
692
00:35:33,800 --> 00:35:36,800
like, it wasn't an invention.
I would say because it's
693
00:35:36,800 --> 00:35:39,800
literally just you're taking
adapter, signatures, which was
694
00:35:41,300 --> 00:35:44,700
invented, I guess by and
repulsed ra Ma and applying it
695
00:35:44,700 --> 00:35:47,400
to the DLC protocol.
And there's nothing like it's a
696
00:35:47,408 --> 00:35:49,900
very straightforward one-to-one
conversion.
697
00:35:50,600 --> 00:35:55,100
So, Guess I'm the first person
who maybe saw the connection,
698
00:35:55,100 --> 00:35:58,400
maybe I'm sure other people must
have seen it too, but just
699
00:35:58,400 --> 00:36:00,400
didn't mention it.
I'm at least.
700
00:36:00,400 --> 00:36:01,900
Maybe the first person to
actually mention it.
701
00:36:02,000 --> 00:36:04,100
Okay, let's put it like that.
Okay, so let's start a
702
00:36:04,100 --> 00:36:07,400
beginning.
Adopt our signatures, what so
703
00:36:07,400 --> 00:36:09,400
adapter signatures at a high
level?
704
00:36:09,400 --> 00:36:13,200
The way I would explain them is
that it's a way to do a
705
00:36:13,200 --> 00:36:15,400
signature.
That is incomplete.
706
00:36:15,900 --> 00:36:18,500
So you create a signature but
it's not actually valid.
707
00:36:18,600 --> 00:36:22,800
It's missing something.
And what is what it's missing.
708
00:36:22,800 --> 00:36:25,800
You can you can know the public
key of what is missing.
709
00:36:25,800 --> 00:36:30,100
So there's a number that is
missing that number is basically
710
00:36:30,100 --> 00:36:33,800
a private key, but you only know
the public key of what is
711
00:36:33,800 --> 00:36:35,800
missing.
So if someone reveals the
712
00:36:35,800 --> 00:36:39,700
private key, then you can
complete the signature and now
713
00:36:39,700 --> 00:36:42,100
the signature becomes valid,
right?
714
00:36:42,100 --> 00:36:46,300
I see I think when I was trying
to summarize our summarize DLCs
715
00:36:46,300 --> 00:36:49,800
earlier this was kind of what I
had in mind but okay but this is
716
00:36:49,800 --> 00:36:52,600
actually what That is, yes.
All right, got it and and it
717
00:36:52,600 --> 00:36:55,100
makes a whole lot of sense
because it makes things a lot
718
00:36:55,100 --> 00:36:58,000
easier.
So what we had earlier was this
719
00:36:58,200 --> 00:37:00,200
mechanism where you publish a
transaction.
720
00:37:00,200 --> 00:37:02,400
If you publish the wrong
transaction, you get punished.
721
00:37:03,200 --> 00:37:06,100
And now we can basically get rid
of that with adapter signatures
722
00:37:06,100 --> 00:37:09,000
because what we can do is we can
again start from our tools to
723
00:37:09,000 --> 00:37:12,200
multisig.
That means yours have and then
724
00:37:12,300 --> 00:37:14,400
we can create a bunch of
transactions in this case, two
725
00:37:14,400 --> 00:37:17,200
transactions, right, shorts wins
or I win.
726
00:37:17,700 --> 00:37:19,800
We put our signature on that
transaction.
727
00:37:20,600 --> 00:37:22,900
We do it in such a way that it's
incomplete.
728
00:37:22,900 --> 00:37:27,600
We do it with an adapter
signature and the signature wear
729
00:37:27,600 --> 00:37:31,900
shorts, winds can be completed.
If the Oracle signs Germany
730
00:37:31,900 --> 00:37:35,800
wins, right?
And my transaction, that
731
00:37:35,800 --> 00:37:38,100
signature can be completed.
If the Oracle science, the
732
00:37:38,100 --> 00:37:41,600
Netherlands wins.
And now we completely circumvent
733
00:37:41,600 --> 00:37:46,500
that issue of having to go back
and having to punish if Shore
734
00:37:46,700 --> 00:37:48,900
published the wrong transaction,
having to publishing because he
735
00:37:48,900 --> 00:37:51,300
can't publish this transaction
because The Oracle never
736
00:37:51,300 --> 00:37:55,500
revealed that Secrets, right?
So, so, in the previous example,
737
00:37:55,500 --> 00:37:58,400
I explain stats like, in a
payment Channel.
738
00:37:58,400 --> 00:38:00,900
Both of you, essentially have a
mirror version of the
739
00:38:00,900 --> 00:38:03,000
transaction.
Yeah, you both have sort of your
740
00:38:03,000 --> 00:38:05,900
own version of the transaction,
and then you publish that, and
741
00:38:05,900 --> 00:38:08,100
then from that transaction, you
can withdraw the funds.
742
00:38:08,300 --> 00:38:11,500
And in this case, you still kind
of have this mirror versions of
743
00:38:11,500 --> 00:38:14,000
the transactions.
However, you can't even publish
744
00:38:14,000 --> 00:38:17,100
it in the first place if you
don't have the adapter
745
00:38:17,100 --> 00:38:19,300
signature, is that, right?
And that's also because the
746
00:38:19,300 --> 00:38:20,400
inputs are different in this
case.
747
00:38:20,500 --> 00:38:22,500
A.
So in the previous thing that we
748
00:38:22,500 --> 00:38:25,700
described are basically the
money that takes it out of the
749
00:38:25,707 --> 00:38:29,900
multisig, the transaction that
takes it out of the multisig is
750
00:38:30,000 --> 00:38:32,800
is the same that the input side
of the transaction is the same
751
00:38:32,900 --> 00:38:35,300
as the same signatures
essentially because it's just
752
00:38:35,300 --> 00:38:38,300
taking out of a regular multisig
and what adapter so you can just
753
00:38:38,300 --> 00:38:43,200
do is they kind of create broken
signatures to get it out of the
754
00:38:43,200 --> 00:38:45,900
multisig.
So you're not actually getting
755
00:38:45,900 --> 00:38:47,600
it out of the multisig, but once
you've got it out of the
756
00:38:47,607 --> 00:38:49,700
multi-state, you can just send
it straight to your own wallet.
757
00:38:50,600 --> 00:38:54,200
The only thing is, you can't get
it out of the multisig because
758
00:38:54,300 --> 00:38:56,200
you need this, this thing from
the Oracle.
759
00:38:56,500 --> 00:38:59,300
And we both do this, we both
have this broken.
760
00:38:59,300 --> 00:39:03,200
Transaction that cannot spend
any coins and then we just hope
761
00:39:03,200 --> 00:39:05,000
that we get the private key.
Yeah.
762
00:39:05,000 --> 00:39:07,000
So there's nothing we need to
keep secret for each other.
763
00:39:07,200 --> 00:39:09,800
Well, except, you know our own
private keys but yes?
764
00:39:10,400 --> 00:39:12,100
Right, yeah.
So this does sound like a
765
00:39:12,107 --> 00:39:14,400
streamlined version of the
previous exam.
766
00:39:14,400 --> 00:39:19,100
So in this case to clarify this,
if I'm getting it right, is the
767
00:39:19,100 --> 00:39:23,400
Netherlands won.
The FIFA broadcast a message
768
00:39:23,600 --> 00:39:26,600
that says the melons one and
this time you actually use that
769
00:39:26,600 --> 00:39:31,900
message itself, Ruben to combine
that with your own signature and
770
00:39:31,900 --> 00:39:34,700
and persistent store signature
specifically, right?
771
00:39:34,700 --> 00:39:36,400
Because that's the one I need to
complete.
772
00:39:36,600 --> 00:39:39,100
I can complete my own signature.
That's not hard because I have
773
00:39:39,100 --> 00:39:42,200
my own key, but shorts also had
to put a signature on that
774
00:39:42,200 --> 00:39:43,700
transaction.
And that's the one I want a
775
00:39:43,707 --> 00:39:44,900
complete, right?
Yeah.
776
00:39:44,900 --> 00:39:46,600
When I said your signature
right?
777
00:39:46,600 --> 00:39:48,800
Okay, I kind of meant off the
tree watching that you're
778
00:39:48,800 --> 00:39:49,900
holding.
Is that right?
779
00:39:50,100 --> 00:39:50,600
Yes.
Yes.
780
00:39:50,700 --> 00:39:52,800
But it is technically shortest
things, right?
781
00:39:52,800 --> 00:39:54,600
Got it.
All right.
782
00:39:55,500 --> 00:39:58,100
Is there anything else do you
want to get into the piece and
783
00:39:58,100 --> 00:39:59,600
the G's in the?
No.
784
00:39:59,600 --> 00:40:03,300
I mean, we did before we try to
and I think conceptually, you
785
00:40:03,300 --> 00:40:05,200
know, it's again you just have
an equation with something on
786
00:40:05,200 --> 00:40:06,500
the left.
It's something I'll do right and
787
00:40:06,500 --> 00:40:08,400
you can see what the Oracle
knows and what you know, and
788
00:40:08,400 --> 00:40:11,500
that's all straightforward.
The only thing I got confused of
789
00:40:11,500 --> 00:40:14,400
is because, you know, we're
doing this fancy lightning-like
790
00:40:14,400 --> 00:40:17,400
thing, the multi sick, the
transaction goes out of the
791
00:40:17,400 --> 00:40:22,000
multisig is a joint.
Sort of a joint signature with
792
00:40:22,000 --> 00:40:24,100
something like music to as a
protocol.
793
00:40:24,400 --> 00:40:27,500
Ideally and and I was wondering
whether you can actually combine
794
00:40:27,500 --> 00:40:29,500
that with this with this Moon
math.
795
00:40:29,700 --> 00:40:31,500
Yeah.
And I'm pretty sure the answer
796
00:40:31,500 --> 00:40:33,700
is yes.
And then you think the answer is
797
00:40:33,700 --> 00:40:34,800
super straightforward?
Yes.
798
00:40:35,200 --> 00:40:38,200
And I looked at some some
comments by and Nick.
799
00:40:39,200 --> 00:40:43,000
What's his last name?
Jonas, Jonas.
800
00:40:43,000 --> 00:40:46,400
Think Jones Nick from a block
stream and he said complicated
801
00:40:46,400 --> 00:40:49,100
things about security Pros but
he also said it was possible.
802
00:40:49,700 --> 00:40:52,400
Yeah.
So, maybe that it's, you know,
803
00:40:52,400 --> 00:40:56,500
you want to talk to your local
photographer before implementing
804
00:40:56,500 --> 00:40:59,400
something that is, that is
always wise for sure.
805
00:40:59,500 --> 00:41:01,000
That is always wise.
Okay.
806
00:41:01,200 --> 00:41:03,200
But that's pretty much.
Yeah, I do have one more
807
00:41:03,200 --> 00:41:04,900
question.
I do we have a bonus section.
808
00:41:04,900 --> 00:41:08,000
Yeah, well, you while you
touched on this throughout the
809
00:41:08,000 --> 00:41:10,600
episode, at some point she was
but I do want to get back to
810
00:41:10,600 --> 00:41:13,300
this point towards the end,
which is now.
811
00:41:13,400 --> 00:41:17,500
Yeah, so in the example, so far,
we've used this very simple.
812
00:41:17,500 --> 00:41:19,800
Bet of the Netherlands vs.
Germany.
813
00:41:20,400 --> 00:41:24,100
But now we want to bet on
something like the price of
814
00:41:24,100 --> 00:41:26,800
Bitcoin in the future.
So now there's not two outcomes
815
00:41:26,800 --> 00:41:31,500
but there's I don't know because
and limited endless, not endless
816
00:41:31,500 --> 00:41:33,700
but n NR?
Yeah, sure.
817
00:41:33,700 --> 00:41:37,700
So, how would this translates to
this these Solutions?
818
00:41:37,700 --> 00:41:41,800
How are we going to do naively?
If you say, you want to do the
819
00:41:41,800 --> 00:41:44,400
dollar price?
And let's say it's a, it's a
820
00:41:44,400 --> 00:41:48,300
five digit binary number, just
to make it simple and to sort of
821
00:41:48,300 --> 00:41:52,300
anticipate where we're going.
So, that's not a huge Precision,
822
00:41:52,300 --> 00:41:55,200
but that's fine for every
combination.
823
00:41:55,400 --> 00:41:59,800
So, 45 2 to the power of 5,
that's the number of
824
00:41:59,800 --> 00:42:03,300
combinations.
We would write a contract that
825
00:42:03,300 --> 00:42:05,500
redeems, the correct amount for
me and be correct around for
826
00:42:05,500 --> 00:42:07,700
Ruben.
So this is not no longer
827
00:42:07,700 --> 00:42:11,900
completely binary, but if the
dollar price is your 0 0 0 1,
828
00:42:12,200 --> 00:42:14,600
then, you know, you get a little
bit of Satoshi.
829
00:42:14,600 --> 00:42:18,100
If the low price is 1000, you
get more Satoshi.
830
00:42:18,600 --> 00:42:20,900
That's the idea.
So we could just sign all these
831
00:42:20,900 --> 00:42:24,400
transactions but if you want to
have a bit more Precision, we
832
00:42:24,400 --> 00:42:26,200
have to pre sign a lot of
transactions.
833
00:42:26,400 --> 00:42:28,800
Yeah, but for the oracles point
of view, it's very simple.
834
00:42:28,800 --> 00:42:32,200
The article just produces
publishes a binary number and
835
00:42:32,200 --> 00:42:36,500
signs that All right, so that's
one way to do it or the Oracle
836
00:42:36,500 --> 00:42:39,200
in this case would only have to
sign one message for Oracle.
837
00:42:39,200 --> 00:42:42,700
Nothing changes is very simple.
However the two of you would
838
00:42:42,700 --> 00:42:44,800
need to do a lot more
preparation for all the
839
00:42:44,800 --> 00:42:47,300
different amounts.
And so and this works with both
840
00:42:47,300 --> 00:42:49,000
the proposals.
We just talked about right with
841
00:42:49,000 --> 00:42:52,500
the adapter signatures but also
without the Adaptive signatures
842
00:42:53,800 --> 00:42:59,600
but we can do better.
Yeah so okay so to be like
843
00:42:59,800 --> 00:43:02,800
hopefully I'm not last year but
okay so what you described us
844
00:43:02,800 --> 00:43:08,000
far is you just get the Oracle
to sign a specific number and
845
00:43:08,000 --> 00:43:10,600
that number is in binary.
In this case yeah I already made
846
00:43:10,600 --> 00:43:13,600
it in binary so it's easier to
introduce your optimization.
847
00:43:14,800 --> 00:43:21,000
So In this case, you could have
every possible number.
848
00:43:21,000 --> 00:43:24,500
So, a, 55 B would be 32 possible
outcomes.
849
00:43:24,700 --> 00:43:27,700
So you could have 32
transactions that with every
850
00:43:27,700 --> 00:43:30,400
each and every outcome a
shortened I get a different
851
00:43:30,400 --> 00:43:33,000
amount of Bitcoin depending on
the bed outcome that's what you
852
00:43:33,008 --> 00:43:34,300
described as far basically
right.
853
00:43:34,300 --> 00:43:35,100
Yeah.
Okay.
854
00:43:36,100 --> 00:43:38,100
Yeah.
So the thing that the Oracle can
855
00:43:38,100 --> 00:43:42,100
do is literally sign every bit
so there are five bits in this
856
00:43:42,100 --> 00:43:46,200
example and the bit can be
either 1 or can be 0.
857
00:43:46,800 --> 00:43:50,100
So, There are 10 possible
outcomes that the Oracle can
858
00:43:50,100 --> 00:43:54,400
basically sign and out of those
ten outcomes.
859
00:43:54,400 --> 00:43:57,700
It is only allowed to sign five
of them, because we use the same
860
00:43:57,700 --> 00:44:00,700
trick, where if it's signed
something twice, you can punish
861
00:44:00,700 --> 00:44:03,400
the Oracle.
So for every B, it can sign
862
00:44:03,400 --> 00:44:07,200
either 0 or a 1 but never both
because of its science.
863
00:44:07,200 --> 00:44:09,700
Both, then we can punish the
Oracle because we get turkey.
864
00:44:10,500 --> 00:44:13,900
And so basically, we get the
Oracle to publish these five
865
00:44:13,900 --> 00:44:18,600
numbers, which is the binary
outcome of The dollar amount
866
00:44:18,600 --> 00:44:23,200
that we want and with that
shorts and I can now create our
867
00:44:23,200 --> 00:44:26,100
transactions that we want to
create to resolve our bats, but
868
00:44:26,100 --> 00:44:28,800
we can now because we have the
binary number, we can actually
869
00:44:29,300 --> 00:44:35,300
do some some cool stuff with it.
What we can do is so hopefully
870
00:44:35,300 --> 00:44:37,600
this is follow-up, why?
I'm not sure if this is going to
871
00:44:37,607 --> 00:44:43,200
be easy but basically we have
five bits and let's say my bet
872
00:44:43,200 --> 00:44:49,100
number was so like the bet is
that if it's 7 or higher, I win
873
00:44:49,100 --> 00:44:51,700
for instance.
Yeah, that's what I was wrong in
874
00:44:51,700 --> 00:44:54,100
my example because I made it
like a dollar.
875
00:44:54,100 --> 00:44:56,700
Derivative, but in this case,
yeah, like if it's more than, if
876
00:44:56,700 --> 00:45:00,500
the dollar prize is more than
once at OC you win or is less
877
00:45:00,500 --> 00:45:03,000
than one Satoshi I win?
Yeah we want the dollar price
878
00:45:03,000 --> 00:45:04,100
with high Precision.
Yeah.
879
00:45:04,100 --> 00:45:07,100
But you could still have like
you could still have a bet where
880
00:45:07,100 --> 00:45:10,800
it's like but between 3 and 7 we
get paid out different amounts
881
00:45:10,800 --> 00:45:13,600
and seven or more.
I get paid out everything 3 or
882
00:45:13,600 --> 00:45:15,900
less you get paid on every.
Yeah from the key here is that
883
00:45:15,900 --> 00:45:20,500
the the article does not want To
like make a custom bet for
884
00:45:20,500 --> 00:45:22,400
everybody.
Yeah, it just wants to publish
885
00:45:22,400 --> 00:45:24,900
the actual dollar price.
It doesn't care what ranges you
886
00:45:24,900 --> 00:45:25,800
have in mind.
Yeah.
887
00:45:26,100 --> 00:45:29,000
So yeah.
So the nice thing is that you
888
00:45:29,000 --> 00:45:32,500
can sort of have these, you can
have multiple outcomes, you can
889
00:45:32,500 --> 00:45:36,300
combine them in a single bath,
by just adding the points
890
00:45:36,300 --> 00:45:40,100
together.
So, in this case, What we could
891
00:45:40,100 --> 00:45:45,400
do is if we want the outcome 7.
Specifically, that means that
892
00:45:45,400 --> 00:45:50,400
the first three bits the lowest
three B have to be 1 and so we
893
00:45:50,400 --> 00:45:53,300
can make it, we can make an
outcome where we just combine
894
00:45:53,300 --> 00:45:56,100
the key.
For first bit is 1, second bit
895
00:45:56,100 --> 00:46:00,100
is 1, third bit is 1.
We combine those three and debt.
896
00:46:00,100 --> 00:46:04,400
If the Oracle reveals all three
then that specific bad outcome
897
00:46:04,400 --> 00:46:06,200
becomes valid and that means 7
or higher.
898
00:46:06,200 --> 00:46:12,400
So in this case what I grab this
far is just 7 if 17 or higher
899
00:46:13,000 --> 00:46:17,100
then we need another another
transaction where we say or
900
00:46:17,600 --> 00:46:20,900
instead of the first three bits.
It's also okay.
901
00:46:20,900 --> 00:46:24,500
If the Oracle signed the fourth
bit or it's also, okay, if the
902
00:46:24,500 --> 00:46:26,800
Oracle signed the fifth bit.
Yeah, so maybe we can make the
903
00:46:26,800 --> 00:46:29,800
example a little bit simpler if
we want to do say 1 or higher?
904
00:46:31,400 --> 00:46:35,100
Yeah, that works.
Well, then that it's a if it's
905
00:46:35,100 --> 00:46:39,500
one or higher then you can
basically if the first bit is Is
906
00:46:39,500 --> 00:46:42,000
signed.
Then you win basically
907
00:46:42,000 --> 00:46:43,400
regardless of what the other
bits are.
908
00:46:44,100 --> 00:46:46,800
Well, well now not not
regardless of what the other
909
00:46:46,800 --> 00:46:48,700
bits are.
Because if the second bit is
910
00:46:48,700 --> 00:46:52,900
signed, if the answer is 2, then
the first bit is 0, so that's
911
00:46:52,900 --> 00:46:54,700
not, that's not sufficient,
crap.
912
00:46:54,700 --> 00:46:57,600
Yeah, so that's the problem.
That is, it is quite
913
00:46:57,600 --> 00:46:59,300
complicated.
Anyway, you can basically say,
914
00:46:59,300 --> 00:47:02,600
like, if these in these bits are
signed, that means this and this
915
00:47:02,600 --> 00:47:04,800
number range.
Yeah, you can make bets like
916
00:47:04,800 --> 00:47:08,000
that, and and each each digit
represents a public key
917
00:47:08,300 --> 00:47:10,300
essentially.
So, Before the Oracle had only
918
00:47:10,300 --> 00:47:13,000
one public key.
Now, the Oracle might have, I
919
00:47:13,000 --> 00:47:15,200
don't know how many bits you
want, maybe they have 32 public
920
00:47:15,200 --> 00:47:16,100
Keys.
Yeah.
921
00:47:16,200 --> 00:47:19,500
And so you can actually make a
smart contract quote on quote,
922
00:47:19,500 --> 00:47:22,500
that says something about which
public Keys have to be present,
923
00:47:23,000 --> 00:47:27,400
and this is very cool.
Yeah, and so, so this is why
924
00:47:27,400 --> 00:47:29,600
this is a bonus segment.
Basically, because it is
925
00:47:29,600 --> 00:47:32,500
complicated and I'm sure we're
losing a lot of the audience.
926
00:47:32,500 --> 00:47:37,400
But for those who are still with
us, basically you'll really what
927
00:47:37,400 --> 00:47:39,000
at a high level.
What we've been describing here.
928
00:47:39,100 --> 00:47:43,400
Is that you can have these end
and or statements with the
929
00:47:43,400 --> 00:47:45,300
oracles.
So you can even combine multiple
930
00:47:45,300 --> 00:47:49,200
Oracle outcomes and you can say
this and this and this outcome
931
00:47:49,200 --> 00:47:53,500
and this in this in this outcome
or this and this and this and
932
00:47:53,500 --> 00:47:56,700
this and you can just basically
make a whole bunch of bets based
933
00:47:56,700 --> 00:48:00,500
on whatever you want.
So it just allows for a lot of
934
00:48:00,500 --> 00:48:04,700
custom custom contracts.
Whereas the Oracle itself
935
00:48:04,700 --> 00:48:06,100
doesn't have to do a lot of
complex.
936
00:48:06,100 --> 00:48:08,600
Things just has to sign the
outcome in binary.
937
00:48:09,400 --> 00:48:12,000
Exactly.
And I guess we're not even going
938
00:48:12,000 --> 00:48:14,300
to explain anything about it
because I haven't even read it.
939
00:48:14,300 --> 00:48:16,300
But the bonus bonus.
Bonus, bonus section, would be
940
00:48:16,300 --> 00:48:21,500
that with, OP CTV, this template
thing where you can pre commit
941
00:48:21,500 --> 00:48:24,800
to a whole series of child
transactions, you can do even
942
00:48:24,800 --> 00:48:26,000
fancier things.
Yeah.
943
00:48:26,000 --> 00:48:28,600
So I can maybe very briefly try
to summarize it.
944
00:48:29,800 --> 00:48:33,100
Basically what we've done so far
is we've been pre signing all
945
00:48:33,100 --> 00:48:36,100
these transactions and if you
have a lot of bad outcomes,
946
00:48:36,100 --> 00:48:39,700
that's a lot of signatures.
And you can sort of Rid of those
947
00:48:39,700 --> 00:48:44,400
signatures by using op C TV
because up CTV, you can have in
948
00:48:44,400 --> 00:48:47,900
tap scripts, you can have a
bunch of up CTV branches and in
949
00:48:47,900 --> 00:48:51,100
every Branch commits to a
different Oracle outcome.
950
00:48:51,400 --> 00:48:53,800
And then together, with the
signature of the Oracle for that
951
00:48:53,800 --> 00:48:57,000
specific outcome, you can
publish that specific table, CTV
952
00:48:57,000 --> 00:49:00,700
branch, and what that means is
that you only have to sign one
953
00:49:00,700 --> 00:49:05,100
specific tab script with one
signature from both of us and
954
00:49:05,100 --> 00:49:07,600
that commits to every possible
bet outcome.
955
00:49:07,900 --> 00:49:12,100
And so What that means is that
it is just much faster to
956
00:49:12,100 --> 00:49:14,700
generate our bets.
Other than that, it doesn't
957
00:49:14,700 --> 00:49:17,900
really change anything, okay?
I don't understand that, but
958
00:49:17,900 --> 00:49:20,300
maybe if I listen back to the
episode, I will sure someone
959
00:49:20,300 --> 00:49:22,900
will out there back to Earth
One.
960
00:49:22,900 --> 00:49:25,800
Last Time.
What's the status of all of
961
00:49:25,800 --> 00:49:29,800
those DLCs?
Is anyone working on this, is
962
00:49:29,800 --> 00:49:33,600
there any progress?
So, I know there's a work group
963
00:49:33,900 --> 00:49:37,500
that has a mailing list that you
can follow, and I think it's a
964
00:49:37,508 --> 00:49:42,200
DLC hyphen Dev, but you'd have
to Google for that.
965
00:49:42,900 --> 00:49:46,500
I know Chris Stewart is working
on it, Lloyd for Nia is working
966
00:49:46,500 --> 00:49:52,400
on it, Lloyd Fournier, okay, he
actually, he came up with a way
967
00:49:52,400 --> 00:49:56,200
to do adapter, sequences, for
ecdsa.
968
00:49:56,200 --> 00:49:59,000
So that's sort of the kind of
the way in which it's being used
969
00:49:59,000 --> 00:50:01,600
today, even though we have
similar, I don't think the DLC.
970
00:50:01,800 --> 00:50:05,000
Because switched from ECT say to
tuition or yet.
971
00:50:05,900 --> 00:50:10,300
So I would check out their
projects, I think deal CS.
972
00:50:10,300 --> 00:50:13,900
I think, is Christy words is
project and I know Lloyd for Nia
973
00:50:13,900 --> 00:50:17,500
has a gun dot fun, which is very
funny.
974
00:50:17,900 --> 00:50:21,500
Funny name, but he has a little
DLC project where you can
975
00:50:21,500 --> 00:50:26,400
basically create a bet and you
can publish it on Twitter and he
976
00:50:26,400 --> 00:50:30,200
sort of came up with a way to
sort of encode it in Twitter.
977
00:50:30,200 --> 00:50:34,100
So you can, it's It's quite a
bit of data but it fits into it.
978
00:50:34,100 --> 00:50:35,500
Sweet.
Because it uses all these weird
979
00:50:35,500 --> 00:50:38,300
characters.
It's a fun little project so if
980
00:50:38,300 --> 00:50:40,900
you want to mess around with it
I definitely recommend that one.
981
00:50:41,800 --> 00:50:44,200
Yeah, I think Nicholas.
Doria is also working on
982
00:50:44,200 --> 00:50:47,500
something.
I think it's called n DL c--.
983
00:50:47,900 --> 00:50:49,700
Okay.
I'm not familiar with that with
984
00:50:49,700 --> 00:50:52,600
that but that's cool.
Yeah they did it.
985
00:50:52,600 --> 00:50:55,900
He used that and Chris Stewart
used his own implementation I
986
00:50:55,908 --> 00:50:59,000
guess they've done this one bet
on the presidency or the
987
00:50:59,000 --> 00:51:02,200
presidential elections like last
year We go.
988
00:51:02,800 --> 00:51:05,800
That's the only example that I
know of that it was actually
989
00:51:06,100 --> 00:51:10,900
used in some way or another.
Yeah, I used both projects on
990
00:51:10,900 --> 00:51:16,000
test Nets but not may not right?
Well I think that covers it.
991
00:51:16,300 --> 00:51:18,500
I think so too.
Yep Ruben.
992
00:51:18,500 --> 00:51:21,200
Thanks a lot for coming again
and I don't think we could have
993
00:51:21,200 --> 00:51:23,800
done this without you.
It wasn't sure we could not
994
00:51:23,800 --> 00:51:25,300
have.
It was a tough one.
995
00:51:25,300 --> 00:51:25,900
Yeah.
For sure.
996
00:51:25,900 --> 00:51:30,100
It's hard to explain it as well
but I think we did a decent job
997
00:51:30,100 --> 00:51:32,000
even though I'm sure not
everything was clear.
998
00:51:33,000 --> 00:51:34,900
At least I understand it better.
Great.
999
00:51:35,500 --> 00:51:37,300
So do I shows?
So that's good.
1000
00:51:37,300 --> 00:51:39,600
That's that's it.
We want something today.
1001
00:51:40,400 --> 00:51:44,100
All righty, in that case, thank
you for listening to bitcoin
1002
00:51:44,100 --> 00:51:45,800
explained.
There you go.