Bitcoin’s Anonymous Transactions are possible through Dandelion’s Privacy-Enhancing Proposal
On January 3rd, 2009, the first Bitcoin Network’s block was mined. This means that Bitcoin is already a 10-year-old child. For such a young child, it has already achieved great success according to the opinion of many of those that invest in this platform and many of those who develop the code for the network. Bitcoin is a computational system based on an open decentralized immutable public ledger. Whatever is written on the ledger and verified by a majority of nodes, is accepted and protected as absolute truth eternally.
There is a property of the network that has worried some users: the apparent ease that Bitcoin presents for any powerful detection system to trace all transactions. Bitcoin is not a private database. You can see all transactions through applications. There are no human names or personal data attached to coin balances or to each Bitcoin transaction onchain. This means that, in the Blockchain no one will find a clear text saying “Mr. A has 10 Bitcoins and Mrs. B has 17 Bitcoins”.
But, a robust investigation software, like that of FBI or of some organizations, or even of hackers, can trace coins depending on their origins or the IP addresses from where transactions are broadcasted. So, in the end, it is relatively easy for professionals to know who pays to whom how much in the Bitcoin network. There has been no research reports that indicate that most users are interested in obscuring their transactions and making them invisible. However, for a substancial sector this does seem to be an important issue. And maybe engineers already have an innovative solution: Dandelion Proposal.
Two years ago, in January 16th 2017, a scientific paper was published under the title of “Dandelion: Redesigning the Bitcoin Network for Anonymity” (DOI: 10.1145/1235). This paper introduced a revolutionary idea that could be used to add a to-that-point unthinkable level of privacy to Bitcoin’s transactions and make it almost impossible for a third party to trace a Peer-to-Peer transaction. Based on Dandelion, Mr. A could send Bitcoins to Mrs. B without anybody being able to detect or trace the transaction.
In the paper, its authors, Bojja, Fanti and Viswanath, explain that “Recently, researchers have demonstrated deanonymization attacks that exploit weaknesses in the Bitcoin network’s peer-to-peer (P2P) networking protocols. In particular, the P2P network currently forwards content in a structured way that allows observers to deanonymize users.” The authors also describe the meaning and importance of their proposal in simple words: “we redesign the P2P network from first principles with the goal of providing strong, provable anonymity guarantees. We propose a simple networking policy called Dandelion, which achieves nearly-optimal anonymity guarantees at minimal cost to the network’s utility. We also provide a practical implementation of Dandelion for deployment.”
Dandelion is a proposal based on an analysis of asymmetry. Normally, when a node wants to issue a transaction order, this node broadcasts the order indiscriminately towards the rest of the nodes of the network. In Blockchain programming, it is said that there is a broadcast to all the neighbors. From the point of view of the neighbors it must looks like a shower. The node interested in sending money showers everybody else with the petition.
The new proposal implements a controlled protocol that makes things change. With Dandelion, the indiscriminate explosive broadcasting is no longer done at once. This means there will not be an immediate shower. The node that wants to send money to someone, does not do the broadcasting to the many nodes of the system as it has to be for a transaction to be captured by miners. The original node only sends the transaction order to another node, only towards one individual node. For a better a comprehension, this unique node can be called the “second node”.
The second node will not obtain information that identifies where the order comes from, for the transaction. That is, the second node does not know that it is the “second”. Actually, the second node will send the information to a third node. The third one, to a fourth node. And so it will continue jumping several times from individual nodes to individual nodes without leaving a trace. At some point, at last, a node will make the real transmission to all the nodes of the system. And the Bitcoin Network will not save the information of the several jumps that the order had to do before doing the public broadcasting towards the rest of the nodes.
The diffusion pattern is what has the shape of a dandelion. The head of the dandelion represents the last node broadcasting to the whole network, and the stem represents all the jumps that cannot be traced. The theoretical model of the Dandelion proposal offers exceptional guarantees of anonymity. Theoretically speaking, it seems impossible to identify who sends money to whom, if it is done through this system (source).
Based on the solid theoretical work, Zcash developer Andrew Miller and developers from University of Illinois have been working on a software implementation during 2018. The development can be followed in the official GitHub site Dandelion Project. In one of their recent releases in GitHub, they have indicated that, through Dandelion, a Bitcoin transaction will first enter a “stem phase” and that “during the stem phase, each node relays the transaction to a single peer. After a random number of hops along the stem, the transaction enters the fluff phase, which behaves just like ordinary flooding/diffusion. Even when an attacker can identify the location of the fluff phase, it is much more difficult to identify the source of the stem” (source).
Dandelion is, then, a privacy-enhancing system applied to Bitcoin’s transaction propagation mechanism. Dandelion can obscure completely the original source IP of a Bitcoin transaction. The system is being designed to make it impossible for third parties to detect or trace what happened before the fluff phase. No data is recorded on the Blockchain about the stem phrase. So it is as if the stem had never existed.
One of the original values added to Bitcoin by design since the beginning, is censorship resistance. Anonymity becomes important for censorship resistance. Naturally, many Governments, in their legitimate mission to enforce their laws, will try to break censorship resistance, for example through KYC and AML protocols. This seems to be very important in many countries for valid security-related issues. However, the natural right to privacy is also valid. Having the possibility to conduct P2P transactions in a private way, is important for human safety and peacefulness. Therefore, one can speculate that anonymity might make Bitcoin more desirable and valuable.