<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Samourai Wallet on Medium]]></title>
        <description><![CDATA[Stories by Samourai Wallet on Medium]]></description>
        <link>https://medium.com/@SamouraiWallet?source=rss-adf906ef26f3------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*XDO5JlThcSCx9WVv.png</url>
            <title>Stories by Samourai Wallet on Medium</title>
            <link>https://medium.com/@SamouraiWallet?source=rss-adf906ef26f3------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 10:15:32 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@SamouraiWallet/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Introducing Whirlpool Surge Cycles]]></title>
            <link>https://medium.com/samourai-wallet/introducing-whirlpool-surge-cycles-b5b484a1670f?source=rss-adf906ef26f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/b5b484a1670f</guid>
            <category><![CDATA[bitcoin]]></category>
            <category><![CDATA[bitcoin-privacy]]></category>
            <category><![CDATA[samourai-wallet]]></category>
            <category><![CDATA[coinjoin]]></category>
            <dc:creator><![CDATA[Samourai Wallet]]></dc:creator>
            <pubDate>Wed, 14 Jun 2023 10:54:03 GMT</pubDate>
            <atom:updated>2023-06-14T10:54:03.455Z</atom:updated>
            <content:encoded><![CDATA[<p>An explanation of what Surge Cycles are, how they can occur, and the privacy benefits they bring.</p><p>On May 15th 2023 we launched Surge Cycles on the Whirlpool coinjoin coordinator.</p><h3>Background: Whirlpool Transaction Size and Miner Fees</h3><p>To date all Whirlpool coinjoin transactions have been composed of 5 inputs and 5 outputs</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/670/1*qIcXDZQhP8AYx0XUTWSNSw.png" /><figcaption>A standard 5 input 5 output Whirlpool transaction</figcaption></figure><p>To pay for this transaction to be mined into a block we need to consider the <strong>size</strong> of the transaction, and the <strong>current miner fee rate</strong>. Using both we can determine the total amount of miner fees which are required to be paid for this transaction to get confirmed in a timely manner.</p><p>The size of a transaction, in terms of how much data it takes up on the blockchain, is determined by the type and number of inputs/outputs. The size of a 5-input/5-output Whirlpool coinjoin transaction is <strong>510 virtual bytes (vB)</strong>.</p><p>Observing on-chain, if for example the fee rate for a transaction to be mined into the next block is <strong>20 satoshis per virtual byte (sats/vB)</strong>, we would have to pay <strong>10,200 sats</strong> (510 x 20) for a 5-input/5-output coinjoin transaction to be confirmed in a timely manner.</p><h3>User Selection of Miner Fee Rate</h3><p>When a user proceeds to Whirlpool their coins, they are prompted to select a cycle priority of low, normal, or high.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ANuHAd3aiIJ1iKKJH8etkw.png" /></figure><p><strong>Cycle Priority Selection:</strong></p><ul><li>LOW = 24 block moving average</li><li>NORMAL = 6 block moving average</li><li>HIGH = 2 block moving average</li></ul><p>This selection allows a user to dictate the speed at which they wish for their first mix to occur/confirm-on chain. This in turn dictates the miner fee portion of a user’s <strong>Premix UTXO/s</strong>. The higher the cycle priority selected, the larger the miner fee portion will be in the Premix UTXO/s.</p><h3>Coinjoin Transaction: Inputs</h3><p>Historically all Whirlpool Coinjoins have been constructed with</p><ul><li>2 x Premixer UTXOs from separate wallets*</li><li>3 x Remixing UTXOs from separate wallets</li></ul><p><strong>Premixers</strong> are new entrants into Whirlpool, and are those who cover the miner fee for the coinjoin transaction. <strong>Remixers</strong> are those who have already entered Whirlpool, completed their first mix already, and are now “freeriding” to obtain more mixes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qu5GdtffH64nKOR4GiYfpw.png" /><figcaption>5-input/5-output Whirlpool Coinjoin — Broadcasted at 143 sats/vB, miner fee paid: 72,250 sats</figcaption></figure><h3>Whirlpool Coordinator: Trigger Fee Rate</h3><p>The Whirlpool Coordinator is the arbitrator of which 2 x Premix UTXOs are selected to participate in a coinjoin, and bases this decision on the current state of the Bitcoin network with what miner fee rates are likely to confirm within a timely manner. It would be inefficient for the service in which the Whirlpool Coordinator provides to organise and broadcast a coinjoin transaction if said transaction is of a low fee rate and not likely to get mined into a block.</p><p>The Whirlpool Coordinator does this by dynamically changing the <strong>Coordinator trigger fee rate</strong> based on Bitcoin network activity. When on-chain fees are expensive, a high trigger fee rate is set (e.g. 95 sats/vB). A low trigger fee rate is set when on-chain fees are cheaper (e.g. 5 sats/vB). When 2 x Premixers can satisfy the miner fee cost of the 5-input/5-output coinjoin at the Coordinator trigger fee rate, a coinjoin will then be organised and broadcasted to the Bitcoin network.</p><h3>On-Chain Fees Suddenly Decrease, now what?</h3><p>Previous to Surge Cycles, if on-chain fees were to have suddenly decreased and there were Premix UTXOs submitted for mixing with a normal cycle priority in mind, this would have lead to a 5-input/5-output coinjoin being created with an overpayment in miner fees.</p><p>Consider the following:</p><ol><li>There are many unconfirmed transaction in the mempool. Miner fee rates are high.</li><li>Whirlpool Coordinator trigger fee rate is set to 30 sats/vB.</li><li>There are Premix UTXOs waiting to carry out their first coinjoin. They entered Whirlpool with a normal priority cycle set by the user. It is only possible for the currently registered Premix UTXOs to support a coinjoin transaction broadcasted at a fee rate of 20 sats/vB.</li><li>The weekend has arrived, and as usually seen there less activity on the Bitcoin network. The mempool starts to clear out and on-chain fee rates drop quickly to 10sats/vB.</li><li>Whirlpool Coordinator trigger fee rate decreases to 10sats/vB.</li><li>The normal priority cycle Premix UTXOs are now eligible for their first mix, and a 5-input/5-output coinjoin transaction is broadcast at a fee rate of 20 sats/vB.</li></ol><p>The broadcasted coinjoin transaction has however paid double what it needed to due to the sharp decrease in on-chain fees. An efficiency gain is to be had here. Enter Surge Cycles…</p><h3>Introducing Surge Cycles</h3><p>Where miner fee overpayment may have been previously seen given certain on-chain conditions, Surge Cycles now makes use of this surplus to allow for larger, more fee efficient coinjoin transactions without compromising the already strong architecture of Whirlpool and privacy gains it provides. This comes with the introduction of the following additional Whirlpool coinjoins transactions:</p><ul><li>6-inputs/6-outputs</li><li>7-inputs/7-outputs</li><li>8-inputs/8-outputs</li></ul><p>If the Whirlpool Coordinator trigger fee decreases, rather than a 5-input/5-output coinjoin being organised and broadcasted, a 6-input/6-output, 7-input/7-output, or 8-input/8-output coinjoin may take place instead. This is achieved by the Whirlpool Coordinator selecting additional Remixer UTXOs to participate in the coinjoin thereby increasing the size of the transaction, in terms of virtual bytes (vB), and decreasing the transaction miner fee rate, in terms of satoshis per virtual byte (sats/vB).</p><h3>Examples For When A Surge Cycles Could Be Triggered</h3><p>A 5-input/5-output coinjoin broadcasted at a fee rate of 12 sats/vB would pay a total miner fee of 6,120 sats. With the same amount of miner fees paid by the Premix UTXOs it would be possible to broadcast a 6-input/6-output coinjoin transaction at a fee rate of 10 sats/vb, costing 6,120 sats.</p><p>Let’s explore some more scenarios.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*m9vH0d9EoDVe67PEpq8mYg.png" /></figure><p>This table and side annotations show the potential surge cycles that could occur if the Whirlpool Coordinator trigger fee rate decreases due to a drop in on-chain miner fee rates.</p><ul><li>Trigger fee rate decreasing from 20 sats/vB to 10 sats/vB.<br> Surge Cycle constituting 10-inputs/10-outputs would be possible.</li><li>Trigger fee rate decreasing from 18 sats/vB to 10 sats/vB.<br> Surge Cycle constituting 9-inputs/9-outputs would be possible</li><li>Trigger fee rate decreasing from 16 sats/vB to 10 sats/vB.<br> Surge Cycle constituting 8-inputs/8-outputs would be possible.</li><li>Trigger fee rate decreasing from 14 sats/vB to 10 sats/vB.<br> Surge Cycle constituting 7-inputs/7-outputs would be possible.</li><li>Trigger fee rate decreasing from 12 sats/vB to 10 sats/vB.<br> Surge Cycle constituting 6-inputs/6-outputs would be possible.</li></ul><p>This can be easier visualised by plotting miner fee rates against the required transaction miner fee for each “Surge Cycle”.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/786/1*DSRV9c4wfFSIaUws1gCNhw.png" /></figure><h3>Maximum Size Surge Cycles</h3><p>For now we have limited Surge Cycles to a maximum of 8-inputs/8-outputs. While the introduction of Surge Cycles is exciting, we have a responsibility to ensure all transactions are broadcasted with a realistic miner fee rate to ensure successful on-chain transaction confirmation.</p><h3>Surge Cycle Benefits</h3><ol><li>Increase to the miner fee efficiency for Whirlpool transactions, and more bang for the user’s buck. Those who paid a relative high miner fee rate at the time of broadcasting their Transaction Zero (Tx0) when entering Whirlpool, if the Whirlpool Coordinator trigger fee rate decreases, the miner fee paying Premixers are rewarded immediately with greater privacy; prior to Surge Cycles, the forward-looking anonymity for a user’s first mix was always 5, but now has the potential to be greater than 5.</li><li>For those who remain in postmix pool size denominations, a quicker increase to forward-looking anonymity; Remixers will now see an increase in their remixing cycle frequency, and forward-looking anonymity will in turn increase quicker for non-remixers, but for who their forward-looking anonymity can be traced to those UTXOs actively remixing.</li><li>A quicker increase to backward-looking anonymity for those additional Remixers who are added to a Whirlpool coinjoin due to the triggering of a Surge Cycle.</li><li>Increase in the number of way Whirlpool coinjoins can be interpreted on-chain:<br> 5-input/5-output = 1,496 interpretations (existing)<br> 6-input/6-output = 22,482 interpretations<br> 7-input/7-output = 426,833 interpretations<br> 8-input/8-output = 9,934,563 interpretations</li><li>Deterministic links between inputs and outputs remain 100% broken.</li><li>No client update required. The ability of Surge Cycles has been been introduced into the Whirlpool Coordinator. For existing users the Whirlpool experience does not change — though you may see an uptick in your remixes ;)</li></ol><h3>Final Note</h3><p>We have launched Surge Cycles during a period of high fee on-chain activity of which internally we saw the Whirlpool Coordinator trigger fee rate increase to 150 sats/vB; the highest we have ever seen!</p><p>Whirlpool will continue to remain geared around 5-input/5-output coinjoin transactions, and though the benefits to Surge Cycles are very much welcomed, we will be continuing to ensure Whirlpool remains just as performant as prior to its introduction.</p><h3>Surge Cycles In The Wild</h3><ul><li>6-inputs/6-outputs:<br> <a href="https://kycp.org/#/04d4ffd7f7564490ee6d7431a02a0ce2d24c43a797173365af3dce9fadc22cb7">https://kycp.org/#/04d4ffd7f7564490ee6d7431a02a0ce2d24c43a797173365af3dce9fadc22cb7</a></li><li>7-inputs/7-outputs: <a href="https://kycp.org/#/f82fa771e355ef46e9744da2407f677ea4372d85b61b4a4d735d88a85798dfc4">https://kycp.org/#/f82fa771e355ef46e9744da2407f677ea4372d85b61b4a4d735d88a85798dfc4</a></li><li>8-inputs/8-outputs:<br> <a href="https://kycp.org/#/f82fa771e355ef46e9744da2407f677ea4372d85b61b4a4d735d88a85798dfc4">https://kycp.org/#/f82fa771e355ef46e9744da2407f677ea4372d85b61b4a4d735d88a85798dfc4</a></li></ul><p><strong>Footnotes</strong></p><p>*it is possible for a Whirlpool coinjoin to constitute more than 2 x premix UTXOs.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b5b484a1670f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/samourai-wallet/introducing-whirlpool-surge-cycles-b5b484a1670f">Introducing Whirlpool Surge Cycles</a> was originally published in <a href="https://medium.com/samourai-wallet">Samourai Wallet</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Wallet Update 0.99.98g — The Stealth Mode update!]]></title>
            <link>https://medium.com/samourai-wallet/wallet-update-0-99-98g-the-stealth-mode-update-b11942f6cd74?source=rss-adf906ef26f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/b11942f6cd74</guid>
            <category><![CDATA[bitcoin]]></category>
            <category><![CDATA[samourai-wallet]]></category>
            <category><![CDATA[bitcoin-privacy]]></category>
            <dc:creator><![CDATA[Samourai Wallet]]></dc:creator>
            <pubDate>Tue, 27 Dec 2022 17:28:11 GMT</pubDate>
            <atom:updated>2022-12-27T17:28:11.608Z</atom:updated>
            <content:encoded><![CDATA[<h3>Wallet Update 0.99.98g — The Stealth Mode update!</h3><p>We’re happy to announce the release of Samourai Wallet 0.99.98g. <a href="https://samouraiwallet.com/download/wallet">You can download the APK from our website </a>or on <a href="https://play.google.com/store/apps/details?id=com.samourai.wallet">Google Play</a>. You can find full <a href="https://docs.samourai.io/en/wallet/releases#v09998g">release notes</a> on our documentation site.</p><p>Let’s start with the big news…</p><h4>Stealth Mode is back!</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/787/1*YAcdq5SQFUAUWj8QDsCpFQ.png" /></figure><p>One of our very first features we launched with in 2015 was Stealth Mode. It allowed Samourai to hide from the Launcher menu and home screen, providing users protection from casual phone searches. It was one of our most popular features at the time. Unfortunately <a href="https://blog.samouraiwallet.com/post/181821635197/temporarily-disabling-stealth-mode-remote-sms">in early 2019 Google forced us to remove </a>Stealth Mode and various other niche security features.</p><h3>Samourai Wallet on Twitter: &quot;Sad but true, @GooglePlay is forcing us to remove Stealth Mode, SMS Commands, and SIM Switch Defense features as they transition to becoming more of a &quot;Walled Garden&quot; - despite the fact these features have proven record of helping users transact safely. https://t.co/kLRQT9PWvh / Twitter&quot;</h3><p>Sad but true, @GooglePlay is forcing us to remove Stealth Mode, SMS Commands, and SIM Switch Defense features as they transition to becoming more of a &quot;Walled Garden&quot; - despite the fact these features have proven record of helping users transact safely. https://t.co/kLRQT9PWvh</p><p><strong>We are very happy to announce that — finally — as of Dec 27 2022, Stealth Mode has returned to Samourai Wallet. Let’s dig in and check it out.</strong></p><p>You can find Stealth Mode by opening your wallet and navigating to <strong>Settings &gt; Wallet. </strong>Once there, toggle on Stealth Mode and select which decoy app you want to use.</p><p>Once Stealth Mode has been enabled your wallet will automatically hide itself when you fully exit the wallet. Each decoy app has a different method of triggering the wallet to open and prompt for your PIN code.</p><h3>Samourai Wallet on Twitter: &quot;No you can&#39;t do that anymore. Each decoy app has a different way to launch the wallet. Calculator decoy app launches wallet with 5 taps of the &quot;=&quot; symbol pic.twitter.com/F6e6FvKc92 / Twitter&quot;</h3><p>No you can&#39;t do that anymore. Each decoy app has a different way to launch the wallet. Calculator decoy app launches wallet with 5 taps of the &quot;=&quot; symbol pic.twitter.com/F6e6FvKc92</p><p>We’re very pleased to finally bring back the Stealth Mode feature. We look forward to hearing all your Decoy App ideas.</p><h4>Broadcast Transaction Hex</h4><p>Another notable improvement builds on our last release <a href="https://medium.com/samourai-wallet/wallet-update-0-99-98f-db062dd0e1ec">where we introduced a new Tools screen</a>. In this release we have included a brand new tool, the ability to broadcast any signed transaction in Hex format.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/546/1*weELszRwY6ZR_A735a57yw.png" /><figcaption>Broadcast Transaction Hex</figcaption></figure><p>This tool allows you to use your Samourai Wallet to broadcast transactions that it didn’t create or have private keys for. This could be useful for cold storage systems, but more importantly this helps solidify our commitment to censorship resistance. Every Samourai Wallet app can now broadcast any valid bitcoin transaction on behalf of any another party. We’ll continue to build out useful tools and utilities for the new Tools screen.</p><h3>Thank you</h3><p>Download Samourai Wallet 0.99.98g today. You can <a href="https://samouraiwallet.com/download/wallet">download the APK </a>from our website or on <a href="https://play.google.com/store/apps/details?id=com.samourai.wallet">Google Play</a>. Join our <a href="https://t.me/SamouraiWallet">Telegram</a> to keep up to date on development and to receive help from the very helpful community.</p><p>If you need any help or assistance reach out on <a href="https://samourai.support/">samourai.support</a> and view documentation on <a href="https://docs.samourai.io/">docs.samourai.io</a>. Please be aware there are numerous scam/impersonator accounts claiming to be Samourai Wallet support. We do not provide support anywhere but the <a href="https://samourai.support/">samourai.support</a> platform.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b11942f6cd74" width="1" height="1" alt=""><hr><p><a href="https://medium.com/samourai-wallet/wallet-update-0-99-98g-the-stealth-mode-update-b11942f6cd74">Wallet Update 0.99.98g — The Stealth Mode update!</a> was originally published in <a href="https://medium.com/samourai-wallet">Samourai Wallet</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Wallet Update 0.99.98f]]></title>
            <link>https://medium.com/samourai-wallet/wallet-update-0-99-98f-db062dd0e1ec?source=rss-adf906ef26f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/db062dd0e1ec</guid>
            <category><![CDATA[bitcoin-privacy]]></category>
            <category><![CDATA[privacy]]></category>
            <category><![CDATA[samourai-wallet]]></category>
            <category><![CDATA[bitcoin-wallet]]></category>
            <category><![CDATA[bitcoin]]></category>
            <dc:creator><![CDATA[Samourai Wallet]]></dc:creator>
            <pubDate>Thu, 29 Sep 2022 14:10:22 GMT</pubDate>
            <atom:updated>2022-09-29T14:12:29.817Z</atom:updated>
            <content:encoded><![CDATA[<p>We’re happy to announce the release of Samourai Wallet 0.99.98f. <a href="https://samouraiwallet.com/download/wallet">You can download the APK from our website </a>or on <a href="https://play.google.com/store/apps/details?id=com.samourai.wallet">Google Play</a>. You can find <a href="https://docs.samourai.io/en/wallet/releases#v09998f">release notes</a> on our documentation site.</p><p>This is a big update with dramatic UI changes, new functionality, the release of a brand new feature, and improvements for our power users.</p><h3>PayNym Bot &amp; Toolbar Menu</h3><p>You’ll notice that the Samourai logo in the top left of the toolbar has been replaced with your individual PayNym Bot image. A PayNym Bot is a visual representation of a BIP47 Reusable Payment Code. A Bot is created by taking a BIP47 code and applying a hashing algorithm which produces a unique fingerprint used to create the Bot image. So each bot image is unique to each wallet. If you tap your PayNym bot image you will open the new toolbar menu.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SNlUsO6igiyz6ehkrJW2dg.png" /></figure><p>In the Toolbar Menu you’ll notice some new options such as Collaborate and Tools. So let’s move on to the next major UI update we have made, Collaborative Transactions (Cahoots) has had a major UI rework.</p><h3>Collaborate</h3><p>The collaborative transaction has a long history in Samourai. In March 2019 we released our first iteration of collaborative transactions. It required users to manually scan and share at least 5 QR codes with their collaborator. It was just a start but we knew it would develop into a key feature.</p><p>In November 2020 <a href="https://medium.com/samourai-wallet/wallet-update-0-99-96-introducing-soroban-adc9a36a7ddb">we released our new open source app-agnostic, Tor based encrypted communication protocol called Soroban</a>. This allowed us to automate the coordination of small 2 person collaborative coinjoin transactions to make them much quicker than before and without using a centralised coordinator. These transactions, STONEWALLx2 and Stowaway enjoy heavy use among our user base and have even been implemented along with Soroban in third party wallets such as <a href="https://sparrowwallet.com/">Sparrow Wallet</a>.</p><p>In this update we have created a brand new UI for both initiating and collaborating in STONEWALLx2 or Stowaway transaction.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*70Ja79gCvA8VLswiTuUmMQ.png" /></figure><p>Up until now the collaborative transaction workflow and UI were somewhat of an afterthought, and users needed to be pretty savvy in navigating around the app to make use of the feature.</p><p>This update should make it even easier for anyone to participate or initiate a new collaborative transaction. Both initiation and participation are located in one easy to reach location (before this update there could be 4 different places to go to initiate or participate in a transaction like this!)</p><p><strong>For those that need a quick primer on STONEWALLx2:</strong></p><blockquote>This type of transaction is a two person coinjoin that the sender and a third party collaborate to send to an external wallet. This is a great choice when sending to someone who doesn’t have Samourai Wallet, for instance a merchant using BTCPayServer. Using a STONEWALLx2 transaction to make your payments undermines the Common Input Ownership Heuristic — a bedrock of blockchain snoops and spies.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9WVYoBW7A2UOFIyWpQUSaw.png" /></figure><h3>Introducing JoinBot</h3><p>One of the problems that remain with Collaborative Transactions in Samourai Wallet is that you need someone to collaborate with. This can be a problem for many users, especially new users. They may want to explore the feature, or benefit from the privacy enhancements that Collaborative Transactions offer but be unable to do so because they don’t have anyone they can collaborate with.</p><p>This is the perfect time to introduce our newest feature, JoinBot. For a small spam prevention fee you can have JoinBot act as the second participant in a STONEWALLx2 collaborative transaction</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/886/1*eSHTLMfj2u-rjF3ENH_wyw.gif" /></figure><p>There are some benefits choosing to use JoinBot as your STONEWALLx2 collaborator.</p><ul><li>Joinbot is always online, so it is great for time sensitive payments where you might not have time to find a collaborator who is online and able to help you.</li><li>Joinbot only uses UTXOs directly from Whirlpool postmix, so you do not need to worry about the history of the collaborating UTXOs and how they have been handled by the collaborator.</li><li>Since JoinBot is online 24/7 it always has UTXOs registered for remixing, so there are very good odds that you collaborating with extremely well remixed UTXOs.</li></ul><h4>JoinBot fees</h4><p>There is a small anti-spam fee in addition to the usual miner fees when using JoinBot. The service fee is set at 3.5% of the send amount or 0.01 BTC, whichever is less.</p><p>For example, if you are sending 0.1 BTC using JoinBot as a collaborator the fee would be 0.0035 BTC, meanwhile sending 1 BTC would use the capped maximum fee of 0.01 BTC.</p><p>The fee is paid in a second transaction automatically using another type of collaborative transaction called Stowaway.</p><p>The fee transaction is not associated with the JoinBot transaction on the blockchain. This makes sure the STONEWALLx2 transaction made with JoinBot looks like every other STONEWALL transaction out there, you cannot tell any difference.</p><h4>Some caveats</h4><ul><li>You will need to have at least two unrelated UTXOs available in your wallet in order to successfully perform a STONEWALLx2 with JoinBot.</li><li>STONEWALLx2 requires that both participants each pay half of the transaction miner fee. This is respected with JoinBot, but you will reimburse JoinBot for that half of the miner fee within the anti-spam fee transaction.</li><li>For this initial release we are only allowing a maximum transaction amount of 1.5 BTC using JoinBot as a collaborator. The minimum amount you can send is 546 sats.</li></ul><h3>Tools</h3><p>We’ve also introduced a new screen in the wallet activated from the new Toolbar Menu. This screen is called ‘Tools’ and contains new UI for sweeping private keys and calculating addresses for your wallet. Most casual users will not have much need to use this section of the wallet, but will be a big upgrade for our power users.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/590/1*-t-L419-96DvL3us5fs3Eg.gif" /></figure><ul><li><strong>Sweep Private key — </strong>You now have full control of the miner fee you pay for sweeping a private key, as well as what address derivation you wish to sweep to. The final big change here is you can now sweep Taproot addresses into your Samourai Wallet.</li><li><strong>Sign Message — </strong>We moved this from where it was buried in the settings. You can now very easily sign a message using any address on any derivation within your wallet.</li><li><strong>Wallet Address Calculator —</strong> Again, we moved this from buried deep in the settings. You can now derive address, redeem script and private key from any address in your wallet on any derivation path.</li></ul><h3>Authenticate using PayNym</h3><p>A few years ago we came up with a specification for allowing users to login to websites/apps without needing to provide a username or password, just by using their PayNym. Sparrow Wallet has already added this specification into their wallet. Keep tuned for further announcements about this feature in the near future.</p><h3>Thank you</h3><p>Download Samourai Wallet 0.99.98f today. You can <a href="https://samouraiwallet.com/download/wallet">download the APK </a>from our website or on <a href="https://play.google.com/store/apps/details?id=com.samourai.wallet">Google Play</a>. Join our <a href="https://t.me/SamouraiWallet">Telegram</a> to keep up to date on development and to receive help from the very helpful community.</p><p>If you need any help or assistance reach out on <a href="https://samourai.support/">samourai.support</a> and view documentation on <a href="https://docs.samourai.io/">docs.samourai.io</a>. Please be aware there are numerous scam/impersonator accounts claiming to be Samourai Wallet support. We do not provide support anywhere but the <a href="https://samourai.support/">samourai.support</a> platform.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=db062dd0e1ec" width="1" height="1" alt=""><hr><p><a href="https://medium.com/samourai-wallet/wallet-update-0-99-98f-db062dd0e1ec">Wallet Update 0.99.98f</a> was originally published in <a href="https://medium.com/samourai-wallet">Samourai Wallet</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[OXT Update]]></title>
            <link>https://medium.com/oxt-research/oxt-update-38591f4050d9?source=rss-adf906ef26f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/38591f4050d9</guid>
            <category><![CDATA[privacy]]></category>
            <category><![CDATA[bitcoin]]></category>
            <category><![CDATA[oxt]]></category>
            <dc:creator><![CDATA[Samourai Wallet]]></dc:creator>
            <pubDate>Fri, 17 Jun 2022 14:52:56 GMT</pubDate>
            <atom:updated>2022-06-17T14:52:56.196Z</atom:updated>
            <content:encoded><![CDATA[<h3>OXT Visualizer Update</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*CSlVJar8Kc7Di6d5X9Xxew.png" /><figcaption>A picture is worth a thousand words</figcaption></figure><h3>Intro</h3><p>A financial flow (transaction graph) analysis aims to track a single entity’s spending over multiple transactions. By naively mapping the flow relationship of bitcoins, analysts can miss obvious signs of coins changing hands.</p><p>Additional information known as wallet or software “fingerprinting” can be used to help determine when bitcoins are spent by a different software. Spending by wallets with a new fingerprint is a heuristic for coins changing ownership. The latest OXT transaction graph update visually encodes changes in wallet fingerprints on the graph to improve analysis accuracy.</p><h3><strong>Entity Tracking Recap — Change Detection</strong></h3><p>To track an entity, “change detection” heuristics are used to determine which transaction outputs are payments and which outputs are “change” returned to the original spender. The analyst evaluates the full transaction details including the input and output amounts, script types, output positions, and more. If one or more change heuristics can be applied, the analyst continues tracking the spender to the next transaction. We previously presented several change detection heuristics in these <a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-1-4-8177a40a5923">posts</a> and <a href="https://www.youtube.com/watch?v=QEnL5k0R08w&amp;list=PLIBmWVGQhizLrPjpFMN5bQdbOZRxCQXUg">Youtube playlist</a>.</p><p>Applying these simple heuristics in combination can be extremely accurate. Academic researchers are looking to thoroughly establish the accuracy of change detection heuristics using machine learning algorithms as presented <a href="https://arxiv.org/abs/2107.05749">here</a> and <a href="https://arxiv.org/abs/2205.13882">here</a>.</p><p>The results of these papers indicates that including wallet fingerprinting such as different script types, version numbers, and lock times encountered during a transaction graph analysis can be used to improve tracking.</p><h3><strong>OXT’s New Fingerprint Mode</strong></h3><p>OXT’s transaction graph is a directed acyclic graph. Nodes on the graph represent transactions. Edges (lines) map the relationships between nodes. To provide maximum detail and minimize cognitive load on the analyst, OXT’s new Fingerprint Mode encodes the various transaction and TXO data in different ways.</p><p>Transaction details are encoded by varying node shapes and shading. TXO details are encoded by varying edge linetype and color.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*v7Fo9bidvWqonGq100fZlg.png" /><figcaption><em>Multiple peel chains showing different script types</em></figcaption></figure><p><strong><em>The end result makes change detection easier for analysts and visually displays different fingerprints to transaction graph observers without the observer needing to know what these differences are.</em></strong></p><p>With this new data visualizer, bitcoin users can keep pace with the advances in academic research and evaluate the impacts of using wallets that do not support <a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-3-4-9a1b2b572a8">anti-fingerprinting defaults</a>.</p><h3><strong>Menus and Buttons</strong></h3><p>A summary of the buttons on the transaction graph tool bars is presented below.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/877/1*mMQy1KxuP2r2ZmwvQlePGQ.png" /><figcaption>Toolbar buttons</figcaption></figure><p>Quick access menus for transactions, TXOs, and comments are presented below. These are accessed via <strong>right-clicking the desired object.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*58W6y1tseSZCxnHmNSOeKA.png" /><figcaption><em>Transaction quick menu buttons</em></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SAB0WlySJDdLc1OcRWIxmg.png" /><figcaption><em>TXO quick menu buttons</em></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oMXx1ZSH0S5kbmaILfxjfQ.png" /><figcaption>Comments quick menu buttons (comments can be dragged and positioned on screen)</figcaption></figure><h3><strong>Fingerprint Mode Legend</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*msKQLmZxQpt096uN8D-icw.png" /></figure><p><strong><em>Transaction Version Number</em></strong><em> Encoded via Node Color<br></em>dark grey = version no. 1<br>light grey = version no. 2</p><p><strong><em>Transaction Locktime</em></strong><em> Encoded via Node Shape<br></em>circle = 0<br>square = block height<br>hexagon = timestamp</p><p><strong><em>TXO “Script Hash” Type</em></strong><em> via Edge Dashing<br></em>one interspace = P2SH<br>two interspaces = P2WSH<br>three interspaces = P2TR<br>no dashes = non script hash scripts (unnested P2PKH, P2WPKH, raw multisig, etc)</p><p><strong><em>TXO Script Type </em></strong><em>via Edge Coloring<br></em>green = P2PK/P2PKH<br>orange = multisig<br>yellow = OP_Return<br>light-blue = P2WPKH/P2SH<br>pink = non-standard</p><h3>Additional Updates</h3><h4>OXT.me</h4><ul><li>Search Bar: auto-completes possible addresses with additional unique address characters</li></ul><h4>Transaction Graph</h4><ul><li>Mouse hover over transactions now includes version number and locktime</li><li>Transaction Details Window includes txid copy button</li><li>Transaction Details Window includes expand all inputs or outputs buttons</li><li>When expanding a single TXO from the transaction details window, the selected TXO is automatically made active</li></ul><p>Enjoy the update. Comments and feedback are welcome.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=38591f4050d9" width="1" height="1" alt=""><hr><p><a href="https://medium.com/oxt-research/oxt-update-38591f4050d9">OXT Update</a> was originally published in <a href="https://medium.com/oxt-research">OXT Research</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The National Crime Agency vs non custodial CoinJoin]]></title>
            <link>https://medium.com/samourai-wallet/the-national-crime-agency-vs-non-custodial-coinjoin-1ebc4433c9a6?source=rss-adf906ef26f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/1ebc4433c9a6</guid>
            <dc:creator><![CDATA[Samourai Wallet]]></dc:creator>
            <pubDate>Tue, 15 Mar 2022 11:17:34 GMT</pubDate>
            <atom:updated>2022-03-15T16:23:29.755Z</atom:updated>
            <content:encoded><![CDATA[<p>The UK’s National Crime Agency (NCA) has issued a warning that “crypto mixers” are being used for money laundering. In the reporting by the Financial Times, Samourai Wallet and Wasabi Wallet have both been mentioned as a “well-known mixer”. The article was published on the FT website behind a paywall but can be read in entirety here <a href="https://archive.ph/LMsEy">https://archive.ph/LMsEy</a></p><p>The author of the article reached out to us on March 11 with the following questions to allow us to respond.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/490/1*3eDdsS7oV3MweFFwyU5Y7g.png" /></figure><p>Since only a single sentence of our response was used in the resulting article we have decided to publish our entire response that we sent to the Financial Times below.</p><p>There must be a distinction made between what the NCA has labelled ‘crypto mixers’ and the open source software algorithms that are used in Samourai Wallet, known as CoinJoin. A “mixer” implies a custodial system where crypto is sent into the control of a third party custodian who promises to send back crypto that is unrelated to the deposit. The software that Samourai Wallet produces is fundamentally different. In the Samourai software, users individually collaborate with each other to compose what are known as CoinJoin transactions to themselves. The user retains custody of their bitcoin at all times and a transmission of funds to any third party never occurs.</p><p>While it is true that Bitcoin is a pseudonymous system at the protocol level, the vast majority of crypto on-ramps and off-ramps are the custodians of vast amounts of personally identifiable information about their users — to comply with KYC and AML guidelines and regulations.</p><p>Several of these custodians have had serious data breaches where this sensitive information is now in the hands of criminals and other bad actors putting innocent users at increased risk of being the target of serious crime like fraud, kidnapping, or worse. With transparent ledgers like the Bitcoin blockchain every transaction is publicly recorded and viewable by anyone indefinitely, a situation no normal person would tolerate in the existing financial system. The existing system has several legislative mechanisms built in that ensure basic privacy (your bank doesn’t share your account balance and transaction history with the barista at the coffee shop for example). The blockchain doesn’t have the luxury of legislative power to solve these problems, therefore software solutions such as CoinJoin are used to obtain these basic protections.</p><p>The argument that crypto users identity is obscured on the blockchain so users shouldn’t need to worry themselves with basic financial privacy is not only bad advice, it is a feeble attempt to justify an unprecedented encroachment into the financial privacy of law abiding citizens. The NCA’s remit is to stop serious and organized crime not regulate the behaviour of law abiding citizens.</p><p>Elliptic doesn’t provide the underlying data they use to produce these unverifiable numbers. Their methodolgy is often a black box, where headline numbers and charts are presented in lieu of data. Likewise, government contracts play an important part of for profit businesses like Elliptic. It is our contention that these figures are likely overstated. For H1 2021, FINCEN estimated ransomware, by far the largest illicit use volume of bitcoin, to mixer flows at only 1% (<a href="https://www.fincen.gov/sites/default/files/2021-10/Financial%20Trend%20Analysis_Ransomware%20508%20FINAL.pdf">source</a>). Elliptic’s and FINCEN’s estimates are an order of magnitude apart, which implies one of them is wrong.</p><p>We believe the vast majority of users who are using non custodial CoinJoin software are law abiding and simply trying to obtain a basic level of financial privacy when using a transparent and public blockchain.</p><p>Businesses that take custody of funds on behalf of customers are already heavily regulated. We agree that the use of centralized mixers that take possession and custody of funds should be scrutinized and avoided. However, free and open source software algorithms in which there is no entity that takes custody of funds cannot be effectively regulated. We believe the NCA should instead focus on more productive methods to prevent serious crime and catch criminals.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1ebc4433c9a6" width="1" height="1" alt=""><hr><p><a href="https://medium.com/samourai-wallet/the-national-crime-agency-vs-non-custodial-coinjoin-1ebc4433c9a6">The National Crime Agency vs non custodial CoinJoin</a> was originally published in <a href="https://medium.com/samourai-wallet">Samourai Wallet</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Supporting the Tor network with a $50,000 donation to the Tor Project]]></title>
            <link>https://medium.com/samourai-wallet/supporting-the-tor-network-with-a-50-000-donation-to-the-tor-project-98cb8896e652?source=rss-adf906ef26f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/98cb8896e652</guid>
            <dc:creator><![CDATA[Samourai Wallet]]></dc:creator>
            <pubDate>Wed, 22 Sep 2021 16:07:10 GMT</pubDate>
            <atom:updated>2021-09-22T16:07:10.681Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/512/1*vtfEYupXAsmp1IDTPiCOZg.jpeg" /></figure><p>When we started building Samourai Wallet in 2015 one of our first priorities was to enable the software to work through the Tor network for increased user privacy and protection. Tor was still a little hairy on mobile at that time, but using a third party app (Orbot) our users were able to make use of Tor with the wallet.</p><p>A few years later, Samourai Wallet was the first mobile bitcoin wallet to include Tor as fully integrated functionality, meaning users no longer needed to have a third party app installed. They could route all traffic through Tor with the simple press of a button. This dramatically increased the number of users making use of Tor.</p><p>Since then we have released <a href="https://code.samourai.io/dojo/samourai-dojo">Samourai Dojo</a>, a full bitcoin node based wallet back-end that can power your Samourai Wallet and runs natively over the Tor network. We also released <a href="https://code.samourai.io/whirlpool/Whirlpool">Samourai Whirlpool</a>, a blinded Chaumian CoinJoin implementation that requires Tor to function properly. Earlier this year we released <a href="https://code.samourai.io/wallet/samourai-soroban">Samourai Soroban</a>, a Tor based encrypted message passing system designed for use in peer2peer CoinJoin transactions that are available in the wallet.</p><p>All of the free and open source software that Samourai releases makes heavy use of the free and open source Tor software maintained by the <a href="https://www.torproject.org/">Tor Project</a>. We are proud to announce today that we are able to support the work of the Tor Project with a $50,000 USD donation and joining the project as a <a href="https://www.torproject.org/about/membership/">“Vidalia Onion” member</a>.</p><p>We’re proud to have been able to give back to one of the most important technologies available in reclaiming and preserving your privacy. To make your own donation to the Tor Project visit <a href="https://donate.torproject.org/">https://donate.torproject.org/</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=98cb8896e652" width="1" height="1" alt=""><hr><p><a href="https://medium.com/samourai-wallet/supporting-the-tor-network-with-a-50-000-donation-to-the-tor-project-98cb8896e652">Supporting the Tor network with a $50,000 donation to the Tor Project</a> was originally published in <a href="https://medium.com/samourai-wallet">Samourai Wallet</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Understanding Bitcoin Privacy with OXT — Part 4/4]]></title>
            <link>https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-4-4-16cc0a8759d5?source=rss-adf906ef26f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/16cc0a8759d5</guid>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[samourai-wallet]]></category>
            <category><![CDATA[blockchain-analysis]]></category>
            <category><![CDATA[bitcoin-privacy]]></category>
            <category><![CDATA[bitcoin]]></category>
            <dc:creator><![CDATA[Samourai Wallet]]></dc:creator>
            <pubDate>Wed, 11 Aug 2021 11:47:35 GMT</pubDate>
            <atom:updated>2021-08-11T11:47:35.413Z</atom:updated>
            <content:encoded><![CDATA[<h3>Understanding Bitcoin Privacy with OXT — Part 4/4</h3><h4>Applying Chain Analysis Concepts To Improve User Privacy</h4><h3>Introduction</h3><p>So far this guide has introduced the basics concepts used by chain analysis and the concepts used to undermine chain analysis.</p><p>It is unlikely that users reading this are looking to become “experts” in chain analysis, but a fundamental understanding of the tools and concepts used to attack their privacy will allow them to better protect their privacy.</p><p>In this section we will introduce the real world implications of sending and receiving transactions on user privacy. From there we will present specific privacy enhancing technologies that can be used to maintain privacy when interacting with bitcoin.</p><h3>Lost On Chain — Starting Points And Breaking Pseudonymity</h3><p>Bitcoin is pseudonymous by default. Without additional information tying user activity to on-chain activity, an analysis has no “starting point” for tracking related bitcoin network activity.</p><p>Starting points typically include users willingly disclosing addresses they control. Provided addresses are typically for receiving payment. Starting points can also be obtained from information provided by third parties, such as the information sharing agreements between surveillance firms and exchanges.</p><p>For beginner analysts, some “context” is usually necessary for performing an analysis. That valuable context often comes from analysis of their own transactions. Users evaluating their own transaction history via a third party block explorer are encouraged to use a VPN or Tor browser to prevent linking of their IP address with their transaction information.</p><h3>OXT Workflow — Addresses As Starting Points</h3><p>Most users query block explorers by entering an address as a starting point. When querying OXT with an address as a starting point, the associated transaction information will not automatically be displayed. Users should follow the steps below to navigate to the transaction graph.</p><p>1. Log in to your OXT account. Accounts are free and do not require any personally identifiable information for creation.</p><p>2. Enter the desired address into the search bar.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Kp1BIAJqDsfj3Gvhd8nEGQ.png" /><figcaption><strong>Fig 4.1 OXT Workflow Address Query</strong></figcaption></figure><p>3. Navigate to the TRANSACTION TAB</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*6F8dw0Tv0HkKl7UEkh27Jg.png" /><figcaption><strong>Fig 4.2 OXT Workflow Address — Transaction Tab</strong></figcaption></figure><p>4. Select the desired transaction. Users should note that a starting address may have received multiple payments. If the address has received multiple transactions, they will have to select the desired transaction based on volume and timing of the transactions.</p><p>5. From there the Transaction Page will be opened.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vO5hsd74eLXyX35v3KyhOg.png" /><figcaption><strong>Fig 4.3 OXT Workflow Transaction Page and Graph Tool</strong></figcaption></figure><p>6. Open the transaction graph to begin the financial flow evaluation.</p><p><em>Note: If users already have the desired transaction ID, they can avoid logging into OXT and navigate directly to the transaction page for accessing the transaction graph. Revisit </em><a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-2-4-20010e0dab97"><em>Part II</em></a><em> for additional details on interacting with the transaction graph.</em></p><h3>Analysis Directions — UTXO History And Future Spending</h3><p>Analysts presented with a starting transaction and UTXO can pursue two investigation “directions”.</p><p>They can search for the “source” of funds by evaluating the past history of the target UTXO. Source evaluation for transaction chains with a single input are fairly simple to perform, because there is no “decision” to be made in evaluating which input UTXO path to follow. However, multi-input transactions present analysts with multiple sources to evaluate.</p><p>Analysts can also search for the “destination” of future spends from the associated UTXO by applying the change detection heuristics presented in <a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-1-4-8177a40a5923">Part I</a> and external transaction data presented in <a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-2-4-20010e0dab97">Part II</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5MsCvstQkohMp-Ym7OacXg.png" /><figcaption><strong>Fig 4.5 Investigation Direction — Source &amp; Destination</strong></figcaption></figure><p><strong><em>Note: UTXO flows should not be tracked across custodial services. It is highly unlikely that a deposit UTXO will be used to payout to the entity making the deposit.</em></strong></p><h3>Privacy Implications Of Sending And Receiving Payments</h3><p>When sending or receiving a payment, users necessarily reveal some of their UTXO set to their counterparty. For naively managed UTXOs, this may reveal a users <strong><em>entire</em></strong> wallet balance to a counterparty.</p><p>Disclosing wealth for making payments is an unfortunate side effect of bitcoin’s transparency. The negative implications of this disclosure to counterparties should be obvious, particularly for simple spends.</p><p>In addition, payments made by a sender allow for a recipient to assess the senders past transaction history. Payments also allow a sender to evaluate a recipients future spending of their received payment.</p><p>The techniques discussed below are designed to mitigate the negative side effects of bitcoin’s transparency.</p><h3>Samourai Wallet Privacy Enhancing Transactions</h3><p>Much of chain analysis is based on the following core concepts:</p><ul><li>analysts needing a starting point</li><li>the issues of the transaction graph</li><li>change detection</li><li>clustering separate addresses by the common input ownership heuristic</li></ul><p>In <a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-1-4-8177a40a5923">Part I</a> and <a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-2-4-20010e0dab97">II</a> we introduced the core concepts of chain analysis. <a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-3-4-9a1b2b572a8">Part III</a> presented the concepts used to undermine these techniques.</p><p>The OXT team works with the <a href="https://samouraiwallet.com/">Samourai Wallet</a> developers to test and create techniques that mitigate the privacy shortcomings we have introduced so far. These techniques are discussed below.</p><h4>Stealth Addresses — Denying a Start Point</h4><p>Chain analysts need a starting point when attempting to track an entity’s on chain activities. This typically means linking a target’s online activity with an address they have posted for receiving payments or donations. From this address an analyst can evaluate a user’s activity including received payments, total address balance, and spending patterns.</p><p>User’s frequently share addresses for receiving payments. The shared addresses are the same addresses that appear on the blockchain and are searchable via any block explorer.</p><p>Instead of exchanging a direct address for receiving payment, users can exchange “stealth addresses”. Stealth addresses are based on concepts derived from the Diffe-Hellman key exchange, a critical cryptographic concept that underpins TLS/SSL, one of the most important forms of cryptography used in internet secure communications.</p><p>Samourai Wallet’s stealth address implementation is based on the <a href="https://github.com/bitcoin/bips/blob/master/bip-0047.mediawiki">BIP 47</a> Proposal by the Open Bitcoin Privacy Project. BIP 47 reusable payment codes allow a sender to: create an unlimited amount of unique bitcoin addresses for payment to the intended recipient without the recipient needing to be online.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vSmZHwD3fXUZd1USna3xsQ.png" /><figcaption><strong>Fig 4.6 V1 BIP47 Payment Code Architecture (</strong><a href="https://raw.githubusercontent.com/bitcoin/bips/master/bip-0047/reusable_payment_codes-01.png">BIP 47 Github</a><strong>)</strong></figcaption></figure><p>Reusable payment codes deprive analysts of a “free” starting point on the bitcoin block chain. More information on Samourai Wallet’s reusable payment code can be found <a href="https://docs.samourai.io/en/wallet/usage#paynym-1">here</a>.</p><h4>Coin Control — UTXO Segregation</h4><p>Combining inputs from multiple sources in future spends can allow payment senders to evaluate the transaction histories of additional UTXOs combined with their spent UTXO.</p><p>To mitigate this privacy leak, users can practice “coin control”. Broadly coin control consists of several steps.</p><ul><li>Labelling received payment UTXOs. At a minimum labelling should include the sender and reason for payment.</li><li>“Marking Do Not Spend”. To prevent a wallet from accidentally including a UTXO in a future payment, UTXOs can be made inactive for inclusion in future spends.</li><li>Sending Individual (Selective UTXO Activation). UTXOs can be selectively spent.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rvPKdNZOBUg1Y5IMH5ZIZg.png" /><figcaption><strong>Fig 4.7 Samourai Wallet Coin Control</strong></figcaption></figure><p>When payments are made, users should also get in the habit of labelling their change UTXOs. When a label is added to a single UTXO, Samourai Wallet will automatically label any other UTXOs (change outputs) from the same spend with the same label.</p><h4>Ricochet — Adding Distance</h4><p>Ricochet is a simple tool that automatically adds “hops”, or dummy transactions between an origin UTXO and payment destination. Ricochet transactions do not obfuscate source of funds or break the transaction graph. However, these transactions put distance between a payment destination and previous UTXO histories.</p><p>Source of fund evaluation for transactions with a single input are relatively easy to perform, but adding “hops” requires a receiving entity to evaluate history beyond the immediate incoming UTXO. Transaction graph traversal analyses are simple to perform, but expanding incoming UTXO history evaluation implies additional doubt based on the “UTXO Ownership Model” which increases chances for false positives.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*L22o-XS3eshYJbZU7jgHbQ.png" /><figcaption><strong>Fig 4.8 Example Ricochet Transaction (</strong><a href="https://oxt.me/transaction/ee0d4dd6703949e594d88734ec40aa669a586c3126ee713bcf5883bd7f55b816">TxID</a><strong>)</strong></figcaption></figure><p>The current version of ricochet includes four extra hops. A more “dynamic” ricochet with a variable number of hops is planned in future updates. More information on ricochet can be found <a href="https://docs.samourai.io/wallet/privacy-enhanced-transactions#ricochet">here</a>.</p><p>STONEWALL and STONEWALLx2 — Payments Made Safe</p><p>STONEWALL and STONEWALLx2 use the same coin selection algorithm to create transactions with coinjoin properties. STONEWALL is a simulated coinjoin that uses inputs from an individual wallet. STONEWALLx2 is a “true” coinjoin that uses inputs from 2 collaborating users/wallets.</p><p>Using the same algorithm means these transactions have identical on-chain footprints, and are indistinguishable to outside observers. As a result, analysts must consider the possibility that any STONEWALL transaction is a “true” coinjoin.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jo23TlFDWKgLpbvnr0zUrQ.png" /><figcaption><strong>Fig 4.9 Example Stonewall Transaction (</strong><a href="https://kycp.org/#/587b93fb5bb4671835db88e30bab0acea752a9c06eaebc251f7fa644fc321cdf">TxID</a><strong>)</strong></figcaption></figure><p>The STONEWALL algorithm is an extension of the transaction properties aimed at defeating simple spend change detection heuristics such as like-type output scripts and randomised change output position.</p><p>Due to their coinjoin properties, stonewall transactions are capable of defeating the round output payment heuristic interpretation that cannot be defeated by a simple spend. Stonewall defeats these heuristics by creating transactions with a “dummy” output equal to the intended payment amount.</p><p>STONEWALL’s are true payments, that still include deterministic links for their “change” UTXOs. Because a STONEWALL can be a two-wallet coinjoin, a transaction counterparty cannot be sure which change UTXOs belong to the transaction sender responsible for making the payment and which change UTXO belongs to the coinjoin collaborator.</p><h3>Stowaway — Breaking the CIOH</h3><p>As we described in <a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-3-4-9a1b2b572a8">Part III</a>, payjoin transactions undermine the common input ownership heuristic. If a single UTXO does not have a sufficient balance to make the desired payment amount, wallet software will include additional inputs as needed to meet the desired amount. Analysts can potentially incorrectly assume the inputs these transactions are controlled by the same wallet.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*poKteoiFEG9NvLRaIdI1gw.png" /><figcaption><strong>Fig 4.10 Example Stonewall Transaction (</strong><a href="https://oxt.me/transaction/14ff5e5c9206f7722b0ed421d26f1cb003c523070c4882150073817683bd2dda"><strong>TxID</strong></a><strong>)</strong></figcaption></figure><p>Payjoins typically have no indistinguishable on chain fingerprint. By including inputs from the transaction sender and payment recipient, two wallets are used to construct the transaction. This undermines the CIOH and creates a “false cluster”. As a consequence of the recipient contributing inputs to the transaction payjoin, the true transaction payment amount is also hidden.</p><h3>Whirlpool Coinjoin — Creating Forward Privacy</h3><p>Payment senders can track the future spending of their payment UTXO and potentially obtain additional information about their counterpatry’s wallet composition. To maintain their privacy, payment recipients can coinjoin to break the link between their payment receipt and future spending. In otherwords, sending UTXOs received as payment through a coinjoin establishes forward privacy.</p><p>Whirlpool is the only 100% entropy zerolink coinjoin implementation. Whirlpool coinjoins do not include “unmixed change” outputs within the coinjoin transaction that can be used to continue to track user activity.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RapcQOiKQbIMFgP7CHK0Hg.png" /><figcaption><strong>Fig 4.11 Whirlpool Transaction (</strong><a href="https://kycp.org/#/323df21f0b0756f98336437aa3d2fb87e02b59f1946b714a7b09df04d429dec2"><strong>TxID</strong></a><strong>)</strong></figcaption></figure><p>The Whirlpool transaction process begins with the Tx0 which pays the coordinator fee, creates premix UTXOs that are equal to the pool denomination plus miner fees, and a segregated change UTXO.</p><p>Inputs to a Tx0 should be selected with care to avoid linking UTXOs from different sources. Combining multiple inputs sources reveals common ownership. The change UTXO should also be handled with care so as to not directly link any future spending activity.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cr2VcFrtcgqakvBovJOPgw.png" /><figcaption><strong>Fig 4.12 Example Tx0 Transaction (</strong><a href="https://kycp.org/#/a126e48d4a6eb8d19682ec0e23ad45e76cd52b45f6c17be5068ae051d4b2cc24"><strong>TxID</strong></a><strong>)</strong></figcaption></figure><p>After coinjoining and breaking the links between their original (premix) UTXOs and postmix UTXOs, payment recipients can be confident that any payment senders will not be able to reliably follow the future spending of their payment UTXO.</p><h3>Review</h3><p>Bitcoin maintains basic user privacy with its pseudonymous nature by not linking real world identities and activities on the blockchain.</p><p>At the protocol level, bitcoin transactions send bitcoin to and from transparent addresses for transparent amounts. This transparency has lead to a proliferation of block chain analysis. The bulk of what is considered chain analysis involves payment change detection, transaction graph analysis, and use of the common input ownership heuristic for “wallet clustering”.</p><p>While many of these techniques rely on heuristics, applying external transaction data such as address reuse and outputs to or from centralised services can significantly undermine the ambiguity of simple bitcoin transactions.</p><p>Wallet software can include randomised fingerprinting and like-type address outputs to maintain ambiguity of simple spends. Even with these tools, the on-chain flows of bitcoin remain “traceable” and deterministic. Properly constructed equal output coinjoins remain the best way for breaking deterministic links and introducing plausible deniability into the transaction graph.</p><p>It is likely that the typical user reading this guide is not looking to become an expert in chain analysis. Rather they are looking to improve their privacy when sending and receiving payments. The act of sending and receiving payments necessarily reveals UTXO set information about a sender’s wallet to a payment recipient. As a result, payment senders and receivers are able to evaluate the respective past and future spending of these known UTXOs, which can reveal additional information about their counterparty.</p><p>Users armed with knowledge of chain analysis are better prepared for evaluating the implications of spending and receiving and can begin to take steps to protect their privacy.</p><p>Those steps include: not linking blockchain activities to an online persona, avoiding address reuse, segregating UTXOs with different histories, establishing forward privacy with coinjoin, and using the advanced spending tools previously discussed to undermine chain analysis heursitics.</p><p>Knowledgeable use of these techniques can allow users to obtain a basic level of privacy they may be accustomed to in the traditional finance system.</p><h3>Closing</h3><p>A general bitcoin privacy and OXT guide has been requested by many readers. Our hope is that this provides you with a starting point for continuing to expand your understanding of bitcoin privacy.</p><p>Armed with additional knowledge and context from this guide, long term readers are encouraged to revisit our previous research reports. Particularly the previously included transaction graphs.</p><p>Feedback, comments, and requests for additional guides are welcome.</p><p>Thanks for reading and stay safe.</p><p><em>- The OXT Research Team</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=16cc0a8759d5" width="1" height="1" alt=""><hr><p><a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-4-4-16cc0a8759d5">Understanding Bitcoin Privacy with OXT — Part 4/4</a> was originally published in <a href="https://medium.com/oxt-research">OXT Research</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Understanding Bitcoin Privacy with OXT — Part 3/4]]></title>
            <link>https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-3-4-9a1b2b572a8?source=rss-adf906ef26f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/9a1b2b572a8</guid>
            <category><![CDATA[samourai-wallet]]></category>
            <category><![CDATA[blockchain-analysis]]></category>
            <category><![CDATA[bitcoin]]></category>
            <category><![CDATA[bitcoin-privacy]]></category>
            <category><![CDATA[blockchain]]></category>
            <dc:creator><![CDATA[Samourai Wallet]]></dc:creator>
            <pubDate>Mon, 09 Aug 2021 12:17:40 GMT</pubDate>
            <atom:updated>2021-08-09T12:17:40.066Z</atom:updated>
            <content:encoded><![CDATA[<h3>Understanding Bitcoin Privacy with OXT — Part 3/4</h3><h4>Defences Against Chain Analysis</h4><h3>Introduction</h3><p>With the foundational concepts of chain analysis introduced in <a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-1-4-8177a40a5923">Part 1</a> and <a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-2-4-20010e0dab97">Part 2</a>, Part 3 will discuss the methods for undermining chain analysis.</p><p>In this section we will present the following:</p><ol><li>defeating heuristics for change detection in simple spends</li><li>creating an ambiguous transaction graph with equal output coinjoins</li><li>undermining the CIOH with coinjoins</li></ol><h3>The UTXO Ownership Model &amp; Ambiguity Of Simple Spends</h3><p>Previously, we introduced change detection heuristics for simple spends with 1 input and 2 outputs. We <strong><em>assumed</em></strong> that the transaction included a payment and change output.</p><p>In reality, a simple spend has many additional interpretations based on the UTXO “ownership model”. The ownership model attempts to assign ownership to the inputs and outputs of a transaction. The complete ownership interpretations for a transaction with 1 input and 2 ouputs are shown in Fig 3.1.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*YEKwGhlj-e-3o1eLmkRL1A.png" /><figcaption><strong>Fig 3.1 — UTXO Ownership Model for Simple Spend</strong></figcaption></figure><p>Each of these interpretations must be considered by an analyst, especially when only applying internal transaction data. Interpretations can be eliminated when accounting for additional wallet fingerprinting, normal wallet behaviour, and typical user behaviour.</p><p>Typical user behaviour makes interpretations 1 and 2 most likely. Interpretations 3 and 4 are possible, though many bitcoin wallets to do not have batch spend functionality. Interpretation 5 is rare due to extra fees paid and UTXO set bloat.</p><p>The application of external transaction data such as outputs sent to centralised services or reused addresses, can be used to eliminate interpretations. Due to the concentration of the bitcoin transaction graph around centralised services and patterns of normal user behaviour, these full interpretations are rarely considered in practice.</p><h3>Defeating Change Detection Heuristics</h3><p>Transactions can be made more ambiguous by wallet software that aims to defeat the heuristics for change detection presented in Part 1. When taken in isolation, the transaction below is an example of a “maximally” ambiguous simple spend.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_XU-a1yrslIeaIUgzep-PA.png" /><figcaption><strong>Fig 3.2 — Ambiguous Simple Spend (</strong><a href="https://oxt.me/transaction/e610d6ab26878c9f37502b3f31755ae5066d9e982613c6042757d8972d412a84"><strong><em>TxID</em></strong></a><strong>)</strong></figcaption></figure><h4><strong>Round Number Payment Heuristic Defences</strong></h4><p>The payment amount is determined by the user. If a user selects a round payment amount, it is difficult for a wallet to protect against this heuristic in a simple spend. For most true payments (priced in fiat), this heuristic is less likely to apply. The example in Fig 3.2 above does not have a round number payment amount and maintains protection against this heuristic.</p><h4>Identical Change Output Script Type</h4><p>The example transaction has identical output script types for both outputs so the unique script output heuristic does not apply. This helps to maintain ambiguity and makes change detection more difficult.</p><h4>Randomised Change Output Position</h4><p>To further increase the ambiguity of this wallet’s behaviour over a series of transactions, wallet software must randomise the change output position. Alternating the change position between output 0 and 1 would make the automated tracking of wallets like the activity shown in Fig 2.8 more difficult.</p><h4>Evaluate the Transaction Including External Transaction Data</h4><p>OXT’s transaction graph shows relative UTXO and transaction amounts by varying line weights. In this way, expanding the transaction graph automatically includes some external transaction data.</p><p><em>Based on the transaction graph and future UTXO spending, which output might be the payment? Do the addresses in this transaction have any previous history of reuse?</em></p><p>This is a perfect example of how external transaction data can be used to aid in determining payments and establishing a change output. Expand the transaction graph or follow the future UTXO spending to verify your payment/change assumption.</p><h3>UTXO Flows And Deterministic Spends</h3><p>Identical change output scripts and randomised change positions can be applied by wallets to maintain the ambiguity of simple spends, but they do not address the fundamental link between inputs and outputs consumed in a transaction.</p><p>A link always exists between a transaction’s inputs and outputs. These intra-transaction UTXO relationships can be thought of as “flows”. Where the BTC consumed by input UTXOs are transferred to the output UTXOs.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UDs9t_EdjMAlOprlUpUyNg.png" /><figcaption><strong>Fig 3.3 — UTXO Flow Visualization via OXT Tx Graph (</strong><a href="https://oxt.me/transaction/e610d6ab26878c9f37502b3f31755ae5066d9e982613c6042757d8972d412a84"><strong>TxID</strong></a><strong>)</strong></figcaption></figure><p>In the case of a simple spend (1 input and 2 outputs), the single input must have been used to pay both outputs. A simple spend’s intra-transaction flows only have a single interpretation. As a result, the link between the single input and each output is mathematically deterministic (<strong>certain</strong>).</p><p>The link between inputs and outputs can be displayed on the OXT transaction graph by selecting an input or output. The transaction visualiser at <a href="http://kycp.org/">kycp.org</a> also shows the intra-transaction links.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xtdu3JSOpFRK1gcQ1g8iCQ.png" /><figcaption><strong>Fig 3.4 — UTXO Flow Visualisation via KYCP (</strong><a href="https://kycp.org/#/e610d6ab26878c9f37502b3f31755ae5066d9e982613c6042757d8972d412a84"><strong>TxID</strong></a><strong>)</strong></figcaption></figure><h3>Breaking Links — Non Deterministic Transactions</h3><p>Though UTXO ownership ambiguity always exists, the UTXO ownership model cannot be relied upon to obfuscate on-chain BTC flows. Without breaking deterministic links and introducing ambiguity into the transaction graph, bitcoins remain “traceable”.</p><p>Breaking deterministic links and creating on-chain ambiguity requires a specific transaction structure. Determinism is dependent on the number of transaction inputs, outputs, and the BTC amounts of each UTXO.</p><p>By themselves, transactions with multiple inputs and outputs can create a noisy transaction graph. These types of transactions are not easily interpreted without special tooling or considerations.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*brq_O7zidn1g1_nXS0KvPw.png" /><figcaption><strong>Fig 3.5 — Series of Multi-Input and Output Transactions Example (</strong><a href="https://oxt.me/transaction/c7d1e40ae001a7fe4c860f9b7ddddcf9b5a3dad461466744e9b5e28c4b47e6b7"><strong>TxID</strong></a><strong>)</strong></figcaption></figure><p>Despite the noisy transaction graph, deterministic links between UTXOs of transactions with multiple inputs and outputs can still be evaluated. Kristov Atlas was the first to introduce this concept in his “<a href="https://github.com/kristovatlas/coinjoin-sudoku">CoinJoin Sudoku</a>” advisory and algorithm.</p><p>In a coinjoin, users pool their funds and collaborate to construct a transaction. Typically by creating a transaction with equal output amounts. The CoinJoin Sudoku algorithm uses a branch of mathematics called subset sum analysis to evaluate transactions for “common ownership” of inputs and outputs.</p><p>A discussion of these maths is beyond the scope of this guide, but the important takeaway is that a naively constructed coinjoin transaction can be evaluated for deterministic links.</p><p>Today, the coinjoin sudoku concept has been extended with the <a href="https://code.samourai.io/oxt/boltzmann">Boltzmann</a> algorithm created by the OXT lead developer, <a href="https://twitter.com/laurentmt">LaurentMT</a>. Boltzmann uses the CoinJoin Sudoku concept to evaluate transactions for several privacy related metrics.</p><p>For properly constructed coinjoins, <strong>a link between inputs and equal outputs still exists, however these links are probabalistic not deterministic</strong>. The Boltzmann algorithm calculates a Link Probability Matrix (LPM) for the relationship between a transactions inputs and outputs.</p><p>A transaction’s LPM output can be found on the TRANSACTION page on OXT. In the INPUTS&amp;OUTPUTS tab, the link subset between an input and each output can be seen by clicking the “CHAIN ICON” to the right of the desired UTXO.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oi8Wdc8jDCuNpTS6tVOZAg.png" /><figcaption><strong>Fig 3.6 — OXT Link Matrix Subset (</strong><a href="https://oxt.me/transaction/3a7455d3f04709870f7148f9f9c8d6c8a3fd83e8c76afadf6a4acd613afdb53e"><strong>TxID</strong></a><strong>)</strong></figcaption></figure><p>The LPM for selected UTXOs in evaluated transactions can also be found by selecting inputs and outputs on the OXT Transaction graph (see Fig 3.3). A visual of the full LPM produced by Boltzmann’s algorithm can be found at <a href="http://kycp.org/">kycp.org</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7o0mO_xxGFm-XcL_MlQOZA.png" /><figcaption><strong>Fig 3.7 — KYCP UTXO Flows and LPM (</strong><a href="https://kycp.org/#/aed291496b2e3fed785881a8600a0fa58dfbc706e3f9ac1f9052839b596c175a"><strong>TxID</strong></a><strong>)</strong></figcaption></figure><h3>Entropy — Equal Output CoinJoins And When Is It Appropriate To Apply The CIOH</h3><p>In an equal output coinjoin, multiple users collaborate to create a transaction that pools their funds and breaks the deterministic links between their transaction input and equal output.</p><p>By including multiple users, these transactions also break the CIOH. Assuming inputs to transactions that could be coinjoins are controlled by a single wallet could result in a false positive wallet cluster by the CIOH.</p><p>To avoid this an analyst could apply an equal output heuristic to transactions that may be coinjoins. However, all transactions having multiple equal outputs are not necessarily coinjoins. If constructed naively, transactions with multiple equal outputs may still have deterministic links between inputs and <strong>equal outputs</strong>, which is evidence that a transaction is <strong>not</strong> a coinjoin.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gjhIx7qe8-GsB2jqqZW_Sw.png" /><figcaption><strong>Fig 3.8 — Equal Output Transaction with Deterministic Links (</strong><a href="https://kycp.org/#/a9b5563592099bf6ed68e7696eeac05c8cb514e21490643e0b7a9b72dac90b07"><strong>TxID</strong></a><strong>)</strong></figcaption></figure><p>Instead of incorrectly clustering a transaction or naively excluding transactions with identical outputs, analysts can truly evaluate transactions for coinjoin properties using Boltzmann.</p><p>Boltzmann effectively uses subset sum analysis to ask the question: <em>Are there multiple ways (interpretations) a transaction’s inputs could have paid its outputs?</em></p><p>If a transaction has multiple intra-UTXO flow interpretations, Boltzmann will score the transaction’s entropy greater than or equal to 0. The concept of entropy originates from a thermodynamic mental model. In this model, the number of interpretations can be thought of as <em>microstates</em> of the overall transaction <em>macrostate</em>.</p><p><strong><em>Entropy can be seen as a metric measuring the analysts lack of knowledge about the exact configuration of the transaction being observed.</em></strong></p><p>Transactions with entropy have coinjoin properties and broken deterministic links. Coinjoin properties are evidence that a transaction has multiple users contributing inputs to the transaction. Conservatively, the inputs to transactions with entropy should not be clustered by the CIOH.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*meRZ4vrnyxKB64yUWrQrgA.png" /><figcaption><strong>Fig 3.9 — KYCP Evaluation of a DarkWallet Coinjoin (</strong><a href="https://kycp.org/#/8e56317360a548e8ef28ec475878ef70d1371bee3526c017ac22ad61ae5740b8"><strong>TxID</strong></a><strong>)</strong></figcaption></figure><h4><strong>KYCP Transaction Interpretation</strong></h4><p>KYCP includes a significant amount of transaction information including address reuse across the transaction, deterministic and probabilistic links, and input and output merges. The example transaction above is a dark wallet coinjoin transaction. The deterministic links for equal outputs are broken, but deterministic links still exist between the inputs and “change outputs”. Also note that output 1 and 3 are sent (merged) into the same future transaction. Indicating that the same users/wallets are mixing together again.</p><h3>CoinJoins — Equal Output (Encryption) vs. PayJoin (Steganography)</h3><p>Equal output coinjoins have a unique on-chain footprint that can be identified by the presence of multiple equal outputs. But the flows across the transaction for equal outputs are not deterministic. If an analyst knows they are observing a coinjoin, they must consider the user they are attempting to track controls one of the many equal outputs. In most cases this is enough to stop an analyst in his tracks.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KD0ZBK_eQeJvhz0XPYU4sg.png" /><figcaption><strong>Fig 3.10 — Whirlpool Coinjoin Transaction Graph (</strong><a href="https://kycp.org/#/323df21f0b0756f98336437aa3d2fb87e02b59f1946b714a7b09df04d429dec2"><strong>TxID</strong></a><strong>)</strong></figcaption></figure><p>When an analyst encounters an equal output coinjoin, they know a privacy technique is being used but cannot reliably interpret the transaction. In this way, equal output coinjoins are similar to <strong>encryption</strong>. Observers of encrypted messages know a message exists (can observe the coinjoin) but cannot decipher the message (reliably interpret the flows across the transaction).</p><p>The other type of coinjoin is called payjoin or pay-to-end-point or Stowaway in Samourai Wallet. Payjoin transactions consist of a collaborative transaction between the user making a payment and the user receiving a payment. On the blockchain, many payjoins have no discernible patterns or applicable heuristics.</p><p>In effect, payjoins are indistinguishable from a normal transaction where a user spends multiple UTXOs. Without any distinguishable on chain transaction footprint, an analyst may incorrectly apply the CIOH to these types of transactions and incorrectly assume each of the inputs are controlled by the same user.</p><p>In this way payjoin transactions are a <strong>steganographic</strong> technique. Steganography is the process of hiding a secret message (the fact that a coinjoin has occurred) within otherwise normal appearing data (a normal transaction spending multiple inputs). Because payjoins do not have any reliable on-chain footprint, they often result in false clusters by the CIOH.</p><h3>Other Techniques — “Breaking” The Transaction Graph</h3><p>Custodial tumblers, often referred to generically as mixers, are one of the oldest privacy techniques employed at the application layer. The purpose of custodial tumblers is to act as a swap service. Users deposit coins to the tumbler and (hopefully) receive different UTXOs with a new transaction history in return. Ideally, the swapping process results in a “broken” transaction graph that severs the link between a user’s deposits and withdrawals.</p><p>This techniques also popularised the concept of “taint”. Where tumbler users may unknowingly receive UTXOs with some “problematic history” as a part of their swap. Interested readers can see our evaluations of two of the largest custodial tumblers (ChipMixer and Blender) from <a href="https://research.oxt.me/publications">our investigation of the Kucoin Hack.</a></p><p>Additional privacy enhancements such as coinswaps aim to break the transaction graph in a non-custodial way. These techniques are still in their infancy. Without additional mitigation, these theoretical swaps will suffer from the same “taint” swapping issues as custodial tumblers. This section will be updated as additional techniques are deployed.</p><h3>Review</h3><p>In Part 3 we introduced the many tools capable of defeating the main heuristics of chain analysis.</p><p>Change detection heuristics can be defeated by avoiding round payment amounts, creating transactions with identical change output script types, and randomising change output positions.</p><p>Equal output coinjoins are collaborative transactions involving multiple users. By breaking deterministic links these transactions create ambiguous transaction graphs. By involving multiple users, they defeat the CIOH.</p><p>Payjoin transactions are also collaborative transactions. They involve the payer and payee in creating a transaction and have the same transaction fingerprint as a normal multi-input spend. Without an identifiable fingerprint, these transactions defeat the CIOH.</p><p><strong>Part 4 discusses:</strong></p><ol><li>Analyses needing a “starting point”</li><li>The privacy implications of sending and receiving payments</li><li>How existing privacy techniques can mitigate many of the issues discussed throughout the guide.</li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9a1b2b572a8" width="1" height="1" alt=""><hr><p><a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-3-4-9a1b2b572a8">Understanding Bitcoin Privacy with OXT — Part 3/4</a> was originally published in <a href="https://medium.com/oxt-research">OXT Research</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Understanding Bitcoin Privacy with OXT — Part 2/4]]></title>
            <link>https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-2-4-20010e0dab97?source=rss-adf906ef26f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/20010e0dab97</guid>
            <category><![CDATA[bitcoin-privacy]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[samourai-wallet]]></category>
            <category><![CDATA[bitcoin]]></category>
            <dc:creator><![CDATA[Samourai Wallet]]></dc:creator>
            <pubDate>Fri, 06 Aug 2021 17:37:39 GMT</pubDate>
            <atom:updated>2021-08-06T17:37:39.351Z</atom:updated>
            <content:encoded><![CDATA[<h3>Understanding Bitcoin Privacy with OXT — Part 2/4</h3><h4>Chain Analysis Core Concepts</h4><h3>Introduction</h3><p><a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-1-4-8177a40a5923">Now that we have presented the basic concepts in Part 1</a>, we can move on to the core concepts that underpin chain analysis by expanding our analyses to include “external” transaction data.</p><p>Specifically, Part II will focus on two of the most important tools underpinning chain analysis:</p><ol><li>The transaction graph</li><li>The common input ownership heuristic (aka wallet clustering)</li></ol><h3>External Transaction Data</h3><p>External transaction data can be used to improve confidence in change detection (weaken transaction privacy) by leveraging additional information and patterns.</p><p>External transaction data includes any information not strictly limited to the information included in an individual transaction by the bitcoin protocol. Examples include:</p><ul><li>address reuse over multiple transactions</li><li>co-spending from multiple addresses in the same transaction (wallet clustering)</li><li>multi-sig scripts (which are only revealed after a UTXO is spent)</li><li>wallet fingerprinting over a series of transactions</li><li>off-chain data such as outputs spent to labelled clusters and IP addresses of nodes broadcasting a transaction</li><li>volume, timing, and other transaction pattern recognition analysis</li></ul><h3>Transaction Graph Analysis</h3><p>Transaction graphs are the simplest way to show the relationship of inputs and outputs across multiple transactions.</p><p>OXT’s transaction graph is a Directed Acyclic Graph (DAG). DAG graphs are used to map the relationship between two different objects. In the case of bitcoin, the transaction graph maps the relationship between UTXOs and transactions.</p><h4>OXT Transaction Graph Basics</h4><p>The transaction graph is best understood through interaction, but before we get started we will introduce some of the functionality of the OXT transaction graph.</p><ol><li>To access the transaction graph, navigate to the <strong>TRANSACTION</strong> tab on OXT by imputing or clicking a TxID of interest.</li><li>Click the<strong> TX GRAPH ICON </strong>icon on the tool bar on the left side of the screen.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2NALH4Zvo01EzOvs7EFyQQ.png" /><figcaption><strong>Fig 2.1 — OXT Transaction Page and Navigation to TxGraph</strong></figcaption></figure><p>The starting transaction will be displayed. Transactions are presented as vertices (circles) on the graph. Vertices represent a change in the UTXO Set by showing a new relationship between UTXOs consumed and created by a transaction.</p><p>Single clicking the transaction will select the transaction, change its colour from blue to green, and display additional options on the toolbar (left side of screen).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WvzF_H2PX3MsSCiRNXLXNw.png" /><figcaption><strong>Fig 2.2 — Initial TxGraph with Select and Toolbar</strong></figcaption></figure><p>The tool bar icons perform the following actions:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jQQ_WsXPgfagfmOfQiihBg.png" /><figcaption><strong>Fig 2.3 — TxGraph Toolbar Actions</strong></figcaption></figure><p>Double click the transaction to fully expand all transaction UTXOs. The UTXOs are displayed as “edges” (lines) with arrows indicating if the UTXO is an input (pointing toward the transaction) or output (pointing away from the transaction). The graph will also display the transaction creating the inputs or consuming the outputs. If the output is unspent, an unfilled diamond will be displayed on the end of the UTXO.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*iABAPbWR1y4hkqqpzoENuA.png" /><figcaption><strong>Fig 2.4 — Fully Expanded Transaction</strong></figcaption></figure><p>Double-clicking or fully expanding a transaction can make your transaction graph noisy and difficult to read. To minimise clutter, we suggest selectively expanding UTXOs. To selectively expand UTXOs, select the transaction and open the Transaction Details window. The transaction inputs and outputs can be selectively expanded by hovering the mouse to the right of the address text and selecting the visible Expand Tx Graph.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tf2viLs_NCRIscgcTGgdHA.png" /><figcaption><strong>Fig 2.5 — Selective UTXO Expansion</strong></figcaption></figure><p>On the graph, hovering the mouse over an input or output will display additional information about the object of interest, without the need for expanding the transaction details tab.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PHucAqzEY9kkj_eK20PxKg.png" /><figcaption><strong>Fig 2.6 — Tx Graph Line Weight and Preview</strong></figcaption></figure><p>OXT’s transaction graph will also help to process some additional information automatically. Transactions and UTXOs will be “weighted” on a relative basis based on their BTC volumes. This can be very helpful for change detection and illustration of “peel chains”, which we will discuss in further detail below.</p><h4>OXT Peel Chain Transaction Graph Example</h4><p>A simple transaction graph example is presented below.</p><ol><li>Navigate to the hyperlink of the <a href="https://oxt.me/transaction/351664e86e48c81ddd14f418893d4aede75546d16075dea47157144a30af687e">transaction</a> page and expand the transaction graph.</li><li>Select the transaction with a single click.</li><li>Open the transaction details window by clicking the respective icon on the left toolbar.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*U3ee9S56kwF6uN-j7QGJxA.png" /><figcaption><strong>Fig 2.7 — Selected Transaction and Transaction Details</strong></figcaption></figure><p>4. Double click the starting transaction to expand all inputs and outputs.</p><p>5. Zoom out using the mouse scroll wheel and re-orient the graph with the oldest transactions in your preferred order (ie. left to right) by clicking and dragging the transactions in the preferred orientation.</p><p>The two outputs present us with a question to answer if we are going to attempt to track the activity of the wallet creating the transaction.<br> <br><em>Which output do we follow?</em><br> <br>If we apply the different script heuristic (see <a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-1-4-8177a40a5923"><em>Part I</em></a>), we identify the second output as change.</p><p>6. Double click the next transaction that spends the second output from the original transaction.</p><p>7. Repeat the process for change identification using the heuristics presented in Part I. Expand two more transactions using this process.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vpsDtN7Ix3l13_V7-3KzWQ.png" /><figcaption><strong>Fig 2.8 — Peel Chain Example (Tx Graph </strong><a href="https://oxt.me/BOOKMARK/60D3C389E5C165230824AF81">Bookmark</a><strong>)</strong></figcaption></figure><p>Afterwards, the graph should look similar to the image in Fig 2.8 above. To add additional emphasis on the change UTXOs, the change UTXOs can be marked and highlighted in orange using the left toolbar button. A transaction graph showing a series of simple spends from the same wallet is commonly referred to as a “peel chain”.</p><p>Chain surveillance firms attempt to frame peel chains as a form of suspicious activity related to “structuring or money laundering.” Though as we described in part 1, approximately 50% of bitcoin transactions are simple spends with 1 input and 2 outputs, in other words entirely normal behaviour.</p><p>For our purposes, a peel chain is the simple process of tracking a single wallet’s activity over multiple transactions.</p><h4>Wallet Fingerprinting and Transaction Graph Interpretation</h4><p>As you continue interacting with the example peel chain, additional patterns indicative of a consistent wallet fingerprint will become apparent. Including the following:</p><ol><li>The largest output, shown by OXT’s automatic line weight feature makes the change outputs readily apparent.</li><li>The change outputs are always paid to P2PKH addresses.</li><li>The change outputs are always the second of the two outputs.</li><li>Not shown on the graph, but also worth noting are the consistent transaction version number (2) and lock-time (0) throughout the graph. To see this information, click the transaction ID in the transaction detail window to navigate to the TRANSACTION page. Then select the the TECHNICAL tab to display the transaction version number and lock-time.</li><li>Expanding the previous or future spending history of this transaction graph will reveal more transactions with the same pattern.</li></ol><p>Each of these patterns can be used to describe the behaviour of the observed wallet software. Generalisation of observed wallet behaviour is referred to as wallet fingerprinting, which leverages the following patterns:</p><ol><li>Input and output address scripts</li><li>Change UTXO position consistency</li><li>Version number and lock-time</li></ol><p>Combining the above patterns can give an analyst high confidence in their interpretation of change outputs. We confirmed these change interpretations by interacting with the service responsible for this transaction activity. The example peel chain shows activity from a well-known custodial tumbler payout mechanism. Explore the graph source by backtracking from the provided transaction to find coins related to an exchange hack.</p><p>In the next section, we will discuss how transaction graph analysis can be improved further by using wallet clustering and monitoring outputs for spends to centralised services.</p><h3>Wallet Clustering — Common Input Ownership Heuristic</h3><p>The remaining critical chain analysis tool is referred to as “wallet clustering”. Clustering aggregates addresses based on their co-spending patterns and assumptions about normal wallet software behaviour.</p><p>Most bitcoin wallets today are hierarchical deterministic wallets. They generate a single master private key which is used to derive child private/public keys and the associated addresses.</p><p>Wallet software typically creates a new address automatically for each received payment (UTXO received). If a single UTXO or address balance is not adequate for making a payment, a wallet will include additional UTXOs/addresses controlled by different private keys/addresses as necessary to spend the desired amount. Most wallets do this automatically without user input.</p><p>Because of this normal wallet functionality and bitcoin’s private/public key cryptography backing, an analyst can <strong><em>assume</em></strong> that each address used as an input to a transaction, is controlled by the same private key or wallet software.</p><p><strong><em>The assumption that each input to a transaction is controlled by the same wallet is called the common input ownership heuristic (CIOH) or more simply, the merged input heuristic.</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AzpgljIKp_sqCqmo2909Tg.png" /><figcaption><strong>Fig 2.9 — CIOH and Cluster </strong><a href="https://oxt.me/transaction/e7c4ff5687019973350d11f530b6e16a9a2dd32cd1bc2ed4a61eafb38c8915be"><strong>Example</strong></a></figcaption></figure><p>Like all heuristics there are specific scenarios where the CIOH does not hold true. The breakdowns in the CIOH tend to revolve around specially constructed privacy enhancing transactions. We will cover the special scenarios where the CIOH is broken and how OXT handles these exceptions in a later part of this series.</p><h4><strong>The ANONs — OXT’s Clustering Scheme</strong></h4><p>Separate addresses that are assumed controlled by the same wallet are usually given a wallet cluster ID by analysis software. Due to bitcoin’s pseudonymous nature a wallet cluster may be representative of a single user or centralized service’s activity.</p><p>But without additional information, the wallet remains “anonymous” in that it has not been attributed to any real world entity activity. As a result, OXT gives each new cluster an ANON prefix followed by an index number.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MoInJnJws_JgnST5tu9qtA.png" /><figcaption><strong>Fig 2.10 — ANON Wallet Cluster </strong><a href="https://oxt.me/entity/tiid/2378472961"><strong>Example</strong></a></figcaption></figure><p>OXT calculates several cluster types of cluster activity including:</p><ul><li>A summary of general activity (balance, number of transactions, active dates, number of addresses)</li><li>Plots of monthly and daily transaction activity, BTC volumes sent and received, UTXOs sent and received, and address stats</li><li>A temporal pattern of cluster activity by day of the week and hours</li><li>A notes section where OXT users can add notes on possible attribution or context for interacting with an unknown cluster during an investigation.</li></ul><p>OXT’s general cluster stats are viewable without an account. However, with a free OXT account (no email required), a user can access additional features. When logged in, cluster statistics including daily balance, daily volumes, transaction lists, address lists, and more are accessible.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EHmwOUI66xt8GyMzClx1Ow.png" /><figcaption><strong>Fig 2.11 — ANON Wallet Cluster Temporal Patterns</strong></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*R0aqi573ebC5XiQ_5LV1gQ.png" /><figcaption><strong>Fig 2.12 — ANON Wallet Cluster UTXO Activity Tab</strong></figcaption></figure><h4><strong>Cluster Attribution — ANON to Labeled Service</strong></h4><p>Using the CIOH, OXT will keep track of a wallet cluster’s on-chain activity. To attribute the wallet cluster to a specific service requires interacting with the service.</p><p>An analyst can create an account with a service and send BTC to a deposit address provided by the service. From there, the analyst can monitor the spending of their deposit UTXO. When spent the analyst can attribute the address and its co-spent addresses to the corresponding cluster ID.</p><p>Alternatively, an analyst can use opensource intelligence techniques to search for publicly available information posted by service users. Deposit and withdrawal addresses can be commonly found in social media posts. This publicly available data can also be used to attribute a wallet cluster to a centralised service.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UiruATIrHc43SKMaZgubqg.png" /><figcaption><strong>Fig 2.13 — Labelled Cluster </strong><a href="https://oxt.me/entity/coinbase"><strong>Example</strong></a></figcaption></figure><h3><strong>Applying External Transaction Data To Change Detection</strong></h3><p>Additional information including wallet fingerprinting, output spending timing, and output clustering can be applied to change detection interpretation.</p><p>The most damaging to transaction privacy is when a simple spend is made to a wallet cluster that has been identified as a centralised service.</p><p>When a simple spend is made to a centralised service, all change detection ambiguity is lost. The output to the centralised service is clearly the payment. The only remaining output is the obvious change output. An example from the future spending of the peel chain example above is shown below.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7ExVwTtj9O8CAU9Fuf8lQg.png" /><figcaption><strong>Fig 2.14— Exchange Payments in Simple Spend </strong><a href="https://oxt.me/transaction/50766212c4eff1a8e1c74f16ba2480ec076b83fd8cdd369b9b8f3e02dfefbe41"><strong>Example</strong></a></figcaption></figure><p>The most crucial aspect of the CIOH isn’t necessarily how it is used to target individual user privacy, but how wallet clustering among centralised services negatively and significantly effects the privacy of the the bitcoin network transaction graph.</p><p>A significant portion of bitcoin’s economic activity is immediately from or to a centralised service which has a major centralisation effect on the overall bitcoin network transaction graph.</p><h3>Review</h3><p>In<a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-1-4-8177a40a5923"> Parts 1 </a>and 2 we introduced the fundamentals of chain analysis including change detection, transaction graph analysis, and the common input ownership heuristic.</p><p>Change detection consists of a series of heuristics used to determine a likely transaction change output. A transaction graph analysis can quickly and visually illustrate these heuristic interpretations to track the activity of a single user. Additional data including wallet clustering by the common input ownership heuristic can be used to improve confidence in change detection. Attributing a wallet cluster to a user or centralised service activity requires additional off chain data tying a suspect address and spending activity to the noted service.</p><p>In the following section we will introduce the concepts used to defeat chain analysis and make user tracking more difficult.</p><p><strong>Part 3 covers core concepts of improving bitcoin’s privacy including:</strong></p><ol><li>Randomised wallet fingerprinting for defeating change detection.</li><li>UTXO flows and the fundamental link between inputs and outputs.</li><li>How equal output coinjoins address the issue of deterministic flows.</li><li>Transaction entropy</li><li>How payjoin defeats the common input ownership heuristic</li></ol><p><strong>Part 4 discusses:</strong></p><ol><li>Analyses needing a “starting point”</li><li>The privacy implications of sending and receiving payments</li><li>How existing privacy techniques can mitigate many of the issues discussed throughout the guide.</li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=20010e0dab97" width="1" height="1" alt=""><hr><p><a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-2-4-20010e0dab97">Understanding Bitcoin Privacy with OXT — Part 2/4</a> was originally published in <a href="https://medium.com/oxt-research">OXT Research</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Understanding Bitcoin Privacy with OXT — Part 1/4]]></title>
            <link>https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-1-4-8177a40a5923?source=rss-adf906ef26f3------2</link>
            <guid isPermaLink="false">https://medium.com/p/8177a40a5923</guid>
            <category><![CDATA[bitcoin-privacy]]></category>
            <category><![CDATA[samourai-wallet]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[bitcoin]]></category>
            <dc:creator><![CDATA[Samourai Wallet]]></dc:creator>
            <pubDate>Wed, 04 Aug 2021 20:04:11 GMT</pubDate>
            <atom:updated>2021-08-06T17:48:28.851Z</atom:updated>
            <content:encoded><![CDATA[<h3>Understanding Bitcoin Privacy with OXT — Part 1/4</h3><h4>Chain Analysis And Transaction Privacy</h4><h3>Introduction</h3><p>Awareness of Bitcoin’s value proposition for censorship resistant payments took off in 2011 with the launch of Silk Road and the rescue of the otherwise donation starved Wikileaks.</p><p>Simultaneously a dangerous and inaccurate narrative surrounding bitcoin transaction privacy took off: “anonymous” payments.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/698/1*FF8f8ydDJhlgp2WUcdqFIw.png" /><figcaption><strong>Fig 1.1 — Wikileaks Donation </strong><a href="https://twitter.com/wikileaks/status/80774521350668288"><strong>Tweet</strong></a></figcaption></figure><p>This perception was never true and largely due to a lack of understanding of bitcoin’s underlying functionality. Further, almost no one was watching the blockchain in 2011. But the blockchain is forever.</p><p>Today law enforcement’s access to chain analytic tools has aided in many high profile <a href="https://www.coindesk.com/u-s-seized-more-than-1b-in-silk-road-linked-bitcoin-seeks-forfeiture-bloomberg">take-downs</a>. Chain surveillance firms clamor for first publication of blog posts on the latest “crime” using bitcoin for payment. The mainstays of old media are running headlines on bitcoin’s traceability.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/719/1*f1fl9i8tRgqigpYnJBCr9Q.png" /><figcaption><strong>Fig 1.2 — Bitcoin is Traceable </strong><a href="https://www.nytimes.com/2021/06/09/technology/bitcoin-untraceable-pipeline-ransomware.html"><strong>Headline</strong></a></figcaption></figure><h4>Traceability is mainstream.</h4><p>The reality of bitcoin privacy, and what users are capable of when using bitcoin to make payments, lies somewhere between perfectly anonymous and perfectly traceable.</p><p>Most tracking techniques are reliant on heuristics and evaluating the flow of bitcoin. Without fundamental privacy enhancements at the protocol level, these techniques must be undermined at the application layer.</p><p>Early in bitcoin’s history, randomized wallet fingerprinting was used to defeat analytic heuristics. Tools such as custodial tumblers were used to defeat financial flow analyses at the risk of loss of funds. Today coinjoins and collaborative transactions allow for reasonable spending privacy with enhanced security over previous methods. However, much work remains to be done in automating privacy enhancements at the application layer.</p><p>We consider education among the remaining work to aid users in obtaining a basic level of financial privacy they are typically afforded by the legacy financial network. This is our main motivation for creating this documentation. In this guide we will cover the following:</p><ol><li>What “traceable” bitcoin really means including examples.</li><li>Defensive measures users can take to defeat tracking and why they work.</li><li>Practical considerations for users sending and receiving payments.</li></ol><h3>PROBLEM STATEMENT — PSEUDONYMOUS BITCOIN</h3><p>Bitcoin transaction activity is pseudonymous, not anonymous. A user’s true name and personal identification information (PII) is not included in the Bitcoin protocol. This provides a very basic level of privacy, as transaction activity must be attributed to an individual.</p><p>However, bitcoin transactions are made for transparent amounts to transparent addresses. Addresses are pseudonyms that represent an actual user’s activity, or more specifically, a private key’s activity.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Sw8NTqIr45RIkyodkDovMQ.png" /><figcaption><strong>Fig. 1.3 — Example Bitcoin </strong><a href="https://oxt.me/transaction/ceb2daa77a281083cd1b07977adb87753801047753781a9e93ac9252f1c51b8c"><strong>Transaction</strong></a></figcaption></figure><p>Bitcoin transactions are broadcast to the bitcoin network, and archived on the bitcoin ledger. The ledger, and any transactions included in the ledger, are viewable to anyone running a bitcoin node or with access to a web based blockchain explorer.</p><p>The transparency of this public information allows for an unprecedented ease of information access that is not possible with the traditional financial system.</p><p>Users can query a blockchain explorer through a web browser and observe the entire bitcoin network’s past transaction history. They can easily track the flows of bitcoin across multiple transactions.</p><p>Broadly, this practice has become synonymous with the terms traceability and chain analysis.</p><p>The most common form of chain analysis is focused on identification of transaction “change” outputs. The process is based on a series of heuristics that can be used to follow a user’s activity over multiple transactions.</p><p>If this on-chain activity leads to an identified economic entity’s wallet cluster, investigators may be able to obtain user PII associated with the observed transaction activity.</p><p><strong>From here we can glean two critical issues that can be used to attack a user privacy:</strong></p><p>1. “Change” outputs can be used to track a users activity on the blockchain.</p><p>2. The intersection of this activity with entities that obtain PII links observed blockchain activity with a possible real identity.</p><p>While item 2 is a critical part of what turns chain analysis into real world enforcement, this documentation will focus specifically on mitigation of the on-chain tracking.</p><h3>Heuristics</h3><p>Heuristics are rules of thumb used to make decisions under uncertain conditions. They are often based on practical shortcuts. Being shortcuts heuristics are not 100% accurate.</p><p>Much of traditional chain analysis is based on heuristics. The primary heuristics have to do with “change detection” in simple spends and the clustering of separate addresses by the common input ownership heuristic.</p><p>In isolation, these heuristics can be misleading and inaccurate. But when combined with additional transaction patterns or external data such as wallet cluster labeling, the short comings of these heuristics become less damaging to attempted tracking.</p><h3>Unspent Transaction Outputs (UTXOs)</h3><p>Bitcoin transactions are records of the flows of bitcoin between addresses.</p><p>Unspent transaction outputs (UTXOs) are “pieces of bitcoin” that are used to construct transactions. Transaction structure can be divided into inputs and outputs.</p><p>A user constructs a transaction by designating a payment address(es) and payment amount(s). These will be the <em>outputs</em> of the newly constructed transaction.</p><p>Typically wallet software will complete the transaction by algorithmically including UTXOs from previous transactions as <em>inputs</em> to the new transaction.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mi2B0mLiiZgkSCPsLAz_rA.png" /><figcaption><strong>Fig. 1.4 — Unspent Transaction Outputs (UTXOs)</strong></figcaption></figure><p>There is a difference between an address and a UTXO. UTXOs are “pieces of bitcoin” paid to an address. The simplest way to visualize the difference is to understand that an address can receive multiple UTXOs, a process detrimental to privacy referred to as “address reuse”.</p><h3>Example Transactions</h3><p>There are several common categories of bitcoin transactions. These categories are inferred based on a transactions input and output profile along with our experience and observed cluster labeling. Examples of the major transaction types are provided below.</p><h4>Simple Send</h4><p>Simple spends are some of the most common transaction types and make up roughly 50% of bitcoin transactions in recent blocks (Source: <a href="https://transactionfee.info/charts/transactions-1in-2out/">transactionfee.info</a>).</p><p>These transaction types are evidence of typical user behavior, where a user makes a payment and receives a change output.</p><p><strong><em>Traits:<br></em></strong>- Number of Inputs: 1 (or more)<br>- Number of Outputs: 2<br>- Common Interpretation: 1 payment output, 1 change output</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*E3tIZaEVjlMEuplgLtYUSA.png" /><figcaption><strong>Fig. 1.5 — Simple Spend Transaction </strong><a href="https://oxt.me/transaction/36e0f7c61e40a232829087ed3152519765b7fcf7be7d8574387cd1e694aa71b3">Example</a></figcaption></figure><h4>Sweep</h4><p>“Sweeps” spend the entirety of a single UTXO to a new address.</p><p><strong><em>Traits:<br></em></strong>- Number of Inputs: 1<br>- Number of Outputs: 1<br>- Common Interpretation: Possible self-transfer</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*q7HyBTt8xyW6mAbatbJkKA.png" /><figcaption><strong>Fig. 1.6 — “Sweep” Example </strong><a href="https://oxt.me/transaction/ae4e6fe34a8c4e98339ca84c902946e68a8bb8a6cdcf63f19d6f201a7a403f0e"><strong>Transaction</strong></a></figcaption></figure><h4>Consolidation Spend</h4><p>Consolidation transactions combine multiple UTXOs into a single UTXO. These are rarely “true payments” because a normal payment has a change output.</p><p><strong><em>Traits:<br></em></strong>- Number of Inputs: &gt;1<br>- Number of Outputs: 1<br>- Common Interpretation: Possible self-transfer</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VT8CDdeRrs5vxy7APui2Bg.png" /><figcaption><strong>Fig. 1.7 — Consolidation Spend Example </strong><a href="https://oxt.me/transaction/8855ca21337c5b82a1970aea0f4c21c7284016c33caa1d26a6441c74f6a0ba57"><strong>Transaction</strong></a></figcaption></figure><h4>Batch Spend</h4><p>Batch spends are most likely performed by exchanges and include 1 or more inputs and many outputs. These transactions aim to save on miner fees by making as many payments as possible in a single transaction.</p><p><strong><em>Traits:<br></em></strong>- Number of Inputs: ≥1<br>- Number of Outputs: MANY<br>- Common Interpretation: Large economic activity, likely exchange</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vv62P9KQo8KngmvtkzkYgw.png" /><figcaption><strong>Fig. 1.8 — Batch Spend Example </strong><a href="https://oxt.me/transaction/3524f3e2bdd7c1a5e4bc116d3a55d650b67e37504258c731b9c7b63dc4425a45"><strong>Transaction</strong></a></figcaption></figure><h4>Multi-party Transactions (Coinjoin)</h4><p>Multi-party transactions involve collaboration between many users to perform a single transaction that improves participant privacy. These transactions are easily identified by their equal output amounts.</p><p><strong><em>Traits:<br></em></strong>- Number of Inputs: MANY<br>- Number of Outputs: MANY<br>- Output Profile: Number of identical outputs is a proxy for number of participants.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NhebeMPhIwPoJrLynH3QiA.png" /><figcaption><strong>Fig. 1.9 — Coinjoin Example </strong><a href="https://oxt.me/transaction/00601af905bede31086d9b1b79ee8399bd60c97e9c5bba197bdebeee028b9bea"><strong>Transaction</strong></a></figcaption></figure><h3>Change Detection — Simple Spend Interpretations</h3><p>In this section we are going to introduce transaction interpretations for simple spends (1 input, 2 outputs). This section will focus on the most common interpretation of these transactions, where one output is interpreted as a payment and the remaining output is interpreted as change back to the original wallet. A complete list of interpretations under this model are presented in Part III. The goal of this section is to familiarize the reader with the heuristics used to evaluate simple spends and detect a change output.</p><p>When observing a single transaction in isolation, we are presented with a limited amount of data that is included within the transaction. We refer to this information as internal transaction data.</p><p>Internal transaction data is limited to the following:</p><ul><li>amounts (input, output, miner fees)</li><li>input address script type</li><li>output address script type</li><li>transaction version number</li><li>transaction locktime</li><li>replace by fee signalling</li></ul><h4>Change Detection</h4><p>Due to miner fees, a normal bitcoin payment always requires spending a larger output amount than the intended payment amount.</p><p>When a single UTXO for a larger amount than the intended payment amount is consumed, the user will receive a change UTXO for the remainder back to an address generated by their wallet’s private key.</p><p>Much of traditional chain analysis is based on detecting this change output. If a change output can be successfully detected, a single user’s activity can be tracked across a series of transactions.</p><p>In this section we will detect change outputs based on internal transaction data. The heuristics are presented roughly in the order of decreasing effectiveness accuracy. Examples will be presented and annotated screenshots shown for aiding users in visualizing these concepts.</p><h4>Address Reuse</h4><p>Addresses are created by a single private key. Multiple uses of the same address are signs of activity of the same private key.</p><p>In a simple spend, if one output is to a new address, and the remaining output is to the same address as the input address, we know that the reused address is the change output.</p><p>Today, most bitcoin wallets will automatically generate a new address for receiving change outputs. However, a wallet can be configured to receive change to the same address as the transaction input. This behavior is typically indicative of centralized service wallet activities or old versions of the bitcoin core wallet.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*C2JApYXT4Yl-80S6y0k_TQ.png" /><figcaption><strong>Fig. 1.10 — Address Reuse Example </strong><a href="https://oxt.me/transaction/4c18b982836006cbe54661942f632f10b9cc0072e97a32feeea77abd8c7c8c3c"><strong>Transaction</strong></a></figcaption></figure><h4>Round Number Payment Heuristic</h4><p>When a user initiates a payment, they input the payment destination (address), payment amount, and a network transaction fee into their wallet software. The wallet software will select input UTXOs and generate the change output (if there is one).</p><p>The change amount in a simple spend is calculated as follows:</p><blockquote>input amount - payment amount - tx size (in vbytes) * network fee rate (in sat/vbyte)</blockquote><p>It’s difficult for a user to generate a change output for a “round number amount” on purpose. In a simple spend, the round number output is the likely payment which makes the remaining output the change output.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kkw0M-nGORdEWjJaFinhHg.png" /><figcaption><strong>Fig. 1.11 — Round Number Payment Heuristic Example </strong><a href="https://oxt.me/transaction/112c987fcb27c54452b8bbaff35a89c2aff3def5a132844fd58865c224d5169d"><strong>Transaction</strong></a></figcaption></figure><h4>Different Script Type Heuristic</h4><p>There are several bitcoin address script types. Readers will be most familiar with the following script types:</p><ul><li>Pay to pubkey hash (P2PKH): Addresses starting with a 1</li><li>Pay to script script hash (P2SH): Addresses starting with a 3</li><li>Native Segwit (version 0)(bech32): Addresses starting with bc1q</li></ul><p>For a given input script type, if one output is to the same type as the input and the remaining output is to a new address script type, the output to the new address script type is the likely payment. Which makes the output to the same address address script type the likely change output.</p><p>In other words, an output to a different script type is the likely payment output. This heuristic can also be combined with the round number payment heuristic.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qx9KF11PLJsrX7iDzid_NQ.png" /><figcaption><strong>Fig. 1.12 — Different Script Output Type Heuristic Example </strong><a href="https://oxt.me/transaction/046c82240b8b29612c5b385b9bca6557f72f2bbeed0a043b3799f94a6c979f3d"><strong>Transaction</strong></a></figcaption></figure><h4>Largest Output Amount Heuristic</h4><p>Another simple heuristic, assumes that the largest output amount is the likely change output. This is one of the weakest heuristics, particularly when taken in isolation, but as we will discuss in Part 2, this heuristic can be helpful in a transaction graph analysis.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*XlaSq3EP-e7epmOHYOeDWQ.png" /><figcaption><strong>Fig. 1.13 — Largest Output Heuristic Example </strong><a href="https://oxt.me/transaction/5005628082b902961c25fb6c9503e2ad11e84a75e07e8f24f5b425451f017af6"><strong>Transaction</strong></a></figcaption></figure><h3>Review And Preview</h3><p>In this section we introduced many of the basic concepts around bitcoin transaction privacy. Pseudonymous bitcoin provides a basic level of privacy that is not directly associated with personal identifiable information.</p><p>However, the openness of the bitcoin protocol allows for the tracking of bitcoin flows. This concept is broadly referred to as “chain analysis”. A core focus of chain analysis focuses on detection of change outputs by making use of several heuristics. If successful, these heuristics allow for tracking a single users activity over multiple transactions.</p><p><a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-2-4-20010e0dab97"><strong>Part 2</strong></a><strong> will introduce core concepts of chain analysis such as:</strong></p><ol><li>External transaction data, which can be used to weaken transaction privacy.</li><li>Transaction graph analysis, a main tool for tracking the flow of bitcoin over multiple transactions.</li><li>The common input ownership heuristic, also known as “wallet clustering” and its implication on the bitcoin network.</li><li><strong>This section also includes a walk-through and examples of OXTs transaction graph tool and wallet clustering scheme.</strong></li></ol><p><strong>Part 3 cover core concepts of improving bitcoin’s privacy including:</strong></p><ol><li>Randomized wallet fingerprinting for defeating change detection.</li><li>UTXO flows and the fundamental link between inputs and outputs.</li><li>How equal output coinjoins address the issue of deterministic flows.</li><li>Transaction entropy</li><li>How payjoin defeats the common input ownership heuristic</li></ol><p><strong>Part 4 discusses:</strong></p><ol><li>Analyses needing a “starting point”</li><li>The privacy implications of sending and receiving payments</li><li>How existing privacy techniques can mitigate many of the issues discussed throughout the guide.</li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8177a40a5923" width="1" height="1" alt=""><hr><p><a href="https://medium.com/oxt-research/understanding-bitcoin-privacy-with-oxt-part-1-4-8177a40a5923">Understanding Bitcoin Privacy with OXT — Part 1/4</a> was originally published in <a href="https://medium.com/oxt-research">OXT Research</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>