Re: SMPC on Hyperledger Fabric

Christopher Ferris

+1 to what Gari and Yacov said.


On Aug 9, 2019, at 7:26 AM, Yacov <yacovm@...> wrote:

To elaborate on what Gari said - the MPC parts were using, and there was a Golang wrapper that called that code using swig (
That was in the chaincode, as Gari said.

It was not efficient because in order to send a message to a remote node, the chaincode called another chaincode (system chaincode) which was wired into gossip and used gossip as a message transfer medium.

However, it is possible to augment gossip and have it provide a more native API for messaging from chaincode to other remote instances of the same chaincode.
I have a PoC here:
and it improves the performance of the original MPC based on system chaincode by a magnitude of x1000.

However as Gari said, currently Fabric is undergoing refactoring/restructuring in order to be more flexible to contain new features.

From:        "Gari Singh" <garis@...>
To:        Brian Behlendorf <bbehlendorf@...>
Cc:        fabric@..., huang.pan@...
Date:        08/09/2019 02:14 PM
Subject:        [EXTERNAL] Re: [Hyperledger Fabric] SMPC on Hyperledger Fabric
Sent by:        fabric@...

There is currently no concept of a "contrib" folder and in this case that would not help either.  If I recall correctly, a good part of the code was actually chaincode (written mostly in C/C++ as I recall) and was very limited to a specific use case (an auction).  It also did some unnatural things in the chaincode (like calling chaincode on other machines directly).

I suppose the code could have been put out as some sample chaincode, but we certainly would not have added it under fabric ... would probably be better suited as a lab.

Back to the contrib idea, moving forward this should be possible for augmenting certain parts of Fabric, but we have to finish a bunch of the refactoring that is currently underway in the master branch.

Gari Singh
Distinguished Engineer, CTO - IBM Blockchain
IBM Middleware
550 King St
Littleton, MA 01460
Cell: 978-846-7499

-----Brian Behlendorf <bbehlendorf@...> wrote: -----
To: fabric@..., Gari Singh <garis@...>, huang.pan@...
From: Brian Behlendorf <bbehlendorf@...>
Date: 08/08/2019 09:02PM
Subject: [EXTERNAL] Re: [Hyperledger Fabric] SMPC on Hyperledger Fabric

Does Fabric have the concept of a "contrib" folder or some other prototyping-but-still-in-the-release use-at-your-own-risk way to include early iterations of new functionality? Even if it requires a rewrite before production hosts will commit to supporting it, getting unsupported code in might stimulate others to show up to go that additional mile.  Aside from which arguably every successful product out there escaped from the lab (metaphorically speaking) before it was ready. :). Just seeing this and other recent discussions about minBFT or Tendermint support, etc.


On 9 August 2019 3:46:58 AM GMT+09:00, Gari Singh <garis@...> wrote: It has not and there is no current timeframe.
It’s one thing to write a paper and build a prototype; it’s an entirely different effort to make production grade code.

It would be great if you could write up some of your used cases for MPC either as stories in JIRA or simply in a doc and posting back to the mailing list.

This will help us better understand your requirements and type of capabilities you are looking for.

Gari Singh

On Aug 8, 2019, at 2:42 PM, huang.pan@... wrote:


 Does anyone know if SMPC has been implemented on-chain on Hyperledger Fabric? I'm referring to this paper: 

 If not, is there a timeline for this?



Sent from my Android device with K-9 Mail. Please excuse my brevity.

Join to automatically receive all group messages.