What are the main differences for these two platforms (I know that Burrow runs EVM style smart contracts in a permissioned environment. Does that mean Burrow supports all the different smart contract languages as Ethereum does? What consensus algorithm is Burrow using? Ethereum uses Ether for transaction fees, what does Burrow use?)?

Thanks for answering.


I can only speak to the Burrow implementation in Hyperledger Sawtooth Lake. It is implemented as a transaction family called seth.

This is an EVM implementation. As such it is agnostic toward high-level languages and consensus.

Language: The native language of the Ethereum Virtual Machine (EVM) is "bytecode". This is a decidedly simple assembler-like set of opcodes for a stack-based computer. Solidity is the most popular language at this time. Solidity, like LLL, Serpent, and Vyper (apologies if I left someone out) compiles down to bytecode, and it's the bytecode that actually runs on the EVM. So, one can use Solidity or one of the others mentioned to create bytecode for Burrow-based platforms.

Consensus: This is often misunderstood by newcomers. It is not, as the label might seem to imply, concerned with running contracts or determining the results. That's the EVM's job. Due to the deterministic nature of bytecode and the EVM specification, there is no subjectivity in the results of transactions or contract functions. No subjectivity => nothing to disagree about => so, no need for "consensus".

So what is the consensus about?

The various blockchain consensus systems are concerned with transaction ordering. At the risk of great over-simplification, Proof-of-work (PoW) systems are fashioned after a lottery. This is far from the only way for a set of nodes to reach eventual consensus about the question of transaction order.

Hyperledger Burrow isn't concerned with consensus. Hyperledger Sawtooth Lake, for example, offers an assortment of consensus processes with various advantages and trade-offs: https://sawtooth.hyperledger.org/faq/consensus/#what-consensus-algorithms-does-sawtooth-support.

In summary, you can

  1. write contracts in Solidity, or one of the alternatives
  2. compile to bytecode
  3. Hyperledger Sawtooth Lake's EVM transaction family, based on Burrow
  4. And the network can use any of the several supported consensus algorithms, which is always a property of the network.

Since you asked about differences. None of those algorithms use financial rewards to secure the network, but artifacts like Ether and gas exist in the code. It would break backward compatibility to completely remove them. Look for significantly different treatment of ether and gas, e.g. arbitrarily high block gasLimits.

Another difference that is important from a developer perspective. Hyperledger Sawtooth Lake has these things called Transaction batches. Multiple transactions are bundled into a higher-order grouping and the execution of the batch as a whole is atomic - either the whole batch runs completely, or not at all. This is a feature of the underlying platform, at the consensus level.

This gives developers a way to build up more complexity than might be possible in a single EVM transaction. When working with Ethereum one needs to take care to ensure that contract states are valid/complete after every transaction because there is no guarantee that another transaction from another user won't sneak in between parts of a multistep process. Batches are a way to ensure, step 1, step 2, step 3 (and only those steps) run together without interference. So, you can do things in that environment that would pose a security concern it you used the same contract on the public network.

As an aside, you might also want to look a Quorum which is also based on the EVM, offers several consensus algorithms and extends the transaction model to include "private" transactions that are distributed only to specific parties instead of broadcast to the entire network of participants.

Hope it helps.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.