{"id":778,"date":"2025-07-13T02:13:50","date_gmt":"2025-07-13T02:13:50","guid":{"rendered":"https:\/\/mathnodes.com\/?p=778"},"modified":"2025-07-19T04:00:40","modified_gmt":"2025-07-19T04:00:40","slug":"eliminating-linkability-when-paying-for-sentinel-dvpn-service","status":"publish","type":"post","link":"https:\/\/mathnodes.com\/index.php\/2025\/07\/13\/eliminating-linkability-when-paying-for-sentinel-dvpn-service\/","title":{"rendered":"Eliminating &#8220;linkability&#8221; when paying for Sentinel dVPN service"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">What is linkability?<\/h2>\n\n\n\n<p>Linkability is real. If you don&#8217;t know what it is, or never heard the term before, it refers to the ability by blockchain analysis firms to create weighted links between seemingly random wallets on chain and even between chains. Most of these firms are using AI and timing attacks to distinguish how related two wallets on the same blockchain are. Much of the analysis is also used to establish correlation between wallets on various chains when people use swap protocols or exchanges.<\/p>\n\n\n\n<p>If you bought your coins on a KYC exchange such as KuCoin, you can assume that exchange data is shared with firms like Chainalysis or Ciphertrace. Withdrawing KYC&#8217;d coins to your wallet essentially KYC&#8217;s that wallet. Any funds you send from that wallet creates a (KYC) link to the receiving wallet. It becomes a web of linkable transactions and individuals.<\/p>\n\n\n\n<p>Linkability is a real threat to user&#8217;s privacy especially when paying for dVPN service. <mark style=\"background-color:rgba(0, 0, 0, 0);color:#fcb900\" class=\"has-inline-color\">Meile<\/mark> has spent over two years developing ways around this by accepting cross-chain payments from privacy coins; but what about when you pay for a Sentinel dVPN plan with your Sentinel wallet in either <mark style=\"background-color:rgba(0, 0, 0, 0);color:#fcb900\" class=\"has-inline-color\">Meile<\/mark> or <mark style=\"background-color:rgba(0, 0, 0, 0);color:#0693e3\" class=\"has-inline-color\">Sentinel Shield<\/mark>? Due to the transparent nature of the Sentinel chain, linkability poses a threat to your dVPN usage.<\/p>\n\n\n\n<p>In this article we will discuss methods for eliminating linkability of your Sentinel wallet used to pay for dVPN service. Networks within Cosmos such as Penumbra, Namada, and Secret all aid in this ability to eliminate linkability and preserve your privacy.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Beating linkability in Cosmos with Penumbra<\/h2>\n\n\n\n<p>We will focus our attention for the time being on Penumbra. In July 2024, <a href=\"https:\/\/penumbra.zone\" data-type=\"link\" data-id=\"https:\/\/penumbra.zone\" target=\"_blank\" rel=\"noopener\">Penumbra<\/a> (<a href=\"https:\/\/penumbra.zone\" target=\"_blank\" rel=\"noopener\">https:\/\/penumbra.zone<\/a>)launched their mainnet and the first block was produced. It was a bold endeavor because Penumbra is only one of a very limited number of blockchains who have fully shielded (zk-SNARKS) transactions with no transparent addresses. The best part of Penumbra is that its home is in the Cosmos Ecosystem giving many users the ability to transact privately between chains.<\/p>\n\n\n\n<p>We chose Penumbra in this article over Namada and Secret because Penumbra offers the best privacy of the three; not to discredit Namda or Secret, which are also viable alternatives to defeating linkability in the Cosmos Ecosystem. Penumbra is still new as it does not yet have large user adoption, limiting the shielded pool (the more users, the larger the anonymity set); but we are certain its supremacy will shine in the coming months and years.<\/p>\n\n\n\n<p>To get started download the <a href=\"https:\/\/chromewebstore.google.com\/detail\/prax-wallet\/lkpmkhpnhknhmibgnmmhdhgdilepfghe?hl=fr\" target=\"_blank\" rel=\"noopener\">Prax Wallet<\/a> from the Chrome Store<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"647\" src=\"https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Prax-Wallet-1024x647.png\" alt=\"Prax Wallet (Penumbra)\" class=\"wp-image-784\" srcset=\"https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Prax-Wallet-1024x647.png 1024w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Prax-Wallet-300x190.png 300w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Prax-Wallet-768x485.png 768w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Prax-Wallet.png 1537w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Prax Wallet (Penumbra)<\/figcaption><\/figure>\n\n\n\n<p>Set it up like any other wallet, then navigate to <a href=\"https:\/\/app.penumbra.zone\" target=\"_blank\" rel=\"noopener\">https:\/\/app.penumbra.zone<\/a> &#8211; this is the web interface in which you can process transactions. All ZK proofs and computations are stored locally on your computer for privacy and security purposes. The wallet will begin syncing with the blockchain, which shouldn&#8217;t take more than 30 minutes. While it is syncing, create a new wallet in your favorite <a href=\"https:\/\/sentinel.co\" target=\"_blank\" rel=\"noopener\">Sentinel<\/a> dVPN application. We will be using <a href=\"https:\/\/shield.sentinel.co\" target=\"_blank\" rel=\"noopener\">Sentinel Shield<\/a> in this tutorial.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img decoding=\"async\" width=\"473\" height=\"1024\" src=\"https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Screenshot_20250712-013450-473x1024.png\" alt=\"Sentinel Shield\" class=\"wp-image-785\" style=\"width:389px;height:auto\" srcset=\"https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Screenshot_20250712-013450-473x1024.png 473w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Screenshot_20250712-013450-138x300.png 138w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Screenshot_20250712-013450-768x1664.png 768w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Screenshot_20250712-013450-709x1536.png 709w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Screenshot_20250712-013450-945x2048.png 945w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Screenshot_20250712-013450-scaled.png 1182w\" sizes=\"(max-width: 473px) 100vw, 473px\" \/><figcaption class=\"wp-element-caption\">Sentinel Shield<\/figcaption><\/figure>\n\n\n\n<p>Save the seed phrase, and also import it from your dVPN application into Keplr.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Shielding and Unshielding USDC to be used to purchase P2P<\/h2>\n\n\n\n<p>Once your Prax wallet has synced, pick up a little bit of <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-primary-color\">$UM<\/mark> on Osmosis and IBC transfer it to your Prax Wallet. We will show how to shield <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-foreground-color\">$USDC<\/mark> to Prax, but the process is the same. <br><br>With <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-foreground-color\">$USDC<\/mark> on an existing Noble wallet in Keplr, open the Penumbra app and click on Shield assets and connect your Keplr wallet to the Penumbra app. Click &#8220;Manual Deposit&#8221; and select the amount you wish to shield. Please note that you should Shield more than you plan on unshielding. This is to eliminate a link between the same amounts going in and coming out of Penumbra.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"639\" src=\"https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Shield-USDC-to-Penumbra-1024x639.png\" alt=\"Shield USDC to Penumbra\" class=\"wp-image-786\" srcset=\"https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Shield-USDC-to-Penumbra-1024x639.png 1024w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Shield-USDC-to-Penumbra-300x187.png 300w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Shield-USDC-to-Penumbra-768x479.png 768w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Shield-USDC-to-Penumbra-1536x958.png 1536w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Shield-USDC-to-Penumbra.png 1609w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Shield USDC to Penumbra<\/figcaption><\/figure>\n\n\n\n<p>Shielding is like a normal IBC transfer except it becomes invisible on the Penumbra blockchain. <\/p>\n\n\n\n<p>Once you&#8217;ve shielded your <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-foreground-color\">$USDC<\/mark>, wait a day or two before unshielding a portion of it. This is because there is a common threat called a &#8220;timing&#8221; attack. Which is when assets go into a shielded pool and come out of the pool they can be correlated with how close the timestamps between the transactions are and how similar the quantity of a given asset are [3]. Remember, the longer your coins stay shielded on Penumbra the more privacy they gain. If you are patient and plan far enough in the future, a week or more will give you maximum anonymity. In my case, I always have a stack of coins shielded on Penumbra, so going in and coming out amounts and timestamps are impossible to correlate.<\/p>\n\n\n\n<p>When enough time has passed, open the Sentinel Shield wallet in Keplr that you imported in the previous section. Grab the Noble wallet address and now we&#8217;re ready to unshield <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-foreground-color\">$USDC<\/mark> to this wallet. Right now, there should be 0 txs on all chains with the Sentinel Shield wallet &#8211; it&#8217;s a ghost as they say.<\/p>\n\n\n\n<p>Unshield your <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-foreground-color\">$USDC<\/mark> by clicking &#8220;Withdraw&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"650\" src=\"https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Unshield-USDC-Penumbra-1024x650.png\" alt=\"Unshield USDC (Penumbra)\" class=\"wp-image-787\" srcset=\"https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Unshield-USDC-Penumbra-1024x650.png 1024w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Unshield-USDC-Penumbra-300x190.png 300w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Unshield-USDC-Penumbra-768x487.png 768w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/Unshield-USDC-Penumbra.png 1533w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Unshield USDC (Penumbra)<\/figcaption><\/figure>\n\n\n\n<p>I selected $2.00 plus some change for gas fees. This again is similar to a normal IBC transfer to the destination Noble address\u00a0(where funds are leaving a shielded pool and returning to the native chain). Once you&#8217;ve done this, you will have an amount in Noble, which you will want to IBC transfer (in Keplr) to Osmosis.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"384\" height=\"890\" src=\"https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/IBC-USDC-To-Osmosis.png\" alt=\"IBC USDC To Osmosis\" class=\"wp-image-788\" srcset=\"https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/IBC-USDC-To-Osmosis.png 384w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/IBC-USDC-To-Osmosis-129x300.png 129w\" sizes=\"(max-width: 384px) 100vw, 384px\" \/><figcaption class=\"wp-element-caption\">IBC USDC To Osmosis<\/figcaption><\/figure>\n\n\n\n<p>With the <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-foreground-color\">$USDC<\/mark> now on Osmosis you can swap it for <mark style=\"background-color:rgba(0, 0, 0, 0);color:#0693e3\" class=\"has-inline-color\">$P2P<\/mark>. Then simply use the Osmosis interface to IBC transfer to the Sentinel chain. <\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"390\" height=\"904\" src=\"https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/P2P-on-Sentinel-Unlinkable.png\" alt=\"P2P on Sentinel - Unlinkable\" class=\"wp-image-789\" srcset=\"https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/P2P-on-Sentinel-Unlinkable.png 390w, https:\/\/mathnodes.com\/wp-content\/uploads\/2025\/07\/P2P-on-Sentinel-Unlinkable-129x300.png 129w\" sizes=\"(max-width: 390px) 100vw, 390px\" \/><figcaption class=\"wp-element-caption\">$P2P on Sentinel &#8211; Unlinkable<\/figcaption><\/figure>\n\n\n\n<p>If you were patient in shielding and unshielding your <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-foreground-color\">$USDC<\/mark>, the <mark style=\"background-color:rgba(0, 0, 0, 0);color:#0693e3\" class=\"has-inline-color\">$P2P<\/mark> which is now in your dVPN application wallet will be unlinkable to any past history thanks to the Penumbra protocol. Continue using your favorite dVPN application with full privacy!<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-color-light-color\">References:<\/mark><\/p>\n\n\n\n<p>[1] <a href=\"https:\/\/guide.penumbra.zone\/\" target=\"_blank\" rel=\"noopener\">https:\/\/guide.penumbra.zone\/<\/a><\/p>\n\n\n\n<p>[2] <a href=\"https:\/\/docs.sentinel.co\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.sentinel.co<\/a><\/p>\n\n\n\n<p>[3] <a href=\"https:\/\/www.chainalysis.com\/blog\/is-bitcoin-traceable\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.chainalysis.com\/blog\/is-bitcoin-traceable\/<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>What is linkability? Linkability is real. If you don&#8217;t know what it is, or never heard the term before, it refers to the ability by blockchain analysis firms to create weighted links between seemingly random wallets on chain and even between chains. Most of these firms are using AI and timing attacks to distinguish how [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":792,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[45,11,24,29,72,60],"tags":[7,20,9,19,73,27,74,18,6,75,76,77],"class_list":["post-778","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-applications","category-decentralization","category-guide","category-meile","category-privacy","category-sentinel","tag-blockchain","tag-documentation","tag-dvpn","tag-howto","tag-linkability","tag-meile","tag-penumbra","tag-privacy","tag-sentinel","tag-shield","tag-unshield","tag-zk"],"_links":{"self":[{"href":"https:\/\/mathnodes.com\/index.php\/wp-json\/wp\/v2\/posts\/778","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mathnodes.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mathnodes.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mathnodes.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mathnodes.com\/index.php\/wp-json\/wp\/v2\/comments?post=778"}],"version-history":[{"count":6,"href":"https:\/\/mathnodes.com\/index.php\/wp-json\/wp\/v2\/posts\/778\/revisions"}],"predecessor-version":[{"id":798,"href":"https:\/\/mathnodes.com\/index.php\/wp-json\/wp\/v2\/posts\/778\/revisions\/798"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mathnodes.com\/index.php\/wp-json\/wp\/v2\/media\/792"}],"wp:attachment":[{"href":"https:\/\/mathnodes.com\/index.php\/wp-json\/wp\/v2\/media?parent=778"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mathnodes.com\/index.php\/wp-json\/wp\/v2\/categories?post=778"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mathnodes.com\/index.php\/wp-json\/wp\/v2\/tags?post=778"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}