public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Brandon Black <freedom@reardencode•com>
To: SeedHammer Team <team@seedhammer•com>,
	Bitcoin Protocol Discussion
	<bitcoin-dev@lists•linuxfoundation.org>
Subject: Re: [bitcoin-dev] A proposal for a "PSBT for descriptors" format
Date: Thu, 30 Nov 2023 15:12:05 -0800	[thread overview]
Message-ID: <ZWkWxdFPhwqLtyfh@console> (raw)
In-Reply-To: <_pNFQS1xsa8HZF-9x3hk8EBZRfYAbzCAha1rKaFbwpfqMqjK51rGQspALrdYvB0R0r90iReLLsktJOfFowJG-wkX3E1NvPwtEQyMT95uo_4=@seedhammer.com>

Hi Seedhammer,

I think the goal of such a format should be that it is already a valid
PSBT, or can be trivially converted into one. Ideally, a coordinating
device can load the standardized descriptor file, add inputs (PSBTv2) or
unsigned TX (PSBTv1), and send it to compatible signing devices without
further modification.

Seems like the additions to BIP174 would be a PSBT_GLOBAL_DESCRIPTOR
with key of <birthblock>|<name> and value of the descriptor encoded as
proposed, and then PSBT_GLOBAL_KEY_NAME with key of <fingerprint>
and value of <name>.

Best,

--Brandon

On 2023-11-23 (Thu) at 22:25:43 +0000, SeedHammer Team via bitcoin-dev wrote:
> Hi,
> 
> At SeedHammer we're interested in standard, compact output descriptors to make
> self-contained metal engraved backups feasible. To that end, we're proposing a
> descriptor format based on the PSBT binary encoding. The format has not reached
> widespread consensus, never mind adoption, so at this point we're soliciting
> comments before formally proposing it as a BIP.
> 
> See [proposal], [implementation] and [playground] for details and examples.
> 
> The format is a binary and compact serialization specification for the
> [wallet-policies] BIP. Features:
> 
> - Based on the binary [BIP174] PSBT format, including re-using the compact
>   PSBT_GLOBAL_XPUB encoding for extended keys.
> - The descriptor itself is encoded in the same textual format as described
>   in BIPs 380-386 (+389).
> - Key references (always) use the wallet-policies format @<key-index>.
> - Miniscript is trivially supported, except inline keys are not allowed, and
>   pk(NAME) expressions are replaced with indexed (@<idx>) key references.
> - Metadata such as labels and birthdate blocks are encoded as PSBT
>   map entries.
> 
> Known issues:
> 
> - CBOR vs PSBT. Blockchain Commons believes[0] that a CBOR based format is better
>   because it is a widely used binary encoding standard, whereas we believe the
>   complexity of CBOR doesn't justify its cost compared to the PSBT encoding
>   already widely supported by wallet software.
> - The proposal specifies a separate header and magic; should the format instead be
>   an extension to the PSBT format?
> 
> Thanks,
> E
> 
> [proposal] https://github.com/BlockchainCommons/Research/issues/135
> [implementation] https://github.com/seedhammer/bip-serialized-descriptors
> [playground] https://go.dev/play/p/nouZlbbcEWt
> [wallet-policies] https://github.com/bitcoin/bips/blob/bb98f8017a883262e03127ab718514abf4a5e5f9/bip-wallet-policies.mediawiki
> [BIP174] https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki
> 
> [0] https://github.com/BlockchainCommons/Research/issues/135#issuecomment-1789644032
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists•linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


      reply	other threads:[~2023-11-30 23:17 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-23 22:25 SeedHammer Team
2023-11-30 23:12 ` Brandon Black [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZWkWxdFPhwqLtyfh@console \
    --to=freedom@reardencode$(echo .)com \
    --cc=bitcoin-dev@lists$(echo .)linuxfoundation.org \
    --cc=team@seedhammer$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox