Topics

Smart contract showdown: Hyperledger Fabric vs MultiChain vs Ethereum vs Corda

Christian Cachin
 

FYI -- A comprehensive article that appared recently on the MultiChain blog
contrasts the "contract–message" programming model of Ethereum and Fabric
with the "input–output" model of MultiChain and Corda (and Bitcoin):
https://www.multichain.com/blog/2018/12/smart-contract-showdown/

The critique of Fabric's model illustrates an issue that may indeed arise,
if used as described in the blog:
Fabric's approach to conflict resolution works just fine, but in terms of
performance and flexibility it combines the worst of the previous two
models.

This arises because Fabric's endorsement model aims at scaling along
another dimension, not covered by the article: among independent smart
contracts on the same blockchain. Namely, if the same Fabric blockchain
handles many different altcoins (each represented by its own contract with
different state), then all these can be endorsed in parallel and will not
conflict at validation time, except for transactions that involve two
altcoins. The endorser sets can be the same peers for all coins or a
subset each.

For the design rationale of Fabric, let me refer to the Fabric paper:
https://dl.acm.org/citation.cfm?id=3190538

Cheers

Christian

David Enyeart
 

It is also worth noting that you can model your Fabric chaincode using an input-output (aka UTXO) model, where the chaincode invocation consumes one key and then creates a new key.
You can add any logic you like in the 'consumes' portion of your chaincode logic, for example verify existence of the input, verify that the input's owner is the transaction submitter (using GetCreator() or Client Identity library APIs), and then delete the key so that it cannot be double-spent.


Dave Enyeart


"Christian Cachin" ---12/20/2018 01:16:08 PM---FYI -- A comprehensive article that appared recently on the MultiChain blog contrasts the "contract–

From: "Christian Cachin" <cachin@...>
To: hyperledger-fabric@...
Date: 12/20/2018 01:16 PM
Subject: [Hyperledger Fabric] Smart contract showdown: Hyperledger Fabric vs MultiChain vs Ethereum vs Corda
Sent by: fabric@...





FYI -- A comprehensive article that appared recently on the MultiChain blog
contrasts the "contract–message" programming model of Ethereum and Fabric
with the "input–output" model of MultiChain and Corda (and Bitcoin):
 
https://www.multichain.com/blog/2018/12/smart-contract-showdown/

The critique of Fabric's model illustrates an issue that may indeed arise,
if used as described in the blog:
 Fabric's approach to conflict resolution works just fine, but in terms of
 performance and flexibility it combines the worst of the previous two
 models.

This arises because Fabric's endorsement model aims at scaling along
another dimension, not covered by the article: among independent smart
contracts on the same blockchain. Namely, if the same Fabric blockchain
handles many different altcoins (each represented by its own contract with
different state), then all these can be endorsed in parallel and will not
conflict at validation time, except for transactions that involve two
altcoins.  The endorser sets can be the same peers for all coins or a
subset each.

For the design rationale of Fabric, let me refer to the Fabric paper:
 
https://dl.acm.org/citation.cfm?id=3190538

Cheers

Christian