Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1R8Isy-0006jR-9r for bitcoin-development@lists.sourceforge.net; Mon, 26 Sep 2011 21:38:48 +0000 Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of gmail.com designates 209.85.161.47 as permitted sender) client-ip=209.85.161.47; envelope-from=gavinandresen@gmail.com; helo=mail-fx0-f47.google.com; Received: from mail-fx0-f47.google.com ([209.85.161.47]) by sog-mx-3.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-MD5:128) (Exim 4.76) id 1R8Isx-00046e-EM for bitcoin-development@lists.sourceforge.net; Mon, 26 Sep 2011 21:38:48 +0000 Received: by fxi1 with SMTP id 1so9035507fxi.34 for ; Mon, 26 Sep 2011 14:38:41 -0700 (PDT) MIME-Version: 1.0 Received: by 10.223.55.136 with SMTP id u8mr8374004fag.46.1317073121080; Mon, 26 Sep 2011 14:38:41 -0700 (PDT) Received: by 10.152.25.105 with HTTP; Mon, 26 Sep 2011 14:38:41 -0700 (PDT) In-Reply-To: <201109261655.59768.luke@dashjr.org> References: <201109261517.11245.luke@dashjr.org> <201109261655.59768.luke@dashjr.org> Date: Mon, 26 Sep 2011 17:38:41 -0400 Message-ID: From: Gavin Andresen To: Luke-Jr Content-Type: text/plain; charset=ISO-8859-1 X-Spam-Score: -1.6 (-) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (gavinandresen[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.0 AWL AWL: From: address is in the auto white-list X-Headers-End: 1R8Isx-00046e-EM Cc: bitcoin-development@lists.sourceforge.net Subject: Re: [Bitcoin-development] Newly introduced DoS X-BeenThere: bitcoin-development@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Sep 2011 21:38:48 -0000 > The first one I was referring to is a *transaction* with "non-standard" sig op > count, which is AFAIK allowed in blocks, just not accepted by the mainline > rules. I sit corrected. The context is: // Checking ECDSA signatures is a CPU bottleneck, so to avoid denial-of-service // attacks disallow transactions with more than one SigOp per 34 bytes. // 34 bytes because a TxOut is: // 20-byte address + 8 byte bitcoin amount + 5 bytes of ops + 1 byte script length if (GetSigOpCount() > nSize / 34 || nSize < 100) return DoS(10, error("AcceptToMemoryPool() : transaction with out-of-bounds SigOpCount")); I'm having trouble imagining some future world where valid, new-versions-agree-to-relay-transactions have more than one SigOp per 34 bytes; can you give an example? > Maybe the person spending it sees it matured beyond 100 confirmations, and you > only see 99. An attacker could use these things to get nodes to ban each > other. That would imply you're on a blockchain fork of more than 99 blocks with respect to the person spending the transaction, in which case I'd argue you have much bigger problems and it is a good idea for the DoS code to kick in and kick either you or them off the network... -- -- Gavin Andresen