{
  "founder": "achow101",
  "channel": "#bitcoin-core-dev",
  "network": "libera",
  "id": "80b068a61549407196d25b1fa57d4d5f",
  "name": "#bitcoin-core-dev",
  "chair": "achow101",
  "chairs": [
    "achow101"
  ],
  "nicks": {
    "achow101": 24,
    "core-meetingbot": 2,
    "michaelfolkson": 29,
    "fjahr": 1,
    "Murch[m]": 6,
    "sipa": 16,
    "bitcoin-git": 1
  },
  "start_time": "2021-08-13T19:00:24+00:00",
  "end_time": "2021-08-13T19:29:34+00:00",
  "active": false,
  "original_topic": "Bitcoin Core development discussion and commit log | Feel free to watch, but please take commentary and usage questions to #bitcoin | Channel logs: http://www.erisian.com.au/bitcoin-core-dev/, http://gnusha.org/bitcoin-core-dev/ | Meeting topics http://gnusha.org/bitcoin-core-dev/proposedmeetingtopics.txt / http://gnusha.org/bitcoin-core-dev/proposedwalletmeetingtopics.txt",
  "current_topic": null,
  "messages": [
    {
      "id": "4163100eb4f14acc8ae13bd71acf10b2",
      "sender": "achow101",
      "payload": "#startmeeting",
      "action": false,
      "timestamp": "2021-08-13T19:00:24+00:00"
    },
    {
      "id": "56a6979d15e546c3971798807c018b52",
      "sender": "core-meetingbot",
      "payload": "Meeting started Fri Aug 13 19:00:24 2021 UTC.  The chair is achow101. Information about MeetBot at https://bitcoin.jonasschnelli.ch/ircmeetings.",
      "action": false,
      "timestamp": "2021-08-13T19:00:25+00:00"
    },
    {
      "id": "cb84e6acd2d9462b8e83378bba0ffd6d",
      "sender": "core-meetingbot",
      "payload": "Available commands: action commands idea info link nick",
      "action": false,
      "timestamp": "2021-08-13T19:00:25+00:00"
    },
    {
      "id": "fb4125e20dec42cc85ab53ec9a37c241",
      "sender": "michaelfolkson",
      "payload": "hi",
      "action": false,
      "timestamp": "2021-08-13T19:00:31+00:00"
    },
    {
      "id": "0d87e1ab19aa4cf6878a482a44f0696f",
      "sender": "achow101",
      "payload": "#bitcoin-core-dev Wallet Meeting: achow101 _aj_ amiti ariard BlueMatt cfields Chris_Stewart_5 darosior digi_james dongcarl elichai2 emilengler fanquake fjahr gleb glozow gmaxwell gwillen hebasto instagibbs jamesob jarolrod jb55 jeremyrubin jl2012 jnewbery jonasschnelli jonatack jtimon kallewoof kanzure kvaciral laanwj lightlike luke-jr maaku marcofalke meshcollider michagogo moneyball morcos nehan NicolasDorier paveljanik petertodd",
      "action": false,
      "timestamp": "2021-08-13T19:00:32+00:00"
    },
    {
      "id": "3b1fcf88b69e4f389c878a1f0b9ad1d7",
      "sender": "achow101",
      "payload": "phantomcircuit promag provoostenator ryanofsky sdaftuar sipa vasild",
      "action": false,
      "timestamp": "2021-08-13T19:00:32+00:00"
    },
    {
      "id": "9df18db2645c49549e8d51489bb33085",
      "sender": "achow101",
      "payload": "anyone have any wallet topics to talk about?",
      "action": false,
      "timestamp": "2021-08-13T19:00:52+00:00"
    },
    {
      "id": "4ad31836c2f9427e9a5e5eb2a0ee55aa",
      "sender": "fjahr",
      "payload": "hi",
      "action": false,
      "timestamp": "2021-08-13T19:00:52+00:00"
    },
    {
      "id": "68112e76042348238795547b9ebacb18",
      "sender": "michaelfolkson",
      "payload": "I have some more Taproot descriptor questions if there is nothing else",
      "action": false,
      "timestamp": "2021-08-13T19:01:10+00:00"
    },
    {
      "id": "53baaa20d8cf4709ae3152bd4c3a64ef",
      "sender": "achow101",
      "payload": "I think S3RK had something, if he's around",
      "action": false,
      "timestamp": "2021-08-13T19:01:34+00:00"
    },
    {
      "id": "c13a0ea91d6e4fcab9e10ca3bcdc24bf",
      "sender": "achow101",
      "payload": "michaelfolkson: go ahead",
      "action": false,
      "timestamp": "2021-08-13T19:02:19+00:00"
    },
    {
      "id": "92c1f62c67ec479fbf64f10f94db1442",
      "sender": "michaelfolkson",
      "payload": "Ok cool. So I watched your Twitch session on creating a new generatedescriptor RPC",
      "action": false,
      "timestamp": "2021-08-13T19:03:07+00:00"
    },
    {
      "id": "9f540d1d9e974f728c07434ebf67ce11",
      "sender": "michaelfolkson",
      "payload": "https://www.twitch.tv/videos/1105987609",
      "action": false,
      "timestamp": "2021-08-13T19:03:11+00:00"
    },
    {
      "id": "5f06ce3e010249a39b0cf025eef38158",
      "sender": "michaelfolkson",
      "payload": "I'm trying to check that I understand the problem you're trying to solve. (You did say there were a number of possible approaches)",
      "action": false,
      "timestamp": "2021-08-13T19:03:50+00:00"
    },
    {
      "id": "015c83c90cdc4560a9e17173b6b65453",
      "sender": "michaelfolkson",
      "payload": "So I could have a HD tree with ECDSA child pubkeys. Could I continue to use that HD tree and generate Schnorr pubkeys?",
      "action": false,
      "timestamp": "2021-08-13T19:04:43+00:00"
    },
    {
      "id": "4fe5703e35ce4e7ea47a4ed902e3f9e7",
      "sender": "achow101",
      "payload": "yes, they're points on the same curve",
      "action": false,
      "timestamp": "2021-08-13T19:05:17+00:00"
    },
    {
      "id": "4da272056dce4b6dbf5cf4e30554e4b4",
      "sender": "michaelfolkson",
      "payload": "Either reusing the same private keys (not ideal) or just generate more child private keys and turn them into Schnorr pubkeys",
      "action": false,
      "timestamp": "2021-08-13T19:05:26+00:00"
    },
    {
      "id": "1b01331092f34ec297ef4cb767d0d015",
      "sender": "michaelfolkson",
      "payload": "Ok so one question is whether to start a new HD tree for your Taproot descriptors or continue using an existing one",
      "action": false,
      "timestamp": "2021-08-13T19:06:14+00:00"
    },
    {
      "id": "745af463a8d747818f2c31f346fb50ba",
      "sender": "achow101",
      "payload": "ecdsa pubkeys and schnorr pubkeys are fundamentally the same thing",
      "action": false,
      "timestamp": "2021-08-13T19:06:14+00:00"
    },
    {
      "id": "d9318068d3d04743bdb465b50bb0326f",
      "sender": "michaelfolkson",
      "payload": "A user might want to do one or the other?",
      "action": false,
      "timestamp": "2021-08-13T19:06:24+00:00"
    },
    {
      "id": "8d64b2cdcae74e128408c126cfe6a05e",
      "sender": "achow101",
      "payload": "it's generally discouraged to use the same pubkeys in different addresses",
      "action": false,
      "timestamp": "2021-08-13T19:06:57+00:00"
    },
    {
      "id": "d71cb26dae12493c94c2fda395027050",
      "sender": "michaelfolkson",
      "payload": "Right but lower leaves on the same tree or just start afresh with a new tree?",
      "action": false,
      "timestamp": "2021-08-13T19:07:27+00:00"
    },
    {
      "id": "9c0e5175e4874a93904206ca9e527b4d",
      "sender": "achow101",
      "payload": "BIP 86 suggests a derivation path to use for keys used in taproot addresses",
      "action": false,
      "timestamp": "2021-08-13T19:08:03+00:00"
    },
    {
      "id": "372b2a110b4443ab8316952f83379bc3",
      "sender": "achow101",
      "payload": "most other wallets will probably use that",
      "action": false,
      "timestamp": "2021-08-13T19:08:18+00:00"
    },
    {
      "id": "11da77a7b73c4ea2a8c28af38831f3a5",
      "sender": "michaelfolkson",
      "payload": "Ok",
      "action": false,
      "timestamp": "2021-08-13T19:08:30+00:00"
    },
    {
      "id": "d9b6330f26a74b3d964d7689771e3d7f",
      "sender": "Murch[m]",
      "payload": "Same keys for two different signing algos is dangerous because you may leak the key",
      "action": false,
      "timestamp": "2021-08-13T19:08:51+00:00"
    },
    {
      "id": "ed7a652caa664f3eb919f1f4d4750ab1",
      "sender": "achow101",
      "payload": "with descriptors, it doesn't particularly matter whether we use the same master key because it is encoded in the descriptor itself",
      "action": false,
      "timestamp": "2021-08-13T19:09:12+00:00"
    },
    {
      "id": "f6bb8864edc14e7b9a22a29e0a603501",
      "sender": "michaelfolkson",
      "payload": "Murch: I think that was covered here right? https://bitcoin.stackexchange.com/questions/107924/are-there-risks-to-using-the-same-private-key-for-both-ecdsa-and-schnorr-signatu",
      "action": false,
      "timestamp": "2021-08-13T19:09:35+00:00"
    },
    {
      "id": "d6f5cae5e8be4ad58b6fa6d4a312c79e",
      "sender": "michaelfolkson",
      "payload": "As long as you don't reuse nonces you are ok even if you are using the same private key to generate a ECDSA pubkey and a Schnorr pubkey",
      "action": false,
      "timestamp": "2021-08-13T19:10:40+00:00"
    },
    {
      "id": "140d5241ba0f4742abc0c9007a556087",
      "sender": "achow101",
      "payload": "deterministic nonces make that basically impossible",
      "action": false,
      "timestamp": "2021-08-13T19:11:32+00:00"
    },
    {
      "id": "fdf507a6496641bab12d42aa22443153",
      "sender": "michaelfolkson",
      "payload": "I think you're ok using the same private key to generate (and sign from) a ECDSA pubkey and a Schnorr pubkey but you probably shouldn't do it",
      "action": false,
      "timestamp": "2021-08-13T19:12:26+00:00"
    },
    {
      "id": "26099071c53f4e3eb24ab3f8b8754157",
      "sender": "Murch[m]",
      "payload": "That seems right, but still like an unnecessary risk, when just deriving another subtree is trivial",
      "action": false,
      "timestamp": "2021-08-13T19:13:18+00:00"
    },
    {
      "id": "6352d77f53ae434bab9d0e946179cd9d",
      "sender": "achow101",
      "payload": "it's not good from a privacy perspective; same applies to using the same pubkey in segwit and non-segwit addresses",
      "action": false,
      "timestamp": "2021-08-13T19:13:23+00:00"
    },
    {
      "id": "ae44384051df4c51a0bc89e694f06d68",
      "sender": "sipa",
      "payload": "i would discourage reusing the same keys for two different algorithms, but there are no known attacks against it per se",
      "action": false,
      "timestamp": "2021-08-13T19:13:44+00:00"
    },
    {
      "id": "cd5d1b8e2217492cbcb02c3f8999936e",
      "sender": "Murch[m]",
      "payload": "Ah yeah, good point. Reusing keys is essentially the same as address reuse",
      "action": false,
      "timestamp": "2021-08-13T19:13:58+00:00"
    },
    {
      "id": "e96b928b86ee448db0caffa2a47e8e0f",
      "sender": "michaelfolkson",
      "payload": "Ok cool, another question... might a user want to migrate from a HD tree of non-Taproot pubkeys to a HD tree of Taproot pubkeys?",
      "action": false,
      "timestamp": "2021-08-13T19:14:24+00:00"
    },
    {
      "id": "4e1bd091993c44b89a720764e1034e03",
      "sender": "sipa",
      "payload": "what does that mean?",
      "action": false,
      "timestamp": "2021-08-13T19:14:36+00:00"
    },
    {
      "id": "9574175833124352b19fe50372b5218b",
      "sender": "michaelfolkson",
      "payload": "You have a HD tree pre Taproot activation with ECDSA child pubkeys",
      "action": false,
      "timestamp": "2021-08-13T19:15:13+00:00"
    },
    {
      "id": "eeef0b37d8a94c0693b08ad8fdcf2017",
      "sender": "michaelfolkson",
      "payload": "Then you want to transfer that over to a HD tree post Taproot activation with Schnorr child pubkeys",
      "action": false,
      "timestamp": "2021-08-13T19:15:37+00:00"
    },
    {
      "id": "bfefffb1bd8744debd8a8a65c39026fd",
      "sender": "michaelfolkson",
      "payload": "In future for things like CHECKSIGADD support you'd want as many pubkeys as possible to be Schnorr right?",
      "action": false,
      "timestamp": "2021-08-13T19:16:12+00:00"
    },
    {
      "id": "0f470633627e4d17a94b389f067709f3",
      "sender": "sipa",
      "payload": "that's irrelevant",
      "action": false,
      "timestamp": "2021-08-13T19:16:28+00:00"
    },
    {
      "id": "47513412f21d4153b20b8ea945f738af",
      "sender": "sipa",
      "payload": "you'd need to move them again to a CHECKSIGADD based svript",
      "action": false,
      "timestamp": "2021-08-13T19:16:44+00:00"
    },
    {
      "id": "c3f1c98f73954de3aaf907e659000e0a",
      "sender": "sipa",
      "payload": "and they're strictly separate",
      "action": false,
      "timestamp": "2021-08-13T19:17:17+00:00"
    },
    {
      "id": "40d1eb355f824991a706c71c27a753db",
      "sender": "sipa",
      "payload": "you *cannot* use ECDSA signatures in taproot outputs",
      "action": false,
      "timestamp": "2021-08-13T19:17:32+00:00"
    },
    {
      "id": "9d4f75ffeb3d447e8ccfd58fb9688d28",
      "sender": "Murch[m]",
      "payload": "What script you use to create `scriptPubKeys` is orthogonal from the keys",
      "action": false,
      "timestamp": "2021-08-13T19:17:33+00:00"
    },
    {
      "id": "226d3acf10164f38931b2b92d2399a87",
      "sender": "michaelfolkson",
      "payload": "Aren't the Schnorr pubkeys that you're using for the Taproot multisig address generated from the HD tree?",
      "action": false,
      "timestamp": "2021-08-13T19:18:38+00:00"
    },
    {
      "id": "f27c0bca31394597ac025360891798d8",
      "sender": "achow101",
      "payload": "michaelfolkson: you would use a different derivation path",
      "action": false,
      "timestamp": "2021-08-13T19:18:51+00:00"
    },
    {
      "id": "411306bd74d94f9d9423c078cb8cfb1e",
      "sender": "sipa",
      "payload": "michaelfolkson: hmm, i don't know where to start; you're confusing very different layers i think",
      "action": false,
      "timestamp": "2021-08-13T19:19:28+00:00"
    },
    {
      "id": "e551f20fae4b4a6e9d9c4ccda5bcf834",
      "sender": "bitcoin-git",
      "payload": "[bitcoin] jamesob opened pull request #22699: doc: add libboost-thread-dev to build-unix (master...2021-08-build-unix-boost-thread) https://github.com/bitcoin/bitcoin/pull/22699",
      "action": false,
      "timestamp": "2021-08-13T19:19:48+00:00"
    },
    {
      "id": "674cf391cb914b6e862e1f26267d1bd8",
      "sender": "sipa",
      "payload": "in a taproot output, by definition all keys are schnorr keys",
      "action": false,
      "timestamp": "2021-08-13T19:19:54+00:00"
    },
    {
      "id": "c5820f3232a640f1a491b8cc2ba0f414",
      "sender": "sipa",
      "payload": "and what keys were used on those funfs before that point is irrelevent",
      "action": false,
      "timestamp": "2021-08-13T19:20:17+00:00"
    },
    {
      "id": "90f6e7a4f7c1404f8c6c2b82d9fbd907",
      "sender": "sipa",
      "payload": "*funds",
      "action": false,
      "timestamp": "2021-08-13T19:20:23+00:00"
    },
    {
      "id": "f67f658b7b30460c9e9bb4da48c8581e",
      "sender": "michaelfolkson",
      "payload": "They are but they are generated somewhere. And they could be generated within a HD tree.... never mind I'll revisit if I'm confused",
      "action": false,
      "timestamp": "2021-08-13T19:20:45+00:00"
    },
    {
      "id": "d12d1e3cf5b3439296dee54e36eebb11",
      "sender": "Murch[m]",
      "payload": "michaelfolkson: The HD Tree specifies your private keys. The public keys are strictly derived data from the private keys.",
      "action": false,
      "timestamp": "2021-08-13T19:20:57+00:00"
    },
    {
      "id": "a19891b8e5ae4f068e5a2583df8e0a21",
      "sender": "sipa",
      "payload": "yes, they can be generated by an HD tree",
      "action": false,
      "timestamp": "2021-08-13T19:20:59+00:00"
    },
    {
      "id": "4814c7239d9e453b86a8137a69b5d4ff",
      "sender": "Murch[m]",
      "payload": "And `scriptPubKeys` are yet another level of derivation from the involved public keys",
      "action": false,
      "timestamp": "2021-08-13T19:21:16+00:00"
    },
    {
      "id": "7fad750716b449b2a595c7751c4a2546",
      "sender": "sipa",
      "payload": "but schnorr keys and ecdsa keys aren't fundamentally different",
      "action": false,
      "timestamp": "2021-08-13T19:21:51+00:00"
    },
    {
      "id": "0220079c39874a4bb4929540276ee48c",
      "sender": "michaelfolkson",
      "payload": "Ok so my concept of a ECDSA HD tree and a Schnorr HD tree doesn't make any sense",
      "action": false,
      "timestamp": "2021-08-13T19:22:03+00:00"
    },
    {
      "id": "7489d203d123426eafc3e88e73b8c98b",
      "sender": "sipa",
      "payload": "they use slightly different encoding, and ideally you use a separate tree branch for it",
      "action": false,
      "timestamp": "2021-08-13T19:22:08+00:00"
    },
    {
      "id": "b2a6405ee48746f1917adff3948f57d1",
      "sender": "sipa",
      "payload": "but they're all just keys",
      "action": false,
      "timestamp": "2021-08-13T19:22:14+00:00"
    },
    {
      "id": "08e9d48ab4e2451aaf9010beb0e5d1a9",
      "sender": "sipa",
      "payload": "and if you use a key in a taproot output, it's by definition a schnorr key",
      "action": false,
      "timestamp": "2021-08-13T19:22:26+00:00"
    },
    {
      "id": "297b9c3d01c74d548b53f9cfe0602b9a",
      "sender": "michaelfolkson",
      "payload": "Ok thanks",
      "action": false,
      "timestamp": "2021-08-13T19:22:43+00:00"
    },
    {
      "id": "0a85bf52a5e9486faa418fc142462cf6",
      "sender": "michaelfolkson",
      "payload": "Is there any future proofing that needs to be thought about for CHECKSIGADD, MuSig when thinking about this generatedescriptor RPC? I'm assuming not from the above",
      "action": false,
      "timestamp": "2021-08-13T19:23:39+00:00"
    },
    {
      "id": "3583ba8431724f12abcbc2c173ad51db",
      "sender": "sipa",
      "payload": "not as long as generatedescriptor doesn't use any of those",
      "action": false,
      "timestamp": "2021-08-13T19:24:04+00:00"
    },
    {
      "id": "9f23bd0fcb784789a17ace044aa23201",
      "sender": "achow101",
      "payload": "michaelfolkson: we won't generate such descriptors. they involve more than one party, we can't automatically generate them",
      "action": false,
      "timestamp": "2021-08-13T19:24:07+00:00"
    },
    {
      "id": "5224b60e1a464130b9140f21c905b6bf",
      "sender": "achow101",
      "payload": "I intend for generatedescriptor to be solely for single key descriptors, either to rotate keys, or to add a new single key descriptor",
      "action": false,
      "timestamp": "2021-08-13T19:25:25+00:00"
    },
    {
      "id": "c657ad2feb124d5582d8656aecc6a00b",
      "sender": "michaelfolkson",
      "payload": "Ok so the generatedescriptor is just a one off design/code challenge because we haven't previously created descriptors before... (at least for Taproot)...",
      "action": false,
      "timestamp": "2021-08-13T19:25:41+00:00"
    },
    {
      "id": "0bbdd950f06542b694e730855e6c5a11",
      "sender": "achow101",
      "payload": "yes",
      "action": false,
      "timestamp": "2021-08-13T19:25:48+00:00"
    },
    {
      "id": "bcb8841f9f7a49d5bece72bcf72f4b38",
      "sender": "michaelfolkson",
      "payload": "Ok cool, thanks",
      "action": false,
      "timestamp": "2021-08-13T19:26:25+00:00"
    },
    {
      "id": "b0c19273b364458da96eebf4180ec290",
      "sender": "achow101",
      "payload": "anything else to discuss?",
      "action": false,
      "timestamp": "2021-08-13T19:27:06+00:00"
    },
    {
      "id": "52de8956a8c04f5d866ee39abc5939fd",
      "sender": "michaelfolkson",
      "payload": "Did you work on alternative approaches to the one who did in the Twitch stream?",
      "action": false,
      "timestamp": "2021-08-13T19:27:26+00:00"
    },
    {
      "id": "eaed1c8ee7e44c028a512358efa452b7",
      "sender": "achow101",
      "payload": "no",
      "action": false,
      "timestamp": "2021-08-13T19:27:35+00:00"
    },
    {
      "id": "86ebade74c814f51a8d08e9bb4daa76b",
      "sender": "michaelfolkson",
      "payload": "You're happy with that one?",
      "action": false,
      "timestamp": "2021-08-13T19:27:44+00:00"
    },
    {
      "id": "74fe5224d25649aea9f61cf233b0d6a3",
      "sender": "achow101",
      "payload": "no",
      "action": false,
      "timestamp": "2021-08-13T19:27:47+00:00"
    },
    {
      "id": "226f9034ee5346f885c7863b1035631c",
      "sender": "achow101",
      "payload": "just busy with other stuff",
      "action": false,
      "timestamp": "2021-08-13T19:27:54+00:00"
    },
    {
      "id": "1ac2169493d3456db7353491103a0861",
      "sender": "michaelfolkson",
      "payload": "Fair enough :)",
      "action": false,
      "timestamp": "2021-08-13T19:28:02+00:00"
    },
    {
      "id": "6b25dd2febf84b4bb561727c5243304b",
      "sender": "michaelfolkson",
      "payload": "Ok that's all from me",
      "action": false,
      "timestamp": "2021-08-13T19:28:09+00:00"
    },
    {
      "id": "13d728ac11bd446f981d950a210a4d33",
      "sender": "achow101",
      "payload": "anyone else have anything to discuss?",
      "action": false,
      "timestamp": "2021-08-13T19:28:48+00:00"
    },
    {
      "id": "6a614f96192e4eb38688ae2337f457bb",
      "sender": "achow101",
      "payload": "#endmeeting",
      "action": false,
      "timestamp": "2021-08-13T19:29:34+00:00"
    }
  ],
  "events": [
    {
      "event_type": "START_MEETING",
      "message": {
        "id": "4163100eb4f14acc8ae13bd71acf10b2",
        "sender": "achow101",
        "payload": "#startmeeting",
        "action": false,
        "timestamp": "2021-08-13T19:00:24+00:00"
      },
      "operand": null,
      "id": "4163100eb4f14acc8ae13bd71acf10b2",
      "timestamp": "2021-08-13T19:00:24+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "9f540d1d9e974f728c07434ebf67ce11",
        "sender": "michaelfolkson",
        "payload": "https://www.twitch.tv/videos/1105987609",
        "action": false,
        "timestamp": "2021-08-13T19:03:11+00:00"
      },
      "operand": "https://www.twitch.tv/videos/1105987609",
      "id": "9f540d1d9e974f728c07434ebf67ce11",
      "timestamp": "2021-08-13T19:03:11+00:00"
    },
    {
      "event_type": "END_MEETING",
      "message": {
        "id": "6a614f96192e4eb38688ae2337f457bb",
        "sender": "achow101",
        "payload": "#endmeeting",
        "action": false,
        "timestamp": "2021-08-13T19:29:34+00:00"
      },
      "operand": null,
      "id": "6a614f96192e4eb38688ae2337f457bb",
      "timestamp": "2021-08-13T19:29:34+00:00"
    }
  ],
  "aliases": {},
  "vote_in_progress": false,
  "motion_index": null
}