SJIP 12: Duplication Considerations #12
Replies: 5 comments 9 replies
-
This sounds like oversimplifying it. For example:
Are they different or the same? This might not be limited to just access control or any specific categories. |
Beta Was this translation helpful? Give feedback.
-
I'd add cross-chain reentrancy |
Beta Was this translation helpful? Give feedback.
-
solodit requires an account, and watsons shouldn't have to have an account at a separate site to understand the rules |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Not necessarily, it's often the case that the same root cause leads to different attack paths. The line "The exception to this would be if underlying code implementations OR impact OR the fixes are different, then they can be treated separately" says it "can be treated separately" so it depends on case-by-case basis and the contest of the issue and the protocol. I believe first and foremost, we should use the groups that have the same root cause, and only in the edge cases, we can use this line ("The exception to this would be...") if it's appropriate (does this sentence makes sense?). |
Beta Was this translation helpful? Give feedback.
-
Description
Clarify what the considerations for duplication are based on
Judging Guidelines PR
https://github.com/sherlock-protocol/sherlock-v2-docs/pull/36/files
Rationale
The rules for duplication confuse what consideration for duplicates (reentrancy, slippage protection, front-running) is based on.
Hence, the goal of this SJIP is to clarify these considerations and prevent situations of incorrect duplications.
For reentrancy, I believe it's best to group duplication based on the following categories:
Front-running is different, cause there are no types like for reentrancy. The grouping is based on the fix for the issue. The first group can be fixed by slippage protection and it's quite straightforward. The second group can be fixed by a commit-reveal mechanism. This means the attacker (front-runner) won't see the transaction until it executes. For example, in an issue when the admin wants to send rewards to protocol's stakers, the attacker front-runs, stakes and receives the reward, although they're staking only for one block. With the commit-reveal mechanism, the admin's transaction won't be seen until it goes through leaving no opportunity for front-running (note: it doesn't mean it has to be necessarily mitigated with commit-reveal mechanism, and each protocol may have a better fix depending on its implementation).
Another change is about the following line:
It brings confusion as to whether all of these factors have to be different or only one of them. Therefore, I propose the following change:
I believe it gives us flexibility for edge cases, e.g. when the root cause is the same, but attack paths lead to different impacts and should be fixed differently.
Relevant Issue Discussions
#7 (comment)
#7 (comment)
#7 (comment)
Beta Was this translation helpful? Give feedback.
All reactions