-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Vision: Easily verifiable key-less accounts #283
Copy link
Copy link
Open
Labels
D1-mediumCan be fixed by a coder with good Rust knowledge but little knowledge of the codebase.Can be fixed by a coder with good Rust knowledge but little knowledge of the codebase.I5-enhancementAn additional feature request.An additional feature request.T1-FRAMEThis PR/Issue is related to core FRAME, the framework.This PR/Issue is related to core FRAME, the framework.
Metadata
Metadata
Assignees
Labels
D1-mediumCan be fixed by a coder with good Rust knowledge but little knowledge of the codebase.Can be fixed by a coder with good Rust knowledge but little knowledge of the codebase.I5-enhancementAn additional feature request.An additional feature request.T1-FRAMEThis PR/Issue is related to core FRAME, the framework.This PR/Issue is related to core FRAME, the framework.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Projects
StatusShow more project fields
Backlog
Some use cases require creating a key-less account that can be easily verified by a DApp.
Currently, the only way to do this with a substrate FRAME pallet is to spawn an anonymous proxy account and then remove all keys from the account. To prove that an account is key-less, one would need to verify both 1) that the account was created with a
proxy::Call::anonymousextrinsic and 2) that the account has no proxies in theproxy::Proxiesmap.Assuming a DApp wants to exclusively rely on node RPCs (and not any indexing services), looking up historical extrinsics just to check if accounts might be keyless is unreasonably expensive. Instead, it would be helpful if a DApp could perform perform just a few lookups to prove an account is keyless.
Some possible ideas:
allow_signatures, which could be set for an account at any time to make it key-less. This could also be added to the AccountInfo storage item. A signed extension would then need to be added in order to check if the origin is allowed to signIn either of the aforementioned ideas we should consider cleaning up key less account metadata once they are dusted. This can be done with the
OnAccountDeletedhook. However one might argue that if an account is set to not have a signature, it should forever not be able to have one, and thus should not be cleaned up