<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated></updated>
  <generator>https://nostr.ae</generator>

  <title>Nostr notes by </title>
  <author>
    <name></name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.ae/npub1txgfckk6qxy5yh6c7sag0m4sjycag8fn9xx7jj5efpf05s7ztt7s5grmss.rss" />
  <link href="https://nostr.ae/npub1txgfckk6qxy5yh6c7sag0m4sjycag8fn9xx7jj5efpf05s7ztt7s5grmss" />
  <id>https://nostr.ae/npub1txgfckk6qxy5yh6c7sag0m4sjycag8fn9xx7jj5efpf05s7ztt7s5grmss</id>
  <icon></icon>
  <logo></logo>




  <entry>
    <id>https://nostr.ae/nevent1qqstepd0ey0pn0nst80sqxq2dctdxgyqha5htmenkl3m083q9srg3hszypvep8z6mgqcjsjltr6r4plwkzgnr4qaxv5cm622n9y997jrcfd06vvr6ql</id>
    
      <title type="html">📅 Original date posted:2023-08-04 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstepd0ey0pn0nst80sqxq2dctdxgyqha5htmenkl3m083q9srg3hszypvep8z6mgqcjsjltr6r4plwkzgnr4qaxv5cm622n9y997jrcfd06vvr6ql" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsypeyjlkqk7khau94r5f4gfmghfuwkaydkkv4k8fwr7s4pxu9rq0g653p6z&#39;&gt;nevent1q…3p6z&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-08-04&lt;br/&gt;🗒️ Summary of this message: Adding a field to silent payment addresses to encode expiration dates in terms of days after an epoch can fix the risk of non-expiring addresses in Bitcoin. Custom compact encoding can be used for different levels of granularity.&lt;br/&gt;📝 Original message:&lt;br/&gt;I agree. Non-expiring addresses are a significant risk to bitcoin users.&lt;br/&gt;&lt;br/&gt;On 2023-08-04 (Fri) at 17:39:03 &#43;0000, Peter Todd via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Fixing this is easy: add a 3 byte field to silent payments addresses, encoding&lt;br/&gt;&amp;gt; the expiration date in terms of days after some epoch. 2^24 days is 45,000&lt;br/&gt;&amp;gt; years, more than enough. Indeed, 2 bytes is probably fine too: 2^16 days is 180&lt;br/&gt;&amp;gt; years. We&amp;#39;ll be lucky if Bitcoin still exists in 180 years.&lt;br/&gt;&lt;br/&gt;Instead of a fixed width nDays, consider a custom compact encoding with&lt;br/&gt;the position of the first 0-bit indicating the number of extension bytes&lt;br/&gt;and the encoded granularity.&lt;br/&gt;&lt;br/&gt;bytes | prefix     | usable bits | granularity | max expiration&lt;br/&gt;------|------------|-------------|-------------|---------------&lt;br/&gt;1     | 0b0        |   7         | year        | 128 years&lt;br/&gt;2     | 0b10       |  14         | week        | 315 years&lt;br/&gt;3     | 0b110      |  21         | day         | 5700 years&lt;br/&gt;4     | 0b1110     |  28         | block       | 5100 years&lt;br/&gt;5     | 0b11110    |  35         | ???         | ???&lt;br/&gt;6     | 0b111110   |  42         | ???         | ???&lt;br/&gt;7     | 0b1111110  |  49         | ???         | ???&lt;br/&gt;8     | 0b11111110 |  56         | ???         | ???&lt;br/&gt;&lt;br/&gt;For address expiration, year or week expiration will typically be&lt;br/&gt;sufficiently granular, but for rare occasions more granularity can be&lt;br/&gt;encoded with longer addresses. This method also degrades cleanly even if&lt;br/&gt;the same address format is still in use in 100 or 300 years.&lt;br/&gt;&lt;br/&gt;I included block-based expiration to enable SP users to match CLTVs&lt;br/&gt;embedded in their scripts, e.g.&lt;br/&gt;  &amp;lt;2 years&amp;gt; OP_CLTV &amp;lt;recovery_path&amp;gt; OP_VAULT_RECOVER&lt;br/&gt;or&lt;br/&gt;  &amp;lt;2 years&amp;gt; OP_CLTV &amp;lt;backup_key&amp;gt; OP_CHECKSIG&lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;&lt;br/&gt;--Brandon
    </content>
    <updated>2023-08-05T21:58:15Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxu74rdm7qunh0q973fa0kln3lay80fdh2u4mm9fven70l6wgavpczypvep8z6mgqcjsjltr6r4plwkzgnr4qaxv5cm622n9y997jrcfd06gwhtey</id>
    
      <title type="html">📅 Original date posted:2023-03-13 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxu74rdm7qunh0q973fa0kln3lay80fdh2u4mm9fven70l6wgavpczypvep8z6mgqcjsjltr6r4plwkzgnr4qaxv5cm622n9y997jrcfd06gwhtey" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstvkdlpquku3zte2vaexp34yqjf8qzc45a85g6h63839stgsgzyyqdw8vzz&#39;&gt;nevent1q…8vzz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-03-13&lt;br/&gt;🗒️ Summary of this message: Brandon suggests replacing the internal key with a hardcoded NUMS point to enable batching of multiple vault inputs with the same scriptpubkey.&lt;br/&gt;📝 Original message:Hi Gents,&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt; I don&amp;#39;t think replacing the internal-public-key makes sense -- if it&lt;br/&gt;&amp;gt; was immediately spendable via the keypath before there&amp;#39;s no reason for&lt;br/&gt;&amp;gt; it not to be immediately spendable now.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Slavishly following the current proposal was the idea to make sure all&lt;br/&gt;&amp;gt; functionality was captured; I agree with this change.&lt;br/&gt;&lt;br/&gt;I think we do need to replace the internal key with a hardcoded NUMS&lt;br/&gt;point to allow us to batch multiple vault inputs which might have&lt;br/&gt;different internal keys but the same OP_FLU/OP_VAULT_TRIGGER script to&lt;br/&gt;the same time&#43;template-restricted output.&lt;br/&gt;&lt;br/&gt;I like that in James&amp;#39; current PR proposal we can explicitly batch via&lt;br/&gt;the implied input/output summation rules while avoiding address reuse.&lt;br/&gt;If we can retain some or all of that, I think it would be good for on&lt;br/&gt;chain efficiency and potentially privacy.&lt;br/&gt;&lt;br/&gt;My thoughts on batching:&lt;br/&gt;&lt;br/&gt;Many inputs with different internal keys can be combined to satisfy the&lt;br/&gt;total output value for a single output, as long as their scriptpubkeys&lt;br/&gt;with FLU and NUMS internal key are equal This enables avoiding address&lt;br/&gt;reuse within the vault.&lt;br/&gt;&lt;br/&gt;Many inputs with the same scriptpubkey can be combined to satisfy a&lt;br/&gt;single CTV output template. This allows a user to unfsck themselves if&lt;br/&gt;they initiate a withdrawal that cannot be satisfied because they didn&amp;#39;t&lt;br/&gt;send enough sats to satisfy their template.&lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;&lt;br/&gt;--Brandon
    </content>
    <updated>2023-06-07T23:20:08Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsx6c35nrxrxvj6xtrzmgycpz53c72kf4y8ud8329z9d89xdc8yhhgzypvep8z6mgqcjsjltr6r4plwkzgnr4qaxv5cm622n9y997jrcfd06cdcpa3</id>
    
      <title type="html">📅 Original date posted:2022-08-24 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsx6c35nrxrxvj6xtrzmgycpz53c72kf4y8ud8329z9d89xdc8yhhgzypvep8z6mgqcjsjltr6r4plwkzgnr4qaxv5cm622n9y997jrcfd06cdcpa3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxhtalm7sldttwfxp7lffvedmf60q9j74ar3d26zqga3k3ak9ptec8karny&#39;&gt;nevent1q…arny&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-08-24&lt;br/&gt;📝 Original message:On 2022-08-24 (Wed) at 11:18:43 &#43;0200, Craig Raw via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; I would like to propose a BIP that specifies a format for the export and&lt;br/&gt;&amp;gt; import of labels from a wallet. While transferring access to funds across&lt;br/&gt;&amp;gt; wallet applications has been made simple through standards such as BIP39,&lt;br/&gt;&amp;gt; wallet labels remain siloed and difficult to extract despite their value,&lt;br/&gt;&amp;gt; particularly in a privacy context.&lt;br/&gt;&lt;br/&gt;I like the idea of standardizing the transfer of this valuable&lt;br/&gt;information.&lt;br/&gt;&lt;br/&gt;&amp;gt; The proposed format is a simple two column CSV file, with the reference to&lt;br/&gt;&amp;gt; a transaction, address, input or output in the first column, and the label&lt;br/&gt;&amp;gt; in the second column. CSV was chosen for its wide accessibility, especially&lt;br/&gt;&amp;gt; to users without specific technical expertise. Similarly, the CSV file may&lt;br/&gt;&amp;gt; be compressed using the ZIP format, and optionally encrypted using AES.&lt;br/&gt;&lt;br/&gt;It seems like the format would be more useful if it also included&lt;br/&gt;descriptors so that a single file could be used to transfer a wallet. I&lt;br/&gt;think such an addition would improve usability for advanced users who&lt;br/&gt;might have many such CSVs to manage, and would then be able to more&lt;br/&gt;easily select between them. Descriptor,Label pairs could also be useful&lt;br/&gt;in the format for the transfer of a wallet with several sub accounts.&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;&lt;br/&gt;--Brandon
    </content>
    <updated>2023-06-07T23:13:03Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfknmaxp60z4853eukjtuq6y8yzzz3s7000sg4duzk8gnx5n2gksszypvep8z6mgqcjsjltr6r4plwkzgnr4qaxv5cm622n9y997jrcfd06wut9y0</id>
    
      <title type="html">📅 Original date posted:2022-05-10 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfknmaxp60z4853eukjtuq6y8yzzz3s7000sg4duzk8gnx5n2gksszypvep8z6mgqcjsjltr6r4plwkzgnr4qaxv5cm622n9y997jrcfd06wut9y0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsr4u57dfs0pzzjp4nrqusksh6uva6juy2na5hmrtm8x6pzd4hhwcqc0fkyk&#39;&gt;nevent1q…fkyk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-05-10&lt;br/&gt;📝 Original message:Hi Rusty,&lt;br/&gt;&lt;br/&gt;Thanks for this. Seems like a productive direction to explore.&lt;br/&gt;&lt;br/&gt;To me, one of the biggest limitations of CTV is that the script is&lt;br/&gt;specific to the amount of the input being spent. OP_TX makes it&lt;br/&gt;possible, although clumsy, to emulate OP_IN_OUT_AMOUNT, which could be&lt;br/&gt;combined with CTV emulation less OPTX_SELECT_OUTPUT_AMOUNT32x2 to allow&lt;br/&gt;a single script to be reused. Given that potential, I wonder if&lt;br/&gt;OPTX_SELECT_IN_OUT_AMOUNT32x2 would be worth adding to the initial set&lt;br/&gt;of flags.&lt;br/&gt;&lt;br/&gt;With that addition, a small script can be constructed for a relocatable,&lt;br/&gt;batchable construction (eg. as a building block for vaults):&lt;br/&gt;&lt;br/&gt;OPTX_SEPARATELY|OPTX_UNHASHED|OPTX_INPUTNUM OP_TX OP_DUP&lt;br/&gt;&lt;br/&gt;OPTX_SELECT_VERSION|&lt;br/&gt;OPTX_SELECT_LOCKTIME|&lt;br/&gt;OPTX_SELECT_INPUT_SINGLE|&lt;br/&gt;OPTX_SELECT_INPUT_SCRIPT|&lt;br/&gt;OPTX_SELECT_INPUT_NSEQUENCE|&lt;br/&gt;OPTX_SELECT_OUTPUT_SINGLE|&lt;br/&gt;OPTX_SELECT_OUTPUT_SCRIPTPUBKEY|&lt;br/&gt;OPTX_SELECT_IN_OUT_AMOUNT32x2 OP_TX &amp;lt;expectedhash&amp;gt; OP_EQUAL&lt;br/&gt;&lt;br/&gt;* Additional inputs and change outputs can be added&lt;br/&gt;  * Could commit to 0 fee and still be useful&lt;br/&gt;* Arbitrary amounts can be sent to the same script&lt;br/&gt;* There is no txid predictability (unlike CTV)&lt;br/&gt;  * Anyone could rearrange such input/output pairs after broadcast&lt;br/&gt;	* Not suitable for some uses&lt;br/&gt;	* Potentially helpful for others&lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;&lt;br/&gt;--Brandon&lt;br/&gt;&lt;br/&gt;On 2022-05-10 (Tue) at 20:05:54 &#43;0930, Rusty Russell via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Hi all,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; 	TL;DR: a v1 tapscript opcode for generic covenants, but&lt;br/&gt;&amp;gt; OP_SUCCESS unless it&amp;#39;s used a-la OP_CHECKTEMPLATEVERIFY.  This gives an&lt;br/&gt;&amp;gt; obvious use case, with clean future expansion.  OP_NOP4 can be&lt;br/&gt;&amp;gt; repurposed in future as a shortcut, if experience shows that to be a&lt;br/&gt;&amp;gt; useful optimization.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; (This proposal builds on Russell O&amp;#39;Connor&amp;#39;s TXHASH[1], with Anthony&lt;br/&gt;&amp;gt; Towns&amp;#39; modification via extending the opcode[2]; I also notice on&lt;br/&gt;&amp;gt; re-reading that James Lu had a similar restriction idea[3]).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Details&lt;br/&gt;&amp;gt; -------&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; OP_TX, when inside v1 tapscript, is followed by 4 bytes of flags.&lt;br/&gt;&amp;gt; Unknown flag patterns are OP_SUCCESS, though for thoroughness some future&lt;br/&gt;&amp;gt; potential uses are documented here.  Note that pushing more than 1000&lt;br/&gt;&amp;gt; elements on the stack or an element more than 512 bytes will hit the&lt;br/&gt;&amp;gt; BIP-342 resource limits and fail.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Defined bits&lt;br/&gt;&amp;gt; ------------&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; (Only those marked with * have to be defined for this soft fork; the&lt;br/&gt;&amp;gt;  others can have semantics later).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; OPTX_SEPARATELY: treat fields separately (vs concatenating)&lt;br/&gt;&amp;gt; OPTX_UNHASHED: push on the stack without hashing (vs SHA256 before push)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; - The first nicely sidesteps the lack of OP_CAT, and the latter allows&lt;br/&gt;&amp;gt;   OP_TXHASH semantics (and avoid stack element limits).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; OPTX_SELECT_VERSION*: version&lt;br/&gt;&amp;gt; OPTX_SELECT_LOCKTIME*: nLocktime&lt;br/&gt;&amp;gt; OPTX_SELECT_INPUTNUM*: current input number&lt;br/&gt;&amp;gt; OPTX_SELECT_INPUTCOUNT*: number of inputs&lt;br/&gt;&amp;gt; OPTX_SELECT_OUTPUTCOUNT*: number of outputs&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; OPTX_INPUT_SINGLE: if set, pop input number off stack to apply to&lt;br/&gt;&amp;gt; 		OPTX_SELECT_INPUT_*, otherwise iterate through all.&lt;br/&gt;&amp;gt; OPTX_SELECT_INPUT_TXID: txid&lt;br/&gt;&amp;gt; OPTX_SELECT_INPUT_OUTNUM: txout index&lt;br/&gt;&amp;gt; OPTX_SELECT_INPUT_NSEQUENCE*: sequence number&lt;br/&gt;&amp;gt; OPTX_SELECT_INPUT_AMOUNT32x2: sats in, as a high-low u31 pair&lt;br/&gt;&amp;gt; OPTX_SELECT_INPUT_SCRIPT*: input scriptsig&lt;br/&gt;&amp;gt; OPTX_SELECT_INPUT_TAPBRANCH: ?&lt;br/&gt;&amp;gt; OPTX_SELECT_INPUT_TAPLEAF: ?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; OPTX_OUTPUT_SINGLE: if set, pop input number off stack to apply to&lt;br/&gt;&amp;gt; 		OPTX_SELECT_OUTPUT_*, otherwise iterate through all.&lt;br/&gt;&amp;gt; OPTX_SELECT_OUTPUT_AMOUNT32x2*: sats out, as a high-low u31 pair&lt;br/&gt;&amp;gt; OPTX_SELECT_OUTPUT_SCRIPTPUBKEY*: output scriptpubkey&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; OPTX_SELECT_19...OPTX_SELECT_31: future expansion.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; OP_CHECKTEMPLATEVERIFY is approximated by the following flags:&lt;br/&gt;&amp;gt; 	OPTX_SELECT_VERSION&lt;br/&gt;&amp;gt; 	OPTX_SELECT_LOCKTIME&lt;br/&gt;&amp;gt; 	OPTX_SELECT_INPUTCOUNT&lt;br/&gt;&amp;gt; 	OPTX_SELECT_INPUT_SCRIPT&lt;br/&gt;&amp;gt; 	OPTX_SELECT_INPUT_NSEQUENCE&lt;br/&gt;&amp;gt; 	OPTX_SELECT_OUTPUTCOUNT&lt;br/&gt;&amp;gt; 	OPTX_SELECT_OUTPUT_AMOUNT32x2&lt;br/&gt;&amp;gt; 	OPTX_SELECT_OUTPUT_SCRIPTPUBKEY&lt;br/&gt;&amp;gt; 	OPTX_SELECT_INPUTNUM&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; All other flag combinations result in OP_SUCCESS.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Discussion&lt;br/&gt;&amp;gt; ----------&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; By enumerating exactly what can be committed to, it&amp;#39;s absolutely clear&lt;br/&gt;&amp;gt; what is and isn&amp;#39;t committed (and what you need to think about!).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The bits which separate concatenation and hashing provide a simple&lt;br/&gt;&amp;gt; mechanism for template-style (i.e. CTV-style) commitments, or for&lt;br/&gt;&amp;gt; programatic treatment of individual elements (e.g. amounts, though the&lt;br/&gt;&amp;gt; two s31 style is awkward: a 64-bit push flag could be added in future).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The lack of double-hashing of scriptsigs and other fields means we&lt;br/&gt;&amp;gt; cannot simply re-use hashing done for SIGHASH_ALL.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The OP_SUCCESS semantic is only valid in tapscript v1, so this does not&lt;br/&gt;&amp;gt; allow covenants for v0 segwit or pre-segwit inputs.  If covenants prove&lt;br/&gt;&amp;gt; useful, dedicated opcodes can be provided for those cases (a-la&lt;br/&gt;&amp;gt; OP_CHECKTEMPLATEVERIFY).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Cheers,&lt;br/&gt;&amp;gt; Rusty.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; [1] &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019813.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019813.html&lt;/a&gt;&lt;br/&gt;&amp;gt; [2] &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019819.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019819.html&lt;/a&gt;&lt;br/&gt;&amp;gt; [3] &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019816.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019816.html&lt;/a&gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;--Brandon
    </content>
    <updated>2023-06-07T23:09:30Z</updated>
  </entry>

</feed>