New LibSubmarine For Ethereum Network Hides Transactions For Cheap
Speaking from a blockchain standpoint, privacy is highly relevant, none more so than on the Ethereum Network. Users on the network need ultimate privacy at some point, especially when performing certain transactions. Without enough privacy on your account, signals are possibly sent to third parties who can use the information against the sender once information is unveiled.
A great example of a time where security is extremely important is when performing chain votes. Votes are easily seen by everyone before the voting chain has ended. When this happens, voters often use the availability of data for manipulation purposes to influence the results.
Solutions already exist on different levels to protect votes from manipulation. One system set in place, is known as weighted commit reveal voting; it’s a way of voting that makes it impossible for other participants to see a voter’s choices before the end of the voting session. It’s a simple way to keep voter decisions secret within the blockchain until the end of the voting period occurs. Voters can only see other votes on a date much later than the voting period with the solution.
The system still doesn’t completely protect the voter 100% of the time. Sometimes more security is needed to ensure votes are secured until the voting chain has ended, that is precisely where LibSubmarine comes into the picture.
As a newly developed software Submarine is still gaining mass adoption by users. Traditionally, hiding data on the network only works for Ethereum-based transactions. However, users enabling Submarine finally have the capability to hide entire transactions for a period, allowing them to remain hidden until released on a later block. Also, everyone involved is securely protected from the network as well, including the data, value, sender, and receiver.
3 Use Cases For Using LibSubmarine
There are several cases in which hiding data is essential.
Standard protocols cannot hide votes on a voting chain. Therefore, Submarine is secure against typical commit/reveal contracts.
Protecting DEX Operations
Frontrunning by a miner is always a risk against DEX, as they can typically see transactions on the system. But, with LibSubmarine, miners can’t order an operation ahead of another in a block.
With the new software, anyone making a bid can hide the amount from the public. Standard protocols only allow a bid to stay hidden if it is made in Ether.
How Does LibSubmarine Work?
Standard privacy transactions cost the user a lot of gas and UX. With the new operation procedure, four separate accounts are used to cause a streamline effect that is more effective. The result is also more gas and UX efficient as well.
First, the user (AKA Alice) provides a submarine address with the needed value and data. They then offer the same data to the DApp on a block. Following that, Alice starts a new transaction with a raw signature to initiate sending of the Submarine address to the DApp. A last step by the DApp locates and retrieves the value and data sent by Alice.
There are still problems with the above method, an Alice has the potential to manipulate the value or data, so it appears different than then the sent initially. One way to avoid manipulation is to require deposit is by Alice and a challenging period in which another user verifies the transaction. When this process is included, no manipulation can occur. It’s an effective method of stopping any malicious events from happening.
More On LibSubmarine
LibSubmarine uses several internal processes to ensure the system operates as intended. There are different libraries inside the infrastructure for executing and verifying transactions. ProvEth is one such library used to create and validate Merkle-Patricia Proofs set in place by the user challenging a transaction. Smart Contracts also help to improve the security of Submarine sends as well.
And the off-chain process is used to create an alternative pseudo-signature, effectively bypassing Ethereum’s chain security, after which it will accept a transaction from an address without the need of a private key. Ethereum allows this because the transaction is not considered a raw broadcast by the network. Several steps are taken by the transaction that causes an ECDSA SECP256k1 signature to be attached. After the key is assigned, a new public key is given directly related to the from address. The new process is used to unlock a transaction once a user has finished the reveal step. A completion of the off-chain event initiated the four; commit, reveal, unlock and finalize steps.
More On ProvEth
Smart contracts are used to verify the proof-on-chain after a Merkle-Patricia is created by the library. This is needed if a user determines an Alice is acting with malicious intent. It’s a useful tool to perform on-chain verification.
You can see a full disclosure of the LibSubmarine library on Github. They are continually asking for user data to improve the experience. More code is added at regular bases, and the tools are designed to protect the users.