TLDR

Problem

Current scoring system is too specific. User provides a membership path through group hierarchy and the protocol sums up the scores provided by the groups.

Upala already allows groups to chose their own governance and incentives models. Why not allow them to chose an arbitrary way of calculating their scores as well?

Paths

Paths

Another problem with the current setup (further called Paths) is that groups have to publish scores on-chain individually for every user. Most likely, groups will pass this burden to users soon or later. So users will have to push every score change on-chain. That is far from user-friendly.

Solution

We can bring Merkle score drop to the protocol level!

It will allow score drop for users. A group will only need to publish Merkle tree off-chain and its root on-chain and the scores will be instantly available to all users - no UI for users. The interface for DApps (score consumers) and score providers will be more uniform and thus simpler to develop. And maybe most importantly Merkle score drop will allow a lot more privacy. As groups may keep their Merkle trees available to their members only (approved users). The main drawback of the approach is that it requires off-chain storage solution from day one.

Merkle alternatives

Merkle drop is used as a specific example of the new approach. The approach in general is to allow groups to assign scores off-chain and publish a validator on-chain (in Merkle case - the root hash), and require users to prove their score on-chain (in Merkle case - the merkle proof). Probably there is a more efficient algorithm then Merkle (some zero knowledge magic?). If you know one, please let me know.

Paths (current)

Merkle (new)

Merkle-only benefits

Anonymity!!!

No score on chain! No membership too. Groups can decide to provide access to merkle trees only to members!

Arbitrary score calculation method

A group can chose any score computation technique with any complexity (i.e. far beyond on-chain capacity). The current method of score calculation would be just a subset of all other possibilities.

Paths. Sum up scores through group hierarchy - the only way.

Paths. Sum up scores through group hierarchy - the only way.

Merkle. Require a user to be a member of specific groups and provide a predefined score - just an example, any logic is possible. Paths are not needed.

Merkle. Require a user to be a member of specific groups and provide a predefined score - just an example, any logic is possible. Paths are not needed.

Arbitrary relationships among groups

Groups may decide on how they would share explosion risks. The current (paths) logic can be implemented by groups using sharing pools (to be explored) or through IOU explosion scheme.