Skip to content

[Node Issue]: Incorrect Validator Reward Payouts #234

@sbond14

Description

@sbond14

Contact Details

[email protected]

What happened?

Foundry recently had a large delegation to our validator. We noticed that the delegator instantly started earning rewards, even though the stake weight of the pool had not yet increased. It seems like the new stake doesn’t become active for a few epochs, but instantly starts earning a share of the rewards (which in turn decreases rewards for all other delegators).

You can see the delegator staked in epoch 2657, and instantly earned rewards during that epoch. https://nearscope.net/delegator/4855ba0899d235ab059689db02686e6574cf1a70d10bbc77ed0d82d1d9b07b16/tab/rewards

However, our validator didn't see an increase in total rewards until epoch 2660. https://nearscope.net/validator/foundry.poolv1.near/tab/rewards

This is a massive problem as the delegators are 2 separate parties. It seems like a malicious delegator could abuse this mechanism to constantly take rewards from other innocent delegators.

What is even more confusing is that the new delegator earned rewards in epoch 2657 and 2658, but no other delegator saw decreased rewards until epochs 2659 and 2660 (and all delegators including the new one saw decreased rewards during those 2 epochs).

  • Where are the extra rewards during 2657 and 2658 coming from?
  • Why were rewards decreased in 2660 if the new stake was active and earning rewards at that point?
  • Why does the pool size increase in epoch 2658 but rewards don't increase until epoch 2660?

Version

1.40.0

Node type

RPC (Default)

Are you a validator?

  • I am a validator.

Relevant log output

Not relevant

Node head info

Not relevant

Node upgrade history

Not relevant

DB reset history

Not relevant

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions