Talking from a blockchain point of view, privacy is very important, none more than on the Ethereum network. Network users need maximum privacy to a certain point, especially when making certain transactions. In the absence of sufficient privacy on your account, the signals can be sent to third parties who can use the information against the sender once the information has been unveiled.
A great example of a time when security is extremely important when making chain votes: votes are easily seen by everyone before the voting chain has ended. When this happens, voters often use data availability for manipulation to influence the results.
Solutions already exist at different levels to protect votes from manipulation: an established system, known as weighted commit reveals the vote, is a way of voting that makes it impossible for the other participants to see the choices of a voter before the end of the voting session. It is a simple way to keep secret voters' decisions within the blockchain until the end of the voting period. Voters can only see more votes on a date much later than the voting period with the solution.
The system still does not completely protect the voter 100% of the time. Sometimes more security is needed to ensure that votes are guaranteed until the end of the voting chain, which is precisely where LibSubmarine enters the scene.
As a new submarine, the software is still gaining mass approval from users. Traditionally, hiding data on the network works only for transactions based on Ethereum. However, users who enable the submarine have finally the ability to hide entire transactions for a period, allowing them to remain hidden until they are released in a subsequent block. In addition, all parties involved are securely protected from the network, including data, value, sender and recipient.
3 cases of use for the use of LibSubmarine
There are several cases in which the hidden data are essential.
Standard protocols can not hide votes on a voting chain. Therefore, Submarine is secure against typical commit / disclosure contracts.
DEX Operations Protection
Frontrunning from a miner is always a risk against DEX, as they can usually see transactions on the system. But, with LibSubmarine, miners can not order one operation before another in a block.
With the new software, anyone who makes an offer can hide the amount from the public. The standard protocols allow the offer to remain hidden only if it is done in Ether.
How does LibSubmarine work?
Standard privacy transactions cost the user a lot of gas and UX. With the new operating procedure, four separate accounts are used to create a more efficient streamline effect. The result is also more efficient than gas and UX.
First of all, the user (AKA Alice) provides a submarine address with the required value and data. They then offer the same data to DApp on a block. Next, Alice starts a new transaction with a raw signature to start sending the Submarine address to the DApp. A final step by DApp identifies and retrieves the value and data sent by Alice.
There are still problems with the previous method, an Alice has the potential to manipulate the value or data, so it seems different from the one initially sent. One way to avoid manipulation is to request the deposit from Alice and a challenging period in which another user verifies the transaction. When this process is included, no manipulation can occur. It is an effective method to prevent harmful events from occurring.
More on LibSubmarine
LibSubmarine uses several internal processes to ensure that the system works as intended. There are several libraries inside the infrastructure for the execution and verification of transactions. ProvEth is a library used to create and validate Merkle-Patricia Proofs implemented by the user who questions a transaction. Smart Contracts also contribute to improving the safety of submarine transmissions.
And the off-chain process is used to create an alternative pseudo-signature, effectively bypassing the security of the Ethereum chain, after which it will accept a transaction from an address without the need for a private key. Ethereum allows this because the transaction is not considered a raw transmission from the network. Several steps are taken from the transaction that causes an ECDSA SECP256k1 signature to be attached. After assigning the key, a new public key is directly related to the address from. The new process is used to unlock a transaction once the user has completed the disclosure step. A completion of the off-chain event has started the four; commit, reveal, unlock and finalize the steps.
More on ProvEth
Smart contracts are used to verify proof-on-chain after a Merkle-Patricia library has been created. This is necessary if a user determines that Alice is acting maliciously. It is a useful tool for performing chain verification.
You can see a complete description of the LibSubmarine library on Github. They continually ask for user data to improve the experience. More code is added to the regular bases and the tools are designed to protect users.