-
Notifications
You must be signed in to change notification settings - Fork 277
Closed
Labels
Ursula 👩🚀Effects the "Ursula" development areaEffects the "Ursula" development areaquestionThis is a questionThis is a question
Description
We have to come up with a new design of identity evidence that fulfills with, at least, the following requirements:
- Allows Bob (and other characters) to check that the Ursula node they want to validate belongs to a valid staker. This is currently not checked anywhere.
- Allows stakers to be smart contracts, which can't sign stuff. This is what Separate worker role from miner/staker #949 does, but we will probably need to rethink that approach.
Current approach (also followed by #996):
- Ursulas have a non-ETH signing key (the stamp), which is signed with the ETH key of the staker to produce her identity evidence. The stamp is used for signing network protocol messages.
- Ursulas inherit the address associated to the staker's ETH key (the checksum address) and use it as their ID. Ursulas don't need to control the staker's ETH key.
- When Bob validates an Ursula node, he only checks that the signature is valid, but he doesn't check that the staker's account is valid (e.g., it can be a signature from an arbitrary ETH account, with no tokens at all).
#949's approach:
- Ursulas have a stamp and an ETH key (which results in a worker address)
- Stakers have an ETH account (with or without keys, since they can be contracts).
MinersEscrowhas a list of the mapping between Ursulas' addresses and stakers' addresses.- This new scheme is not connected to the network-level identity information, so it's not consistent at all. The fact that this doesn't raise any problems is bad, since it shows that we weren't really validating anything with our current identity evidence approach.
New approach?
We can mix both approaches in something like this:
- Ursula does not need an ETH address, only her stamp, like it is now.
MinersEscrowhas a list of the mapping between Ursulas' stamps and stakers addresses.- Bob, Alice and other characters should always check with
MinersEscrowthat a node they have learnt about is actually connected to a staking miner. This means characters need access to an ETH node for this validation. - The ETH signature as proof of identity is not useful anymore, as even if it's valid, you have to check
MinersEscrow. - Ursula can continue using the staker's address as her
checksum_public_address, even if it's a contract.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Ursula 👩🚀Effects the "Ursula" development areaEffects the "Ursula" development areaquestionThis is a questionThis is a question