# Bloom STARK

Bloom stark aims to filter transaction receipts that are associated with the same address and topic (user parameters).

The obtained blooms in the Block stark, which were transformed to traces, are provided in the current scheme to filter them by address and topic checking their existence in the data.

*Fig. 5 — Ethereum transaction receipt*

While generating traces for the stark, we restore bloom filter using topics & addresses.

*Fig. 6 – Scheme of generating traces*

Based on these results, the scheme generates a set of polynomial values and sets the public values: the hash of the previous & current blocks, address and topic. This scheme also checks the obtained proof from the previous step. The output of this step is a set of values: polynomial values, public values, input & output traces.

The next step is to commit the obtained polynomial values from the previous step.

Then we generate proofs using polynomial values, committed data and CTL. The output is a set of stark proofs, public values, CTL, input & output traces.

The obtained stark proofs are provided to the verification algorithm, which generates a plonky2 proof to confirm all stark proofs correctness.

Implementation: https://github.com/proxima-one/bloom-stark

*Fig. 7 — Bloom stark proving scheme*

Last updated