Modular Permissions
Safety and Convenience
Last updated
Safety and Convenience
Last updated
Blessnet is a chain for doing things, with an emphasis on doing things cheaply, conveniently and confidently. Abstracting your interactions away from Value Bearing Chains plays a big part in this. Blessnet Modular Permissions further enhances this architecture.
Delegating certain permissions from one address to another address is not a new concept. The purpose is to narrowly scope what another address can do on behalf of your ‘main’ address. This allows you to interact using this other, less valuable address, but only in the ways you define.
In all current implementations of this you need to have this second address before you begin. For example, you have your main vault address and a hot wallet in a browser extension. Delegating from your vault to your hot wallet is straightforward, but you still have to have your hot wallet ready to go.
Blessnet reimagines this process as something as intuitive as using a game controller. In Blessnet your main address is the console, and you can create multiple controllers for that console, each with a set of permissions.
For example, let’s say we have our vault address, which we will call vault.eth. This address, vault.eth, is now our Modular Permissions console. We then create a controller and assign this permission to vote on behalf of vault.eth.
The implementation of this controller is a smart wallet, with a new private key and a new public address. At the same time Blessnet will prompt you for a transaction that confirms the delegation of voting permissions from your console (vault.eth) to your new controller.
You can now use your new controller to take part in votes on Blessnet on behalf of vault.eth. You never need use vault.eth for these votes, keeping it and the assets it holds safe. And as the controller is a smart wallet, you can submit your transaction directly from the app. If for some reason your controller is compromised you can simply detach it from your console, and if needed create a new controller.
The diagram below summarises this example.