Author

Topic: How many servers does the electrum client connect to? (Read 949 times)

hero member
Activity: 854
Merit: 1009
JAYCE DESIGNS - http://bit.ly/1tmgIwK
I wasnt worried about theft, i was worried about servers lying. I am not sure if you are an expert or not, you said that you "believe" this is how it works, but you are not sure on it?

You have ThomasV and my opinion on this topic. Now, up to you to do your own research and forge your own opinion on this topic.

I would recommend that you setup your own Electrum server - you will understand a lot of things by doing so.

Ok, i dont want to sound an asshole, i just want to make sure. I like electrum, and the way it is designed and setup, and i hope it doesnt have any serious vulnerabilities.
hero member
Activity: 854
Merit: 1009
JAYCE DESIGNS - http://bit.ly/1tmgIwK
The Electrum clients connect simultaneously to various Electrum servers to fetch the blockchain headers file.  The blockchain headers file from each one of those 8 to 10 Electrum servers have to be the same as the Electrum server you are connected to - otherwise you will see an error on the network icon (yellow or red color) of the GUI.


This is what I was asking. So technically the electrum client is connected to multiple servers then to cross verify the blockchain, so the sybil attack at the client <> server route is unlikely?

(when i go to the network tab it shows only being connected to 1 server ,so i didnt know that it connects to multiple ones, that is why i was asking)


Therefore, the attack that you propose would not be successful.  And if it was ever possible (?!?), it would only prevent you to receive the correct information, or delay the broadcast of your transactions - it could never steal your bitcoins.  By then, you would have noticed that something is wrong with this server, and you could switch server manually.

Given this explanation, do you still believe that Electrum servers are single point of failure for the system?


I wasnt worried about theft, i was worried about servers lying. I am not sure if you are an expert or not, you said that you "believe" this is how it works, but you are not sure on it?
hero member
Activity: 854
Merit: 1009
JAYCE DESIGNS - http://bit.ly/1tmgIwK
Yes so the btc node -> server path is resistant to sybil.  (Nodes cant fool the electrum server)

But what about the server -> client path, what if the electrum server itself is lying? (Server could fool electrum client?)

I do not understand what you are talking about, and it looks like you really don't know what you are talking about.

SPV is a verification of the transactions sent by the server.
That verification is performed by the client, independently of the server.
That verification involves fetching block headers from various nodes and verifiying miners proof-of-work.

"nodes cant fool the server" is completely pointless here (and meaningless).
the point is that the server cannot fool the client.




What I am talking about is that the client is connected to 1 server at a time. While the 1 server may be connected to 8 bitcoin nodes.

So the server acts as a gateway between the electrum client and the btc network.

The server is connected to 8 nodes so the server knows that he is resistant to sybil attack.

But the electrum client knows only what the server tells him, so the server could send fake data to the electrum client.


For example: Server fetches TX data from 8 nodes, maliciously modifies it, and sends a fake version through to the client. If the client is connected to only 1 server, then it doesnt matter how many nodes the server is connected, he cant tell the difference, he has to trust the electrum server 100%.

What I am telling is that the electrum server is a central point of failure.
legendary
Activity: 1896
Merit: 1353
Yes so the btc node -> server path is resistant to sybil.  (Nodes cant fool the electrum server)

But what about the server -> client path, what if the electrum server itself is lying? (Server could fool electrum client?)

I do not understand what you are talking about, and it looks like you really don't know what you are talking about.

SPV is a verification of the transactions sent by the server.
That verification is performed by the client, independently of the server.
That verification involves fetching block headers from various nodes and verifiying miners proof-of-work.

"nodes cant fool the server" is completely pointless here (and meaningless).
the point is that the server cannot fool the client.
legendary
Activity: 1896
Merit: 1353
block headers are fetched from 8 different nodes.
I think it varies based on the server you connect to. Most show connected to 8 nodes, but some servers are less/more.
no, that has nothing to do with the server, it is just the result of your recent connection history.
the SPV module guarantees that you are connected to at least 8 nodes.
your main server is one of them; if you switch to another server for any reason, it will be added to the list.
hero member
Activity: 854
Merit: 1009
JAYCE DESIGNS - http://bit.ly/1tmgIwK
the wallet history is fetched from a single server.
that server cannot give you fake TX data, because Electrum verifies the data using SPV.

block headers are fetched from 8 different nodes.
please document yourself about how SPV works. it does NOT work by comparing data from random servers.

Yes so the btc node -> server path is resistant to sybil.  (Nodes cant fool the electrum server)

But what about the server -> client path, what if the electrum server itself is lying? (Server could fool electrum client?)
legendary
Activity: 2772
Merit: 3284
block headers are fetched from 8 different nodes.
I think it varies based on the server you connect to. Most show connected to 8 nodes, but some servers are less/more.


legendary
Activity: 1896
Merit: 1353
the wallet history is fetched from a single server.
that server cannot give you fake TX data, because Electrum verifies the data using SPV.

block headers are fetched from 8 different nodes.
please document yourself about how SPV works. it does NOT work by comparing data from random servers.
hero member
Activity: 854
Merit: 1009
JAYCE DESIGNS - http://bit.ly/1tmgIwK
When retrieving TX history for a particular wallet, how many servers does the client connect to? I have heard somewhere that electrum fetches the TX data from 3 random servers and compares them, is this true?

I am asking this in the context of a sybil attack, where a malicious servers give you fake TX data. How likely is this?

Jump to: