Visa-Research / volepsi

Efficient Private Set Intersection base on VOLE
MIT License
98 stars 31 forks source link

perform [manually] #15

Closed HelloLtc closed 1 year ago

HelloLtc commented 1 year ago

Hi authors, I recently tried to run the example on how to perform [manually] get & send the protocol messages. And I want to obtain the intersection results from the recevier, however it shows that the intersection size is 0 when I use ./frontend -messagePassing.

Code: // that it need to receive a message from the other party. auto protocol = recevier.run(set, sock) | macoro::make_eager(); // Perform the communication and complete the protocol. communicate(protocol, false, sock, verbose); std::cout << "size:"<< recevier.mIntersection.size()<<std::endl; std::cout << "recver done\n";

Output: sender done size:0 recver done

I think its size should be 100, but it is 0. I dont know whither I made a mistake?

ladnir commented 1 year ago

yes, there appears to be a bug. I'll look into it

RindalVisa commented 1 year ago

pushed a fix. There was a new feature to reduce the round complexity from 6 rounds to 3 but that doesnt appear to be working correctly. Turned off the feature and everything is working. This feature is off if the last parameter to setup is false. See here. https://github.com/Visa-Research/volepsi/blob/main/frontend/messagePassingExample.h#L153

ladnir commented 1 year ago

Also fixed the feature issue of using fewer rounds. See this option https://github.com/Visa-Research/volepsi/blob/main/frontend/messagePassingExample.h#L136

When set, the protocol does a bit more work but required fewer messages to be sent.