The Graph’s Research and Specifications Are Now Open Source

The Graph Protocol team hosted an event last month, Graph Day, which marked a number of exciting milestones for our project. Yaniv, our project lead, took the stage to launch our hosted service and Graph Explorer. Jannis, our tech lead, demonstrated just how easy it is to start building on The Graph, using a combination of our CLI, Subgraph APIs, and the Graph Explorer UI. Read Yaniv’s write-up on these announcements here.

Shortly after the event, Multicoin Capital announced their investment thesis on The Graph, and why they led our seed round last year.

As research lead, I also took the stage to present ongoing progress on our decentralized protocol design. In that talk, I announced our hybrid network specification, which is now open-source on Github under an MIT License!

It’s in a draft state, and we eagerly await comments and constructive feedback from our community. By working together, we can identify the mechanisms and interfaces which will best serve decentralized applications and our growing community of developers.

First, I want to share highlights of what I presented at Graph Day, what is covered in the hybrid network spec. Then, I explain what the community can expect from our research efforts in the future.

What was presented

My hour-long research talk was divided into three parts. The first two were foundational concepts for understanding what we are building:

  • Trust-minimized services (1:33)
  • Work token economics (15:48)

In the last section (26:33), I applied these concepts to present our specific protocol design — a decentralized query layer for Web3.

See the full talk here, or just take a look at the slides (Carl and Lucas, our designers, did a beautiful job!).

What was announced

At the end of the talk, I announced that we open-sourced our research repository on Github, containing our hybrid network specification.

When we introduced our project in July 2018, Yaniv mentioned that we would launch a local node, a hosted service, and then a fully decentralized network… so, what is the hybrid network?

The hybrid network is a version of our protocol design that bridges the gap between our hosted service, which is mostly centralized, and our fully decentralized protocol.

In its current form, it plays the role of a straw-man proposal, allowing us to begin prototyping and evaluating many of the mechanisms, economics, and architectural decisions of the protocol. It also lets us incorporate feedback from the community into our ongoing research.

Importantly, several design choices in the protocol have been deferred, opting instead for centralized components which may be swapped out for decentralized alternatives in the future. Things such as dispute resolution, governance, name registration, just to name a few.

This gives us more time to evaluate various libraries, mechanisms, and primitives more thoroughly. Many of these are still nascent and have only recently reached a level of maturity where they may be assessed empirically, while others are not even to that point. Using this hybrid approach means that we remain agile and flexible.

That being said, the hybrid network is a huge step toward full decentralization — it defines the interfaces and mechanisms, allowing anyone running an Indexing Node to participate in the network by indexing subgraphs and responding to queries, in exchange for fees.

Also in the repo is the original white paper that we used, alongside a working demo, to raise funding at the beginning of last year. We no longer consider it a source of truth for our protocol design, but it’s a fun look into our early vision for The Graph and to see how our research and protocol design has evolved since then!

What to expect in the future

Our philosophy at The Graph has been to solve real problems for our users (dApp developers) as quickly as possible and decentralize over time, while keeping the quality bar high. For us, that means that dApps leveraging The Graph to build on Ethereum and IPFS should always be able to offer consumer-grade performance to their users, which we think is essential to accelerating adoption of the decentralized web.

We believe that for layer 1 protocols, it makes perfect sense to decentralize from day one and pursue performance and scalability improvements in a conservative manner over time, as Ethereum has done. For layer 2, however, we believe there’s a tactical opportunity in taking an opposite, and complementary, approach.

That being said, we know that many of our users are only building on us because they believe in our path to decentralization and that this engenders a level trust from our users — a responsibility which we do not take lightly.

To continue our path to decentralization, we have parallel research and product engineering teams. The research team focuses on our long-term decentralized protocol design, while the engineering team executes against shorter term product milestones, such a launching the open-source Graph Node and the hosted service. We gave equal time to product and research at Graph Day because we want our users to know not only what we are developing day-to-day but to understand where we are headed in the long term.

To affirm our commitment to openness, the first thing we shipped last year was a fully open-source implementation of an Indexing and Query Node for Ethereum and IPFS. And, it’s why we feel that releasing a 50+ page specification is as exciting of a milestone to highlight as shipping a product 😀.

So in this upcoming year, we will continue to build on this research momentum and our commitment to full decentralization. We’ll create a proof of concept of the hybrid network and incorporate learnings from this effort back into the specification.

In parallel, we’ll continue our research effort on the fully decentralized protocol. I presented the above slide at Graph Day with just a handful of the areas of research that we’ll be focused on. I have to say that we’re really excited about what’s coming up next.

And of course, our engineering team will be adding needed functionality to the open-source Graph Node, and also supporting and adding to the hosted service and Graph Explorer.

Closing thoughts

Finally, now that we’ve shipped, we are looking to grow our research investment this year with additional resources. Our current research headcount is 2.5: myself, Jackson, who is entirely focused on zero-knowledge cryptographic proof systems, and Dave, who is splitting his time between engineering and research on consensus protocols. And we’re looking to grow the team.

If you’re an expert in distributed systems, database architecture, programming languages, formal verification, or computational economics, we want to talk to you!

Also, the above disciplines are not a comprehensive list. I’ll continue adding issues to our research Github, which describe future focus areas for research, so feel free to engage there or in #research on our Discord if you think you have contributions to make. Questions and feedback on our draft specifications are also highly encouraged.

Moving forward, we will have as many of our research conversations and discussions in the open as possible, both to give users confidence in our commitment to full decentralization, and to solicit the best ideas from the members of our community. I look forward to having you join us!