{"id":17663,"date":"2024-10-10T12:50:51","date_gmt":"2024-10-10T09:50:51","guid":{"rendered":"https:\/\/forklog.com\/en\/silent-payments-how-bip-352-enhances-bitcoin-users-anonymity\/"},"modified":"2024-10-10T12:50:51","modified_gmt":"2024-10-10T09:50:51","slug":"silent-payments-how-bip-352-enhances-bitcoin-users-anonymity","status":"publish","type":"post","link":"https:\/\/forklog.com\/en\/silent-payments-how-bip-352-enhances-bitcoin-users-anonymity\/","title":{"rendered":"Silent payments: how BIP-352 enhances Bitcoin users\u2019 anonymity"},"content":{"rendered":"<p>In 2024, developers of Cake Wallet, Blue Wallet and the BitBox02 hardware wallet added support for Silent Payments\u2014a protocol for static payment addresses that preserves privacy on the Bitcoin network.<\/p>\n<p>Together with the team from the bitcoin mixer <a class=\"tracking_link\" href=\"https:\/\/mixer.money\/ru\/\" target=\"_blank\" rel=\"noopener\">Mixer.Money<\/a>, we examine how Silent Payments work, and their advantages and drawbacks.<\/p>\n<h2 class=\"wp-block-heading\">What are Silent Payments<\/h2>\n<p>The concept of Silent Payments was <a class=\"tracking_link\" href=\"https:\/\/gist.github.com\/RubenSomsen\/c43b79517e7cb701ebf77eec6dbb46b8\" target=\"_blank\" rel=\"noopener\">described<\/a> by developer Ruben Somsen in March 2022. A year later he standardised it in Bitcoin improvement proposal <a class=\"tracking_link\" href=\"https:\/\/bips.dev\/352\/\" target=\"_blank\" rel=\"noopener\">BIP-352<\/a> together with Josie Bake.<\/p>\n<p>The main goal of Silent Payments is to avoid address reuse. The protocol allows new public keys to be generated for each transaction, improving <span data-descr=\"User eXperience, user experience\" class=\"old_tooltip\">UX<\/span> while maintaining a high level of privacy.<\/p>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\n<cite>&#8220;Generating a new address is a crucial aspect of maintaining privacy. However, this requires secure communication between the sender and the receiver, so that the receiver can provide an unused address, multiple addresses, or a method that allows the sender to generate addresses, e.g. xpub,&#8221; BIP-352 says.<\/cite><\/p><\/blockquote>\n<p>Silent Payments solve this: they provide static addresses that can be reused. Only senders and recipients can identify the transactions.<\/p>\n<p>If an organisation collects funds on a website, nobody can determine who donated or how much bitcoin they contributed. Support for the protocol will also improve the privacy of crypto-exchange customers: platforms typically assign a single deposit address.<\/p>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\n<cite>&#8220;If you have had to receive bitcoin several times from the same person, you face a simple choice: generate a new address every time (and somehow communicate it) or ask the sender to reuse the same address? If you generate a new address each time, you will have to pass it to the sender and hope they copy it correctly. If you decide that they should reuse one address, you will compromise the privacy of both participants in the transaction,&#8221; says the <a class=\"tracking_link\" href=\"https:\/\/silentpayments.xyz\/docs\/\" target=\"_blank\" rel=\"noopener\">Silent Payments<\/a> website.<\/cite><\/p><\/blockquote>\n<h2 class=\"wp-block-heading\">How they work<\/h2>\n<p>Implementing BIP-352 requires no consensus changes, so any Bitcoin wallet can adopt it. Silent-payment addresses have the <strong>sp1 <\/strong>prefix and look like this:<\/p>\n<pre class=\"wp-block-code\"><code><em>sp1qqvvnsd3xnjpmx8hnn2ua0e9sllm34t9jydf8qfesgc7nhdxgzksjwqlrxx37nfzsg6rure5vwa92fksd6f5a6rk05kr07twhd55u3ahquy2v7t6s<\/em>\n<\/code><\/pre>\n<p>The recipient publishes such an address without interacting with the sender, who then selects one or more UTXOs. At that point the protocol generates a new Taproot address to receive the funds. It uses the sender\u2019s private key, the recipient\u2019s sp1 address and a shared secret created via <a class=\"tracking_link\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_%D0%94%D0%B8%D1%84%D1%84%D0%B8_%E2%80%94_%D0%A5%D0%B5%D0%BB%D0%BC%D0%B0%D0%BD%D0%B0_%D0%BD%D0%B0_%D1%8D%D0%BB%D0%BB%D0%B8%D0%BF%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85_%D0%BA%D1%80%D0%B8%D0%B2%D1%8B%D1%85\" target=\"_blank\" rel=\"noopener\">ECDH<\/a> (Elliptic Curve Diffie\u2013Hellman).<\/p>\n<p>The recipient has two key pairs:<\/p>\n<ul class=\"wp-block-list\">\n<li>scan keys\u2014used to detect a payment by monitoring transactions on the blockchain and performing ECDH computations;<\/li>\n<li>spend keys\u2014used to move coins from the Taproot address.<\/li>\n<\/ul>\n<p>The main drawback is the need for continuous network scanning. It demands more computation and bandwidth than, say, using an Electrum Server.<\/p>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\n<cite>&#8220;You can have a full node at home; in that case the UX of silent payments will be no different\u2014there are no compromises here, since roughly as many resources will be spent on ECDH computation as on signature verification. Your node is already tracking all transactions, and now the protocol will require one more signature verification to check for a silent payment,&#8221; <a class=\"tracking_link\" href=\"https:\/\/www.youtube.com\/watch?v=I5VftzRdwlY&#038;ab_channel=StephanLivera\" target=\"_blank\" rel=\"noopener\">said<\/a> Josie Bake.<\/cite><\/p><\/blockquote>\n<p>A Blue Wallet mobile user (or any client that can connect to their own node) can provide the node with the scan key.<\/p>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\n<cite>&#8220;That is the ideal option. If you cannot run a full node, then in my opinion you still cannot use mobile wallets privately, although there are proposals like <a class=\"tracking_link\" href=\"https:\/\/github.com\/bitcoin\/bips\/blob\/master\/bip-0158.mediawiki\" target=\"_blank\" rel=\"noopener\">BIP-158<\/a>, but they have not reached mass adoption. Nevertheless, the Cake Wallet developers proposed an interesting solution, essentially a fork of <span data-descr=\"Electrum Server in Rust\" class=\"old_tooltip\">electrs<\/span>, which scans the blockchain for silent payments. When the mobile wallet connects to the server, it simply returns all unspent SP in the blocks since the last scan. In this case the server knows only about the data request,&#8221; he concluded.<\/cite><\/p><\/blockquote>\n<p>A key advantage of Silent Payments is that such transactions are indistinguishable on-chain. A third party cannot link them to a specific sp1 address or even tell that the protocol was used.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/forklog.com\/wp-content\/uploads\/image1-601.webp\" alt=\"image1-601\" class=\"wp-image-242933\"\/><figcaption class=\"wp-element-caption\">A test transaction using the Silent Payments protocol in the mempool.space explorer. Data: <a class=\"tracking_link\" href=\"https:\/\/silentpayments.xyz\/docs\/explained\/\" target=\"_blank\" rel=\"noopener\">Silent Payments<\/a>.<\/figcaption><\/figure>\n<h2 class=\"wp-block-heading\">Comparison with other approaches<\/h2>\n<p>As of October 2024 the developers of Silent Payments <a class=\"tracking_link\" href=\"https:\/\/www.youtube.com\/watch?v=I5VftzRdwlY&#038;t=1352s&#038;ab_channel=StephanLivera\" target=\"_blank\" rel=\"noopener\">highlight<\/a> two competing approaches:<\/p>\n<ul class=\"wp-block-list\">\n<li><a class=\"tracking_link\" href=\"https:\/\/bips.dev\/47\/\" target=\"_blank\" rel=\"noopener\">BIP-47<\/a>\u2014reusable payment codes, also known as PayNyms. Proposed in 2015 by developer Peter Todd as an implementation of <a class=\"tracking_link\" href=\"https:\/\/www.mail-archive.com\/bitcoin-development@lists.sourceforge.net\/msg03613.html\" target=\"_blank\" rel=\"noopener\">stealth addresses<\/a>. They create a transaction that notifies the recipient of a transfer to a specific public key (and thus a set of addresses) instead of including a signal in every payment;<\/li>\n<li><a class=\"tracking_link\" href=\"https:\/\/bips.dev\/351\/\" target=\"_blank\" rel=\"noopener\">BIP-351<\/a>\u2014private payments. A relatively new concept proposed in July 2022 by Alfred Hodler and Clark Moody. It sits somewhere between BIP-47 and BIP-352.<\/li>\n<\/ul>\n<p><strong>Example for BIP-47<\/strong>. Bob gives Alice a reusable payment code, and she sends him bitcoin. Alice\u2019s wallet generates a unique shared secret by combining:<\/p>\n<ul class=\"wp-block-list\">\n<li>a private key;<\/li>\n<li>a public key from Bob\u2019s payment code;<\/li>\n<li>a <a class=\"tracking_link\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9E%D1%81%D0%BB%D0%B5%D0%BF%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_(%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F)\" target=\"_blank\" rel=\"noopener\">blinding<\/a> message that lets him interpret the secret.<\/li>\n<\/ul>\n<p>The wallet encrypts this data and inserts it into the OP_RETURN field of a notification transaction. The code is visible on the blockchain, but only Bob can compute the addresses used for its generation. All subsequent payments by Alice will be known only to him.<\/p>\n<p>This approach eases scanning but also reveals the use of PayNym.<\/p>\n<p><strong>Example for BIP-351<\/strong>. Each time Alice sends funds to Bob, her wallet combines the public key from Bob\u2019s payment code with a shared secret. The protocol generates a unique notification code for OP_RETURN, used once.<\/p>\n<p>An outside observer will not see links between transactions, but will note the use of the protocol.<\/p>\n<h2 class=\"wp-block-heading\">Conclusions<\/h2>\n<p>Silent Payments improve UX and privacy on the Bitcoin network by removing the need to pass new addresses for each transaction.<\/p>\n<p>In the view of the <a class=\"tracking_link\" href=\"https:\/\/mixer.money\/ru\/\" target=\"_blank\" rel=\"noopener\">Mixer.Money<\/a> team, they can increase the anonymity of Bitcoin users, but will require broader community adoption:<\/p>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\n<cite><em>&#8220;BIP-47 was introduced nine years ago, but has so far been implemented by only a few wallets such as Sparrow Wallet and Samourai Wallet. The latter, however, already does not work due to <\/em><a href=\"https:\/\/forklog.com\/en\/news\/coinjoin-faces-a-potential-death-spiral\"><em>accusations<\/em><\/a><em> against the founders of facilitating money laundering.<\/em><\/p>\n<p><em>BIP-352 significantly improves the user experience, yet its future depends on support from application developers and major crypto exchanges. Without integration with popular services, mass adoption will not happen: bitcoin mixers will remain a universal and more straightforward solution for anonymising transactions.&#8221;<\/em><br \/><\/cite><\/p><\/blockquote>\n<p>Experience with the rollout of SegWit addresses suggests that mass adoption of such upgrades can take years. Until then, participants will likely continue to anonymise transactions using more familiar methods such as bitcoin mixers.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In 2024, developers of Cake Wallet, Blue Wallet and the BitBox02 hardware wallet added support for Silent Payments\u2014a protocol for static payment addresses that preserves privacy on the Bitcoin network. Together with the team from the bitcoin mixer Mixer.Money, we examine how Silent Payments work, and their advantages and drawbacks. What are Silent Payments The [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":17662,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"select":"","news_style_id":"","cryptorium_level":"","_short_excerpt_text":"","creation_source":"","_metatest_mainpost_news_update":false,"footnotes":""},"categories":[1144],"tags":[18,1256],"class_list":["post-17663","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-longreads","tag-bitcoin","tag-privacy-and-personal-data"],"aioseo_notices":[],"amp_enabled":true,"views":"139","promo_type":"","layout_type":"","short_excerpt":"","is_update":"","_links":{"self":[{"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/posts\/17663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/comments?post=17663"}],"version-history":[{"count":0,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/posts\/17663\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/media\/17662"}],"wp:attachment":[{"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/media?parent=17663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/categories?post=17663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/tags?post=17663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}