Comments (9)
To share some design choices - yeah, it's the most direct choice - our message isn't secret and it won't be horrible if some validators are malicious and craft some inputs that take a few tries. Most won't anyway, because of the honesty assumptions. But yeah, it has these downsides.
There are other methods we've looked at which wouldn't be too bad in our case - Fouque-Tibouchi for example. BLS12-377 doesn't have a good low-degree isogeny from what we've seen and so the method that's being used now for BLS12-381 won't work directly.
from curves.
This has been implemented in algebra
, and there is in progress support for this in curves
.
from curves.
Yes! cc @ValarDragon @kobigurk
from curves.
Hi! We have a generic implementation over Arkworks that uses "try and increment" here: https://github.com/celo-org/celo-bls-snark-rs/, that can definitely be ported. The downside is that it doesn't have a constant amount of operations and is not constant time in general.
from curves.
Are you guys using "try and increment" with the counter outside the SNARK to reduce the constraint count?
I have not dug looked into https://github.com/cfrg/draft-irtf-cfrg-hash-to-curve in ages, but some authors had thoughts on doing hash-to-curve inside a SNARK once.
from curves.
That said, I realized now that you said that the authors did mention SNARKs! I'll try to find it. If you have a reference I'd appreciate it.
from curves.
How about this one for BLS: https://eprint.iacr.org/2019/403.pdf?
from curves.
Yeah, that one covers all the j = 0 curves that have an efficient isogeny from a j ≠ 0 curve, including Pallas and Vesta, secp256k1, etc.
What are yous' opinions on how to handle the isogenous curves?
a) a full curve implementation;
b) just enough to do addition and to compute the isogeny.
from curves.
There are other methods we've looked at which wouldn't be too bad in our case - Fouque-Tibouchi for example. BLS12-377 doesn't have a good low-degree isogeny from what we've seen and so the method that's being used now for BLS12-381 won't work directly.
BLS12-377 has a suitable 2-isogeny on G1 and a suitable 23-isogeny on G2 to implement Wahby-Boneh SSWU. You can find parameters here (G1) and here (G2).
from curves.
Related Issues (20)
- Ate pairing count of CP6-782 HOT 2
- Plan to handle curve25519 and ed25519
- Prepared G2 for CP6-782 HOT 3
- Use workspace inheritance to reduce duplication in crate `Cargo.toml`s
- Add Sonny Curve to Library HOT 5
- Publish & tag 0.4.0-alpha
- Curve master should always be patched to depend on Algebra master
- Benchmarks for pairings are not executed HOT 2
- Slow affine multiplication for ed_on_bls12_377 HOT 4
- MSMs slower than doing individual scalar multiplications HOT 5
- In version 0.3, `multi_scalar_mul` output is incorrect if scalar exceeds curve order. HOT 1
- Hash to G1 point setting different domain string HOT 1
- cargo build fails HOT 5
- How to run `bls12_isogeny_computer.sage` script? HOT 2
- Hash to scalar? HOT 1
- Generator mismatch with bandersnatch implementation and the published paper HOT 4
- Secp384r1 discussion HOT 1
- Clarification on incomplete Twisted Edwards curves HOT 7
- Modification of `ed_on_bw6_761` HOT 5
- Documentation for ark_ed_on_bls12_381 incorrectly refers to BLS12-377 HOT 2
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 curves.