Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1S36AI-0002TP-Gv for bitcoin-development@lists.sourceforge.net; Thu, 01 Mar 2012 13:35:26 +0000 Received: from mail-bk0-f47.google.com ([209.85.214.47]) by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1S36AE-0002Nv-IV for bitcoin-development@lists.sourceforge.net; Thu, 01 Mar 2012 13:35:26 +0000 Received: by bkcjg15 with SMTP id jg15so643018bkc.34 for ; Thu, 01 Mar 2012 05:35:16 -0800 (PST) Received-SPF: pass (google.com: domain of support@pi.uk.com designates 10.204.151.86 as permitted sender) client-ip=10.204.151.86; Authentication-Results: mr.google.com; spf=pass (google.com: domain of support@pi.uk.com designates 10.204.151.86 as permitted sender) smtp.mail=support@pi.uk.com Received: from mr.google.com ([10.204.151.86]) by 10.204.151.86 with SMTP id b22mr2747244bkw.81.1330608916214 (num_hops = 1); Thu, 01 Mar 2012 05:35:16 -0800 (PST) MIME-Version: 1.0 Received: by 10.204.151.86 with SMTP id b22mr2152394bkw.81.1330607343369; Thu, 01 Mar 2012 05:09:03 -0800 (PST) Received: by 10.204.51.18 with HTTP; Thu, 1 Mar 2012 05:09:02 -0800 (PST) X-Originating-IP: [81.187.238.52] In-Reply-To: References: <20120229232029.GA6073@vps7135.xlshosting.net> <20120229234558.GA6573@vps7135.xlshosting.net> Date: Thu, 1 Mar 2012 13:09:02 +0000 Message-ID: From: Ben Reeves To: Bitcoin Dev Content-Type: text/plain; charset=ISO-8859-1 X-Gm-Message-State: ALoCoQlxTopc1bThrbnHZF7U9LBHUTKCYZEdG1ZIU8tlinyJvCwRGsD/KC7OP98+b8v9mmqfsjdc X-Spam-Score: -1.4 (-) 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.1 AWL AWL: From: address is in the auto white-list X-Headers-End: 1S36AE-0002Nv-IV Subject: Re: [Bitcoin-development] Duplicate transactions vulnerability 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: Thu, 01 Mar 2012 13:35:26 -0000 One more thing to add. The implementation in the reference patch fixes the blockchain forking issue however by still allowing spent coinbases to be disconnected patched clients are still vulnerable to blockchain corruption. While not an immediate issue it would mean LoadBlockIndex() would error on restart and could cause problems for new clients during the initial blockchain download. Is there a reason not to disallow duplicate coinbases entirely? On Thu, Mar 1, 2012 at 10:15 AM, Ben Reeves wrote: > Yes you are right. Any fix in DisconnectBlock() has the same potential issues. > > I think the exchanges and major merchants need to be made aware that > they must also upgrade. Maybe bundle both BIP16 and BIP30 in 0.6 and > issue an advisory stating that this is a mandatory upgrade for > everyone. > > It also might be prudent to have a blockchain repair script ready, > which checks the db for missing coinbase transactions and downloads > them from another peer or block explorer if necessary. > > Thank You, > Ben Reeves > www.blockchain.info > > On Wed, Feb 29, 2012 at 11:45 PM, Pieter Wuille wrote: >> On Wed, Feb 29, 2012 at 11:00:42PM +0000, Ben Reeves wrote: >>> I'm not sure. What if they use a coinbase of a block that has already matured? >> >> Indeed; duplicate an old coinbase, fork chain without dupe, and spend the old coinbase. >> The 100-blocks maturity will not help against is. >> >> I'm not sure how you intend to fix DisconnectBlock() to prevent this in a backward- >> compatible way, though. >> >> -- >> Pieter