Return-Path: Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by lists.linuxfoundation.org (Postfix) with ESMTP id 51C12C013A for ; Wed, 6 Jan 2021 23:26:45 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 4E3A186DE6 for ; Wed, 6 Jan 2021 23:26:45 +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 a3TNuHWf+438 for ; Wed, 6 Jan 2021 23:26:44 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from ozlabs.org (bilbo.ozlabs.org [203.11.71.1]) by whitealder.osuosl.org (Postfix) with ESMTPS id DA3C286DA0 for ; Wed, 6 Jan 2021 23:26:43 +0000 (UTC) Received: by ozlabs.org (Postfix, from userid 1011) id 4DB5995PCTz9sW0; Thu, 7 Jan 2021 10:26:37 +1100 (AEDT) From: Rusty Russell To: Andrew Chow , Bitcoin Protocol Discussion In-Reply-To: <5a4697cb-b9cb-b925-e78f-d5b53f025704@achow101.com> References: <1dd8c285-e3f4-4f03-d608-103a5026146d@achow101.com> <5a4697cb-b9cb-b925-e78f-d5b53f025704@achow101.com> Date: Thu, 07 Jan 2021 09:56:25 +1030 Message-ID: <87wnwpabq6.fsf@rustcorp.com.au> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [bitcoin-dev] New PSBT version proposal 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: Wed, 06 Jan 2021 23:26:45 -0000 Hi Andrew et al, Very excited to see this progress; thanks for doing all the work! Sorry for the delayed feedback, I didn't get to this before the break. > Additionally, I would like to add a new global field: > * PSBT_GLOBAL_UNDER_CONSTRUCTION =3D 0x05 > =C2=A0 * Key: empty > =C2=A0 * Value: A single byte as a boolean. 0 for False, 1 for True. All= =20 > other values ore prohibited. Must be omitted for PSBTv0, may be omitted=20 > in PSBTv2. > > PSBT_GLOBAL_UNDER_CONSTRUCTION is used to signal whether inputs and=20 > outputs can be added to the PSBT. This flag may be set to True when=20 > inputs and outputs are being updated, signed, and finalized. However=20 > care must be taken when there are existing signatures. If this field is=20 > omitted or set to False, no further inputs and outputs may be added to=20 > the PSBT. I wonder if this can be flagged simply by omitting the (AFAICT redundant) PSBT_GLOBAL_INPUT_COUNT and PSBT_GLOBAL_OUTPUT_COUNT? What are the purposes of those fields? For our uses, there would be no signatures at this stage; it's simply a subdivision of the Creator role. This role would be terminated by removing the under-construction marker. For this, it could be clear that such an under-construction PSBT SHOULD NOT be signed. Otherwise, if an explicit marker is required, I would omit the value and simply use its existence to as a flag. Having two "false" values is simply asking for trouble. Thanks! Rusty. PS. Perhaps we should change the name to PBT (Partial Bitcoin Transaction) now, since it's more than just signing...