12

I understand that hyperledger sawtooth lake uses new secure CPU instructions to achieve Proof of elapsed time (PoET)

Does this mean that hyperledger sawtooth lake can only be used with Intel hardware? Can other chips be used?

Dan Anderson
  • 2,265
  • 1
  • 9
  • 20
Nathan Aw
  • 545
  • 5
  • 18

3 Answers3

7

Short answer: No. Sawtooth is not Intel-only.

Hyperledger Sawtooth is a hardware neutral blockchain stack. It contains an optional SGX feature to harden consensus.

As of v0.8x Sawtooth contains 3 consensus options:

  1. DevMode - used for development and testing
  2. PoET (Simulated Enclave) - Provides limited Byzantine Fault Tolerance
  3. PoET (SGX Enclave) - Enforces Byzantine Fault Tolerance using Intel SGX.

As Haim points out the PoET spec is written to be flexible to other or future Trusted Execution Environments.

Updated docs link: https://sawtooth.hyperledger.org/docs/core/releases/latest/

Bharat Mallapur
  • 674
  • 9
  • 17
Dan
  • 136
  • 3
6

There's some misstatements I need to correct here:

  • Hyperledger Sawtooth has "pluggable consensus" allowing multiple consensus algorithms, including PoET. See https://sawtooth.hyperledger.org/docs/core/releases/latest/introduction.html?highlight=poet%20simulator#pluggable-consensus-algorithms
  • The PoET Simulator is for non-Intel or non-SGX-hardware, including cloud environments.
  • The PoET Simulator is secure, it is for production use. This is due to multiple layers of security and sanity checks.
  • Edit: recently added to Sawtooth is the RAFT consensus algorithm. Consensus algorithm that elects a leader for a term of arbitrary time. Leader replaced if it times-out. Raft is faster than PoET, but is not Byzantine Fault Tolerant, BFT, (Raft is only Crash Fault Tolerant, CFT). Also Raft does not fork.
Dan Anderson
  • 2,265
  • 1
  • 9
  • 20
5

Quoting the introduction section in the specification:

The initial reference implementation of PoET released to Hyperledger was written for an abstract TEE to keep it flexible to any TEE implementation. This specification defines a concrete implementation for SGX.

That means that the theoretical idea of PoET is not limited to a specific implementation, however, the concrete implementation is based on SGX (Software Guard Extensions) which is, as far as I know, the only available TEE (Trusted Execution Environment) that supports it.

Intel SGX is a technology for application developers to protect selected code and data from disclosure or modification, and enables the software to attest for the authenticity of the running code. (More on SGX can be found here).

SGX instructions are available on 6th generation (Skylake) Intel Core processor (or later) and also requires BIOS support.

Haim Cohen
  • 333
  • 1
  • 6
  • I noticed that v0.7 "Sawtooth Lake" has a simulated PoET that works like a real SGX version would, but isn't secure and doesn't use SGX. https://intelledger.github.io/0.7/introduction.html. So there *is* an implementation not requiring SGX which you could use for testing, I guess? – Peter Cordes Sep 12 '17 at 19:44
  • @PeterCordes I guess Sawtooth Lake implemented their own simulation layer, but also SGX has a simulation that will behave correctly, the main difference that it will not be able to attest to other enclaves or attestation server. – Haim Cohen Sep 13 '17 at 02:22
  • 1
    @PeterCordes, yes Sawtooth features hot-swappable consensus algorithms (PoET simulator being one of them). So it is not inherently tied PoET. It is also true that PoET could be supported on non-Intel hardware at some point. – Zac Delventhal Mar 15 '18 at 15:40
  • The PoET with a simulated TEE/SGX enclave is secure and is for production use, but provides only CFT (Crash Fault Tolerance) instead of the higher-level BFT (Byzantine Fault Tolerance). The difference is BFT guards against malicious actors and CFT guards against crashes and downed nodes. Also PoET provides defense-in-depth. For example, the PoET Z Test tests that a block-claiming validator is not winning too frequently. – Dan Anderson Oct 01 '18 at 22:06