-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature]: 关于SPDZ2k协议的实现问题 #967
Comments
从实现上,tinyot是MPC based beaver的一种具体实现,而TFP则是假设有可信第三方;
并没有,tinyot版本基于OT/VOLE来实现 |
另外,spdz2k协议当前我们并没有持续维护的打算,所以里面的实现很多都比较naive,仅供参考~ |
我看tinyot的初始化里有下面这段代码。p0充当可信方收集了其他参与方的种子
因为我们想做一些恶意安全的协议,所以希望可以在spdz2k的基础上做一些改动,目前是不打算将这个协议作为一个稳定协议发布吗? |
这部分应该是从TFP那边copy过来的,没有仔细检查-。- 我们目前人力不是很充足,恶意安全协议主要也是学术 only,短期内应该没有对它优化的计划(包括其他kernel的开发); |
好的,非常感谢您的解答。spu中的VOLE和yacl中的实现有本质区别吗,以及运行效率相差会很大吗? |
spdz2k里的VOLE是用的cheetah里的ferret of emp 实现;和yacl的ferret运行效率差不多;现在SPU Cheetah默认都使用YACL的ferret或者softspoken实现 |
好的了解了,非常感谢! |
您好,我还有一点关于vole的实现的问题想要提问
假如有三个参与方,那么worldsize=3,对于p0来说
是不是意味着一开始就确定好了发送方和接收方是谁,那这样的话p0怎么能又和p1做vole又和p1做一次vole,关于那两个参与方之间进行了vole这个问题我不是很理解,我应该去阅读哪个文件呢? |
Rank 0是特殊的(现在是写死的),具体可以看BasicOTProtocols的构造函数 BasicOTProtocols::BasicOTProtocols(std::shared_ptr<Communicator> conn)
: conn_(std::move(conn)) {
SPU_ENFORCE(conn_ != nullptr);
if (conn_->getRank() == 0) {
ferret_sender_ = std::make_shared<FerretOT>(conn_, true);
ferret_receiver_ = std::make_shared<FerretOT>(conn_, false);
} else {
ferret_receiver_ = std::make_shared<FerretOT>(conn_, false);
ferret_sender_ = std::make_shared<FerretOT>(conn_, true);
}
} |
感谢您的回答,这段代码我查看了,在我的理解里这段代码是用来初始化的,让p0刚开始先发送后接收,其他参与方先接收后发送,这是为了避免死锁。
但是我没有找到ferret_receiver_在哪里被更新了。比如下面这段代码
|
Feature Request Type
Build/Install
Have you searched existing issues?
Yes
Is your feature request related to a problem?
spdz2k中的测试实例化有两种,其中makeMpcSpdz2kProtocol使用了beaver_tinyot,但是关注到里面也有TrustedParty,所以使用tinyot版本的spdz2k是否也是用了可信第三方来生成乘法三元组?或者是在其他地方有一部分使用了可信第三方?比如种子分发阶段等。
Describe features you want to add to SPU
A clear and concise description of what you want to happen.
Describe features you want to add to SPU
A clear and concise description of any alternative solutions or features you've considered.
The text was updated successfully, but these errors were encountered: