You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jul 5, 2024. It is now read-only.
Some refactoring which I believe decreases code duplication and
increases code readability.
Some TODOs:
- [x] The code required to get the previous rlc/mult data or the
inclusion in the parent check is quite complicated because of the
different node types. Instead it may be better to use a fixed location
to store this data in so a node can simply use this data directly
instead of having to figure out on its own where to find the data. This
is cleaner because this way each node can decide on its own how these
should be handled.
- [x] Currently RLP decoding is done using a couple of selectors that
are inputs from the prover. Then there are some checks if these are
correct, though these are not complete. I think it's easier to think
about this if we would just use a lookup to directly verify if these
selectors are set correctly so we don't have to worry about edge cases
are cases that are hard to constrain using custom gates.
- [x] There are currently many cases in the main state maching because
each row type is it's own state. However there is not really any reuse
between custom gates between these rows, except for branches. It'll
likely be quite a bit simple to just have a single state for account,
storage and extension and just use multiple rows in those states
- [x] May be a good idea to split up branches and extension nodes. (semi
done)
- [ ] There's a couple of circuit tools that were added in this PR to
make writing the MPT circuit more manageable. A lot of these tools can
still be greatly improved.
- [ ] Number of lookups has been reduced a lot, but there are still many
optimization possibilities (have not looked into reducing the expression
degree for example).
- [x] The circuit uses a fixed layout which uses around 100 columns (of
which a lot need to be byte constrained so needs a lot of lookups as
well). This makes the circuit quite a bit more dense than probably
required, a more flexible way to manager the required data so the
width/height can be choses would be very useful I think.
0 commit comments