Stay Stealthy
Most cryptocurrencies today have transparent blockchains, so that transactions taking place within them are openly verifiable and traceable. However, users want to have the opportunity to transact in a secure and anonymous manner. Moreover, in a business environment a non-disclosure of a commercially sensitive information is a crucial thing, that helps you to avoid showing vulnerabilities to your competitors.
So there is a need for private financial transactions and that’s why we have implemented the Stealth Transactions feature into the Gravity Business Framework.
There is a certain bias in the digital world that stealth transactions are mostly used for illicit activities, but we believe that the ability to transact in stealth mode will facilitate further business adoption of the technology. This makes it a must have feature for a public blockchain in order for it to be adopted by SMEs.
First of all, let’s take a look at the two most popular anonymous cryptocurrencies which provide for stealth transactions.
Monero
As a basis of its stealth transactions Monero uses ring signatures, ring confidential transactions (RingCT), and stealth addresses to provide total transaction privacy, hiding the sender, receiver and the amount transferred. Monero also uses Kovri to hide transactors’ location and IP address.
Zcash
Zcash uses Zero-Knowledge Succinct Non-interactive Argument of Knowledge (ZK-SNARK) to provide privacy for its transactors. It also has a transparent transaction functionality, meaning privacy is not implemented by default (like Monero) but can be used when needed by users. Protocols such as Komodo and ZenCash also use ZK-SNARK as a basis for their stealth transactions.
Within the Gravity Business Framework, Stealth Transactions are conducted in the same way as that of Bitshares’ confidential transactions, utilizing Oleg Andreev’s blind signatures (https://github.com/oleganza/blindsignaturedemo).
Let’s look at an example of how Stealth Transactions are implemented in Gravity and how they can be used by SMEs:
Bob and Mary want to transact with each other, but they don’t want to reveal transaction details, which would reveal commercially sensitive information. In this case, they opt to use Gravity Stealth Transactions.
- Bob holds Public Account #1 and with it creates Stealth Account #1. Mary holds Public Account #2 and with it creates Stealth Account #2.
- Bob transfers an amount of tokens from his public account to his private account.
- Then, using Mary’s stealth public key, Bob transfers a certain amount of tokens from his stealth account to Mary’s stealth account.
- Then Bob just need to copy the checksum and send it to Mary, so she can receive the funds transfer.
- In the history of transactions, this transaction will be recorded as “unknown amount of ZGV transferred from unknown sender to unknown receiver”
This is how the interface looks in practice. Simple and awesome, isn’t it?