In the digital era, privacy is not just a preference — it’s a fundamental right. With blockchain transactions being publicly visible, ensuring anonymity is becoming increasingly crucial. K-anonymity is a core concept in privacy research that helps protect users by making their transactions indistinguishable from at least k−1 others.
This article explores the concept of k-anonymity in a broader aspect and within Incognitee. We’ll dive into how users can enhance their anonymity, why k-anonymity matters, and what strategies can help achieve optimal privacy.
What is K-Anonymity and in What Contexts Is it Important?
Recently, we published an article about anonymity in Web3, but this concept was used long before the emergence of these new technologies. K-anonymity is an important factor in achieving privacy and is widely used in fields where confidentiality is required, like medical research or clinical trials. It’s also used by governments in the context of census data, or crime reports. The published records never feature the names of the citizens or patients involved but might include other data, such as disease, age, place of birth, etc.
However, it isn’t as simple as just meshing a lot of data together. A person can be identified within a bundle of information by crossing different things such as ZIP code, gender, and profession. So for the people involved to remain anonymous, the pool has to include indistinguishable traits.
Why Privacy Matters in Blockchain Transactions
The concept of “the more, the merrier” can be applied to understand k-anonymity in privacy-preserving Web3 projects as well. Simply put, the more users a platform has, the harder it is to distinguish each other, which means there’s proportionality between the number of people executing transfers and the level of anonymity that can be reached.
Let’s use a practical example of voting. If there’s only one person in a polling station and one vote inside the ballot, there’s no question left as to who it belongs to. In this case, there is no anonymity because there is no way to mix data. However, 10 voters in the polling station will alter the situation, as it will be harder to link each of the votes to their issuers.
This is what happens in blockchain transactions. If there’s a large pool of users, they will be mixed up ,and it will be more difficult to link each transaction to its owner. Transactions blend into a larger set of similar transactions, making it harder to trace them. To sum it up, a higher k-value means stronger privacy, as transactions become increasingly indistinguishable.
Recently, we published a more general article explaining account hygiene and anonymity on Web3 — which we recommend reading before.
Understanding K-Anonymity in Incognitee
Reaching a certain level of anonymity depends on the platform’s number of users, but there are many other factors that can influence this. Let’s go back to the voting example. If one out of the 10 citizens has a red marker, and one of the votes is made in red, it’s only natural to assume that it belongs to the citizen with a different pen.
Just like in our example, ensuring anonymity when transferring in Incognitee is highly dependent on the users’ behavior, especially when it comes to the shielding and unshielding processes. Since Incognitee ensures private L2 transactions while L1 remains public, both these mechanisms play a crucial role in maintaining anonymity. The goal is to ensure L1 transactions are as indistinguishable as possible. This can be achieved through standardized transfer amounts (using common amounts prevents transactions from standing out from each other), timing obfuscation, where delays between transactions can help reduce traceability, and finally, address diversification — during unshielding, it’s important to use new, never-used-before addresses so they don’t get traced to when you shield in the first place.
Timing Obfuscation Tactics
- Shielding and unshielding transactions should not happen sequentially or at predictable intervals.
- Introduce random delays between the initiation and execution of unshielding transactions.
- This makes timing correlation between L1 deposits and later L1 withdrawals difficult, even with network-timing analysis against a validator enclave.
Optimizing K-Anonymity on Incognitee
Shielding Transactions (L1 → L2)
To keep L1 deposits untraceable, Incognitee uses shared vault logic. All deposits go into that vault, which makes it more difficult to track individual funds.
However, users should still follow certain practices, such as using widely adopted values for deposits (our beta version has a maximum shielding limit of 111 DOT) and depositing uncommon values like 33.753 DOT instead of 30.
Ushielding Transactions (L2 → L1)
To prevent linking transactions between L1 and L2, Incognitee advises users to wait before withdrawing, to use common values such as 10 or 100 DOT, and to unshield to new addresses.
For even stronger privacy, users can remain on L2, where transactions occur in Trusted Execution Environments (TEEs).
For even better privacy, consider refraining from unshielding back to L1 at all and instead perform your everyday actions on Incognitee (L2). Staying on Layer 2 guarantees much stronger privacy than just k-anonymity; sender and receiver information remains opaque to everyone except those directly involved in the transactions. Incognitee’s aim isn’t to promote illegal activities but to preserve the users’ privacy overall. Soon, transacting to L2 and keeping the tokens there will allow you to participate in other things, such as voting in OpenGov, swapping, and more.
K-Anonymity Factors Across Web3
Monero: K = 16. The privacy-preserving platform reaches k-anonymity only when at least 16 simultaneous transactions take place.
ZCash’s anonymity factor is linked to the total of previous transactions in the shielding pool
Incognitee: From Private Transfers to Private Voting & Swapping
Although we are already offering some useful features, we are going to add many more in the next couple of months. Upcoming enhancements include enabling the confidential transaction of stablecoins, the ability to do private purchases via our layer 2, but also token swapping (which allows users to discreetly convert assets), and private governance — you will finally be able to cast your decision without the others knowing your voting preferences.
By using these privacy-focused solutions, users not only safeguard their own transactions but also contribute to a more anonymous and secure financial ecosystem.
In a world where financial surveillance is increasing, k-anonymity provides a crucial layer of protection. With Incognitee’s privacy-enhancing technology, users can transact securely, knowing their financial history remains private.
If financial privacy matters to you, now is the time to adopt best practices for k-anonymity. The more individuals prioritize privacy, the stronger and safer the entire crypto ecosystem becomes.
• • •
About Integritee
Integritee is the most scalable, privacy-enabling network with a Parachain on Kusama and Polkadot. Our SDK solution combines the security and trust of Polkadot, the scalability of second-layer Sidechains, and the confidentiality of Trusted Execution Environments (TEE), special-purpose hardware based on Intel Software Guard Extensions (SGX) technology, inside which computations run securely, confidentially, and verifiably.
Community & Social Media:
Join Integritee on Discord | Telegram | Twitter | Medium | Youtube | LinkedIn | Website
Products:
L2 Sidechains | Trusted Off-chain Workers | Teeracle | Attesteer | Securitee | Incognitee
Integritee Network:
Governance | Explorer | Mainnet | Github