We’ve had great traction with our support of Ethereum on Azure. The existing Proof-of-Work solution has been deployed tens of thousands of times across a variety of industry verticals. Through the extensive development on our platform, we’ve received great feedback from the community that has helped us shape our next Ethereum ledger product. I’m excited to announce the release of Ethereum Proof-of-Authority on Azure.
Proof-of-Work is a Sybil-resistance mechanism that leverages computation costs to self-regulate the network and allow fair participation. This works great in anonymous, open networks where competition for cryptocurrency promotes security on the network. However, in private/consortium networks the underlying ether has no value. An alternative protocol, Proof-of-Authority, is more suitable for permissioned networks where all consensus participants are known and reputable. Without the need for mining, Proof-of-Authority is more efficient while still retaining Byzantine fault tolerance.
We’ve built this solution with the same principles that we drive in all our production services at Microsoft. In Proof-of-Authority, each consensus node on the network has its own Ethereum identity. In the case that a node goes down, it’s important that the member doesn’t lose consensus participation. Ideally, each member would run redundant consensus nodes to ensure a highly available network presence. To accomplish this, we’ve built an abstraction which allows each consensus participant to delegate multiple nodes to run on their behalf. Each Azure Proof-of-Authority network comes with our identity leasing system that ensures that no two nodes carry the same identity. In the case of a VM or regional outage, new nodes can quickly spin up and resume the previous nodes’ identities.
Web Assembly Smart Contracts
Enterprise developers often cite Solidity language as one of the largest pain points when developing on Ethereum. To address this, we’ve enabled Parity’s web-assembly support, allowing developers to author smart contracts in familiar languages such as C, C++, and Rust.
This solution also comes with Azure Monitor to track node and network statistics. For application developers, this provides visibility into the underlying blockchain to track block generation statistics. Network operators can use Azure Monitor to quickly detect and prevent network outages through infrastructure statistics and queryable logs.
Many of our customers want to participate in a consortium, but don’t want to manage the network infrastructure. We’ve leveraged Parity’s highly extensible Proof-of-Authority client to build a level of abstraction that allows our users to separate consortium governance from network operation. Each consortium member has the power to govern the network and can optionally delegate the consensus participation to the operator of their choosing. The Proof-of-Authority deployment comes with a Governance DApp to simplify voting and validator delegation. With this solution, each consortium member has custody over his or her own keys, allowing secure signing to be performed in the wallet of preference, for example, MetaMask in-browser wallet, Ledger hardware wallet, or Azure Key Vault with ECC signing.
Governance DApp features
- Decentralized governance - Changes in network authorities are administered through on-chain voting by select administrators.
- Validator delegation - Authorities can manage their validator nodes that are setup in each PoA deployment.
- Auditable change history - Each change is recorded on the blockchain, providing transparency and auditability.
Figure 1: Governance DApp allows for on-chain consortium management.
We’re excited to see the new applications that our customers build with Ethereum Proof-of-Authority in Azure. Check out our deployment guide to get started and learn more about the architecture and consortium governance.