onflow / flow-go

A fast, secure, and developer-friendly blockchain built to support the next generation of games, apps, and the digital assets that power them.
GNU Affero General Public License v3.0
533 stars 179 forks source link

Merkle'ized Event Proofs #1785

Closed AlexHentschel closed 3 weeks ago

AlexHentschel commented 2 years ago

For each computed chunk, an Execution Node includes a hash of all events in its Execution Result.

However, at the moment, we simply hash the list of all events in its entirety. This makes it very expensive to prove that a specific event was emitted during a block's computation, because the prover needs to transmit all events from the specific chunks to the recipient, as there are generally lots of events emitted within a chunk.

Formally, lets denote the set of all events emitted during chunk i as S_i. We want to prove that a certain even s was emitted in chunk i, i.e. s ∈ S_i. At the moment, such a proof requires a lot of data to be sent over the network, as we need to submit S_i in its entirety.

Goal

Reducing the proof size for s ∈ S_i:

Out of scope:

github-actions[bot] commented 1 month ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

AlexHentschel commented 4 days ago

superseded by Clover - Verifiable Events with Multiple Indices design