Bitcoin Forum
November 29, 2022, 04:40:23 AM *
News: Bitcointalk Community Awards
 
   Home   Help Search Login Register More  
Pages: « 1 [2] 3 »  All
  Print  
Author Topic: the bs "Satoshi:0.8.99"  (Read 6261 times)
Peter Todd
Legendary
*
expert
Offline Offline

Activity: 1120
Merit: 1113


View Profile
October 28, 2013, 06:15:42 PM
 #21

It's the same thing. A real bitcoind node isn't useless, so if a useless node claims to be a Satoshi node, we know it's not.

Right, but if we know it's useless, who cares what subver it claims?

Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1669696823
Hero Member
*
Offline Offline

Posts: 1669696823

View Profile Personal Message (Offline)

Ignore
1669696823
Reply with quote  #2

1669696823
Report to moderator
1669696823
Hero Member
*
Offline Offline

Posts: 1669696823

View Profile Personal Message (Offline)

Ignore
1669696823
Reply with quote  #2

1669696823
Report to moderator
1669696823
Hero Member
*
Offline Offline

Posts: 1669696823

View Profile Personal Message (Offline)

Ignore
1669696823
Reply with quote  #2

1669696823
Report to moderator
Peter Todd
Legendary
*
expert
Offline Offline

Activity: 1120
Merit: 1113


View Profile
October 28, 2013, 06:21:15 PM
 #22

FWIW, these are also the same nodes which have been triggering the incorrect time warnings.

We should have fixed the time nonsense in bitcoin long ago.

Despite the imperfections of NTP, there is no excuse for a p2p network (which runs on the same internet as NTP) to fudge the clock.  If I have a good NTP lock, and I connect to a node with a different time, that node is wrong and should be kicked immediately.  If I don't have a good NTP lock and I connect to a node which does, that node should kick me.

I don't know that making whatever this is fix their clocks will cure anything, but it can't hurt, and we should have done it long ago.

Emphasis on if

Unfortunately we can't just ship bitcoind out of the box with NTP support, because then whatever NTP servers we use - even if we use a whole bunch - suddenly become a central point of control of the whole Bitcoin network. This is made even worse by how NTP isn't authenticated.

Maybe we could get away with abusing https and timestamping servers based on the logic they won't want to be proven to be lying, especially the latter, but ultimately we really just want users to set their damn clocks right.

It's ugly and there's no good solution to the problem unfortunately. Satoshi should have picked something more like a six or twelve hour window, rather than two, but widening that window now is a hard-fork even to SPV clients.

kjj
Legendary
*
Offline Offline

Activity: 1302
Merit: 1016



View Profile
October 28, 2013, 07:05:25 PM
Last edit: October 28, 2013, 07:33:23 PM by kjj
 #23

FWIW, these are also the same nodes which have been triggering the incorrect time warnings.

We should have fixed the time nonsense in bitcoin long ago.

Despite the imperfections of NTP, there is no excuse for a p2p network (which runs on the same internet as NTP) to fudge the clock.  If I have a good NTP lock, and I connect to a node with a different time, that node is wrong and should be kicked immediately.  If I don't have a good NTP lock and I connect to a node which does, that node should kick me.

I don't know that making whatever this is fix their clocks will cure anything, but it can't hurt, and we should have done it long ago.

Emphasis on if

Unfortunately we can't just ship bitcoind out of the box with NTP support, because then whatever NTP servers we use - even if we use a whole bunch - suddenly become a central point of control of the whole Bitcoin network. This is made even worse by how NTP isn't authenticated.

Maybe we could get away with abusing https and timestamping servers based on the logic they won't want to be proven to be lying, especially the latter, but ultimately we really just want users to set their damn clocks right.

It's ugly and there's no good solution to the problem unfortunately. Satoshi should have picked something more like a six or twelve hour window, rather than two, but widening that window now is a hard-fork even to SPV clients.

Why would we need to include NTP?  Is there some OS out there with network support that can run a bitcoin node, but not NTP?

No one should be doing serious work on the internet without a solid clock, and money is about as serious as serious gets.

After a while, this really degenerates into the SSL debate.  SSL sucks.  Why does everyone use it?  Because everything else is worse.  NTP sucks.  Why does everyone use it?  Because everything else (including bitcoind's crappy pseudo-NTP) is worse.

We were smart enough to avoid creating our own PKI in favor of the existing system that is good enough.  Why aren't we smart enough to avoid creating our own clock synchronization system?

P.S.  pool.ntp.org.  The Air Force could probably mess with it if they were willing to crash some planes, but I doubt that anyone else could do much damage.  I know we have some timekeeping enthusiasts around.  Is the NTP pool more vulnerable than I'm aware of?

Edit 2013-10-28 19:32: removed an extra "a"

17Np17BSrpnHCZ2pgtiMNnhjnsWJ2TMqq8
I routinely ignore posters with paid advertising in their sigs.  You should too.
gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 3808
Merit: 7198



View Profile
October 28, 2013, 07:13:05 PM
 #24

Uh. NTP is pretty much completely insecure in practice. And if you have free control of time you can inflate bitcoin randomly.  At the same time, nodes don't really need precise time.
Peter Todd
Legendary
*
expert
Offline Offline

Activity: 1120
Merit: 1113


View Profile
October 28, 2013, 07:39:48 PM
 #25

No one should be doing serious work on the internet without a solid clock, and money is about as serious as serious gets.

Bitcoin can handle a clock that's off by roughly an hour off just fine. Clock accuracy just isn't a big deal.

We were smart enough to avoid creating our own PKI in favor of the existing system that is good enough.  Why aren't we smart enough to avoid creating our own clock synchronization system?

We didn't create a clock synchronization system, we created a peer averaging system. Think correctness vs. consensus.

Also, if the PKI in the payment protocol is attacked, all that happens is some users lose their money. If there is a wide-spread NTP attack, especially affecting miners, the whole system can collapse.

kjj
Legendary
*
Offline Offline

Activity: 1302
Merit: 1016



View Profile
October 28, 2013, 07:48:30 PM
 #26

Uh. NTP is pretty much completely insecure in practice. And if you have free control of time you can inflate bitcoin randomly.  At the same time, nodes don't really need precise time.

There is insecure, and then there is insecure.  Are there any real world attacks that don't require the attacker to be in a position where they could do much worse?

Also, note that the time data used by the bitcoin network is also totally unauthenticated and insecure.  Our pseudoclock is adjusted based on the version message timestamp, which is trivial to modify.  We even potentially reject blocks (which contain a somewhat secure timestamp) based partially on data collected from the totally insecure timestamps reported in the unauthenticated version messages.

Hell, for all we know, the bogus timestamps from these nodes are a real world attack test.

I know that bitcoin doesn't need an accurate clock, but every node on the network has an accurate clock available anyway.

17Np17BSrpnHCZ2pgtiMNnhjnsWJ2TMqq8
I routinely ignore posters with paid advertising in their sigs.  You should too.
zvs (OP)
Legendary
*
Offline Offline

Activity: 1680
Merit: 1000


https://web.archive.org/web/*/nogleg.com


View Profile WWW
October 28, 2013, 11:59:00 PM
 #27

oh, re: the stuff I said earlier

Code:
2013-10-28 23:47:36 received block 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa
2013-10-28 23:47:36 Committing 6844 changed transactions to coin database...
2013-10-28 23:47:36 SetBestChain: new best=000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa  height=266620  log2_work=73.28903  tx=26163172  date=2013-10-28 23:47:57 progress=1.000002
2013-10-28 23:47:36 ProcessBlock: ACCEPTED
2013-10-28 23:47:36 getblocks -1 to 0000000000000000000000000000000000000000000000000000000000000000 limit 500
2013-10-28 23:47:36 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:36 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266618 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266618 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266618 to 00000000000000095f2b79ac211d800ca268f58d2429b049d2fd64e68ba8db3c limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:37 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:38 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:38 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:38 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500
2013-10-28 23:47:39 getblocks 266619 to 000000000000000177422a58c0204921623eaff044b88d8a0dc4eeeb1e133cfa limit 500

another nice example, when one checks block 266619

normally you'd just get some getblocks -1 to 0000000000000000000000000000000000000000000000000000000000000000 in there, not all the requests for block 266619 and 266620 (and in some cases 266618, 266619, and 266620)

needs changing on handling of block requests i would think
Cryddit
Legendary
*
Offline Offline

Activity: 924
Merit: 1091


View Profile
October 29, 2013, 05:27:49 PM
 #28

Suggestions on how to do this that won't turn into a game of whack-a-mole?

I think that these nodes are listening to see where transactions originate.  As long as, by listening, they can see where transactions originate, they will continue to listen. The only way to get rid of them is to deprive them of the ability to obtain the information they seek.  They are worth getting rid of because they fail to follow protocol in propagation of tx and block information.  If this defection from protocol becomes widespread it constitutes a DoS attack, wherein nodes are cut off from the network by having their connections clogged with these useless fake clients. 

Obtaining the information they seek relies on the fact that the current client propagates transactions to all connected nodes, including them.   

The only way to get rid of them, therefore, is to quit doing that.  Instead, propagate a new transaction to one, two, or three nodes, regardless of how many are connected.  Propagate a received transaction to nine or ten nodes, regardless of how many are connected. 

That will make it very difficult for these eavesdroppers to tell where new transactions originate.  And hopefully it will deprive their owners of the motivation to continue to keep up this attack.

piotr_n
Legendary
*
Offline Offline

Activity: 2054
Merit: 1292


aka tonikt


View Profile WWW
October 29, 2013, 05:32:02 PM
 #29

You're right @Cryddit - it's a good solution to broadcast your own txs slowly, like each new second you send it to another peer... there is no rush with it anyway.

But I think they might also be spying for mining nodes - and a mining node wants to propagate new blocks as quickly as possible.
So that's a tough problem to solve.

What I do in my client now, I never broadcast locally created txs to nodes that have not sent me any inv.
But when they find out what I do, its easy to circumvent - all they need to do is send me an inv once for awhile.

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
piotr_n
Legendary
*
Offline Offline

Activity: 2054
Merit: 1292


aka tonikt


View Profile WWW
October 30, 2013, 05:07:24 PM
 #30

Did you guys also notice that there is an entire subnet 129.132.230.0/24 doing quite a similar stuff...?

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
RoadTrain
Legendary
*
Offline Offline

Activity: 1386
Merit: 1009


View Profile
November 09, 2013, 02:08:23 AM
 #31

Did you guys also notice that there is an entire subnet 129.132.230.0/24 doing quite a similar stuff...?
By the way, they are considered "hub nodes" by blockchain.info
https://blockchain.info/hub-nodes

Their subver is somewhat different
Code:
{
"addr" : "129.132.230.69:41037",
"services" : "00000001",
"lastsend" : 1383962848,
"lastrecv" : 1383962839,
"bytessent" : 110486,
"bytesrecv" : 74817,
"conntime" : 1383962013,
"version" : 70001,
"subver" : "/BTC-ETHZ:0.8.99/",
"inbound" : true,
"startingheight" : 268607,
"banscore" : 0,
"syncnode" : true
},

What does it have to do with ETH Zurich?

It's interesting because ETHZ had quite a few publications about bitcoin.
deepceleron
Legendary
*
Offline Offline

Activity: 1512
Merit: 1011



View Profile WWW
November 11, 2013, 06:59:49 PM
 #32

Looks like they're mostly hosted at your-server.de

Whoever is doing this, please set your subVer field appropriately. Otherwise it just makes you look like a DoS attacker ....
The same hosting IP space of bitcoincharts/bitcoinwatch...
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1052


Gerald Davis


View Profile
November 11, 2013, 07:08:16 PM
 #33

Jut curious but does bitcoind support IP blacklisting.  Yeah it probably can (and would be better done) at the firewall level but this topic just made me wonder if there is any config option in bitcoind.
disclosure
Newbie
*
Offline Offline

Activity: 38
Merit: 0


View Profile
November 17, 2013, 12:53:16 AM
 #34

My bitcoind is configured to accept max. 32 connections, i.e. maxconnections=32 in bitcoin.conf. Now I am seeing this:

Code:
$ ./bitcoind getpeerinfo | grep BTC-ETHZ | wc -l
23
$ ./bitcoind getpeerinfo | grep 129.132.230 | wc -l
23
$ ./bitcoind getpeerinfo | grep 0.8.99 | wc -l
23

They took 70% of my connections. All from the same network with IP address 129.132.230.*. I thought bitcoind is hardcoded to accept only 1 peer per /16 network??
wtogami
Sr. Member
****
Offline Offline

Activity: 263
Merit: 250



View Profile
November 17, 2013, 01:29:12 AM
 #35

If you are running a bitcoin listening node on Linux, this example iptables rule would help to limit the number of incoming connections coming from the same IPv4 subnet.

Code:
# Reject TCP connection if quantity of connections per class C network is exceeded.
# "--connlimit-above 2" is default in this example.  The limit can be increased if
# your server has sufficient RAM to handle an increased bitcoin.conf maxconnections=
# parameter much higher than the default 150 simultaneous connections.
-A INPUT -p tcp --syn --dport 8333 -m connlimit --connlimit-above 2 --connlimit-mask 24 -j REJECT --reject-with tcp-reset
# Allow TCP connection if not rejected by the previous limit
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8333 -j ACCEPT

# This TCP connection limit per source class C subnet is similar to a Slowloris
# HTTP DoS mitigation measure, except it is safe to have a very small limit.
# It is non-fatal for legitimate clients to fail to connect because there exist
# plenty of other legitimate nodes to choose from that offer the same service.
# It is more important to allow random, distributed clients to connect with a 90%
# success rate than it is to that ensure 100% of clients are able to connect.

If you appreciate my work please consider making a small donation.
BTC:  1LkYiL3RaouKXTUhGcE84XLece31JjnLc3      LTC:  LYtrtYZsVSn5ymhPepcJMo4HnBeeXXVKW9
GPG: AEC1884398647C47413C1C3FB1179EB7347DC10D
maaku
Legendary
*
expert
Offline Offline

Activity: 905
Merit: 1008


View Profile
November 17, 2013, 01:31:50 AM
 #36

This subnet is owned by a Swiss academic institution:

http://whois.domaintools.com/129.132.230.0

If anyone knows who this group is, can they please make them aware of the difficulties they are causing?

I'm an independent developer working on bitcoin-core, making my living off community donations.
If you like my work, please consider donating yourself: 13snZ4ZyCzaL7358SmgvHGC9AxskqumNxP
disclosure
Newbie
*
Offline Offline

Activity: 38
Merit: 0


View Profile
November 17, 2013, 07:02:57 AM
 #37

If you are running a bitcoin listening node on Linux, this example iptables rule would help to limit the number of incoming connections coming from the same IPv4 subnet.

So the bitcoind built-in /16 restriction (https://github.com/bitcoin/bitcoin/blob/master/src/net.cpp#L1331) is not working?
wtogami
Sr. Member
****
Offline Offline

Activity: 263
Merit: 250



View Profile
November 17, 2013, 07:07:12 AM
 #38

If you are running a bitcoin listening node on Linux, this example iptables rule would help to limit the number of incoming connections coming from the same IPv4 subnet.

So the bitcoind built-in /16 restriction (https://github.com/bitcoin/bitcoin/blob/master/src/net.cpp#L1331) is not working?

That is outbound, there is no limit for inbound.   One IP address could theoretically fill all incoming listening slots of the entire world.  That is unless they used something like my iptables rule above.  Some of the devs indicated that they would welcome an option for this kind of behavior in bitcoind itself.

If you appreciate my work please consider making a small donation.
BTC:  1LkYiL3RaouKXTUhGcE84XLece31JjnLc3      LTC:  LYtrtYZsVSn5ymhPepcJMo4HnBeeXXVKW9
GPG: AEC1884398647C47413C1C3FB1179EB7347DC10D
piotr_n
Legendary
*
Offline Offline

Activity: 2054
Merit: 1292


aka tonikt


View Profile WWW
November 17, 2013, 11:00:34 AM
 #39

They don't act like the spying nodes from the OP, though - they do send invs, sometimes even very fresh ones.





source: https://blockchain.info/pools

It might be a miner's solution to speed up a propagation time of the blocks it mines.

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
disclosure
Newbie
*
Offline Offline

Activity: 38
Merit: 0


View Profile
November 17, 2013, 11:02:32 AM
 #40

If you are running a bitcoin listening node on Linux, this example iptables rule would help to limit the number of incoming connections coming from the same IPv4 subnet.

So the bitcoind built-in /16 restriction (https://github.com/bitcoin/bitcoin/blob/master/src/net.cpp#L1331) is not working?

That is outbound, there is no limit for inbound.   One IP address could theoretically fill all incoming listening slots of the entire world.  That is unless they used something like my iptables rule above.  Some of the devs indicated that they would welcome an option for this kind of behavior in bitcoind itself.

I would think being listed in the peer list (getpeerinfo) means the bitcoind has successfully exchanged packets/handshaked with its peers. Even if the restriction is outbound (outgoing packets), it still does not make sense for the multiple nodes from the same /16 to be able to establish connection with my bitcoind.
Pages: « 1 [2] 3 »  All
  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!