ceremonyclient/nekryptology
Cassandra Heart 58456c1057
v1.4.18-patch-2 (#230)
* 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>
2024-05-29 12:51:47 -05:00
..
api Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
audits Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
cmd Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
docs Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
examples Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
internal Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
pkg v1.4.18-patch-2 (#230) 2024-05-29 12:51:47 -05:00
scripts Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
test Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
.gitignore Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
.golangci.yml Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
.spdx.yml Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
CHANGELOG.md Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
CONTRIBUTING.md Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
Dockerfile Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
go.mod 1.0.0 – Dawn 2023-09-24 21:43:35 -05:00
go.sum 1.0.0 – Dawn 2023-09-24 21:43:35 -05:00
LICENSE Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
Makefile Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
NOTICE Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00
README.md Stage 1 of Phase 2 – Nekryptology 2023-07-05 00:32:28 -05:00

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.

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

References