Graphite

Graphite

Lightweight proofs of graph properties using SNARKs

Graphite

Graphite

Lightweight proofs of graph properties using SNARKs

The problem Graphite solves

We are addressing the challenge of implementing efficient and accessible graph computations on-chain. Currently, performing graph computations on-chain is both painful and costly, despite their immense utility in various applications. Additionally, the developer experience (UX) for writing validity circuits, such as those in circom and halo2, is cumbersome and largely inaccessible to individuals not specialized in this field. This complexity limits wider adoption and innovation. Furthermore, collecting relevant data for these graph computations, particularly when dealing with extensive on-chain data, poses significant difficulties. Our solution aims to simplify these processes, making graph computations more feasible and user-friendly, thus opening up new possibilities for developers across various disciplines.

Challenges we ran into

One of the challenges in using Noir (and domain-specific languages, or DSLs, in general) is the absence of support for indeterminate loops, a common feature in traditional programming. This limitation necessitates a different approach to thinking about and implementing algorithms. For instance, many graph algorithms, like breadth-first search, typically employ while loops and continue until a condition, such as an empty queue, is met, making their loop lengths indeterminate. We addressed this challenge by carefully determining the maximum possible lengths for our inputs and then tailoring our circuits to handle these lengths. In cases where an input was shorter than our maximum length, we adapted by padding the input and performing extra, albeit redundant, operations on these padded input elements.

Tracks Applied (11)

1inch Track

We'll come over, thank you for your help!

1inch Network

Arbitrum Track

We'll come over, thank you for your help!

Arbitrum

Polygon Track

We'll come over, thank you for your help!

Polygon

Filecoin Track

We'll come over, thank you for your help!

Filecoin

The Graph Track

We'll come over, thank you for your help!

The Graph

PowerLoom Protocol Track

We'll come over, thank you for your help!

PowerLoom Protocol

Airstack Track

We'll come over, thank you for your help!

Airstack

Chainlink Track

We'll come over, thank you for your help!

Chainlink

Alliance Track

We'll come over, thank you for your help!

Alliance

Mantle Network Track

We'll come over, thank you for your help!

Mantle Network

Scroll Track

We'll come over, thank you for your help!

Scroll

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion