dwallet-labs / dwallet-network

dWallet Network, a composable modular signature network that is the home of dWallets. A dWallet is a noncollusive and massively decentralized signing mechanism, used as a building block by builders on other networks to add native multi-chain interoperability to any smart contract.
https://docs.dwallet.io
Other
34 stars 32 forks source link

Verify the blockchain DKG output before signing on it, Second transfer #191

Closed ItayLevyOfficial closed 2 months ago

ItayLevyOfficial commented 2 months ago

_some new user of the dWallet (not the original owner that did DKG) can transfer/share the dWallet, so when they will create the EncryptedUserShare they should sign that if they believe it (even though they didn't see the DKG output themselves, they trusted the old owner that signed over it, creating a chain of signatures that should date back to the owner that created the DKG). Potentially, we can even verify this entire chain, dating back to the original user. For now, perhaps it is sufficient that when we "accept" a user-share, we verify the signature, and then sign over the same DKG output - i.e. we should add an accept_usershare() TS function that takes an EncryptedUserShare that was encrypted to us, verifies the signature, and then encrypts it to our own encryption key with our own signature. Later, when we want to share it with someone else, we don't add a new signature - we fetch our previous signature from chain and place it there, mentioned here

ItayLevyOfficial commented 2 months ago

moved to https://github.com/dwallet-labs/dwallet-network/issues/175