I was was interested in seeing how others perceived this situation, before throwing my own hat in the ring. I was also hoping we’d get to discuss this topic this at greater length on the latest IOH, but we ran short on time.
This ‘action’ was partly enabled via a relatively low amount of activity (or moreso ‘weight’) in the Curation market. The gains to be had by working the balance of these markets to your advantage, potentially in any role of the protocol, are not something we can account for without intervention. For now, i guess.
So since we’re “not there yet”, i guess these discussions need to happen and community-led solutions are required in lieu of anything protocol-driven.
My 2c
As we know, Indexers should generally ‘follow signal’. But in this case, the Indexer was following his own signal. This is not inherently bad nor malicious, as an Indexer can also act as a Curator if he wishes.
But in this case, the launching of his own subs (in some of the cases listed) in a manner that had seemingly no purpose other than personal advantage, adds a different tone to the situation. There also seemed to be no obvious motives leant towards something more ‘whitehat’. Such as pushing a boundary to set a governance precedence in a positive manner, since this behaviour was conducted over a pretty long-term and only ceased once it was highlighted by this thread.
There are some similarities between this case and a prior dispute:
Someone could have allocated on top of SunTzu, and in some cases did, and then the signal was removed by SunTzu. Minato would have likely also acted in the same manner, had someone allocated on top of him and removed the advantages he sought.
The only difference that i see, is that SunTzu was not using the (incorrect) community perception of “no delegating to a broken sub” to his advantage. Though, since that perception was already cleared up by the above dispuite, how could he?
Therefore if we ignore that detail, it’s very close to being the same situation.
*
But maybe someone disagrees with my take on that comparison?
Ergo - If you read the conclusions made by the Arbitration Council in the other dispute, i would imagine they would lean in a very similar direction as they did there:
As for the larger pattern of behavior, it is confirmed that there was a coordinated pattern of behavior from the disputed indexer to create, deploy, curate on, index, and collect indexing rewards on these subgraphs. Based on the data available, the investigators could not find strong reason to believe this action was in any way beneficial to the goals of the network. As such the behavior can be characterized as being purely driven by
a goal of exploiting the failed subgraphs exception
… the ending there, could be substituted by what was essentially the overall end-goal in both of these examples: Profit
With a reactive Indexer set, my first instinct was that these opportunities would have mostly been short-lived.
Extraction
In this situation, his advantage acts as a kind of ‘tax’ on the Indexer community via rewards absorption. The size of this tax and advantage depending partly on the size of the Indexer, other Indexers reacting to signal, etc etc.
And In my opinion, the ‘size’ of the extraction taken off the plate of other Indexers should play in to how severe these actions should be looked upon. At least to some degree.
It’d be a lot of effort to go back and check the historical network stats, total staked, etc. And try to calculate a more ‘fair’ average picture of things. But since many of the most important metrics didn’t change too drastically, i decided to just base a rough calculation off the current network stats, using data from GraphScan:
With an Indexer of his size, taking a more average share of income - as in, not underperforming, or overperforming - i would calculate that in 5 months, he would have most likely made somewhere in the realm of just over 600k GRT
*Note that in the past 5 months, he gained around 2.1mil in delegations/stake total, so if anything, the average income would have tilted **lower** if anything, by anywhere up to ~15%.
Source:
- StakeMachine
Now, if we go back and check his actual total earnings from allocations closed in the past 5 months (via GraphScan/CSV export), his total revenue was actually around: 830k GRT
*I invite anyone to calculate this for themselves and correct any errors i made in my napkin math, of course.
Beyond the example above, it’s hard to say exactly how much versus ‘average’ he would have made, if he had simply acted in an engaged manner and taken other opportunities on under-allocated subs.
"Bad" Actions
This situation aside, i also wanted to briefly mention another point.
If we’re to agree on boundaries for behaviour based on how things look ‘ethically’ and what is and isn’t OK on the network, i think this shouldn’t be the only instance that lands under the spotlight. And i have to wonder - is this example only noticed or highlighted so much because it concerns Indexers more directly as a group?
And i don’t say that in some self-accusation of us having self-serving optics. I say it that to point out that, as a group, on average, Indexers are likely the most engaged, and possibly the most vocal or proactive participant in the network.
Therefore, things that affect us more directly, maybe catch our eye more, get the most engagement, etc. Because the actions that directly impact our role, are what we’re most aware of, and naturally what we’re most concerned about.
But if we’re going to set boundaries and choose to police things other than ‘bad POIs’, then we should also cast the net over things that maybe affect us less, and other participants more. The most obvious example being - Sandwich Attacks
*For anyone unaware - this is when an Indexer changes cuts to their own benefit, just before closing allocations, and then revert to more attractive cuts afterwards. Baiting in delegations, which will never receive the APY advertised by the Indexer.
These instances have happened a lot, often by repeat offenders, to the ire of many Delegators. If an Indexer runs for the max allocation period, they could get away with this for a minimum of 2 months. As Indexers, we’re not locked in to these bad positions via the moves of ‘bad actors’ for 28 days, but instead, 1 epoch (~1 day).
During these periods, bad actors may take some, most, or even all of the rewards from their Delegators. Some Delegators may be unaware of this for even longer. But of course, at some point, part of this responsibility is theirs to own.
We’ve fostered a habit of saying “be careful who you delegate to”, which does have merit in many ways. But if we’re going to consider penalizing Indexers for actions that impact our own rewards, and policing what’s acceptable - as a community - shouldn’t we also care about bad actors that take from other participants?
Every bad action affects the perception of Indexers as a group to a degree. And maybe even the project itself, especially the mechanisms tied to participation within protocol. We should be concerned about any clear-cut bad action no matter which group/role it hinders from honest participation.
And i direct all of the above to any participant, not only Indexers. If you have concerns, air them (as @KonstantinRM did here). Or, if you’re more confident, dispute them.
Yes, this takes 10k GRT to initiate. And this is only my opinion, but despite the Arbitration system moving much slower than i think we’d all like, i personally have faith in the members there to not act unreasonably (regarding that deposit) if presented with a good-faith dispute that highlights a legitimate or unprecedented concern.
Final Note
I have seen SunTzu as a great participant ever since testnet, and i was a little disappointed to see this from him. I was leaning towards appealing others to consider his past actions heavily, if any dispute or action was going to be taken against him by someone.
But after seeing the amount that seems to have been extracted and the length of time over which these actions were taken, a line for goodwill being considered by most people, may have been crossed at some point.
*Edit - Fixed a calculation error i made by not excluding by date range (too used to Etherscan, woops!)