Return-Path: Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists.linuxfoundation.org (Postfix) with ESMTP id A3A8CC000E for ; Tue, 22 Jun 2021 21:28:37 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 8129D60618 for ; Tue, 22 Jun 2021 21:28:37 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -2.102 X-Spam-Level: X-Spam-Status: No, score=-2.102 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: smtp3.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=achow101.com Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ws0edw_nybBZ for ; Tue, 22 Jun 2021 21:28:35 +0000 (UTC) X-Greylist: delayed 00:05:46 by SQLgrey-1.8.0 Received: from mail-41103.protonmail.ch (mail-41103.protonmail.ch [185.70.41.103]) by smtp3.osuosl.org (Postfix) with ESMTPS id 0B8706060A for ; Tue, 22 Jun 2021 21:28:34 +0000 (UTC) Received: from mail-0201.mail-europe.com (mail-0201.mail-europe.com [51.77.79.158]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by mail-41103.protonmail.ch (Postfix) with ESMTPS id 4G8fWC22yyz4wyqh for ; Tue, 22 Jun 2021 21:22:47 +0000 (UTC) Authentication-Results: mail-41103.protonmail.ch; dkim=pass (2048-bit key) header.d=achow101.com header.i=@achow101.com header.b="UmVMzQog" Date: Tue, 22 Jun 2021 21:22:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=achow101.com; s=protonmail3; t=1624396956; bh=1hpNI/i3WEWKIFc6zBhd9yZBkIC7DtUZQN8aQwqEFaE=; h=Date:To:From:Reply-To:Subject:From; b=UmVMzQogDUroBkWvjroHlNjU6TWPfJbQQe8heYbvisqrOfuP+VHtr828xVLedtxY7 nvnYhKc5/QPkAR3cmYxuRgaik9NUoktIreznervGYmajwp/GtwiPCFmKUJ//B4qtlz tyzICsALvXUzOJdAT9BwR0G2TK6jurwG3n4XFH6D641yK6+1DX3vbBN0ZhbOv75nc6 sURZLiDasZuh/T7pT7REznLTX+00ECZ7t5P8MdxSWNYrlnHHZHT9KRx3bAb02Fl9Vo wixcauHLxMY9f5PN2quz6PDmspMWuM/utn8sDuv+eSishXOfwhljNjueFub5PoIBSl cq7q8cfbDSroA== To: Bitcoin Protocol Discussion From: Andrew Chow Reply-To: Andrew Chow Message-ID: <795f917b-3883-1827-f39b-35123b500f36@achow101.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: [bitcoin-dev] Taproot Fields for PSBT 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: Tue, 22 Jun 2021 21:28:37 -0000 Hi All, I would like to propose a BIP which defines new fields for Taproot support in PSBT. The full text is below, and the rendered file can be found at https://github.com/achow101/bips/blob/taproot-psbt/bip-taproot-psbt.mediawi= ki. Andrew Chow ---
 =C2=A0 BIP: taproot-psbt
 =C2=A0 Layer: Applications
 =C2=A0 Title: Taproot Fields for PSBT
 =C2=A0 Author: Andrew Chow 
 =C2=A0 Comments-Summary: No comments yet.
 =C2=A0 Comments-URI:
https://github.com/bitcoin/bips/wiki/Comments:BIP-taproot-psbt
 =C2=A0 Status: draft
 =C2=A0 Type: Standards Track
 =C2=A0 Created: 2021-06-21
 =C2=A0 License: BSD-2-Clause
=3D=3DIntroduction=3D=3D =3D=3D=3DAbstract=3D=3D=3D This document proposes additional fields for BIP 174 PSBTv0 and BIP 370 PSBTv2 that allow for BIP 340/341/342 Taproot data to be included in a PSBT of any version. These will be fields for signatures and scripts that are relevant to the creation of Taproot inputs. =3D=3D=3DCopyright=3D=3D=3D This BIP is licensed under the 2-clause BSD license. =3D=3D=3DMotivation=3D=3D=3D BIPs 340, 341, and 342 specify Taproot which provides a wholly new way to create and spend Bitcoin outputs. The existing PSBT fields are unable to support Taproot due to the new signature algorithm and the method by which scripts are embedded inside of a Taproot output. Therefore new fields must be defined to allow PSBTs to carry the information necessary for signing Taproot inputs. =3D=3DSpecification=3D=3D The new per-input types are defined as follows: {| ! Name ! ! ! Description ! ! Description ! Versions Requiring Inclusion ! Versions Requiring Exclusion ! Versions Allowing Inclusion |- | Taproot Key Spend Signature | PSBT_IN_TAP_KEY_SIG =3D 0x13 | None | No key data '''Why is there no key data for PSBT_IN_TAP_KEY_SIG'''The signature in a key path spend corresponds directly with the pubkey provided in the output script. Thus it is not necessary to provide any metadata that attaches the key path spend signature to a particular pubkey. | | The 64 or 65 byte Schnorr signature for key path spending a Taproot output. | | | 0, 2 |- | Taproot Script Spend Signature | PSBT_IN_TAP_SCRIPT_SIG =3D 0x14 | | The 32 byte X-only public key concatenated with the 32 byte hash of the leaf it is part of. | | The 64 or 65 byte Schnorr signature for this pubkey and leaf combination. | | | 0, 2 |- | Taproot Leaf Script | PSBT_IN_TAP_LEAF_SCRIPT =3D 0x15 | | The control block for this leaf as specified in BIP 341. The control block contains the merkle tree path to this leaf. |