Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Wallet clustering is the broad term for a variety of techniques that can be used

This body of work has, time and again, shown that misconceptions about privacy invariably err on the side of optimism. Moreover, depending on individual users' threat models, their adversary may have access to comprehensive auxiliary information. Such auxiliary information doesn't even need to be about the target user, information about other users may be useful for deanonymization of the target user. In cryptography, rotating long lived keys or favoring ephemeral ones can limit the scope of a compromise, but an individual's identity is who they are.

This is discussed in full in [./collaborative_txn_privacy.md]
This is discussed in full in [Collaborative transaction privacy](./collaborative_txn_privacy.md).

The fungi protocol suite is designed to make arbitrary transactions possible between mutually consenting but distrusting peers. This means safety, liveness, and unlinkability of protocol messages. Within such a protocol peers are free to pursue whatever outcomes they desire.

Expand Down
8 changes: 8 additions & 0 deletions collaborative_txn_privacy.md
Original file line number Diff line number Diff line change
Expand Up @@ -582,6 +582,14 @@ For example, a chain analysis vendor with KYC information may already be able to
If the CoinJoin graph is *robustly connected*[^flow], then no small cut separates any output from the mass of its candidate origin coins. Stated differently, every output is connected to its candidate origins by multiple disjoint paths.

This redundancy forestalls the cliff of exponential decay, where privacy becomes much more brittle, extending the duration of the linear decay regime by requiring the adversary to deanonymize a much larger proportion of users before divide-and-conquer tactics start coming into play.
<div class="chart-src f32" role="img" aria-label="Two CoinJoin graphs of thirty-two wallets under the same ten deanonymizations.">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="src/figures/figure-32-dark.svg">
<img src="src/figures/figure-32-light.svg" alt="Two CoinJoin graphs of thirty-two wallets under the same ten deanonymizations: mixing sheds one candidate per strike; merges through a single coin collapse to one.">
</picture>
</div>

*The same ten peers, deanonymized in the same order, in both graphs.*

But when two post-CoinJoin outputs are linked, on-chain or otherwise, this makes **intersection attacks**[^goldfeder][^scroll-intersection] possible. In such attacks, we take the candidate origins of these now-linked coins and check for any overlaps.

Expand Down
2 changes: 2 additions & 0 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Summary

[Introduction](README.md)

- [Collaborative transaction privacy](collaborative_txn_privacy.md)
1 change: 1 addition & 0 deletions src/collaborative_txn_privacy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{{#include ../collaborative_txn_privacy.md}}
1,623 changes: 1,623 additions & 0 deletions src/figures/figure-32-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,623 changes: 1,623 additions & 0 deletions src/figures/figure-32-light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
33 changes: 33 additions & 0 deletions theme/diagrams.css
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,36 @@ html:is(.coal, .navy, .ayu) .mdbook-graphviz-output [fill="black"] {
html:is(.coal, .navy, .ayu) .mdbook-graphviz-output text:not([fill]) {
fill: #b7b7b7;
}

/* The figure ships as light and dark files. The source view renders them
through a picture that follows the system preference; the book paints the
same files as a background that follows the book theme, and keeps the
picture hidden so the svg is not fetched twice. */
.chart-src {
display: block;
max-width: 100%;
margin: 1rem auto;
background: no-repeat center/100% 100%;
}

.chart-src picture {
display: none;
}

.chart-src.f16 {
aspect-ratio: 736 / 762;
background-image: url(../figures/figure-16-light.svg);
}

.chart-src.f32 {
aspect-ratio: 864 / 1120;
background-image: url(../figures/figure-32-light.svg);
}

html:is(.coal, .navy, .ayu) .chart-src.f16 {
background-image: url(../figures/figure-16-dark.svg);
}

html:is(.coal, .navy, .ayu) .chart-src.f32 {
background-image: url(../figures/figure-32-dark.svg);
}
Loading