-
Notifications
You must be signed in to change notification settings - Fork 14
17/WAKU-RLN-RELAY: File format to backup credentials? #543
Comments
Related issue: waku-org/nwaku#1238 |
When you talk about export/import you mean in encrypted form? Most likely we will use JSON to store credentials and all the crypto information (salt, hashes, etc.) and such JSON will always remain on disk in encrypted form (it's decrypted on the fly when creating proofs after submitting the password). This means that you cannot directly copy/paste this json to another implementation if you don't implement first the same crypto primitives. For this reason I was thinking if it's worth to implement a "credentials" module in rust rather than only in nim, that we can (hopefully) target to both C/WASM. However, I'm not sure this effort makes sense if we want to use a browser extension like https://github.com/Rate-Limiting-Nullifier/crypt-keeper to store credentials (that we might generate from a deterministic wallet signature). |
Note that in any proposed solution the RLN index should have a fixed size (e.g. in hex of either 4 or 8 bytes). The reason is that credentials will be encypted using the Web3 Secure standard which uses aes-ctr with ciphertext having same size as plaintext. If the RLN index is kept as decimal (more precisely the byte representation of the string expressing the index in decimal) then, for example, the index 99 might be distinguished from 100 by observing the extra byte. |
This issue has been addressed by waku-org/nwaku#1285 and its follow-up PR waku-org/nwaku#1466. The solution implements waku-org/nwaku#1238 (comment), that is a structured JSON keystore supporting multiple membership credentials encrypted with an implementation derived from nimbus keyfile module. However the above PRs do not address the update of the 17/WAKU-RLN-RELAY RFC as per the title of this issue. Such update is tracked in #571, where a new RFC detailing the new waku_keystore module is requested. As a result this issue can be closed. |
Problem
RLN credentials are composed of 3 elements:
We currently manipulate these information in string format:
0x
prefix)0x
prefix)This is not ideal as one needs to copy/backup 3 piece information when porting their credentials from one node to another (e.g. nwaku's chat2 to js-waku example rln-js).
Acceptance criteria
Details
Possible Solutions
Notes
The text was updated successfully, but these errors were encountered: