Just wanted to circle back here to share an update on this sRFC workflow!
@jordaaash and I have been working on an implementation for exactly this, with an on-chain program.
I’ve documented how this program works in the repository’s README, but the TL/DR is:
- This program does exactly what @valentin suggested: stores public keys associated with encryption
- It makes use of a “Keystore” PDA mapped to a particular wallet address
- It’s specifically tailored to implement serialization/deserialization in the off-chain client, so that the program can remain frozen while new encryption algorithms may be added in the future
- It’s inception should go hand-in-hand with a robust review process - akin to sRFCs or simply Pull Requests - to add support for new encryption algorithms
At the time of writing this reply, the encryption algorithms depicted in the client are for demonstration purposes only, and any associated configurations may look different than this spec in production.
The implementation is also in active development and subject to change.
Would love anyone’s feedback on the code, though!!