Giter VIP home page Giter VIP logo

powersoftau's People

Contributors

ebfull avatar garethtdavies avatar petertodd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

powersoftau's Issues

Optionally disable system RNG

In order to make it easier for participants to follow "Eliminating the possibility of backdoors with high probability", it would be good if the system RNG could be disabled so that only user-provided entropy is used.

The user would then be able to record the input entropy in randomly-chosen N-1 of N compute runs and verify that no tampering took place using alternative software and environments.

Something like --disable-rng or --without-rng?

Since measuring entropy is kind of difficult/onerous, I'm tempted to say that only the most basic checks should be used (number of input characters), and leave the rest up to the user?

Using powers of tau setup parameters for KZG10

I'm interested in seeing if it's possible to leverage the powers of tau as they exist in the zcash downloads for constructing the reference string needed in KZG10.

KZG10 is constructed via pairings meaning it needs a reference string in bls12381 G1 and g^alpha in G2.

After speaking with @ebfull the G1 portion can be extracted from the h parameter here, but the question still remains as to where / how to extract g^alpha in G2.

Any insight would be greatly appreciated

support bn128

the original snarkjs setup is too slow. consider support bn128?

I want to understand some concepts

I know that the trusted setup requires random numbers and circuits to be used together, and if the random numbers are not random enough or leaked, the entire zkp may have security risks

And I also know that zcash held the powers of tau ceremony in 2017, and more than 90 people participated, and generated this random number (in theory as long as one person deletes the original data, we are safe enough now )

But I want to ask:

  1. Why multi-party secure computing can be expanded from six people to more than 90 people, and as long as one of these 90 people deletes the original data, we are safe enough

  2. In powersoftau, are we using the public random number they generated at the time and we are enhancing its security every time we use it?
    This is an interesting question, because I know that during ceremony, someone even ran into a helicopter to generate numbers, in order to prevent themselves from being attacked and eavesdropped, what a crypto world!

  3. I see that the initialization of snarkjs needs to use powersoftau, so are we contributing every time we generate random numbers? What is the relationship between these two projects before, or is it just a simple call, if necessary, I can also take a look at the source code myself

All in all, I am deeply attracted by cryptography and look forward to the future that zkp can create, not just privacy and scale

Hope you guys can answer my question or even give me some information for my own research

Memory isn't zeroed

I'm having trouble locating the code that zeroes memory containing the seed that is is computed in src/bin/compute.rs.

As far as I can tell the following bytes need to be zeroed so the value isn't leaked after the program terminates:

  • the private key
  • bytes gathered from OsRng (r)
  • the text entered by the user (user_input)
  • the hash computed from the previous two (h)
  • the buffer seed that holds a copy of h (digest is only a pointer as far as I can tell)
  • rng, the ChaChaRng that is created from that seed
  • possibly some temporary variables in keypair(...) and Accumulator::transform(...)

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.