Hyperledger Sawtooth
Hyperledger’s Sawtooth is an "enterprise" blockchain platform for decentralized ledger applications (DApps) and their associated smart contracts, focusing on modularity, extensibility, privacy, and security to be flexible enough for all sorts of business needs.
Like Ethereum, Sawtooth maintains the core blockchain system so that applications built on top can simply specify the relevant business rules in the smart contracts, without needing to fully grasp or maintain the underlying blockchain code.
Sawtooth’s motivations for adapting the Blockchain for enterprise needs are to streamline business processes between companies, allow records to be kept in sync without trusted centralized third parties/manual reconciliation processes, and facilitate entirely new ways of doing business.
Sawtooth smart contracts (or state transition functions) can be programmed in multiple familiar and mature programming languages, from the interpreted languages (Python, Javascript), compiled languages (Rust, C++, Go), and virtual machines (Java, C#). A future Seth compatibility layer for the Ethereum Virtual Machine would add support for existing Ethereum smart contracts in Solidity and Serpent. Future work on Sawtooth would increase throughput and transaction privacy.
Sawtooth aims to adapt the blockchain to the varying needs and changing goals of permissioned blockchains in enterprises.
Sawtooth Consensus Algorithms
Various consensus algorithms have been pitched to apply to the Byzantine Generals Problem, each with their pros and cons. Instead of choosing a single consensus to fit all problems, Sawtooth provides applications with the ability to choose the type that fits their use case, and allows nodes to vote on changing it in the future as necessary.
Two main consensus algorithms are pitched from two categories: "lottery" consensus, and "voting" consensus.
"Lottery" consensus is also known as "Nakamoto" consensus, because Bitcoin’s Proof-of-Work consensus was the first example of it. Through some process, such as calculating a nonce by brute-forcing a hash algorithm, a node is randomly chosen to lead the consensus by proposing the next block to extend the chain of blocks previously agreed upon .
Sawtooth provides the Proof-of-Elapsed-Time algorithm as their "lottery" consensus algorithm to "support large network populations that include byzantine actors" . Much like Hal Finney’s original proposal for a cryptocurrency using Hashcash and b-money concepts in 2005 , Proof-of-Elapsed-Time relies on Intel SGX Trusted Computing chips which have become significantly more prevalent since their introduction with the Intel Skylake platform in 2015.
"Voting" consensus is influenced by classic "Byzantine fault tolerance" algorithms descended from those proposed by , where the nodes explicitly vote according to some process to build consensus. These consensus algorithms tend to consume significantly less electricity for higher throughput than "lottery" consensus .
Sawtooth provides the RAFT consensus algorithm (which is still under development) for "high-throughput, low-latency transactions" .
Sawtooth provides methods for authorized nodes (perhaps managers of each corporation in the consortium) to vote to modify network settings even after the blockchain is deployed, such as access permissions, transaction rules or types (UTXO like Bitcoin, or Ethereum-style states), consensus algorithm modifications or changes, or token inflation rate adjustments. Such changes are common practicalities in enterprises that are tremendously difficult on permissionless decentralized chains.
Log in or sign up for Devpost to join the conversation.