Return-Path: Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by lists.linuxfoundation.org (Postfix) with ESMTP id 719ABC016F for ; Mon, 8 Jun 2020 06:02:52 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 5F9F28679A for ; Mon, 8 Jun 2020 06:02:52 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ca7JNQO6GmGe for ; Mon, 8 Jun 2020 06:02:51 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail.ruggedbytes.com (mail.ruggedbytes.com [88.99.30.248]) by whitealder.osuosl.org (Postfix) with ESMTPS id 938508669A for ; Mon, 8 Jun 2020 06:02:51 +0000 (UTC) Received: from mail.ruggedbytes.com (localhost [127.0.0.1]) by mail.ruggedbytes.com (Postfix) with ESMTPS id B8B782600237; Mon, 8 Jun 2020 06:02:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=simplexum.com; s=mail; t=1591596168; bh=NC41ySfhH/FQxH+ipewuO2U6vX6Si+K+QtBiilA9xAs=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=g50+J5NJs0bXNuKrBXBU0YCyhxV8a1KQlYBYtbxMz4cJwhrC2rkNr5FFvNWxwVnre Q+h3MVJlLy6PhVFsvBXRJsH2YGTy0q5MZPjE6P9hJkk2ex6Nc+69tE73oy7SZe/QXA 09tBzNKr1qf2Ybh9ri0tHwJirwGQyUYJ8DT3PtPs= Date: Mon, 8 Jun 2020 11:05:45 +0500 From: Dmitry Petukhov To: Jeremy via bitcoin-dev Message-ID: <20200608110545.078f8e81@simplexum.com> In-Reply-To: References: <1cQUGt1pX0_lWPJm-tFDr9fQCvrPd5vqmCorgN89jy7gUF0m9wsouUosrFm1eal3jO9oB1BvMtORGE2htLdFjyDD5lno_QkXCFn971LQNZY=@protonmail.com> Organization: simplexum.com MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Mailman-Approved-At: Mon, 08 Jun 2020 06:48:03 +0000 Subject: Re: [bitcoin-dev] BIP OP_CHECKTEMPLATEVERIFY X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2020 06:02:52 -0000 =D0=92 Sun, 7 Jun 2020 15:45:16 -0700 Jeremy via bitcoin-dev wrote: > What I think we'll eventually land on is a way of doing a tx > that contributes fee to another tx chain as a passive observer to > them. While this breaks one abstraction around how dependencies > between transactions are processed, it also could help resolve some > really difficult challenges we face with application-DoS (pinning and > other attacks) in the mempool beyond CTV. I have a napkin design for > how this could work, but nothing quite ready to share yet. I had an idea of 'Pay for neighbor' transaction where a transaction that is not directly a child of some other transaction can specify that it wants to pay the fee for that other transaction(s). It can become like 'ghost child' transaction for them, in what it cannot be mined unless its 'ghost parents' are confirmed, too. It will be like CPFP, but without direct dependency via inputs. Such 'PFN' transaction would not spend any coins beside what it specifies in its own inputs, of course. The idea required a hardfork at first, but Anthony Towns suggested a way to make it into a soft fork (past-taproot) by putting the txids of 'ghost parents' into taproot annex. PFN transaction would still be valid if some of 'ghost parents' are already confirmed, so the miners could have more fees than strictly necessary. But this is the same as with CPFP. Looking at the mempool code, it seems that only a way how parent/child transactions relationships are established will need to be adjusted to account for this 'ghost relationships', and once established, other logic will work as with CPFP. There could be complications regarding transaction package size. But I cannot claim that I understand that code enough to say something about this with certainty.