This has many benefits, I was a bit hesitant in the beginning about security side of things, but after reading about use cases and motivation, I think it can be implemented securely without losing any of the benefits.
Some benefits I see:
-
This will be great for developers: Capability model was too confusing to many of the newcomer developers, actually it was even complex for all ( me included )
-
Can provide great isolation between dapps.
-
Not requiring signing and allowing dapp to run action on behalf of the user without interaction is great UX. This can even make FCL obsolete.
-
it is great for onboarding but also makes dapps to have no excuse to have walled gardens anymore, so this has great benefit for users.
-
Wallets even auto create temp accounts when a dapp connected, link to main account, and add dapps public key ( so dapp and wallet can use the account at the same time )
-
Another good benefit is: now there is a misconception about
each account is a userandeach tx is user interacted, I think this will help to clear that misconception. -
If we can somehow tag this child accounts to dapps, I think it can be a valuable metric about dapp usage etc.
I think here “Irrevocable access” can be also equally true. If dapp ( let’s say TopShot) will onboard me to a child account, I would like my parent account ( let’s say blocto ) should have irrevocable access to that child account ( unless I want to break the relation )
In general I am really excited about things we can do with this child accounts.