From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Sat, 14 Jun 2025 13:43:24 -0700 Received: from mail-oa1-f58.google.com ([209.85.160.58]) by mail.fairlystable.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1uQXil-00061S-9y for bitcoindev@gnusha.org; Sat, 14 Jun 2025 13:43:24 -0700 Received: by mail-oa1-f58.google.com with SMTP id 586e51a60fabf-2d9e7fbfedasf3367507fac.3 for ; Sat, 14 Jun 2025 13:43:23 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1749933797; cv=pass; d=google.com; s=arc-20240605; b=B/3AKMoJi9hPSK/t1Lc2bKh1lNdq9ldDFaoN2QXRks86FmA3Sx7CVfyHD/ImJQmvLm KwDDrf95bcI9wcSwkeRbE44vXE697MwgWL9M9Do6/cKbFfWO4mYM/Grqtv5gCIjruWiw 9v39Soh/r8D3HCvpQ8c3XVOs4mM28G8oEtgU3uLu032f7W3HCVLwpgnnLeZtaWBoeDKD Pev/raSa19zuMx6tZe5Zp4Qblq2ZSs7sgNqu7j2qz9aAjCR80CAAuLSKY32GgfQYATWv jD4WX0jpgiX9OlbzPfW3ESF1I3Lx9bBdzqe1ndSW79/FYPLq1GVk3ZNwRvohilvK+mkc S5Nw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:sender:dkim-signature :dkim-signature; bh=2TW1B68mrY8pZpZOGEOACLuO1/2nppgl6k/L3l6uBsM=; fh=YLG9DeCyg6pWgKX3uQn+NrKHDM78NRKGUDoDa61lZdg=; b=BrRdhQGnXd+Yyas0WfZZiWhLgNgM8fd3syuRvx7Lq5epwsM7IrTEciEq+xm1KXxcuO A8sj/zW1PGD9tVc7rqMr9Bh/CdkcqZQ1WueU8R2cM+YCpUYm+mLRFsF7qPo6cjMfZho4 XpMwGKRYZYf8HjnT68FpbvSjNFclfR2j4bW3kGRVtJlv2uLDmLGHLQKBV0/2TX3ZBKc9 sHJOMfwJJcsKYgCKZFkFEMyFBHlyLF9xPrQWibXmC5sfKzn+e+2L72w9hiOWt80xfw3M zHKx6hkAkYk3Okp8bVG7eJsJYo4nDDSUBhiSpkj1ajoF9EN4TEpAQRAKreYsSdKKE7Zm Wh6w==; darn=gnusha.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=CFEcMoUv; spf=pass (google.com: domain of jameson.lopp@gmail.com designates 2a00:1450:4864:20::131 as permitted sender) smtp.mailfrom=jameson.lopp@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com; dara=pass header.i=@googlegroups.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1749933797; x=1750538597; darn=gnusha.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:sender:from:to:cc:subject:date:message-id :reply-to; bh=2TW1B68mrY8pZpZOGEOACLuO1/2nppgl6k/L3l6uBsM=; b=fU8yCb3rZbVnz9dyFu0Duz8pwKCoAdt6+wZ+JzxqVAR/pD8KFF+exz9snocIU389XG JxVBJ9GBymvKKqaQ3xwFRREEQsGu+SfCotAf/lHdcI88kZxgZ3TB2HWbdXOWB5nmBwxw p08LbmSqWFmZ5te9Zfjx64yO2c4LWABScag19ya2VJgMwzf5ev9s8swn6Ic8lOk8hGrg +pjkAZs3mgTQSGnq9T1keyamdyRPpoO4l0P1XQnxJOVmEEnIeA6Ex2BxotSR1JnzDIpB SRP8VIoVgftcrLai99ww1bEfgNfVPlPM5G7vrgKckqz5WUqeoGBu1S1/YxmV75eCGZGL FQug== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749933797; x=1750538597; darn=gnusha.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to; bh=2TW1B68mrY8pZpZOGEOACLuO1/2nppgl6k/L3l6uBsM=; b=d2mbioE0JmC2F4q7rIl238/VCgB90n5ti3PH6qxCqQYVt8XnNsrCsYY3wAkKBqyQe7 1kulpWoRfy8TR0uSom//F9G2r/ACPANulltPmphAc6a2dhV1cbLu9i71CCma7IqX6iys 5MsQuPZyb2FEwnjOUCiybSgYrT7XKkDYfBkxiepuQvoUqyqgYK5oFWKsyT3jPoM9cgdo ixF2FqkGuxZBxbZQUdwINfvdgAu3oaoIwVqYK3JfLm7rY0k4wnt067hQSBVbPjpEjve0 3N6tYaOyMpwP1FmM9iHEsExvJAiMz7IoZ/cUTKxwpMiy3rIcjK3Chf+Y5gBb1UwuI6SX HJrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749933797; x=1750538597; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:x-beenthere:x-gm-message-state:sender:from :to:cc:subject:date:message-id:reply-to; bh=2TW1B68mrY8pZpZOGEOACLuO1/2nppgl6k/L3l6uBsM=; b=PI5S+8a0HOWpyfcildZ0tyE0YGj0Cx3SVWPm2TjB4bnawCgMxll7nm2wPBzd09V+rS Cr+WfM3aC2LwrS940aoT11t9xSUVST7K8bYpEhJBJ5sR3HqnfgDygjI2xVwbTmgd+RwE G8VVFQhvNAv6FTNepKwZEDmDVDZ9HxKdLIuqJSHNBxvGFUtJQ3XSbCMqFZ2N9wuL0e3S lAGVA9JVJzRVKzpQpxMIOYxbPxKgGXH42tVdNQ8EEyzRGQBo3poxIvnjm7gZy+giTEPb URKln6QCOZ5dAstumOd6QRybgJ01ADzmcmlNlZLcpRjAUZW9IkrhRIku50fHOqz4o+pN 1XFg== Sender: bitcoindev@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCVIIb5XXoedz/mqljhF+UJka+xwDl3wjTEMIAZNItcVoyZNegDQ2QZBr95/4qgRWlXnPtNs5KQGmALv@gnusha.org X-Gm-Message-State: AOJu0YxkoPfdAPdkuMC1GV+vRJhTYkaT5AZQ0oJaQ3KodAY1TOYV+h80 7/o89AebwhBqnsWZq4iMut/16U8k8wyF5KRSMj8oVMSBiil+BuCNGeqs X-Google-Smtp-Source: AGHT+IGMu70ktTXAlSTCit7iBXIvxJCw+XTdlUcMJzN0ZXleXKh0jzJsm5jMiQY1bpWuEdSy12T1ZQ== X-Received: by 2002:a05:6870:5b92:b0:2e9:1143:584e with SMTP id 586e51a60fabf-2eaf0bf35bdmr2379002fac.39.1749933797113; Sat, 14 Jun 2025 13:43:17 -0700 (PDT) X-BeenThere: bitcoindev@googlegroups.com; h=AZMbMZcBMo+mijYUeeBlbjeKxVnAeuUSY4EYOuttsrS0fvj/qg== Received: by 2002:a05:6871:68c:b0:2da:b91c:91bd with SMTP id 586e51a60fabf-2eab6ee08a7ls4460056fac.1.-pod-prod-09-us; Sat, 14 Jun 2025 13:43:13 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWDAP5d6nORnGiv64m513Cfy66yBYVwj+wiqWHjDEi4pFGVkfjqTye4Xd1mJfuZeNqsHaHDypFt0i7v@googlegroups.com X-Received: by 2002:a05:6808:1383:b0:408:fef8:9c93 with SMTP id 5614622812f47-40a7c1190bcmr2618830b6e.7.1749933793076; Sat, 14 Jun 2025 13:43:13 -0700 (PDT) Received: by 2002:ab3:5a13:0:b0:2b1:9626:e73d with SMTP id a1c4a302cd1d6-2b5319e0bf2msc7a; Sat, 14 Jun 2025 13:06:12 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXfF8WwhRnI1a7h42InSJPjM4K7Qde1gqmfEi46P9DS+VSCDLQhbSmJQvRX6NVjkQHC25eiUhvEt/HC@googlegroups.com X-Received: by 2002:a05:6512:ba8:b0:553:5d4a:1ce4 with SMTP id 2adb3069b0e04-553b6e780f7mr773856e87.2.1749931570486; Sat, 14 Jun 2025 13:06:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1749931570; cv=none; d=google.com; s=arc-20240605; b=L6MR42W8/Eiv9DgGTmXris7akBP+z7NsKXn0LoDC4OTZMGGwpbVbvh2TQF1rt1Pucs nuNHNGi57wj8tf6nzaZDqE/ZwCiQE8WE1nIWj7ap21igMrqVLioMGmPSs5YTPy8/sEaP NKFEG4VIxdOG78PBKj8qL3PtHN367eqf3nVECxcMUfHjC19XHk9+T235/U6UrXAdc4FP InALupHKgZ81+3ihlmxk0TqjGGlSXqFpInPFX7GMXzI473k9fsgsBnSUPkcc5vPY2Pik Io2JGc6qm9gEb11lSJpKZO+kgj/BeIMZgZSd582bTsDNWSBN5DvrrqsF5eQ8jVnIMige sFfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=OSg3IvYKsjHkILjqn0+Ouwz+f9Ega8VZB+lYMVTuxIo=; fh=Ap/lOij0PASSZ8DTQJZfs4ZA8WcK+T1KYPZXQ9DkVmk=; b=GgvBw9cK32H5Iu4F5SUJ4A12LpySRE5KPG/4IyQRvv0A8KTTCvW6a2WVIyC2rUQddK aPflycBUrkb68cRxkH4iYQHLtKxOqLUqSAX4CzKfezPhBLYalvK+wYyBZQ5s73ufiOGA CQYXn8n41AmDsuO8nyhPaksjijgM1v4yRixz8tWRaRmTauNsEY/3AQsvUp57ASUUpTpE GtHU++WlucU1wt+zNi7HFLJ4bgcwHXwte8xJkkkl5zdDFOSP9rrh87J2asJE69l1+yFB 65Vfdxer1PgQBDSFqFY1aWvDhfuS/66O0kYusbNuvUY613WmdntzidT36QMZBGyeGzH/ oW9Q==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=CFEcMoUv; spf=pass (google.com: domain of jameson.lopp@gmail.com designates 2a00:1450:4864:20::131 as permitted sender) smtp.mailfrom=jameson.lopp@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com; dara=pass header.i=@googlegroups.com Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com. [2a00:1450:4864:20::131]) by gmr-mx.google.com with ESMTPS id 2adb3069b0e04-553ac1634a2si126118e87.11.2025.06.14.13.06.10 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 14 Jun 2025 13:06:10 -0700 (PDT) Received-SPF: pass (google.com: domain of jameson.lopp@gmail.com designates 2a00:1450:4864:20::131 as permitted sender) client-ip=2a00:1450:4864:20::131; Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-551ed563740so3587941e87.2 for ; Sat, 14 Jun 2025 13:06:10 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCU96LXRf042nvdXLoIM6nwwh2naBSyXv+lul2xDlA9f5bsS7Nywv8qx+zydrWJKHEJFEb+9uFaShdpI@googlegroups.com X-Gm-Gg: ASbGncuApLru/H5w43qt5bub2UIhH4ECKpoVcPPRFcyLOEutje1NR76uak6EqJgc/Ge rltcKlNKNXJKBwVojUMRBw+J1AiQHwWyS00pBzWuRBONbMxSQGI8IuXW3NpmFeWLW3w5reSgu1K 0yy8US9TtAtV2r5JN5WOBTjayALDQJup9zKjzxhuAeJlk= X-Received: by 2002:a05:6512:39c3:b0:553:23f9:bb3b with SMTP id 2adb3069b0e04-553b6f43089mr771138e87.49.1749931569572; Sat, 14 Jun 2025 13:06:09 -0700 (PDT) MIME-Version: 1.0 References: <46349b6c-ccec-4378-8721-aecec22752e7@mattcorallo.com> <8d158e3d-b3cc-44b6-b71b-ab2e733c047c@mattcorallo.com> <3781512A-0912-4493-AED5-9520A0488949@sprovoost.nl> In-Reply-To: <3781512A-0912-4493-AED5-9520A0488949@sprovoost.nl> From: Jameson Lopp Date: Sat, 14 Jun 2025 16:05:57 -0400 X-Gm-Features: AX0GCFunAyKIHwZERcpFD5BDoUw6IASbey-I7cb9umL3ivVTBu-sWgATVUDTC7A Message-ID: Subject: Re: [bitcoindev] CTV + CSFS: a letter To: Sjors Provoost Cc: Antoine Poinsot , Matt Corallo , Andrew Poelstra , Bitcoin Development Mailing List Content-Type: multipart/alternative; boundary="00000000000095f1b306378db1ff" X-Original-Sender: jameson.lopp@gmail.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=CFEcMoUv; spf=pass (google.com: domain of jameson.lopp@gmail.com designates 2a00:1450:4864:20::131 as permitted sender) smtp.mailfrom=jameson.lopp@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com; dara=pass header.i=@googlegroups.com Precedence: list Mailing-list: list bitcoindev@googlegroups.com; contact bitcoindev+owners@googlegroups.com List-ID: X-Google-Group-Id: 786775582512 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Score: -0.5 (/) --00000000000095f1b306378db1ff Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Jun 14, 2025 at 11:58=E2=80=AFAM Sjors Provoost wrote: > Hi Jameson, > > CTV does enable vaults, but the user has to (carefully) move coins into > the vault themselves. Because CTV commits to the amount, among other > things, you can't simply publish a vault address and receive arbitrary > amounts there. They'd be stuck, committing to an impossible to satisfy CT= V > hash. > Understood. OP_CCV enables more flexible / user friendly vaults. Sounds good to me! I'll just reiterate my previous point that custody software services would rather have a "good" tool in the hand than a better solution waiting on the distant horizon. > There's also the question of what, if anything, the user needs to backup > after each deposit [0]. It's probably just the deposit transaction id, > which is arguably something that can be recovered with some (?) work. > > OP_CCV enables a more flexible design where the user can receive arbitrar= y > amounts directly into their vault address, and with nothing to backup aft= er > initial setup (seeds + descriptor-like-thing). > > Here's a demo functional test for an OP_CCV vault (without CTV): > https://github.com/bitcoin/bitcoin/pull/32080 > > The problem with both demos is that they use boutique software. There's > not yet a potentially interoperable standard to describe these things. > > Hopefully some simple vault schemes can be shoehorned into the existing > output descriptor paradigm [1], because inventing a whole new way of maki= ng > vault-aware wallets interoperable would take many years. > > To illustrate such schemes, I'd love to see a working demo using just a > (patched) Bitcoin Core wallet. Though perhaps a library like BDK[2] is an > easier platform for such ideation. > > - Sjors > > [0] https://github.com/jamesob/simple-ctv-vault/issues/9 > [1] https://delvingbitcoin.org/t/ctv-vault-output-descriptor/1766/8 > [2] https://github.com/bitcoindevkit > > > Op 13 jun 2025, om 17:41 heeft Jameson Lopp > het volgende geschreven: > > > [...] > > > > I'm not sure how to parse Antoine's claim that CTV+CSFS doesn't enable > vaults given that there has already been a CTV vault client proof of > concept for 3 years: https://github.com/jamesob/simple-ctv-vault > > > > On Fri, Jun 13, 2025 at 9:07=E2=80=AFAM Antoine Poinsot > wrote: > > > [...] > > > That said, consensus-enforced vaults require a mechanism to forward any > amount received on a script A to a pre-committed script B. CTV+CSFS does > not enable this, and a primitive that actually does (like CCV) is more > controversial because of its potency. > > [...] > > > I also appreciate that CTV is nice to have for CCV vaults, but a > potential future use case that is not enabled by one proposal cannot be > used to motivate said proposal. > > > > --=20 You received this message because you are subscribed to the Google Groups "= Bitcoin Development Mailing List" group. To unsubscribe from this group and stop receiving emails from it, send an e= mail to bitcoindev+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/= CADL_X_fUCR%3D2O0MUHXBA98oV4%2BwcJ-qYYrrRjB7h7YER-JKsGA%40mail.gmail.com. --00000000000095f1b306378db1ff Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Sat, Jun 14,= 2025 at 11:58=E2=80=AFAM Sjors Provoost <sjors@sprovoost.nl> wrote:
Hi Jameson,

CTV does enable vaults, but the user has to (carefully) move coins into the= vault themselves. Because CTV commits to the amount, among other things, y= ou can't simply publish a vault address and receive arbitrary amounts t= here. They'd be stuck, committing to an impossible to satisfy CTV hash.=

Understood. OP_CCV enables more flexib= le / user friendly vaults. Sounds good to me!

I= 9;ll just reiterate my previous point that=C2=A0custody software services w= ould rather have a "good" tool in the hand than a better solution= waiting on the distant horizon.


There's also the question of what, if anything, the user needs to backu= p after each deposit [0]. It's probably just the deposit transaction id= , which is arguably something that can be recovered with some (?) work.

OP_CCV enables a more flexible design where the user can receive arbitrary = amounts directly into their vault address, and with nothing to backup after= initial setup (seeds + descriptor-like-thing).

Here's a demo functional test for an OP_CCV vault (without CTV): https://github.com/bitcoin/bitcoin/pull/32080

The problem with both demos is that they use boutique software. There's= not yet a potentially interoperable standard to describe these things.

Hopefully some simple vault schemes can be shoehorned into the existing out= put descriptor paradigm [1], because inventing a whole new way of making va= ult-aware wallets interoperable would take many years.

To illustrate such schemes, I'd love to see a working demo using just a= (patched) Bitcoin Core wallet. Though perhaps a library like BDK[2] is an = easier platform for such ideation.=C2=A0

- Sjors

[0] https://github.com/jamesob/simple-ctv-vault/= issues/9
[1] https://delvingbitcoin.org/t/ctv-= vault-output-descriptor/1766/8
[2] https://github.com/bitcoindevkit

> Op 13 jun 2025, om 17:41 heeft Jameson Lopp <jameson.lopp@gmail.com> het vo= lgende geschreven:
>
[...]
>
> I'm not sure how to parse Antoine's claim that CTV+CSFS doesn&= #39;t enable vaults given that there has already been a CTV vault client pr= oof of concept for 3 years: https://github.com/jamesob/si= mple-ctv-vault
>
> On Fri, Jun 13, 2025 at 9:07=E2=80=AFAM Antoine Poinsot <darosior@protonmail.com<= /a>> wrote:


[...]

> That said, consensus-enforced vaults require a mechanism to forward an= y amount received on a script A to a pre-committed script B. CTV+CSFS does = not enable this, and a primitive that actually does (like CCV) is more cont= roversial because of its potency.

[...]

> I also appreciate that CTV is nice to have for CCV vaults, but a poten= tial future use case that is not enabled by one proposal cannot be used to = motivate said proposal.
>

--
You received this message because you are subscribed to the Google Groups &= quot;Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to
bitcoind= ev+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/= d/msgid/bitcoindev/CADL_X_fUCR%3D2O0MUHXBA98oV4%2BwcJ-qYYrrRjB7h7YER-JKsGA%= 40mail.gmail.com.
--00000000000095f1b306378db1ff--