The EWC is an open-source, publicly-accessible digital infrastructure that supports decentralized applications (dApps) in the energy sector. To establish consensus about the current state and canonical history of transactions, the EWC and the EW Test Networks currently uses the Aura Proof-of-Authority (PoA) consensus algorithm. This PoA mechanism was chosen for three primary reasons:
- To enable transaction capacity on the order of hundreds to thousands of transactions per second: we estimate that the EWC has the ability to achieve 30x greater throughput capacity than the Ethereum mainnet;
- To minimize resource (i.e. electricity and computation) consumption, and subsequently, transaction costs: Eliminating competitive Proof-of-Work results in 54,000x less energy consumption and 350x lower network costs (i.e. costs incurred by organizations hosting validator nodes) which translates into lower and more stable transaction costs;
- To improve compliance with relevant regulations and business requirements in the energy sector: substituting fully anonymous miners for vetted validators enhances the ability of decentralized applications to comply with various regulations, including data-protection regulations like GDPR, and increases the likelihood of widespread user and enterprise adoption.
In this PoA consensus model, only a defined group of nodes, called Validators, are permissioned to validate transactions and create new blocks.
At a high level, the PoA mechanism works as follows:
- All validator nodes maintain a complete list of the validators, identified by public keys. This list changes as validators are added or removed. In addition to storing the current and historical state of the network, all validators maintain essential information about the network (such as synchronized timing information and current data processing limits).
- For a defined time window, one validator is assigned as the primary validator via the PoA algorithm, responsible for collecting the broadcasted transactions and proposing the new block. Only one validator is designated as primary at a time–based on a calculation derived from the timestamp on synchronized clocks among the validator nodes in the network and the number of validators–in order to prevent validators from arbitrarily creating blocks at irregular intervals.
- If a validator fails to create a block when it is selected (e.g., because of hardware problems on the side of the validator) or its block fails to be validated by the pool of nodes (e.g., because of network connectivity problems), the next validator proceeds to create a block with whatever transactions haven’t been processed.
- The remaining validator nodes verify that the transactions in each block are legitimate for that time window, sign the block with their private keys, and propagate the signed block to the network.
- Once a simple majority of validators have authored a block on top of a given signed block, finality is achieved for that given block, and the block is confirmed by the network and added to the EWC.
To learn more about EWC Validators, please visit this section of the Wiki.
To learn more about Proof of Authority, please visit this Wiki page.