This repository has been archived by the owner on Dec 9, 2023. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The schema solves two main problems:
Schema consists of identical state transitions, such that past history can be cut at any level and each state transition may be validated as genesis.
Identity is a:
Each identity can be revoked, which is defined by a single present seal.
New identities are created as children of other identities; either during revocation or extension procedure. This fact, as specified above, can be hidden, when identity issuing state transition is converted into genesis, not showing its ancestors.
Validation is simple: it must check that public key and signature match, and signature signs identity data, serialized in a correct form (according to the specified format).
Link between identities is established when a subgraph linking to identities up to a certain ancestor is revealed.
Actions attributed to identities via public keys; i.e. anybody can sign with his identity key a key of other person, and if that person will keep the signature data it will prove the identity. This is not part of RGB and is outside of the schema; so usual Web of Trust or other protocols may be followed.
This, for instance, can be used to build reputation systems, where reputation will be linked/attributed not to a single public key, but to a set of public keys, making revocation procedures possible and enhancing anonymity (i.e. reputation can be split across multiple identities and joined when needed).
Another use case for the schema is anonymous voting rights, when a person can use unrelated keys for blind signatures during the voting procedure and still be able to prove the fact of the vote was done by the holder of the rights.