3.5.7 Membership Sighchains
Membership sighchains record changes to the set of users which are part of each account. They have a single type of link, ChangeMembers:
{
"sighchainType": "Membership",
"linkType": "ChangeMembers",
...
"accountID": "19aebb...",
...
"added": [
COMMIT({
"userID": "d02f1c...",
"userChainSequenceNumber": 9,
}),
...
],
"removed": [
COMMIT({
"userID": "9ae3d2...",
"userChainSequenceNumber": 4,
}),
...
]
}
Each link can add or remove multiple users. Each user is hidden behind a commitment so that it is possible to prove that an individual user is part of an account without also leaking the userIDs of the other members that are being added as part of the same link. Hiding the userIDs of the users being removed from the account would potentially make it harder to prove that a user is indeed still a member of a specific account without opening all the commitments. We will solve this problem in the future by leveraging the transparency layer, but until then, clients will not rely on these sighchains, although the server will still keep tracking of them.
Links in membership sighchains do not require any signatures.
This text explains how changes in membership within an account are recorded in a system using a specific type of link in a sighchain. This mechanism ensures both privacy and accountability for the changes in membership of an account. The "added" section within the link specifies users being added to the account, and the "removed" section specifies users being removed, each action accompanied by a commitment to conceal the user's identity, referenced by a sequence number. The absence of signatures is noted, suggesting that the integrity of these links is assured by other means within the system's design.
Last updated