Triumph of Integrity: How One Inspector Is Safeguarding The Graph

The Graph, Insights By Nov 06, 2024 No Comments
TL;DR: An inspector in The Graph ecosystem discovered and reported an indexer submitting incorrect Proof of Indexing (POI) for unsynced subgraphs. The arbitration process resulted in a slashing penalty for the disputed indexer. This case highlights the crucial role of vigilant community members in maintaining the reliability and fairness of The Graph Network.

Imagine uncovering faulty behavior in a decentralized network that many depend on. That’s what one indexer did, sparking an important dispute in The Graph ecosystem.

For this article, we contacted a key figure in the ecosystem: an indexer who also plays the role of “fisherman“—an inspector ensuring the integrity of the network. Through this interview, we gain insight into this specific fisherman’s motivations and methods, their experience of the process, and details of the dispute.

Fisherman: A role anyone can take on within The Graph Network. The role monitors the accuracy of data served by indexers and can dispute incorrect query responses or proof of indexing (POI), helping maintain data integrity.

Recently, this fisherman filed a dispute against another indexer who was found in violation, ultimately leading to a slashing penalty.

Slashing: Indexers must maintain a 100k GRT self-stake. Incorrect POI or serving inaccurate data can lead to slashing: 50% of rewards are burned, and 2.5% of self-stake is slashed, with half of that also burned. This ensures incentives align with network security.

For those who may not be familiar with The Graph, please read Tokenomics of The Graph Network and The Graph Network In Depth – Part 2.

In single attestation disputes, Fishermen submit disputes along with a bond, as well as an attestation signed by an Indexer. If the Indexer is found to have attested to an incorrect query response, the fisherman receives a portion of the slashed amount as a reward. Conversely, the fisherman’s bond is forfeit if the dispute is unsuccessful.
–Excerpt from The Graph Network In Depth - Part 2

Background of the fisherman

Tell us a bit about yourself and your role in The Graph ecosystem.

I’m an indexer and have been for several years. I manage my own indexer and also look out for other indexers for any complications.

How did you first get involved with The Graph, and what drew you to participate as an indexer or inspector?

An indexer (who wishes to remain anonymous) introduced me to The Graph ecosystem. My interest grew stronger as I learned more about the protocol, and I eventually became an indexer myself. As for being an inspector, it’s driven by my passion to ensure things run smoothly.

Motivation to find issues

What motivates you to actively look for issues in the network?

As someone with a background in data analytics and indexing, the journey is totally not easy. I’m motivated to find issues because there are participants who might submit illegitimate data or fail to genuinely contribute to the network. This is unacceptable to me.

How do you see your role in helping ensure the protocol runs smoothly?

I don’t see myself as having an official role in this. I’m doing it entirely of my own free will. In other words, I’m simply looking out for everyone who is doing things the right way.

Methods for finding issues

Can you share how you typically identify potential issues in the network? Do you use any specific tools, automation, or manual methods to detect inconsistencies?

I use the query cross-checking tool provided by the Edge & Node team. Additionally, I rely on manual methods to spot obvious irregularities.

In this particular incident, how did you first become aware of the issue with the POIs submitted for epochs 630 and 631?

That particular subgraph had been around for quite some time, and many indexers, including reputable ones, were struggling to sync it. I had been monitoring this subgraph for a while when I noticed that the disputed indexer’s progress appeared on the Explorer as unsynced, yet they closed the allocation.

Details of the dispute

Were there any patterns or data points that helped you realize something was off?

For starters, the Explorer is quite useful for monitoring indexers’ sync progress. Additionally, I look out for discrepancies in the POI.

Motivation to pursue the dispute

Once you discovered the issue, what motivated you to pursue an official dispute? Why did you feel it was important to raise this with arbitrators?

As previously noted, being a good indexer is not an easy task, and I’m sure many reputable indexers would agree. Imagine everyone putting in hard work while others reap the rewards illegally. This is why I felt it was important to bring the issue to the arbitrators.

What do you think are the broader implications of addressing issues like this for The Graph community?

By ensuring a healthy network protocol, quick and accurate data serving—I believe this is the goal of every indexer.

Arbitration process experience

The arbitration process for The Graph protocol is overseen by arbitrators, who play a crucial role in ensuring the integrity of the network. The arbitrators are responsible for deciding the outcome of disputes involving indexers, typically related to indexing and query faults.

The arbitrators’ role is outlined in the Arbitration Charter, which provides norms and guidelines for decision-making. This charter ensures that the arbitrator’s actions are transparent, fair, and aimed at maintaining the utility and reliability of The Graph Network.

How was your experience going through the arbitration process? Would you describe it as smooth, challenging, or somewhere in between?

I would say it was somewhere in between. The process itself was easy, but the challenge was the time it took to settle the dispute, especially with the disputed closed allocation date approaching after 56 epochs. However, I’m confident that the arbitration team is doing their best to handle matters as swiftly as possible.

What lessons have you learned from this process that you would share with others who may be considering raising similar disputes?

Do things right and correct any wrongs. Ensure you conduct a thorough investigation, and don’t hesitate to ask more reputable indexers for confirmation. Trust me, they are all very helpful.

Comfort level with public discussion

Which parts of this dispute do you feel are important to share with the community, and are there any aspects you’d prefer to keep private?

It’s important to keep your identity as a fisherman private. You don’t want to draw unnecessary attention to your indexer, especially if you are one yourself.

Arbitration outcome

Following the investigation and data provided by both the inspector and the disputed indexer, the arbitrators resolved to slash one of the disputes and draw the other. They found that the disputed indexer had manually closed allocations for unsynced subgraphs using an arbitrary POI, rather than seeking alternative methods or guidance from the community.

The result was a slashing penalty of 38,631.601 GRT, while the indexer was found to have made 11,527.555 GRT in rewards from the allocations. In the end, arbitrators decided on a final penalty of 27,104.04 GRT.

The arbitrators encourage indexers to seek help from the community when encountering issues, as valid actions such as closing with 0x0 POI could have prevented this outcome.

Final thoughts

Ensuring the integrity of The Graph’s ecosystem is a collective responsibility. If you encounter suspicious behavior or inconsistencies in the network, don’t hesitate to raise your concerns. The community and arbitration teams are here to help maintain fairness and reliability. Together, we can keep The Graph strong and resilient.

Trust is built on integrity, and integrity is maintained by the willingness to hold each other accountable.

Unknown

If you’d like to contribute to ensuring network integrity or have questions, join the conversation on The Graph’s Forum or Discord channel. This is also the place to read up on future dispute information. Your vigilance makes a difference!

💡 This article answers questions like:
- What does a fisherman do on The Graph Network?
- What motivates a fisherman to watch for indexing issues?
- What tools or methods does a fisherman use to find indexing issues?
- How does the arbitration process work?
- What is a dispute and how is the outcome decided?
- What do arbitrators do on The Graph Network?
Author

I am a dedicated member of the Graph Advocates DAO and proud to be a part of the Graphtronauts community. As a passionate crypto investor and enthusiast, I have delved into the world of decentralized technologies, with a strong focus on The Graph protocol. My journey includes writing insightful blogs for Graphtronauts and contributing to the development of subgraph documentation for various projects within The Graph ecosystem. Most recently, I have taken on the role of a Pinax technical writer, further expanding my commitment to advancing the adoption and understanding of blockchain and Graph-based technologies. /n https://twitter.com/PaulBarba12 https://github.com/PaulieB14 https://hey.xyz/u/paulieb https://medium.com/@paulieb.eth/about

No Comments

Leave a comment

Your email address will not be published. Required fields are marked *