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
The group fingerprint (which is the merkle root) is not correct if a member is removed from an off-chain group. The issue is that if a member is removed, the member is removed from the Bandada infrastructure instead of converting it to 0 which is what the current IMT (Semaphore v3) does.
If the member is converted to 0 people can have off-chain and on-chain compatibility when using the Bandada fingerprint and Semaphore v3 on-chain.
When Semaphore v4 is included, this issue will still exist (#638).
Semaphore uses 0s to keep transactions on-chain cheaper. If the app is completely off-chain it's not necessary to use 0s but in case people want to use the group on-chain too, it will be necessary to have 0s for removed members.
Keeping the current implementation can benefit off-chain groups that are large and remove a lot of members frequently. But it's still better to have 0s for removed members to have compatibility on-chain.
If a member is removed from a group the fingerprint (tree root) changes because the cached group uses 0 for the removed member but the Bandada infrastructure removed the member (did not use 0 for the removed member). Then when the server is restarted, the tree created has a different root (group fingerprint) since the 0 of the member removed is not saved in the Banadada infrastructure. More context on this: bandada-infra/boilerplate#27
The text was updated successfully, but these errors were encountered:
Description
The group fingerprint (which is the merkle root) is not correct if a member is removed from an off-chain group. The issue is that if a member is removed, the member is removed from the Bandada infrastructure instead of converting it to 0 which is what the current IMT (Semaphore v3) does.
If the member is converted to 0 people can have off-chain and on-chain compatibility when using the Bandada fingerprint and Semaphore v3 on-chain.
When Semaphore v4 is included, this issue will still exist (#638).
Semaphore uses 0s to keep transactions on-chain cheaper. If the app is completely off-chain it's not necessary to use 0s but in case people want to use the group on-chain too, it will be necessary to have 0s for removed members.
Keeping the current implementation can benefit off-chain groups that are large and remove a lot of members frequently. But it's still better to have 0s for removed members to have compatibility on-chain.
If a member is removed from a group the fingerprint (tree root) changes because the cached group uses 0 for the removed member but the Bandada infrastructure removed the member (did not use 0 for the removed member). Then when the server is restarted, the tree created has a different root (group fingerprint) since the 0 of the member removed is not saved in the Banadada infrastructure. More context on this: bandada-infra/boilerplate#27
The text was updated successfully, but these errors were encountered: