Crypto AMA with Graph Network (3.21.19)

Spencer Noon Nov 26, 2019


Yaniv Tal:

Hey hey hey AMA

Brandon Ramirez:

Hey folks!

Moderator:

Strong intro Yaniv - although not quite @spanktoshi level 😉

Moderator:

Alright guys - let's do this!

Moderator:

Let’s give a warm welcome to Yaniv and Brandon of The Graph!

As a reminder for everyone participating, please keep the discussion respectful at all times.

Guys - could you start off by giving us a brief bio touching on your background as well as how you got started in crypto? And then a short overview of your project, how the idea came to be, and how it’s going so far? We’ll then be off to the races with questions.

Yaniv Tal:

Hi, I'm Yaniv, Project Lead at The Graph. I studied EE at USC with Brandon over 10 years ago and we've done multiple startups together since. I've focused my career on developer tools. I was at MuleSoft which does API developer tools for enterprise and most recently Brandon, Jannis, and I did a React developer tools startup to make it easier to build user interfaces. We got really into functional programming and built a custom framework on top of an immutable database called Datomic using a GraphQL-like query language. When we finally started playing around with Ethereum in early 2017 we got really excited. Finally there was a way to build software that was immutable from the infrastructure up. We started building dApps and quickly saw that there was no way to index / run queries directly on Ethereum. Since we had already spent years thinking about how this part of the stack should work and what the best experience would look like for developers, we got to work on building The Graph.

Brandon Ramirez:

Hey everyone, am glad to be here! I'm Brandon and I lead research at The Graph. I consider myself an extremely technical generalist. I started my academic career in Eletrical Engineering (which is how I met Yaniv), studying robotics and control systems. I've led product teams at large software companies and small startups, most notably Microsoft working on business intelligence and analytics products. I'm passionate about user-centric design and behavior psychology and have even guest lectured a course on UX to college students. And for the last few years I've been working and consulting as a software engineer. My interest in economics (which dates to before college) and UX design both got me really interested in incentive design, and I'm excited to be working in a field where all these diverse interests converge. My first intro to crypto was in 2013 when Yaniv and I briefly lived with a couple guys starting a Bitcoin exchange, but it was later when Ethereum came to prominence and I understood the potential of the decentralized web, that I realized I had to work in this space full-time. Looking forward to your questions!

Yaniv Tal:

We released the first version of our Graph Node July last year and had a bunch of projects start building on it. In January we launched our hosted service and Graph Explorer. You can see a bunch of data being indexed at thegraph.com/explorer

And finally we're working on the decentralized network which we're looking to launch early next year. We published draft specs in January as well  and would love any technical folks to provide feedback.

Moderator:

Awsome. So let's dive in - for those in the audience who may not know what indexing is, how would you describe it and why is it necessary for building dapps?

Brandon Ramirez:

The analogy I like to use is that of a phone book... hopefully everyone in here still remembers those :) If the names are inserted in any random order, it would take you forever to find a name you're looking for. Indexes are data structures which, like a phone book, make it feasible to find an entry in a reasonable amount of time. Typically Log(N) time complexity with respect to the number of entries.

Brandon Ramirez:

Being able to find data quickly is essential for building applications with consumer-grade performance, if you had to search through all the entities in your database just to find the 10 you're looking for to load a UI, then your application will crawl.

Moderator:

Lobbing in some questions from our slido instance: 

* why does graph need a token ? better model to be open source and find a business model that is less rent-seeking and beneficial to eth, like etherscan,truffle ?

Moderator:

* does indexing as a service need to be decentralized?

Moderator:

* how big is the market for the graph?

Participant:

Super helpful guys! Would you mind sharing color on the economics of The Graph? What is the token used for, what is the design / structure for value accrual & how do you plan to maximize your TAM?

Yaniv Tal:

Sure!

There's 2 uses for the token: work token and signaling.

1) The work token provisions the indexing resources on the network. In order to run an indexing node you have to bond a minimum number of Graph Tokens. That provides economic security so if you misbehave you can be slashed. Indexing nodes then set their own prices and charge per query in ETH/DAI. 

2) Signaling creates an incentive for adding useful data to The Graph. If you're building a dApp and have access to useful data you can create a subgraph and stake tokens on it. That entitles you to future block rewards based on query volume. This is similar to a Spotify model where rights holders are paid out based on play counts. It also enables a sort of prediction market where people can bet on the usefulness and future demand of a dataset.

Yaniv Tal:

Does this service need to be decentralized?

Devs want a service that's fast, cheap, and reliable. We think the decentralized network will actually be faster, cheaper, and more reliable since those properties are a function of the number of nodes and the efficiency of the market. Right now we're running about 5 indexing nodes. When we launch the decentralized network we would like to have 100 indexing nodes out of the gate and at that point it may even make sense for us to switch our own nodes off. The query speed itself is not affected by going through the network. The security is high if a dataset has a lot of usage because the economic security scales with the number of nodes indexing that dataset. If a dataset doesn't have a lot of usage then relying on the trust of a centralized provider may be safer. However, you can actually achieve the same result by creating an extra-protocol agreement with a trusted node on Graph Protocol and that would produce the same result as going to a centralized service. So basically Graph Protocol is just an efficient aggregator of supply and demand and can accommodate a spectrum of security requirements.

Brandon Ramirez:

We believe that a big part of the value proposition of Web3 is in building "unstoppable" applications, which don't dissappear just because a company loses interest, closes shop, or changes it's business model. In order for this to happen, applications need to run on public infrastructure, but since getting data off of blockchains is so difficult many projects resort to centralized indexing servers and databases to drive their "decentralized" applications. This is why we believe a decentralized indexing and query layer is essential to fulfilling the original vision of the decentralized web.

Participant:

What is the process for creating a new data set? Say I want access to historical on-chain data for Livepeer, and the data set doesn’t already exist, what would I do?

Participant:

Thanks Yaniv.  Do you have any particular resources you can point to other than what’s on your website that can help someone like myself try to model these economics (with assumptions)?

Participant:

Do all the nodes index and serve all the datasets?

Yaniv Tal:

You create what we call a Subgraph. The subgraph defines what data sources you want to listen to, a mapping script for transforming and organizing that data at ingestion time, and a GraphQL schema for querying that data. You then deploy the subgraph to a Graph Node or to the network for indexing.

Brandon Ramirez:

A data source in this case refers to i.e. a smart contract on Ethereum, an IPFS file, and in the future, data from other blockchains.

Participant:

And I can use historical data? So if we’re in round 1280, my subgraph can include data from round 1?

Moderator:

Let's say a website is using the Graph to query Augur - this would allow users to use Augur in a web browser without having to download a full Augur node, right? What assurances  do I have as a user that the data being served to me is accurate and not corrupted?

Yaniv Tal:

No, a node can choose what subgraphs it wants to index

Yaniv Tal:

Correct. Your mapping handlers can access event data, transaction data, block data, and smart contract state as of that block. It can also get historical data from the store abstraction that we provide

Participant:

Excellent, thanks Yaniv!

Will The Graph be Ethereum only for the foreseeable future? Any chance it comes to say Cosmos?

Participant:

Any others the Graph will work with?

Yaniv Tal:

Yes!

I think Ethereum will continue to be one of the most important chains but I think it will be a multi-blockchain world. In the near term we're most interested in Cosmos, Polkadot, Tezos, and Dfinity. I also like what the Near guys are doing as well as pragmatic short term bridges like POA Network. I think the dApp chain model can pull us out of our scalability woes this year while projects like Ethereum continue to work on global scalability solutions which in all likelihood will take another 2-5 years.

This multi-blockchain architecture will help dApps scale and have more sovereignty but it will make things harder for developers. We support Ethereum + IPFS today but we're going to expand to support multiple blockchains this year. The Graph will be aggregating, synchronizing, and organizing all of the data across these chains so that developers have a single place to discover and consume data.

Brandon Ramirez:

The model that most investors and projects use to understand work token economcis is called Net Present Value, which attempts to value a capital asset based on discounted future cash flows that the asset will generate. In our case, your inputs to this model would be assumptions around what the future demand for paying for indexing and queries will be, and what sorts of cash flows these would generate for a node which is staked in the network.

Participant:

Ok, WOW. Multi chain support would be incredible (and very helpful).

Participant:

Hey Yaniv! Thanks for the AMA. Can you give us an idea of what that would look like? Do you expect use cases like that to form?

Participant:

Thanks - and is the latest distribution of  token ownership publicly available anywhere?

Participant:

Aside from (end) developer demand, what are a few of the biggest challenges you’re expecting as you evolve to the staking / decentralized model?

Yaniv Tal:

No, we raised a small seed round last year led by Multicoin. They shared their investment thesis in The Graph here https://multicoin.capital/2019/01/28/our-investment-in-the-graph/

Brandon Ramirez:

We would love to talk to more layer 1 blockchains projects if you have one in mind that you think would be eager to integrate w/ The Graph next :)

Participant:

cc: Zaki at Cosmos 🙂

Brandon Ramirez:

In the short term, with the hybrid specification we recently released, the guarantees are economic - Indexers provide an "attestation" that a response is correct, which can later be used to slash them if they are found to be lying.

In the fully decentralized network design, it will likely be a combination of economic and cryptographic security (i.e. SNARKs and Merkle proofs), finding a tasteful tradeoff that balances security and performance.

Yaniv Tal:

We're working on making the data source adapters pluggable using a plugin architecture. Our subgraph manifest is already extensible to allow different data source types so there will be a registry of networks and in your manifest you'll be able to refer to one of those networks. Graph Nodes will specify which networks they support and will have the ability to index data for subgraphs that only use those data sources

Participant:

Thanks Yaniv. Are you comfortable sharing any information re: what The Graph was valued at in that round? Completely understand if you prefer to keep that confidential.

Yaniv Tal:

Not for a public forum. Thanks!

Participant:

No problem!

Participant:

Really appreciate the color

Participant:

Hey, Yaniv. What’s the most novel/interesting use case you have seen for The Graph so far?

Brandon Ramirez:

One of the tools at our disposal as a protocol with it's own token, is that we can wield monetary policy as a tool for designing incentives. In practice, most mechanism design choices have trade-offs, especially when it comes to the details of parameterizing things like inflation, rewards, etc. Some of these cannot be modeled up a priori, but will require empirically observing how actors participate in our network and adjusting accordingly. Doing this correctly will be a challenge.

Additionally, there are areas of the protocol design, like governance, where we're taking a "wait and see" approach... as making the wrong decision here can be catastrophic.

Finally, I would say dApp UX (including wallets) needs to mature before we'll be able to fulfill our vision of enabling fully decentralized consumer-grade applications.

Participant:

Second question: How does the Graph think about privacy for the user running a query and the node operator, if at all?

Participant:

When you integrated TheGraph with MolochDAO, did you feel...demonic?

Yaniv Tal:

This will probably have to be handled by a lower level protocol like Orchid. That way queries can come from annonymized IP's. In the future we could look at supporting private data as well but in the short to medium term we're only focused on open data

Brandon Ramirez:

Right, it's a concern for another layer in the stack, but our protocol will support whatever transport/network protocol you would want to use to enable anonymized access to the network.

Brandon Ramirez:

Possessed 😈

Participant:

Thanks.

Yaniv Tal:

We feel like we've helped conjure a force that we cannot possibly comprehend and is sure to possess spirits animal and silicon

Participant:

Very good... Very good...

Participant:

Re: Privacy + nodes + queries context

Yaniv Tal:

If you haven't yet be sure to check out molochdao.com!

Participant:

This is same same but different but my point is privacy is very important for users and wokers in protocols.

Brandon Ramirez:

One really interesting use case that has been pitched to us (AFAIK has not been built yet), was to use The Graph to monitor CDPs which are about to be liquidated and "save" them in exchange for an insurance premium. I thought this was interesting, because it would leverage our GraphQL subscriptions to do something other than power a dApp, but rather feed into their back end infrastructure and trading logic.

Brandon Ramirez:

(Maker CDPs)

Participant:

FYI - this screenshot came from POW #59 (https://proofofwork.news/p/proof-of-work-59) for those wondering.

Participant:

Nice. I think insurance is going to seen an uptick in the space.

Yaniv Tal:

We're not really looking for novelty at this stage. We just want to have all the data indexed on The Graph

Participant:

Would love to know this as well

Yaniv Tal:

We want to index and organize all the world's structured information. In terms of network size, applications generally do 1,000x more reads than writes. Indexing is one of the most resource intensive parts of any application so we think the network that provisions that resource will be big to accomidate.

Yaniv Tal:

How many queries per day are run in application databases globally? That would be an interesting stat

Brandon Ramirez:

Agree! Also for security purposes, resistance to DDoS attacks against nodes etc. Cosmos has their sentry node architecture for similar reasons.

Yaniv Tal:

Indexing nodes will be free to set their own fees but we think $0.0001/query is a good starting point

Moderator:

If all indexed data is publicly available, can you explain why you think the Graph network won't become commoditized by other upstart indexing networks?

Yaniv Tal:

Developers want a service that's fast, cheap, and secure. All of those properties scale with the number of nodes in the network so there's a network effect there. There's also a data network effect on the amount of data and how well it's linked and organized. Just like you go to Google because you trust they'll have the best search results, developers will go to The Graph because they'll trust that we'll have the best organized data

Brandon Ramirez:

Exactly, "forking" the protocol wouldn't just require migrating the data, but it would require a coordinated action between consumers/providers in our marketplace. As long as the protocol continues to be governed fairly, the incentives to carry-out this sort of large-scale coordinated action will be insufficient.

Yaniv Tal:

Of course we'll need to earn that by pioneering on governance, UX, DX, etc

Yaniv Tal:

Please check out Graph Explorer and tell us how we're doing 🙂

Moderator:

Makes sense - thanks!

Participant:

How is The Graph currently structured and what is your go-to-market strategy?

Yaniv Tal:

We're a c-corp with a core dev team. We look at 2 market segments: marquee projects and indie developers. Marque projects are mostly through personal relationships. For indie developers we focus a lot on hackathons. There's nothing like being able to sit next to your users and iterating with them and helping them get onboarded. We've already had stories of people using us at a hackathon and then taking us back to work with them for their day jobs. We haven't started any outbound sales or marketing efforts yet but we're going to start ramping this up soon. Our goal is to have every major Ethereum project on The Graph by the end of the year

Yaniv Tal:

We've spent a lot of time on our docs and polishing the onboarding experience. You can check the docs out at http://thegraph.com/docs/

Yaniv Tal:

Meta tags coming soon 🙂

Moderator:

Last call for questions everyone!

Moderator:

Cool let’s call it there. Big thank you to Yaniv and Brandon for coming on!

Yaniv Tal:

Thanks all this has been great 👋

Yaniv Tal:

Keep the revolution alive 🏴 ✌️

Brandon Ramirez:

Thanks y'all

Participant:

Thanks, Yaniv + Brandon!

Participant:

Thanks a bunch, Spencer for organizing this and for Brandon & Yaniv for your time and awesome transparency! Thanks for doing this!

Participant:

Thanks Yaniv & Brandon !

Participant:

Thanks so much for your time Yaniv and Brandon 🙏

Participant:

One thing I'll add on market size. If Web3 happens and graph wins, the number of queries going through The Graph will be astronomical. Trillions per day. For a sense of scale, Google is under 10B per day. However, graph queries will be much less demanding than Google queries

Yaniv Tal:

My very first podcast interview was just released today if anyone wants to hear more about our story 🎵

https://itunes.apple.com/us/podcast/the-graph-a-decentralized-query-protocol/id1362129613?i=1000432342753&mt=2

Participant:

Congrats! Look forward to listening!

Yaniv Tal:

Thanks!