Open fybx opened 2 months ago
According to me, the workflow would be: 1) The user creates a ZKL wallet 2) The user uses his Solana wallet to register his ZKL wallet's public key (pays transaction fees) (point one and point two can be merged into one transaction) 3) The user searches for whom to send in the registry and encrypts the file with the zkl-crypto module 4) Encrypted file is uploaded to Arweave (pays storage fees) 5) Link to the encrypted file is hashed again similar to point 3 6) The hashed link is transferred to User 2 over blockchain (pays tx fees) 7) User 2 checks his received files 8) Decrypts the hashed Arweave URL 9) Decrypts the cipher text in the Arweave 10) User 2 reads the file
zkl-pk => secp256k1 wallet public key zkl-sk => secp256k1 wallet private key
cc: @fybx
Question: How will we manage the user's zkl wallet, like where do we store their private key to encrypt/decrypt files, on demand?
I'm thinking about using wallet's internal encrypt()
and decrypt()
methods to store the userPrivateKey in localStorage.
Ethereum/Metamask: https://github.com/MetaMask/eth-sig-util I couldn't find something related to this with Phantom: https://github.com/orgs/phantom/discussions/252
we will connect the modules created so far and try to actually send a file between