Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 567CBBA9 for ; Wed, 25 Jan 2017 01:22:46 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-yw0-f169.google.com (mail-yw0-f169.google.com [209.85.161.169]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id E3E071D4 for ; Wed, 25 Jan 2017 01:22:45 +0000 (UTC) Received: by mail-yw0-f169.google.com with SMTP id l19so176874108ywc.2 for ; Tue, 24 Jan 2017 17:22:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=UhIfjoJ4rQP0BSDfQkDBYUmlc/H9h2azUr1XetpDO6g=; b=GBhiyE/MLQ0TtajV3LHmFa0r+vUOryoxscpjZDqy3g1spCeuPzFBiva7Vf/txZr003 SLjAmUrsskOkEVBP2FiMgwOAVe9kUfROGyGBIDDC2JxmLRDgIoIf6Bz35ESsKLcPeonk 8EoUgK1uKAHGm/YVes8FEdl/BW71ZUla+OgytU7J/q+t4H5Yi1vRBT7eJMK+KKB92yRz QbLlFJNxcsIX0niMXpgCoNpCXzlEdK0+B5s1+m6O7/LIM3yGUaB7o6AIDRJot1UB9uKQ VWqklANZJR8pbKnbRukh6siqAujYragsooq2L2YKHskvSuDCzec6kwVXwdguT/jax7fa gmRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=UhIfjoJ4rQP0BSDfQkDBYUmlc/H9h2azUr1XetpDO6g=; b=UJxbIpOiJK/uvlDmAxOH4xFNd0w2pyozvUtJX0vO25YoaJIBeT5HX2O0NEtPeLuXzb 2yODFze8BpZpf5qXCiX6IUTwCwfdD9an/nIGaXnShVQU0Cs/wCdm1H210M2+WRVsgVJW ikKiGopoxIjYz0aPiL3EdG2Sg+/PaC94hjDh+MJti4yKqXwumLW4IohsfPXjLgeJKU16 7GPf3ICQZlNlZfbRNKqpa8evHdKD6P7D8pBj9WXS33CtcD+KS9HFi+XTnOrW/FnfAsgG n+5vkXyRmJeW5YiEqEjDnME1dG8+4loije2R9evmbuHNJtxDILWvR1x/Vsj7RXWb3ozm vEqA== X-Gm-Message-State: AIkVDXI7YPhUcWPV9qSnIq+iwHFotOigl8X/IzGV0lWT3tDMUqDgpkzW/hj0ijhORsmeGOIEeZHltQv6Cor8Bg== X-Received: by 10.13.232.83 with SMTP id r80mr33811705ywe.101.1485307364937; Tue, 24 Jan 2017 17:22:44 -0800 (PST) MIME-Version: 1.0 Received: by 10.37.75.67 with HTTP; Tue, 24 Jan 2017 17:22:44 -0800 (PST) Received: by 10.37.75.67 with HTTP; Tue, 24 Jan 2017 17:22:44 -0800 (PST) In-Reply-To: References: From: Natanael Date: Wed, 25 Jan 2017 02:22:44 +0100 Message-ID: To: Bitcoin Dev , Johnson Lau Content-Type: multipart/alternative; boundary=94eb2c084140de94860546e111be X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM autolearn=no version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: Re: [bitcoin-dev] Anti-transaction replay in a hardfork X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jan 2017 01:22:46 -0000 --94eb2c084140de94860546e111be Content-Type: text/plain; charset=UTF-8 Den 24 jan. 2017 15:33 skrev "Johnson Lau via bitcoin-dev" < bitcoin-dev@lists.linuxfoundation.org>: B. For transactions created before this proposal is made, they are not protected from anti-replay. The new fork has to accept these transactions, as there is no guarantee that the existing fork would survive nor maintain any value. People made time-locked transactions in anticipation that they would be accepted later. In order to maximise the value of such transactions, the only way is to make them accepted by any potential hardforks. This can be fixed. Make old-format transactions valid *only when paired with a fork-only follow-up transaction* which is spending at least one (or all) of the outputs of the old-format transaction. (Yes, I know this introduces new statefulness into the block validation logic. Unfortunately it is necessary for maximal fork safety. It can be disabled at a later time if ever deemed no longer necessary.) Meanwhile, the old network SHOULD soft-fork in an identical rule with a follow-up transaction format incompatible with the fork. This means that old transactions can not be replayed across forks/networks, because they're not valid when stand-alone. It also means that all wallet clients either needs to be updated OR paired with software that intercepts generated transactions, and automatically generates the correct follow-up transaction for it (old network only). The rules should be that old-format transactions can't reference new-format transactions, even if only a softfork change differ between the formats. This prevents an unnecessary amount of transactions pairs generated by old wallets. Thus they can spend old outputs, but not spend new ones. --94eb2c084140de94860546e111be Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

=

Den 24 jan. 2017 15:33 skrev "Johnson Lau via bitcoin-dev" <= bitcoin-dev@lists.= linuxfoundation.org>:


B= . For transactions created before this proposal is made, they are not prote= cted from anti-replay. The new fork has to accept these transactions, as th= ere is no guarantee that the existing fork would survive nor maintain any v= alue. People made time-locked transactions in anticipation that they would = be accepted later. In order to maximise the value of such transactions, the= only way is to make them accepted by any potential hardforks.

This can be fixed.=C2=A0

Make old-format transactions valid *only when paired with a fork-onl= y follow-up transaction* which is spending at least one (or all) of the out= puts of the old-format transaction.=C2=A0

=
(Yes, I know this introduces new statefulness into the bl= ock validation logic. Unfortunately it is necessary for maximal fork safety= . It can be disabled at a later time if ever deemed no longer necessary.)

Meanwhile, the old networ= k SHOULD soft-fork in an identical rule with a follow-up transaction format= incompatible with the fork.=C2=A0

This means that old transactions can not be replayed across fork= s/networks, because they're not valid when stand-alone. It also means t= hat all wallet clients either needs to be updated OR paired with software t= hat intercepts generated transactions, and automatically generates the corr= ect follow-up transaction for it (old network only).=C2=A0

The rules should be that old-format tran= sactions can't reference new-format transactions, even if only a softfo= rk change differ between the formats. This prevents an unnecessary amount o= f transactions pairs generated by old wallets. Thus they can spend old outp= uts, but not spend new ones.=C2=A0


--94eb2c084140de94860546e111be--