Transaction privacy protection has always been a very important branch in the history of cryptocurrency development. BIP32, CoinJoin, Zerocoin, Monero and Grin are examples in this direction. In the past, these technologies were mainly applied in UTXO cryptocurrency, such as Bitcoin. How to achieve a better transaction privacy protection of RADR under the World State account model has been a research subject of Radar Lab. Although Ripple and Ethereum share the same model as RADR, they have made slow progress and have no substantial breakthroughs. RADR is the first cryptocurrency that achieves unconditional transaction privacy protection under the World State account model.
The mainstream privacy protection technology consists of CoinJoin, Ring Confidential Transaction, and Zero Knowledge Proof. CoinJoin usually needs a centralized or semi-centralized service. A fully decentralized solution is complex, demanding and rarely achieved, which means unconditional privacy protection is difficult to realize. This option was abandoned after a period of study. We have poured a lot of resources to research Zero Knowledge Proof which was applied in many projects. The results show that this technology also has many disadvantages and two of which have a serious impact on implementation. One is the serious waste of memory and computational efficiency under the World State account model. This is because all transaction history of Zero Knowledge Proof has to be saved and used for calculations, and the key fingerprint needs to be saved to prevent double-spending. The other is that a transfer requires four transactions to complete. You need to convert the plaintext balance to a zero-knowledge one and then declare a zero-knowledge balance to be transferred out. The receiver needs to declare a zero-knowledge balance to be transferred in and convert it to plaintext balance.
After comprehensive research, we decide to adopt Ring Confidential Transaction technology. The advantage of this technology is that it only requires two transactions to complete. The ring data extracted can be deleted from World State without wasting memory. It has a good malleability to protect the counterparty and transaction amount. See The White Paper of Transaction Privacy for more technical details. (https://github.com/radrbiz/radard/blob/master/doc/Transaction_Privacy.pdf).
Now we have achieved Ring Transaction to eliminate the correlation between two parties and are about to productize and roll out it on the main network. Specifically, the sender initiates a RingDeposite transaction and saves an appropriate amount in the ring. When the ring has accumulated a certain number of transactions( with the same amount), it can start a RingWithdraw. There’s no evidence in the ring to prove the correlation between two RingDeposite and RingWithdraw, protecting the correlation privacy of all parties in the ring transaction. You can find more details in WhitePaper. For the relevant code, see https://github.com/radrbiz/radard/blob/master/src/ripple/app/tx/impl/RingDeposit.cpp and https://github.com/radrbiz/radard/blob/master/src/ripple/app/tx/impl/RingWithdraw.cpp. The curve used in the ring signature is AltBn128. For the code, see https://github.com/radrbiz/radard/blob/master/src/ripple/crypto/impl/AltBn128.cpp. This curve better balances security and performance, and a similar curve is built in Ethereum.
Next, we will achieve Ring Confidential Transaction and Stealth Address to protect the transaction amount and more simplified transaction methods, boosting the transaction privacy protection on RADR into the highest level.