--- Log opened Sun Oct 08 00:00:50 2023 01:46 -!- salvatoshi [~salvatosh@lfbn-idf3-1-1331-187.w92-170.abo.wanadoo.fr] has joined ##miniscript 02:32 < darosior> achow101: is feature freeze technically the last day to merge new features or was it yesterday? 06:50 < achow101> I'm okay with merging on feature freeze 06:50 < achow101> I don't think we've ever really defined that 06:56 < darosior> Ok. Checking the 26.0 milestone there seems to still be a few non-bugfix-only things anyways 07:02 < darosior> Wondering if i should ACK Pieter's code 07:03 <@sipa> darosior: i think that's kind of implied by having included it in your PR 07:09 <@sipa> darosior: one follow-up test i've been thinking about is changing the fuzzer to not use a fixed assignment of which keys/hashes/times are available, but instead (if there are say no more than 10 distinct such leafs) try all combinations of availability; if the NOP/NIP padding is set correct, all should succeed; if it is set one too high, at least one non-malleable satisfaction must fail 07:11 < darosior> If we do that we could, without PR'ing it, get the maximum stack size reached during all execution from VerifyScript and assert the stack size calculation is exact 07:11 < darosior> Just to test locally 07:12 <@sipa> also, this could be used to test the maximum witness size; one of the non-malleable satisfactions must reach that maximum 07:12 <@sipa> there are a few complications we'll run into probably, though 07:13 <@sipa> one is that or_i has two distinct canonical dissatisfactions, which are both taken into account, though in practice only one of the two will be used 07:13 < darosior> (Another way to test both i guess would be to patch the satisfaction algorithm to maximize witness script size / stack size increase) 07:13 < darosior> And run it with all material available 07:14 < darosior> Could be interesting to do this once OSS fuzz will have generated a whole corpus of interesting miniscripts 07:15 <@sipa> actually, or_i requires for non-malleability that at least one of the two sides has a signature, so canonical dissatisfaction will never choose that 07:15 <@sipa> i think that means we can make the stack size calculation algorithm more accurate: it should only take the non-s side(s) into account for dissatisfaction 07:15 <@sipa> (not for this PR) 07:15 < darosior> :) 07:16 < darosior> Actually i remember you mentioning this back in Dublin too 07:17 <@sipa> this can also be done for the witness size calculation and the ops calculation 08:38 < achow101> for OP_IF and the binary opcodes, why is exec 1? 08:39 < achow101> does "during execution" also imply "at the start"? 08:42 < achow101> should I be interpreting exec as "how many times does it pop from the stack"? 08:43 <@sipa> achow101: it's the max stack size compared to the *end* of execution 08:44 <@sipa> since an OP_IF pops an element of the stack, it has netdiff 1 (it removes 1) and exe 1 (the maximum reached is one more than the end 08:45 <@sipa> achow101: yes, anywhere, at the beginning, somewhere in the middle, or at the end 08:45 <@sipa> so exec can never be negative 08:46 < achow101> why not? if the opcode only pushes to the stack, it should be negative? 08:46 <@sipa> say OP_1, starts with 0 stack elements, ends with 1 08:46 < achow101> oh, the end is the maximum of itself 08:46 <@sipa> the highest reacged is 1, which is 0 more than the end 08:49 <@sipa> so individual opcodes can really only have netdiff,exec of (a,a) (if it net pops a elements) or (-a,0) (if it pushes a elements) 08:50 <@sipa> sequences of opcodes can reach much more of course 08:50 < achow101> yeah, I think I got it now. thanks 15:16 -!- salvatoshi [~salvatosh@lfbn-idf3-1-1331-187.w92-170.abo.wanadoo.fr] has quit [Ping timeout: 272 seconds] 15:20 < darosior> I've opened a PR to the website for the missing non-canon dissat the other day https://github.com/sipa/miniscript/pull/138 15:21 < darosior> I'll try PR'ing the Tapscript implem to your repo tomorrow 15:22 < darosior> How about creating an issue to update the website to be able to use Tapscript there? I'm sure we could find someone to volunteer implementing this. 15:23 < darosior> Also, should we bring back a Miniscript BIP on the table? --- Log closed Mon Oct 09 00:00:51 2023