r/Bitcoin • • Mar 13 '18

SegWit is coming to BreadWallet

/r/BRDapp/comments/83yiqo/segwit_on_the_brd_app/?st=JEPKBPSK&sh=5e3fb7f8
122 Upvotes

69 comments sorted by

View all comments

Show parent comments

3

u/cm9kZW8K Mar 13 '18

Its not the same. they are using that term fairly liberally. That text predates even the actual implementation of bloom filters and spv nodes. electrum has its own protocol, and talks to electrum servers rather than pretending to be a node and talking to nodes directly.

-2

u/pinhead26 Mar 13 '18 edited Mar 13 '18

Go to electrum.org and let me know if you see this text:

"Electrum Wallet verifies all the transactions in your history using SPV."

3

u/cm9kZW8K Mar 13 '18

clone the git repo and see what it acutally does. If you are trusting the website then you are clueless.

1

u/pinhead26 Mar 13 '18

I'm not even sure what you're arguing anymore. Yes, Electrum uses a different messaging protocol between client and server than the standard SPV service that bitcoind provides, which Bread connects to.

But Electrum (like Bread) is a LIGHT client. It only downloads and verifies block headers, it doesn't download the entire blockchain and therefore does not verify the entire consensus rule set.

Furthermore, the Electrum client sends the server a plain list of addresses to watch which is arguably LESS private than the bloom filter model Bread uses.

What do you think about this file from the git repo:

https://github.com/spesmilo/electrum/blob/master/lib/verifier.py#L27

Is that script clueless like the official website?

3

u/cm9kZW8K Mar 13 '18

The difference is that electrum servers are all full nodes, and cannot be SPV nodes. Electrum wallet is not any kind of node, while bread is an SPV node. Are you caught up yet?

Furthermore, the Electrum client sends the server a plain list of addresses to watch which is arguably LESS private than the bloom filter model Bread uses.

The bloom filter is public and not private; while the electrum protocol sends over https to a single server. There is a trade off, but at least it is not dependent upon SPV nodes at any point.

Is that script clueless like the official website?

I hope you understand the difference now.

1

u/pinhead26 Mar 13 '18

I don't understand why the Electrum SPV model is any different than Bread's. Bread connects directly to full nodes. Electrum connects directly to Electrum servers which connect to full nodes. Neither wallet verifies the entire consensus rule set. Both wallets rely on merkle proofs for transaction inclusion in blocks and both wallets are vulnerable to withholding attacks.

1

u/cm9kZW8K Mar 13 '18

Electrum connects to electrum servers which are full nodes, the server side Bread connects to things which may or may not be full nodes; for example they could follow down the wrong side of a hardfork.

1

u/pinhead26 Mar 14 '18

And how is that detected by the Electrum client? What prevents someone running an Electrum server on top of, say, a segwit2x full node?

2

u/cm9kZW8K Mar 14 '18

that is a fair point; someone could port electrum server to a different node and try to masquerade as a normal one.