Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add 2h minimum liquidation age #97

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jagerman
Copy link
Member

This adds a 2-hour minimum age before a node may be liquidated. This matches the 2h decommission credit all nodes start with (and so, in effect, we should always expect any legitimate deregistration to be at least 2h after adding the BLS key).

This buffer is needed to avoid a potential sort of "front-running" deregistration attack where a malicious entity could observe an incoming registration, obtain a liquidation signature from the Oxen SN network before that registration hits the network, and then immediately submit to the liquidation to effectively block new registrations from the network (or, at least, only allow them momentarily).

A considered alternative to this approach was to have oxend only sign liquidation requests that are in the recently-removed-nodes list, and while that work mitigate the attack above, it would introduce a new problem where a registration that oxend failed to process for whatever reason (e.g. invalid ed25519 key, or some other unforseen error) would result in a BLS registration in the contract that was permanently unremovable.

This adds a 2-hour minimum age before a node may be liquidated.  This
matches the 2h decommission credit all nodes start with (and so, in
effect, we should always expect any legitimate deregistration to be *at
least* 2h after adding the BLS key).

This buffer is needed to avoid a potential sort of "front-running"
deregistration attack where a malicious entity could observe an incoming
registration, obtain a liquidation signature from the Oxen SN network
before that registration hits the network, and then immediately submit
to the liquidation to effective block new registrations from the
network.

A considered alternative to this approach was to have oxend only sign
liquidation requests that are in the recently-removed-nodes list, and
while that work mitigate the attack above, it would introduce a new
problem where a registration that oxend failed to process for whatever
reason (e.g. invalid ed25519 key, or some other unforseen error) would
result in a BLS registration in the contract that was permanently
unremovable.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant