58456c1057
* feat: IPC for wesolowski * update self peer info * remove digests and signatures * add new binaries and digests * Signatory #13 added * Signatory #4 added (#231) * added sig.6 files (#232) * Signatory #9 added (#233) * Added signatories #1, #2, #3, #5, #8, #12, #14, #15, #16, #17 * remove binaries, release ready --------- Co-authored-by: 0xOzgur <29779769+0xOzgur@users.noreply.github.com> Co-authored-by: Demipoet <161999657+demipoet@users.noreply.github.com> Co-authored-by: Freekers <1370857+Freekers@users.noreply.github.com> |
||
---|---|---|
.. | ||
api | ||
audits | ||
cmd | ||
docs | ||
examples | ||
internal | ||
pkg | ||
scripts | ||
test | ||
.gitignore | ||
.golangci.yml | ||
.spdx.yml | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
LICENSE | ||
Makefile | ||
NOTICE | ||
README.md |
Nekryptology
Coinbase's advanced cryptography library, brought back from the dead and enhanced
Differences from Kryptology
- Schnorr proofs are patched to use hash-to-curve, fixes a bug where depending on the curve there may be a small to very large percentage of proofs that are invalid encodings
- Supports BLS48-581 (uses MIRACL-generated implementation, slightly altered to align to curves.Scalar/curves.Point interfaces)
- Enhanced KOS15 implementation to support arbitrary computational and statistical security parameters
- Updated DKLs18 multiplication to use KOS15 enhancements
- OT-based t-of-n multiplication scheme (borrowed from DKLs19)
- Supports <=2048-bit IQC primitives (uses harmony-one's implementation, slightly adjusted to fix vulnerabilities in FS transform)
- Added Wesolowski VDF
- GG20 is removed
Quickstart
Use the latest version of this library:
go get source.quilibrium.com/quilibrium/monorepo/nekryptology
Documentation
Public documentations can be found at https://pkg.go.dev/source.quilibrium.com/quilibrium/monorepo/nekryptology
To access the documentation of the local version, run godoc -http=:6060
and open
the following url in your browser.
http://localhost:6060/pkg/source.quilibrium.com/quilibrium/monorepo/nekryptology/
Developer Setup
Prerequisites: golang 1.18
, make
git clone git@source.quilibrium.com/quilibrium/monorepo/nekryptology.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
The curves that implement this abstraction are as follows.
IQC
The IQC abstraction code can be found at pkg/core/iqc/classgroup.go.
Protocols
The generic protocol interface pkg/core/protocol/protocol.go.
- Cryptographic Accumulators
- Bulletproof
- Oblivious Transfer
- Threshold ECDSA Signature
- DKLs18 - DKG and Signing
- 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.
- Threshold Schnorr Signature
- Paillier encryption system
- Secret Sharing Schemes
- Verifiable encryption
- ZKP Schnorr
Contributing
- 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