Skip to content

Commit

Permalink
feat: Linking circuits with the databus (#7707)
Browse files Browse the repository at this point in the history
The databus mechanism allows us to establish the transfer of data
between circuits. Its more efficient for this purpose than the
traditional public inputs mechanism because it replaces the passing of
raw input/output data with the passing of commitments to that data. (If
we pass the raw data as public input, we have to hash it in the
recursive verifier. Say we pass 1000 field elements worth of raw data.
Since 3 field elements can be hashed in 73 gates with poseidon, that
would add 73*1000/3 = 25k gates to the recursive verifier. That's a 100%
increase from its current size! A commitment on the other hand can be
represented as 8 field elements, regardless of the size of the raw
data).

Roughly speaking, the idea of the databus is this: To establish that the
output (return_data) of circuit A was the input (calldata) of circuit B,
we take a commitment to output A and a commitment to input B then pass
them to a third circuit, circuit C, which asserts that the two
commitments are equal. This PR introduces the class `DataBusDepot` (a
bit of a joke initially but it stuck..) which manages these databus
commitment consistency checks. It is integrated only in the recently
added `AztecIvc`, which will eventually replace ClientIvc.
  • Loading branch information
ledwards2225 committed Aug 7, 2024
1 parent 1ecfe1d commit 5ba9a12
Showing 0 changed files with 0 additions and 0 deletions.

0 comments on commit 5ba9a12

Please sign in to comment.