Coconut: Threshold Issuance Selective Disclosure Credentials with Applications to Distributed Ledgers.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
coconut
docs
tests
.gitignore
.travis.yml
LICENSE
README.md
setup.cfg
setup.py
tox.ini

README.md

Coconut

license Build Status Documentation Status

Coconut is a novel selective disclosure credential scheme supporting distributed threshold issuance, public and private attributes, re-randomization, and multiple unlinkable selective attribute revelations. Coconut integrates with blockchains to ensure confidentiality, authenticity and availability even when a subset of credential issuing authorities are malicious or offline. Coconut uses short and computationally efficient credentials, and our evaluation shows that most Coconut cryptographic primitives take just a few milliseconds on average, with verification taking the longest time (10 milliseconds). We implement and evaluate a generic Coconut smart contract library for Chainspace and Ethereum.

A link to the full paper is available at the following address: https://arxiv.org/abs/1802.07344

Pre-requisites

Coconut is built on top of petlib and bplib, make sure to follow these instructions to install all the pre-requisites.

Install

If you have pip installed, you can install Coconut with the following command:

$ pip install coconut-lib

otherwise, you can build it manually as below:

$ git clone https://github.com/asonnino/coconut
$ cd coconut
$ pip install -e .

Test

Tests can be run as follows:

$ pytest -v --cov=coconut tests/

or simply using tox:

$ tox

License

The Apache 2.0 license