-
Notifications
You must be signed in to change notification settings - Fork 29
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
92 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,43 +1,60 @@ | ||
# Entity Module | ||
|
||
The `Entity` module is a pivotal component of our blockchain system, facilitating the unified management of both non-fungible tokens (NFTs) and their associated Interchain Identifiers (IIDs). By seamlessly intertwining NFTs with IIDs, the `Entity` module establishes a new paradigm for decentralized asset management, bolstered by the credibility and dependability of DID Documents. | ||
# Entity Module: Digital Twin Domains in the Spatial Web | ||
|
||
## Overview | ||
|
||
When an `Entity` is created on the blockchain, a trifecta of operations is set into motion: | ||
The Entity Module introduces a revolutionary approach to digital identity and asset representation in the Spatial Web. When an `Entity` is created, it establishes a sovereign digital twin domain through a trifecta of operations: | ||
|
||
1. An IID Document is birthed through the `iid` module, cementing the foundational identity and associated metadata of the entity. | ||
2. An NFT is minted using the CW721 smart contract, capturing the unique and immutable essence of the entity in tokenized form. | ||
3. A dedicated `Entity` data structure is etched into the KV store. This is not merely a reflection of the IID Document; it captures supplementary metadata exclusive to the `Entity`, enhancing its depth and versatility. | ||
1. An Interoperable Identifier (IID) Document is generated via the `iid` module, establishing the foundational decentralized identity and associated metadata of the entity. | ||
2. A Non-Fungible Token (NFT) is minted using the [CW721](https://github.com/CosmWasm/cw-nfts/blob/main/packages/cw721/README.md) smart contract, capturing the unique and immutable essence of the entity in tokenized form. | ||
3. A dedicated `Entity` data structure is recorded in the key-value (KV) store, encompassing supplementary metadata exclusive to the `Entity`. | ||
|
||
The `id` for all 3 of the different data stored above is deterministically determined on-chain on Entity creation. | ||
The `id` for all three data components is deterministically generated on-chain during Entity creation, ensuring consistency and traceability. | ||
|
||
## Key Components | ||
|
||
### Entity Data Structure | ||
|
||
Stored within the KV store, the `Entity` data structure houses metadata that isn't contained within the IID Document. It's instrumental in furnishing a holistic view of the `Entity`, encapsulating both inherent and appended attributes. This data provides richer context, driving interoperability and comprehensive understanding across platforms and applications. | ||
The `Entity` data structure, stored within the KV store, serves as a comprehensive digital twin domain representation, including: | ||
|
||
- **Controllers**: Governing authorities of the domain. | ||
- **Verifiable Credentials**: Cryptographic proofs for verifying attributes, bassed on [W3C standards](https://w3c.github.io/vc-overview/) | ||
- **Linked Resources**: Digital or physical assets associated with the domain. | ||
- **Accorded Rights**: Permissions and capabilities available within the Spatial Web. | ||
- **Services**: Functionalities provided by the entity, including third-party web services that interface with the domain. | ||
- **Linked Claims**: Assertions about or made by the entity. | ||
- **Linked Entities**: Relationships with other domains in the Spatial Web graph. | ||
|
||
### Entity Accounts | ||
|
||
#### Entity Accounts | ||
Entity Accounts are Cosmos Module Accounts uniquely associated with and controlled by an Entity Owner. Key features include: | ||
|
||
An Entity Account is a Cosmos Module Account that can only be created and controlled by an Entity Owner. An Entity may have any number of Entity Accounts. Each Entity Account has a unique name. For instance “Savings”. The account address is derived from this name and the DID of the Entity. The Entity Owner may authorise any other account to perform transactions for an Entity Account, using Authz. When ownership of an Entity is transferred, the new owner gains control of the Entity Accounts. All residual balances in an Entity Account get transferred together with the Entity NFT when ownership is transferred. | ||
- **Multiple Accounts**: Each Entity may have multiple accounts, each with a unique name (e.g., 'Savings'). | ||
- **Account Address Generation**: Account addresses are derived from the account name and Entity's DID. | ||
- **Authz Delegation**: Authz-based delegation allows transaction permissions to be granted to other accounts, using the [Authz Module](https://docs.cosmos.network/main/modules/authz/) | ||
- **Ownership Transfer**: Control and balances are automatically transferred when Entity ownership changes. | ||
- **Default Admin Account**: A default 'admin' account is created when the Entity is first established. | ||
|
||
On Entity creation a default Entity Account gets created with the name `admin`. | ||
### NFT Representation | ||
|
||
### NFT Creation | ||
The minted NFT via the CW721 smart contract embodies the distinct essence of each `Entity`, offering: | ||
|
||
The minting of an NFT via the CW721 smart contract reaffirms the distinctiveness of each `Entity`. This tokenized representation not only encapsulates the essence of the entity but also offers a myriad of possibilities in terms of trade, ownership verification, and utilization in decentralized applications. | ||
- **Tokenized representation** for trade and ownership verification. | ||
- **Utilization in decentralized applications** within the Spatial Web. | ||
- **Immutable link** to the entity's digital twin domain. | ||
|
||
### IID Document Creation | ||
### IID Document | ||
|
||
The automatic generation of an IID Document ensures that every `Entity` is backed by a standardized, robust, and decentralized identity mechanism. This identity is enriched with crucial metadata and, being compliant with W3C's DID specifications, offers global compatibility and recognition. | ||
The automatically generated IID Document ensures each `Entity` has a standardized, robust, and decentralized identity, featuring: | ||
|
||
### Advantages | ||
- **Compliance with W3C Specifications**: Each IID complies with W3C's [DID Core](https://www.w3.org/TR/did-core/) specification for global compatibility. | ||
- **Metadata Enrichment**: Enrichment with crucial metadata provides a comprehensive representation of the identity. | ||
|
||
- **Unified Management:** The `Entity` module simplifies the intricacies of managing decentralized assets by unifying IID creation, NFT minting, and metadata storage. | ||
- **Enhanced Metadata:** By preserving additional metadata in the `Entity` data structure, a comprehensive and nuanced understanding of each entity is achieved. | ||
- **Interoperability:** Rooted in globally recognized standards, `Entities` foster seamless interactions across various decentralized platforms and applications. | ||
## Advantages | ||
|
||
- **Decentralization and Security:** The tandem of IID Documents and NFTs ensures a decentralized, tamper-proof, and transparent representation of entities. | ||
- **Sovereign Digital Twin Domains**: Each entity represents a self-sovereign domain in the Spatial Web, with full control over its digital representation and associated assets. | ||
- **Enhanced Interoperability**: Rooted in globally recognized standards, `Entities` foster seamless interactions across various decentralized platforms and applications in the Spatial Web ecosystem. | ||
- **Comprehensive Metadata Management**: The unified approach to metadata storage provides a nuanced and rich understanding of each entity's characteristics and relationships. | ||
- **Decentralization and Security**: The combination of IID Documents and NFTs ensures a decentralized, tamper-proof, and transparent representation of entities within the Spatial Web. | ||
- **Flexible Governance**: Entity Accounts and delegation mechanisms allow for sophisticated control and management of digital assets and interactions. | ||
|
||
For a deeper dive into the foundational principles of IIDs, consult the [`iid` module documentation](/x/iid/spec/README.md). For a comprehensive understanding of NFTs and the CW721 standard, refer to the [official CW721 documentation](https://github.com/CosmWasm/cw-nfts/blob/main/packages/cw721/README.md) which follows the [eip721 standard](https://eips.ethereum.org/EIPS/eip-721). | ||
This Entity Module serves as a crucial building block in the Spatial Web, enabling interconnected digital twin domains, graph-based relationships between entities, and decentralized governance models. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters