You've had a dynamic where money has become freer than free.
You talk about a Fed just gone nuts.
All the central banks going nuts.
So it's all acting like safe haven.
I believe that in a world where central bankers are tripping over themselves to devalue their
currency, Bitcoin wins.
In the world of fiat currencies, Bitcoin is the victor.
I mean, that's part of the bull case for Bitcoin.
If you're not paying attention, you probably should be.
Jonas McHale, welcome to the show.
Thank you for joining me.
Thank you for having us.
Been a big week.
You guys wrote a paper.
There's a lot of discussion on it, on X and other platforms.
The paper is hash-based signature schemes for Bitcoin.
You guys are in this paper trying to tackle the question of, okay, if quantum computers do manifest and people need to protect their Bitcoin, what is the optimal sort of solution to that problem to make sure that Bitcoiners are storing their Bitcoin in addresses that can't be attacked by quantum computers, among other things.
But first, I think we should start thinking of someone who doesn't have a cryptography background.
Can you just explain what hash-based signatures are, why they might be important for Bitcoin's futures, and why hash-based signatures in the first place?
I think I can start and then Mike can fill in the details that I'm missing.
So where do we use signatures in Bitcoin?
we use it to authorize transactions.
And the current signatures that we use,
they are based on the security of an elliptic curve
that's called SECP256K1 in Bitcoin.
It was chosen by Satoshi.
There are alternative signature schemes
that depend on different assumptions.
and one of those alternatives are hash-based signature schemes and all of these alternatives
they have different trade-offs we started looking at hash-based signature schemes because
the assumptions that they use they are relatively conservative compared to other signature schemes
and
hash base signature schemes
that just means that the signature
scheme is the security
of the signature scheme is based
on the security of
the hash function
why is that attractive for Bitcoin specifically
well we already
are relying on the security
of SHA-256
for example this is how we
refer to previous blocks
in the blockchain this is how
transactions get committed to a block in the Merkle tree. And from that perspective,
we started looking at these hash-based signatures first.
Essentially, it's also important to say for most of the other approaches that one can consider,
whether there is one popular or lattice-based schemes that require some other assumptions.
most of them still rely on hash functions.
So this is essentially as minimal as you can get in terms of like security
assumptions and requirements from a scheme is requiring just a hash function to be secure.
This is a very conservative approach and I guess
arguably the most secure
way the possibilities is.
It has the least amount of attack vectors in that regard.
So, Janice, you referenced it.
So, Bitcoin already relies on SHA-256 for mining and transaction IDs.
So, this is just sort of a doubling down
on what's already worked to date and what we know to be pretty secure.
Right, right.
So, hash-based means we can use any hash.
there are also different hash functions we could choose also with different trade-offs
with respect to performance or even proving in zero-knowledge snarks
but the natural choice for the hash function would just be SHA-256
because if SHA-256 is broken then arguably we have even bigger problems
than just transaction authorization not working
the blockchain doesn't really work anymore
we don't know what the truth is we we don't have consensus on the blockchain anymore so
yeah from that perspective makes sense to look at these hash-based signature schemes
but they have a reputation for being quite large in terms of size so that is that is a consideration
that that one needs to look into when when considering hash-based interests
and before we get to that because i think that's exactly what your paper focused on like okay
if we want to be quantum resistant we're going to use hash base how do we basically weigh the
trade-offs and make sure that bitcoin is still usable and scalable at the end of the day but
before we get to that even like we've all heard the term post-quantum thrown around what does
that actually mean like what is the quantum we're supposed to be afraid of and supposed to be
preparing for yeah so i think so from my perspective if we if we as cryptographers do
security proofs so for example for schnor signatures or music or frost or signature
aggregation dahlias etc we have these little theorems they are a paragraph or two contain some
numbers and they very precisely state what the assumptions are under which these signatures are
secure and in the case of schnor signatures it tells you directly when you read it or write it
down it relies on the security of this curve that you're choosing sec p256k1 in the case of bitcoin
and we know that this assumption that secp256k1 is not broken is actually wrong
it is broken you just the challenge is just to build a machine that exploits quantum mechanics
enough to break it but this is different from other types of cryptography we can also do
cryptography where we don't have assumptions like that so just writing this down this statement
personally makes makes me a little bit uneasy as well so a quantum computer would be able to break
our curve and therefore would be able to break shore signatures now the challenge
of post-quantum cryptography is to find cryptographic schemes that are secure
even in the presence of quantum computers.
And that requires also some sort of guesswork or some research as to what problems quantum computers are actually good at.
We know that they are very good at breaking our elliptic curve.
And it's very unlikely that they are good at breaking hashes, let's say.
They are better than classical computer, but they won't be able to break it in a way that they can break elliptic curves.
And essentially what I can add here is that we are even sure that the quantum computers cannot do certain tasks good enough to break the security of that.
For example, if we have a database, a random database, and we ask quantum computer to search for a specific input in that database, we don't know where it is.
We know that it is a hard problem for quantum computer and you cannot do better than certain complexity.
And the hash function is essentially is this random database because we take an
input, we hash it, we get a arguably random looking output. And our assumption
here is that we will not find an algorithm that can exploit the actual
description of the hash function. But one can view this very similar to how
classical analysis of hash functions works because classically we also rely on that we cannot find
an algorithm that can exploit the actual description of the hash function the actual algorithm that
does the hashing and so far shadow 156 was not
under good attacks there it proved its security and there was no significant improvement in terms
of exploiting the structure so for any quantum advances there there must be a structure in the
hash function that y can exploit and so far we couldn't find anything like that okay and so let's
Let's dive back into the paper and run with the assumption that quantum computers could exploit that hash function at some point in the future.
And talk about the tradeoffs in the paper.
It seems like you guys settled on Sphinx Plus as a standardized solution because it already exists.
It's already standardized by the NIST.
Why do we need this research?
What's the gap that you guys are trying to fill by applying this to Bitcoin specifically?
yeah so nist has looked at which post-quantum signature schemes to standardize and they picked
so they picked multiple one of them was sphinx plus that they standardized but
so sphinx plus exists we could use it there exists in bitcoin i mean there exists high
quality implementations with formal verification and proof etc so we could just use it
but the kind of research question that we had when we started the the paper was
the kind of goal of signatures usually outside of of bitcoin or blockchains is to sign software
and to sign certificates for the web.
And this is a very different application
to what we're doing in Bitcoin with signatures.
So what we were asking was,
can we adapt this standardized scheme
or also other schemes that exist in the literature
that have not been standardized
and see how, in what way we could change them
to better fit to this Bitcoin application.
And again, one of the trade-offs
that we're trying to solve for here
is the size of the signatures.
In the paper you mentioned,
going from about 7,800 bytes
down to around 3,400 to 4,000 bytes
with optimizations.
I think for the listeners out there,
getting them to understand,
why does the size of these signatures matter?
what's the trade-off that you're making yeah i think mike can speak best to that
yeah so first of all the size determines how many signatures can fit in the block
and then the bigger the signatures the fewer transactions you can you can fit and that
so in the current block that is right we have these maximum four megabyte blocks and then if
your signatures are suddenly huge then you can of course fit fewer transactions in the block unless
you increase the block size as well. Which is another topic. It has its own ups and downs.
But yeah if we consider that for now that the block stays the same, the size matters on the
the band this is one thing another thing is that the sphinx plus was designed to support
a lot of signing operations so the requirement for the nist was for the people to be able to
sign two to the 64 different messages so that just to add to that that a number with 19 digits So it a huge number It practically infinite That was exactly the idea It like okay we set up this bar that will be never reached
You don't have to worry about it.
It's 2 to the 64.
It's huge for all practical applications.
You just don't need to think about it.
There's no problem.
and this requirement for hatch-based signatures actually determines a lot in terms of the size
and the first observation that we can make is that if we set this par lower and we actually can
have a limit on less number of signing operations we can significantly decrease the signature size
moreover with the signature size
the verification time can also
be decreased
and verification
determines how fast
can we validate the block
how fast we then can propagate
it and so on
so this is one
of the core observations here
if we speak of another
improvement is that Sphinx Plus
there was a process
of standardization and the ideas were coming and the certain improvements were made, but
they had their own timeline.
And so they had to decide at a certain point what we accept and what we standardize.
But the research didn't stop there and there were different modifications and different
improvements also suggested.
And we can use those as well in the Bitcoin environment.
When NIST sets these standards, do they ever change?
Can you have updates to the specific standards on Sphinx Plus?
Or if you're going to go use the other ideas that were suggested but not included in the standard.
is obviously if you include those are you out of this standard and is that frowned upon or
just considered experimental so if we deviate from the standard now then yeah we're we're
using a different one uh theoretically uh modifications uh can be done to the standard
and there can be an update there can be a different standard or just just a new version of that
there are different also like modifications that we can do one can just use different parameters
and for example this way it will be easy to reuse some other implementation but the some
modifications that we discussed in the paper also affect some of the structure of the signature
a scheme that will have to adjust the implementation as well so this there are various options that we
can use that give us a certain performance boosts or sizes boosts or other trade-offs
and they come also in the cost of like varying further from the standard or sticking more with it
and so we already said about one trade-off which is the size of the signatures i think the other one
one of the other ones that you discussed um in the papers if you if you have um like heavier
signature sizes and bytes in terms of bytes um you could sort of limit the amount of signatures that
any public key
can be associated with any public key?
What's the trick?
I think this is a strange technical thing
that one needs to get his head around.
Right now, in our world of signatures,
we don't care how many signatures we do.
It's just a technicality of these hash-based signatures
that when you design such a scheme,
there is a limit of signatures
you can make per public key.
And to be clear, we were not the first to come up with reducing the number of supported signatures.
This is a pretty obvious idea when you look at those schemes, how they are structured.
But one of the insights that you might have when trying to apply this to Bitcoin is just that
And in Bitcoin, specifically in Bitcoin, we don't need that many signatures, right?
We create an address.
Usually we only want to use it once.
We don't want address reuse.
And then we sign, produce a transaction.
That's it.
Then you might have to do RBF to bump fees.
Then you have to sign again.
How often does that happen?
maybe it happens more often
if there's a more competitive
block space market
it doesn't happen often right now
and it certainly doesn't happen
to the 64 times
there are other things
where you need to sign more often
for example in layer 2s
so lightning so that payment shows
that's sort of a different discussion
perhaps but you still won't sign
that many times
there's still going to be an upper bound
that is below to the 64
and using those ideas we can get down the signature size.
As I said, this is quite a technical thing, very peculiar to these hash-based signatures.
Lower number of supported signatures means you can get a smaller signature.
And what happens if you sign more often? I think that's important to explain.
So if you have a signature scheme, hash-based signature scheme that supports, let's say, a thousand signatures and you do more, then the security sort of degrades.
So it will make it easier and easier for an attacker to actually forge a signature, which in Bitcoin would mean that they could be able to steal your coins, make a malicious transaction to steal your coins.
So you should really, if you have that limit of supported signatures, you should not exceed it.
You must not exceed it.
So, Freaks, this rip of TFTC was brought to you by our good friends at BitKey.
BitKey makes Bitcoin easy to use and hard to lose.
It is a hardware wallet that natively embeds into a two or three multi-sig.
You have one key on the hardware wallet, one key on your mobile device, and Block stores
a key in the cloud for you.
This is an incredible hardware device for your friends and family, or maybe yourself,
who have Bitcoin on exchanges and have for a long time, but haven't taken a step to self-custody
because they're worried about the complications
of setting up a private public key pair,
securing that seed phrase,
setting up a pin, setting up a passphrase.
Again, BitKey makes it easy to use, hard to lose.
It's the easiest zero to one step,
your first step to self-custody.
If you have friends and family on the exchanges
who haven't moved it off,
tell them to pick up a BitKey.
Go to BitKey.world, use the key TFTC20
at checkout for 20% off your order.
That's BitKey.world, code TFTC20.
What's up, Freaks?
Have you noticed that governments
have become more despotic.
They want to surveil more.
They want to take more of your data.
They want to follow you around the internet
as much as possible
so that they can control your speech,
control what you do.
It's imperative in times like this
to make sure that you're running a VPN
as you're surfing the web,
as we used to say back in the 90s.
And it's more imperative
that you use the right VPN,
a VPN that cannot log
because of the way that it's designed.
And that's why we have partnered with Obscura.
That is our official VPN here at TFTC
built by a Bitcoiner, Carl Dung,
for Bitcoiners focused on privacy.
You can pay in Bitcoin over the Lightning.
So not only are you private
while you're perusing the web with Obscura,
but when you actually set up an account,
you can acquire that account privately
by paying in Bitcoin over the Lightning network.
Do not be complacent
when it comes to protecting your privacy on the internet.
Go to Obscura.net,
set up an Obscura account,
use the code TFTC for 25% off.
When I say account, you just get a token.
It's a string of token.
It's not connected to your identity at all.
Token sign up, pay with Bitcoin, completely private.
Turn on Obscura, surf the web privately.
Obscura.net, use the code TFTC for 25% off.
Yeah, it's funny.
Again, I say this a lot, especially when I talk to developers and cryptographers like yourself.
is like so many people take for granted that the system just works
and not understanding these deep cryptographic primitives that exist.
But it is always infinitely fascinating diving into these details
because I think it's important, even if you're not technical,
to have a rough understanding of what's happening under the hood.
But obviously we talked about Sphinx Plus, some of the optimizations there.
We also talked about Watts plus C, Fours plus C, Pours plus FP,
with potential optimizations, I guess,
without getting too far into the weeds?
What are the ideas with these optimizations?
I think I can do some already here.
So the core idea here is we can make the signer
to work a little bit more on finding
certain inputs. So except we don't only include the message, but some extra seed or
an extra
random number or a counter
and that allows us to
search for better values that we can then sign and
this requires some extra work from the signer
but because we have these extra properties from what we are signing, this
can reduce the signature size and this also helps the verifier. So by doing extra
work on the signer part, we reduce the size and we reduce the verification
time. Sometimes this extra work also comes in the cost kind of, yes, we search
for this nice value to sign afterwards. But because this value is nice, this also
eases the further work for the sign. So we had these different parameters choices
in the paper. And for most of them, we make the signing time a little bit more
than the original Sphinx Plus, because we want more effort from the signer, but
but really smaller signatures.
And on the other hand, we can still balance this out
while keeping the signature size small.
And so this would affect wallet software, right?
Because I'm thinking of,
I played around with some DLC apps, Atomic, Finance,
and when you go and you're doing like a rollover transaction
with DLCs that take a lot of signatures,
it sometimes takes like a minute or two
to actually sign and then broadcast the transaction.
So this wouldn't necessarily affect the nodes, right?
And bandwidth propagation and things like that.
It's just literally on the setup to sign and then broadcast, correct?
Yes, I think so, yes.
I think this is a very interesting point that you're making right now
that I hadn't really considered before.
So I think this kind of trade-off between increasing the signing time
while reducing signature size and verification time
makes a lot of sense in Bitcoin
because at least on the Bitcoin blockchain,
we have a natural limit of the number of transactions
that are supported per second, right?
We can at most like whatever,
10 transactions per second
and few more signatures than that, whatever,
but it's not thousands of signatures per second
that you need to make.
On the other hand, we also have hardware wallets
that are, of course, lower powered and that might take longer.
And I think what you're pointing out is an interesting thing.
You might have a situation where you are pre-signing a lot of transactions.
And this is what is happening naturally in DLCs right now.
And this would be affected by a change like this,
by a change to hash-based signatures,
because producing these signatures, depending on which parameters you pick,
which is, I think, the biggest part of our work,
trying to figure out what are reasonable parameters,
it might take much longer to sign them than it takes currently.
Yeah, and that's the trade-off you have to weigh.
Are you willing to wait more to broadcast a transaction?
Right.
More generally perhaps important to say that in this post world we always have to deal with downsides This is also something that I feel like people on Twitter sometimes misunderstand
because they are asking, why haven't you done anything right now already?
Perhaps we would have changed to more conservative assumptions in terms of signatures,
if it was for free, but that's not the case.
whenever we want to add post-quantum security to Bitcoin,
we get very significant downsides,
be it new assumptions, signature sizes,
verification time, signing time, statefulness.
So there's no, we can't just,
there's a big risk, I think,
to just try to switch something
which we later figure out wasn't the right choice
because it picks the wrong trade-offs.
So what we are doing mainly in this paper
is to explore the trade-off space,
particularly with respect to hash-based signatures,
to inform the community
as to what are reasonable parameters to pick.
Yeah, that makes a lot of sense.
I mean, you mentioned statefulness.
You guys touched on it on the paper.
Stateful versus stateless signature schemes.
Why is being stateless so important to Bitcoin specifically?
So, yes, stateless versus statelessness is a good topic as well.
Here, what does stateless versus stateful mean?
Is that, again, now we don't have to think about it.
ECDSA is essentially stateless.
And what does mean is that when you sign, you don't have to touch your secret key in
terms of changes and updated.
stays the same and you can kind of in more or less implementations you can separate it you can
backup it as it is there is no problem everything again stays the same when we say stateful a stateful
hash based scheme means every signing operation must update the secret key and if there is a
misuse of this secret key or the update didn't go through or you lost some key and you run a
backup that has an older state of the key that will compromise the security of the scheme
but it comes from the other side with benefits of having again better performance and better sizes
with a stateful scheme if you if you if you're happy with this secret key manipulations you can
have better performance but it's important to mention yes this this can be very quick for example
if you have just two separate devices and you want to run them with the same key pair if they
don't communicate with each other maybe you can separate the states but that will limit the the
number of signatures that they can provide but there is much involved there in that regard with
managing your your key pair yeah so the state management thing i think is another very
technical thing but that is kind of important when trying to pick these schemes i think state
fullness is pretty fragile and it's one of those things that won't work for every signer
so another example is so you run bitcoin core on your node let's say you produce a backup you
backup your wallet.dat you make a few transactions perhaps and your machine crashes whatever it break
your machine breaks you need to restore the backup that you've created including the wallet.dat
and if you do that and the state would be stored in the wallet.dat which of course no one would do
but if you did that then essentially you would allow an attacker to produce forgeries steal
steal your Bitcoin. So that is why it's very fragile and it won't work for everyone.
So for example, it probably won't easily work for share care.
Okay. I guess another thing that this affects too, though, is like HD wallets, hierarchical,
deterministic wallets. And you mentioned the backup system that we rely on. Again,
they don't work the same way with hash-based signatures either. So what do we do with HD?
yeah i think this is one of the the other uh sort of downsides of hash based signatures is that
they don't have this nice mathematical structure that we currently enjoy on our elliptic curve
which means that we cannot use any of the tricks that we've developed over the past
years in Bitcoin.
And that includes HD wallets.
It includes
multi-signatures, threshold
signatures, silent payments,
aggregate signatures,
and
taproot, I guess,
taproot commitments.
So that was one of
the other research questions
that we also had when we started
this entire project is
is there anything we can do with hash-based signatures in the past it was sort of
it was intuitive that it wouldn't work but i thought maybe we could do something here or there
and improve improve on at least the trivia of things i think the answer is mostly we can't
really do anything fancy there we described some methods in in the paper that would reduce the size
of multi-signatures by a little bit but it makes the signing protocol very complicated and there
are other techniques like that that you could use especially for multi and threshold signatures
it's not maybe there are some scenarios where you could use them but right now it doesn't seem
it doesn't seem to make a lot of sense to base the entire standardization effort
and picking specific schemes just to make it work a little bit better
with these multi-signature schemes because they don't really work that well.
Yeah, they don't give much there.
And for HD wallets, there we have...
So HD is multiple things.
One is private derivation and public derivation.
So what you can have still with hash-based signatures,
that works very straightforwardly.
You have a seed that you can generate many addresses from it.
Perfectly fine.
Works well.
What you can't have is this kind of XPub
where some other person would,
or some other entity would derive new public keys
from some given XPub.
That does not work.
And this XPub system,
the XPub setup is particularly important today
in hardware, software wallet setups.
If you have your hardware wallet,
export your XPub from the hardware wallet
to the software wallet.
Software wallet is then able to derive new addresses
and scan the chain in that way.
And that wouldn't be possible anymore
with hash-based signatures.
What you need to do instead,
so the only thing we know of
is you have your XPub is not a short public key,
but rather a long list of public keys
that you give to the software wallet.
And once this list is exceeded,
the software wallet needs to talk to the hardware wallet
and ask for more public keys again.
So it's not impossible,
but it doesn't work as well with the infrastructure
that we've created with descriptors in the past.
And there is also this kind of worry
that because it's a little bit harder to make this work,
that people would or wallet developers
might decide to just reuse addresses, for example,
instead of building this system.
That would bork a lot of things there.
Yep.
Yeah.
So if you're a listener,
I think one of the examples that Jonas just walked through,
like say you have a cold card
and you want to set up the private public e-pair offline
using the wallet,
and then you want to put it in a safe or something,
but you want to be able to receive Bitcoin to it.
So you download Sparrow, you export.
the xpub to sparrow and then from there you can get these addresses this would be made
harder you'd have to do it a different way with these hash based then similarly with multi-sig
you share xpubs with your quorum partners to make the multi-sig xpub and that would be made
impossible to hash based signatures right right this is another another kind of scenario that
sort of wouldn't work as well anymore.
That seems like a pretty big change.
Maybe something we should talk through.
At first.
Well, it might be.
I mean, there are other...
We said it's not only hash base signatures.
There are other assumptions we can pay.
They might support these kind of scenarios better,
but they have other downsides.
What's up, Freaks?
Have you noticed that governments have become more despotic?
They want to surveil more.
They want to take more of your data.
They want to follow you around the internet as much as possible so they can control your
speech, control what you do.
It's imperative in times like this to make sure that you're running a VPN as you're surfing
the web, as we used to say back in the 90s.
And it's more imperative that you use the right VPN, a VPN that cannot log because of
the way that it's designed.
And that's why we have partnered with Obscura.
That is our official VPN here at TFTC, built by a Bitcoiner, Carl Dung, for Bitcoiners
focused on privacy.
You can pay in Bitcoin over the Lightning. So not only are you private while you're perusing
the web with Obscura, but when you actually set up an account, you can acquire that account
privately by paying in Bitcoin over the Lightning network. Do not be complacent when it comes to
protecting your privacy on the internet. Go to Obscura.net, set up an Obscura account,
use the code TFTC for 25% off. When I say account, you just get a token. It's a string
a token. It's not connected to your identity at all. Token sign up, pay with Bitcoin, completely
private. Turn on Obscura, surf the web privately. Obscura.net, use the code TFTC for 25% off.
What's up, freaks? I've been seeing a lot of YouTube comments. Marty, your skin looks so good.
You're looking fit these days. How are you doing it? Well, number one, I'm going to the gym more,
trying to get my swell on, trying to be a good example for my young son to fit,
healthy dad, but part of that is having a good regimen, particularly staying hydrated,
making sure I have the right electrolytes and salts in my body. That is why I use salt of the
earth. I drink probably three of these a day with one packet of salt of the earth. I'm liking the
pink lemonade right now. It's my flavor of choice. This is their creatine. I've added this to my
regimen. They have it in these packets as well. It makes it extremely convenient if you're traveling.
You want to work out while you're traveling, but you don't want to be carrying a white bag of powder going through TSA.
It's very, very nerve wracking at times.
You have to explain hates.
It's not what you think it is.
It's creatine.
I'm trying to get my swell on.
Make sure you're staying hydrated.
I have become addicted to these.
It's made my life a lot better.
I can supplement this for coffee in the morning and be energized right away.
I can supplement.
I can bring the creatine wherever I need to.
I just put a couple packets in here before I head to the gym, bring this to the gym, drink it out of a glass bottle, make sure I'm not injecting any microplastics into my body.
Go to drinksauté.com, use the code TFTC, and you'll get 15% off anything in the store.
That's drinksauté.com, code TFTC.
Well, that was going to be my next question.
Obviously, this research paper was focused on hash-based signature schemes.
Do you guys plan on doing more research on different signature schemes moving forward?
Yes, so our current plan is also to look at lattice-based schemes.
As exactly Jonas mentioned, although the lattice-based, they introduce extra assumptions,
this is called lattice-based, so they're based on lattices and the structure and with certain heart problems.
but they can potentially offer these upsets in terms of hardware wallets public key derivation multi signatures and stuff like this so for now I think it a little bit early to talk in details about that
But this is a whole lot that we would have learned to working at.
Yeah.
And I also think it's important to note that this entire post-quantum story for Bitcoin is a spectrum.
from what do we do in an emergency
if it happens now, let's say.
It might not even be a quantum computer.
It could be just our curve is broken classically.
That's a scenario that some people bring up.
And how can Bitcoin really work in a post-quantum future?
And those are different questions, I think.
Because when we want Bitcoin to work in a post-quantum future,
we need to make sure that people can still make transactions
and they are not just like a few transactions
that can make it into the chain
because the blocks are so small
compared to the signature sizes.
So those are different questions.
And then there's a spectrum in between
where we look at, okay,
maybe this won't be the perfect solution,
but at least it doesn't rely on these crazy assumptions.
And I think this hash-based signature schemes
is more on the sort of emergency,
something we could get consensus on relatively easily,
whereas the lattice-based stuff is a little bit further away on that spectrum.
Yeah, there would be a lot of reshuffling if we had to do,
if and potentially when we had to do this transition,
so being prepared for it.
Also, it's also possible to add multiple signature schemes to Bitcoin
and even just looking at hash-based signatures,
this might be a viable path forward
because there are just so many different types of signers.
There are these, I don't know,
Kleb hardware wallets
and there are Kleb lightning nodes
and there are also big exchanges
and they have different requirements.
and even just for hash-based signature schemes this might mean that it makes sense to add
hash-based signature schemes with different parameters this has downsides as well of course
it increases the complexity of the of the bitcoin protocol which we want to keep relatively small
because this might result in chain splits or other vulnerabilities in bugs if we have
if there actually is something that goes wrong.
And so another downside would be that it reduces privacy.
One of the big advantages of introducing Taproot, right,
was that every transaction should look like every other transaction,
even at least in the best case and to improve privacy and if we introduce these many different
signature schemes now this might be a problem because now you can look at the blockchain and
just follow certain passive transactions and maybe certain wallets they have identifiable
fingerprints and so on so these are the downsides if you add multiple signature schemes but it's
certainly possible so you get degradation and privacy via process of elimination of yep different
people using different signature schemes so yes yeah that makes sense well i guess this all comes
back to like how how real is this rats how imminent is it or far away is it how much time
do we have to prepare obviously jonas you mentioned like there is a potential for
classical means so you don't even need a quantum computer just to break the curve but i think a lot
of discussion is on quantum specifically and obviously early this year you had google's willow
chip uh made a lot of hot headlines i think the um the sort of advancement there was 105 qubits
uh computations that would take supercomputers 10 septillion years to to perform um and is that
advancement enough to to make bitcoin bitcoiners wary and then another thing which is i'm trying
to wrap my head around reading people's reactions to the quantum discussion this week is like
how much signal is in these advancements, whether it's Willow or other quantum advancements
that have been made recently.
I've read people explaining that some of these advancements have sort of hard-coded variables
or assumptions in them, which are sort of cheating in a way.
and even if Willow got to 105 qubits
and it was legitimate,
I think there's a very good case to be made that it was,
Bitcoin's cryptography would require around 13 million qubits
working in parallel to break the curve.
And so how viable is that?
How realistic is that in a timeline of 5, 10, 15 years?
So I'm not a quantum engineer
And I think there is no consensus, at least among the experts, when this will happen.
My angle on this is that I told you, we write these theorems.
They rely on the elliptic curve.
We know the elliptic curve is broken.
This makes me uneasy.
I want Bitcoin to be secure.
And that includes my own little stash.
I want it to be secure against very, very powerful adversaries.
And I don't want it to only remain secure if some random guy on Twitter turns out to be right.
So I think the Bitcoin community should certainly look at this problem.
And this is why we are working on it.
Right now, I wouldn't lose my sleep over it for sure as well.
But on the other hand, 10 years in Bitcoin even is not such a long time if we need to prepare for an upgrade like that.
You said it yourself, the HD wallet stuff, for example, that would completely be broken.
So we would need to have an ecosystem update for that.
Maybe that doesn't take 10 years, but people migrating their coins, the more time they have, the better.
Yeah. Yeah. I mean, it's very hard to just say, okay, this will be five years, 10 years,
or whatever years, because the advancement goes from every possible direction. As you said,
for example, counting the number of cubits, there is a very interesting point in terms of,
uh it's a little bit different from how the classical computers work in terms of we need
several physical qubits to encode a one logical means one logical is that we actually actually
performs like we expected it to perform because there is a lot of noise in the quantum computations
and one need to eliminate that noise to actually do proper computations one can increase the number
of those qubits, one can improve the noise cancellation algorithms. Then it's also very
important in terms of the quantum algorithms that actually solving the problem. And for example,
there was a recent advancement that reduced, I think, by 20 times the number of qubits that
required the algorithms there. So the advancement go from different directions. I would agree with
Jonas in terms of I wouldn't lose sleep today but we have to work towards the solutions to be ready.
If we just delay delay delay and we never come there but now we have to work and progress and see
what what possible uh solutions we have and prepare for for the downsides uh and change
that that these solutions bring how would uh how would you two describe your um this is what i'm
looking for are you uh are you happy with the amount of focus on this obviously pip 360 um
has been talked about for the last, I mean, before it was BIP360 even,
people have been talking about this Hunter and his work.
People have been looking at that and discussing it for what seems like over a year now.
At this point, obviously, you two have done a ton of research.
We had the quantum meeting at Presidio Bitcoin in July.
Is there enough discussion, in your opinion, on this topic right now?
are enough people focused on it and taking it seriously
and of course it would always be better if there was more quality discussions but i think the
type of discussions that we have right now is is pretty good and has also increased quite a bit
especially over uh over the last year so like you you like on twitter there there was not only noise
I think there was also a bunch of signal and it was good that even the wider Bitcoin community also talked about this and talked this through.
And on the Bitcoin mailing list, there's always a bunch of discussions.
Of course, there's always this kind of Bitcoin thing that might happen where just there is some discussion and then there's no follow up.
nothing ever happens, right?
It's a pretty standard thing that happens in Bitcoin.
But I'm also not too worried about that, to be honest,
because I think if it really, if it was really,
if the quantum computer was imminent,
then I think the Bitcoin community would find consensus
on some sort of upgrade.
What is, of course, going to be really, really painful,
and there's no way to sugarcoat it is what happens with the coins that don't migrate
and i think this will be extremely painful but that's not something that that cryptography can
solve unfortunately what's your take there i'm a i'm a don't do anything with them let them let
the treasure hunts begin that's i think that's my stance because you always have to think of the man
in the coma right which is if you were to change or make their coins unspendable and the guy wakes
up and he's like hey i have five bitcoin here that i can't move anymore because you did something
and quant computers haven't stolen it yet um you're sort of screwing that guy over
i think there are reasonable uh arguments for or both for both positions that's what makes it
painful and um i don't know i guess my opinion right now is that if i look at it extremely
selfishly what code would i run on my node then i think it would be the one that uh that freezes
the coins because that at least i think in the mid to long term it would probably result in a
better outcome for the world for the bitcoin network but yeah you could fight counter arguments
to that i'm sure yeah i thought um i followed the uh the discussion on the mailing list
i've been following it i thought earlier this year i think there's still a lot of
assumptions baked into this but i thought ethan haleman's post on this was interesting
how you could essentially throttle the transition and only make a certain amount of transactions from
quantum exposed signatures possible per block.
Is this this hourglass idea?
I think so.
I'm pretty sure.
Let me see.
It goes all the way up.
I think it is.
He also said it was a way to solve the JPEG spam as well.
But this idea that...
And that's the other thing.
Maybe we should just dive into the trade-offs that exist with what you do with the coins that haven't transitioned.
What are the solutions that are being thrown out there right now or the trade-offs that exist?
I mean, I personally haven't looked too much into this.
I know that there is a discussion on the mailing list, and there probably should be more discussion.
I don't know but as I said there's no no easy answer to this I wouldn't be
able to reproduce all the pros and cons there.
All right.
Well, then taking it in a different direction,
like how, like, obviously you guys are doing research.
There's a lot of discussion about this.
In terms of like a first step beyond research
and having the discussions,
what would a transition to a post-quantum signature scheme look like?
Like how do you prep the market?
How do you begin moving?
how do you set up the node software to make this stuff viable
as for the next steps that we envision after this paper so one thing that is a contribution
of this paper is that we have this script a python script where you can explore the parameter space
or you can say okay i want to support that many signatures and the tree to look like this and then
it spits out the signature size verification time etc and we also have tables in in the paper
that do show some of these values already for the parameters that we that we pick so like
explore the parameter space and then next what um what is the next step there is implementations
benchmarking yes implementations and actual benchmarks we just estimate through some crude
proxy what the performance would be but we haven't really measured actual performance and at least
from my experience implementations usually they inform specifications quite a bit because you find
things that you wouldn't notice just going from the from the research direction and it's nice that
actually there are people actively participating in that regard and also on the mailing list there
were several posts of people trying to implement hash-based schemes either sphinx plus or sphinx
plus with lower number of signatures now they're also looking at possible modifications that we
also discussed in this paper and i think this will significantly help with the with the decision
that we will have to make so uh yeah i think that's very good to point out because they
have really so there's specifically i want to give a shout out to conduition he wrote this
awesome blog post where he optimized hash base signatures like crazy and certainly worth worth
to read um but for the for the bigger discussion how do we actually migrate um now that this this
research um exists um or even before that just with the standardized nist schemes um so one thing
that could happen that is uh i think a relatively reasonable upgrade path that unfortunately does
not have a catchy name i think so matt corello he was the first one to uh popularize it on the
on the mailing list but uh others i think have discussed it before which is um let's say we just
introduce a uh a hash based signature opcode like check sick verify that we have for uh for
our elliptic curve based signatures we just introduce one for hash based signatures doesn't
matter how it looks like something like that and what people could do today already
wallets could do generate a post-quantum public key a hash based public key and then add this
public key along with this new opcode in a taproot merkle tree that already exists
so this would be a soft fork so we add this opcode and there's no cost for a wallet except
implementation complexity to add this additional spending path if they already use taproot to the
the taproot tree and so they do that and of course taproot itself is not secure some the
full taproot not secure against a break of the elliptic curve because we have these key spins
as well which just require a an elliptic curve short signature for the public key that is directly
in the output. So that's a keypad, but there's also the taproot tree.
Now, what our colleague Tim Rufing at Blockstream proved is that
the taproot script spans so the Merkle trees inside the Taproot they are still secure even if a quantum computer arrives a cryptographically relevant quantum computer
So what you can do is at a certain point, you disable the key spends from Taproot.
And then you still, hopefully many wallets have done that.
They have these additional post-quantum public keys in the tree.
So they will be able to spend those coins with a hash-based signature.
and the advantage of this is you can use taproot as you do right now you have these very official
keyspins you have the taproot path you have music frost whatever only once the bitcoin community does
this upgrade to disable uh keyspins hypothetically then you need to use these new script paths in the
Merkle tree, in the taproot tree.
This will be one variant.
Actually, a very important benefit of a Bitcoin system in that regard is that, for example,
other systems that were looking like, I don't know, DLS or whatever, a lot of time we want
encryption.
And people that are also scared of quantum computers today, they're also worried about
this attack called store now decrypt later. So they also
urge in the migrating in terms of encryption. So for example,
now, the post quantum scope encapsulation mechanism that
help you to actually encrypt your messages and encrypt your
communications are already getting deployed. While the
signatures can wait a little bit later because for most use
cases you are scared of your signatures broken up you don't care if they i don't know they see
your public key that you don't use anymore 10 years later and so this scripting pass that you
are described exactly we can migrate closer when we see the actual thread while the solution is
already there you just want to use the solution when when we're actually needed
and this may be a dumb question but uh jonas you mentioned like music and frost
is there a way to just leverage those on top of
like your your private public key pair to harden that private key even more from a quantum attack
does that make sense even just like obscure like the spending conditions like make it harder
without introducing uh hash-based signatures or any post-quantum assumption just yes no no the
problem is that in the whenever the adversary sees a public key they can run their quantum
computer and compute the the private key that's corresponding to it so music or frost or any
obfuscation attempts like this will will fail okay that's good to know
fascinating stuff so
what are the dangers if we move too fast on this i mean you mentioned them earlier
with like if we because that's what i worry about that was the uh the most disheartening
thing about the conversation last week i think it's good the conversation is happening but
The idea that the community of developers working on Bitcoin
haven't been thinking about this.
Obviously, you two spend a lot of time on your research.
Blockstream does a ton of research,
and there's plenty of others outside of your organization
working on this stuff.
What I worry about most, I agree,
I think we should want Bitcoin to be as secure as possible,
and if it's a threat of quantum computing
or even classical elliptic curve breaking computers are to manifest.
We should prepare for this.
But what could be just as dangerous is moving too fast, right?
And so trying to have a level-headed discussion about what to do.
And obviously you can't use the fear of moving too fast forever
because then you're complacent.
But there's this sort of trade-off between urgency and complacency.
how do you view it i think it's i mean first of all yeah there's a lot of value in the bitcoin
protocol being as simple as possible um because yeah we we want bitcoin to be secure and that
requires a relatively simple protocol whenever we add something to bitcoin there is a risk
I think adding a hash base signature scheme to Bitcoin I think that risk is manageable but still it will require resources to maintain it to make sure that the versions are all compatible with each other and there are no
consensus relevant issues, which is a specific problem that is specific to Bitcoin. It doesn't
exist in non-blockchain or non-consensus systems. So there's a risk in that. And then
If you add something and no one uses it, I think that's just a lot of wasted effort.
But I also don't think right now, looking at the discussion on the mailing list and people I had in person, even on Twitter, I don't really think that it is realistic that we will have a post-quantum upgrade very soon in Bitcoin.
Is at least my impression.
And as you said, we want to explore in full what are our options.
And as we said before, the next topic would be to look at lattice-based, how they affect,
what are the assumptions, what are the benefits, and doing a proper comparison of what are
the options gives us uh i guess the best the best outcome here so crushing it uh also like
this with the fear in the ice is also not the best way to go no and again who knows that's
that's the thing about this quantum uh risk is it's hard to know it's like a big unknown it's
like climate change almost where it's like it's just around the corner but it's been said for some
time and obviously there are some advancements but again as a layman it's not easy to understand
where the signal in these advancements are you can talk to some quantum physicists they say to
your point like this doesn't scale literally you need more um physical qubits to create
logical qubits and if you need thousands of logical qubits to attack bitcoin that's an
exponential amount of physical qubits this is the way i understand it i'm speaking out of my ass but
Yeah, I mean, if I'm allowed to tell a personal anecdote, I actually studied cognitive science for my bachelor, which is right at the intersection of AI and human intelligence.
And for my master's, I studied computer science with a focus on artificial intelligence.
if i had told anyone that i believe we would have chat gpt3 by 2022 they would have
ridiculed me forever at that time people uh they not not only that they thought maybe i think one
of or a lot of people thought that something like chat gpt3 would never be possible it's just so
much intelligence coming from a machine and look at where where we where we are now i actually
sort of thought when i studied this i thought uh this ai stuff is going nowhere it's not not
going to be a breakthrough i'm i'm focusing all my time on bitcoin back when i was a student
right so i am just very skeptical of people oh first of all i want to say of course this analogy
fails in many ways, quantum computing
very different to AI, of course.
But I am skeptical
of people saying or confidently
claiming there's no clear path
towards a cryptographically
relevant quantum computer. Maybe there's not
one right now, but I think
there could be one any time.
And you have to prepare.
If you don't prepare
and then
suddenly you find out you were wrong,
Yep.
Yeah.
No, that goes back to like measuring and balancing complacency versus urgency.
Because again, to my point, like I think this is a discussion that's been taken seriously for many years now.
And it's like brush to fix it right now.
It's like, whoa, hey, there's good conversations going on.
There's good research being done.
Let's make sure we get this right because it's critically important.
Yep.
And on that note, I want to thank you, gentlemen, not only for joining me, but for doing the research on the subject and coming to to explain it to everybody.
It's been incredibly illuminating for me.
And again, like I said earlier, a lot of people take for granted the technical details of the Bitcoin protocol.
It just works for them at the end of the day due to the work research that individuals like yourself and other developers have done.
and it pretty insane sci tech once you look under the hood and trying to upgrade that tech is not an easy feat especially when you have a distributed protocol and you need coordination
between all those individual actors within the system.
Yes, but one thing I want to add there is that what we're doing is also not rocket science
in the sense that it's impossible to understand or anything like that.
Because there's also this impression that I see sometimes on Bitcoin that there is this closed group of perhaps Bitcoin core people, high priests or whatever.
If that is the case, then that is very bad.
And I think everyone in the Bitcoin community agrees that it will be very bad.
Well, we want to have a system based on merit and there's no secret knowledge that needs to be obtained to be part of any sort of group.
At least this is the system we want to have.
And we want to have the best people working on Bitcoin.
And this was also our intention, writing this paper.
We tried to give a good introduction into this hash-based solution.
Right.
And slowly building up from very basic, from WEMPR signatures,
which probably we will not use, but just to build the intuition.
so go take a look at the at the paper we're trying to introduce the stuff slowly there and moving
on and on and showing what are the solutions what are the trade-offs what can be done and yeah
let's have a discussion and uh if i could read your research have a conversation with you and
know enough to like understand what's happening in the background with like verification
signature verification its effect on the protocol anybody can do it uh that's uh that's to say the
least but gentlemen any uh any parting notes anything um that you want to leave the audience
with right before we wrap up here i think i would encourage further discussions uh more technical
discussions uh reading into what we've done doing your own stuff suggest and yeah this is
let's have it with a good pace not rushing but also not not putting it away and saying like that
this will never happen yep i i agree i mean there's uh there's still a lot of uh feedback
that would be interesting for us in particular from from wallet developers um that that is sort
of an open question how um if maybe there are one of developers for example that can deal
with a state issue and we have a we have a scheme that we describe which is very efficient
if you can hold state securely so that will be interesting feedback then there is this
benchmarking question um especially with respect to siding on on low power devices
and uh yeah i think those those were the the the main open questions and the big question is like
what is the most interesting parameter set to choose from the set that we provide and um
Then there's also the question, I think some people would also argue that just using the standard versus our optimized thing would be preferable because then it would be supported by the secure element on your iPhone or whatever.
so that is I think also
one of the big open
questions with respect to hash based
signatures specifically
could you
propose a new standard
and get it
I mean we could propose
but would it be
accepted as the bigger
question
we make our own standards right
we have the BIPS process and maybe
we can get Apple to adopt
our standards that would of course be uh the most preferable path
yeah well gentlemen thank you this was uh again incredibly illuminating thank you for your work
and uh hopefully we can do this again maybe uh when you finish your research on lattice base
signatures we can uh we can catch up then or maybe not maybe we won't have to wait that long but
Thank you.
And I hope you guys enjoy the end of the year here.
Thank you for joining me so close to Christmas and the holidays.
So this was awesome.
Yeah.
Thank you very much.
It was fun.
All right.
Peace and love, freaks.
Okay.