mirror of
https://github.com/onsonr/sonr.git
synced 2025-03-10 04:57:08 +00:00
docs: update DID Modules Readme files
This commit is contained in:
parent
6faf2e172b
commit
348555981b
124
x/did/README.md
124
x/did/README.md
@ -4,60 +4,118 @@ The Decentralized Identity module is responsible for managing native Sonr Accoun
|
||||
|
||||
## State
|
||||
|
||||
Specify and describe structures expected to marshalled into the store, and their keys
|
||||
The DID module maintains several key state structures:
|
||||
|
||||
### Account State
|
||||
### Controller State
|
||||
|
||||
The Account state includes the user's public key, associated wallets, and other identification details. It is stored using the user's DID as the key.
|
||||
The Controller state represents a Sonr DWN Vault. It includes:
|
||||
- Unique identifier (number)
|
||||
- DID
|
||||
- Sonr address
|
||||
- Ethereum address
|
||||
- Bitcoin address
|
||||
- Public key
|
||||
- Keyshares pointer
|
||||
- Claimed block
|
||||
- Creation block
|
||||
|
||||
### Credential State
|
||||
### Assertion State
|
||||
|
||||
The Credential state includes the claims about a subject and is stored using the credential ID as the key.
|
||||
The Assertion state includes:
|
||||
- DID
|
||||
- Controller
|
||||
- Subject
|
||||
- Public key
|
||||
- Assertion type
|
||||
- Accumulator (metadata)
|
||||
- Creation block
|
||||
|
||||
### Authentication State
|
||||
|
||||
The Authentication state includes:
|
||||
- DID
|
||||
- Controller
|
||||
- Subject
|
||||
- Public key
|
||||
- Credential ID
|
||||
- Metadata
|
||||
- Creation block
|
||||
|
||||
### Verification State
|
||||
|
||||
The Verification state includes:
|
||||
- DID
|
||||
- Controller
|
||||
- DID method
|
||||
- Issuer
|
||||
- Subject
|
||||
- Public key
|
||||
- Verification type
|
||||
- Metadata
|
||||
- Creation block
|
||||
|
||||
## State Transitions
|
||||
|
||||
Standard state transition operations triggered by hooks, messages, etc.
|
||||
State transitions are triggered by the following messages:
|
||||
- LinkAssertion
|
||||
- LinkAuthentication
|
||||
- UnlinkAssertion
|
||||
- UnlinkAuthentication
|
||||
- ExecuteTx
|
||||
- UpdateParams
|
||||
|
||||
## Messages
|
||||
|
||||
Specify message structure(s) and expected state machine behaviour(s).
|
||||
The DID module defines the following messages:
|
||||
|
||||
## Begin Block
|
||||
1. MsgLinkAuthentication
|
||||
2. MsgLinkAssertion
|
||||
3. MsgExecuteTx
|
||||
4. MsgUnlinkAssertion
|
||||
5. MsgUnlinkAuthentication
|
||||
6. MsgUpdateParams
|
||||
|
||||
Specify any begin-block operations.
|
||||
Each message triggers specific state machine behaviors related to managing DIDs, authentications, assertions, and module parameters.
|
||||
|
||||
## End Block
|
||||
## Query
|
||||
|
||||
Specify any end-block operations.
|
||||
The DID module provides the following query endpoints:
|
||||
|
||||
## Hooks
|
||||
|
||||
Describe available hooks to be called by/from this module.
|
||||
|
||||
## Events
|
||||
|
||||
List and describe event tags used.
|
||||
|
||||
## Client
|
||||
|
||||
List and describe CLI commands and gRPC and REST endpoints.
|
||||
1. Params: Query all parameters of the module
|
||||
2. Resolve: Query the DID document by its ID
|
||||
3. Sign: Sign a message with the DID document
|
||||
4. Verify: Verify a message with the DID document
|
||||
|
||||
## Params
|
||||
|
||||
List all module parameters, their types (in JSON) and identitys.
|
||||
The module parameters include:
|
||||
- Allowed public keys (map of KeyInfo)
|
||||
- Conveyance preference
|
||||
- Attestation formats
|
||||
|
||||
## Client
|
||||
|
||||
The module provides gRPC and REST endpoints for all defined messages and queries.
|
||||
|
||||
## Future Improvements
|
||||
|
||||
Describe future improvements of this module.
|
||||
Potential future improvements could include:
|
||||
1. Enhanced privacy features for DID operations
|
||||
2. Integration with more blockchain networks
|
||||
3. Support for additional key types and cryptographic algorithms
|
||||
4. Improved revocation mechanisms for credentials and assertions
|
||||
|
||||
## Tests
|
||||
|
||||
Acceptance tests.
|
||||
Acceptance tests should cover all major functionality, including:
|
||||
- Creating and managing DIDs
|
||||
- Linking and unlinking assertions and authentications
|
||||
- Executing transactions with DIDs
|
||||
- Querying and resolving DIDs
|
||||
- Parameter updates
|
||||
|
||||
## Appendix
|
||||
|
||||
Supplementary details referenced elsewhere within the spec.
|
||||
|
||||
### Account
|
||||
|
||||
An Account represents a user's identity within the Sonr ecosystem. It includes information such as the user's public key, associated wallets, and other identification details.
|
||||
@ -69,3 +127,15 @@ A Decentralized Identifier (DID) is a unique identifier that is created, owned,
|
||||
### Verifiable Credential (VC)
|
||||
|
||||
A Verifiable Credential (VC) is a digital statement that can be cryptographically verified. It contains claims about a subject (e.g., a user) and is issued by a trusted authority.
|
||||
|
||||
### Key Types
|
||||
|
||||
The module supports various key types, including:
|
||||
- Role
|
||||
- Algorithm (e.g., ES256, EdDSA, ES256K)
|
||||
- Encoding (e.g., hex, base64, multibase)
|
||||
- Curve (e.g., P256, P384, P521, X25519, X448, Ed25519, Ed448, secp256k1)
|
||||
|
||||
### JSON Web Key (JWK)
|
||||
|
||||
The module supports JSON Web Keys (JWK) for representing cryptographic keys, including properties such as key type (kty), curve (crv), and coordinates (x, y) for EC and OKP keys, as well as modulus (n) and exponent (e) for RSA keys.
|
||||
|
Loading…
x
Reference in New Issue
Block a user