-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[MMR] fix MmrLeaf::next_auth_set
for session-boundary blocks
#160
Comments
ping @vgeddes and @seunlanlege as the current known users of MMR |
I've written my light client to be independent of all of this |
Context for this issue is bridge deployment stalling this week: paritytech/polkadot-sdk#3080 We might have to investigate this issue and change approach (again ^^), so here are the three possibilities I see for addressing this (more may exist):
Assessment:
|
+1 from Snowfork - We've gone over our protocol & code and the fix here will solve the problem for us. Luckily, we don't need to make any code changes on our side to support the fix either. |
Moves `pallet_mmr` back behind `pallet_session` to address polkadot-fellows/runtimes#160.
Moves `pallet_mmr` back behind `pallet_session` to address polkadot-fellows/runtimes#160.
Moves `pallet_mmr` back behind `pallet_session` to address polkadot-fellows#160.
Moves `pallet_mmr` back behind `pallet_session` to address polkadot-fellows/runtimes#160. Opening draft for CI - should be merged or closed depending on outcome of w3f/polkadot-spec#718. --------- Co-authored-by: Adrian Catangiu <adrian@parity.io>
Moves `pallet_mmr` back behind `pallet_session` to address polkadot-fellows/runtimes#160. Opening draft for CI - should be merged or closed depending on outcome of w3f/polkadot-spec#718. --------- Co-authored-by: Adrian Catangiu <adrian@parity.io>
Moves BEEFY pallets - in particular `pallet_mmr` - back behind `pallet_session` to address #160. See paritytech/polkadot-sdk#3108 for the equivalent Rococo change. --------- Co-authored-by: Bastian Köcher <git@kchr.de>
Moves BEEFY pallets - in particular `pallet_mmr` - back behind `pallet_session` to address #160. See paritytech/polkadot-sdk#3108 for the equivalent Rococo change. --------- Co-authored-by: Bastian Köcher <git@kchr.de>
fixed in #169 |
Moves `pallet_mmr` back behind `pallet_session` to address polkadot-fellows/runtimes#160. Opening draft for CI - should be merged or closed depending on outcome of w3f/polkadot-spec#718. --------- Co-authored-by: Adrian Catangiu <adrian@parity.io>
paritytech/polkadot#6577 implemented paritytech/substrate#11797 in an attempt to decrease light-client complexity, but inadvertently opened up a corner-case that can end up bricking on-chain light clients (such as bridges):
The offending change is:
Which is a problem when combined with the following property of the BEEFY protocol:
When combining the two, we see that mandatory block N contains MMR root for MMR with latest leaf providing
next_auth_set: <next_auth_set_of<N-1>>
, representing the currently active validator set and not the next validator set as required (in order to know who are the authorities in the next session).In other, simplified, words: Mandatory BEEFY commitment ends up providing proof for current validator set instead of next one - which is useless in practice.
We need to change
MmrLeaf
contents (back) to:We can implement above fix by reverting paritytech/polkadot#6577 for both Kusama and Polkadot.
The text was updated successfully, but these errors were encountered: