Pysyft: Multiparty Computation Prototype - Secret Sharing Part 1

Created on 5 Oct 2017  路  16Comments  路  Source: OpenMined/PySyft

Recently, we implemented a first prototype Multiparty Computation tensor here: https://github.com/OpenMined/PySyft/blob/master/notebooks/MPC%20Tensor%20Proof%20of%20Concept%20Demo.ipynb

This was based off of the following post from our OpenMined contributor @mortendahl:
http://mortendahl.github.io/2017/04/17/private-deep-learning-with-mpc/

@mortendahl also wrote an excellent followup post with a more advanced MPC scheme. As a next step in our PySyft library, we'd like to have a NEW MPCTensor prototype based on this more advanced scheme. The full tutorial for this scheme can be found here.
http://mortendahl.github.io/2017/06/04/secret-sharing-part1/

Acceptance Criteria:

  • everything in the first MPC Demo Notebook can be done using the new technique
  • Initialize unit testing suite around that functionality.
Type

Most helpful comment

hey guys, sorry for being a bit slow these days. don't do anything yet, there's a much better scheme coming out soon, hopefully a draft within the next day or two! :)

All 16 comments

seems pretty interesting, I'd like to give it a try. A word of advice?

I would like to collaborate on this issue.

hey guys, sorry for being a bit slow these days. don't do anything yet, there's a much better scheme coming out soon, hopefully a draft within the next day or two! :)

hi all,

just pushed a draft of the SPDZ scheme i was talking about here -- it's still a WIP but the basics of the protocol should be intelligible

the big advantage of SPDZ over the shamir schemes is that a lot of the processing can be pushed to an offline phase, or alternatively an independent "crypto provider". the disadvantage is that it cannot handle any of the computing parties disappearing.

馃憤 This is awesome!!! Great work sir!!! Let's definitely go for this scheme instead!!

@withai and @sakchhams - any questions on the approach above? Are you still interested in working on it?

Yes, I want to work on this.

Yes, I would like to work on it.

Excellent! @sakchhams could you create a branch for this project so we can get started?

Have you guys been able to get the code in @mortendahl 's post to run?

thanks a lot @iamtrask! :)

@withai @sakchhams i'll try to fill in the missing code asap, and in the meantime i'm happy to help you guys getting something up and running if you want to give it a try

@iamtrask @mortendahl pardon me for being so unresponsive and slow, something came I up, I'll try and create a notebook based on the post, I'll keep you posted.

I had implemented the MPCTensor according to SPDZ spec, but I am having issues related to multiplication in MPCRepo @mortendahl @iamtrask @sakchhams can you help me with that.
https://github.com/withai/PySyft/tree/MPCTensor-SPDZ

I have also created a notebook - https://github.com/withai/PySyft/blob/MPCTensor-SPDZ/notebooks/MPC%20Tensor%20SPDZ.ipynb (multiplication values have blown up)

it's not clear to me that truncating the intermediate values instead of the final result will work out -- did you make sure this is okay?

That was done on a trial and error basis. I don't think it solves. I should remove it.

Looking quite good! Current state is here https://github.com/OpenMined/PySyft/pull/326

Was this page helpful?
0 / 5 - 0 ratings

Related issues

iamtrask picture iamtrask  路  4Comments

swaroopch picture swaroopch  路  4Comments

akirahirohito picture akirahirohito  路  3Comments

samsontmr picture samsontmr  路  3Comments

MetaT1an picture MetaT1an  路  3Comments