TFTC: A Bitcoin Podcast - #383: Bitcoin: A Work In Progress with Sjors Provoost
Episode Date: December 16, 2022Join Marty as he sits down with Sjors to discuss a million little bitcoin rabbit holes. Follow Sjors on Twitter Check out the Sjors's book 7:00 - A wild Sjors appears in Austin! 10:08 - Senator Warr...en's DAAML bill 13:46 - Miners could start self censoring 20:24 - Forced labour 22:28 - Who interested in passing DAAML? 24:09 - Warren's terminology of "money transmission" 25:25 - Can this kill Bitcoin? 30:30 - State of Bitcoin development 33:08 - Utreexo and the growing blockchain 39:44 - Erlay 46:39 - Back to Utreexo and blockchain growth 50:44 - Foreshadowing a new blocksize war 55:10 - Building Bitcoin with future humanity in mind 58:06 - Bitcoin full node is a ship of Theseus 1:01:25 - Sjors backstory: Physics and Ducks 1:04:52 - Sjors backstory: Gold and Bitcoin 1:08:07 - Javascript dependency circus 1:09:07 - Geeks project 1:16:44 - Defending your node 1:20:07 - Separating wallets from nodes 1:25:28 - Miniscript 1:31:39 - How's Taproot doing? 1:34:27 - Are devs spread too thin? 1:36:09 - Bitcoin: A Work In Progress 1:41:59 - AI writers 1:46:44 - What happened with bitcoin core v0.24.0 1:47:39 - Checkpoints 1:52:36 - Bitcoin's upcoming 14th birthday 1:53:39 - Regulatory attacks 1:58:25 - Circular economy helps with privacy 1:59:48 - Countries switching to bitcoin 2:04:04 - Blocked by Taleb 2:05:28 - Ending Shoutout to our sponsors: Unchained Capital Braiins CrowdHealth TFTC Merch is Available: Shop Now Join the TFTC Movement: Main YT Channel Clips YT Channel Website Twitter Instagram Follow Marty Bent: Twitter Newsletter Podcast
Transcript
Discussion (0)
so freaks it's your boy marty here to introduce rip 383 of tftc with shores provost
bitcoin core contributor author of bitcoin a work in progress i'm all great all around
great conversationalists we have a long rip here for you get technical get cosmic get heady i think
you guys are going to enjoy it first we have to read top four boosts from rip 382 the dematerialization
of money with jesse myers if you guys are contributing to the show via podcasting 2.0
value for value model we thank you very much you can use apps like fountain podverse breeze
to contribute stream sats boost sats we read the top four boost of the previous episode
in this in this intro here they are for rip 382 eric99 50,000 sats stay humble stack sats
at garth 20,000 sats no message thank you garth thank you eric99 at vake 7500 sat boost
farty bent very funny vake very funny farty bent it's marty you misspelled it
and at tetsu 5000 sats seashell emoji seashell emoji seashell emoji epic rip boys all caps
fire emoji fire emoji fire emoji thank you tetsu thank you eric99garthvake and tetsu
for being the top four boost contributors to rip 382 thank you for contributing if you don't want
to contribute sats directly to the show but you want to help us out if you can give us a rating
a review on any of the podcasting apps that you use where it's possible. That would be much
appreciated. Helps us get more visibility and goes a long way. We're trying to blow the show up
right now. Unchained Capital helps us blow the show up. It's our sponsor and they're going to
help you eliminate single points of failure in your custody model. A lot of people are learning
the lesson, getting blown out by FTX, getting blown out by Celsius, getting blown out by BlockFi.
those who are using gemini's yield product are getting blown out by genesis
and therefore gemini don't have these single points of failure don't trust other people
with your bitcoin take control of your bitcoin unchained helps you do that with their vault
product it's a two or three multi-sig vault in which you hold two keys unchained holds one
their concierge team is going to help you get everything set up they're going to talk you
through ways to geographically disperse your hardware while it's in your seed phrases
so it is really hard to lose all that information and lose your bitcoin and then again they're there
to be the second in the two or three multi-sig quorum if you need them go to unchained.com
slash concierge use the code tftc and set up your vault today eliminate these single points of
failure take control of your bitcoin you have a trading desk if you want to buy bitcoin uh it
doesn't get you buy bitcoin it goes straight to your two or three multi-sig vault it's a beautiful
thing. There's no single point of failure there. You buy the Bitcoin, get sent to your multi-sig
cold storage. It's a beautiful thing. Unchain.com slash trading for that product. Use the code TFTC
for the concierge onboarding. This report was also brought to you by your good friends at Brains.
Brains is here to make you a smarter miner. Use Brains OS Plus auto-tuning firmware if you have
a compatible ASIC so that you can stack more sats, make your machine more efficient, and
elongate the life cycle of your machine.
These are important things.
If you're a miner, you want to be as profitable as possible, Brains OS Plus auto-tuning firmware
allows you to do that.
Don't be an idiot.
Go to Brains.com, B-R-A-I-I-N-S.com, go to the Brains OS Plus page, see if you have an
ASIC that is compatible with the firmware, and if you do have that, download it, use
it, stack more sats, make sure your ASIC is living as long as possible.
ASICs deserve to live as long as possible.
ASICs aren't people too, and they don't have feelings,
but they deserve to live as long as possible.
Use Brains OS Plus auto-tuning firmware.
Brains.com, B-R-A-I-I-N-S.com.
This report was also brought to you by good friends at CrowdHealth.
CrowdHealth is here to help you take sovereignty over your health care cost.
It's not health insurance.
The traditional health insurance industry is very opaque, very expensive,
doesn't really care about you.
you're just an input in a database, bad customer service. CrowdHealth is here to help you reimagine
how you take care of your healthcare costs. What you do is you sign up, go to joincrowdhealth.com
slash TFTC, use the code TFTC at sign up, and you're going to get $99 a month for the first
six months that you are a CrowdHealth member. And what happens is that you pay your monthly fee,
your member fee, that goes to a bank account that is in your name that you control. You build up
that account. If you ever have a healthcare event where you need to go to a doctor or you have a
medical bill, you tell CrowdHealth, hey, I'm going to the doctor. I have this medical bill. You give
them the bill. They go to that doctor. They negotiate down. The price is lower. They're
able to do this because they're going to pay the doctor out in cash immediately. And the doctor's
like this. So they're willing to lower prices for that. And then you pay the first $500 of that
medical bill. And then you crowd crowdsource, crowdfund the rest of that medical bill. And
everybody in the CrowdHealth community has a generosity score. So they're incentivized to
help you pay your bills. They've had 100% of bills paid to date, and they can't promise that
will happen into perpetuity. But so far, it seems to be a working model. On top of that,
they're adding a Bitcoin. They have added a Bitcoin community. It's one of their largest
communities in CrowdHealth. And within the Bitcoin community, after a certain amount of months that
you're building up that bank account, you'll begin to contribute dollars to that bank account
and a portion of your monthly payment will be converted to SATs as well that you hold alongside
those cut bucks. So you're able to speculatively, speculatively, that's not the word, speculatively
attack your future healthcare costs. Go to joincrowdhealth.com slash TFTC. Use the code
TFTC at signup. Again, $99 a month for the first six months and enjoy it. My family and I,
we're using CrowdHealth. We love it so far. Enjoy this rep. We're shores.
Take care.
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
it's all worth it when you wake up after a few hours sleep and you're able to come to bitcoin
commons and hang out with shores shores welcome to the show thank you for having me marty it's a
pleasure i did not know you're going to be in town this week i showed up and you were here i have
Excellent OPSEC. I just appear, and that's where I am.
I'm happy you appeared, because we can do this now.
Sounds good, yep.
This feels like a long time coming. We met in person for the first time in Miami earlier this year, correct?
I think I may have DM'd you somewhere in 2019 or something.
Yeah, we've DM'd before. We've never met in person until this year.
That's correct. The Miami conference.
You're on a bit of a trip right now.
Yes, I figured let's go to the US just before Christmas.
So I went to New York, visit the Chaincode Labs,
which is a very cool office too.
And then I went to Nashville to the Bitcoin Park,
which is also very cool.
Bitcoin Park is extravagant.
Yeah, extravagant would be another term for it.
But yeah, it's super nice.
Yes.
Well-kept secret.
And then, well, now I'm here.
well chinko labs is pretty extravagant too now that i think about it their office is way up there
in the sky in midtown manhattan yes even with a they have their own balcony basically all around
the building and just like on a typical day maybe four people there so well probably a bit more now
but it is like it's a lot of floor space per employee um yeah we're a bit more humble here
at bitcoin commons still nice still very nice we've got good music playing at all times i've
noticed that and yesterday i was bumping in here it was uh jam-packed in the commons
it was like 10 people yeah it's jam-packed okay yeah it's uh it's a good vibe how you like in
your trip to the states this time around yeah it's it's always fun to visit um so good times
uh it's always a bit tiring so i'm always happy to go home too afterwards but i i never regret
visiting so that's the way i am i'm not like a big traveler i get very exhausted while traveling
i used to just travel for the sake of traveling and i've gone to a mode where i like to have a
reason to go somewhere but then i'll add a lot of of empty time around it so let's say there's
a socratic happening in a socratic seminar happening in berlin i'll make you know i'll
make that two days berlin with the rest of the two days are completely unplanned so the same
with this trip i guess i figured i'll just go to these places and then hopefully i show up and
there's somebody there and otherwise i guess i'll i'll go at work at the starbucks or something
and just putz around yeah we got bit devs here in austin tomorrow night exactly that was excellent
timing i didn't know that before i planned the trip we've had some stars come through we got
you here this month we had merch last month or the month before always have lisa uh buck justin ben
in town i'm excited for tomorrow night yeah i don't know who's going to be around tomorrow
but uh yeah it's the holidays never know when people leave you might not be able to get out
if senator water gets her way yeah uh she uh wants me to perform forced labor i believe uh
writing backdoors into open source node software to do government things for them i don't know i
haven't read the actual bill and i'm sure it's not exactly that way but uh but but what i read
from one of your senators is that they want open source software to contain things to do compliance
yes and so even if that was possible you're basically telling volunteers to go and build
something that is not how it works like if the government wants that compliance software to
exist they can write it themselves and then you know other volunteers can take a look at it and
say well this doesn't seem to comply with how bitcoin is supposed to work so go ahead and you
know make your own fork but maybe not here but the idea that developers have to do this for the
government makes no sense so i guess they'll they'll you know to get around the first amendment
problems there they'll they'll phrase it something like well if you publish some code that doesn't
have the compliance you go to jail i don't know how that works i mean that's gets you into tornado
cash discussions yeah we're getting pretty tyrannical here well so i mean senator's proposing
crazy bills i don't think that's tyrannical yet because apparently she has proposed like 600 bills
and only one has passed so i mean it's probably a big publicity stunt yeah i've heard crazier
things proposed but in general the idea that uh yeah you can't tell volunteers what code to write
So if you want to have, if you want as a government to change how Bitcoin itself works, this is not the way to go about it.
No.
And the fact that you're here today, while this bill that, frankly, most likely will not get passed, I think it's an interesting opportunity to talk about the nature of Bitcoin.
We have your book on the table, Bitcoin, a Work in Progress.
You've been contributing to Bitcoin Core for many years now.
So you have a very, a well above average understanding of how the code base works.
You've written about it and you've contributed to it.
And so some of the particular points of the bill is Senator Warren would like to designate Bitcoin miners as money transmitting businesses.
Bitcoin full nodes as money transmitter businesses.
and wallet software is like KYC, AML-compliant pieces of software products.
Well, so those are very, very different things, first of all.
I guess the argument with miners, I guess they would say,
well, those coins, you know, miners are creating coins
and they're sorting transactions.
So I don't know if you can make that argument legally.
It sounds undesirable.
Presumably that would, you know, if they actually did that,
that could cause miners to leave, or it could cause miners to comply.
But the question is if that would be economical for them.
If you just look at the incentives for a miner, right,
for now, all they need to do is put transactions together in a block,
and that's it.
And presumably, they'll need some licensing for their power usage
and all that sort of stuff.
But to get a full money transmitter license,
even knowing what that what on earth that would mean in the context of a miner because generally
the idea is you should just blindly putting blocks together you're not you know you don't know where
the money is coming from where it's going and that's that's kind of how this protocol is supposed
to work so they might decide to say okay you know we want to stay in the u.s and we're going to play
along with this game and we'll come up with some bizarre way to comply with this regulation and
maybe they'll do that but it is internationally competitive yes so there's only so much they can
do that you know could still be creepy i mean the first things you might think about is just
simple censoring of specific blacklisted coins that's that's something that seems almost
inevitable that i guess it will happen at some point somewhere well it's already happened hasn't
it having the uh iranian blacklisted coins as far as i know aren't there aren't there a list
of addresses on a fact list yeah the list exists but as far as i know it has not they've not
actually been censored no so there has been recently a site built called the mining pool
dot observer which keeps an eye on every mining pool out there as far as they publish that they
are there whether or not they're doing any censorship and this is not trivial to detect
because it's a statistical process process right so if if if your own let's say it's very simple
they put you on the ofec list and your address is publicly known and now you decide to spend some
coins from that address that that transaction goes into the mempool and then based on the fee
you would expect at some point this thing to be mined so if you're paying say one satoshi per
byte and the mempool is very busy then no pool will mine your coin well that's not censorship
that's just because you're not paying enough but at some point you can see okay you're paying a
very high fee by any measure we think this should have been in the next block and then you could
You might see a pattern where one or two pools, you know, did mine a block, did not include your transaction, even though they included transactions that paid far less than your transaction, and your transaction has been around for a while, so they probably knew about your transaction.
And if that happens a couple of times in a row, then you can say, well, we think this and this and this pool is committing some sort of censorship.
And that's what that mempool.observer is trying to detect, and so far it's not found anything.
No, those OVAC coins have been moved, or coins from those addresses on the list have been moved.
And then again, you mentioned...
And it's a non-trivial thing.
You can start this cat-and-mouse game,
and I guess that could happen as a result of this bill.
Maybe this is an opening move,
and then the compromise would be that they will start censoring that address.
But then, of course, you, as the hypothetical sanctioned person,
would just move your coins.
Well, first of all, you would just send your transaction as you would always,
because there will be plenty of pools that will not censor you,
so your transaction will take a little bit longer, but not much.
But if all pools start playing the game somehow,
then you would move your coins.
I guess you would use some way to avoid using that address.
Well, and then you mentioned it earlier,
but there is that aspect right now.
It's popular within the Bitcoin mining pool layer
for these pools to include their name,
or maybe they're including somebody else's name
in the Coinbase transaction message.
Oh, well, that would be funny
if they would include somebody else's name
and sort of like mine a no-factor as action
and blame some other company for it.
Right, so you can play those games,
or you could just simply...
That's always a trend that's perplexed me.
Maybe it's just a tool.
Why they dox themselves, the mining pools?
I think it has to do with getting more customers.
Customers by that I mean miners
that point their hash power to the pool
because as a miner you can pick whatever pool you want.
If you own the machine, I think you've got one over there.
Well, that one's not going to do much.
I've got two.
I've got the 21 computer here too.
Oh, that thing?
Yeah, yeah. I remember that. That's a good space heater. So basically, you as a miner choose which pool you aim at, and then you want to pick a pool that's reasonably big, because otherwise you may never get any coins out of it, because there's some randomness, some variance, some luck.
um so miners want to pools want to say that look how big we are and one way you can show how big
you are is by simply putting your stamp your brand basically in every coinbase um so far that
comes at no no trade-off but that can you know this this could change that game theory wherever
it's better as a pool to be anonymous however it wouldn't give them that much anonymity either
Because if you have a pool where you can sign up randomly, then I guess the government can sign up for the pool as well and just kind of listen and see what blocks they're creating.
So I don't think removing the name from the Coinbase transaction is going to do that much for minor privacy for the big pools.
Yeah.
But if you're talking about a world where, let's say, you know, the U.S. has some influence globally, so they could first try to make these U.S. companies comply somehow with some censorship rules.
but then they'll very quickly find out that's utterly pointless
because it's only a small percentage of the hash power
so the worst you're doing is you're delaying
some transactions a little bit
but you're not stopping them
so then you know
the US might go around and globally lobby
more countries to implement
similar regimes and get to
above 51% compliance
that's when we have a problem
but you're still just delaying it
so the real painful thing
and I don't want to give anybody
especially Warren any ideas
but the real painful thing is once you start forcing pools to reorg that blocks so it's not
just about what you including your block it is whether you build on top of a block that is bad
bad you know it's care quotes yeah um but then that's when it gets dangerous because
then if you get 51 to comply with that um of course that's expensive exactly so that's the
other point like but that's where your qe comes in because now the government can say well you know
what we know that's expensive but we think fighting crime is so important that if you
do this reorg will pay you the the cost of the of the lost revenue but then it's a catch-22
because they're printing more money devaluing yeah but it's only a fraction of the of the
qe that would go to this particular thing interesting it'd be pretty expensive but it
might not be that expensive in practice because just doing it once or twice will create an
incentive for miners to self-censor because you don't want to be like it's fine to be the
miner not mining on top of that block because you get compensated by the government but if you're
the miner creating that block oh but now there's a good chance your block is going to go stale
nobody's going to build on top of your block so now you're going to self-censor even though no
government's telling you to censor and then then you get into this whole rat race where okay
maybe people will just pay more fees in order to get around this etc etc but that's all unexplored
territory then we get into the social aspect of it as well because in the scenario you just
mentioned it's forced labor to an extent the scenario where software developers have to
change things in the code yes well even with the mining pool there you're forced i don't know i
mean the mining pools i guess they'll play a liability game but it's like you you can you
can run a mining pool as a business but if your business is doing anything illegal you go to jail
And in that sense, any business that has to comply with the government is doing forced labor in that very broad sense.
But I think that's still a bit different than telling volunteers to go and do something that they otherwise wouldn't be doing, even though they're not being paid by the hour to do something.
So those companies would tell their employees to write some software in their pool.
That's still different from saying, okay, one of the Bitcoin Core developers, please make this thing for us.
It's like, no.
and again they could write it themselves but that's not i think what warren is proposing to
become the u.s government becoming vietnam core contributors no so the uh no i get that distinction
so how so but the question is who gets who gets in trouble when that doesn't happen because you're
telling a bunch of volunteers to go do something the volunteers are like yeah i don't personally
feel like doing that are each of these volunteers then immediately in trouble or is there some sort
of collective punishment going on or what if one of the volunteers does decide to build it but it
gets rejected by the other volunteers is that a problem i don't know yeah can they force i guess
could they go to the maintainers that have access well they can make the maintainers merge something
i guess the maintainers might not do it but even if they did do it then people would simply stop
downloading hopefully stop downloading software from those maintainers yeah um it's a cat mouse
game but in terms of going back to like but i don't think she's thought that through i don't
think this whole aspect so it makes it a bit theoretical it's like yeah i don't think she's
thought many things through um she definitely didn't write the bill either some lobbyist i
imagine well okay which lobbyist is that interested in this probably the banks or
okay so aren't the banks also excited about crypto now they pretend to be okay so that yeah
they pretend to be at least maybe some are yeah i'm always a bit skeptical of the idea that there
are people really afraid of bitcoin i think they should be but i don't think they actually are
but then that does raise the question who's writing these bills why should they be and why
do you think they aren't well they should be because bitcoin you know potentially could
wreak havoc uh in the at least in the fiat system it doesn't put but that doesn't put
banks out of business banks are still could still exist um i don't necessarily think that's
going to happen but it could happen so that could be a reason for they have the fear but
i don't think you know people who don't like bitcoin usually haven't really looked into it
that much either so i don't think they would be afraid of it they they i think most of the people
who don't like bitcoin are more surface level annoyed by crime or annoyed by energy consumption
and that's the the extent of what they don't like about bitcoin i don't think they see it as
as a threat to their existence well because by the time people do understand it they actually
like it and they stop being opposed to it stopping that's kind of my yeah my theory there
yeah you gotta learn more you gotta read bitcoin a work in progress yeah which does not cover any
of the things we just talked about but going back to like warren's bill like technically
you touched on it but like let's try and steel man why the definition she's trying to thrust on
these particular actors and stakeholders within the bitcoin network the idea of making miners
money transmitters has been floated by other people too um so i'm sure they'll keep trying
that but what are miners actually doing and would you define it as money transmission
well the security network so ideally that's the way i would see it they're they're basically
adding security to it and they're they should be sort of ignorant of what's in it just like a water
company you know it's not facilitating crime by making water go somewhere but the analogy is not
that clean so you know they are helping yeah they're creating blocks basically so they're
adding security and they're preventing double spends that way so they're deciding the order
of transactions but in theory they have some ability to censor it um though like i said that's
not so easy because you need to collude with 51 of the miners in order to do that censorship
and to demand them to do such collusion sounds to me like a bad idea
yeah because but that doesn't mean it can't politically happen
no then going back to the social aspect does that type of demand validate bitcoin's value prop
which it emboldens people to work harder to maybe distribute hash rate more granularly
that's another thing like in that situation somebody with mining businesses
here in the United States,
I would simply just turn off my miners
and sell my ASICs to somebody.
Well, that comes to the cost aspect of this.
But if the government is subsidizing it,
that might not be an issue.
But I'd rather not get paid by the government
to censor Bitcoin.
Then you're going to sell your miners
to somebody who does want to be paid
by the government to censor Bitcoin.
So I find this very hard to predict.
I don't think we're anywhere near
that part of the game yet.
And it does not seem like the lowest hanging fruit.
So when it comes to regulations around Bitcoin, I think it's much more likely to happen at the level of custodians that are actually holding somebody else's Bitcoin.
So they can just hold that money hostage, as I like to call it, reverse ransomware.
So instead of paying money to get your data back, you must give data to get your money back, basically, because it's sitting on the exchange.
And they're like, well, we'd like to see your password now.
This has been a good week for preventing that.
People have been encouraged to move their coins off the exchange, yes.
yes but at that point they're already too late right it's still there so now a lot of people
might be in a rush to get the money of exchanges and that is a good opportunity for those exchanges
to ask some extra questions yes hey hold up before we look for the bitcoin that you're asking for
we're going to need you to to upload a selfie with your passport please yeah yeah and do you
think it gets harder to attack the mining layer as time goes on no at the moment i think it's
getting easier because you have all these publicly listed us-based companies that you know and where
censorship is still very very cheap relative to at least the the the naive form of censorship the
the one that doesn't work so so in your mind what is the path towards a significantly and
sufficiently robust mining layer well i think you know you had matt corolla on i'm sure to talk
about some of the work he was doing by making it easier for you want to have more pools basically
At least it should be easy to run a pool, and the other thing is it should be easier
for actual miners, by that I mean the people who have the machines, to do their own transaction
selection, so that the choke point is not the pool operators, but it is the individual
people hosting the machines.
And then the optimistic part of me would say, well, those machines are going to places where
electricity is cheap, and that's increasingly probably going to be very remote places and
very dispersed all over the world.
and that could be good because now you have to go after a bunch of mountain men basically um
so that's probably it but i don't know if it's going to happen well i can confirm i do have
miners on top of mountains on top of the mountain on top of like a ridge of a mountain yeah okay
that's a pretty cool spot to have them yeah a lot of strand of natural gas so so that helps like if
a lot of if mine if the selection of what actually goes into a block is happening by a lot of
different people in a lot of different places uh it is more difficult to require all of them to
basically not just censor things but also remove blocks that are unwanted so that might help
yeah but i i don't think you know bitcoin is not destined to succeed so no definitely not it could
this could be a failure mode we could look back in 100 years and say yeah yeah this you know they
first they tried to digital cash which had a central counterparty well that didn't work because
the government just took down the central car the central counterparty and then we tried this
bitcoin thing and it seemed to work really well but unfortunately it's too easy to capture the
mining process so i need to come up with something completely new yeah um but it might also be that
this will work out fine that it's just too much pain to to go directly after the blockchain yeah
think that's probably one of my favorite greg maxwell post is his post and somebody asked him
what like how's bitcoin gonna die and his response was complacency yeah i think he's right about that
um because one of the the risks is that if bitcoin gets or if most of bitcoin's use gets captured
so even in a case where nobody attacks the blockchain but all the bitcoin is living
on kyc exchanges and everybody has to have permission for everything the project becomes
less interesting for for developers and you'll have fewer and fewer developers that are you know
actually working on it and then the system could just die from lack of maintenance because yeah
it's not it's not the case that if you turn on a bitcoin note now that it's still going to be fine
a thousand years from now unfortunately software has to keep changing a little bit at least to fix
all the bugs but worse than that you could have a selection where all the developers that are left
at some point are not very good and they make it worse and so they might even break it what is
the state of bitcoin development i've been hearing a lot of burnout in terms of people i'm seeing a
lot of new people yeah seeing a lot of anonymous people or at least people that i don't know who
they are um so that i think is a good sign would you deem them competent from what you've seen
well that takes time yeah i think i mean the process i think still works the process being
somebody can come in with no experience make a pull request or a suggested piece of code
to the bitcoin core source code and then several other people with more experience will come in
and say well did you think about this and maybe you want to improve this thing and then they'll
go back and improve it and so i think that process still works fine bugs do get in but that's always
been the case yeah so i right now i'm quite bullish it's going quite well okay so you're
bullish on bitcoin on the software yes and on the project in general yes i just like to paint like
worst case scenarios yeah um that might never happen but those are also interesting to think
about yeah i always go back and forth with this i do think but you're right that there are burned
out developers and that has i think probably something to do with just if you've done something
for a long time at some point you get tired of it especially if you work too hard uh burnouts
just happen in any job uh it may also have something to do with a certain australian
causing a lot of just personal headache for these developers um yeah are you burnout at all
i don't think so no but i try at least in my last couple of years i've not done this full time i've
done it like a few days a week on average and that helps me sort of have enough other things
to be interested in that I don't burn myself out.
And hopefully I can keep doing that longer, basically.
Yeah, you're telling me you've been focusing mainly
on review and commenting.
Yes, I have found myself doing mostly code review
and testing stuff, which is,
there's a huge bottleneck there anyway,
so that is useful to do.
Just to, yeah, basically somebody makes a proposed change,
you look at their code, you see if you can break it,
you leave a comment on GitHub and then they'll have some homework and then
sometime later they'll say okay I fixed it and you try it again that's kind of how it works
in your mind what are like the most pressing priorities of the project overall
oh man um there's a lot right um there's a there's quite a few things that are I don't
think there's anything urgently immediately broken those things will get fixed if there's
And if there's a short-term bug, you know, people will rush in and fix it.
But there are these long-term things, like the blockchain is getting bigger, that you want to deal with somehow.
These are long-running projects.
I wrote a few in the book that I think are interesting.
They're not urgent, though.
That's always the problem with these things.
They're very cool and very promising, but because, you know, people like to put out fires more.
Was Utrex one of those?
Yes.
And assume UTXO, possibly too.
Though with UTXO, maybe you won't need it.
Yeah, UTXO is very cool, right?
Maybe go a little bit back.
We all know the blockchain is big.
That's one problem.
What's it at now?
600 gigabytes or something, maybe 500.
I had to prune my laptop recently for the first time.
It could have been a little bit more efficient
with some of the other stuff that's on there,
but I pressed the prune button
and that did feel like a special moment.
Maybe it wouldn't for normal people.
But I always found it nice to have the whole blockchain.
You don't need to keep the whole blockchain.
There's not that much practical utility in it.
The idea is you download the whole thing,
you check every block.
Once you've checked that a block is okay,
in principle, you can toss it.
There are a few little things
why you may want to keep a few weeks around, right?
There might be a big reorg
or you might load an old wallet
I didn't want to check some of the previous transactions in it.
So then you need to be able to rewind a bit.
But you don't have to keep the whole history.
You've checked it.
It's okay.
The thing that you have to hold on to is the state of the blockchain.
The UTXO set, as it's called, is the set of coins, as in who owns what.
And the way you determine who owns what is by replaying the whole blockchain from the
Genesis block on.
So the first block will say, okay, there are now 50 coins.
They belong to Satoshi or this anonymous address.
and then the next block says okay now there's 100 coins and they belong to this other person
and then some future block will will say okay this coin no longer exists and now this because
the money moved to this other place and the only way to figure out who owns what is basically do
all that transaction by transaction but this database of who owns what is getting also quite
big and more importantly there's no natural limit on it like it could grow infinitely large and we
see that i think it's getting particularly large on a certain fork of bitcoin um but it could also
get large on bitcoin itself and what you tree xo is trying to do is basically remove the burden
of holding on to this information so right now every single bitcoin node has to hold on to who
owes owns which quote coin and with you tree xo the hope is that you don't have to keep track of
that anymore when somebody wants to spend coins it's up to them to prove that those coins existed
so it flips the burden of evidence which is kind of cool and how if somebody wants to spend prove
that that utxo previously existed magic and dispendable uh basically magic no um i think
that there's multiple ways to do it i think the general term is an accumulator but it um yeah how
to explain it i guess you're do you know merkle trees i understand the concept yeah yeah so what
can do is you can every user will have the the top hash of the merkle tree and you know that
that represents who owns what but you don't know what's in the merkle tree and so when somebody
wants to spend it they have to reveal some part of the merkle tree some leaf at the bottom of the
merkle tree and they'll have to show basically all the way up so like for every layer that you
go up in the merkle tree you need to have one piece of data like 64 bytes so if you're 20
layers deep in the merkle tree and that is a very very big muggle tree um yeah you need to provide
20 pieces of data and that'll prove that you know what was in there and that proves that you actually
own that coin and then for the rest is the same as always you have to provide the signatures and
satisfy the script and all that sort of stuff but the proving that a coin existed you'll be able to
do by the person spending it will just have to send the proof along with it and in terms and
and that means that yeah the the person checking it no longer needs to keep track of the whole
whole merkle tree it just keeps track of the tip and it'll get these pieces of evidence and it
will evaluate them one by one yeah so it's the tip of that merkle tree created via the information
included in all the leaves and branches below it yeah exactly and basically spending your
transaction means that you are changing the merkle tree so you're removing one leaf from
the merkle tree and you're adding another leaf somewhere else in the merkle tree so you get a
new tip and a new new piece of evidence and i think that's one way to do it but there's other
mathematical techniques
to do the same thing
that will have
the same effect
but don't use
Merkle trees
and that's what
things like
dash dry jaw
is always working on
well he
he
he
he wrote the
U-tree XO paper
right
yes
yeah
but I think there's
some other people
working on it too
and then in terms of
so the nice thing
about that is
I mean
the whole state
is only like
7 gigabytes now
I think
of who owns what
maybe 10
so you think
that's not that much problem is though in order to very efficiently check if a new block is valid
you'll want to have that whole database in your ram because then you can very quickly look up
does this coin exist does it not exist you don't have to go to a hard disk and like you know look
it up and then go back and ram is pretty scarce plus the thing that there's no limit to this it
could get you know 100 gigs at some point yeah so that utrixo would fix that problem and what
What would the impact on the overall chain state be?
Would it reduce that significantly or would it slow down the pace of growth?
No, the blockchain itself won't change.
It'll be just as big.
Okay.
In fact, and now I have to work from memory, which is never a good idea,
I think it will actually get bigger.
Because the problem is that these pieces of evidence,
they do have to be recorded.
Because if you only rely,
I think if you only rely on the people spending it to give it to you,
they'll give it to you as a node
in the mempool for example when you're seeing
it as an unconfirmed transaction but then
if you come along later and you want to download
the whole blockchain well you still want to have these pieces of evidence
so I think it will actually make the
blockchain bigger
so how does this help? well it helps because
you don't have to store the blockchain
you just download it once you check every block
and you can toss it so in terms of the
actual resources that you need would be far less RAM
like no RAM
essentially and
no more disk space because you can just toss away
all blocks. The downside is
a little bit more bandwidth.
And this is where Erlay comes in, correct?
No, Erlay would
come in... So Erlay comes in
before
you have any blocks. So what I talked about
now is really about making it efficient
even without a mempool.
So just checking every block in the history
of the blockchain. That would be more
efficient with something like Utrecht.
Now there's this other aspect
of when
When you're running your node and a new block comes in live, let's say, that's where your mempool comes in.
So your mempool holds all the unconfirmed transactions that you know about, and those might include the extra evidence or not.
And then the question is, do you want to send your peers those unconfirmed transactions as well?
Because they may want to know about it.
And that eats up lots and lots of bandwidth.
And so early is a proposal to reduce that bandwidth.
in a smart way so it's at the mempool level yes to let everybody know what transactions are waiting
to be included in a block yeah and there's multiple reasons why you may want to know that
i mean part of it is altruism you just want to help spread those transactions because it's got
to go to a miner somehow and it might you might go through your node to get to that miner and the
other is that well if you're waiting for somebody to pay you it's nice to get a notification at
least that something is on its way although you can't trust it yet because it's not in a block
and the third reason is that it's a little bit more sophisticated i guess is once there is a
new block you'll learn about it more quickly if you have this mempool because what happens is
normally if you get a new block let's say it's two megabytes you would have to receive the whole
two megabytes then verify the whole two megabytes check all the transactions in it and then you say
okay yes i have a new block then you send it to your peers they also then need to download the
whole thing check the whole thing and send it to their peers so that's a slow process because
takes you know you have to download things check things but because of the mempool you can kind of
skip ahead a bit you can already guess what's going to be in the next block because you have
all these transactions in your mempool and so instead of getting a whole two megabyte block
you're getting a header of the block and a list of transaction identifiers in the block
which you can verify much more quickly and then also forward much more quickly
so everybody having a mempool causes blocks to propagate faster
and that is useful in itself
because you might say well I have low time preference
I don't care that these blocks are propagated fast
that's fair
but the problem is what if two miners find a block at the same time
you ideally want to avoid that scenario
because that's basically wasting money
and could in bad circumstances lead to the network temporarily splitting
so it's good for the network
for the network to propagate blocks fast
so the mempool is useful for that too
and that split has
happened in like the last
two years correct?
I mean it often happens
I think probably not as often as it used
to but once every I think it's once
every month or maybe even once every couple months
there will be two
blocks produced at the exact same time
what is significantly more rare now is that you'll
have more than two
blocks at the same time so you might have
two blocks at the same time and then both of these
get a block on top of them and only then
do they converge. I think that's very
rare now and it used to be less rare
and I think in 2015 around the
soft fork due to some other bugs
I think there were times when there might have been three or four or five
blocks that
would just go off, build five blocks and then
suddenly it would switch to another
chain. So that's a lot of wasted
mining power. And of course
if your transaction
is confirmed on one side of that
that chain but not on the other side of the chain you also have a problem yeah if you accepted uh
one confirmation okay so would early with this yeah so so then so now if you explained why the
mempool itself is useful but the downside of the mempool is that you are sending transactions
around a lot and this takes a huge huge amount of bandwidth so early is an attempt to reduce
how much bandwidth it takes to send these uh to send these transactions around to your peers
and i think it does that again with magic that's the way i would look because i don't fully
understand the math either but it tries to make some sort of i don't think it's a fingerprint
but some sort of sketch i think that's what they call it a mini sketch of your mempool
and the other side your peer will do the same thing of their mempool so they'll say like
my mempool is this and my mempool is that and instead of sending the mempool itself they'll
send this summary or whatever it is of the mempool and you compare those two summaries
and by comparing them you know which transactions you're missing which is kind of nice and there's
some ratio between let's say you have a hundred thousand let's say you have ten thousand transactions
in your mempool and the other side has ten thousand transactions in the mempool and if the difference
is one so there's only one transaction that's different then you need maybe 60 bytes a message
you can send 60 bytes to the other side and they'll know exactly what's missing but if they're
missing more they won't know it at all so you have to guess what what the size is of the difference
between you and the other side and that's sort of the math that these folks have been working on i
think it was glab glab and um peter helped him out with it or so and interestingly enough the math
that's required for that is the same math that makes i believe is the same method that makes
your iphone recognize your fingerprint without storing the fingerprint do you believe apple's
not storing our fingerprints well in theory they don't have to whether they're doing it or not
that's a separate question but but the way they've done it is they don't have to no they they'll
they'll know your fingerprint when they see it but they won't know your fingerprint
interesting it's the same kind of math okay which i can only explain at this level it does sound
like magic yeah but it's not of course it's way over my head yeah i can i can deduce some of the
merkle tree magic but when it comes to the earlier magic it's uh it's a bit harder for me well yeah
exactly well for me too so that that helps but going back to you tree xl speaking of the merkle
tree my guess is you can if you do go into that math it'll come back to linear linear algebra and
And if you have two points, you can draw a line between it.
If you have three points, you can draw another curve through it, et cetera.
It's somewhat, in abstraction, it's somewhat like that.
Back to the bandwidth issue with IBD.
So the bandwidth we talked about now is for when you're already synced
and you're just waiting for the new block
and you're just gossiping the transactions in your mempool.
early should help reduce that bandwidth going back to u3xo we'll make the chain state
bigger arguably then you still have those bandwidth issues on ibd correct
yes yeah so so the downside is you'll have more bandwidth for ibd and then the question is what
are you worried more about are you worried more about bandwidth or are you worried about
more about ram and i don't know the answer to that and the answer might change over time
so it might be that until say 2050 we're more worried about bandwidth maybe after 2050 when
you know as bandwidth gets better maybe then the other another bottleneck appears so that's a that's
also hard to predict so i'm not saying that u3xo is a feda complete like it's going to happen that
might never happen but it's it's an interesting proposal it is bitcoin especially it's promising
proposal because it removes i think it removes the last thing that's unbounded so by unbounded
And computer science usually means there's no natural limit to it.
So blocks are limited per block.
There's a hard limit on it.
The blockchain itself is unlimited, but you don't have to store it.
So in that sense, it's not creating an unbounded thing on your machine itself.
And besides, though that's maybe a little bit more controversial,
but you have ideas like assuming the UTXO set that James O'Byrne is working on,
where you start with a snapshot.
And so you can in theory say,
well, we don't care what happened in the last 50 years.
We only start one year ago.
Though if you don't want to do that,
you can still go all the way back.
Yeah, and with assume UTXO,
if you are comfortable with the trade-off
accepting the signatures at certain points
of the block height history
and you do catch up to tip quickly,
IBD happens in the background slowly over time.
In the current implementation,
but that sounds like something obvious that people might not want to do um because it takes up too
much bandwidth yeah ram no because yeah because it would take up all the bandwidth and the question
is are you likely going to find a problem of course some people should keep doing that
so that's that's a difficult question there yeah but in principle if you were to do that then
if you start using bitcoin and you don't care about deep history let's say it's the year
you know 5300 and maybe you care about the last 200 years but you know you've read your history
books and you're not aware of any controversy that happened earlier maybe you're happy to
download only the last 100 years worth of blocks that's fascinating so that means that the computer
that you'll need in that far future it doesn't have to have an infinite disk because it's going
to download a limited set of blocks maybe only 100 years worth of blocks or whatever is reasonable
then it won't need a lot of ram because it has this u3xo or something like it that keeps the
ram low and it doesn't need infinite cpu either because bitcoin transactions are not that difficult
to verify so that's that's what computer science tend to mean with unbounded but not in this case
not unbounded everything is bounded we know sort of the resources we'll need and we'll those won't
get worse in the future with all these new innovations right now things will keep getting
worse in the future and so you have to hope that morse law can keep up with it do you think it can
well so far it uh it seems to but it's it's already behind i think luke dasher made a
a nice presentation a few years ago at one conference where he kind of looked at okay
right now it takes way too long to download a blockchain on mobile and it's going to take it
it's going to get that's going to get worse until 2040 or 2050 or maybe even 2080 and then at some
point it will stop getting worse because the blockchain is growing linearly so
every year you know it's getting so many gigabytes bigger but it's not growing
exponentially whereas computers are getting exponentially faster or
bandwidth is getting exponentially faster so exponential growth will at
some point catch up so if if your home bandwidth gets 20% faster every year
then if the blockchain doesn't grow then every year you'll download the
blockchain 20% faster but because the blockchain does grow actually every year
It's going to take you longer to download the blockchain.
But at some point in the future, and you can extrapolate it,
it will actually take less time to download the blockchain.
We've just got to wait for those advancements to catch up.
Yeah, and that's why he then proposed, and that's the more problematic part,
to reduce the block size to 300 kilobytes.
Because then this point where it gets better would be in the 2040s,
which is a little bit closer by.
And that's nice, because as long as people can decently use Bitcoin on a mobile phone,
that is a vulnerability of the system.
because a lot of people don't have desktop computers yep and you know the longer we play
in a situation where not everybody can run a full node you know that gives governments or whatever
the opportunity to capture the whole system yes so we kind of want to you know get into a place
where bitcoin is on everything everywhere um but it looks like that can't happen for the next 100
years or so because of these choices that were made or how big blocks should be yeah so the
argument that blocks are too big i think is a good argument i don't think it's a sane plan to
then reduce it to 300 kilobytes but that's more of a political thing than a why don't you think
it's sane because of the hard fork what do you think no it would be soft fork it would be yeah
as reducing the block size is a soft fork so the way to look at it is a hard fork yes and the way
to look at that is is to say if an old node saw a block that's 300 kilobytes it'd be perfectly
happy with it, right? If, however, an old node sees a block that is four megabytes, it would not
be very happy with it. So making it smaller is a soft fork in that older nodes are not going to
protest it. Newer nodes, however, would reject blocks created by old nodes because they would
say, hey, this is bigger than 300 kilobytes. That's our new limit. So you could do it as a
soft fork and you could put a sunset on it. You could say, well, we're going to reduce it to 300
kilobytes but only for the next 50 years and after that it jumps back you can do all those things but
it'd be extremely controversial why would it be controversial i don't know i mean i think people
would not be happy with the idea of you know transactions getting a lot more expensive because
of that yeah it might also not be economically very efficient i mean it's not it's probably not
the case that if you make blocks infinitely small that the total revenue for mine is just going to
go up but there's some optimum there which i'm not an economist but at least i believe it's not
the case that um that the monopoly rent is the highest rent well economists aren't very good
at predicting things anyway so true but i mean the theoretical extreme is you could make blocks uh
10 kilobytes for example and then that would only be if quite a small number of transactions in
every block and that will probably make bitcoin so useless that the miners would not be making
money because nobody would be using bitcoin so there's some point at which you're making blocks
too small to be useful and then what do you think about and also just agreeing on what the number
would be like can you imagine the arguments on twitter and reddit and github should it be 300
kilobytes why not 369.420 kilobytes so just the bike shedding around that would be a nightmare
it would be because again you're introducing some arbitrary
you have to pick an arbitrary change yeah i mean satoshi was able to pick that one megabyte
um basically by himself very quickly and without telling anyone yeah this happened early on right
yeah so in the beginning the blocks were if you look at the code i think they were effectively
32 megabytes the very very beginning then he probably realized that that's going to cause
problems given like the worst case size of the blocks and what especially that old node software
would definitely crash if it got blocks that were as big as the blocks are today
let alone if it was getting 32 megabyte blocks it would just completely crash so he probably
realized that and just said i'll make it one megabyte and that was the end of the discussion
it just happened well that's interesting because then satoshi set the precedent for
an arbitrary change to no he he basically did a bunch of arbitrary changes and that hopefully
set the set the experience of like we probably don't want this because some of these arbitrary
changes could be very bad if he was allowed to continue doing that yeah and who knows that he
might have talked to some people but i wasn't there so that's fascinating another thing you
mentioned earlier like just the the thought experiment you threw out there of thinking of
bitcoin and 50 the year 5300 that's another thing that really fascinates and thralls me about
bitcoin the software project and individuals who are like you're like yourself who are working on
it is a lot of you guys and girls have this like vision of working on bitcoin today with
the prospect of future humans many years after we're gone i don't know if everybody's doing
that all of the time i'm definitely not doing that all of the time yeah um but it is those are
interesting thought experiments and it's for me i'm a physicist by training so it's also kind of
a nice way to think about things you extrapolate them to some extreme value and see if things still
make sense so you can know if you look at if you try to imagine what bitcoin could look like in
10 000 years you can see if there's some things you've that just make no sense anymore um then
something will have to be changed at some point to deal with that whereas if you only look two
days in the future you could say well who cares what we do because it's only two days in the
future and it won't break in two days yeah there is one hard fork that we do need right with the
unix time stamping i believe so yeah i've been trying to raise the alarm bell around this
the alarm bell for something we need to do in 100 years well the argument would be that you
put in the hard fork flag in an earlier version so that yes we wait for 100 years to do that hard
fork, but you have so many people have downloaded later versions of the software and it leads to
as little disruption as possible. I may be wrong. Yeah. So if you look at the practical experience
of running software that's more than 10 years old, like it hasn't been updated in 10 years,
you're going to run into a lot of problems, right? So the experience suggests that
when the year 2106 or whatever arrives, nobody's going to be running software that was written
before the year 2090. Nobody's going to be running version 0.24.1.
No, because there simply won't be a computer then that can physically still run it.
Like, you might not even be able to read it.
Like, it'll just be a blob of bits and bytes, and it's like, what is this?
Oh, that was Linux, you know, that existed so long ago, we have no idea what it is.
That's interesting. Now I have an interest.
So the idea, as you're suggesting, you want to put whatever that hard fork is going to be,
you want to put it in the code early.
uh at the same time i my you know guesstimate would be do it 20 years in advance not 100
because there might be some other things you want to do because there is such a thing as
the hard fork wish list there's probably other things that might be useful to fix while you're
at it that are not hopefully not controversial um yeah but it'll still be interesting yeah because
that might still create arguments but the idea of having it in there 20 years in advance
sounds useful though yeah this stoked a very interesting analogy in my head the bitcoin full
node topology is similar to human in its body and that like the cells i was born with none of them
exist to me right now like shed them and reproduce yeah none of the molecules do either yeah and so
like bitcoin the network is similar to that in a way yeah i i think so um i mean there will be a
continuous history like you can you can process the whole history and hopefully the whole history
would be preserved like i have memories you can even imagine a scenario where that's not the case
where if you know if this thing survived for thousands of years and maybe some wars happen
and maybe there is no backup of the whole history and especially if you go to a situation where
snapshots are used because again you cannot probably even with future computational power
not replay everything from the genesis block at some point maybe that point is a thousand years
away maybe that point is a million years away but there's got to be i think there's got to be a
point where it just makes no sense anymore to try and replay everything from scratch
and then if the majority of people start using these snapshots then maybe there will be a point
where nobody will remember even if there was ever a controversy so that'll be very interesting and
there might be then conspiracy theories that there was a so let's say all the backups are
gone like nobody has the genesis block anymore or maybe they have the genesis block but they
They don't have the blocks between the year 25,367 and the, you know, 26,000.
So they miss 1,000 years worth of blocks.
Nobody can find those blocks anymore.
And so then the question is, is the last snapshot that we have from back then that the archaeologists have,
is that really the start?
Or was there some shenanigan in that 1,000-year period?
And is that perhaps also why we don't have those transactions?
Maybe somebody stole some Bitcoin, you know, forced everybody to go along with this change,
and buried all the evidence of it
and I'll create some fascinating conspiracies.
So we need a distributed library of Alexandria network.
Yeah, you know what happened to the library of Alexandria, right?
Yeah, well, that's why we need a distributed multiple secret, ideally.
Yeah, but still, the longer the time period gets,
the more difficult it will be to hold on to stuff.
Yeah.
And especially if somebody is dedicated to removing some piece of information.
So I guess I haven't run the numbers on this,
so I'm kind of making it up.
The part that I'm making up is that it is really, really hard
to hold on to all of history,
but this depends on your assumptions of Moore's Law.
I mean, with our current technology,
I think it would be completely impossible on your Raspberry Pi
to store a million years' worth of blocks.
It's hard to run a node on that Raspberry Pi right now.
Yeah, but my guess is that in a million years,
whatever computers will be there will be slightly better than a Raspberry Pi.
Maybe not. Maybe we regress, right?
Maybe we make a lot of technological process
and then we have a bunch of wars
and everybody goes back to the Stone Age
and everybody is using,
or not the Stone Age,
but like maybe 200 years from now
everybody will be using Raspberry Pis again.
And then we're really happy
we didn't increase the block size,
but we still can download the whole thing.
And so we get to that sort of a bottleneck
where maybe there's a The Hard Disk somewhere.
But then when people finally excavate The Hard Disk,
it doesn't work anymore.
It's corrupted.
Yep.
Yeah.
This is the most cosmic we've gotten on the show in a while.
You're welcome.
It's fun to think about this stuff.
And you mentioned it, you come from a physics background.
How did you come to find Bitcoin, working on Bitcoin Core?
This is what people do.
I mean, after I studied physics and then I did sustainable development,
which is sort of environmental science, looking at climate change-related stuff,
but also my master thesis was on the migration patterns of ducks,
which sounds completely random it is completely random but we had uh we have duck decoys in the
netherlands where they catch these these ducks basically by they have a nice little pond and
some little wood wood wooden constructions and some cute little dogs and the ducks will see the
cute little dog and they go towards it and then they kill it and so they don't kill them anymore
that was the way you would hunt ducks before you could shoot them down um basically um but they
now they put rings on it so it's catch and release so they put rings on it and then those
ducks fly somewhere else and and then some some guy in russia shoots down the duck and they find
the ring and they know where to send it and that then you get a database of 100 years and i analyzed
that database and one of the things i did during that analysis was make a website called ducks on
rails which for the ruby on rails fans still get the pun but basically it was a website where you
could see that data visualized that the site is gone now but that was a software project and then
you go and travel a bit and you meet people at a barbecue and they say can you write python it's
like well i did something in ruby and real sounds good you're hired and so you become a software
developer and as a software developer at some point you come into contact with bitcoin and you
start applying your skills to bitcoin what drives very serendipitous what uh but it did combine a
lot of my interests even then first of all what did you learn from the duck migration study
that they they don't live very long that uh it's very nice that the dutch don't hunt the ducks
but it's kind of pointless because the finns and the russians shoot them all down
they breed enough there's a lot of duck hunting here in texas too yeah but those are not coming
from europe as far as at least the species i looked at in that limited database that i had
which is like 100 years of data so it's kind of fun to look at most of them fly sort of northeast
east towards siberia um i don't think a lot of them fly to america which kind of makes sense
if you look at the history because we know that only once the europeans started going to america
that's when a lot of people started dying here from all the european diseases and if there had
been lots of duck migration towards the americas that should have happened earlier because pretty
much everything we have you know we we give it to ducks and it flies over so um i didn't learn
anything specific i did learn that people had historically had horrible habits of how to
maintain databases there have been different coordinate systems that people use um so the
netherlands had its own coordinate system different from the gps coordinates that we're used to
um and then because records were kept on paper people would write down one two three four five
six if they didn't know the coordinate that's not fun if you're using a computer to process it
because one two three four five six is an actual place so it's like why are all these ducks in this
weird village i was like oh okay so yeah but nothing profound yeah fascinating and then you
got into contact with bitcoin what drew you into bitcoin and what did you i mean i had some um
experience it's a friend of mine who was very much into gold so i was kind of following people
like peter schiff at the time um i've read some of the stuff i was not i would not consider myself
of a fanatical gold bug but i was definitely interested and i what i liked about some of
them things is that they were asking good questions about the current financial system
and even if i didn't always agree with the answers they would give about how good gold would be as a
solution i i did think they asked good questions about like how you're going to manage things like
inflation and how much can you borrow and i found the official answers to be very unsatisfying
because the official answer i think it's still summarized as yolo basically it's like
uh like yeah no these deaths will be fine and i must say i i then i'm always surprised that
the whole thing doesn't collapse as bad as you think it should and after 20 years of hearing
these stories like yeah well it still hasn't collapsed so maybe i'm missing something
but whatever that drew my interest then i'm a software developer and bitcoin is programmable
money so once i understood that i was very much interested in it because it is like i said it's
software and because it's money as soon as you buy like 10 euros of the stuff and it's in your
own wallet and you can change the code of your own wallet now that just i don't know that adds
a lot of extra motivation because now it's something you can lose and yeah so you received
bitcoin for the first time and then like made a custom wallet for it not a custom wallet i i bought
some like tiny amount on uh one bitonic i think it was it's a dutch uh dutch broker they've been
around since 2011 2012 or something it was a bit later then i sent it to the blockchain.com wallet
which at the time blockchain.info at the time and that this was right when they were banned from the
app store and so there was all these cool videos of people shooting their iphones yeah that was
very cool and so but i was an ios developer so even though it wasn't in the app store i was able
to just download the app the source code because it was open source i was able to compile it and
run it on my phone so that was one of the first things i did was just to try and get that app to
work on my own phone and then find some bugs in it um because that's what you do as an open source
developer you you make a bug report that got ignored for a year and then a year later they
actually called me to work for them so that's why i worked for them for a couple years what was it
like building out blockchain.info yeah it was very fun it was especially because it was during a
bear market so i don't know what would have happened otherwise because this is like 2014 to
2017 to early 2017 so everybody i think would have thought bitcoin was dead but you don't have to
worry about that because you're just focused on at the time we were rewriting the whole wallet
software from the thing that was written by just one guy um ben reeds basically wrote the original
wallet we with a couple people helped rebuild it i think they've since rebuilt it again since i left
but that's what software development is so you're just busy enough just figure out how do you make
a non-custodial wallet basically in a browser and all the the trade-offs there what so yeah i had a
great time there what were some of like the most important lessons you learned well long term i
don't like building i don't like having a wallet in the browser and it has mostly to do not so much
with the fact that it's a browser but the fact that it's that the only thing you can build it
in is javascript and the only good system to build javascript is node.js and node.js is a
dependency circus and so a dependency circus means like you want to do some sort of nice graphic in
your browser great you have this little package and this little package will use some other 10
other packages and that those 10 other packages will use 10 other packages so now the problem is
if you want to make sure there's no backdoor coming into you you have to keep an eye on the
10 on maybe 10 000 different packages and that problem is very hard to solve i think there there
there have always been some efforts to solve it but i don't think it's still unsolved yeah and so
one of the things i liked about bitcoin core as a project it has very few dependencies in the order
of 10 probably and you write about in the book the geeks project is trying to create reproducible
builds yes because although bitcoin core itself has very few dependencies you still have to compile
bitcoin core and that is where the the rabbit hole that carl dong carl dong opened in one of his
talks is is huge and scary because in order to build it well you need an operating system
and a compiler and that itself is a lot of different moving parts that could have backdoors
in it and so there was a solution already for designed i think with bitcoin in mind and with
the Tor browser in mind, called Gideon.
And Gideon basically meant like you take an Ubuntu disk
from 2000, I don't know, 2015 or whatever,
some older version of Ubuntu, which comes with the compiler.
And because you know the image, the hash of the image of the disk
when you download an ISO image or something,
so at least you know exactly what you're starting with
and then you do a bunch of magic and then you build Bitcoin Core.
And the idea, the goal of it is to say,
I guess that's more important to say,
And the goal is, given the source code of Bitcoin that you can find on GitHub, this thing that you're downloading, how do you prove that these are related?
Because I can show you an open source project and show you some beautiful source code, and then I'm going to send you a file which is compiled source code, a binary, which could be completely different.
And in particular, it could steal all your coins.
So that's what Gideon at the time and now Geeks tries to solve.
And Geeks, I think, is a very cool project in that it tries to build a whole operating system from scratch, from source.
So you start with, I think, I don't know if they've really gotten there, but that's their ambition.
The idea is they started with maybe 60 bytes or some really short thing that is binary, that is something a computer can run.
But it's so short that you can actually read it.
So you can take it, you can write it down, and you can look at what these instructions are doing.
So it is kind of source, even though it's also a binary, right?
Because a computer, when it runs a program, it just receives a bunch of instructions,
like add this number to this number, do this thing on your memory, et cetera.
So you start with those 60 bytes, and then those 60 bytes are just enough
so that the next part of the thing you can give it is text.
so it's able to read text
and text means you can write sort of human
readable source code in a very
primitive language
but at least that's easier to
inspect for the person, you don't have to
look at the bytes anymore, you can now look at a piece of text
even though that's still very primitive programming language
and that piece of text
gets run, gets turned
gets parsed by that first
magical bytes
and that piece of text is enough
information for the computer to build
a more sophisticated compiler that can read more complicated instructions from a human.
And so it's a compiler building a compiler, building a compiler, et cetera, et cetera,
et cetera, until finally you have a modern, you have the full modern C++ compiler that
you can then use to compile a Bitcoin core or any other project.
So is it similar to the Merkle tree example that we were using earlier, where since you
have that short text that you start up with, you know for sure that when you get a full
C++ compiler at
the end. It's not a Merkle tree, but
it is because you start with a short piece of text,
every step along the way
will be some piece of code.
So you're not trusting a
big piece of binary, you're always
looking at code. And as long as you
inspect all these intermediate pieces of code,
then you can be sure that
it's not doing anything weird. It can only
produce
what you expect, or
it only
produces what you expect to produce is that it removes the yeah i don't know i wouldn't necessarily
phrase it like that but the idea is that um you can show that given the piece of source that you
started with so a piece of human readable code like the bitcoin core code given that code this
binary that you're getting actually comes from that code okay there's no shenanigans going on
in the middle and i think carl dong in his presentation showed like what could go wrong
if you don't do that. And there were things like the compiler would just add some Nazi insults or
something in your code, even though you didn't put them in your code, but they would be in the
end product. And then you would try removing the compiler and it would still do it because the
thing went somewhere else and it was just really weird. But here you can now, you can follow it
all the way from the beginning. You can inspect every step along the way to make sure that this
thing is going to produce correct code. And of course, not everybody's going to do that,
but that's okay because you have all these hashes out there
that say this is what was used to build it
and you can later go back in time
and look at what that hash represented
and look at all the underlying code
and if some shenanigan does happen,
there'll be a nice record
and you can find out where the shenanigan was
and then at least it won't happen again.
Yes, and if a few people do like a Geeks reproducible build
startup of Bitcoin Core,
everybody uses that binary should not everybody but you have some sense of comfortability that
it does what you think it's going to do yeah so the idea there is um so there's two different
threats that you're worried about what geeks is really worried about is not so much the
core developers being evil but the person making the compiler could be evil right but what you're
usually doing when you're just downloading bitcoin core is you at least you want to make sure that
the bitcoin core developers didn't give you some malware that they really gave you what was in the
source code and so how much confidence you need for that i don't know but at least uh you know
there are bitcoin core devs that are signing sort of testifying that they started with the source
code and got this particular binary file then if it turns out that binary file has malware in it
at least you can prove that there was some sort of collusion or something malicious that going on
yeah but obviously it could still happen right um and then the question is uh so there's multiple
people who can sign this. It can be developers, but
anyone can come in and do this geeks build.
So maybe
you do a geeks build and then 20 of your
friends who trust you
will see, okay, Marty's signature is there.
So Marty actually checked that this
source code leads to this binary
and I don't know who these core devs are, but
I know Marty. So I'll
use that as enough trust that I'll be
willing to run that binary without compiling it
myself. Of course, anybody can still go and compile
it themselves, but that's just more work.
But the system relies, I think, mostly
on somebody ringing the alarm
bell. So it's mostly about
transparency.
Shout out to Carl.
Which can be a reason to say, I'm just going to
download the new release, and I'm just going to
sit on it for like a month or two,
see if nobody raises the alarm
bell, and then I'll run it.
If you freaks want to dive deep into
geeks, Carl came on the show, gosh,
it has to be like two years ago now. Probably.
He also did a quick talk
at Breaking Bitcoin in Amsterdam
them in 2019 that video is on youtube too it's just 20 minutes and that 20 minute talk will give
you nightmares yeah carl's one of the uh he's taking a break right now right could be i don't
know yeah i think he announced um yeah it's interesting all this stuff is fascinating and
the rabbit hole goes deeper because there's also the hardware uh yeah that you're running on in
general and that is almost unsolved like back doors and chips and that sort of stuff is we
don't really know what to do about it that's what uh warren tagami gave a talk at riga this year
baltic honey badger basically explaining like hey you probably shouldn't be using raspberry pies to
download and use core if too many people use raspberry pies and raspberry pies only business
model becomes selling bitcoin notes then i guess the incentives are pretty scary yes and raspberry
pie i think is also not very is not entirely open source uh i think it's fine that people use it to
run a node
I just think
they should probably
keep their coins
on some other thing
then if you use
a hardware wallet
in combination
with the node
and Raspberry Pi
then you're probably
going to be fine
and then of course
if you want to upgrade
yeah sure
then maybe try
some other hardware
but in fact
you can run a node
on your normal computer
you don't need
a Raspberry Pi
to run a node
if you want to have
it on 24-7
then I guess
it's nice to have those
you don't have to
keep your node
on 24-7
if you're using
lightning
it's a different story
But if you're just using Bitcoin on-chain, you can just open your laptop, sync the blockchain whenever you need to sync it, and then close it again.
Yeah, it'll take a few minutes.
Yeah, and you can prune it, which means you don't have to store the whole 600 gigabytes.
You just store like 10 gigabytes.
It's not going to take up that much space.
It's smaller than most of your computer games, probably.
However, you don't want to keep your funds on that laptop, at least not the ones that you're not willing to lose.
No, probably.
Because you're going to have other stuff on your laptop, and that might have some malware on it.
yeah that knows where to look so you run a if you're trying to save space download bitcoin
core prune your node download something like sparrow and then interact with your node using
sparrow on a hardware wallet you can even use core directly with a hardware wallet yeah it does take
a little bit more skill shout out to uh to andrew chow yep andrew chow for hwi um but yeah i would
definitely start with maybe one of those easier to use tools to get your hands dirty and then but
But again, it's about how many dependencies do you want to install?
How much stuff do you want to install that touches your Bitcoin?
I don't know if Sparrow has a lot of dependencies itself,
but it is, again, a piece of software that you have to download.
So is HWI, but Sparrow is probably bigger.
So ultimately, I'd like to be able to just download Bitcoin Core
and then have that work with hardware wallets directly.
But the usability difference is significant enough,
especially if you're new.
Yes. I'm just trying to think of ways you can mitigate loss of funds, especially if you're sending them. Use your node, Sparrow maybe, hardware wallet to prove they received Bitcoin to a particular address. And if you're sending, maybe triple check Sparrow, your hardware wallet, and the address that's being presented to you.
Yeah, of course, you know, if the malware on your computer is sophisticated enough, then the website that you're going to, it'll mess with your browser to make the website show a different address.
So now you're checking the website and you're checking your hardware wallet and it says the same thing, but it's really going to the person attacking you.
Of course, that would take some very, very sophisticated hardware wallet.
But if you're Michael Saylor, that is something you want to be worried about.
Yes.
uh if you're not then maybe not unless it's somebody already built it and made it general
purpose but then you probably know about it yeah speaking of like bitcoin core
and using the bitcoin core gui to do all this what's the status of uh russianovsky's separation
of the the wallet and the node software and not just russ but others who are helping him out with
that. Ongoing. He is like the living example of patience. I mean, a lot of the work has been
merged into it, but he has also things, pull requests that are open and have been open for
many, many years. Part of what does happen is that bits of his pull requests get chipped off
and put into Bitcoin Core like incrementally. And that process just takes time. Depends on
how many people have time to review it um which not a lot of people do but it it'll get there
eventually i think everybody agrees that it's a good idea to separate it and so for anybody that's
unaware what's the problem well the problem in general is that bitcoin core is a very big
monolithic piece of software and that's never a healthy thing so he's trying to split it into
little pieces and that could also have security benefits let's say there is a say you run your
node so you have bitcoin core as a node but also a wallet right and the wallet's holding onto your
private keys well let's say there's some security vulnerability security vulnerability in the node
part of the software then hopefully that somebody could could attack your node and then steal the
coins from your wallet this type of separation might make it so that there's an extra line in
defense where yeah you've compromised the node part of the software you haven't compromised the
wallet other ui things could be that maybe you you have a desktop computer and you want to have
bitcoin run in the background so you'll have the node run in the background but not the the gui
stuff and so then if you want to interact with the bitcoin core stuff you would launch the gui
separately and it would just connect to the node that's already running or maybe you have a laptop
with the bitcoin desktop on it but your node is running on your raspberry pi in the basement
so now you can connect from your laptop to your node that's running on the desktop all that sort
stuff can be done with the kind of separation that he's working on another thing that could
be useful is to create alternative wallets that are first-class citizens so currently um the if
you have a wallet say like spectre desktop or uh sparrow they can connect to bitcoin core but
there's limited things they can do so they're not they're not first-class citizens and the bitcoin
Core wallet itself has complete privileged access to the Bitcoin Core node. It can do
more. It's generally just a bit nicer experience. And that's not because Bitcoin Core developers
are mean and anti-competitive. It is just because the way that the Bitcoin Core wallet
connects to the rest of the Bitcoin Core node is like spaghetti tangled very tightly. And
so what Russ is doing is slowly separating these things out so that at some point you
could plug in any any wallet software and it will have the same ability to use the note as
the regular bitcoin core wallet which should speed up people building better wallet software
that would be pretty incredible yeah and and ultimately i could even imagine somebody building
an equivalent bitcoin core wallet at least or at least probably not the wallet the wallet is fine
it's the it's the gui the ui that's not very pretty but it's the same story the bitcoin core
ui is very tightly coupled to the node but somebody and right now if you want to make the ui
nicer it's very difficult to make any changes to it because part of it because the software that's
built in is not super easy to develop on the qt but also because any change you're making now you
know you're touching the bitcoin core project so it has to have a lot of scrutiny and then you make
a design change and people have opinions about it and it just gets it's very slow to make any ui
improvements to bitcoin core but with this separation in place somebody can make a drop-in
replacement for the UI that will have the exact same access to Bitcoin itself, so it will feel
just as smooth or not smooth. And then once that replacement, once people start using that
replacement gets very popular, let's say, you know, the sparrow of Bitcoin Core GUIs or something
becomes really popular, then Bitcoin Core could at some point simply swap them out, like just toss
the old code and put in the new code after it's gone through the necessary inspection. So I think
it'll be a more competitive
or potentially more competitive system
where you could have alternative
graphical interfaces
and have them
not have them, not have
one of them be at a disadvantage
so that's all very promising
but also it's very
it's not, there's nothing on fire
so it just, it's not a priority
well
I mean if you're doing review from day to day
what are you going to review right, are you going to review
this thing that just crashed or this fancy
shiny little feature
or this
very abstract
very important
but very abstract
and complicated
10,000 line
pull request
and
yeah the answer is
the former mostly
shout out to Russ though
it's a heroic effort
ongoing for many years
I got the t-shirt though
I got the
because I once
once or twice
did review some of his work
and then
Chaincode Labs
will give you a
Ak Russ
t-shirt
really
I got one of those
uh what you might have mentioned it but what area of core have you been reviewing
mostly these days i think i mostly hang out in the wallet uh but i did recently also test the
the new change by suhas uh to make the headers yeah and and sipa um to change the way the headers
are downloaded the first time because i thought that was a very cool change um so i'll i can be
all over the code base,
but I'm mostly in the wallet
and then mostly reviewing things
that I think will long-term
make hardware wallet use easier.
That could be anything from Miniscript,
though I haven't reviewed that much,
to a lot of just the under the hood
refactoring of the wallet
that mostly Andrew Chow is doing.
So just doesn't give you any new features,
but it will make the wallet better
or adding Taproot,
which does make it better.
That's funny you mentioned Miniscript.
I had somebody
who's been playing around with Miniscript
and going on a public campaign
to get hardware wallets to implement it
and other wallet softwares.
What is the benefit of Miniscript?
What does it enable users to do?
So what Miniscript is,
essentially the Bitcoin script itself is very dangerous.
So it is very easy to write a smart contract in Bitcoin.
Well, it's a smart contract, not even scare quotes.
You can write a smart contract in Bitcoin
that you think what it's going to do
is it'll give you a signature
and it'll give some company that you trust
the other signature and so that you both have to sign in order to spend so they can you know
protect you against duress or something like that but then there's a timeout that you will get your
coins back at the end of that period but what it actually does is it just throws all your money
away because you made a mistake in in writing your bitcoin script by hand because bitcoin script is
very very hard to write safely and so what people like andrew poolster have been doing is is looking
at bitcoin script and trying to sort of salvage i would almost call it salvage pieces of that
bitcoin script that are safe so ignoring most of it just taking little bits of bitcoin script that
are safe and then specifying precisely how you can use those little bits of script in a like how you
can combine them in a way that any combination you make is also safe and then the next step is
they build a bunch of automation on top of that a compiler essentially that says okay you don't
have to write that script yourself just tell us what you want to do for example you want to have
this system where two people can sign and after one year the third person can sign and give us a
little bit more extra information for example you might say 99 of the time we're both going to sign
this fallback condition is only going to happen once once in a blue moon and then the compiler
will say fine i'm going to then give you a piece of script this is your bitcoin script
that bitcoin script uh can be written as mini script or as bitcoin script so you can go both
ways okay and the the reason the percentages play a role is it might optimize for fees so first
they will find a way there's many ways to do the same to reach the same goal of having two
signatures you could have there's an operation called op multisig i think it's called where
the op multisig says okay you say op multisig and then you add two signatures but you can also do
you can also just have two signature checks in a row let's say just do two signature checks and
the question is which of those two is better and by better it could mean what is cheapest to spend
and what is cheapest to spend depends on um could depend on what the chances are so so
your fallback you might your compiler might say well this fallback condition is rare so it is
very expensive to use but most of the time you won't use it anyway and by default you'll you'll
spend very little in fees so that's what the compiler does for miniscript so it's very cool
if that's useful if that works because it allows you to more easily make more complicated spending
conditions and also it allows you to abstract things away so for example in
the example with the company that helps you custody your own funds right now the
way that will probably work is a very simple multisig where they just have a
signature in the multisig because that's something you can inspect but with
miniscript what you can do is you can say it's a one of two of sorry it's a
two of two so we both need to sign and my part as a simple user is just one
signature but the the company has a giantly complicated internal accounting system with
you know they have themselves three different signatures and whatever they want to do
and i don't care about any of that it'll you'll you look at the mini script and it'll show you
two brackets and anything between those brackets i don't care what's in those brackets i just know
that's what the other side can do but i can i know what i can do so it allows you to basically
yeah you yeah you can make things even more complicated in a way that you can still verify
that you're not being uh screwed over yeah so somebody like unchained could implement this
yeah exactly because now unchained can only give you probably a simple signature
um or alternatively they can give you a very complicated script that does all the safety
checks on their end but you have no idea what this thing is doing and if you can still access
your coins because you now need to reason about the script they give you right because
they'll generate an address probably
and that's the address where you're
sending your coins to but that address represents a script
and so you'll have
and they'll give you the script presumably too
otherwise that'd be weird
but you then need to look at that script and say
okay if I send coins to this address
am I ever going to get that back
under what conditions am I going to get that back
and Miniscript allows you to analyze that
no matter how complicated
it is basically
yeah I think so but it is
definitely one of those sort of futuristic projects and then yeah it'd be great if more
hardware wall is supported um there's also still need to make this script the standard
compatible with taproot which is a whole new kind of worms take to take advantage of taproot
yeah so i mean we're just diving down all the rabbit holes it's like there's a lot of work
in progress yes sorry for the pun good good good book plug um what does this say to taproot
i've heard it's dead that's what udi says is it dead no it's not dead no it's deployed the thing
is the the blockchain understands what taproot is it can it can process very complicated taproot
scripts just fine um i believe this was recently demonstrated by um what's his name um uh barack
barack exactly by breaking lightning with a very complicated taproot transaction twice
twice um it it works the thing is um to actually use those features you need to have wallet
software that can use those features and that's simply where all the work is so until people
write wallet software that does that actually takes advantage of what is possible the adoption
of taproot would be relatively low because the the most basic version of taproot where it's just a
single signature and you can spend from the single signature that has almost no advantage over segwit
by itself so there's not that much reason to adopt it you could i mean the main value prop
for adopting taproot right now is particularly for users leveraging multi-sig who would like
the uh the input to look like a single sig yeah but the software for that i don't think
it exists yet other than an experimental state and part of that is because in order to write
the software you need to have some sort of standard that you implement into the software and
and the the standards themselves are only fairly new so there's music music too those i think are
the most recent standards then you know you want to review all that yourself or i'm not a
cryptographer so you said it takes time yeah and i don't think there's a pull request yet to get
music into bitcoin core even interesting so this is the thing the the bitcoin blockchain like
bitcoin core can check if a given music signature is correct but because it won't even know that
it's a music signature music signatures don't look any different than normal signatures and
that's all well and well and good but somebody will actually have to implement that stuff
and then combine that with Miniscript, right?
So then your compiler would say,
okay, normally it's going to be this combined signature
that you and the company you work with produce
and it'll look like any other transaction.
But if something goes wrong,
then you're going to use the hidden script
that's inside Taproot,
that's inside the TapTree, I guess, to spend it.
And what does that script look like?
Yeah.
again so just just a lot of tooling that still needs to be made so i i yeah just just a lot
well that's why it's interesting that's why i'm sitting here with this look just throughout this
whole conversation we dove down a bunch of different rabbit holes utrix so early geeks
taproot miniscript music what russ is trying to do with the separation of the wild and the node
Do you think there's a point at which the project gets, what some would deem, spread too thin and there's just so much going on and there's not enough sort of narrow focus?
Well, arguably it is spread too thin, but the thing is it is an anarchist collective of developers, essentially.
Everybody can work on whatever they want to work on.
Anybody can review whatever they want to review.
so if there's just a lot of different people a lot of different things people are interested in
then there'll be a lot of different things that don't move very quickly yeah is that good or bad
or it just is it just is there's nothing yeah it just is i mean if more developers show up that
could help more people to test the things that are out there but other than that you know you
just have if two people have cool ideas then if they decide to review each other's work that'll
help but yeah do you think i mean that's always been a big beam developers don't want to work on
bitcoin it's too boring it's too slow well that's why i wrote the book saying it's like oh despite
all the marketing there's lots of interesting things like we just went in like 10 different
rabbit holes that just don't sound as exciting as nft marketplace i guess um but they are all
of them are interesting projects and all of them can use help from developers that are interested
in helping um so let's get into the book i mean obviously you decided to write it to we've covered
everything to highlight all these but no it started out as a podcast correct it still is a podcast so
there's a podcast uh used to be called the van weird i'm sure it's nato and then i think odell
complained that it was a bit hard to pronounce for people and also like if you told them you
gotta listen to the van weird i'm sure it's nato podcast they were like what do i type um so it was
rebranded to a bitcoin explained which is much easier yes with a coma but the part so basically
every well in the beginning every week later every other week or so we record me and aaron
record a about 30 minute episode where we pick a technical topic in bitcoin and we explain it
fairly quickly there's no politics it's just um yeah it's pretty short and at some point
somebody suggested to me hey you should write a book in general like this was a talk where somebody
said everybody should write a book which i think is true and then gave a couple of suggestions of
what you could use to make a book and i think one of them was to look at your podcast but
so what i did was to take a couple of the episodes i guess my favorites at the time and get somebody
to write a transcript or some that's a rep.com for example they they'll give you a human human
power transcript you don't want to use computers then i hired an editor in berlin who helped me
take these transcripts and turn them from a dialogue into a monologue and of course shorten
it and then ask lots of questions and she is she is a somebody who is used to editing technical
books developer books but not a bitcoiner which is very useful because then she would ask lots
of questions like what what do you mean by this you know what's the taproot or that sort of stuff
And I would answer those questions and we would collaborate on GitHub.
So the whole book is basically a GitHub, it's an open source project too,
but on GitHub there would just be a piece of text
and then she would make a pull request with the new version of the text.
And I would simply, I could add things myself to the pull request
or I could just take my own answers and add them like right into the text.
So there's a lot of back and forth.
Whereas my understanding is that normally when people edit books,
they just write the whole thing and throw it over the wall.
This was far more interactive.
it's almost like writing code the way you'd write a book so one chapter would take about three times
back and forth with lots of questions and then that chapter would be done and then you just do
the next one and the next one it seems like a really cool way to write a book i like that i
like the the workflow yeah yeah and it seems like this could be a series of books yeah i thought
about that so one thing i could do and i don't know yet is to just write part two and just pick
another bunch of episodes and and make it a bitcoin even more work in progress something
like that the other thing i can do is just add more chapters to the existing book and make it
a new edition uh i will do neither until i find a way to make more money with the book because it
hasn't sold enough copies to justify that amount of work but in principle it it makes sense yeah
go buy the book freaks where can we find it anywhere no uh definitely on amazon but most of
these online bookstores will have it if you type something like shores bitcoin or bitcoin work in
Progress, you'll probably find it too. I prefer people get the physical version, hence things like
Amazon, because I think it'll be more robust against time to have this thing physically lying
in some attic in the middle of nowhere. There is also an e-book, but also I think it looks nicer
on paper. There's also an e-book that you can even get from my own website. It's btcwip, so
work in progress.com and it'll link to amazon but also link to the ebook version i mean this
is a beautiful cover as well it's very clean thank you it's a it's a photo i took in um oh
you took the photo yes hold it up too for the camera and it's actually the newer versions are
not transparent so i made them uh opaque okay this is slightly older print the this is a building in
shenzhen the shenzhen stock exchange while it was under construction in 2011 i was just kind
randomly walking through Shenzhen and it's like, this is a cool building. So I took some photos
and then I needed a cover. It's an interim cover, but I thought this is kind of cool.
It's a pretty good interim cover.
Thanks.
With thousands of crypto projects out there, they say Bitcoin is old and boring,
but nothing can be further from the truth. This book will guide you through the latest
developments in Bitcoin as seen through the eyes of one of its many developers.
Yep.
First paragraph of the back cover. Thank you for writing it.
you're welcome i was telling you yesterday we need to get a bunch uh here in the comments to
give out yeah i'll try to get uh one or two here we should we'll talk about it we've got a budget
we should we should just bulk buy a bunch that's fine too yeah support shores i do want you to
write more books because again i think this info yeah i think i've talked to some people who read
it and really liked it so that's that's always very encouraging it's also kind of fun uh when
people random people you don't know approach you at a conference said yeah i read your book and i
liked it it was a very strange sensation yeah i've had uh speaking of you said like a person
to convince you to write the book said everybody should write a book i've had a lot of people
saying i should write a book um yeah no a lot of people don't think they have anything to write
about and that's kind of her point uh that you probably should have a book if only because it's
a good business card so it's like a conversation starter or yeah you can show it off i wrote a book
You don't make money with books, at least almost never.
There are some people who do.
There are some business models that you can do for publishing,
though I think those people generally even outsource even the writing of it,
just like lots and lots of content for certain issues.
Are the AIs going to start writing all the books?
I wouldn't want to read those.
Would you even know if you were?
Yes.
You would?
Have you ever Googled something like,
i need a new kettle or like or i need a new headphones that are noise canceling or my
instagram doesn't let me post a photo every first 10 20 hits on google are gonna be these
super seo optimized pieces of content like it'll start with so it's very annoying when you cannot
post on instagram yes that's feeling that instagram is broken like they use all the
there is all the phrases that are used to get seo optimized and that's done by humans and it's super
obvious and i'm pretty sure the ai will be just as obvious because it will try to write content that
is attractive to google so i just would not recommend if you do that to use google itself
to generate the content that way because they'll probably keep a log and they'll just ban you
that's what i would do if i was google and maybe this is actually a honeypot by google
To catch all these SEO people.
Oh.
To see if they start using Google itself to produce the SEO content,
and then it's trivial to just plug all the networks,
especially all the links between those networks.
Yeah.
Yeah, the affiliate link game.
Yeah, so no, I would not rate a book written by an AI, probably.
Okay.
I hope not to, too.
I don't know if I'd be smart enough to discern.
If the AI actually writes a book that's as good as a human, I'm happy with it.
I just don't think it will.
i think it'll write a lot of text that sounds similar to things you've heard before
yeah because that's what it uses to write yeah so you're saying human creativity is not going
away anytime soon i don't know if the creativity is the word i mean the thing that the computer
is doing is not like thinking in the way we do so a book that's trying to explain something it's
just if it's just regurgitating words then just tell me where you got the words from and i'll
read the book that you're citing right it's like you'll you'll get something that may sound similar
to shakespeare but it'll just be a completely nonsensical story where things just happen
randomly out of order and they sound very poetic there's a lot of plot holes and yeah there probably
won't be a plot it'll just yeah it'll just be all sorts of cliches in a row yeah um the room was warm
and green there was a girl and a boy and then the robots took over yeah they'll just be gibberish
uh so i'm not saying that will never happen in the very far future but so far yeah my impression
of the ai stuff is it's it's doing a lot of circus tricks that can be very useful for very
specific things but not really you think it's going to help people code better i don't know
it might because it's kind of like a very elaborate autocomplete. If you're writing
code, it's nice that you write one word and it'll sort of add a bunch of structure. So
even without AI, a piece of code might say, if the first letter of the word is A, well,
then maybe I intend to write also if the first letter of the word is B or if the first letter
is C. So it's nice if you hit enter and it'll just put all the letters of the alphabet in
there and then i just have to write what it actually does you know when that happens so i
think ai could be able to do that you can try to extrapolate what you're probably trying to do
i don't think it will make you write better code it'll just you know make you write the code a
little bit quicker because a lot of the time you are just going on google and like asking like
uh what is this how do i do this again how do i do that again and i think some of that could
probably the computer could help you with that yeah it wouldn't necessarily understand what
you're trying to do it would just say that people in your situation usually want this
and then do it for you yeah which may at the end of the day make you write better but any code that
the computer can completely anticipate means you're writing too much code because then it
sounds like you should just write the shorter instruction and then let the computer turn it
into something bigger just like when you write code the computer will eventually create machine
language um but you're the thing you're writing in code should be the shortest way to express what
you're trying to do to a computer if there's a shorter way to express it then you've just
invented a higher level programming language that will let you do things in less words which is nice
um i don't think you need ai for that no fascinating we've had all the rabbit holes
in this episode there's probably some left yeah what uh what haven't we touched that's
on top of your mind sorry what haven't we touched on that's on top of your mind in regards to
bitcoin or any other trends no i don't have much what happened with the bitcoin war core version
zero 24 zero what was the bug that got quickly patched oh yeah uh apparently there was a coin
selection bug like if you i think if you selected some coins it would do something really badly
really wrong and make you spend too much money on fees but i don't know the specifics of the bug
uh just that it wasn't like i think the release was announced but if you went to bitcoincore.org
you couldn't download it yet and so hopefully not too many people got that version okay and if they
yeah but if you do have that version please install the actual 24.0.1 yes because it won't
have that bug what were the major updates with this in 24 with 24 without bugs uh well it was
the rbf thing that is a setting oh yeah that's gonna cause a lot of drama yeah but that setting
is off by default so in principle nothing changes if you update um there is one thing that i think
is very cool is a new way to sync headers so the first time you know it starts it'll first ask its
peers for headers and then it'll ask it for blocks and the way that's done is changed completely
under the hood and that'll eventually allow us to get rid of checkpoints and checkpoints are
kind of like ugly thing that are still left out from the old days um deep in the chain there's
only like how many checkpoints yeah the last one is i don't know 2013 or even longer ago um
yeah but the mechanism is still there and so the the worry is always of course that it gets abused
yeah so they're deprecating that i think with this they can be completely removed yeah um i think
there is a pull request open that would actually remove them however i think the consensus now is
to wait and see if there's not something else we forgot that that the checkpoints are still for
so the checkpoint's main goal is to just is to prevent certain denial of service attacks and
certain certain attacks where somebody will just completely waste your time chasing the wrong chain
and um a lot of that was already fixed by not downloading blocks immediately so the original
version of bitcoin we just download one block at a time whereas any since 2015 or so your bitcoin
node will download headers first until and and once it has enough headers up to a certain amount
of proof of work in total which is hard coded in the in the code base with uh i think assume work
so it doesn't the node doesn't care what what blockchain you're downloading what the transaction
history is but there has to be enough total work in it based on some observed thing that we saw
like a closer to release we look at like how much work does there exist in the world and that
that hint is saved in the source code um and that prevents it from chasing very low work very long
chains so you could create a blockchain with trillions of terabytes of one megabyte blocks
starting from the genesis block and all at difficulty one so extremely low difficulty blocks
and then um exploit maybe the time warp attack i think you may have heard about that one where
You can create blocks that look like they're one second apart,
or even I think they look like five of them,
and then one second goes by.
So there's a lot of seconds since now in 2009
that you could create a bunch of blocks that way
and then just waste the computer's time
with the blocks themselves.
That would be huge,
but even the headers for that would be quite large.
Yeah.
And so that's one reason those checkpoints are still there
to protect against that type of attack
because at least you have to...
The part until 2013, you can't fake
because that specific header has to be in there.
But, yeah, we'd rather not keep doing that in the future.
And, yeah, it creates lots of potential abuse.
Checkpoints have been abused in altcoins
to basically fake history,
either because they were suffering from too many 51% attacks
or maybe because the owner would like to have some coins
that they're not really entitled to yes it's happened recently it did okay and then with
assume work you can't fake work so referencing that yeah so assume work is more abstract than
assuming a certain block so you're not saying this this block must exist because that's that's
what a checkpoint does it says this specific block must exist but that's scary because then
that block might not even be the most proof of work chain it might just be a very low proof of
work chain that you're enforcing because that low approval work chain you made in your living room
as a developer is where you got all the bitcoin and the real chain is where you got almost no
bitcoin right so you don't want to have that type of power in the hands of developers but the work
requirement is saying no there just has to be a chain doesn't matter what it is with this much
work in total so somebody some alien arrives and creates a new blockchain that is just as long as
the one we already have, this software will accept that alien chain.
No problem, as long as it obeys all the other rules.
Whereas the checkpoint, it would not accept the alien chain,
which perhaps in the case of the aliens is acceptable,
but in general it's not.
But the alien chain has to become consensus compatible by referencing.
The alien chain right now has to contain, first of all,
the genesis block and then all the checkpoints.
But if this change goes through the way it is now,
at least if these checkpoints are removed,
the alien chain only has to match the Genesis block.
Okay.
You could then, I guess, argue that even that's not necessary,
but the Genesis block is kind of a sacred block at the moment.
Like, you cannot sync anything that doesn't have the right Genesis block.
Yes.
Very sacred block.
We're coming up to the anniversary of the Genesis block in less than a month.
I mean, every block is an end block anniversary.
um but yeah it's uh i guess we maybe wrap it up there bitcoin's gonna be 14
damn yeah if you come from the genesis block which i think is reasonable because
shouldn't you know white papers generally shouldn't be celebrated this one probably
might be but as a general rule we uh show us some real software and that's the genesis block
what do you think 14 years old was there ever a point
after which you started working on Bitcoin
where you thought, oh, this isn't going to work?
No, I think it, I mean,
I don't think it's guaranteed that it's going to work,
but so far it works.
So that's good.
I haven't had concern about that.
I mean, yeah, we talked about some of the long-term risk
and especially, I think, around the regulatory capture risk.
That, I think, is a bigger existential threat
than anything else.
But I'm not negative.
I know. It's really come across the last two days as we've been conversing and getting to
know each other in person more. Very positive person. I love that.
Thank you.
And I'm optimistic too. So the regulatory attack does come.
I think the disdain for governments right now is at an all-time high.
I think that's a very local perspective from you. I don't think it is globally.
I know in Europe, you guys love your governments.
Well, some people do, some people don't.
And then, of course, I don't know what the sentiment is in all of Africa or all of Asia.
So I guess different places have very different kinds of governments and very different feelings towards them.
And governments are not necessarily the only thing that they need to worry about, even when it comes to Bitcoin.
Preparations.
I mean, at a global scale, the thing you want to worry about are the major power blocks, right?
US, China, and Europe.
that's probably what if you're worried about sort of regulatory capture that's where you need to
worry because whatever the smaller countries do doesn't really matter in the scheme of getting
51 of the hash power on board um so those are the three you need to pay attention to yeah and so far
i don't think any of them well i don't think china wants to kill bitcoin globally they just
want to keep it out of their own country at least officially um europe doesn't seem to want to kill
it and the u.s doesn't seem to want to kill it so not yet so i'm not so much worried about that
type of a direct attack it's more about the sort of creeping kyc um that sort of stuff yeah and
there i don't really see anything i'm there i'm not that bullish like i think that's definitely
going the wrong direction i do as well i mean particularly in europe where they have this
orwellian bill on the table right us too yeah and here and so in europe i guess the difference
between the u.s and europe is in europe you have maybe some very bad laws but if you break the law
you don't the consequences aren't as bad in the u.s maybe like if you violate even the slightest
law you spend 20 years in jail yes so there's a different trade-off there but in general the
anti-money laundering ish laws are uh very much the trade-off the trade-off between privacy and
this money laundering fighting is not there's no balance there um you know europe has a gdpr
the privacy directive but if you're a business and you need to choose you know sometimes these
laws are incompatible and if you have to choose between them the the anti-money laundering law
wins because if you violate the gdpr your worst case outcome and that is really the worst case
is four percent of your global revenue that they might take from you if you like systematically
keep violating that law at a massive scale on the other hand if you make even the slightest mistake
violating sanctions law you know your ceo goes to prison yeah so then as a ceo the choice is very
simple now the the only thing that makes me optimistic in europe is that there have been
times when the european court of justice basically struck down entire swaths of european law saying
it was completely illegal and some of these laws that were struck down are quite similar to the
laws that are being created now and these privacy watchdogs are warning like dear european parliament
dear european commission if you keep making these anti-money laundering laws as unbalanced as you
have been doing recently we are going to try and try and kill these laws completely and so i would
not be surprised if at one point suddenly almost out of the blue there's like one european judge
that says this whole stuff is as you americans say unconstitutional like no more kyc until you
figure this out that would be very cool that might give us like five years of of privacy
that's my most optimistic take on it like there could be something like that i'm not going to
count on it what are your thoughts on my thoughts and the same might happen in the u.s right maybe
one day the supreme court here says like hey uh this unwarranted surveillance thing uh remember
that no more kyc yeah i would love that anywhere like it's just be completely illegal kyc aml
but that's the only kind of force that's strong enough to resist this pressure you know on
companies to individually compliant individuals to say well i don't like this violation of my
privacy but let me just upload my password here and upload it upload my password there and fill
in this little form there has to be some very strong pressure against that to to stop that
yeah and some ruling like that could do that more people need to wake up and say no i'm done taking
selfies with my passport uh these companies have proven not to be able to secure this data and the
criminals are just crumbling anyway and most of the people writing laws are criminals as well
um but that's not happening no not yet not on a meaningful scale and and that's because i mean as
as odell says like you have to touch the stove uh stove is very slow and what are your thoughts on
bitcoin circular economy well that's one way to get more privacy still like right now that seems
almost untouched so if you're if your salary is in bitcoin you're fine like you're not being
surveilled beyond the point that you know if you're an employee anywhere you're being surveilled for
being an employee but you're not like there's no kyc requirement for employees paying them out
as far as i know so that's fine but then if you want to live somewhere your landlord may not let
you pay rent in bitcoin and if you want to be picky as a renter in a real estate market good
luck in in siberia but uh maybe not in most places so this circular thing is uh i would say it's
probably better than it was eight years ago there are more places where you can spend bitcoin but
it's still very very trivial and especially because your major expenses for most people i
would guess are rent and taxes those two things that those are the biggest thing and then sure
you can buy your coffee with bitcoin but if that's only like one percent of what you're spending your
money on it's not very circular no uh and there's very few places where you can pay your taxes with
bitcoin i think it's like colorado but not the federal tax i guess no no no taxes so i don't
know but this i would like to see that circular economy because that um one good thing about that
is it escapes the paradigm of the gatekeeper so the regulators at least in europe and i guess in
the u.s too they they kind of look at the the point where crypto goes into fiat and they call
those the gatekeepers and then most of the monitoring happens at the gatekeeper level so
when you go in and when you go out that's when you get all the kyc the compliance etc but once
you're in bitcoin you're good you're sort of in this nomad's land where you can do whatever you
want and so the circular economy means you can stay in that nomad's land and gain more privacy
over time so even if the first time you bought bitcoin maybe you did go through kyc but then
you get your salary you buy something you get your salary you buy something and eventually
you kind of blend in um but there that hardly exists at least in the west yeah it does exist
in some other countries perhaps if you're a software developer in venezuela maybe it's a
different yeah i'm becoming more partial to the idea that the developing world is going to lead
that charge yeah i think so too that's that's probably fair i don't know where exactly it's
going to happen it's always because there's this narrative of look at this developing country
they're going to embrace bitcoin it's going to be amazing i've heard and the remittance thing i've
heard that again and again since 2013 2014 and every time it seems real and then every time it
turns out it doesn't really work so i'm also skeptical but it does seem at least if it takes
off anywhere it's going to be in a developing world much more likely than in the western world
yeah unless something like really bad happens with the financial system in the western world
at which point then it it might change becomes a a system of last resort but even but even there
i doubt it because then the problem is it's just it's too big the western world for for to be able
to adopt bitcoin like this it wouldn't wouldn't work technically so if like if if the economy in
a very small country collapses i would imagine they might jump to bitcoin and be fine but if
the entire european union of the entire u.s economy collapses the banking system collapses
they can't all start using bitcoin um probably just because not everybody's going to be able to
use i guess just the blockchain doesn't work the software is too hard to use yeah that sort of
stuff the only possibility there would be to use the fiat rails on top of bitcoin so then you you
would instantly get a bitcoin standard but you can do that with gold too so i don't know if there's
much of an advantage for governments right you you already have debit cards and you already have
payment terminals and people get salaries wired to them so you could just if there's a dollar crisis
you could have banks saying you know what we're going to use the same infrastructure we have your
balance is just going to be in grams of gold or in units of bitcoin maybe they'll try both
because then everything keeps working.
You can still go to a shop.
You can still swipe your card.
It'll all work.
Just the amounts are not in dollars
but in this new thing.
Yeah, they're denominated in sets or grams of gold.
Or in grams of gold.
And I don't think Bitcoin has much of an advantage over gold.
Why not?
Well, because you're still trusting a giant custodian.
And I would actually,
I trust banks more in their ability to hold gold
if they can show me that they actually have it
once they do that.
I'm much less concerned about them getting their gold robbed
than i am about a bank getting their bitcoin stolen yeah because it is so easy to steal
bitcoin or at least to get bitcoin stolen that's why i'm also very skeptical of etfs
the etfs are not the way to go i mean if people wanted this their choice but my guess is if
there's 100 billion dollars sitting in etf it's a big honeypot at some point someone's
going to steal that yeah and it's going to be spectacular so and i don't know if if you can
if you're allowed to buy put options on these etfs and whether those the ssc would consider
those valid if the theft happens or whether they say no that's off limits we're just going to freeze
the market and not pay you out i mean i would buy those options history and i'm not going to rob
anyone just to be clear i would just buy those options if they're cheap enough well the history
gives us any indication what would happen they would just freeze the markets happened in nickel
earlier this might still be worth buying the options because you can price in that risk i
guess yeah low risk if it's like if it's like 0.1 percent per year for those options i don't know
i'm not an options trader neither am i no we'll have to ask the lab or someone haven't been able
to ask him anything uh in years no are you blocked by him yet of course
there's something quite innocuous i think i pointed out that he made it onto the bitcoin
obituaries block yeah i think at the time he was being harassed by so many crypto people that
he just blocked anyone who even remotely mentioned it so i kind of get it but i don't know i met him
in an airport once okay that was that's fun coming back from spain i actually had the black swan
in my briefcase yeah forgot to ask him to sign it oh you can you still can just don't tell him
who you are or that i'm blocked on twitter yeah just don't mention it yeah or do mention it he
might not even care like it's not personal that's what he always says so um yeah i would still buy
his next book probably he's like his last one was fooled by randomness was really good black
swan was very good like swan was good i read them out of order i read black swan first then
um anti-fragile and then fooled by randomness many years later yeah fooled by randomness was
my favorite yeah black swan was my favorite because i read it first i guess yeah um i was
talking to leb on tftc there we go sure it's it's been an absolute pleasure yeah thanks for having
me thank you thank you for just showing up in austin without any warning and being willing to
take up how long have we gotten two and a half hours two hours oh man where are we yeah two hours
two hours
it's been a pleasure
thank you for the work
that you do
on Bitcoin Core
and trying to educate
people about Bitcoin
it's very important work
very
unappreciated work
by many
I feel appreciated
so
okay
yeah that's good at least
alright
well thanks for having me then
well
hopefully we can do this again
at some point
you're just going to show up
in Austin
hopefully I'm here
exactly
yeah
and get the um the bitcoin explained the van weird i'm in short day shores nato
see it's hard to pronounce too it's funny though some people can't pronounce it so uh
odell always has difficulty pronouncing my name but then he had no difficulty pronouncing the
name of the podcast so so i had to remind him point that out that shores is pronounced exactly
as in the family and shores nato and then you can do it and matt get it together my wife is
calling me. I'm going to go answer that. Peace and love freaks.
