Coinbase's advanced cryptography library
Use the latest version of this library:
go get github.com/marblexyz/kryptology
Pin a specific release of this library:
go get github.com/marblexyz/kryptology@v1.6.0
Public documentations can be found at https://pkg.go.dev/github.com/marblexyz/kryptology
To access the documentation of the local version, run godoc -http=:6060
and open
the following url in your browser.
http://localhost:6060/pkg/github.com/marblexyz/kryptology/
Prerequisites: golang 1.17
, make
git clone git@github.com/marblexyz/kryptology.git && make
The following is the list of primitives and protocols that are implemented in this repository.
The curve abstraction code can be found at pkg/core/curves/curve.go
The curves that implement this abstraction are as follows.
The generic protocol interface pkg/core/protocol/protocol.go. This abstraction is currently only used in DKLs18 implementation.
- Cryptographic Accumulators
- Bulletproof
- Oblivious Transfer
- Threshold ECDSA Signature
- Threshold Schnorr Signature
- Paillier encryption system
- Secret Sharing Schemes
- Verifiable encryption
- ZKP Schnorr
- Versioning:
vMajor.Minor.Patch
- Major revision indicates breaking API change or significant new features
- Minor revision indicates no API breaking changes and may include significant new features or documentation
- Patch indicates no API breaking changes and may include only fixes