Aleo is the first platform to offer completely private apps. Aleo achieves this by using decentralized systems and zero-knowledge cryptography to secure user data online. At its core, Aleo offers users and application developers unlimited computing resources with absolute privacy. By designing Aleo as a blockchain that is private, open source, and built for the web by default, the developers believe that Aleo is uniquely positioned to address the shortcomings of blockchain adoption. With Aleo, users have access to a world of truly personalized web services without relinquishing control over their personal data.
The account’s private key is used to authorize a transaction that updates the global state of the account’s records. The account view key is used to decrypt account entries that are encrypted under the user’s account address. Finally, the account address allows users to interact with each other by sending and receiving records that encode application values and data.
To protect user assets and record data , you should never disclose your account’s private key to third parties. For real applications on Aleo, users must obtain a compute key from their account’s private key to allow third parties to insecurely run applications and generate transactions on behalf of the user.
The account’s private key is formatted as a Base58 string of 58 characters. The account’s private key is encoded with a private key prefix , which reads APrivateKey1, indicating that it is a private key and should not be shared with other users.
Account View Key
The Aleo account view key is derived from the account’s private key and allows users to decrypt their entries from the global ledger. Because account view keys can access every entry in a user’s account, this key can be used by third-party auditors to verify the account’s full history.
The account view key is formatted as a Base58 string of 56 characters. The account’s view key is encoded with a view key prefix , which reads AViewKey1, indicating that this is a view key and should only be provided to authorized parties.
The Aleo account address is a unique identifier that allows users to transfer value and record data to each other in transactions.
The account address consists of:
the public key for the account’s encryption scheme.
The account address is formatted as a Bech32 string of 63 characters. The account address is encoded with an address prefix that reads aleo1.
Human readable prefix
Account private key
[ 127, 134, 189, 116, 210, 221, 210, 137, 144 ]
Account View Key
[ 14, 138, 223, 204, 247, 224, 122 ]
In many cases, such as corporate settings, it is recommended that sensitive keys and data be handled on isolated standalone computers. An Aleo account can be created on an offline computer and is available for immediate use. Combined with account verification keys, the user can ensure that their private key remains offline even to create transactions.
While there is no perfect solution, it is recommended that you create a new Aleo account on a disconnected device to minimize the risk of the account’s private key being leaked to unintentional parties.
Account data withdrawals
The account commit output is used to generate an account view key, which consists of a secret encryption key. This secret encryption key is a scalar element of the field obtained from the account commit output. To ensure that the account representation key is valid, the account commit output must be represented in a scalar field.
Create an account
Global instances of Aleo parameters and routines are given.
graph TD A["Seed (32 Bytes)"] A --> |"Blake2s(Seed, 0)"| B(sk_sig) A --> |"Blake2s(Seed, 1)"| C(sk_prf) A --> |"Blake2s(Seed, counter)"| D(r_pk)
B --> E(Account Private Key) C --> E(Account Private Key) D --> E(Account Private Key)
E --> F(Account View Key) F --> G(Account Address)
A record is the main data structure for encoding custom assets and application state.
Each account entry contains information indicating the owner of the entry, its stored value, and the state of the application. An Aleo account can create a transaction to use an entry and create a new entry in its place. Entries on Aleo are encrypted at the address of the owner of the entry, which guarantees complete confidentiality of all entries on Aleo.
When a record is created in a transaction, it is securely encrypted in the transaction and stored in the ledger. This allows users to securely and privately transfer recorded data and valuables to each other over a public network. Only the sender and recipient with the appropriate account view keys can decrypt these records.