19:00:01 #startmeeting 19:00:01 Meeting started Thu Jun 21 19:00:01 2018 UTC. The chair is sipa. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:00:01 Useful Commands: #action #agreed #help #info #idea #link #topic. 19:00:08 hi 19:00:13 hi 19:00:39 Hi 19:00:45 #bitcoin-core-dev Meeting: wumpus sipa gmaxwell jonasschnelli morcos luke-jr btcdrak sdaftuar jtimon cfields petertodd kanzure bluematt instagibbs phantomcircuit codeshark michagogo marcofalke paveljanik NicolasDorier jl2012 achow101 meshcollider jnewbery maaku fanquake promag provoostenator 19:00:52 hi. 19:00:57 topics? 19:01:00 alert key 19:01:05 not priority tho 19:01:42 hi 19:02:24 okay, let's start with high-priority reviews 19:02:33 #topic review blocks 19:02:34 also, bitcoin-dev mailing list hosting provider is migrating away from the email protocol, so the underlying host is going to probably switch soon (more details forthcoming) 19:03:16 hi 19:03:26 we have 3 open review blockers: #13062 #12196 #13425 19:03:29 https://github.com/bitcoin/bitcoin/issues/13062 | Make script interpreter independent from storage type CScript by sipa · Pull Request #13062 · bitcoin/bitcoin · GitHub 19:03:33 https://github.com/bitcoin/bitcoin/issues/12196 | Add scantxoutset RPC method by jonasschnelli · Pull Request #12196 · bitcoin/bitcoin · GitHub 19:03:37 https://github.com/bitcoin/bitcoin/issues/13425 | Moving final scriptSig construction from CombineSignatures to ProduceSignature (PSBT signer logic) by achow101 · Pull Request #13425 · bitcoin/bitcoin · GitHub 19:03:44 the merged ones should be removed from the list 19:04:00 good point, will od 19:04:48 done 19:04:55 any proposals for others to add? 19:05:14 I'll update #13100 in the next couple of days, but would be nice to have it on high priority 19:05:16 https://github.com/bitcoin/bitcoin/issues/13100 | gui: Add menu entry to open wallet by promag · Pull Request #13100 · bitcoin/bitcoin · GitHub 19:05:37 it's the missing piece in the dyn multi wallet story 19:05:49 promag: ping me when ready, i'll add it then 19:06:01 will do ty 19:06:13 #topic alert key 19:06:15 kanzure: ^ 19:06:39 alert key system deprecated, topic has absolutely no impact on bitcoind itself AFAIK 19:06:50 besides vulnerable versions 19:06:50 i recognize the request to perhaps wait for v0.13 end-of-life, would like to hear more comments about that 19:06:55 absent any other topic proposals, i'm sure we can talk about it 19:07:04 i believe those vulnerabilities might not be public but whatever, yes those 19:07:36 0.13 is the first version to have the alert system gone. the final alert stuff was added in 0.14. 19:07:55 for context: i'm thinking of releasing the private key, would be nice to get that out there and remove that liability 19:07:56 so waiting for 0.14 to be the oldest version in any form of support is good 19:08:01 Though it was default off since what.. 0.10.something ? 19:08:06 if 0.13 doesn't have alert system at all, why wait for it to be EOL? 19:08:07 0.12 19:08:26 Yeah doesn't seem much point waiting for 13 EOL 19:08:38 0.12 is already gone 19:08:59 There are two levels, off by default, and gone completely. 0.12 has it off by default and 0.13 gone completely? 19:09:04 yes 19:09:18 i'm particularly interested in hearing from others who have good reason not to reveal the key.. in the year+ since this was announced i don't think much has been raised. 19:09:21 and 0.12 is not supported at all, so all supported versions have it gone completely. 19:09:37 i sent out an email to the mailing list a few days ago and i have heard back from exactly one person regarding a request for a final alert message to some other altcoin 19:09:50 so i think this stuff is good and dead at this point 19:09:54 yes 19:10:07 also, if someone needs a final alert, they can pull it from the current source code 19:10:07 So that sounds pretty good for a release now, unless pre-0.12 nodes are still popular, and I don't believe they are. 19:10:24 I would assume that someone who has changed the alert format would also change the alert key 19:10:30 anyway, if anyone would like to send me name suggestions for someone to go talk to in private, i'm open to that, although i don't expect to hear from anyone 19:10:56 unfortunately, final alerts don't have the protective properties we believed they had. 19:11:03 there's ~3% of the network on 0.12 19:11:12 luke-jr: what about earlier? 19:11:12 was non-protection disclosed somewhere? 19:11:27 bitnodes says around 300 ish 0.12 and below nodes, out of 9945 19:11:40 achow101: 0.61% "other" versions, which includes everything before 0.12 19:11:52 http://luke.dashjr.org/programs/bitcoin/files/charts/branches.html 19:11:56 ok.. and they all probably have the final alert anyways 19:12:00 sipa: bitnodes only shows listening 19:12:09 luke-jr: i'm aware; just offering an extra data point 19:12:10 although that's the same 3% 19:12:35 gmaxwell: what was missing re protective properties? 19:13:02 also how do folks feel about the unmentioned (spamming) vulnerabilities related to this? 19:14:01 luke-jr: back when we first started talking about publishing it I was under the mistaken belief that a final alert basically disabled the alert code ... e.g. no more alert message processing, only relaying of the final alert. 19:14:24 so that a final alert would effectively also limit the usefulness of any alert dos attacks 19:14:30 But that isn't the case. 19:14:34 kanzure: I think all of the vulns should be disclosed at the same time as the key 19:14:47 this sounds like the same one 19:14:49 gmaxwell: that was also my impression 19:15:01 I doubt we know all the vulnerabilities. I know of at least two but I stopped looking. 19:15:12 gmaxwell: I believe I know of three 19:15:26 Also depends on how you count. :) 19:15:29 that too 19:15:46 i tend to count using the ring of integers 19:16:22 in any case, the alert code didn't stand up to careful review and is somewhat exposed to malicious alerts. 19:16:35 But then again any code still with it is also exposed in other ways. 19:16:49 there's also limited utility to releasing the alert key 19:16:55 sounds like some forkcoin projects might have to deal with this if they haven't already, not just rely on the fantasy of a final alert that shuts down the alert system 19:16:58 aside from "one less thing to worry about" 19:17:33 kanzure: well if anything still had it, it would have been easy enough to fix. 19:17:49 (by basically adding an "if I have had a final alert, drop all new alert messages" line. 19:17:50 I think 'one less thing to worry about' is good enough reason (also 'one less thing to discuss for the rest of our lives') 19:17:50 ) 19:18:01 i was surprised by the one person that did message- didn't think he would have had something with the alert system :-) 19:18:08 and if he could make that kind of mistake, i'd imagine many others are making worse mistakes 19:18:22 I was more concerned about it a year ago when in a short periord we had multiple people crop up and propose using that stupid key as some centeralized controlled whatever. 19:18:36 And it has been a couple of years since the deprecation was announced, it's not like fair warning wasn't given in any case 19:18:39 kanzure: if the altcoins have better control of their alert key, publishing the bitcoin one and the related vulns shouldn't be a problem 19:18:45 #action collect vulnerability knowledge from achow101 19:19:03 achow101: ah interesting point. i was only thinking about the projects that copied the public key actually. 19:19:23 I had thought there were ~none, but it turns out prior searches were somewhat ineffective. 19:19:25 kanzure: AFAICT, there aren't any projects using the bitcoin one 19:19:32 The litecoin alertkey is copied all over heck and back. 19:19:38 Google and github search for the key itself has turned up nothing 19:19:40 achow101: there was at least one we missed. 19:19:52 achow101: there is at least one actually, and someone contacted me about it i think :-) 19:20:11 it could be that they removed the alert system but still have legacy nodes? 19:20:40 unfortunately this person was also misinformed about the effects of the final alert message... in fact, i should go fix that misunderstanding. 19:20:46 In any case, I think there has been plenty of warning from the prior discussion. 19:21:07 kanzure: also I think our prior discussion made it pretty clear that the final alert turned out to not be so final. 19:21:21 at some point if you're so incompetent that you leave the alert key around for a while you've probably broken things in 10 other ways, honestly 19:21:26 (or rather there were DOS vulnerabilties that persisted in spite of it) 19:21:41 BlueMatt: yeah but i also somewhat have a duty to not inadvertedly break other people's broken systems just because they are stupid broken systems 19:21:46 I dont think we need to worry about other random crap 19:21:53 Agreed, I think just a full post with all info, vulns and key would be best now to resolve this 19:21:57 the alert system was kinda cool, except for the bugs... and unclear security model, lack of multisig, etc. :P 19:22:04 more like worry about our own crap and make sure to sufficiently disclose, which clearly happened 19:22:20 DoS is not a big deal IMO 19:22:25 sure. okay. let's move on. 19:22:31 maybe the denial of service will prompt the user to upgrade ;) 19:22:36 i do have one other topic about bitcoin-dev mailing list 19:22:37 luke-jr: yes, assuming thats the worst of it. 19:22:59 ok, let's switch topics 19:23:10 (I don't have any reason to assume it's worse than dos other than the fact that there were a bunch of DOS vulns that were unknown until I checked before publishing the key) 19:23:13 #topic bitcoin-dev mailinglist 19:23:23 linuxfoundation is migrating away from the email protocol and will no longer be hosting the bitcoin-dev mailing list 19:23:40 there is a migration plan but it's under investigating still 19:23:42 what are the other 200 mailing lists on lists.linuxfoundation.org doing? 19:23:42 details are still forthcoming sorry i don't have anything specific at this time 19:23:52 will post to mailing list when i have more details about actual plan 19:24:01 errr, oh, actually there arent many 19:24:03 i believe the current plan is "give lists.linuxfoundation.org to osuosl" 19:24:22 what does "migrating away from the email protocol" mean? are they just not doing mailing lists anymore? 19:24:27 achow101: right 19:24:32 achow101: linuxfoundation no longer believes in email apparently 19:24:42 i don't know, man. 19:24:45 lol 19:24:48 Is that like not believing in santa clause? 19:24:59 it's similar but not in the abstract 19:25:03 claus* 19:25:22 How can you believe in the universe, if you don't even know if email is real? 19:25:36 i'll post more details once i have some, i'd prefer to get an email out to the mailing list before the migration happens since this is weird and unusual 19:25:41 I guess if you disbelieve in email, it ceases to be real for you? 19:25:54 in any case, I can't say that I was completely happy with LF regardless. 19:26:05 my primary concern is about linkrot 19:26:16 they seem open to including some rewrite rules on their http server to fix some of the linkrot problem 19:26:23 ... for now 19:26:39 kanzure: if they're letting OSUOSL use the domain, wouldn't OSUOSL just be able to maintain the links? 19:26:54 and also, if the mailing list was to move away from lists.linuxfoundation.org as the domain, and MX records, then potential email delivery problems for the current subscribers 19:27:19 luke-jr: sipa notes that the relationship there might change over time 19:27:19 are there any other topics? 19:27:27 I'm already experiencing mail delivery problems, so.... 19:27:40 kanzure: nothing we can do can prevent that AFAIK 19:27:40 (we can let this discussion continue if nothing else, but perhaps there are more development related topics) 19:27:45 oh yeah, achow101 has reported mail delivery and receipt problems for lists.linuxfoundation.org that i haven't been able to investigate 19:30:04 was there configuration / bitcon-rw.conf / ...? stuff to discuss? i think some got deferred from previous meetings 19:30:11 topic suggestion: coin selection 19:30:21 (again) 19:30:54 aj: i'm not up to date with that discussion 19:31:00 #topic coin selection 19:31:22 I did a bunch of simulations of the srd fallback stuff 19:31:22 https://gist.github.com/achow101/242470486265d3f21adab08f65b9102c 19:31:37 aj: yes, last time it was deferred cuz someone wasn't here 19:31:58 there are two problems that I see with this strategy: change can be incredibly small and the mean number of utxos in the wallet is quite highg 19:33:04 the question is whether we can accept these tradeoffs or whether we need to find a better algorithm 19:33:50 it sounds concerning to me 19:34:03 I agree, especially the small change 19:34:21 we may have to keep MIN_CHANGE, but I don't really like having a fixed minimum change 19:34:39 is this code discarding sub fee change? 19:34:49 yes 19:35:05 you mean turning dust change into fee? yes 19:36:02 OKAY 19:36:28 So let me check my understanding of our understanding. 19:36:56 SRD is producing poor solutions in cases where the wallet has lots of small inputs? And also tends to produce small change itself? 19:37:10 tends to produce 19:37:53 however it does help BnB find more exact matches 19:38:06 Yes, but probably other strategies could do that. 19:38:12 but clearly not enough to compensate (as the total number of UTXOs grows) 19:38:21 e.g. current algo but with a min_change that is randomized more. 19:38:21 aj: (do you have time to discuss rwconf stuff after the meeting if we run out of time during?) 19:38:24 sorry I'm late, https://github.com/bitcoin/bitcoin/pull/13311 is kind of blocking to me for the block signed testnets thing (assuming there's still interest in that) 19:39:03 IIRC there is nothing fundimental about SRD that makes it good for making BNB work better, but rather it was the first alternative murch tried there. 19:39:26 luke-jr: (yes, it's the start of my day here) 19:39:34 well and in murch's simulations, SRD performed reasoably well, and was extremely simple 19:39:44 though i guess we may be seeing different results now 19:39:53 So for example, current solver plus add a couple extra inputs at random probably also makes BNB work better than current alone. 19:40:45 i'm wondering if instead of SRD, we shouldn't use a BNB algorithm with a very large target range, larger than minimal change 19:41:11 And then allow it to create change outputs? 19:41:16 Murch: indeed 19:41:33 Murch: basically run BNB in a mode where it assumes change will be created anyway 19:41:40 and then minimize waste for that 19:41:56 have you considered such a strategy? 19:42:23 stratigies that minimize change values are bad for building a collection of coins that help BNB. 19:42:26 I have thought a bit about it, but figured that it is computationally intensive for no good reason 19:42:38 gmaxwell: minimizing change != minimizing waste 19:42:48 sipa: what is 'waste'? 19:43:12 hi 19:43:14 Also, then you're just minimizing the input set since everything produces change and thus all with the same count of inputs have the same waste value 19:43:23 at least at higher fees 19:43:29 gmaxwell: line 36 of src/wallet/coinselection.cpp 19:43:37 gmaxwell: in this case, it means minimziing fees 19:43:50 Maybe one could just do smallest first selection at the lowest fee range to auto-consolidate? 19:43:58 https://github.com/bitcoin/bitcoin/blob/master/src/wallet/coinselection.cpp#L36L40 19:44:19 Murch: smallest first is pathalogical for wallets with tons of tiny inputs, unfortunately. 19:44:19 we probably shouldn't do algorithm design in this meeting, but ideas for things to try may be useful 19:44:53 Alright, maybe oldest first on the ones that are smaller than the target. ;) 19:44:56 we can't have undefended pathological behavior, since we can't assume the usage will be supervised. 19:45:08 but it would have some sort of limit on transaction size 19:45:40 might be interesting to have coin selection pay attention to feerate estimates. use more inputs when feerates are low, for example. just a thought 19:45:42 We could still have that mode, it would just have to be guarded by something that cuts off the pathalogical behavior. 19:45:55 gmaxwell: If smallest first is only used at < 4 sats/byte, why not auto-consolidate up to e.g. 250 unspents? 19:46:00 luke-jr: preferably the algorithm would be self adjusting to the feerates 19:46:01 luke-jr: it does 19:46:09 BNB at least does 19:46:20 ofc it would mean that a cpfp would be extremely expensive should it become necessary 19:46:42 luke-jr: the new fee estimation is already fee sensitive 19:46:49 i c 19:46:52 Murch: you mean coin selections 19:46:59 i would hope that fee estimation is fee sensitive :p 19:47:00 äh, I do 19:47:42 I have two topic proposal... but I guess I'm too late: a) Multiwallet session persistence b) Bech32X 19:48:31 perhaps this coin selection discussion would be better done in person with whiteboards 19:48:34 yeah 19:48:40 #topic multiwallet session persistence 19:48:43 I'm game 19:48:45 Okay... 19:48:55 ok, so I guess rwconf waits until after meeting :x 19:49:00 achow101: that leaves out people who can't attend. 19:49:07 I guess it's not ideal that loaded wallets need to be re-loaded after a Bitcoin-Core restart... 19:49:19 especially in pruning mode 19:49:20 luke-jr, aj: i can make it a topic; it wasn't clear if you wanted it here 19:49:26 jonasschnelli: so put them in the conf file? 19:49:33 sipa: almost out of time anyway 19:49:35 jonasschnelli: that sounds like something to address with rwconf 19:49:37 gmaxwell: that works for static enviromnents... 19:49:50 jonasschnelli: not with rwconf. 19:49:54 gmaxwell: maybe not easy for GUI users (yet; rwconf to the rescue? :P) 19:50:09 rwconf would be indeed a solution, yes. 19:50:24 it seems like the exact same problem as the one rwconf is intended to solve 19:50:37 unless you wanted multiple different sessions, maybe? 19:50:56 but I'm not sure there's a use case for that 19:51:43 seems out of scope to me. 19:51:46 Okay guess rw/config solves this... so /topic 19:51:59 #topic bech32x 19:52:17 Bech32X has currently the distance 27 BCH with correction to 7 chars (thanks to sipa) 19:52:20 The idea is now.. 19:52:32 to have three "levels" or correction.. 19:52:58 i'll gladly create code for that 19:53:08 I'd like to hear if this a) is "easy" possible (three generators) and b) if the use case makse sense (selective correction robusntess)? 19:53:08 i don't have strong opinions about usage 19:53:21 I don't understand 19:53:22 12:52:32 < jonasschnelli> to have three "levels" or correction.. 19:53:29 7 chars is still not much more then 5% correction for 512bit key material 19:53:47 maybe correction level should be somehow defined as a % of the whole? 19:53:53 Oh you want multiple codes so for long key data it uses a stronger code? 19:53:57 gmaxwell: a flexible checksum, either 7 chars or 14chars or 28 chars of correction 19:54:07 gmaxwell: or that the user can choose how much correction information they want 19:54:13 gmaxwell: either the length or the HRP does hint what code to use 19:54:14 (QR codes have this, for example) 19:54:19 Yes. 19:54:21 It can't be 'flexible' without hurting performance, but we could just have more or less. 19:54:27 through multiple codes. 19:54:43 yeah, i'm sure he just means have 3 codes to choose from 19:54:49 yes 19:54:54 But I think it is not good to make it generally user selectable. The user _generally_ has no way to make a useful decision. 19:55:13 gmaxwell: Yes. I also thought this... 19:55:16 user in this case being the software I think 19:55:19 But making the format support multiple codes seems okay to me though it might lower the odds that powerful fancy decoders get written, because it'll be more work. 19:55:24 On the other hand, maxing on 5% correction may also be not ideal 19:55:47 gmaxwell: we can make sure they use the same field and extension, so that the majority of the recovery code can be shared 19:55:58 There are certian improved properties we can get if we know a code will only be used for shorter vs longer data. 19:56:13 gmaxwell: not much as these levels of corrections (too large search space) 19:56:37 so if the goal really was just to have multiple codes to have a certian percentage of correction that could perhaps be used. 19:57:06 sipa: well we can still search for codes with improved performance over modest (e.g. 50 char) windows, giving better burst error handling. 19:57:57 we can even make the generators multiples of each other, so that a valid code according to one is also valid according to the "weaker" versions 19:58:08 in any case, I assume sipa would come up with the codes.. fewer levels is better than more... 19:58:09 (or with a different offset, guarantee that this exactly never happens) 19:59:00 sipa: if you're going to abandon beyond bch performance the difference codes could just be punctures of a single bigger one. 19:59:20 gmaxwell: right, i believe that's actually saying the same thing 19:59:57 gmaxwell: also, for distance 15 there is nothing we can grind, not even for short lengths 20:00:09 #endmeeting