--- Log opened Sun Aug 06 00:00:21 2023 00:15 -!- vysn [~vysn@user/vysn] has joined #bitcoin-wizards 00:40 -!- Guyver2 [~Guyver@77-174-98-73.fixed.kpn.net] has joined #bitcoin-wizards 01:06 -!- Chris_Stewart_5 [~Chris_Ste@68.235.43.49] has quit [Ping timeout: 260 seconds] 01:08 -!- Chris_Stewart_5 [~Chris_Ste@68.235.43.59] has joined #bitcoin-wizards 01:12 -!- Ademan [~Ademan@47.161.41.51] has joined #bitcoin-wizards 01:50 < Ademan> What is the purpose of PSBT_GLOBAL_XPUB ? Is the signer supposed to look for xpubs it has the xpriv for and then use the derivation path and search for inputs it can sign for? That seems like strictly more work for the signer than just using PSBT_IN_{,TAP_}BIP32_DERIVATION (have to search through inputs, vs them being explicitly marked). Am I missing something obvious? 01:53 < Ademan> providing the xpub obviously lets the transaction constructor derive other keys, is this more for the output side? (but there's similar BIP32 keys on the output side) 02:19 -!- cold [~cold@user/cold] has quit [Ping timeout: 245 seconds] 02:20 -!- cold [~cold@user/cold] has joined #bitcoin-wizards 02:24 < salvatoshi> yes, I'd say being able to derive the co-signers' pubkeys is the advantage. Without that, you can't verify what inputs/outputs are "internal" (e.g. going back to the sender), which is critical for change outputs. Of course, you also need to know the exact descriptor (and there is currently no defined field for that purpose in PSBT), so there could be some redundancy in that case. 04:01 -!- wudu_ [~wudu@dynamic-077-012-141-126.77.12.pool.telefonica.de] has joined #bitcoin-wizards 04:06 -!- tromp [~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl] has quit [Quit: My iMac has gone to sleep. ZZZzzz…] 04:37 -!- tromp [~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl] has joined #bitcoin-wizards 04:53 -!- jonatack [~jonatack@user/jonatack] has quit [Read error: Connection reset by peer] 04:54 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-wizards 05:11 -!- Jackielove4u [uid43977@user/jackielove4u] has joined #bitcoin-wizards 05:23 -!- AaronvanW [~AaronvanW@user/AaronvanW] has joined #bitcoin-wizards 07:11 -!- DeanGuss [~dean@user/deanguss] has quit [Quit: buhbye] 07:15 -!- DeanGuss [~dean@nonplayercharacter.me] has joined #bitcoin-wizards 07:15 -!- DeanGuss [~dean@nonplayercharacter.me] has quit [Changing host] 07:15 -!- DeanGuss [~dean@user/deanguss] has joined #bitcoin-wizards 08:07 -!- AaronvanW [~AaronvanW@user/AaronvanW] has quit [Remote host closed the connection] 08:20 -!- AaronvanW [~AaronvanW@user/AaronvanW] has joined #bitcoin-wizards 08:37 -!- tromp [~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl] has quit [Quit: My iMac has gone to sleep. ZZZzzz…] 08:39 -!- tristan_ [~tristan_@120.88.40.209] has quit [Ping timeout: 240 seconds] 08:54 -!- tromp [~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl] has joined #bitcoin-wizards 10:11 -!- tromp [~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl] has quit [Quit: My iMac has gone to sleep. ZZZzzz…] 10:12 -!- vysn [~vysn@user/vysn] has quit [Remote host closed the connection] 10:17 -!- vysn [~vysn@user/vysn] has joined #bitcoin-wizards 10:23 -!- tromp [~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl] has joined #bitcoin-wizards 10:48 < Ademan> isn't PSBT_IN_*BIP32_DERIVATION enough for the *sender* to verify that a given output is going back to them though? I suppose other signers can't, but in terms of incentives surely they'd be the one who cares? 10:49 < Ademan> there's probably plenty of cases though where signers have a strong interest in verifying the outputs, I wasn't thinking about that aspect 10:50 < Ademan> strong interest, beyond the obvious change address case which I *do* think is covered already? 10:52 < Ademan> I'm working on a little rust library to facilitate musig signing with some proprietary keys. I'm kind of trying to understand the design motivation of some keys to make sure my design lines up with that, since I have one very specific use case in mind and probably a million blind spots 11:24 < salvatoshi> No, in a multisig, an output is change only if it goes back to the same exact script that you expect. If your pubkey is there, but your cosigner's pubkeys are replaced, money is gone! This would also hold for wallets based on musig/frost. For single-sig, yes, I agree you could do without the GLOBAL_XPUBs 11:26 -!- AaronvanW [~AaronvanW@user/AaronvanW] has quit [Remote host closed the connection] 11:48 -!- bitdex [~bitdex@gateway/tor-sasl/bitdex] has quit [Remote host closed the connection] 11:54 < Ademan> for a p2wsh we know the pubkeys of the other participants in the quorum via PSBT_OUT_WITNESS_SCRIPT right? then you have the derivation path potentially via PSBT_OUT_BIP32_DERIVATION for verification ? I guess you may not have the xpub for your (future) cosigners so you'd want PSBT_GLOBAL_XPUB for that? 11:56 -!- AaronvanW [~AaronvanW@user/AaronvanW] has joined #bitcoin-wizards 12:05 -!- brunoerg [~brunoerg@187.183.43.117] has quit [Remote host closed the connection] 12:06 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 12:11 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 260 seconds] 12:19 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 12:26 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 246 seconds] 12:28 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 12:32 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 246 seconds] 12:45 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 12:49 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 245 seconds] 13:02 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 13:06 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 246 seconds] 13:19 < salvatoshi> Any information in the PSBT is not trusted, at least from the point of view of hardware signers, as it could be have been modified by malware. Say the wallet is wsh(multi(2,xpubA/<0;1>/*,xpubB/<0;1>/*)). In a hardware signer, you typically register the policy/descriptor with xpubA and xpubB (the same that you find in the GLOBAL_XPUBs). The hardware signer can derive the cosigner's pubkeys from the xpubs 13:19 < salvatoshi> independently (using the BIP32_DERIVATIONs to identify the paths) and verify if the script it obtains is the expected one. This prevents any malware from tampering with cosigners' keys. Even in hardware signers that don't allow persisting the policy on the device, you can at least check that the change is indeed going to the same exact policy as the inputs. You can only do that if you have all the xpubs and all 13:19 < salvatoshi> the derivations. 13:24 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 13:26 -!- Guyver2 [~Guyver@77-174-98-73.fixed.kpn.net] has quit [Quit: Going offline, see ya! (www.adiirc.com)] 13:26 < salvatoshi> note that the pubkeys in the witness script are _derived_ from the GLOBAL_XPUBs (that's why you need the BIP32_DERIVATIONs). E.g. a concrete address for the script above would be wsh(multi(2,xpubA/0/4,xpubB/0/4)). The global xpubs would have xpubA and xpubB (and their key origin info); BIP32_DERIVATIONs would have the full pubkeys (not xpubs) at m/path'/of'/A'/0/4, etc. 13:28 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 246 seconds] 13:39 -!- brunoerg [~brunoerg@187.183.43.117] has joined #bitcoin-wizards 13:44 -!- brunoerg [~brunoerg@187.183.43.117] has quit [Ping timeout: 260 seconds] 13:47 < Ademan> thanks, I think I was mostly in the same place on most of that. I didn't consider the advantage to signers with no persistence, I was thinking you'd be forced to trust the PSBT regardless in that case, but GLOBAL_XPUB does give you a bit more capacity for verification 13:50 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 13:55 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 246 seconds] 14:05 -!- tusko [~yeurt@user/tusko] has quit [Remote host closed the connection] 14:09 -!- tusko [~yeurt@user/tusko] has joined #bitcoin-wizards 14:10 -!- Ademan_ [~ademan@47.161.41.51] has joined #bitcoin-wizards 14:12 < Ademan_> I really need to set up a bouncer if libera is going to keep their matrix bridge down for a while 14:16 -!- Ademan [~Ademan@47.161.41.51] has quit [Ping timeout: 260 seconds] 14:17 -!- bitdex [~bitdex@gateway/tor-sasl/bitdex] has joined #bitcoin-wizards 14:19 -!- tromp [~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl] has quit [Quit: My iMac has gone to sleep. ZZZzzz…] 14:25 -!- brunoerg [~brunoerg@187.183.43.117] has joined #bitcoin-wizards 14:29 -!- brunoerg [~brunoerg@187.183.43.117] has quit [Ping timeout: 246 seconds] 14:36 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 14:41 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 245 seconds] 14:41 -!- tusko [~yeurt@user/tusko] has quit [Remote host closed the connection] 14:44 -!- tusko [~yeurt@user/tusko] has joined #bitcoin-wizards 14:52 -!- Ademan_ [~ademan@47.161.41.51] has quit [Quit: leaving] 15:12 -!- salvatoshi [~salvatosh@lfbn-idf3-1-1331-187.w92-170.abo.wanadoo.fr] has quit [Ping timeout: 260 seconds] 15:15 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 15:20 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 245 seconds] 15:31 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 15:36 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 246 seconds] 15:43 -!- vysn [~vysn@user/vysn] has quit [Remote host closed the connection] 16:00 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 16:04 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 246 seconds] 16:16 -!- brunoerg [~brunoerg@187.183.43.117] has joined #bitcoin-wizards 16:21 -!- brunoerg [~brunoerg@187.183.43.117] has quit [Ping timeout: 260 seconds] 16:27 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 16:31 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 246 seconds] 16:39 -!- brunoerg [~brunoerg@187.183.43.117] has joined #bitcoin-wizards 16:43 -!- brunoerg [~brunoerg@187.183.43.117] has quit [Ping timeout: 246 seconds] 16:55 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 16:55 < stevenroose> instagibbs: Also not in Script? :) 16:56 < stevenroose> F.e. to prove that you're committing to a certain prevout, i.e. that youre spending a certain UTXO, you need to take all other prevouts on the stack, hash them all together in a streaming hash to not reach the max stack size limit. 16:57 < stevenroose> Is there a maximum number of inputs on a tx? Is there a de-facto limit that is somehow known and documented? 16:58 < stevenroose> instagibbs: in this blob of prevouts, you also need to somehow know the index of the one you're picking out as the prevout you're signing for, because then later you commit to the index. It's pretty annoying to do without something like a simple for loop. 16:59 < stevenroose> > The maximum number of inputs that can fit in a valid transaction is 24386. 16:59 < stevenroose> Thanks, achow101 (https://bitcoin.stackexchange.com/questions/85752/maximum-number-of-inputs-per-transaction), that's insanely high. I'll do similar math using taproot. 16:59 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 240 seconds] 17:12 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 17:12 -!- AaronvanW [~AaronvanW@user/AaronvanW] has quit [Quit: Leaving...] 17:17 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 246 seconds] 17:33 -!- brunoerg [~brunoerg@187.183.43.117] has joined #bitcoin-wizards 17:39 -!- brunoerg [~brunoerg@187.183.43.117] has quit [Ping timeout: 246 seconds] 17:50 -!- brunoerg [~brunoerg@187.183.43.117] has joined #bitcoin-wizards 17:55 -!- brunoerg [~brunoerg@187.183.43.117] has quit [Ping timeout: 245 seconds] 18:00 -!- wudu_ [~wudu@dynamic-077-012-141-126.77.12.pool.telefonica.de] has quit [Ping timeout: 246 seconds] 18:06 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 18:11 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 246 seconds] 18:22 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 18:27 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 260 seconds] 18:35 -!- brunoerg [~brunoerg@187.183.43.117] has joined #bitcoin-wizards 18:40 -!- brunoerg [~brunoerg@187.183.43.117] has quit [Ping timeout: 245 seconds] 19:02 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 19:13 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 260 seconds] 19:18 -!- jonatack [~jonatack@user/jonatack] has quit [Read error: Connection reset by peer] 19:18 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-wizards 19:19 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 19:24 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 246 seconds] 19:30 -!- tristan_ [~tristan_@120.88.40.209] has joined #bitcoin-wizards 19:30 -!- Ademan [~ademan@47.161.41.51] has joined #bitcoin-wizards 19:33 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 19:38 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 260 seconds] 19:44 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 19:48 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 246 seconds] 20:07 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 20:12 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 245 seconds] 20:17 -!- jonatack [~jonatack@user/jonatack] has quit [Read error: Connection reset by peer] 20:18 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-wizards 20:43 -!- brunoerg [~brunoerg@187.183.43.117] has joined #bitcoin-wizards 20:48 -!- brunoerg [~brunoerg@187.183.43.117] has quit [Ping timeout: 260 seconds] 21:05 -!- brunoerg [~brunoerg@187.183.43.117] has joined #bitcoin-wizards 21:10 -!- brunoerg [~brunoerg@187.183.43.117] has quit [Ping timeout: 260 seconds] 21:15 -!- vysn [~vysn@user/vysn] has joined #bitcoin-wizards 21:27 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 21:32 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 260 seconds] 21:47 -!- brunoerg [~brunoerg@187.183.43.117] has joined #bitcoin-wizards 21:51 -!- brunoerg [~brunoerg@187.183.43.117] has quit [Ping timeout: 246 seconds] 22:04 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 22:10 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 246 seconds] 22:24 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 22:28 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 245 seconds] 22:35 -!- jonatack [~jonatack@user/jonatack] has quit [Read error: Connection reset by peer] 22:35 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-wizards 22:47 -!- tromp [~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl] has joined #bitcoin-wizards 23:01 -!- tromp [~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl] has quit [Quit: My iMac has gone to sleep. ZZZzzz…] 23:09 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 23:13 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 245 seconds] 23:15 -!- Guyver2 [~Guyver@77-174-98-73.fixed.kpn.net] has joined #bitcoin-wizards 23:26 -!- Chris_Stewart_5 [~Chris_Ste@68.235.43.59] has quit [Ping timeout: 260 seconds] 23:27 -!- Chris_Stewart_5 [~Chris_Ste@68.235.43.102] has joined #bitcoin-wizards 23:34 -!- tromp [~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl] has joined #bitcoin-wizards 23:42 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 23:44 -!- salvatoshi [~salvatosh@genymobile-2-6-86.fib.nerim.net] has joined #bitcoin-wizards 23:47 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 260 seconds] 23:54 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has joined #bitcoin-wizards 23:58 -!- brunoerg [~brunoerg@2804:14c:3bfb:8a:b5fa:c720:36b1:a1dc] has quit [Ping timeout: 245 seconds] --- Log closed Mon Aug 07 00:00:21 2023