relayer icon indicating copy to clipboard operation
relayer copied to clipboard

[TASK] Add method for querying a relayer's merkle tree for a merkle path proof

Open drewstone opened this issue 2 years ago • 1 comments

Overview

In an ideal world where a relayer can be trusted (wink wink SGX), it would be a huge performance improvement to be able to get a user's merkle path for a record/note commitment from the node storing all the leaves. This would eliminate the need for the client to download and cache all leaves locally, since they can just query this relayer for their proofs.

Description

Extend the leaf caching relayer with an API that fetches the Merkle path for a given leaf / set of leaves.

Acceptance Criteria

  • The API should have a get_merkle_path method which takes a leaf (or set of leaves) and returns the Merkle path for the leaf(s).
  • The method should return an error if the leaf is not present in the Merkle tree.
  • Implement tests to ensure that the get_merkle_path function works as expected, returning the correct Merkle path for existing leaves and returning an error for non-existing leaves.

drewstone avatar May 16 '23 15:05 drewstone

The eventual goal is to run part of this inside SGX. We can also consider adding a method for doing the entire proof generation in the relayer as well, which we will also only consider in a trusted environment like SGX.

drewstone avatar May 16 '23 15:05 drewstone