Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193] helo=mx.sourceforge.net) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1RYbVg-0000V3-Bv for bitcoin-development@lists.sourceforge.net; Thu, 08 Dec 2011 10:47:28 +0000 Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of gmail.com designates 74.125.83.47 as permitted sender) client-ip=74.125.83.47; envelope-from=andyparkins@gmail.com; helo=mail-ee0-f47.google.com; Received: from mail-ee0-f47.google.com ([74.125.83.47]) by sog-mx-3.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1RYbVc-0004gS-JV for bitcoin-development@lists.sourceforge.net; Thu, 08 Dec 2011 10:47:28 +0000 Received: by eekb15 with SMTP id b15so1313567eek.34 for ; Thu, 08 Dec 2011 02:47:18 -0800 (PST) Received: by 10.14.9.145 with SMTP id 17mr199615eet.26.1323341238367; Thu, 08 Dec 2011 02:47:18 -0800 (PST) Received: from dvr.localnet (mail.360visiontechnology.com. [92.42.121.178]) by mx.google.com with ESMTPS id 17sm16469312eej.3.2011.12.08.02.47.16 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 08 Dec 2011 02:47:16 -0800 (PST) From: Andy Parkins To: bitcoin-development@lists.sourceforge.net Date: Thu, 8 Dec 2011 10:47:08 +0000 User-Agent: KMail/1.13.6 (Linux/3.0.0-1-686-pae; KDE/4.6.3; i686; ; ) MIME-Version: 1.0 Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <201112081047.09082.andyparkins@gmail.com> 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 (andyparkins[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 X-Headers-End: 1RYbVc-0004gS-JV Subject: [Bitcoin-development] Lowering confirmation requirements and preventing double spends 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, 08 Dec 2011 10:47:28 -0000 Hello, Another of my crazy ideas: When a transaction is first broadcast, it should include the hash of the block it wants to appear after, let's call it's basis block. That block can be anything the claimer wants; but it allows the miners to add this condition: the transactions outputs a new transaction claims must be before the new transaction's basis block. Consider this block chain fork: * -- * -- F -- * -- 1 -- 4 -- 5 \ * -- 2 -- 3 Let's say in block 2; I transfer coins from address A to Mt.Gox (or any other pooled-account online wallet). In block 1 I transfer credit from address A to address B. In block 3 I transfer credit from Mt.Gox's pool to address B. The chain at 3 races out first, but eventually the chain at 5 becomes "the one". If Mt.Gox are foolish enough to broadcast my withdrawl in 3; there is nothing to stop that same withdrawl making it into 4 (since it comes from a pooled fund address). Therefore Mt.Gox can't allow such a fast turnaround and must wait for six confirmations of 2 before allowing use of the funds. That is an inconvenience for all the honest users. With my proposed change, the Mt.Gox transaction broadcast at 3 would include "block 2" as its basis block. Therefore that transaction could never make it into block 4, as no miner will include a transaction based on block 2 in the block 4 chain. Mt.Gox is probably not a good example, as they have problems with fiat to deal with too. However, for other online wallet accounts it would allow faster acceptance of received funds, since there is no danger of loss should an attacker arrange a reorganisation. This basis block would be optional (implied by the input transactions if it isn't present); and would only need storing for the pending transactions, so no incompatible change is needed to the block format. Andy -- Dr Andy Parkins andyparkins@gmail.com