Bitcoin Forum
June 17, 2024, 10:59:04 PM *
News: Voting for pizza day contest
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: How many servers does the electrum client connect to?  (Read 930 times)
RealBitcoin (OP)
Hero Member
*****
Offline Offline

Activity: 854
Merit: 1009


JAYCE DESIGNS - http://bit.ly/1tmgIwK


View Profile
October 19, 2016, 09:23:06 PM
Last edit: October 26, 2016, 03:38:35 AM by RealBitcoin
 #1

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?


ThomasV
Moderator
Legendary
*
Offline Offline

Activity: 1896
Merit: 1353



View Profile WWW
October 20, 2016, 05:14:28 PM
 #2

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.

Electrum: the convenience of a web wallet, without the risks
DarkStar_
Legendary
*
Offline Offline

Activity: 2772
Merit: 3282


View Profile WWW
October 21, 2016, 02:03:07 AM
 #3

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.



taking a break - expect delayed responses
RealBitcoin (OP)
Hero Member
*****
Offline Offline

Activity: 854
Merit: 1009


JAYCE DESIGNS - http://bit.ly/1tmgIwK


View Profile
October 22, 2016, 06:57:28 PM
 #4

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?)

ThomasV
Moderator
Legendary
*
Offline Offline

Activity: 1896
Merit: 1353



View Profile WWW
October 23, 2016, 02:54:32 PM
 #5

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.

Electrum: the convenience of a web wallet, without the risks
ThomasV
Moderator
Legendary
*
Offline Offline

Activity: 1896
Merit: 1353



View Profile WWW
October 23, 2016, 03:04:26 PM
 #6

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.

Electrum: the convenience of a web wallet, without the risks
RealBitcoin (OP)
Hero Member
*****
Offline Offline

Activity: 854
Merit: 1009


JAYCE DESIGNS - http://bit.ly/1tmgIwK


View Profile
October 24, 2016, 03:17:25 AM
 #7

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.

RealBitcoin (OP)
Hero Member
*****
Offline Offline

Activity: 854
Merit: 1009


JAYCE DESIGNS - http://bit.ly/1tmgIwK


View Profile
October 26, 2016, 03:41:16 AM
 #8

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?

RealBitcoin (OP)
Hero Member
*****
Offline Offline

Activity: 854
Merit: 1009


JAYCE DESIGNS - http://bit.ly/1tmgIwK


View Profile
October 26, 2016, 07:01:57 AM
 #9

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.

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!