Alias Outputs
The IOTA DID method users Alias Outputs for storing DID Documents. Alias Outputs are created via transactions, and require a storage deposit to cover the data storage. The deposit is refundable upon destruction of the output.
Each Alias Output has an Alias ID
that becomes the basis for the DID,
and which can be transferred through transactions to update DID Documents.
The IOTA DID method uses the IOTA ledger, which is baed on the unspent transaction output (UTXO) model, as well as the features of the Stardust upgrade, which are fundamental to the IOTA DID method.
The Alias OutputOutputs (“unspent transaction outputs” - UTXOs) make up the ledger state. Transactions update the ledger state by taking as input a set of outputs and producing a new set of outputs. is used to store a DID Document on the ledger.
It is a specific implementation of the UTXO state machineState machines are used in DLTs to model and implement the behavior of the system. For example, a DLT might use a state machine to model the state of the ledger, the state of the participants in the network, and the state of the consensus algorithm. that can hold arbitrary data in its State Metadata
.
The Alias Output has two kinds of controllers, a state controller and a governor.
A state controller can execute a state transition which allows updating the data in the State Metadata
.
The governor, on the contrary, can't update the State Metadata
but can change both controllers and destroy the Alias Output.
A controller can be either Ed25519 Address, Alias Address or an NFT Address and at most one of each can be set for an Alias Output.
In order to create a new Alias Output, a transaction must be made that includes another Output, for example, a Basic Output, as input and the new Alias Output, along with other outputs if needed, as outputs.
Storage Deposit
The arbitrary data stored in the State Metadata
of the Alias output must be covered by a
storage deposit.
This helps to control the ledger size from growing uncontrollably while guaranteeing the data
is indefinitely stored on the ledger which is important for resolving DID Documents.
This deposit is fully refundable and can be reclaimed when the output is destroyed.
Both the state controller and the governor can control the tokens stored in the Alias Output. NodesA node is any computer that communicates with other nodes in the network using specific software. Essentially, nodes act as connection points for data transfers. The Tangle employs various node types, including full nodes (Hornet, Bee), permanodes (Chronicle), and smart contract nodes (Wasp). expose an API to calculate the required deposit depending on the size of the data stored.
Alias ID
Each Alias Output has an Alias ID
. This ID is assigned after a transaction creates a new Alias Output.
The actual DID is derived from this Alias ID
, hence it will be unknown before publishing the transaction.
Consequently, the DID inside the State Metadata
will be replaced by the placeholder did:0:0
to indicate self.
If a transaction has an Alias Output as input, its Alias ID
can be kept by one of its outputs.
This feature is necessary for updating the DID Documents since the DID itself is derived from the Alias ID
.