Aeternity is a stateless smart contract platform.
Aeon (AE) is Aeternity native token. It is used to transfer the value, pay fees, and keep the account open. Part of AE supply was distributed via crowdsale, another part is rewarded to miners.
Aeternity uses a hybrid consensus scheme, having both PoW and PoS for validation. Proof-of-Work is used to mine blocks, while Proof-of-Stake is used to govern oracles and protocol changes. The PoS is involved to make attacks on the protocol expensive and thus unfeasible.
Oracles work as sources of external world information. It can be a data describing the weather, price changes, or any other piece of information about the world. Traditional data sources, like public API, a website, or a newspaper, rely on a single point of failure, which can be bribed or hacked. In contrast, oracles usually guarantee to provide information in a trustless way.
In Aeternity, oracles implemented as follows. Each oracle can answer a certain yes/no question for a specified period. Any user can create an oracle. He needs to specify the question he will answer and a timeframe in which the question can be asked. He also needs to provide a deposit which will be returned to him if the answer will be accepted as truth and burned if the answer will be rejected. Once an oracle launcher provided an answer, anyone can dispute it by providing another answer and making an equivalent deposit. In that case, the consensus will be used to identify who is right. One of them will win AE tokens and another one will lose it. If no one sets a dispute, the original answer will be accepted as truth.
The oracle can be referenced in smart contract code by using a unique id.
Besides agreeing on the external state, Aeternity uses consensus mechanism to set the values of system parameters. Users opinions about protocol variables and hardforks effectively form prediction markets around the future of the platform. Users can openly express their thoughts right on the chain via making predictions about the future development of Aeternity.
Prediction markets can also be formed around events outside Aeternity. For example, users can vote whether some event will happen after a specified date. The distribution of yes/no answers will show a probability of the event.
Aeternity runs smart contracts off the chain. The smart contract code is not stored in the blockchain, neither the state of the contracts. That way, computationally intensive tasks are also done outside the main chain. Smart contracts are executed by those who affected, and the main chain is used only to make a settlement and solve disputes. This leads to fast, cheap, and private transactions.
First, by handling most of the transactions off-chain, Aeternity becomes more scalable. While the main chain can handle about 30 transactions per second, much more of that can be processed off-chain.
Second, as the blockchain doesn’t store the state of contracts, transactions can be executed independently. That way, Aeternity transactions are effectively stateless. Stateless transactions can be validated in parallel, which gives even more scalability.
Finally, off-chain transactions provide privacy. Main chain stores only the movement of large amounts of coins. Under the hood, users can privately execute smart contracts and make small transfers without exposing sensitive information.
To make transactions over state channel, users should first open one by making a transaction on the main chain and putting AE as a deposit. Then, they can make any amount of transactions and execute smart contracts for free, exchanging the signatures of a transaction between each other. When at least one of the users wants to close a channel and make a settlement, he makes another transaction on the main chain. In that case, he should provide the last transaction that was made in a state channel. If the user will provide an old transaction, another user can provide the fresh one. When he will provide it or when the timeframe will end, the state channel will be closed and the balances of both users will be updated on the main chain.
Off-chain transfers work great for micropayments. Say, there is an application called Aeternity Music, where users can listen to the songs and pay individually per each song. These payments can be done by creating a state channel between a user and an owner of Aeternity Music. Once in a while, users will close channels to settle all micropayments.
Each account has a unique identifier, also known as a public key. Users can bind human-readable names to those keys by sending a corresponding transaction. The process is similar to buying a domain from a registrar. The only difference is that the name system in Aeternity is decentralized, as no one owns the names.
The Aeternity’s long-term goal is to create an ecosystem of decentralized applications running in synergy. In Aeternity, these applications are called aepps. Identity Manager serves as an application to manage user account and run other aepps. These aepps include block explorer, coin transfer, timestamping service, and many others. Users can launch their own applications for everyone to use.