Many people claim that Enigma offers "Monero-strength" privacy on the Ethereum blockchain. Is this true or not? Do they offer the same level of privacy? How are they the same, and how are they different? Is "Monero vs. Engima" even an appropriate comparison?
Enigma (ENG) has relatively different goals than Monero (XMR). Whereas Enigma works to encrypt information stored by applications, Monero works to hide transaction data.
Engima prioritizes securely securing data. It is not meant for these assets to be frequently "sent" to other users, or at least in the same capacity. Their basic privacy protocol is best shown as follows:
In this diagram, the user has two types of information that is passed to the blockchain. The blockchain is merely a distributed database that stores data. First, users can store
T-data transactions that store the hashes of data. For example, if I want to store a copy of this StackExchange answer text on the blockchain, I would "hash" the text and store only this hash in the blockchain. I recommend you learn more about hashing to see why this is important.
Second, users can store
T-access transactions, which assign authorization for specific files. They decide who has permission to gain access to data stored with the
The actual data (in this example, the full content of this response) is stored outside of the blockchain. The privacy documentation says the following:
Data collected... is encrypted using a shared encryption key and sent to the blockchain in a
T-datatransaction, which subsequently routes it to an off-blockchain key-value store, while retaining only a pointer to the data on the public ledger (the pointer is the SHA-256 hash of the data).
For practicality purposes, imagine this data storage as a centralized cloud provider Amazon AWS.
Services run on the side of the blockchain to provide applications to users. They can be given permission to access user data through
T-access transactions. The service can then query this data on the blockchain, pull the actual files from Amazon AWS, then interact with the user directly to provide a service.
Keep in mind that while a user can create a
T-access to revoke access to files at any time, the service may have archived them, making complete removal difficult.
I am not aware of how the history of
T-access transactions is managed. I do not know if an outside observer can see who was previously given access to what data. This is something I recommend you spend some time researching, since it could create undesired public connections (eg: you granting permission to a healthcare provider).
Monero does not offer simple support for the mechanism explained with Enigma. Instead, it provides protection for transactions. Ring signatures hide the origin of funds spent by hiding the real output among other sources of money. Ring confidential transactions (RingCT) hide the amount. Stealth addresses break the link between sources of funds and addresses (making rich lists impossible). You can learn more about each individually by searching around in StackExchange and watching the linked videos.
Monero overall has a simpler use-case. Enigma is much newer, and there are more considerations that are still developing. You probably shouldn't make private transactions on Enigma, and you likewise probably shouldn't write applications directly on top of Monero (use a second-layer approach instead).