Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mottla/solidity-ringsignature
Ring-Signature using secp256k1 in Solidity
https://github.com/mottla/solidity-ringsignature
ring-signature solidity solidity-ringsignature vote
Last synced: 2 months ago
JSON representation
Ring-Signature using secp256k1 in Solidity
- Host: GitHub
- URL: https://github.com/mottla/solidity-ringsignature
- Owner: mottla
- License: apache-2.0
- Created: 2018-07-06T09:43:04.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-07-06T14:56:13.000Z (over 6 years ago)
- Last Synced: 2024-06-21T15:36:34.343Z (8 months ago)
- Topics: ring-signature, solidity, solidity-ringsignature, vote
- Language: Go
- Size: 1.56 MB
- Stars: 12
- Watchers: 0
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Solidity-RingSignature
Ring-Signature using secp256k1 in Solidity for educational purpose. Allows untracable voting and coin transfer within the EVM environment.
First implementation of "Linkable Spontaneous Anonymous Groups Signature [REF](https://bitcointalk.org/index.php?topic=972541.msg10619684#msg10619684)."-Verification in solidity.
secp256k1 is forked from [jbaylina](https://github.com/jbaylina/ecsol)##Note
LSAG-signature voting with 3 cosigners requires ≈ 12.34 mGas. ECC operations are costly^^ use a testnet!## Guide
1. Deploy secp256k1.sol on an ethereum chain
2. Deploy UntraceableVoting.sol (pass the secp256k1 contract address in the constructor)
3. Run main.go, to create a random set of "n voters and m candidates" and "signatures for each voter, to vote on on of the randomly selected candidates"
4. copy the newly generated text in solargs.txt and pass them as arguments for the creation and setup a voting on the chain
5. in vote.txt you'll find randomly generated valid vote parameters, pass them as argument for AnnonymousVote(..) function in UntraceableVoting.sol## Requirements
[Go](http://golang.org) 1.9 or newer.
## Getting Started
- Solidity-RingSignature (and utilities) will now be installed in either ```$GOROOT/bin``` or
```$GOPATH/bin``` depending on your configuration. If you did not already
add the bin directory to your system path during Go installation, we
recommend you do so now.## Updating
#### Windows
Install a newer MSI
#### Linux/BSD/MacOSX/POSIX - Build from Source
- **Dep**
Dep is used to manage project dependencies and provide reproducible builds.
To install:`go get -u github.com/golang/dep/cmd/dep`
Unfortunately, the use of `dep` prevents a handy tool such as `go get` from
automatically downloading, building, and installing the source in a single
command. Instead, the latest project and dependency sources must be first
obtained manually with `git` and `dep`, and then `go` is used to build and
install the project.**Getting the source**:
For a first time installation, the project and dependency sources can be
obtained manually with `git` and `dep` (create directories as needed):```
git clone https://github.com/mottla/Solidity-RingSignature.git
cd $GOPATH/src/github.com/Solidity-RingSignature
dep ensure
go install . ./cmd/...
```To update an existing source tree, pull the latest changes and install the
matching dependencies:```
cd $GOPATH/src/github.com/Solidity-RingSignature
git pull
dep ensure
go install . ./cmd/...
```