Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 71429AB2 for ; Sat, 4 Jul 2015 15:25:12 +0000 (UTC) X-Greylist: delayed 00:06:33 by SQLgrey-1.7.6 Received: from gproxy1-pub.mail.unifiedlayer.com (gproxy1-pub.mail.unifiedlayer.com [69.89.25.95]) by smtp1.linuxfoundation.org (Postfix) with SMTP id 42242EB for ; Sat, 4 Jul 2015 15:25:08 +0000 (UTC) Received: (qmail 21313 invoked by uid 0); 4 Jul 2015 15:18:28 -0000 Received: from unknown (HELO cmgw4) (10.0.90.85) by gproxy1.mail.unifiedlayer.com with SMTP; 4 Jul 2015 15:18:28 -0000 Received: from just118.justhost.com ([173.254.28.118]) by cmgw4 with id oMBB1q00J2Yu7hZ01MBEs8; Sat, 04 Jul 2015 15:11:17 -0600 X-Authority-Analysis: v=2.1 cv=HpvlRSjS c=1 sm=1 tr=0 a=iBV2HUWW4UcJ4JmVcQBhJA==:117 a=OnSDc3GF++DWnxVSiMnidQ==:17 a=BY8XqHikAAAA:8 a=f5113yIGAAAA:8 a=7ihtSbDYAAAA:8 a=sTMQGeZHAJUA:10 a=i_bFiDLjLC0A:10 a=zOBTXjUuO1YA:10 a=13zjGPudsaEWiJwPRgMA:9 a=WbPmnYzAfxEA:10 a=i4fd7TR6sGcA:10 a=h5x1KQqIZxoA:10 a=ahaM9nHAOhcA:10 a=r77TgQKjGQsHNAKrUKIA:9 a=9iDbn-4jx3cA:10 a=cKsnjEOsciEA:10 a=gZbpxnkM3yUA:10 a=tDp9cNFgViudYeJajswA:9 a=QEXdDO2ut3YA:10 a=UGJNv0VHiVXWHqWk7vMA:9 a=BPJBtwM-UW_9B319mzgA:9 Received: from [209.210.168.146] (port=47407 helo=[10.59.25.251]) by just118.justhost.com with esmtpsa (TLSv1.2:DHE-RSA-AES128-SHA:128) (Exim 4.84) (envelope-from ) id 1ZBPCw-0004hH-DH for bitcoin-dev@lists.linuxfoundation.org; Sat, 04 Jul 2015 09:18:22 -0600 Message-ID: <5597F93B.3000205@openbitcoinprivacyproject.org> Date: Sat, 04 Jul 2015 10:18:19 -0500 From: Justus Ranvier Organization: Open Bitcoin Privacy Project MIME-Version: 1.0 To: bitcoin-dev@lists.linuxfoundation.org References: <20150704054453.GA348@savin.petertodd.org> In-Reply-To: <20150704054453.GA348@savin.petertodd.org> OpenPGP: id=EAD9E623; url=http://pgp.mit.edu/pks/lookup?op=get&search=0x2A5FDA70EAD9E623 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="JJO9hautaD4qeXLlwUTHAojEsPCv8NtpS" X-Identified-User: {7507:just118.justhost.com:stacksn1:openbitcoinprivacyproject.org} {sentby:smtp auth 209.210.168.146 authed with justus@openbitcoinprivacyproject.org} X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: Re: [bitcoin-dev] Fork of invalid blocks due to BIP66 violations X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Development Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Jul 2015 15:25:12 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --JJO9hautaD4qeXLlwUTHAojEsPCv8NtpS Content-Type: multipart/mixed; boundary="------------030000040504090300090201" This is a multi-part message in MIME format. --------------030000040504090300090201 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 07/04/2015 12:44 AM, Peter Todd wrote: > Fact is, SPV means you're trusting other people to check the rules for > you. In this particular case bitcoinj could have - and should have - > checked the BIP66 soft-fork rules, but in general there's no easy > solution to this problem. In general, the situation can be improved if there existed proofs which validating full nodes could broadcast which would tell SPV nodes why the branch it sees with the most proof of work is actually invalid. As far as I can tell, producing such proofs is reasonably straightforward for all cases except the case where a block is invalid because it contains a transaction which references a non-existent output.= The shortest proof that a particular transaction does not exist in the blockchain is the entire blockchain. If each transaction input identified the block containing the referenced outpoint, then the proof of non-existence is either the block in question, or the list of block headers (to show that the block doesn't exist). That's a significant improvement in proof size over the entire blockchain. Proving the non-existence of a particular transaction in a specific block could be made easier for future blocks by requiring transactions to be ordered in the merkle tree by their hashes. Then it would just require a few nodes in the tree to show that the transaction isn't in the place where it should be. --=20 Justus Ranvier Open Bitcoin Privacy Project http://www.openbitcoinprivacyproject.org/ justus@openbitcoinprivacyproject.org E7AD 8215 8497 3673 6D9E 61C4 2A5F DA70 EAD9 E623 --------------030000040504090300090201 Content-Type: application/pgp-keys; name="0xEAD9E623.asc" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0xEAD9E623.asc" -----BEGIN PGP PUBLIC KEY BLOCK----- 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 YXWhC+7m7QNaT9/x3JMLPhTL7QhtQ0AUUaks =3DD4BJ -----END PGP PUBLIC KEY BLOCK----- --------------030000040504090300090201-- --JJO9hautaD4qeXLlwUTHAojEsPCv8NtpS Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIcBAEBAgAGBQJVl/k7AAoJECpf2nDq2eYjhbgP/RDXP6NNdtF8NmIis/KHyMtN VBfUZKYwhgWfCcgSIOM9MQbvHP4IT1PKi2c23lfhBmhTgnSryOlsscRrAJf4oasV oC+OeJ7s6pej5w5OcQKdcHzqRgH0Py5dmnXr27hoU7zv1rJoAiZOeeiCWvyqz3l0 JYRvJNH1Tehjs+LE5BqDmFPHit8oob47IYGzWjkY8VD9txoFEZfmyt63wdh3pUOt fEP3VJR94gDQo8Y2+HSvjBR22coExhe5CkD+ZU3FsK3AJ/1Rcz53PrgmV3JnSJEU S29MLNZQF1W1FilAqhy5ApL/nHqNeYKD2gqCDIVSHSj/trcghNGADs4tOGZnXPFC pztSbINvckXkqYIR9YgVPm1MnqjDZ+OMtD5CLFRXPw0CU+qlQQZD6HFMFRqysB5Q ECHOMv9lOhhDFYlW9FnFaX06Lwahcgc56Lfr/lGxJ1p26aWGqDNdfeptg7y3Uk90 GdtX01vTvrSOejmdaQDOTtIoW2VRewo0LaBiyNVezQ/hYdDuwGOfhPt1YtkBXu4v YK2AamPQrk2EXNA833x1uq3p46kGrFhk46MnoKbQSAX5MKA+wX2DqakW1BsUB2OM i41ChGaYkN97wmWE8gbeCIUsZWubP55tr8ywIckHrIlKqDURh4jjOkVoIwBe8RC6 uuuUH5HlxA3uAWg1/kri =UP66 -----END PGP SIGNATURE----- --JJO9hautaD4qeXLlwUTHAojEsPCv8NtpS--