Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Docs]: Update Transaction #1114

Merged
merged 6 commits into from
Feb 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 1 addition & 9 deletions docs/architecture/accounts.md → docs/architecture/account.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
# Account

> The primary entity of the Miden protocol
An `Account` represents the primary entity of the protocol. Capable of holding assets, storing data, and executing custom code. Each `Account` is a specialized smart contract providing a programmable interface for interacting with its state and assets.

## What is the purpose of an account?

In Miden's hybrid UTXO and account-based model `Account`s enable the creation of expressive smart contracts via a Turing-complete language.

## What is an account?

In Miden, an `Account` represents an entity capable of holding assets, storing data, and executing custom code. Each `Account` is a specialized smart contract providing a programmable interface for interacting with its state and managed assets.

## Account core components

An `Account` is composed of several core components, illustrated below:
Expand Down Expand Up @@ -117,7 +113,3 @@ Users can choose whether their `Account`s are stored publicly or privately. The
Only a commitment (hash) to the `Account`’s state is stored on-chain. This mode is suitable for users who prioritize privacy or plan to store a large amount of data in their `Account`. To interact with a private `Account`, a user must have knowledge of its interface.

The storage mode is chosen during `Account` creation, it cannot be changed later.

## Conclusion

You are now better equipped to understand how a Miden `Account` operates, how it manages data and assets, and how its programmable interface enables secure and flexible interactions within the Miden protocol.
10 changes: 1 addition & 9 deletions docs/architecture/assets.md → docs/architecture/asset.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Asset

> Fungible and Non-fungible assets in the Miden protocol.
An `Asset` is a unit of value that can be transferred from one [account](accounts.md) to another using [notes](notes.md).

## What is the purpose of an asset?

Expand All @@ -18,10 +18,6 @@ In Miden, `Asset`s serve as the primary means of expressing and transferring val
4. **Flexible fee payment:**
Unlike protocols that require a specific base `Asset` for fees, Miden allows users to pay fees in any supported `Asset`. This flexibility simplifies the user experience.

## What is an asset?

An `Asset` in Miden is a unit of value that can be transferred from one [account](accounts.md) to another using [notes](notes.md).

## Native asset

> All data structures following the Miden asset model that can be exchanged.
Expand Down Expand Up @@ -62,7 +58,3 @@ Non-fungible `Asset`s are encoded by hashing the `Asset` data into 32 bytes and
> All data structures not following the Miden asset model that can be exchanged.

Miden is flexible enough to support other `Asset` models. For example, developers can replicate Ethereum’s ERC20 pattern, where fungible `Asset` ownership is recorded in a single account. To transact, users send a note to that account, triggering updates in the global hashmap state.

## Conclusion

Miden’s `Asset` model provides a secure, flexible, scalable, and privacy-preserving framework for representing and transferring value. By embedding `Asset` information directly into accounts and supporting multiple `Asset` types, Miden fosters a decentralized ecosystem where users maintain their privacy, control, transactions can scale efficiently, and censorship is minimized.
10 changes: 1 addition & 9 deletions docs/architecture/notes.md → docs/architecture/note.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
# Note

> The medium through which [Accounts](accounts.md) communicate in the Miden protocol.
A `Note` is the medium through which [Accounts](accounts.md) communicate. A `Note` holds assets and defines how they can be consumed.

## What is the purpose of a note?

In Miden's hybrid UTXO and account-based model `Note`s represent UTXO's which enable parallel transaction execution and privacy through asynchronous local `Note` production and consumption.

## What is a note?

A `Note` in Miden holds assets and defines how these assets can be consumed.

## Note core components

A `Note` is composed of several core components, illustrated below:
Expand Down Expand Up @@ -135,7 +131,3 @@ This achieves the following properties:
That means if a `Note` is private and the operator stores only the `Note`'s hash, only those with the `Note` details know if this `Note` has been consumed already. Zcash first [introduced](https://zcash.github.io/orchard/design/nullifiers.html#nullifiers) this approach.

![Architecture core concepts](../img/architecture/note/nullifier.png)

## Conclusion

Miden’s `Note` introduce a powerful mechanism for secure, flexible, and private state management. By enabling asynchronous asset transfers, parallel execution, and privacy at scale, `Note`s transcend the limitations of strictly account-based models. As a result, developers and users alike enjoy enhanced scalability, confidentiality, and control. With these capabilities, Miden is paving the way for true **programmable money** where assets, logic, and trust converge seamlessly.
10 changes: 1 addition & 9 deletions docs/architecture/state.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# State

> The snapshot of all accounts, notes, nullifiers and their statuses in Miden, reflecting the “current reality” of the protocol at any given time.
The `State` describes the current condition of all accounts, notes, nullifiers and their statuses. Reflecting the “current reality” of the protocol at any given time.

## What is the purpose of the Miden state model?

Expand All @@ -17,10 +17,6 @@ Miden’s `State` model focuses on:
- **Privacy:**
By using notes and nullifiers, Miden ensures that value transfers remain confidential. Zero-knowledge proofs allow users to prove correctness without revealing sensitive information.

## What is state?

The `State` of the Miden rollup describes the current condition of all accounts and notes in the protocol; i.e., the current reality.

## State model components

The Miden node maintains three databases to describe `State`:
Expand Down Expand Up @@ -117,7 +113,3 @@ In this diagram, multiple participants interact with a common, publicly accessib
Miden nodes do not need to know the entire `State` to verify or produce new blocks. Rather than storing the full `State` data with the nodes, users keep their data locally, and the rollup stores only commitments to that data. While some contracts must remain publicly visible, this approach minimizes `State` bloat. Furthermore the Miden rollup can discard non-required data after certain conditions have been met.

This ensures that the account and note databases remain manageable, even under sustained high usage.

## Conclusion

Miden’s `State` model lays the foundation for a scalable, privacy-preserving, and user-centric environment. By combining parallelizable execution, flexible data storage, and Zero-knowledge proofs that ensure integrity and confidentiality, Miden addresses many of the challenges of traditional blockchains. As a result, the network can handle high throughput, maintain manageable `State` sizes, and support a wide range of applications.
Loading
Loading