safe-global / safe-smart-account

Safe allows secure management of blockchain assets.
https://safe.global
GNU Lesser General Public License v3.0
1.87k stars 926 forks source link

Extend Safe With Additional Signing Schemes #698

Open nlordell opened 1 year ago

nlordell commented 1 year ago

Context / issue

It is currently possible to extend the Safe with additional signature schemes (such as P256 elliptic curve signatures) by deploying a signer contract per public key.

Proposed solution

Evaluate the required changes to the Safe account in order to support additional signing schemes internally without requiring a contract per public key. A possible solution would be for owners to not just be an address but also contain additional context.

While this proposal may not be the ideal way to implement it, it is worth investigating from a technical perspective how this could work, specifically geared towards the following two use-cases:

Additional Context

This is not expected to change in Safe v1.5 as it would require a major overhaul in the signing logic which is out of scope for v1.5

nlordell commented 11 months ago

ZeroDev does something interesting by pulling signing logic using DELEGATECALL. (https://github.com/zerodevapp/kernel)

For v1.5 contracts, however, we do not want to fundamentally change the signing logic.

rmeissner commented 10 months ago

This has been mentioned in https://forum.safe.global/t/safe-contract-v2/87 as Allow to set signature parser for an address. We should also evaluate associated risk (i.e. how to minimize the impact of a faulty/ malicious "validator")