-
Notifications
You must be signed in to change notification settings - Fork 81
Introduced authorization decrease change period parameter to the beacon #2960
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
Conversation
This value protect against malicious operators who manipulate their weight by overwriting authorization decrease request, and lowering or increasing their eligible stake this way. Authorization decrease change period is the time period before the authorization decrease delay end, during which the authorization decrease request can be overwritten. When the request is overwritten, the authorization decrease delay is reset. For example, if `authorizationDecraseChangePeriod` is set to 4 days, `authorizationDecreaseDelay` is set to 14 days, and someone requested authorization decrease, it means they can not request another decrease for the first 10 days. After 10 days pass, they can request again and overwrite the previous authorization decrease request. The delay time will reset for them and they will have to wait another 10 days to alter it and 14 days to approve it. If set to a value equal to `authorizationDecreaseDelay, it means that authorization decrease request can be always overwritten. If set to zero, it means authorization decrease request can not be overwritten until the delay end, and one needs to wait for the entire authorization decrease delay to approve their decrease or to alter it. (1) authorization decrease requested timestamp (2) from this moment authorization decrease request can be overwritten (3) from this moment authorization decrease request can be approved, assuming it was NOT overwritten in (2) (1) (2) (3) --x------------------------------x--------------------------x----> | \________________________/ | authorizationDecreaseChangePeriod \______________________________________________________/ authorizationDecreaseDelay
b55e656
to
cd5f0da
Compare
#2959 got merged so I am undrafting this one |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left non-blocking comments that can be taken care of in a follow-up.
// will have to wait another 10 days to alter it and 14 days to | ||
// approve it. | ||
// | ||
// This value protect against malicious operators who manipulate |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// This value protect against malicious operators who manipulate | |
// This value protects against malicious operators who manipulate |
decreasingBy, | ||
decreasingAt | ||
); | ||
AuthorizationDecrease storage decreaseRequest = self.pendingDecreases[ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AuthorizationDecrease storage decreaseRequest = self.pendingDecreases[ | |
AuthorizationDecrease storage pendingDecrease = self.pendingDecreases[ |
).to.be.equal(deauthorizingSecond) | ||
}) | ||
|
||
context("when delay passed", () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we add one more test under "when change period is equal delay"
to cover a case where the requestAuthorizationDecrease
is called without any increaseTime
?
}) | ||
}) | ||
|
||
context("when change period is zero", () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we have two test cases under "when change period is zero"
:
requestAuthorizationDecrease
is called right away without any time increaserequestAuthorizationDecrease
is called after the delay period
Depends on #2959See threshold-network/solidity-contracts#99
Introduced authorization decrease change period parameter to the beacon
This value protect against malicious operators who manipulate
their weight by overwriting authorization decrease request, and
lowering or increasing their eligible stake this way.
Authorization decrease change period is the time period before the authorization
decrease delay end, during which the authorization decrease request can be
overwritten.
When the request is overwritten, the authorization decrease delay is
reset.
For example, if
authorizationDecraseChangePeriod
is set to 4days,
authorizationDecreaseDelay
is set to 14 days, and someonerequested authorization decrease, it means they can not
request another decrease for the first 10 days. After 10 days pass,
they can request again and overwrite the previous authorization
decrease request. The delay time will reset for them and they
will have to wait another 10 days to alter it and 14 days to
approve it.
If set to a value equal to `authorizationDecreaseDelay, it means
that authorization decrease request can be always overwritten.
If set to zero, it means authorization decrease request can not
be overwritten until the delay end, and one needs to wait for the entire
authorization decrease delay to approve their decrease or to alter it.