Each anonymous network can be attributed to a specific problem (or to a hybrid of certain problems). Currently, there are five anonymization problems: Onion, Proxy, DC, QB, EI. If the network does not belong to one of these problems, it means that either the network is not anonymous, or a new anonymization problem has been opened. In the latter case, it is necessary to prove that the new anonymization problem actually implements an algorithm for obfuscating/hiding routing.
Anonymity is the concealment of the true connections between multiple senders and recipients from multiple observers. At the same time, many observers can be located in both a set of senders and a set of recipients, which makes the task of anonymization more time-consuming and selective.
- All centralized services: Telegram, Facebook, Github, ...
- Client-secure only applications: Bitmessage, RetroShare, Freenet ...
- Decentralized networks without an obfuscating/hiding routing algorithm: MUTE, ...
- Pure VPN, Proxy services without additional obfuscating/hiding routing algorithm
- Highly specialized systems with the property of confidential: Monero, Dash, ...
- Applications based on an anonymous network: HLM (messenger), HLF (filesharer), ...
Why is Monero not an anonymous network?
If we assume that RingSignature is an anonymization problem, then it should ensure anonymity in the network communication of subscribers. Let's further assume that there are three subscribers: {A, B, C}, who know each other's public keys and are connected to each other. In this case, A signs the message m with the public keys {B, C} and his private key, thereby forming a ring signature s. Next, subscriber A sends {m, s} to participant B. No one except {A, C}, without knowledge of their private keys, would be able to send this message, which is related to the authentication indicator, but not anonymity, because if the ring signature s did not exist at all, then the situation on the part of anonymity would not have changed at all. If we used additional proxying or tunneling, it would become a completely different problem, i.e. Proxy or Onion. Thus, the use of ring signatures is more similar to the use of a common MAC value by three participants on the part of symmetric cryptography. Only in the first case, instead of symmetric cryptography, we use asymmetric cryptography, without risking compromising the only secret.
Why is Dash not an anonymous network?
Unlike Monero, cryptocurrency Dash does have an anonymization problem similar to Mix networks, where one node accepts X denominations of the same length from the sender, which are then mixed and sent to the final recipient. Nevertheless, this Mix problem is only a special case of the Onion/Mix problem, because it does not encrypt data and, as a result, allows mixing data exclusively in currency format.
- network_arch = [p2p, hybrid]
- network_type = [open, closed]
- source_code = [open, closed, missing]
- subtype_problem = [mixnet, garlic, f2f]
- todo_tag (need add/set tags)
E(K3, E(K2, E(K1, M))) -> E(K2, E(K1, M)) -> E(K1, M) -> M
where
E - encryption
M - message
K1, K2, K3 - keys
- Untraceable Electronic Mail, Return Addresses, and Digital Pseudonyms
- Securing the Tor Network
- I2P - Invisible Internet Project
- Mixminion: Design of a Type III Anonymous Remailer Protocol
- Tor: network_arch=hybrid, network_type=open|closed, source_code=open
- I2P: network_type=p2p, network_type=closed, source_code=open, subtype_problem=garlic
- Mixminion: network_arch=hybrid, network_type=open, source_code=open, subtype_problem=mixnet
- Perfect Dark: network_type=hybrid, network_type=closed, source_code=closed, subtype_problem=mixnet
E(K3, M) -> E(K2, M) -> E(K1, M) -> M
where
E - encryption
M - message
K1, K2, K3 - keys
- Crowds: network_arch=hybrid, network_type=open, source_code=missing
(A(B) xor A(C)) xor (B(A) xor B(C)) xor (C(A) xor C(B)) -> M = 0
(A(B) xor A(C)) xor (B(A) xor B(C)) xor not(C(A) xor C(B)) -> M = 1
where
M - message
A(B) = B(A) - total generated bit between A and B
B(C) = C(B) - total generated bit between B and C
C(A) = A(C) - total generated bit between C and A
- The Dining Cryptographers Problem: Unconditional Sender and Recipient Untraceability
- Herbivore: A Scalable and Efficient Protocol for Anonymous Communication
- Dissent in Numbers: Making Strong Anonymity Scale
- PriFi: Low-Latency Anonymity for Organizational Networks
- Herbivore: network_arch=p2p, network_type=open, source_code=missing
- Dissent: network_arch=hybrid, network_type=open, source_code=open
- PriFi: network_arch=hybrid, network_type=open, source_code=open
(E(K, M) OR E(R, V)) <- A(x)
where
E - encryption
K, R - key, random key
M, V - message, void message
A(x) - generation algorithm with independent event
- Hidden Lake: network_arch=p2p, network_type=closed, source_code=open, subtype_problem=f2f
- M-A: network_arch=p2p, network_type=closed, source_code=open
E(K1, M) OR E(K2, E(K1, M))
where
E - encryption
M - message
K1, K2 - keys
- _
Licensed under the MIT License. See LICENSE for the full license text.