A processor at the heart of Hyperledger Sawtooth

Intel Corporation already in 2014 began working with an open source distributed registration technology (DLT) project called Sawtooth Lake, a modular platform implemented in Python. In April 2016 he and R3cev (creators of Corda) presented him to Hyperledger for acceptance into the Incubator. Hyperledger Sawtooth, as it is now called, has been Active since May 2017.

Main characteristics,

  • Allows different types of consensus in the same blockchain
  • Default to include Proof of Elapsed Time (PoET) consensus
  • Smart contracts can be written in almost any language (Python, JavaScript, Go, C++, Java and Rust)
  • Enables the implementation of intelligent Ethereum contracts through integration with Hyperledger Burrow
  • Supports both permissioned and permissionless deployments
  • It has a modular architecture
  • High scalability
  • When possible, transactions are executed in parallel, giving higher performance.

Proof of Elapsed Time

Among the main features of Hyperledger Sawtooth for me the most striking is its consensus algorithm called Proof of Elapsed Time (PoET), since this algorithm that involves the choice of a leader is implemented in Intel processors that incorporate SGX (Software Guard Extensions).

The PoET consensus algorithm runs within the trusted runtime environments available on Intel processors with SGX. SGX is a set of processor instructions that allow the execution of code within an Enclave (protected execution areas in memory). This part is especially important because it is the only thing that allows the Proof of Elapsed Time to function correctly as a consensus algorithm and the results to be verifiable by external entities.

The algorithm emulates the Bitcoin Proof of Work but instead of competing to resolve the cryptographic challenge and extract the next block, each validator receives a random timeout and the one with the shortest timeout for a specific block is named leader and is responsible for creating and verifying the new block and sending it to the block chain certifying that the transaction verification has been completed correctly. The PoET consensus algorithm is a hybrid of a random lottery and an order of arrival.

Like Proof of Work, this algorithm does not have a very good finality, since after a block has been added, the client will have to wait a few minutes to ensure that there is no branch in the chain that is longer than the one containing their transaction.

Sawtooth is designed so that the consensus mechanism can be changed on the fly, it can send the proposal of the new consensus as a transaction and then have a policy within its network to accept this new consensus.

If your network does not have Intel processors with SGX, you can also implement the Hyperldeger Sawtooth framework as it provides a PoET simulator, which provides PoET-style consensus on any type of hardware, including a virtualized cloud environment.

To develop and experiment with blockchain technology, Hyperledger Sawtooth features Dev mode, a simplified random leader algorithm.

Real-world Application Examples

  • XO: is a sample transaction family included in the Sawtooth SDK¹. It’s an implementation of the popular tic-tac-toe game.
  • Sawtooth Supply Chain: is an application to help you track the source and other contextual information of any asset. You can use it as is or customize it for different cases of use.
  • Sawtooth Marketplace: is an application that allows users to exchange customised amounts of “Assets” with other users in the block chain.
  • Sawtooth Private UTXO: demonstrates how assets can be created and marketed. It shows how to use SGX to allow assets to be transferred to the general ledger and traded privately, where only the parties involved know the details of the transaction.

The Hyperledger Sawtooth framework with its simple architecture not only allows for a very small learning curve, but also makes it easy to set up a network and deploy custom applications, such as a family of transactions, and run it on a scalable DLT network in minutes.

More information,
Docs
GitHub


¹ A software development kit (SDK or devkit) is typically a set of software development tools that allows the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar development platform. (Wikipedia)