19:00:07 <meshcollider> #startmeeting
19:00:07 <lightningbot> Meeting started Fri May 10 19:00:07 2019 UTC.  The chair is meshcollider. Information about MeetBot at http://wiki.debian.org/MeetBot.
19:00:07 <lightningbot> Useful Commands: #action #agreed #help #info #idea #link #topic.
19:00:17 <sipa> hi
19:00:18 <meshcollider> #bitcoin-core-dev Wallet Meeting: wumpus sipa gmaxwell jonasschnelli morcos luke-jr sdaftuar jtimon cfields petertodd kanzure bluematt instagibbs phantomcircuit codeshark michagogo marcofalke paveljanik NicolasDorier jl2012 achow101 meshcollider jnewbery maaku fanquake promag provoostenator aj Chris_Stewart_5 dongcarl gwillen jamesob ken281221 ryanofsky gleb
19:00:23 <jnewbery> hi
19:00:39 <phantomcircuit> hu
19:00:44 <phantomcircuit> also hi
19:01:02 <gmaxwell> ih
19:01:17 <meshcollider> The meetings have been pretty short for the past few weeks so maybe this will be too, but does anyone have any topics?
19:01:30 <jnewbery> High priority for review?
19:02:04 <meshcollider> #topic wallet high priority for review
19:02:06 <sipa> anything beyond what what discussed yesterday?
19:02:10 <jnewbery> I think there are three wallet PRs in there: #15024 #15006 #15870
19:02:13 <gribble> https://github.com/bitcoin/bitcoin/issues/15024 | Allow specific private keys to be derived from descriptor by meshcollider · Pull Request #15024 · bitcoin/bitcoin · GitHub
19:02:16 <gribble> https://github.com/bitcoin/bitcoin/issues/15006 | Add option to create an encrypted wallet by achow101 · Pull Request #15006 · bitcoin/bitcoin · GitHub
19:02:18 <gribble> https://github.com/bitcoin/bitcoin/issues/15870 | wallet: Only fail rescan when blocks have actually been pruned by MarcoFalke · Pull Request #15870 · bitcoin/bitcoin · GitHub
19:02:42 <jnewbery> Do we want to add anything for descriptor wallets?
19:02:58 <jnewbery> are there any pre-req PRs
19:02:58 <sipa> i'm thinking about creating a psbt/descriptor separate tool that can update/sign, but i'm going to wait until some of the in-flight PRs are in
19:03:30 <sipa> jnewbery: 15024 is a pre-req for descriptor wallets iirc
19:03:36 <sipa> but already on the list
19:04:31 <jnewbery> other than #15427, what's on the path for the descriptor tool?
19:04:34 <gribble> https://github.com/bitcoin/bitcoin/issues/15427 | Add support for descriptors to utxoupdatepsbt by sipa · Pull Request #15427 · bitcoin/bitcoin · GitHub
19:04:59 <sipa> jnewbery: also 15024
19:05:20 <sipa> oh, i have a topic: how do we expect to deal with signign scripts were different satisfactions may have different costs?
19:05:21 <meshcollider> Andrews PR is based on #15741 and #15761 too
19:05:25 <gribble> https://github.com/bitcoin/bitcoin/issues/15741 | Batch write imported stuff in importmulti by achow101 · Pull Request #15741 · bitcoin/bitcoin · GitHub
19:05:27 <gribble> https://github.com/bitcoin/bitcoin/issues/15761 | Replace -upgradewallet startup option with upgradewallet RPC by achow101 · Pull Request #15761 · bitcoin/bitcoin · GitHub
19:05:38 <meshcollider> But both are his PRs and he already has one
19:05:52 <jnewbery> I think 15761 will be removed as a requirement based on the IRC meeting a few weeks ago
19:06:02 <gmaxwell> sipa: an upper bound on the cost needs to be known before signing starts.
19:06:09 <achow101> hi
19:07:18 <achow101> meshcollider: 15761 isn't a requirement for descriptor wallets anymore
19:07:33 <achow101> 15741 isn't necessarily a requirement, but it makes things faster
19:07:42 <meshcollider> achow101: ok, that's good
19:08:00 <sipa> we probably need something like 15741 anyway
19:08:55 <meshcollider> But not necessarily on high priority atm, I guess we will leave it as-is
19:08:57 <meshcollider> #topic signing scripts were different satisfactions may have different costs (sipa)
19:09:17 <sipa> gmaxwell: yes, the easiest approach is always assuming the worst case
19:09:43 <sipa> this is in the context of things like miniscript or the taproot proposal i recently published
19:09:56 <gmaxwell> sipa:  that isn't quite what I meant, like if you're going to spend via branch X, you have to know that in advance if you want to use lower weight for fee purposes.
19:10:22 <gmaxwell> so I think PSBT may need an extension for that.
19:10:29 <sipa> right, but plugging that into fee estimation and coin selection seems nontrivial
19:11:29 <gmaxwell> I think its trivial once you assume you have a way of knowing the "weight bound" for each input you're going to use... which itself is only triial if you always assume the worst case branch.
19:11:30 <sipa> gmaxwell: hmm, i guess if we can come up with something sufficiently generic to put in PSBT (something that restricts certain options or so?), it can probably go in the same form into descriptor records
19:11:38 <gmaxwell> right.
19:11:49 <gmaxwell> my thought is that a descriptor should be subsettable.
19:12:17 <gmaxwell> Like if a script is A or B, there should exist a descriptor that maps to the same spk but only lets you spend via A
19:12:33 <sipa> that's an interesting idea, putting it in the descriptor itself
19:12:41 <gmaxwell> in the context of taproot, that descriptor might not even reveal the content of B.
19:12:46 <gmaxwell> Descriptor-slice.
19:13:02 <sipa> let's call it a subscriptor
19:13:04 <sipa> :p
19:13:06 <gmaxwell> oohhhh
19:13:17 <meshcollider> lol
19:13:37 <gmaxwell> Right, so basically you make the cost analysis use the worst case, but use of a subscriptor can lower the worst case.
19:14:26 <achow101> so if used with taproot, you would have the hash of the other branch indicating that that other branch won't be used
19:15:11 <gmaxwell> right. something like that. I think you should be also able to include the data but indicate it won't be used.
19:15:19 <sipa> i guess there could be an unavailable(...) syntax element in descriptors, which for output calculation is identical to ..., but assumes the key/path/... subexpression isn't available for signing
19:15:22 <gmaxwell> (for a lot of applications you'll want to know what it is)
19:15:27 <sipa> (or something more syntax sugarry)
19:16:27 <sipa> i like this
19:17:38 <achow101> but does such a subscriptor need to be included in a psbt?
19:18:27 <sipa> i think a subscriptor could just result in certain information not being put in a PSBT
19:19:08 <sipa> like certain branches of a merkle tree (assuming a taproot psbt extension) would just be left out if they're known to be unavailable (or just unknown)
19:19:56 <achow101> right
19:20:08 <sipa> thanks, i don't think this much more discussion right now
19:21:53 <meshcollider> Any other topics then?
19:22:33 <meshcollider> Is there anything else related to the Taproot/schnorr proposals that anyone wants to discuss here?
19:23:01 <gmaxwell> sipa: will you be doing a miniscript that targets taproot?
19:23:33 <gmaxwell> (like a compiler that takes the current input and outputs taproot scripts)
19:24:00 <sipa> gmaxwell: obviously :)
19:24:27 <gmaxwell> if you were planning to anyways, it might help discussion around taproot because you could compile example scripts both ways and show how their minimum and worst case spending costs change.
19:24:28 <sipa> meshcollider: i think most wallet discussions related to that are for later
19:24:52 <gmaxwell> manually constructing examples is always a bummer (and easy to get wrong)
19:25:36 <sipa> (afk now, will be back in an hour or so)
19:25:46 <meshcollider> Ok let's end things here then, thanks everyone :)
19:25:50 <meshcollider> #endmeeting