* [bitcoin-dev] Silent Payment v4 (coinjoin support added) @ 2022-10-11 7:02 woltx 2022-10-12 9:04 ` alicexbt 0 siblings, 1 reply; 4+ messages in thread From: woltx @ 2022-10-11 7:02 UTC (permalink / raw) To: bitcoin-dev [-- Attachment #1: Type: text/plain, Size: 1273 bytes --] Silent Payment v4 (coinjoin support added) Changes: . Silent payments now use all inputs to create transactions. Previously, they only used the first input. This change increases privacy and makes silent payments compatible with coinjoin. . `getspaddress` RPC renamed to `getsilentaddress` for clarity . Added support for silent payment in PSBT via `walletcreatefundedpsbt` RPC. . Added a new index scheme (which stores the sum of input public keys for each transaction). The previous index `bitcoin/signet/indexes/silentpaymentindex` should be removed as it is no longer compatible with this new version. For reviewers: Now, silent payments use the scheme `hash(i1*X + i2*X + i3*X + ...)*G + X == hash(x*(I1+I2+I3+...))*G + X`, as described here: https://gist.github.com/RubenSomsen/c43b79517e7cb701ebf77eec6dbb46b8#variant-using-all-inputs As inputs can be Taproot, this introduced a new issue as `bitcoin-core/secp256k1` does not support x-only public key sum (perhaps due to missing prefix byte). I opened a new PR (#1143) to add a function to convert from x-only to compressed public key with even y. This is the solution being used by the current silent payment implementation. Tutorial updated: https://gist.github.com/w0xlt/c81277ae8677b6c0d3dd073893210875 [-- Attachment #2: Type: text/html, Size: 1937 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [bitcoin-dev] Silent Payment v4 (coinjoin support added) 2022-10-11 7:02 [bitcoin-dev] Silent Payment v4 (coinjoin support added) woltx @ 2022-10-12 9:04 ` alicexbt 2022-10-23 7:00 ` woltx 0 siblings, 1 reply; 4+ messages in thread From: alicexbt @ 2022-10-12 9:04 UTC (permalink / raw) To: woltx; +Cc: bitcoin-dev Hi woltx, Thanks for working on silent payments improving it in each version. 1) All inputs being used sounds good although I do not understand how it would benefit coinjoin. 2) New RPC command name is better. > I opened a new PR (#1143) to add a function to convert from x-only to compressed public key with even y. Not sure about the concerns expressed by Andrew Poelstra in the pull request related to rogue-key attacks. > Tutorial updated: https://gist.github.com/w0xlt/c81277ae8677b6c0d3dd073893210875 > "warnings": "This address is not a new identity. It is a re-use of an existing identity with a different label." I could not understand the warning in the output for `getsilentaddress` RPC when used with a label. /dev/fd0 Sent with Proton Mail secure email. ------- Original Message ------- On Tuesday, October 11th, 2022 at 12:32 PM, woltx via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> wrote: > Silent Payment v4 (coinjoin support added) > Changes: > > . Silent payments now use all inputs to create transactions. Previously, they only used the first input. This change increases privacy and makes silent payments compatible with coinjoin. > > . `getspaddress` RPC renamed to `getsilentaddress` for clarity > > . Added support for silent payment in PSBT via `walletcreatefundedpsbt` RPC. > > . Added a new index scheme (which stores the sum of input public keys for each transaction). The previous index `bitcoin/signet/indexes/silentpaymentindex` should be removed as it is no longer compatible with this new version. > > For reviewers: > > Now, silent payments use the scheme `hash(i1*X + i2*X + i3*X + ...)*G + X == hash(x*(I1+I2+I3+...))*G + X`, as described here: https://gist.github.com/RubenSomsen/c43b79517e7cb701ebf77eec6dbb46b8#variant-using-all-inputs > > As inputs can be Taproot, this introduced a new issue as `bitcoin-core/secp256k1` does not support x-only public key sum (perhaps due to missing prefix byte). > > I opened a new PR (#1143) to add a function to convert from x-only to compressed public key with even y. This is the solution being used by the current silent payment implementation. > > Tutorial updated: https://gist.github.com/w0xlt/c81277ae8677b6c0d3dd073893210875 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [bitcoin-dev] Silent Payment v4 (coinjoin support added) 2022-10-12 9:04 ` alicexbt @ 2022-10-23 7:00 ` woltx 2022-10-23 20:54 ` alicexbt 0 siblings, 1 reply; 4+ messages in thread From: woltx @ 2022-10-23 7:00 UTC (permalink / raw) To: alicexbt; +Cc: bitcoin-dev Hi /dev/fd0 I haven't accessed ML for a while. 1) All inputs being used sounds good although I do not understand how it would benefit coinjoin. Using all inputs, it becomes possible to use SP addresses in coinjoins as long as all participants agree. More information: https://gist.github.com/RubenSomsen/c43b79517e7cb701ebf77eec6dbb46b8#variant-using-all-inputs 2) Not sure about the concerns expressed by Andrew Poelstra in the pull request related to rogue-key attacks. I think Andrew Poelstra is referring to a multi-party scheme. This is not the case with the Silent Payments scheme, which only relies on transaction data, which is publicly available on the blockchain. 3) I could not understand the warning in the output for `getsilentaddress` RPC when used with a label. This warning was suggested by Aurèle Oulès in https://github.com/bitcoin/bitcoin/pull/24897#issuecomment-1276160738 and the reason was a discussion in PR about users thinking that each address would come from a different key and not the same key. Sent with Proton Mail secure email. ------- Original Message ------- On Wednesday, October 12th, 2022 at 6:04 AM, alicexbt <alicexbt@protonmail.com> wrote: > Hi woltx, > > Thanks for working on silent payments improving it in each version. > > 1) All inputs being used sounds good although I do not understand how it would benefit coinjoin. > 2) New RPC command name is better. > > > I opened a new PR (#1143) to add a function to convert from x-only to compressed public key with even y. > > > Not sure about the concerns expressed by Andrew Poelstra in the pull request related to rogue-key attacks. > > > Tutorial updated: https://gist.github.com/w0xlt/c81277ae8677b6c0d3dd073893210875 > > "warnings": "This address is not a new identity. It is a re-use of an existing identity with a different label." > > > I could not understand the warning in the output for `getsilentaddress` RPC when used with a label. > > /dev/fd0 > > Sent with Proton Mail secure email. > > > ------- Original Message ------- > On Tuesday, October 11th, 2022 at 12:32 PM, woltx via bitcoin-dev bitcoin-dev@lists.linuxfoundation.org wrote: > > > > > Silent Payment v4 (coinjoin support added) > > Changes: > > > > . Silent payments now use all inputs to create transactions. Previously, they only used the first input. This change increases privacy and makes silent payments compatible with coinjoin. > > > > . `getspaddress` RPC renamed to `getsilentaddress` for clarity > > > > . Added support for silent payment in PSBT via `walletcreatefundedpsbt` RPC. > > > > . Added a new index scheme (which stores the sum of input public keys for each transaction). The previous index `bitcoin/signet/indexes/silentpaymentindex` should be removed as it is no longer compatible with this new version. > > > > For reviewers: > > > > Now, silent payments use the scheme `hash(i1*X + i2*X + i3*X + ...)*G + X == hash(x*(I1+I2+I3+...))*G + X`, as described here: https://gist.github.com/RubenSomsen/c43b79517e7cb701ebf77eec6dbb46b8#variant-using-all-inputs > > > > As inputs can be Taproot, this introduced a new issue as `bitcoin-core/secp256k1` does not support x-only public key sum (perhaps due to missing prefix byte). > > > > I opened a new PR (#1143) to add a function to convert from x-only to compressed public key with even y. This is the solution being used by the current silent payment implementation. > > > > Tutorial updated: https://gist.github.com/w0xlt/c81277ae8677b6c0d3dd073893210875 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [bitcoin-dev] Silent Payment v4 (coinjoin support added) 2022-10-23 7:00 ` woltx @ 2022-10-23 20:54 ` alicexbt 0 siblings, 0 replies; 4+ messages in thread From: alicexbt @ 2022-10-23 20:54 UTC (permalink / raw) To: woltx; +Cc: bitcoin-dev Hi woltx, Thanks for the response. > Using all inputs, it becomes possible to use SP addresses in coinjoins as long as all participants agree. > More information: > https://gist.github.com/RubenSomsen/c43b79517e7cb701ebf77eec6dbb46b8#variant-using-all-inputs Using new addresses and SP address would be same in my opinion in coinjoin. > I think Andrew Poelstra is referring to a multi-party scheme. > This is not the case with the Silent Payments scheme, which only relies on transaction data, which is publicly available on the blockchain. Sounds good. > This warning was suggested by Aurèle Oulès in https://github.com/bitcoin/bitcoin/pull/24897#issuecomment-1276160738 and the reason was a discussion in PR about users thinking that each address would come from a different key and not the same key. It makes sense although could be rephrased. /dev/fd0 Sent with Proton Mail secure email. ------- Original Message ------- On Sunday, October 23rd, 2022 at 12:30 PM, woltx <woltx@protonmail.com> wrote: > Hi /dev/fd0 > > I haven't accessed ML for a while. > > 1) All inputs being used sounds good although I do not understand how it would benefit coinjoin. > > Using all inputs, it becomes possible to use SP addresses in coinjoins as long as all participants agree. > More information: > https://gist.github.com/RubenSomsen/c43b79517e7cb701ebf77eec6dbb46b8#variant-using-all-inputs > > 2) Not sure about the concerns expressed by Andrew Poelstra in the pull request related to rogue-key attacks. > > I think Andrew Poelstra is referring to a multi-party scheme. > This is not the case with the Silent Payments scheme, which only relies on transaction data, which is publicly available on the blockchain. > > 3) I could not understand the warning in the output for `getsilentaddress` RPC when used with a label. > > This warning was suggested by Aurèle Oulès in https://github.com/bitcoin/bitcoin/pull/24897#issuecomment-1276160738 and the reason was a discussion in PR about users thinking that each address would come from a different key and not the same key. > > > > > Sent with Proton Mail secure email. > > > ------- Original Message ------- > On Wednesday, October 12th, 2022 at 6:04 AM, alicexbt alicexbt@protonmail.com wrote: > > > > > Hi woltx, > > > > Thanks for working on silent payments improving it in each version. > > > > 1) All inputs being used sounds good although I do not understand how it would benefit coinjoin. > > 2) New RPC command name is better. > > > > > I opened a new PR (#1143) to add a function to convert from x-only to compressed public key with even y. > > > > Not sure about the concerns expressed by Andrew Poelstra in the pull request related to rogue-key attacks. > > > > > Tutorial updated: https://gist.github.com/w0xlt/c81277ae8677b6c0d3dd073893210875 > > > "warnings": "This address is not a new identity. It is a re-use of an existing identity with a different label." > > > > I could not understand the warning in the output for `getsilentaddress` RPC when used with a label. > > > > /dev/fd0 > > > > Sent with Proton Mail secure email. > > > > ------- Original Message ------- > > On Tuesday, October 11th, 2022 at 12:32 PM, woltx via bitcoin-dev bitcoin-dev@lists.linuxfoundation.org wrote: > > > > > Silent Payment v4 (coinjoin support added) > > > Changes: > > > > > > . Silent payments now use all inputs to create transactions. Previously, they only used the first input. This change increases privacy and makes silent payments compatible with coinjoin. > > > > > > . `getspaddress` RPC renamed to `getsilentaddress` for clarity > > > > > > . Added support for silent payment in PSBT via `walletcreatefundedpsbt` RPC. > > > > > > . Added a new index scheme (which stores the sum of input public keys for each transaction). The previous index `bitcoin/signet/indexes/silentpaymentindex` should be removed as it is no longer compatible with this new version. > > > > > > For reviewers: > > > > > > Now, silent payments use the scheme `hash(i1*X + i2*X + i3*X + ...)*G + X == hash(x*(I1+I2+I3+...))*G + X`, as described here: https://gist.github.com/RubenSomsen/c43b79517e7cb701ebf77eec6dbb46b8#variant-using-all-inputs > > > > > > As inputs can be Taproot, this introduced a new issue as `bitcoin-core/secp256k1` does not support x-only public key sum (perhaps due to missing prefix byte). > > > > > > I opened a new PR (#1143) to add a function to convert from x-only to compressed public key with even y. This is the solution being used by the current silent payment implementation. > > > > > > Tutorial updated: https://gist.github.com/w0xlt/c81277ae8677b6c0d3dd073893210875 ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-10-23 20:54 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-10-11 7:02 [bitcoin-dev] Silent Payment v4 (coinjoin support added) woltx 2022-10-12 9:04 ` alicexbt 2022-10-23 7:00 ` woltx 2022-10-23 20:54 ` alicexbt
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox