--- Log opened Fri Apr 01 00:00:44 2022 00:36 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 00:37 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 00:49 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 00:50 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 01:35 < darosior> Is there an instance of a fragment that would be 'm' (non-malleable) without being 's' (needs sig)? It seems to me some property rules could be redundant 01:50 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 01:51 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 01:53 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 01:54 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 01:57 < darosior> The website and the cpp implementation differ for the 'e' property of or_b() 01:59 < darosior> The website and the cpp implementation differ for the 'e' and 'f' properties of or_d() 02:02 < darosior> The Rust implem seems to be following the website (although the naming is a bit confusing). cc sanket1729 02:10 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 02:11 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 02:15 < darosior> For or_d() actually it only differs for the 'e' property, and i think it makes sense that e=eX*eZ (like in the cpp implem). 02:17 < darosior> For or_b() too i think the cpp implem is right. Cause i don't see how we can ensure it is 'e' if not both X and Z. The website says it is just always 'e'. 02:27 < darosior> The website also doesn't specify when subs need to be non-malleable in the requirements for non-malleability. Was that on purpose? 02:33 < darosior> It also seems that https://github.com/sipa/miniscript/blob/a2b7b35d765c11aa95d880fdcb3813f3b801d7fd/bitcoin/script/miniscript.cpp#L192 is not implementing 'e=e_x*f_y+f_x*e_y' as the comments states, but 'e=(e_x+e_y)*(f_x+f_y)'. That sounds wrong as for instance if in X is 'ef', or_i(X, Y) shouldn't necessarily be 'e'. 02:48 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 02:49 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 03:04 < darosior> For andor() the cpp implem and the website differ for 'e'. I think the implem is right (you need X to be 'e', too). 03:14 < darosior> Same for thresh(), the cpp implem requires all to be 'es' whereas the website only all to be 's'. 03:42 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 03:43 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 03:58 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 03:58 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 05:27 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 05:28 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 05:46 -!- ashishkr [uid540896@id-540896.tinside.irccloud.com] has joined ##miniscript 07:44 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 07:45 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 07:55 -!- ashishkr [uid540896@id-540896.tinside.irccloud.com] has quit [Quit: Connection closed for inactivity] 08:18 < sanket1729> > Is there an instance of a fragment that would be 'm' (non-malleable) without being 's' (needs sig)? 08:18 < sanket1729> darosior: yes 08:18 < sanket1729> If there is only one satisfaction without a signature 08:19 < sanket1729> consider: older(10) 08:24 < sanket1729> > The website also doesn't specify when subs need to be non-malleable in the requirements for non-malleability. Was that on purpose? 08:25 <@sipa> Malleability as defined by the website isn't a type property, it's a requirement. 08:25 <@sipa> Like validity. 08:25 < sanket1729> Yup, was about to say it 08:28 < sanket1729> darosior: I think all of the discrepancies can be explained if we assume non-malleability as requirement. Some property formulas are simplification based on pre-requites. 08:29 <@sipa> Right, s/d/e only apply if you're talking about non-malleable miniscript in the first place (as they're just there to help reason about malleability). 08:29 <@sipa> s/e/f I mean 08:42 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 08:42 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 08:52 -!- proofofkeags [~proofofke@96-81-42-77-static.hfc.comcastbusiness.net] has joined ##miniscript 09:14 -!- salvatoshi_ [~salvatosh@genymobile-2-6-86.fib.nerim.net] has quit [Ping timeout: 260 seconds] 10:09 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 10:10 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 13:12 < sanket1729> sipa: jeremyrubin: Interestingly if you traverse in any DFS order, the generated taproot merkle root would be the same. 13:12 < sanket1729> Sorry if this was discussed earlier. But I just had that realization now. 13:12 < sanket1729> Because we compare hashes and don't really know whether something was left or right 14:25 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 14:26 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 14:39 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 14:39 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 14:49 < jeremyrubin> Sanket that's not quite true I think 14:49 < jeremyrubin> Oops sanket1729 14:50 < jeremyrubin> Things are only sorted at the pairwise level right? 14:50 < jeremyrubin> Eg imagine a balanced binary tree of size 2**n 14:50 <@sipa> he said any DFS order, not any order at all 14:50 < jeremyrubin> Shuffling the nodes and traversing left to right should give you diff hashes right 14:51 < jeremyrubin> He later said 14:51 < jeremyrubin> "Because we compare hashes and don't really know whether something was left or right" 14:51 < jeremyrubin> So I think he meant that the lexicographic sort fixes it 15:38 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 15:38 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 16:13 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 16:13 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 16:33 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 16:34 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 17:12 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 17:13 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 17:35 -!- shesek_ [~shesek@user/shesek] has joined ##miniscript 17:37 -!- shesek__ [~shesek@user/shesek] has quit [Remote host closed the connection] 17:41 -!- proofofkeags [~proofofke@96-81-42-77-static.hfc.comcastbusiness.net] has quit [Ping timeout: 256 seconds] 18:39 -!- shesek_ [~shesek@user/shesek] has quit [Remote host closed the connection] 18:39 -!- shesek_ [~shesek@user/shesek] has joined ##miniscript 18:46 -!- shesek_ [~shesek@user/shesek] has quit [Remote host closed the connection] 18:47 -!- shesek_ [~shesek@user/shesek] has joined ##miniscript 18:59 -!- shesek__ [~shesek@user/shesek] has joined ##miniscript 19:01 -!- shesek_ [~shesek@user/shesek] has quit [Remote host closed the connection] 19:11 -!- shesek_ [~shesek@user/shesek] has joined ##miniscript 19:13 -!- shesek__ [~shesek@user/shesek] has quit [Read error: Connection reset by peer] 19:37 -!- proofofkeags [~proofofke@97-118-153-128.hlrn.qwest.net] has joined ##miniscript 20:06 -!- shesek_ [~shesek@user/shesek] has quit [Remote host closed the connection] 20:06 -!- shesek_ [~shesek@user/shesek] has joined ##miniscript 20:52 -!- shesek_ [~shesek@user/shesek] has quit [Remote host closed the connection] 20:53 -!- shesek_ [~shesek@user/shesek] has joined ##miniscript 21:11 -!- shesek_ [~shesek@user/shesek] has quit [Remote host closed the connection] 21:12 -!- shesek_ [~shesek@user/shesek] has joined ##miniscript 21:21 -!- shesek_ [~shesek@user/shesek] has quit [Remote host closed the connection] 21:22 -!- shesek_ [~shesek@user/shesek] has joined ##miniscript 22:42 -!- shesek_ [~shesek@user/shesek] has quit [Remote host closed the connection] 22:43 -!- shesek_ [~shesek@user/shesek] has joined ##miniscript --- Log closed Sat Apr 02 00:00:44 2022