Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/coinbase/kryptology
https://github.com/coinbase/kryptology
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/coinbase/kryptology
- Owner: coinbase
- License: apache-2.0
- Archived: true
- Created: 2021-11-02T23:15:27.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-09-08T15:31:24.000Z (almost 2 years ago)
- Last Synced: 2024-04-14T16:48:49.827Z (3 months ago)
- Language: Go
- Size: 4.83 MB
- Stars: 839
- Watchers: 31
- Forks: 124
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Audit: audits/Coinbase_BLS-12381_Audit_report.pdf
- Security: SECURITY.md
Lists
- awesome-stars - coinbase/kryptology
- awesome-tss - kryptology (Coinbase)
- my-awesome-stars - coinbase/kryptology - (Go)
README
# Important
This library has been archived and is no longer supported. As such it should not be used, and it is not used by Coinbase.# Kryptology
Coinbase's advanced cryptography library## Quickstart
Use the latest version of this library:
```$xslt
go get github.com/coinbase/kryptology
```Pin a specific release of this library:
```$xslt
go get github.com/coinbase/[email protected]
```## Documentation
Public documentations can be found at https://pkg.go.dev/github.com/coinbase/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/coinbase/kryptology/
## Developer Setup
**Prerequisites**: `golang 1.17`, `make````$xslt
git clone [email protected]/coinbase/kryptology.git && make
```## Components
The following is the list of primitives and protocols that are implemented in this repository.
### Curves
The curve abstraction code can be found at [pkg/core/curves/curve.go](pkg/core/curves/curve.go)
The curves that implement this abstraction are as follows.
- [BLS12377](pkg/core/curves/bls12377_curve.go)
- [BLS12381](pkg/core/curves/bls12381_curve.go)
- [Ed25519](pkg/core/curves/ed25519_curve.go)
- [Secp256k1](pkg/core/curves/k256_curve.go)
- [P256](pkg/core/curves/p256_curve.go)
- [Pallas](pkg/core/curves/pallas_curve.go)### Protocols
The generic protocol interface [pkg/core/protocol/protocol.go](pkg/core/protocol/protocol.go).
This abstraction is currently only used in DKLs18 implementation.- [Cryptographic Accumulators](pkg/accumulator)
- [Bulletproof](pkg/bulletproof)
- Oblivious Transfer
- [Verifiable Simplest OT](pkg/ot/base/simplest)
- [KOS OT Extension](pkg/ot/extension/kos)
- Threshold ECDSA Signature
- [DKLs18 - DKG and Signing](pkg/tecdsa/dkls/v1)
- GG20: The authors of GG20 have stated that the protocol is obsolete and should not be used. See [https://eprint.iacr.org/2020/540.pdf](https://eprint.iacr.org/2020/540.pdf).
- [GG20 - DKG](pkg/dkg/gennaro)
- [GG20 - Signing](pkg/tecdsa/gg20)
- Threshold Schnorr Signature
- [FROST threshold signature - DKG](pkg/dkg/frost)
- [FROST threshold signature - Signing](pkg/ted25519/frost)
- [Paillier encryption system](pkg/paillier)
- Secret Sharing Schemes
- [Shamir's secret sharing scheme](pkg/sharing/shamir.go)
- [Pedersen](pkg/sharing/pedersen.go)
- [Feldman](pkg/sharing/feldman.go)
- [Verifiable encryption](pkg/verenc)
- [ZKP Schnorr](pkg/zkp/schnorr)## Contributing
- [Versioning](https://blog.golang.org/publishing-go-modules): `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
## [References](docs/)
- [[GG20] _One Round Threshold ECDSA with Identifiable Abort._](https://eprint.iacr.org/2020/540.pdf)
- [[specV5] _One Round Threshold ECDSA for Coinbase._](docs/Coinbase_Pseudocode_v5.pdf)
- [[EL20] _Eliding RSA Group Membership Checks._](docs/rsa-membership.pdf) [src](https://www.overleaf.com/project/5f9c3b0624a9a600012037a3)
- [[P99] _Public-Key Cryptosystems Based on Composite Degree Residuosity Classes._](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.112.4035&rep=rep1&type=pdf)