1

Likely a duh question, but are all network participants (or wallet holders here) always considered nodes? Am I right to say that the answer might depend on what the wallet is capable of doing in terms of functionality, as opposed to other nodes in the network?

Another way of asking using an example is whether a wallet (let's say a mobile app) with the ability to enter a new transaction and reference its own historical transactions can ever be considered a non-node?

3 Answers 3

4

First, some definitions for the purposes of this answer. A node is an instance of a software which communicates with other nodes and validates and relays blocks and transactions. A wallet is an instance or subprocess of a software which allows a user to send and receive Bitcoin transactions.

By these definitions, not every wallet is a node. Wallets communicate with one or more nodes in order to send and receive transactions, however not every wallet acts as a node.

For example, consider a SPV wallet that runs on a phone (such as the Schildbach Android wallet). These wallets will connect to nodes on the Bitcoin network and use the Bitcoin P2P protocol. However they do not validate blocks and transactions, nor do they relay transactions to other nodes. They will ask the nodes that they connect to to filter specific blocks and transactions for them, and to forward it just those transactions. It does not do any validating nor does it do any relaying, so it is not considered a node.

5
  • 4
    In addition, not all wallets connect to nodes. Some connect to public Electrum servers or an API provided by the wallet vendor. Commented Sep 22, 2022 at 5:18
  • 2
    @VojtěchStrnad I would add "directly" to your comment to not confuse people. Those wallets are still connected to a node, they just don't need to be connected directly to a node, because e.g. the Electrum servers and APIs are connected to a node.
    – stickies-v
    Commented Sep 22, 2022 at 9:54
  • Thanks all, is a software wallet, or a newly generated key-pair unique to a specific currency? If so, how is it restricted?
    – kenta_desu
    Commented Sep 22, 2022 at 13:38
  • @karatani If you have followup questions, please use the "Ask Question" button.
    – Ava Chow
    Commented Sep 22, 2022 at 14:46
  • @AndrewChow sorry, added now. bitcoin.stackexchange.com/questions/115335/…
    – kenta_desu
    Commented Sep 22, 2022 at 14:52
1

Full nodes provide Bitcoin network routing, and transaction validation, and may come with a wallet for storing coins. For example, a business accepting bitcoins could like to validate transactions immediately rather than waiting for the miner to add them to the blockchain. Miners are full nodes as well.

A node does not always mine Bitcoin, though. While all nodes are miners, not all miners are nodes. However, they are still essential to the ecosystem because they help decentralize the blockchain, which increases its security.

You can also read our blog regarding "How To Create A Successful Decentralized Cryptocurrency Wallet?"

2
  • 1
    When you wrote "all nodes are miners, not all miners are nodes." - did you mean the opposite? Commented Sep 22, 2022 at 20:19
  • Not every miner is a node and not every node tries to mine.
    – Mercedes
    Commented Oct 1, 2022 at 16:38
0

are all network participants (or wallet holders here) always considered nodes?

As Andrew Chow's answer suggests, this is really a terminological question about how we define node. One way to answer this is to look at Satoshi Nakamoto's original whitepaper where Nakamoto writes:

8. Simplified Payment Verification

It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it.

(my emphasis)

So it seems to me that Nakamoto is describing a node in the way Andrew suggests - Nakamoto is saying that an SPV wallet communicates with network nodes but I think his wording strongly suggests an SPV wallet is not considered to be a network node itself.

Personally, I find it a little surprising that a computer that uses a specific protocol to communicate with other computers is not considered a node in the network of computers using that protocol. However I can see that the distinction Nakamoto makes, between a node (full network node or network node) and a simplified payment verifier, is an important one. Either way, it is probably best to adopt the terminology used by Nakamoto unless there is very good reason not to.

Not the answer you're looking for? Browse other questions tagged or ask your own question.