Olympus is a DAG-based layer-0.5 and layer-1 blockchain that features high concurrency, high throughput, and low transaction fees. Olympus’ supreme performance is achieved by its unique structure and many innovations, such as its novel consensus algorithm and the idea of separating the consensus layer and transaction layer.
Two-layer structure of Olympus
In the consensus layer, the messages ("blocks") are composed by some non-anonymous reputable people or companies, called witnesses, who might have a long established reputation, or great benefits in keeping the network healthy. Witnesses are expected to propose blocks frequently and behave honestly. However, it is unreasonable to totally trust any single witness.
To ensure the security and full decentralization of the consensus, witnesses are elected from set of validators during pre-defined time periods called epochs. In each epoch, the elected witnesses will perform a super-fast BFT type of consensus, which is to determine the linear order of the blocks on the DAG.
When a witness propose a block, it will link to one or many pending transactions in the queue. The block will then be referred directly or indirectly by other witness blocks coming afterwards. The references from other witness blocks can be viewed as the voting process for the proposed block. Therefore, a proposed block by one witness is also the votes of the blocks proposed by other witnesses. The key idea of pipelining the proposing and voting process makes the Olympus consensus much faster than any other BFT type of consensus.
In the transaction layer, the messages ("transactions") are sent by Olympus accounts. When a transaction is linked by a block from consensus layer, it is sealed into the block. There are chances that a transaction will be linked by multiple blocks, but the consensus algorithm will tell which block the transaction belongs to.
In the graph above, the order of the blocks are marked in the circles. There are two accounts sending transactions as an example. Transaction n from account #1 is in block 2; Transaction n+1 from account #1 and transaction m from account #2 are in block 4; Transaction m+1 from account #2 is in block 5.
For detailed information about the consensus and the mathematical proof of the security, please refer to the CCN yellow paper.
Transaction in Olympus is one of the core functions that play a role as an only thing that can change or update Olympus states. It has a data structure and contains several elements that represent what activity happens in Olympus such as sender, recipient, date time, and amount of Gas.
In order to have Olympus fully compatible with the Web3 PRCs, the transaction structure in Olympus exactly matches Ethereum.
Scope (Structure of a Transaction)
- Gas price
- Gas Limit
- Recipient(EOA, Contract Account)
- v, r, s(ECDSA)
For the exact definition and explanation of each field, please refer to Ethereum documents.
Blocks, the basic elements in the Olympus consensus algorithm, are constructed and sent by witnesses. The blocks form a DAG, whose linear order is determined by the consensus algorithm.
Scope (Structure of a Block)
- from address - the witness address that the block is sent
- previous hash - the previous block hash that the witness sent
- parent hash - the block hashes from other witnesses that the block refers to
- link hash - the transaction hashes that the block refers to
- witness signature
A pre-determined timeframe that witnesses are re-elected and rotated from a large set of validators.