/nym

The Nym privacy platform

Primary LanguageGoGNU Affero General Public License v3.0AGPL-3.0

CoconutGo

License: AGPL v3

This is a Go implementation of the Coconut selective disclosure cerendtial scheme by Sonnino et al.: https://arxiv.org/pdf/1802.07344.pdf. It supports threshold issuance on multiple public and privMate attributes, re-randomization and multiple unlinkable selective attribute revelations.

The implementation is based on the existing Python version: https://github.com/asonnino/coconut

Pre-requisites

To run the code, you only need to follow the standard Go installation procedure as described in https://golang.org/doc/install.

All of the requiered dependencies are attached in the vendor directory.

Test

In order to run tests, simply use the following:

go test -v ./...

Benchmarks

The benchmarks were performed on 64bit Ubuntu 18.04.1 LTS VM with 2 cores of 3.6GHz Ryzen 1600 assigned. Each individual benchmark was run single-threaded for 1 minute with -benchtime=60s flag.

REQUIRE RERUNNING