Giter Club home page Giter Club logo

Comments (10)

wangxiao1254 avatar wangxiao1254 commented on July 30, 2024

calling send_data multiple times should not get impacted by RTT a lot, because all calls are in the same direction anyway. right now, I think we need to do <5 roundtripss per 10^7 gates. What's your statement size? Is it boolean or arithmetic?

from emp-zk.

weikengchen avatar weikengchen commented on July 30, 2024

Yes, exactly---that is why I am unsure.

I am doing a statement in arithmetic polynomial proof systems.

Hard to estimate the number of gates,
but it used 7 million OT triples from VOLE.

from emp-zk.

weikengchen avatar weikengchen commented on July 30, 2024

For the information, the communication taken from io->counter is 500MB. But varying the bandwidth seems to affect little.

from emp-zk.

wangxiao1254 avatar wangxiao1254 commented on July 30, 2024

OOOh, change https://github.com/emp-toolkit/emp-zk/blob/master/emp-zk/emp-zk-arith/ostriple.h#L12 to 1 and see if it works. 8 means we do checking 8 times more frequently (to reduce memory).

For boolean, we used FS so the frequency of checking does not matter much, but for arithmetic, we cannot use FS (not enough concrete security)

from emp-zk.

wangxiao1254 avatar wangxiao1254 commented on July 30, 2024

BTW, the boundary between offline/online phase is not really very clear in our case. To have a clear offline phase, we need to do offline for all gate and store them, and this is a huge memory cost. What we do is that we prepare offline phase for 10^7 each time and then do online for 10^7. Then we switch to offline and do 10^7 of them again. So the #rounds ~ #gates/10^7*small constant

from emp-zk.

weikengchen avatar weikengchen commented on July 30, 2024

After the change in ostriple, the time is still similar.

I will come back to this one later. If useful, I can clean up my code a little bit and share a repo.


And yes. Luckily in my situation, the one big bag of OT triples (10^7) is sufficient for the statement (~6 * 10^6).

Probably also interesting---even in the same machine, proving a statement of 6 * 10^6 is about 2x-3x slower than proving a tiny statement, though both of them use one bag of OT triples (same offline phase). This may reflect that the major overhead is not in the offline time, but in the online time. Does that match the expectation from the protocol?

from emp-zk.

weikengchen avatar weikengchen commented on July 30, 2024

A correction that the number of VOLE being used is 77 million. So there are indeed 8 calls to extension. The last reply contains an incorrect number.

from emp-zk.

wangxiao1254 avatar wangxiao1254 commented on July 30, 2024

Let me summarize: there are two issues: 1) the per-multiplication speed decreases significantly as the latency increase; 2) the per-multiplication speed decreases significantly as the batch size becomes small, even without counting the speed of the offline phase. I suppose all are about the arithmetic setting?

from emp-zk.

weikengchen avatar weikengchen commented on July 30, 2024

I will do a more controlled experiment.

Do you mean the per-multiplication speed "increases" or "decreases" significantly when the latency increases? And here the batch size refers to FP_CHECK_DIV_SZ in ostriple.h specifically?

from emp-zk.

wangxiao1254 avatar wangxiao1254 commented on July 30, 2024

updated! that's right. batch_size = 10^7/FP_CHECK_DIV_SZ

from emp-zk.

Related Issues (10)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.