By the TzSafe team
Securing ownership of assets is vital in the decentralized world. One of Marigold's missions is to help everyone in the Tezos ecosystem easily and securely manage their assets. Therefore, allow us to introduce TzSafe, one of the most secure ways to manage your assets.
ℹ️ TzSafe is Marigold's solution for multisig wallet to guard Tezos-related assets. We are pleased to announce that we launched Tzsafe on the ghostnet (https://ghostnet.tzsafe.marigold.dev/)! Please give it a try, and we would love to hear any feedback from you.
Why Multisig Wallet?
What's wrong with using my Tezos wallet to own my own assets?
You might wonder. In fact, the answer is: "NO, there is nothing wrong". Except, common wallets work on a single-signature setting. That means the wallet itself consists of a pair of a private key and a public key. Any transactions from a single-signature wallet need to be signed by that corresponding private key to ensure security—or to show the ultimate asset ownership.
A single-signature wallet grants you a perfect and secure solution to hold your asset. However, from the perspective of asset management, there are sadly some risks. For example:
Problem 1. The private key hasn't been well-preserved, in any case. That means you lose control of all your assets.
Problem 2. Even if the private key is well-preserved, you may want a way to strengthen the key, working similarly to F2A to prevent single-point failure.
Problem 3. In some cases, you want to share the ownership of the wallet with others. For instance, imagine you're working on a Dapp project, and you may want a few people to access a wallet. Therefore, you share the private key with them. One day, if one of them gets fired, the wallet is at risk of being compromised.
Here comes the idea of a multiple-signature wallet (or multisig wallet for short) that, contrary to the single-signature wallet, is managed by multiple pairs of public key and private key. Each pair of them represents one owner of the wallet. Each transaction through a wallet requires a certain proportion of approvals from the owners of that wallet. This effectively provides better security and management of ownership.
Technically, a multisig wallet is also known as an m of n wallet. m of n represents the threshold of the wallet, which means there are n owners or private keys, and it requires m signatures to perform any operations. To solve the problems above, respectively:
Solution 1. You would need an m of n wallet where n > 1. In this case, n is the number of backup keys. Imagine you have three backups in different places. If one of them is missing, you would still be able to access the wallet.
Solution 2. m ≥ 2 and n ≥ 2 can reduce the chance of single-point failure. For example, you have 2 of 2 wallets. If one of your keys was compromised, you would still be in a safe place. Because the wallet needs at least two signatures, any operation can't be performed without your signature.
Solution 3. m ≤ n is the solution for multiple parties to co-own the wallet. In most cases, you may want the majority's consent instead of everyone's so operations from the wallet can be moved agilely.
So what is TzSafe?
I see, so the TzSafe is a multisig wallet on Tezos?
Well, yes, and more. TzSafe itself is not just one multisig wallet. TzSafe consists of two parts, UI and a smart contract. The smart contract is a multisig wallet contract factory, which is written in cameligo. Thus, secure your assets on-chain. The UI mitigates the required knowledge of Tezos and enables users to easily interact with the contract. Advanced users can also originate and operate it by themselves. In other words, TzSafe provides a full solution to allow us to create and manage our own multisig wallets in a quick and safe way. To be more specific, TzSafe can be used for managing not only XTZ but also NFT and even executing Tezos contracts.
To secure your privacy, TzSafe doesn't store any of your private data. And for less-sensitive data, such as Tezos address alias, regular-used wallets, etc, they are stored only on your local browser. So it is perfectly safe to use.
If we look closely at TzSafe, TzSafe is a solution for gathering approvals on-chain. It means the proposed transactions and the approvals of owners will be stored on-chain. The most known concern of the on-chain solution is their financial cost. In Tezos, each transaction, however, is considered to be affordable for everyone. For example, the entire process of performing the simple XTZ transactions in TzSafe would cost much less than 1XTZ (~0.04XTZ for proposing, ~0.01 for approval, and ~0.09 for executing.) Furthermore, once the proposed transactions are successfully executed, TzSafe would release some contract storage space. For the failed transactions, you can retry them until the transactions are expired. The allocation contract storage space of expired transactions would be released as well. The advantage of the on-chain solution is that the order of proposing transactions doesn’t be restricted by the order of proposed transactions and the approval of the owner is transparent to everyone on-chain. It’s contrary to the off-chain solution. In order to prevent a re-play attack, the off-chain solution could either relies on an oracle or limit the order.
Early access with ghostnet
Click here to go to the proton of TzSafe on ghostnet. Follow the instruction on UI to create your first TzSafe wallet.
Once the wallet has been created, you may fund the wallet and transfer the assets.
Next, you can create a proposal, supporting a batch transaction. The transaction could be transferring XTZ, FA2 tokens and executing contracts. The created proposal will represent on the proposals page. You can either reject or sign the proposals along with trying to resolve them at the same time. If the proposals are resolved, you can see them in history.
If you want to change the setting, please go setting page.
If you have any trouble, we also provide a doc step by step to interact with TzSafe. Or, please reach us via contact.
We are dedicated to continually improving the user experience of our platform, and we are prioritizing the following topics:
- Improve the responsive version. To improve the user experience on mobile devices.
- Performance tuning. Users may now experience some latency while loading pages, the team is working to reduce the latency and provide a better experience.
- Supporting tickets. To traverse in layer 2 in the near future, this feature would be what you're looking for.
We'd like to acknowledge akaSwap providing testing data of NFT.
If you want to know more about Marigold, please follow us on social media (Twitter, Reddit, Linkedin)!