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