<oembed><type>rich</type><version>1.0</version><author_name>npub1m230cem2yh3mtdzkg32qhj73uytgkyg5ylxsu083n3tpjnajxx4qqa2np2</author_name><author_url>https://nostr.ae/npub1m230cem2yh3mtdzkg32qhj73uytgkyg5ylxsu083n3tpjnajxx4qqa2np2</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-08-21&#xA;📝 Original message:On Sat, Aug 22, 2015 at 01:08:13AM +0000, Matt Corallo wrote:&#xA;&gt; &gt; Well actually, we can reference the DoS attacks that Bitcoin XT nodes&#xA;&gt; &gt; are undergoing right now - part of the attack is repeated Bloom filter&#xA;&gt; &gt; requests to soak up disk IO bandwidth. I&#39;ve CC&#39;d Gavin and Mike - as far&#xA;&gt; &gt; as I know they haven&#39;t published details of those attacks - a write-up&#xA;&gt; &gt; would be very helpful.&#xA;&gt; &gt; &#xA;&gt; &gt; While so far those are being directed only at XT nodes, obviously this&#xA;&gt; &gt; is a potential issue for Core nodes as well. Like I mentioned last time&#xA;&gt; &gt; around, it&#39;s critical that miners aren&#39;t affected by these attacks -&#xA;&gt; &gt; nodes simply serving SPV wallet clients are much less latency sensitive,&#xA;&gt; &gt; so a good DoS attack mitigation strategy would be to have the two&#xA;&gt; &gt; classes of nodes out there &#34;in the wild&#34;&#xA;&gt; &#xA;&gt; Ehh, I was going more for the oldest mention.&#xA;&#xA;One of the oldest mentions is the to-be-published-later portion of my&#xA;Litecoin Audit report; attached.&#xA;&#xA;(see http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2013-July/003044.html&#xA;for the original report/timestamping/verification)&#xA;&#xA;-- &#xA;&#39;peter&#39;[:-1]@petertodd.org&#xA;00000000000000000939524874a2896a46ea96bf59776ed869ccff95679cb087&#xA;-------------- next part --------------&#xA;Security vulnerabilities related to the Litecoin v0.8.3.6 release&#xA;=================================================================&#xA;&#xA;Nonce: c0854ae01b1ed8526af3bb6fb82550ff&#xA;Date:  Jul 29 2013&#xA;&#xA;To be released in full on January 29, 2014 to the public.&#xA;&#xA;&#xA;LevelDB&#xA;=======&#xA;&#xA;Something not well appreciated outside of the Bitcoin developers is that the&#xA;temporary limits on block size and complexity introduced in response to the&#xA;fork, automatically removed on May 15th, were simply voluntary measures to&#xA;protect against accidental triggering of the fork. The measures did not protect&#xA;against malicious attempts to trigger the the fork.&#xA;&#xA;Litecoin is no different. Because of that I strongly recomend that miners be&#xA;encouraged to transition to v0.8.3.6 as soon as possible to ensure as much&#xA;hashing power as possible is consolidated on one version. Transitioning for&#xA;users/merchants is also important, however with sufficient mining power on the&#xA;new version it would be difficult to pull off a double-spend attack against an&#xA;older version simply because it would take so long to get the required number&#xA;of confirmations.&#xA;&#xA;The development team may want to clarify this point to the Litecoin community&#xA;and encourage users to be suspicious if it takes an especially long time to get&#xA;confirmations. Merchants with automatic systems should use fail-safes triggered&#xA;by unusually long confirmation times, and as always ensure that total possible&#xA;losses are limited. It would be good if popular &#34;blockchain information&#34; sites&#xA;upgraded to v0.8.3.6 along with miners to give users accurate information on&#xA;the state of the blockchain. In any case users and merchants should take this&#xA;advice in general regardless of specific threats.&#xA;&#xA;I would not be surprised to see someone deliberately attempt to fork Litecoin&#xA;by exploiting the issue; there is a lot of hostility torwards and within the&#xA;alt-coins.&#xA;&#xA;&#xA;SPV and network-wide DoS attacks&#xA;================================&#xA;&#xA;Bitcoin is quite vulnerable currently to network-wide DoS attacks due to the&#xA;maximum connections limits; we do not have any form of filtering on incoming&#xA;connections so an attack can be made simply by making sufficient connections to&#xA;all nodes that they hit that incoming connections limit. This is public&#xA;knowledge, as is the suggestion to stop the attack by having concepts of peer&#xA;&#34;usefullness&#34; so that &#34;useless&#34; peers can be dropped. Of course SPV nodes are&#xA;badly impacted by such measures.&#xA;&#xA;What isn&#39;t as well-known publicly is that Litecoin will make this attack&#xA;significantly less costly to the attacker in v0.8.3.6 by adding support for&#xA;bloom filters. That support allows the attacker to reduce their bandwidth&#xA;consumption to a minimum, making the attack easier to pull off on a wide scale.&#xA;&#xA;The Bitcoin team is aware of the issue. Our plans in the event of an attack are&#xA;to ensure that large pools and merchants connect to each other via a private&#xA;&#34;darknet&#34; while fixes are implemented. These plans are also useful in the event&#xA;of an attack exploiting the vulnerability discussed below.&#xA;&#xA;&#xA;Bloom filters and disk IO&#xA;=========================&#xA;&#xA;However it gets worse: there is nothing limiting peers from requesting blocks.&#xA;Without bloom filters bandwidth is a natural limit, however with bloom filters&#xA;a malicious peer can simply set the filter to match almost nothing and simply&#xA;submit getdata messages to the target requesting all blocks. The target will do&#xA;an extremely large amount of disk IO at almost no cost to the attacker.&#xA;&#xA;To quote one core developer in a private conversation regarding bloom filtering&#xA;&#34;I think we didn&#39;t think hard enough before implementing this&#34;&#xA;&#xA;A good first measure would be to assign a service bit to advertise bloom filter&#xA;support:&#xA;&#xA; /** nServices flags */&#xA; enum&#xA; {&#xA;     NODE_NETWORK = (1 &lt;&lt; 0),&#xA;+    NODE_BLOOM_FILTER = (1 &lt;&lt; 1),&#xA; };&#xA;&#xA;Secondly add a command line switch that allows bloom filtering to be turned on&#xA;or off entirely. I would suggest that the next version of Litecoin be released&#xA;soon and have bloom filters *disabled* by default unless the user specifically&#xA;turns them on.&#xA;&#xA;There is a *very* good chance of an attack being launched targetting this&#xA;vulnerability by people using it as a way to show their opinion of Mike Hearn;&#xA;lots of people strongly dislike him for what they regard as very poor judgement&#xA;on security and scalability issues and would be happy to show that a design he&#xA;promoted is flawed.&#xA;&#xA;Disabling bloom filering does of course cause problems for SPV clients, however&#xA;in the Litecoin realm such clients are non-existent. In the long run DNS seeds&#xA;should allow for the specification of desired service bits and rate limiting of&#xA;getdata operations implemented. However given that attacks are likely imminent&#xA;I strongly suggest a quick solution.&#xA;&#xA;Bitcoin should have done bloom filtering as a service bit on day one; not doing&#xA;so was a mistake.&#xA;&#xA;The Bitcoin team is aware of this issue. Please contact me to discuss the&#xA;release process for a fix; I will also be happy to review it. Unfortunately due&#xA;to the impact on SPV clients this issue is political as well as technical on&#xA;the Bitcoin side of things.&#xA;&#xA;&#xA;CHECKMULTISIG dummy value&#xA;=========================&#xA;&#xA;The AreInputsStandard() test does not check the contents of the dummy value&#xA;required to spend a BIP11 CHECKMULTISIG scriptPubKey; anything that be put in&#xA;that space as a way to get data into the blockchain. Less well appreciated is&#xA;that because scriptSigs are unsigned any node, even a non-miner, can change the&#xA;txid of a CHECKMULTISIG transaction by modifying the dummy value.&#xA;&#xA;This issue will probably be fixed in Bitcoin soon, not to mention revealed&#xA;publically; I&#39;m only including it for the sake of completeness.&#xA;-------------- next part --------------&#xA;A non-text attachment was scrubbed...&#xA;Name: signature.asc&#xA;Type: application/pgp-signature&#xA;Size: 650 bytes&#xA;Desc: Digital signature&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150821/d43573b7/attachment.sig&gt;</html></oembed>