WBD315 Audio Transcription

WBD315+-+Shinobi+-+Large+Banner.png

Bitcoin Tech #2 - Nodes (Part 1) with Shinobi

Interview date: Sunday 28th February

Note: the following is a transcription of my interview with Shinobi. I have reviewed the transcription but if you find any mistakes, please feel free to email me. You can listen to the original recording here.

In this interview, I talk to Shinobi, the host of Block Digest. We discuss what a node is, why running a node is crucial for the network, which hardware & software to use, and the impact on privacy.


“The bank has the database that says who has all the money and how much money. The special thing about Bitcoin is that everybody can run and verify that database themselves.”

— Shinobi

Interview Transcription

Peter McCormack: Shinobi, man, how are you?

Shinobi: I am buried in snow!

Peter McCormack: Buried in snow?  You've given some OPSEC away.  Right, where's there snow?

Shinobi: Everybody knows the city I'm in.  I fucked up that bad early on.

Peter McCormack: Yeah, you told me that a while ago.  I'm not going to reveal it again now anyway.  But listen, man, so we decided to do these monthly tech shows and the last one went down really well.  I must have had at least 10, maybe 15 emails from people writing in and saying, "That was cool.  I didn't know that.  What do I do?" especially on the idea of UTXOs that, if you were doing a regular buy of $50, $100 a week or month and keep sending that to yourself, that you end up with all these separate UTXOs, which isn't a great thing.  That one piece of advice was something a lot of people brought up, and it affected my thinking as well.  So, that's pretty cool, man.

Shinobi: Yeah, I'm kind of really surprised how many DMs I was getting like, "Thank you for breaking that down like that", and asking for more advice about how to handle different situations, or what have you.  I'm glad that that actually got people thinking about that.

Peter McCormack: Well, I think that the couple of years of me fighting the tech and coming at it now and trying to learn it in these basic steps, I think that's going to be a good way to do things, because we were talking just before we started about me losing my bank account, and it's been a real eye-opener this last couple of days of realising, right, I can't get a business account, my personal accounts are now being closed down; if I go to other places I'm going to have the same problem. 

I'm at that situation where, I don't just want Bitcoin as a speculative asset, or to do some cool things with it, I kind of need it now.  And now that I need it, all those other warnings that people like you give me about privacy, about those kinds of things, it's becoming more obvious.  It's almost like some people do this stuff pre-emptively, right, and realise; I'm doing a lot of this reactively.  I'm going through the experiences and learning about it.  So, I think this has kind of worked out in the right way for us to approach these topics.

Shinobi: Yeah, I mean that's why people like me scream things at people like you all the time because eventually, people in this space are not going to be here because they're playing around.  A lot of people are just going to get pushed here because they have to be here; and, once you put something on the blockchain, you can't walk that back.  You can't undo mistakes entirely every time.

So, you really do have to -- and I really kind of appreciate your side of this a lot more over the last couple of months doing this.  You really do have to get this stuff into people's heads, but you have to really think about, well, what's the best way to get it into the head of the newbie?  Like, me ranting about the technicals of a protocol for two hours, 90% of that's going to filter out of people's heads the instant I'm done talking.

Peter McCormack: Yeah but look, dude, if people take one thing from each of these things, like if they think about UTXOs and they think, "You know what; I now understand UTXOs, I now understand that there's a downside to having lots of UTXOs.  Maybe I need to be able to use a wallet where I can actually manage my UTXOs", and then they start, step by step, they start doing these things.

I think, a bit like it was with me, when you throw it all at you, it's a bit overwhelming.  It's like, "Shit, I need to understand UTXOs.  Right, which wallet do I need for that?  Right, I need Electrum, but do I need to be using Tor, or do I need a node…" and it's too much.  But, these little baby steps are really helpful.  And another thing is, there are a range of people listening.  There are people who, like me, just find it quite difficult; and there are other people also, I say again, a little bit like me, that just can't see the benefit or just can't be fucked, right, and they just can't be bothered with it.

But, I'm starting to get it now, a little bit late, but I am starting to get it now and I'm starting to make the effort.  So, I appreciate you giving me the time.  We're going to do a big one today.  We're going to talk about nodes, an ongoing problem, my fucking nemesis, dude!  Right, I'm going to do the back story to node thing, and then we're going to get into it.

So, I was obviously aware of nodes.  I was kind of aware of them originally when UASF happened.  I was like, "This is kind of interesting.  I should probably learn a little bit about this".  And I was like, "Huh?  I don't get this".  And then for a long time, I kind of avoided it.  I was like, "Well, my hardware wallet works, right?  I get my Bitcoin, I can send my Bitcoin, it works; why do I need a node?

Then, when I tried to look at it, I was like, "Hold on, but is my node my wallet, or is my node my node and I connect it to a wallet, but there's a wallet in this node?"  So, I put it out there on Twitter and said, "Look, cards on the table.  I don't run a node, I don't get it, I'm confused by it; is it a wallet?  Someone explain it to me" and then, there was a fucking shitstorm off it, like the xPub one; there was a shitstorm.

Since then, what I did do, I did download Bitcoin Core and what I used to do is just send Bitcoin, and I didn't do this every time, but I'd send Bitcoin to Bitcoin Core and then I'd send it to my other wallet.  Then I've gone through this process of trying to set a node up now and I haven't found it easy.  So, we're going to record this one in two parts.  We're going to do an intro and we're going to try and get my node set up, and then we're going to talk about it afterwards.  How does all that sound; anything you want to add to that?

Shinobi: Well, I mean it's kind of like, is your debit card your actual wallet, or is that just a thing that tells the bank to change their database; you know what I mean?  And, yeah, as far as the show structure, I am probably going to wrestle with you a little bit here in generalising beyond the actual software you're going to play with, but yeah, definitely a lot to get into.

Peter McCormack: Yeah, okay.  So, more than ever right now, keeping it simple's important because towards the end of the bear market, most of the people listening were the same people listening at the start of the bear market; maybe a few more people, but these are hardened bitcoiners, or more hardened bitcoiners, I should say. 

But, my show numbers have essentially trebled in the last three months.  Obviously, there's a lot of new people coming in.  There's going to be people listening to this who haven't got a scooby about some of the things we're talking about; some of them will; some of them won't care; some won't listen because the show title doesn't have $50,000 in it, or $500,000 in it. 

But, at the same time, there will be some new people listening, so we're going to go absolutely basic, the most basic start we can possibly go.  Shinobi, man, just explain what a node is for somebody listening who doesn't know.

Shinobi: Well, I mean in the simplest terms, think back to a debit card and how that works.  That debit card isn't your actual money; it's just a thing that pings the bank and goes, "Hey, take money out of Peter's account and put it into Shinobi's account".  So, the key thing there is the bank has the database that says who has all the money and how much money.

The special thing about Bitcoin is that everybody can run and verify that database themselves.  So, in the absolute simplest terms, that's what your node is; that's your copy that you keep yourself of the bank database so you can double-check that there's no funny business going on.

Peter McCormack: Right, so what we're saying here is that if you have a node, if you run a node, you have a full copy of the ledger.  So, people understand that Bitcoin has a ledger, there is a blockchain; you essentially have a full copy of that.  Therefore, any transaction, like if I send you Bitcoin, or you send me Bitcoin, we can both validate that, because we have a copy of the blockchain?

Shinobi: We can validate that you actually said, "Give me the money".  We can validate when that happened, that it was authorised.  We can validate that you didn't pull a funny business and just invent money out of thin air that you actually didn't have.  You can just check everything.  And your node is the thing that you can go look to make sure there's no funny business; that's yours.  You're not trusting the bank to run that for you; you're not trusting the Google cloud; that's on your computer under your control.

Peter McCormack: And, if I wasn't running a node, what's the kind of funny business that you could do to screw with me; what is the downside?

Shinobi: Well, that gets into complicated territory because in theory, a lot of things; in practice, those things become very expensive.  But, you know, I could lie to you if I'm running the node that you're using.  I could go scheme with, say, a miner and we're going to take this block, the valid block that you mine, that says, "I'm giving Peter money".  But in reality, that block only gets sent to me to show to you and then you go, "Okay", and give me whatever I'm buying from you.  But, that miner never sends that anywhere else and they go mine a different block where, hey, that money actually never wound up by you, is one of the most basic things that could happen.

If you're not running a node, you're kind of counting on that enough people are running a node, are paying attention to all this stuff, that no one's going to get away with funny business.  But, if no one's running a node, it's a weird spectrum where, if lots and lots of people are running the nodes, validating all the things, then the odds funny business can happen are slim to none and it costs a lot of money.  But if nobody is, then whoever that guy that is, he's in a really big position to just lie to people and collude with anyone who can cause funny business; you know what I mean?

Peter McCormack: Right, so really, would you say -- tell me if this is a good analogy.  You know when there's an election on and people say, "I'm not going to vote because my vote doesn't make a difference", but there are enough people voting to ensure there's an election result?  Is it similar here that me on my own, my one node doesn't make a huge difference; but what it does, like I'm part of this community effort to keep the network honest?

Shinobi: Think about it this way.  It's not about your node making a difference.  I'm going to touch a third rail here real quick and then take my hand off; but, it's more like imagine an election.  You 100% know what happened, no funny business, to look back at 2020 in America last year, none of that is possible because I checked everything, you know what I mean?  And, it's not so much about, at the heart of it, helping things or making things better for people who aren't running a node; it's I'm running a node; I know there's no funny business; I'm just thinking about me and what I can be 100% positive about.

Peter McCormack: Okay.  So, let me push the real question I had for myself for a long time.  I had a wallet; my first wallet I ever bought was a Ledger.  I have a Coldcard, I also have a Trezor; so, I have all three now, right.  But, every single time previously, to consider a node, I would always use my hardware wallet, and obviously I'm using their node; and I kept thinking, well, every single transaction I've sent has been fine; every one I've received has been fine; what is the actual risk to me carrying on with just this hardware wallet; why do I need to take this extra step of having a node, for me personally on a selfish reason?  Forget helping the network out; why should I make that step?

Shinobi: Well, what's going on with everybody's money is the most important thing to be sure this is working right.  And honestly, just again, I'm going to touch the third rail again.  Look back to America in 2020, because there was no node for that; there was no, "I can be 100% sure"; and only those select people, that we all just have to trust, were actually in a position to verify things.  And, just look at how insane that got as that trust just eroded completely, because people could not, for themselves, 100% verify what happened.

Now we're talking about money and there is that way you can 100% verify what happened.  So it's like, do we want to take the risk with this whole system that we wind up in that kind of situation because nobody's verifying anything?

Peter McCormack: But, if I know that Shinobi's doing it, Rodolfo's doing it, and Pierre's doing it, Matt Odell's doing it -- like, I myself know you're all doing it.  Am I therefore coming from a weird luxury position because I know a bunch of people and I can trust it?  I need to consider myself in the mindset --

Shinobi: Well, what if ten years from now, I dumped all my Bitcoin in the next market cycle, because I'm an idiot and I'm broke and, "Hey, I'm going to grift and scam and lie.  What can I do to make money; I'm broke?"  You might trust me now, but ten years from now; do you see what I mean? 

This is going to grow so big if this actually works that it's not going to work if everybody isn't verifying anything, because everybody can just start abusing things, everybody's incentives get misaligned, there become the special people that everybody else just has to trust when they say everything's going fine.  That's not a stable system in my mind.

Peter McCormack: Yeah, but it feels like the incentive is a bit more on supporting the network, and I should support it because I've got skin in the game; I hold Bitcoin; I want to be one of the people that ensures the network is honest and ensures the network is working.  It does feel more that than the risk of individual transactions scamming me?

Shinobi: Well, this is kind of the thing though.  You make that assumption and then, what happens when it's wrong?  What happens when, not even just you are targeted; some rich dude who's throwing billions of dollars around on the Bitcoin Network is targeted and you just get caught up in that?

Peter McCormack: True.

Shinobi: You're just the casualty because your transaction happened to be in the block that rich guy's transaction was in.

Peter McCormack: Yeah, I see.  I mean, I'm bought in; I get it.  So, the next thing I always struggled with, like I'm going to bring out all my embarrassing questions, but how do you explain to somebody -- you've explained what a node is, but really have you've explained what it does?  If somebody themselves says, "Right, okay, I'm in.  I want to have a node"; what actually is it; what are they creating, because there seems so many options?

When I first got in, some people were like, "Well, you need to get a Raspberry Pi" and then other people were like, "Oh, you just download Bitcoin Core".  So functionally, explain what a node is.

Shinobi: It's literally just a programme that maintains that database of everything that's happened on the network.  It will take, like when you go send your Bitcoin transaction, what you're doing is sending it to a node that goes, "Okay, somebody wants to do this", and it sends that to all the other nodes; and then eventually, a miner puts it in a block.  Then the same thing; people pass that block around and then all the nodes validate everything, "This block is okay, it's proof of work is valid, everything inside the block is valid", and then they add that to the bank database.  So, it's literally just this programme that does this.

Now, a really important part, especially for new people, I want to drive home as far as all the options and different ways you can run a node; that is really important to think about who you're trusting.  If you just download Bitcoin Core and you just download some other wallet and hook it up to Bitcoin Core, all you are trusting is the Bitcoin Core developers and the developers of that wallet. 

But then, you're playing around, you're trying to, with things like Umbrel, which is like a whole operating system you just plug into the Raspberry Pi and it does all the node stuff for you.  You're not only trusting the Bitcoin Core developers; you're trusting the Umbrel developers; you're trusting the developers of any other wallet or software that Umbrel adds on top of Bitcoin Core.

So, you kind of look at just the attached things yourself and have a lot of problems with that; a lot of non-technical people do.  That might be more technically challenging for them.  But, you trust way fewer groups of people.  And on the flipside, things like Umbrel might be very easy; you literally just push it in and hit the button.  But, there's a requirement to trust a larger group of people and projects that this does what it says it does, and there's nothing funny going on here.

Peter McCormack: Interesting.  Yeah, because I was at a conference, I think it was Tone Vays' conference, and somebody said this is why it's important; the code is open source so you can review it.  I was like, "You think I'm going to review the code and I'm going to know what's going on there?!"  So, you are talking about multiple layers of things I need to trust.

The only reason I went with Umbrel is because so many I people I do already trust had already rated it.  I mean, are there, I guess I would ask, are there places that you can find out if the code has been reviewed and checked; like, people like you have reviewed it and checked it, or techies, and said, "Yeah, this is fine; there's no funny business here"?

Shinobi: I am completely blanking on the name of it, but a former wallet developer maintains kind of a website of how audited and verifiable the code versus what people download is.  I'm completely blanking on the name right now; but, there is at least that one project.

Peter McCormack: Well, I'll try and dig it out after the show and we'll stick it in the show notes so people know.

Okay, so listen, I was looking on the Casa website, because I had one of their nodes at one point.  I played around with that for a while.  But, I was looking at their reasons for running a node and they said, "Making the Bitcoin Network more robust".  I think that's an important thing to talk about here because, whilst we're talking about you download a copy of the ledger, we should probably also mention what else the node does when it accepts blocks; the way it keeps the network honest.  Do you want to talk about consensus and what happens here?

Shinobi: Yeah, so that's pretty much just the rules of what's allowed.  First and foremost obviously, mining; the whole thing is you have to burn energy to find this hash with so many leading zeros.  So, if a block comes in that doesn't have enough of those, the node immediately ignores it; like this is, "I don't even have to look inside this block.  Poof, get out of here".  And then, the deeper side of that, like actually if that passes, that's valid and then your node starts looking at the contents of the block.

Those kinds of consensus rules are just what is allowed and what is not allowed.  Me taking a coin that I have the private key to and signing that transaction, that's allowed; but me taking that coin and not having a valid signature for the right key, that's not allowed.  If there is a transaction like that in the block then, "Nope, get that block out of here, it's invalid". 

There are also more complicated things like time locks, so I can lock a coin so I can't move it until a year as passed.  So, any coin locked like that that's trying to move too early, "Nope, not allowed, get that block out of here".  And just at the simplest, simplest level, that's what the consensus rules are.  It's just what is allowed and what is not allowed in terms of moving money around.

Peter McCormack: So, what stops somebody creating a rogue node which bends a couple of those rules; what would happen in that scenario?

Shinobi: Well, I spin up my node, I say that stuff that is allowed is not allowed anymore, and when somebody does that, my node says that block is invalid.  No one will ever give it a block ever again that's valid, because I'm the only one who did this stupid thing; and, that node will just stay frozen at that block forever while the rest of the network keeps marching on, and it just won't matter, because it's one goofball who changed their own code and nobody else cares.  We just kept going on.

Peter McCormack: So essentially, everyone has to keep to the same rules and anyone who tries to break them is almost ejected from the network?

Shinobi: Exactly.

Peter McCormack: Yeah, okay.  The next thing Casa talks about is protecting your investment in Bitcoin, but we've covered that.  The last thing they talk about is "strongest privacy available".  Now, we talked a bit about privacy in last month's show when we talked about UTXOs.  Why does running a node improve your privacy?

Shinobi: Well, here's the other side of that privacy issue.  Last episode, we were only talking about what everybody can see on the blockchain.  But, in order to know you actually have money on the blockchain, you have to go to somebody with a copy of the blockchain and go, "Hey, does my money exist?" 

If you aren't running that yourself, if you're not checking your own node, then you're pretty much going to the internet, telling somebody your IP address and going, "Hey, these are all the Bitcoins this IP address owns [or] somebody on this IP address owns", and you don't have to put anything on chain, or screw up anything privacy-wise managing UTXOs on chain to do this.  I just need to know if my money exists, so you go tell this guy about your money and he tells you whether it exists or not.

So now, that guy knows all of this money belongs to some person and they'll have something like an IP address, and now those two things are tied together.

Peter McCormack: Like when you go to a block explorer; say you're waiting for an incoming transaction, you go to the block explorer and put it in --

Shinobi: Exactly

Peter McCormack: -- which I've probably done a whole bunch of times.  That's really interesting.  Okay.

Shinobi: That is probably one of the most common ways people screw up their privacy in this space without even realising it.  They just go to a block explorer and put their own addresses in there.  And especially if anybody were to be tracking and collecting this type of information, they'll be able to see patterns.  Like, "Oh, this guy is only interested in these coins that are tied together on chain; he's never just looking at random stuff". 

So, if somebody wanted to, block explorers could build massive metadata databases about who could own what, how much different…  Like, you could just data-mine Bitcoin users if they really wanted to.

Peter McCormack: Right, okay.  Do you know what; in my head I'm already thinking of a show we're going to have to do in the future.  It's almost like, "Pete starts again", and we rebuild my entire privacy model from scratch; we're going to have to look at that!

All right, so a couple of questions I've got, just technical ones.  Are miners also nodes?

Shinobi: No.  People just running the actual mining hardware does not mean they're a node.  But, you do require a node in order to run that hardware and actually be making blocks that could be accepted as valid.

Peter McCormack: Which makes sense.  So, I think it might be useful to have a little case study, just to tell people the importance of nodes, and talk about what happened with UASF.  So, just as a reminder for anyone listening who doesn't know because, again, some people might be new.  But, four years ago, well the whole thing started way before then, but let's say four years ago, the peak of the block size wars, we had a situation whereby a group of people wanted to fork Bitcoin and increase the block size, and another group of people didn't agree with that.

Do you want to talk about what happened in terms of the simplest version of that story you can tell and why the nodes were important?

Shinobi: So like you said earlier, the key thing that makes Bitcoin work is everybody's running their own node, but we're all using the same rules.  So, for everybody running a node, a block that is invalid to one node should be invalid to every other node; and the same thing with a valid block.  If one node says this block is valid, this should be accepted as valid by every other node.

The whole kind of simplest explanation without trying to make good guys and bad guys out of it is, this group of people wanted to run different rules, where something that everyone else's node could come in and everyone else would say invalid, but to them it would be valid.  And so, when you really start to think about that dynamic and what happens if that does split like that, then really why does that split stay like that; because, somebody who is doing economic activity is picking one version of a node or another, and only considering themselves validly paid for an economic interaction if that node says they are.

So, it's kind of, think about it like every economic interaction is, money goes one way and then a good or service or whatever goes the other way.  So, your node is the thing that tells you, "Yes, the money came your way so give the person the good or the service or whatever".  So, whatever node and economic actor is looking at to decide, "I got paid; give them what they paid for", that is what kind of gives that blockchain value; do you know what I mean?  That's the whole core of it.  I will not give you a good or service unless my node says I got paid for it, and so that whole dynamic, this is the important part here. 

Nodes, and what they say are valid or not, are the most important thing when you are actually engaging in commerce with Bitcoin.  That is it; that is the law.  And, that law can vary depending on who you're interacting with.  As far as the Bitcoin Network we're on, it won't, because we're on the same network; but it could.

So, pretty much what happened there was most of the economic activity on the network was kind of just, "No, we are not going to change our rules to let blocks be bigger", and they won, because there was just more economic activity, more people who were willing to go, "If I get money sent to me in one of these big, invalid blocks; no, I'm sorry, I didn't get paid, I'm not giving you your thing".

Peter McCormack: Interesting.  So, when there are changes, I'm going to go off on a tangent here.  I was talking to somebody about Taproot activation here, and I remember -- yeah, I know; spicy subject at the moment!  But previously, I've heard about miner signalling and that generally speaking, what is it, what percentage of miners do you really need to be signalling to have a change to the rules?

Shinobi: Previously, 95% was used, but I think at least most of the proposals for Taproot are 85% or 90%, depending on whose proposal you're talking about.

Peter McCormack: So, the miners create the blocks, the nodes validate them; I hope I'm right so far.  And, if there's a proposed change to the rules, you need a certain amount of miners to signal they're going to create these new types of blocks.  But, they also need the nodes to accept them, so you kind of need both?

Shinobi: Well no, actually, that's incorrect.  And, here's the thing that I think is one of the most misunderstood things about upgrading Bitcoin.  You do not need miner signalling; you don't.  That is not a requirement.

Peter McCormack: You just need miners creating the blocks?

Shinobi: No, you don't even need that at first.  But, miner signalling is not a vote; it's not a needed thing; it's a thing that is mostly about convenience and safety.  Because, like I said, everybody has to be enforcing the same rules and everybody, if we're going to change them, needs to change them at the same time. 

It's kind of just been a convenience and a safety factor that we use miner signalling to know that this many miners are claiming, at least, that they are enforcing these rules and they will not make blocks that validate them.  That way, everybody who wants to upgrade right away can upgrade and it's safer for people to take their time upgrading, because we've established, if we trust nobody's lying here, most miners won't do anything funny; and so, people can take their time and it will be safe.

But, you can also do the exact opposite where, if everybody is certain that we're all going to turn the rules on at the same time, we can just do it and we don't need the miners to signal or do it first.  And, if miners start breaking those rules by accident, or on purpose, or whatever, then everybody else just says that's an invalid block, and that miner doesn't get paid for that block.  And so, they would just have to catch up.

Peter McCormack: Right, so there is a small -- I think we'll cover hard forks and soft forks another time.  But, I guess there is a risk, without signalling, that some miners split off and create a hard fork?

Shinobi: Yes, that's possible. 

Peter McCormack: But, likely worthless, though?

Shinobi: Without getting too deep into it, for that to happen in a soft fork, somebody would actually have to make a UTXO on chain that used the new rules, and then somebody would have to spend that breaking those new rules and actually get put in a block, for a split to happen with a soft fork.  So, somebody would actually have to actively do something on chain to trigger that split.

Peter McCormack: I see.  Well listen, we'll cover hard forks and soft forks in another show but generally speaking, what I'm taking from this is that the nodes are what keep the network honest, and it's really important that I run a node so I'm part of that, because I want to protect my investment; but also…

It's funny, we talk about the last show, the UTXOs, the one thing I took from that that was really important was not buying lots of small amounts and transferring them to a wallet because I don't want to have too many UTXOs in my wallet for small amounts.  The one thing I've taken from this is actually, a great reason for having a node is that ability just to, if somebody sent me some Bitcoin, to query the blockchain, rather than querying via a block explorer for privacy.

Let me ask you something.  When I go to a block explorer, it gives me a number of confirmations.  Can I see the same if I query the blockchain itself; and, is it relatively easy to query the block chain via my node, or do I need some kind of coding skills; do I need to know some command line?

Shinobi: Well, your wallet, if you hook a wallet up to the node, or use the wallet that comes with Bitcoin Core, would just do that for anything involving your wallet automatically.  To really have a block explorer, like you use on the internet, you would pretty much have to get other software, and then hook that up on top of the node.  That's not a standard thing built into it.

Peter McCormack: Do we know how many nodes there are?

Shinobi: Well, if we're talking different ways to run, obviously you can just download Bitcoin Core.  There's Umbrel --

Peter McCormack: No, I mean how many nodes are being run, not types.

Shinobi: Oh, space cadet!  Well, we know how many nodes publicly advertise themselves, so who will actually shout out to the internet, "Hey, I'm a Bitcoin node.  If you're a Bitcoin node, you can connect to me".  But, that's not something that every node is doing.  So, to some degree, we can't really know. 

We can know how many of those public advertised nodes there are; but, as far as how many are just private and not advertising themselves like that, there's no real kind of accurate way to figure that out, because they're just quietly sitting there doing that and not telling anyone.

Peter McCormack: Right.  I think I'm just going to hold off on Lightning nodes for now.  I think, focussing on the base block chain is enough for now.  I might ask you a couple of questions about Lightning nodes towards the end, but to be honest, the first step for someone to just create a node for the base block chain would be a good start.

Okay.  Do you think that everybody should be trying to run a node?

Shinobi: Well, not literally everybody, but kind of cheekily put, if you are holding your own keys and have more than silly pocket change, or are regularly receiving Bitcoin, yes, I think you should.  But, if you just have that $5 somebody gave you that's sitting on your phone, or you're just sitting on Coinbase and have never touched your own keys, then you're kind of putting the cart before the horse; you know what I mean?

Peter McCormack: I see.  So, if you're somebody who's maybe bought $50 here, $50 there, perhaps probably not yet; but if you're somebody who's maybe been through a cycle, invested a lot of their personal income, got a serious percentage of their wealth, you really need to be doing this, or looking at it, at least considering it and trying to do it?

Shinobi: 100%.

Peter McCormack: Are there any risks of running a node?

Shinobi: Well, in the Western world, aside from maybe wasting bandwidth or hard drive space, or if memes really get out of control, maybe getting your node DDoSed or something, not really.  But, let's say you're in a very totalitarian country that goes, "Bitcoin is illegal" one day, then yeah, having a node on your network that's publicly visible on the internet; that could become a dangerous or a risky thing to do in that type of environment.

But, if you're in a safe, happy country, you don't have to worry about stuff like that, then no, just figure out your bandwidth if you have metered bandwidth!

Peter McCormack: All right.  Look, we know I've tried with Umbrel and I've had some issues, which we're going to get into.  If somebody's listening to this, Shinobi, and they're like, "Okay, I'm on board, I want to create a node", where would you say start?  What's a good, easy starting place for a node?  Should they just start with Bitcoin Core on their laptop; should they get a spare, cheap laptop and use that; where would you recommend someone to start with for their first node?

Shinobi: Honestly, there's no one-size-fits-all answer for that.  But I would say, if you at all feel capable of following a tutorial or something, I would say just try at least before you start looking at all these plug-and-play nodes, to just go find a tutorial and download Bitcoin Core, and then just find a wallet that you can hook up to that so you can use your hardware devices and stuff.  Just try that first before you do anything else, because that's really how to do that with as little trust placed in different groups of people as possible.

Peter McCormack: Okay, so this is an interesting thing.  When I first downloaded a node and people said, "Just connect it up to your wallet", I made this assumption, "I can just connect it to my hardware wallet", but that's not strictly true.  I'm not sure what happens with Trezor; I know a little bit more about Ledger that it's coming, and Coin Control's coming with them; I know you can do it with a Coldcard, but I've not gone through the process of trying.  What I realise is that not all wallets can connect to a node, right?

Shinobi: No.  Like, especially, although this is starting to change, but especially mobile wallets, or anything on your phone.  A lot of them just nope, not happening.  But, it is becoming a thing more nowadays where mobile devices are trying to set that up so you can do the scan a QR code thing and just hook up; but still, most of the mobile wallets out there, there's no real easy way to do that.

Peter McCormack: Right.  So, if somebody was previously using a hardware wallet and they set up and downloaded a node, and then they read up something like, for example, Spectre wallet; that's what I hear a lot about at the moment.  That's a really good wallet; I've heard that connects up.  Spectre wallet is a desktop wallet, right?

Shinobi: Yeah.

Peter McCormack: So, just in my logical brain I'm like, "Okay, I can download Spectre wallet, connect it to my node, validate my transactions", but in my head, that desktop wallet is connected to my computer which feels like there's a live internet connection to my coins; whereas, if I've got my hardware wallet, I feel like I've got that kind of separation between the internet and my coins.  Does that make sense as a psychological barrier that I struggle with?

Shinobi: That's absolutely how it should be.  I just want to kind of reiterate the debit card and the relation to the bank database; you know what I mean?  That should always be how you're handling things if you have any significant amount of money that you're custodying yourself.

Peter McCormack: So, in that scenario, what am I meant to do?  Am I meant to set up my node with Spectre; say like, "Shinobi, send me some Bitcoin"; you send me some Bitcoin; my node validates it; it appears in Spectre; should I then be moving it to a hardware wallet after that, so I've essentially got the two transactions?

Shinobi: Well, Spectre actually has hardware wallet support, so that's -- I actually kind of want to push you to play with that specifically, because that is a very simple thing.  It's literally, just bolt that on Core and then, whatever hardware wallet you want to use, that can talk to Spectre. 

That's a real nice, simple interface in terms of low trust; you're not trusting a million projects that got put on the Raspberry Pi; not that difficult to play with; and it's just right out of the box, people can plug their hardware wallet into it, so they don't even have to have that interim step of like, send to that, and then somewhere else.

Peter McCormack: Okay, because this is where I had one of my moments, because I was like, "Okay, so I need Bitcoin Core, which has a wallet; and then I need Spectre, which has a wallet; and then I need to use my hardware wallet, which also has a wallet".  So, I've got these three wallets, but also three different bits of kit doing something different.  Really, the only wallet I need to focus on is the hardware wallet, but I'm navigating the hardware wallet from Spectre; is that correct?  But, Spectre's connected to my node?

Shinobi: Here's what I would say, just conceptually.  When you think about stacks of stuff like this, Core has a wallet, but the reason that doesn't work with hardware wallets is, there's so many of them; they change all the time; and, you can't just make it the Bitcoin Core developers' problem that all of these devices are constantly changing, and they have to work to -- you know what I mean?  So, that's just the node.  You can ignore Core's wallet.  And then, Spectre on top of that is the actual wallet you're using.

Then, your hardware device, I really think people shouldn't conceptualise that as a wallet.  That's more like the keychain, or the signing device.  That's set up this way; that's all that's really doing.

Peter McCormack: Okay.  So, I've got some more questions, because I went through my experience.  Okay, if I connect my node to my wallet, how do I actually know it's validated?  So, for example, I've connected my node to my wallet; I've set it up how I'm meant to set it up, I'll go through the instructions after this and do it; Shinobi sends some Bitcoin; it appears in my Spectre wallet; how do I actually know that that's actually been validated on the blockchain?  Does Spectre say, "Validated"; does it ping; does it do something to indicate it's validated that?

Shinobi: Yeah, so Spectre, pretty much when you hook it up to Bitcoin Core, what it does is it will take your public keys and actually import those into the Core wallet.  So, it's actually kind of ironically using Core's wallet under the hood, just not letting private keys touch it.  And then, Bitcoin Core tracks your balances.  And when Spectre hooks up to it, it's just pinging back and forth with the node like, "Hey, did anything change with the money?" and if it did, Spectre will show that to you.

Peter McCormack: But, I can use Spectre without connecting it to Bitcoin Core, right?

Shinobi: Actually, I don't think so.  I think they're planning on some kind of mode in the future where you could run it without Bitcoin Core, but right now you have to have Core to use the wallet.

Peter McCormack: But, there are some wallets out there which you can use with or without connecting to a node, right?

Shinobi: Yeah. 

Peter McCormack: With those, how do you know that -- will you ever know that an incoming transaction has actually been validated by the node?

Shinobi: Well, if you've hooked it up and it's working properly, yeah.  But, aside from that, that's kind of wandering down the territory of, do you know your computer's doing anything properly unless you decompile anything and tear the chips apart?

Peter McCormack: I know!  Just, in Pete's little world, I kind of what next to each transaction to say, "Node validated"; because I'd be like, what happens if my node disconnects from my wallet?  Would I know that's happened?

Shinobi: Yeah.  Let me put it this way.  Any wallet developer who is competent enough that you should be even considering using their software, they'll build into the UI like a warning, or a disconnect notification, or things like that.

Peter McCormack: Right, so my experience with Umbrel, people kept saying, "Test out Umbrel, Pete.  It's really easy, it's click and go" and it kind of was 95% easy.  I had the Raspberry Pi here, I had a couple of extra bits I had to buy, bought a case -- well actually, my son built it, which was cool.  But, we built it, connected it, started synching the blockchain; and then after every hour of running it, it would stop synching.  And then I would disconnect it, turn it off, turn it back on and it would do it again, and that to me is just a fail.

I know there are lots of people out there who will keep digging and keep trying; they're the kinds of people who tinker, right?  But, I'm not the kind of guy who fixes this stuff.

Shinobi: Well I mean, in fairness, it's a new project, it's kind of in beta still, but yeah, I get your point.

Peter McCormack: But all I'm saying is, for me, this is where people -- I'm sure some people listening will tweet me or email me and call me a dick for this, but I tried and I couldn't get it to work.  And, look, I can speak to the guys at Umbrel and they'll help me, which is fine, but I'm in that fortunate position.  If I wasn't, it just didn't work enough for me to go, "I can't be bothered with this.  I'm just going to go back to my hardware wallet".  But I know that's wrong; I know I need to keep trying with this

So, this is where you're going to now set me my homework and we're going to split off from the show now.  You're going to give me 24 hours.  I'm going to figure it out; I'm not going to have you talk me through it.  I'm going to figure it out and if I get stuck, we're going to come back on and I'm going to tell you the problems I have.  But, we're going to live fix this.  But am I thinking that you want me to get a hardware wallet, Spectre, and connect it up to Core?

Shinobi: Yeah, that is pretty much my devious plan here!

Peter McCormack: Okay.  And with that, let me ask you a couple of things.  Should I get a separate unused laptop, like one of my old ones; should I blank that and start with that?

Shinobi: I think that would probably be simpler, just so you're not thrashing the hell out of the CPU on the computer you use every day.

Peter McCormack: Okay.  In terms of privacy, when I set up that laptop, is there anything I need to install on there before I start, you know, before I download Core of Spectre, or any of that stuff?

Shinobi: Well, I mean really, the artist in me is saying, "Go install Tor and hook Core up to Tor", but I'm betting you might find a lot of fringe problems with that.

Peter McCormack: When you say Tor, like, do I just download the browser?  Tell me!

Shinobi: Yeah, you could do that, but that would be a weird thing where you always have to have the Tor browser open for Tor to be running, instead of just installing Tor without the browser.

Peter McCormack: You see, I didn't even know there's a Tor without the browser.  My assumption is Tor is just a browser.  So, Tor is something and Tor have a browser themselves that uses Tor?

Shinobi: Yeah.

Peter McCormack: So, what is Tor?

Shinobi: It's just an onion-routed mix network.  So, pretty much the internet, you have your IP address, you shoot something to a different IP address and it shoots back, and a whole bunch of people in the middle can see all kinds of things. 

Tor is just, imagine everybody ran something like a node, and all that did was add them to a list.  And then, instead of just sending whatever data I'm sending where I'm going to send it, what I do is I look at that list and I pick a bunch of people, and then I onion encrypt that message to hop through them before it goes to where it's going, kind of how the Lightning Network works.  That's pretty much, I give it to the first guy and he sends it to the second after he encrypts it, and so on.  And all anybody knows is the guy right before and the guy right after.  Nobody except the person I initially send it to has any clue where that came from.

Peter McCormack: Right.  So, I'm going to wipe a laptop; I'm going to download Tor and install it; I'm then going to download Core and sync the blockchain; I'm then going to download Spectre; and I'm going to connect Spectre to Core; and then, I'm going to connect my hardware wallet to Spectre?

Shinobi: Correctamundo.

Peter McCormack: Right, so that's my homework.  Okay, I'm going to get on with this; I'm going to say, give me 24/48 hours, and then I'm going to come back and tell you how I've done.  I might ping you some questions in between, but I'm going to see if I can do all of this.

Do you know what; send me a Bitcoin address and I'm going to try and send you $100 of Bitcoin through this.  So, you're either going to get a message from saying, "Look, I need your help, Shinobi", or you're going to get $100 of Bitcoin.  You're probably going to have to send that back to me to see if mine works the other end!

Shinobi: All right!  I'm game for the meme!

Peter McCormack: All right, listen.  I think that's a good place for me to go off and try this.  Leave it with me and let's get back in touch tomorrow and see how I'm getting on.

Shinobi: Okay, sounds good to me.