Summary
In The Graph’s Core R&D Call #13 we learn about the solution to dishonest Indexer POI spoof attacks, listen to updates on SemioticAI’s work on Graphism & Indexer allocation optimization, review the Epoch Block Oracle, and learn about ways the developer experience is improving for The Graph.
Topics Include:
- Graph Day & Graph Hack
- GIP-0030: Minimum Curation Amount for Indexing Rewards Eligibility
- Core R&D 12 Recap
- Addressing the POI Spoof Attack (GIP-0030)
- Semiotic AI Updates
- Workshop on Incentive Mechanism Validation
- Feedback
- Graphsim
- Indexer Allocation Optimization
- Next Steps
- Workshop on Incentive Mechanism Validation
- Epoch Block Oracle
- Core R&D 11 Recap
- Developer Experience of Graph Node
- Graph Client
- Hardhat Plugin
Graph Day & Graph Hack (01:00)
Graph Day and Graph Hack is under a month away! Wave 2 tickets are still on sale! Experience panels and talks from prominent web3 community members, food, drinks, an ethereal after party with a live DJ, and Exclusive Graph Day swag and merch. Graph Hack, a three-day hackathon, will take place immediately after Graph Day as the web3 community unites and builds web3 together.
GIP-0030: Minimum Curation Amount for Indexing Rewards Eligibility (03:47)
Recap of PRYSM Groups work from Core Devs Meeting #12
Prysm Group is an economic consulting firm that specialized in blockchain technology. They have provided an economic map of the protocol and have done an economic analysis of the viability of an attack identified in a technical audit pre-launch.
Spoof Attack Analysis
Attack Outline
Attacker opens an allocation and self-delegates up to the max delegation ratio to minimize slashing risks.
The attacker submits an invalid POI to claim indexing rewards without providing service.
The attacker diverts indexing rewards to the fictitious delegator wallet so they can keep indexing rewards even when their PIO is invalidated.
Incentives
Spoofing attacks may be profitable because attackers may claim indexing rewards without incurring operational costs (face slashing risks)
Addressing the POI Spoof Attack (GIP-0030)
To protect the protocol against Indexer POI spoofing attacks a new protocol parameter, minimum_signal, will be introduced. If you increase the minimum curation signal, the indexing rewards will be higher, and more Indexers will enter the market and decrease profitability for dishonest indexers. A minimum curation signal of $500 GRT will be required to signal on a subgraph. This would devalue any incentives to Index a subgraph dishonestly.
This may seem like a small outcome for a year’s worth of analysis, but the economic reports generated by PRYSM Group have many valuable pieces of information that will benefit future work.
Question
When this change is implemented, will there be UX changes to make subgraph developers aware of the $500 threshold if they want Indexing services from the get-go?
- Jim Cousins | Indexer at The Graph
Response
Semiotic AI Updates (19:00)
Workshop On Incentive Mechanism Validation (DevConnect Update)
Semiotic AI hosted a workshop at DevConnect in Amsterdam focused on the topic of Incentive Mechanism Validation.
Feedback
- Great networking event, too many talks
- Many interesting case-studies, wanted more actional information
- There was a request for new tools to enable mechanism research
Graphsim
SemioticAI is developing a tool called Graphsim that would enable developers and researchers to work within a self-contained, locally run version of the protocol. Graphsim is in the early stages of development, with support for indexer-agent as the focus for the first use case.
Indexer Allocation Optimization
SemioticAI is developing another tool that gives Indexers the ability to allocate optimally in respect to indexing rewards. The tool takes the Indexer’s allocated signal on a particular subgraph, and the signal of other Indexers on the subgraph to find the optimal allocation strategy. This tool is only considering indexing reward optimization while excluding things like gas cost etc. Currently, the tool can be interacted with by utilizing the Julia repo.
Next Steps
- Add front-end GUI via the action queue
- Incorporate more tunable indexer preferences
- Explicitly optimize over gas costs
- Option to freeze certain allocations such that they won’t be considered in the optimization process
- Optimize over time
Epoch Block Oracle (45:07)
When indexing Ethereum subgraphs there is a simple rule that Indexers must use the first block of the epoch when they close their allocation to receive indexing rewards. This ensures that Indexers are indexing with a certain amount of recency and enables POIs to be cross checked across the network. As multi-chain indexing becomes a reality, it is unclear which block they should use to close their allocations, due to differing block speeds.
The Epoch Block Oracle would fix this problem by utilizing DataEdge (GIP–025). DataEdge is a gas efficient way to bridge data into subgraphs, which can also include when an epoch block occurs. The Epoch Block Oracle would update the subgraph with the applicable blocks for allocation closures across networks.
DevX Focus of Graph Node (48:20)
The Graph Client Tools
The Graph Client is a package containing tools that improves the developer experience, type safety and how users execute GraphQL. It features:
- Client-side subgraph composition
- Fallback to multiple indexers/sources/hosted services
- Automatic/Manual source picking strategy
- Agnostic core with the ability to run integrate with any GraphQL client
It currently features two modes:
Standalone Mode
Users use the graph client directly. Minimal infrastructure required.
With any GraphQL Client
Adds a compatibility layer for all other popular GraphQL clients.
Hardhat Plugin
Adam Fuller provided a demo of The Graph’s hardhat plugin that is in development to give an idea of what developers can expect!
Stay Tuned!
Join us next month for The Graph’s Core R&D Call #14!
Keep up to date by joining discussions in the forum, following The Graph on Twitter or joining the Discord server.
Watch the full recording of Core Devs meeting #14 on YouTube!