Comments (7)
@davidnevadoc (and possibly others) will do some checks to the paper and discuss whether to go for an implementation as this requires to change the macros that implement everything for the curves.
from halo2curves.
Sounds good.
My demo has shows that both the group law can be integrated to both arkworks and halo2.
The tricky part here is that it requires standard projective coordinates, while arkworks/halo2 both uses jacobian coordinates.
I see two way to move forward
- have a simple MSM api that internally use RCB15 -- this is where performance is critical anyway -- and leave the rest untouched. This is simpler and can be done quite quickly
- to completely redo the curve trait which may take quite some time
Option 1 could serve as a temp patch until 2 is ready
from halo2curves.
updates: it looks like arkworks 0.4.0 uses 9 mul, incomplete version over jacobian coordinates.
maybe that is a better choice as it doesn't require a change of coordinate system
no arkworks also used 16 mul version
from halo2curves.
I think @kilic has already started to implement the Field encoding required for this. So we should be able to adopt it soon.
from halo2curves.
very nice!
from halo2curves.
I went for approach number 2 and switched to homogeneous coordinates. Are you aware of any downsides of using these instead of jacobian coordinates? @zhenfeizhang
Aside from a comment made in this issue regarding hash to curve, I haven't found anything.
from halo2curves.
I am not aware of any downside other than that the doubling is slightly more costly IIRC
from halo2curves.
Related Issues (20)
- Different output of bn256::G1::hash_to_curve between vanilla & asm branches HOT 11
- Refactor `BN` curves. HOT 1
- about serialization of bn254 curve point HOT 10
- MSRV broken again in CI by dependencies HOT 1
- Add function in new_curve_impl has a wrong result HOT 1
- Hitting import issues on x86_64-unknown-linux-gnu from maybe_rayon crate HOT 4
- Add more info in regards impossibility to compile the lib with `multicore` feature to `wasm` targets HOT 1
- Remove `multicore` feature from `msm` bench HOT 1
- Enabling serialization feature in `pasta_curves`
- subtle v2.4 causes compilation errors HOT 1
- Add typos tool to CI to automate typo detection
- Re-define & unify the serialization for all primitives here and in any downstream crates
- Support various hash functions at `expand_message` part of hashing to curve
- Bad subgroup check or cofactor clearing in G2 pluto
- Continue `multiexp_serial` skips doubling when all bits are zero.
- RFC: Move MSM and FFT in this repo and offer a standard interface HOT 2
- Fix error in WithSmallOrderMulGroup impl for Bn254::Fr HOT 2
- Duplicated `mul_by_nonresidue` function in `Bn256` field extensions HOT 1
- Simplify `frobenius_map` in `bn256` HOT 1
- New crate release 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 halo2curves.