Hot answers tagged

11 votes

What's the distinction between BIP 157 and BIP 158? Are they supported by Bitcoin Core?

This answer is a slight modification on the description used in Bitcoin Optech Newsletter #43. Full credit and thanks to Dave Harding! BIP158 introduces Compact block filters, which are are based on ...
  • 900
8 votes

Could Neutrino technically as side-effect, incentivize centralization of the bitcoin network?

Dorier is correct that Neutrino/SPV nodes are not full nodes, because they do not verify the entirety of the blockchain, leaving potential room for attack. However, the portrayal that Neutrino is no ...
  • 3,249
6 votes

How do SPV (simple payment verification) wallets learn about incoming transactions?

If it helps https://gist.github.com/TOMOAKI12345/7e0aa1c6b8ace4a70ca6 Breadwallet source code is really good source to learn about the network protocol of SPV wallet.
6 votes
Accepted

Is the SPV client model scalable?

Generally speaking, BIP37 bloom filtering SPV has atrocious scaling though it is hard to say exactly how poor it is in the real works. Every peer must sync the entire block chain from the last they ...
  • 15.2k
6 votes
Accepted

How does SPV prevent double spending of UTXO?

In a bitcoin transaction, A's address is not scanned for spendable Unspent Transaction Outputs (UTXOs). Full nodes simply check if the inputs of the transaction are really unspent. There is no ...
  • 1,224
6 votes

The use of Bloom filter in SPV nodes

I can imagine that an SPV node encodes the transaction(s) it's interested in, into a BF and sends it to full node. What I don't understand is that what does the full node do after that? The full node ...
  • 28.9k
6 votes
Accepted

How is the Leaf node weakness in Merkle Trees exploitable?

In Bitcoin, inner nodes of the merkle tree are constructed by concatenating two 32 byte SHA256d hashes together. The resulting 64 byte value is hashed to get the next node in the tree. The leaf nodes ...
  • 63.2k
6 votes
Accepted

Could bitcoind support SPV mode by setting different args

No. bitcoind does not have a SPV mode at all. Pruning is not the same thing as SPV because a pruned node still downloads and verifies the blockchain. Just instead of storing all of the blocks in the ...
  • 63.2k
6 votes

Does every node have a whole copy of the blockchain?

To join the network, a Bitcoin full node will work its way through the network history, independently verifying the state of the network through time. So yes, each node will have downloaded and ...
  • 17.5k
5 votes

SPV Bloom filter construction, are false positives taken from the blockchain or just due to matching with other addresses

Bloom filters are probabilistic, each attempted match you make with it has a specific chance of being a false positive. The rate of false positives is determined by the construction of the filter (how ...
  • 15.2k
5 votes

What are the main technical hurdles to implementing UTXO commitments?

The main bottleneck of committing to a UTXO merkle root is that it's I/O and CPU heavy to create and verify. As of today the serialized UTXO set is around 1GB and it contains almost 34000000 entries ...
5 votes
Accepted

Is there a light (SPV) version of bitcoin core (bitcoind)?

Yes, bitcoind with pruning is similar to bitcoind, though some RPCs are disabled (naturally, because of pruning). bitcoind in pruning mode does not store the whole blockchain, and can reduce your ...
  • 1,297
5 votes
Accepted

How do SPV get their transactions after being offline?

Block fetching requests are also filtered, so the client requests every single block they missed out on seeing since the last time they were last online, sequentially. The client downloads all block ...
  • 15.2k
5 votes
Accepted

Can SPV clients offer "proof of absence" of a transaction?

There is no known way to do this with the current consensus rules nor does it seem likely except via computationally expensive general ZKP. The normal way to make compact proofs of non-membership is ...
  • 7,519
5 votes
Accepted

Is the idea of fraud proofs possible in reality?

The whitepaper said that SPV clients would avoid accepting a rules violating block by being altered to the violation, downloading the block, and checking for themselves. This is not realistically ...
  • 7,519
5 votes
Accepted

RSA accumulator vs Merkle Proofs

RSA accumulators are far harder to implement correctly RSA accumulators need a trusted setup (someone, or multiple someones, must come up with a sufficiently large integer that is the product of 2 ...
4 votes
Accepted

Are public keys and their corresponding hash values both added to a BitcoinJ Bloom filter?

Does the current release of BitcoinJ add both a public key and its hash value to its Bloom filters? If not, which release stopped it from occuring? Yes. The following code implements it: /** Inserts ...
  • 28.9k
4 votes

Is there a light (SPV) version of bitcoin core (bitcoind)?

As Alin explained today the lightest version is pruned mode. However there are pull requests for an even lighter version, called full block downloading SPV mode, or full-SPV mode. Keep an eye on these ...
  • 788
4 votes
Accepted

How does a node find a transaction in the blockchain?

You can read the bip37 specification for all of the gritty details. how does the full node find this transaction (or the UTXOs) in the blockchain? The client builds a filter which contains what ...
  • 15.2k
4 votes
Accepted

How do SPV clients acquire transactions from other nodes and verify that they are part of the blockchain?

I found out that SPV has no mempool, but although SPV client is participating in transaction verification. So, what happens when node verifies transaction? Is SPV client checking only owner's outgoing ...
3 votes
Accepted

What hardware requirements does a SPV client have?

Bandwidth - You need to receive an 80-byte header about every 10 minutes. In addition, if you want to spend, you will get SPV proofs that range about 500-1000 bytes per utxo. In other words, the ...
  • 7,639
3 votes

How does an SPV wallet use the headers that it downloads?

The SPV uses the Merkle Root in the header to verify transaction information full nodes provide. As a header refers to the previous block by hash, an SPV wallet can be somewhat sure that it has real ...
  • 65.3k
3 votes
Accepted

Is simplified payment validation (SPV) decentralized?

If you assume you are not being attacked, in the sense that your internet connection is not being restricted in a way that it allows you to only connect to an attacker's nodes without you noticing (...
  • 6,218
3 votes
Accepted

Source code for SPV node on iOS - where to start?

BreadWallet for iOS is open source, has a permissive license, and uses SPV https://github.com/voisine/breadwallet/blob/78d67870cdb887bab69ffeab8d808a3cb24d3759/BreadWallet/BRPeer.m
3 votes
Accepted

How do thin-clients know in which blocks to look?

SPV nodes usually only look at block headers, and then will download some of the actual block data of blocks which other peers have told them contain transactions relevant to them. SPV nodes are ...
  • 13.8k
3 votes

What is an SPV client?

SPV is Simplified Payment Verification and it is typically contrasted with "running a full node". SPV is around since bitcoin's original incarnation, it has been there since the beginning. It is a ...
  • 149
3 votes

Do bloom filters protect against a persistent eavesdropper?

See this paper for a good discussion: On the Privacy Provisions of Bloom Filters in Lightweight Bitcoin Clients
  • 1,540
3 votes

Can I independently verify the integrity of the network with only block headers?

Reclaiming disk space describes what is nowadays called pruning. After downloading the entire block chain, you can safely throw most of it away because old spent transaction outputs are never needed ...
  • 8,794
3 votes

Bitcore full node list with Wallet service enabled?

Nodes don't provide wallet services (like Bitpays Bitcore [don't mix that up with Bitcoin Core]). The only service they provide is SPV transaction filtering (which is much "slower"). Running your own ...
3 votes

How could the Bitcoin protocol be modified so that pruned nodes could still participate in BIP 37 SPV?

Pruned peers do not have the full blockchain history and therefore have only limited value for SPV clients. With Bitcoin Core 0.16, pruned peers will announce their service via NODE_NETWORK_LIMITED (...

Only top scored, non community-wiki answers of a minimum length are eligible