Comments (3)
One has to keep in mind that this project is very much focused on providing a foundation for applications we build (or help building) rather than on general why-not-this-n-that coverage. With this in mind. As far as MSM goes, Pasta curves are supported through pasta-msm, grumpkin can be put together by swapping fr_t and fp_t from alt_bn128 when instantiating MSM. As for NTT, there are parameters for Pasta curves, and NTT is not applicable to grumpkin. As for secp256* curves. While it's possible to instantiate secp256k1, there would be room for performance improvement left, both on GPU and CPU sides, hence no. As for secp256r1, it won't work as is, because for the moment of this writing sppark supports only y^2=x^3+b
curves. Maybe some day...
from sppark.
Thank you very much for your answer. I understand your point very well, and thank you for your contribution to sparkpark, which is very beneficial to me and my team.
My recent work is trying to implement the interface of the bn256 curve in sppark (maybe that is, the bn254 curve on ark) to the halo2 algorithm to achieve GPU acceleration of the halo2 algorithm. Regarding this work, I would like to ask if there are any risks in this work in sppark? Or is there something wrong with my statement?
By the way, I noticed that you mentioned "sppark supports only y^2=x^3+b curves." above, but in the actual sppark code, bn254 curves are supported. I am a little confused about this.
Looking forward to your answer very much. Thanks again :)👍
from sppark.
I don't quite follow which "risks" you're referring to. bn254 (a.k.a. alt_bn128) was verified to work in production, if this is what you're wondering about... Just in case, "bn254" is an ambiguous term, because it can refer to a different curve. Additional reference to alt_bn128 removes the ambiguity.
As for the y^2=x^3+b
formula. All mentioned curves except for secp256r1 are described by it. secp256r1 on the other hand is described by y^2=x^3+ax+b
, it's that extra ax
term that is not currently supported by sppark. And I brought it up, because the curve was mentioned on the url you've provided.
from sppark.
Related Issues (20)
- Implementing Display for error HOT 4
- WebGPU support HOT 1
- Upcoming error in rust crate HOT 2
- sppark/ff/mont_t.cuh(721): error: identifier "i" is undefined HOT 3
- vec256 type declaration HOT 7
- pasta_curve parameters HOT 1
- missing headers in `ff` module HOT 1
- missing definition of basic types HOT 1
- Race condition in msm/sort.cuh HOT 3
- how to understand the implementation of `reduce(uint32_t temp[4])` HOT 3
- gl64, the + result is incorrect when both operands > p HOT 1
- Compilation error (observed from pasta-msm) HOT 9
- what is the definition of `const uint32_t& M0` in mont_t.cuh HOT 1
- failed to run custom build command for `sppark v0.1.5' HOT 1
- data copy time fluctuating while concurrent NTT invokation HOT 1
- fork safety issue HOT 7
- A question about Montgomery mult (form ff/mont_t.cuh) HOT 1
- Trying to combine MSM and NTT into single kernel HOT 5
- NTT curve support HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sppark.