Implementation of linkable ring signatures using elliptic curve cryptography in Go. This prototype is research code and should not be used with sensitive data. It definitely has bugs!
To start using linkable ring signatures, install Go 1.14 or above and build:
$ go build
$ go test ./...
Before starting you have to generate the signers public and private keys and a folder with public keys. Create key pairs:
$ lrs --gen
$ lrs --sign /path/to/pubkey/dir /path/to/privkey.priv message.txt
$ lrs --verify /path/to/signature.sig
$ lrs --link /path/to/signature1.sig /path/to/signature2.sig
$ lrs --benchmark 1000
Linked ring signature:
Total avg sign time was 0.771589(0.009996)
Total avg verify time was 0.765127(0.013479)
Simple ECC signature:
Total avg sign time was 0.0001766443(0.0001004724)
Total avg verify time was 0.0000000856(0.0000000311)
This implementation is based on ring-go and the Monero paper Ring Confidential Transactions