Supersig — like multisig, but with superpowers 💥
Introducing to the substrate ecosystem, Supersig, a tool that has a few more very useful features for decentralised organising.
Status: Milestone 1 complete
Multisig is a rather powerful and pervasively used tool across the Substrate ecosystem. Almost every chain has the pallet. It allows a group of people to take decisions together over a shared balances and/or virtually any other type of call within the blockchain. Though, there are a few limitations, so we looked at something great and aimed to make it better.
Supersig, also allows a group of people to make decisions about an account, but they can also add and remove members with the same fixed address, as well as the ability to have simpleMajority instead of a fixed threshold (such as ⅔ or n/t). Though we named this product very similar to multsig it actually required a completely different implementation.
Multisig vs Supersig Key differences
- multisig once created has fixed members;
- supersig you can add and remove members.
Enums for voting
- multisig has fixed threshold such as 2/3 or 3/5, etc.
- But supersig has an enumerated threshold such as simpleMajority.
- Multisig addresses are usually made as a composite of the individual addresses that make it plus its threshold paramter, this is done in a deterministic way, that means the address can be created offline. This is the due to the magic of cryptographic hashing.
- For Supersig to have varying members, but the same address, we have create a native pallet. You can’t create a supersig offline, this is one of the trade-offs to using a Supersig. (In future versions we have plans to create a deterministic multisig backup).
Master (Superuser) vs Standard user
A supersig member can have a “Master” status, which has much more power than Standard status. Standard user counts for 1 vote, but when a Master votes, their vote counts for 50% of the entire vote. Therefore, they only need one more vote from someone else in order to get a simpleMajority regardless of how many members in the supersig.
You can have more than one Master member. In a some use cases, even everyone can be a Master, which means any two members can successfully pass something regardless of how many members there are of the supersig.
The use case for Master
The clear use case for master is if funds are really intended for 1 person, but there are other users there to sign the transaction for security, then 1 Masteruser with various signers, allows for convenience without giving up on security risk of trusted members becoming adversarial.
Supersig will first be launched by Kabocha parachain.
Because we are not using BoundedVec.
DepositPerByte: When you create a supersig account, a deposit is transferred from your account to the supersig account, and it is reserved. When you add a member more funds will be reserved to the supersig,
When you are submitting a call you are going to have some funds that are reserved in your account. And if the call is accepted then the reserve is taken.
Nathan Erudyx: Substrate Engineer
Timothee Debrouille: Code review, Engineering Support, RPC
Robin: RPC (Rest in peace)
Ramsey Ajram: Product manager, engineer.
Primary: Web 3 Foundation Grant
Secondary: Edgeware Grant (as part of the Edgeware X Web3 Joint Funding Programme)