Suterusu is a data privacy protection infrastructure built for Web3.
Suterusu is a data privacy protection infrastructure built for Web3. Our product, Suter Shield has amassed close to $250 million in transactions and 15K users.
Private Payment Infrastructure for Cryptocurrency
Millions of Crypto holders on either Ethereum or Binance Smart Chain, can send, transfer and withdraw privately via Suter Shield network without exposing their private transaction data.
Suter Shield allows users to enjoy the advanced private payment features provided by the Suterusu protocol. The Suterusu protocol is based on our original ZK-ConSNARK technology, which strikes the perfect balance between performance and security.
The connection between the Suter account and the Ethereum address is broken due to a call to the fund module. When an attacker tracks the payment records of an Ethereum address, it's like tracking the direction of a small stream of water: you can't predict where the stream is going when it hits the ocean.
Miners may still be able to observe payment records between different Suter accounts while verifying transactions. We use homomorphic public key encryption to guarantee the confidentiality of the transferred amount, and use zero-knowledge proof to ensure the anonymity of Suter accounts.
A user who intends to protect the privacy of payments of any ERC-20 token can use Suter Shield to trigger a private payment to hide the trail of any ERC-20 token. Here we assume that the user has at least two Metamask wallets with different secret keys.
Suppose a user wishes to use the Suter Shield feature to transfer USDT in an anonymous and confidential manner. The first thing to make sure is that both Metamask wallets have a Suter-USDT account. This can be achieved by first adding the Suter-USDT token to your Metamask account, since Suter-USDT is basically an ERC-20 token, so this step is identical to adding any other ERC-20 token. In addition, the web page UI provides a button "Register or get the public key of your Suter account", under which you can find a list of tokens where you can select a specific Suter token. In our case, the user selects the Suter-USDT token and clicks the button “Register or get the public key of their Suter account” a dialog box will appear reminding the user to "Enter the private key of your Metamask account". The user enters their private key, and the internal algorithm generates H (Metamask secret key) as the private key of the user's Suter ERC-20 token account, and then invokes the public key generation algorithm to obtain the public Suter ERC-20 token account. key. The output public key will be displayed as a string or barcode so that the user can copy the string or barcode and optionally send it to the sender of the transaction. The output public key will be stored in a cookie. The output public key will be displayed as a string or barcode so that the user can copy the string or barcode and optionally send it to the sender of the transaction. The output public key will be stored in a cookie. The output public key will be displayed as a string or barcode so that the user can copy the string or barcode and optionally send it to the sender of the transaction. The output public key will be stored in a cookie.
Note that this entire process happens on the client side, while all personal information, especially the user's Metamask private key, never leaves the user's client device. Therefore, there is no risk of the user's personal information being leaked. Since the Suter ERC-20 account private key is derived from the Metamask private key, the user can generate the account private key on the fly on any of their devices, the user does not need to store the Suter ERC-20 private key. key too.
Suppose a user wishes to convert the USDT held in the Metamask 1 wallet to Suter-USDT. The user clicks on the "Deposit" box under wallet 1, then clicks on the list of tokens to select the type of token(s) they intend to deposit. In this example, he(s) will select USDT and then the amount(s) of USDT he intends to deposit, say 10 USDT into wallet 1. After that, he(s) will click on the "fund" button, after which the backend will launch the CreateFundTx algorithm, which in turn launches a fund contract to convert USDT at address 1 into Suter-USDT. Note that the moment the "fund" button is clicked, the backend first checks to see if the Suter-USDT public key can be found in the Metamask 1 wallet cookie. A dialog will appear reminding the user "You need to register. Suter-USDT account" in the absence of a public key. The user can then go through the above registration process to generate a public key. After registration, the user can paste the public key into a dialog box that will be used as input to the CreateFundTx algorithm.
After the Fund’s contract is verified by the blockchain, the user should see 1 in the Metamask wallet, the number of USDT tokens decreases by 10, and the number of Suter-USDT tokens adds another 10.
Suppose now the user wants to activate the Suter transfer function, the user needs to first specify the target Suter-USDT account. When the user clicks the submit button under the "Deposit" box, a dialog box "You need to provide the public key of the target Suter account" appears.
If the target public key is generated by the user (or herself), the user can simply click on the "Sign up or get the public key of their Suter account" button and enter the target Metamask wallet private key and generate the public key, and then paste the public key into the dialog box, which will be used as input to the CreateTransferTx algorithm.
If the target public key is generated by another recipient. The recipient can generate the public key by registering in a similar way and send the public key to the sender via other communication channels such as Telegram or Wechat. The sender can then paste the received public key into a dialog box that will be used as input to the CreateTransferTx algorithm. Note that when the public key is pasted into the dialog box, the back end can check if the public key format is correct by checking if it is really a point on the elliptic curve of our diagram.
The backend is now ready to run the CreateTransferTx algorithm, which takes as input the private key of account 1 and the public key of the target account, as well as the public keys of the anonymity set and the amount of the transaction. This algorithm will generate a zero-knowledge proof that will be used as input to run the transfer contract. After clicking the “transfer” button and confirming the transfer contract with the blockchain, the user can check the recipient’s Metamask account to check if there are 10 more Suter-USDT in their wallet.
In order to convert 10 Suter-USDT tokens back into 10 USDT tokens in the Metamask wallet in Suter Shield, the user first switches to the respective Metamask account and clicks on the “connect wallet” button. He then clicks on the "Withdrawal" box and selects the Suter-USDT token, and then clicks on the "write" button. The "Please enter the secret key of your Metamask token" dialog box will appear. The user enters the Metamask secret key and the backend will run the H (Metamask secret key) algorithm to generate the Suter ERC-20 token account secret key, which will be taken as input to the CreateBurnTx algorithm. The backend then runs the CreateBurnTx algorithm, which starts the Burn contract. After this contract is validated by the blockchain, the user should see,
fund contractallows the sender to create a Suter account and then create a transaction to run a fund smart contract to convert an ETH or ERC-20 token to its anonymous counterpart in the Suterusu protocol, such as an s-ETH or s-ERC-20 token, to be homomorphically appended to the newly created Suter account. The original ETH or ERC-20 token will be stored in the fund contract. The user can access this contract by running the CreateAddress and CreateFundTx algorithms on the client side. The CreateFundTx algorithm takes a newly created Suter pk score and the number of native AMTA tokens as input. After calling the fund contract, amt, the amounts of native tokens are converted into the equivalent amount of their Suter counterpart and transferred to the Suter pk account. After the native token is converted into s-ETH and s-ERC-20 tokens,
Translation contractprotects the privacy of s-ETH or s-ERC-20 token payments by running the ZK-ConSNARK scheme as a subroutine. This guarantees the anonymity of the sender and recipient of the transaction, hiding their identity from other users of the system, while protecting the transferred amount with encryption. This contract is a key technology to protect the privacy of payments of any smart contract platform that integrates the Suterusu protocol. The sender can initiate this contract by running the CreateTransferTx algorithm on the client side. This algorithm takes the sender's account secret key Suter and the sender's public keys, and the anonymity set and transaction amount amt. to generate a zero-knowledge proof that will serve as input to the transfer contract.
The burn contract allows users to convert their s-ETH or s-ERC-20 tokens into native ETH or ERC-20 tokens at any time the users choose. The API provided to the user to run this algorithm is the CreateBurnTx algorithm, which takes as input the private key of the corresponding Suter account.
Since the native token, such as an ETH or ERC-20 token, will be held in the respective Fund contract address, and the amount locked up will be completely transparent, this potentially opens the door to more complex DeFi functions, such as liquidity mining. The new protocol will also charge users a fixed amount of rewards each time the Fund contract is invoked, and the usage fee will be stored in a public address and then distributed to Suter holders as an incentive to hold the Suter token. We will also match all of the above features to all other smart contract-enabled blockchains by building bridges that connect the Suterusu protocol to these blockchains.
January 21, 2022