Giter Site home page Giter Site logo

powersoftau's Introduction

powersoftau

powersoftau is an independent implementation of the Powers of Tau MPC ceremony.

It is written in Go, shares no code with the main Rust implementation, and uses the RELIC toolkit for BLS12-381.

Installation

You will need a recent version of Go (1.9+ is known to work) and a C compiler.

git clone --recursive https://github.com/FiloSottile/powersoftau $(go env GOPATH)/src/github.com/FiloSottile/powersoftau
cd $(go env GOPATH)/src/github.com/FiloSottile/powersoftau && make
export CGO_LDFLAGS_ALLOW=".*\.a" # only needed for Go version 1.9.4
go install github.com/FiloSottile/powersoftau/cmd/taucompute
$(go env GOPATH)/bin/taucompute --help

Usage

Usage of taucompute:
  -challenge string
    	path to the challenge file (default "./challenge")
  -next string
    	path to the next challenge file, optional
  -pprof
    	run a profiling server; use ONLY FOR DEBUGGING
  -response string
    	path to the response file (default "./response")

To facilitate running multiple implementations of Powers of Tau, you can run taucompute with the -next flag, which will also write a new challenge file once done with the computation. NOTE: you will have to submit both response files.

powersoftau's People

Contributors

filosottile 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

Watchers

 avatar  avatar  avatar

powersoftau's Issues

Verifier

It seems like it would be easy to build the verifier in this codebase too.
The verify_transform function in Sean's codebase is a reference for verifier functionality (though don't look ). In any case it's confusing to me how to use that. Since we're mostly posting response files online, rather than challenge files, you'd have to get the previous challenge file to verify the ZcashFoundation/powersoftau-attestations blockchain. This could be an issue on Sean's github too, but it's also nice that codebase has been stable.

Verify or replace G2 coefficient value

The G2 coefficient value, used to scale in hash_to_g2, was copied verbatim from the Rust implementation. It should be checked, or replaced with a RELIC function.

bn_read_str(k, "5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5", 127, 16); // FROM RUST IMPLEMENTATION // TODO: verify

Upstream issue: relic-toolkit/relic#64

Origin story?

Thanks for this awesome contribution, I've been really hoping to see an independent implementation of the Powers of Tau code.

You mentioned in your public debut at the zapps-wg mailing list that you were sponsored by Zcash Co. Could you share some details here about how that worked?

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.