ghoshbishakh / pci

Implementation of PCI based on MPSPDZ. Please follow instructions in README below.
Other
3 stars 3 forks source link

Failure in multi-party settings and unbalanced scenarios #5

Open ShallMate opened 3 months ago

ShallMate commented 3 months ago

Hello,

I am unable to run programs for three or more participants, whether it is ./mascot-ecdsa-party.x or ./mascot-bls-party.x. Additionally, I cannot set different input sizes for different participants. Could you please let me know if the current program does not support these features?

Thank you!

ghoshbishakh commented 3 months ago

Current program does not support multi party directly. You have to make some changes to get multi party setup. Different input sizes is supported.

ShallMate commented 3 months ago

However, using different parameter -I does not allow the program to run successfully. How should I execute the program?

ShallMate commented 3 months ago

However, using different parameter -I does not allow the program to run successfully. How should I execute the program?

@ghoshbishakh

ghoshbishakh commented 3 months ago

You are right, the implementation considers same input set sizes here. What you would need to do is edit

https://github.com/ghoshbishakh/pci/blob/pci_final/bls/ot-bls-party.hpp#L186-L194

Instead of taking input only one argument -I , take I1 and I2 for two parties.

Then edit the relevant loops, for example:

https://github.com/ghoshbishakh/pci/blob/pci_final/bls/ot-bls-party.hpp#L609-L617

ShallMate commented 3 months ago

Excuse me, I would like to know if PCI actually does not support multi-party settings with a complexity of O (N ^ 2). Although the paper mentions methods for extending to multiple parties. But I feel that it cannot be well extended to multiple parties. @ghoshbishakh

ghoshbishakh commented 3 months ago

PCI ALL can be extended to n-party setting. It is outlined in Section 5.2 of the preprint: https://eprint.iacr.org/2022/1302.pdf

I believe the complexity will be O(n^2)

You need to implement one outer loop, and n-1 inner loops here: https://github.com/ghoshbishakh/pci/blob/pci_final/bls/ot-bls-party.hpp#L609-L617

ShallMate commented 3 months ago

However, what I am actually more concerned about is PCI - ANY, which I believe cannot be extended to N participants without changing the complexity. @ghoshbishakh

ghoshbishakh commented 3 months ago

@ShallMate claims will be any ways disclosed, so actually it will be PCI-Any-DC. The ECDSA PCI-ANY-DC for n-party is trivial with complexity O(c^n). Getting it back to O(n^2) will require some tricks, possibly by hashing group elements to field elements. It is well discussed from Page 33 of the preprint. https://eprint.iacr.org/2022/1302.pdf