The number of reachable nodes has declined further following an “attack” that overloaded the bitcoin network.
Last week, an unknown actor sent a deluge of spam that left bitcoin’s nodes – the clients that store and relay transactions – with upwards of 88,000, or 1GB worth, waiting in their collective memory pool.
As Jay Feldis from hardware node maker BitSeed explained to CoinDesk, many low-spec nodes simply could not keep up:
“Eventually, the transaction backlog fills-up the RAM memory of the nodes. This causes the node computers to slow down dramatically or even freeze-up. If a node slows down too much, the bitcoin network considers it to be ineffective and ‘offline’. My guess is that most of the offline nodes just stop functioning well enough to respond.”
By Thursday, node numbers on tracking service Bitnodes had dropped 10%.
Today, despite the memory pool returning to normal (around 4MB at press time) and Core developer Jeff Garzik implementing a ‘quick fix‘ for operators, the total number of reachable nodes – 5,030 – remains 16% lower than before the ‘attack’.
Over the past year, the bitcoin network has been subject to a number of so-called ‘stress tests‘ which has seen it flooded with many low-value transactions. While some have speculated over the legality of these actions, others have accused those behind them – namely, CoinWallet – of holding the network ransom.
While node operators cannot stop the tests – sending 1 million transactions in bitcoin’s smallest denomination, 5,430 satoshis, could cost a spammer as little as 54 BTC (or roughly $13,000) – there are now a number of proposals that could help mitigate against them.
The ‘quick fix’ Garzik implemented Monday, for example, is an adjustment to each node’s so-called ‘Minrelaytxfee’, which lets it reject transactions below a certain fee.
In the most recent release of Bitcoin Core it had been set to 0.00001 bitcoin per KB by default. This has now been increased by a factor of five to 0.00005 bitcoin per KB.
“Pretty much everyone on the Bitcoin Core team is working on this, mostly by reviewing proposals, with a subset writing code,” Todd told CoinDesk, adding:
“The main obstacle to doing this right has been to come up with a scheme that doesn’t allow attackers to use up network bandwidth at no cost; it took a number of attempts by the Core devs to come up with a scheme that didn’t have vulnerabilities in it.”
Some have been skeptical that nodes’ varying fees will make it difficult to price transactions – a potential problem for services which want to send transactions cheaply, for example smaller wallets.
Node operators, unlike miners, receive no newly minted bitcoins for their contribution to the network. Many are simply hobbyists who choose to run them altruistically – to keep bitcoin big, decentralised, and thus healthy.
Thomas White, who has been running multiple nodes for the past 15 months, told CoinDesk he does so because he already pays for a server which often has capacity going spare.
“As a big bitcoin user, I’m very aware of the importance of maintaining diversity in the network … hosting the bitcoin blockchain there has no negative impacts for other projects on the hardware, while offering benefits to the bitcoin community,” he said.
Although he reported that last week’s sudden uptick in transactions had not affected him, others with limited hard disk space were likely to suffer.
Reddit user ‘aaaaaaaarrrrrgh’ was one of the node operators who took to the social network to express frustration during last week’s inflated mempool. They said:
“I’ve restarted my (XT) node and will try to add monitoring through Bitnodes, but otherwise, if it dies, it dies. I don’t have any actual reason to be running that node, I’m doing it out of goodwill and to support the network. If it gets too annoying, I’ll stop.”
Redditor ‘Introshine’ said they had spent $400 on hosting costs in the last year, adding: “I had to take over 28 nodes offline that could no longer handle the mempool. Also, I ran out of funds the last few months. I’m sorry to say but they’re not coming back.”