kamui

Efficient Elliptic Curve VRF on Solana.

https://github.com/mangekyou-labs/kamui

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (5.4%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

Efficient Elliptic Curve VRF on Solana.

Basic Info
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 1
  • Open Issues: 9
  • Releases: 0
Created almost 2 years ago · Last pushed 8 months ago
Metadata Files
Readme License Citation Codeowners

README.md

Benchmarks

In mangekyou, one can compare all currently implemented cryptographic schemes by running: $ cargo bench

Usage

Generate keys

cargo run --bin ecvrf-cli keygen

This outputs a secret key and a public key in hex format. Both the secret and public keys are 32-byte strings: Secret key: 673d09357e636004c6129349a4019120ff09c0f5cb3204c67a64d5b661f93007 Public key: 42b1b195493d8977f9432c1ea8208a8cf9adba1be06ed555ee1732c5b0637261

Compute VRF output and proof

To compute the VRF output and proof for the input string Hi Kamui!, which is 4869204b616d756921 in hexadecimal, with the key pair generated previously, run the following command:

cargo run --bin ecvrf-cli prove --input 4869204b616d756921 --secret-key 673d09357e636004c6129349a4019120ff09c0f5cb3204c67a64d5b661f93007

This should the 80-byte proof and VRF 64-byte output, both in hex format: Proof: 42b1b195493d8977f9432c1ea8208a8cf9adba1be06ed555ee1732c5b0637261d9cd24cdb47ab446b86451974dab1ea382065e17c22085c63cfd7059ec834d08433c3158debd8e69547997a07fa083c9 Output: cd6a1b9e6751a55fec6e196c8a62a0ddbe64b080ebcbd571ecab1c28d80a94d809ca8d803fafbc814874de36f6540055057faafdba85395e6ae2b7256cbde94b

Verify proof

  1. You can verify the proof and output in a solana smart contract using mangekyou::ecvrf::ecvrf_verify from the Mangekyou Network (coming soon)

  2. You can also use the CLI tool for verification:

cargo run --bin ecvrf-cli verify --output cd6a1b9e6751a55fec6e196c8a62a0ddbe64b080ebcbd571ecab1c28d80a94d809ca8d803fafbc814874de36f6540055057faafdba85395e6ae2b7256cbde94b --proof 42b1b195493d8977f9432c1ea8208a8cf9adba1be06ed555ee1732c5b0637261d9cd24cdb47ab446b86451974dab1ea382065e17c22085c63cfd7059ec834d08433c3158debd8e69547997a07fa083c9 --input 4869204b616d756921 --public-key 42b1b195493d8977f9432c1ea8208a8cf9adba1be06ed555ee1732c5b0637261

The preceding command returns the verification: Proof verified correctly!

Tests

There exist unit tests for all primitives in all three crates, which can be run by: $ cargo test

Kamui Program

More documents here

Owner

  • Name: Mangekyou Labs
  • Login: mangekyou-labs
  • Kind: organization

GitHub Events

Total
  • Issues event: 1
  • Watch event: 1
  • Issue comment event: 1
  • Push event: 13
  • Pull request event: 14
  • Fork event: 1
  • Create event: 5
Last Year
  • Issues event: 1
  • Watch event: 1
  • Issue comment event: 1
  • Push event: 13
  • Pull request event: 14
  • Fork event: 1
  • Create event: 5

Dependencies

.github/workflows/benchmarking.yml actions
  • actions/checkout ac593985615ec2ede58e132d2e21d2b1cbd6127c composite
  • peaceiris/actions-gh-pages 373f7f263a76c20808c831209c920827a82a2847 composite
.github/workflows/codecov.yml actions
  • Swatinem/rust-cache v2 composite
  • actions/checkout v3 composite
  • codecov/codecov-action v3 composite
  • dtolnay/rust-toolchain stable composite
  • taiki-e/install-action cargo-llvm-cov composite
.github/workflows/docs.yml actions
  • actions-rs/cargo ae10961054e4aa8b4aa7dffede299aaf087aa33b composite
  • actions-rs/toolchain b2417cde72dcf67f306c0ae8e0828a81bf0b189f composite
  • actions/checkout b4ffde65f46336ab88eb53be808477a3936bae11 composite
  • peaceiris/actions-gh-pages 373f7f263a76c20808c831209c920827a82a2847 composite
.github/workflows/publish.yml actions
  • actions-rs/toolchain 16499b5e05bf2e26879000db0c1d13f7e13fa3af composite
  • actions-rs/toolchain b2417cde72dcf67f306c0ae8e0828a81bf0b189f composite
  • actions/checkout b4ffde65f46336ab88eb53be808477a3936bae11 composite
.github/workflows/rust.yml actions
  • EmbarkStudios/cargo-deny-action e0a440755b184aa50374330fa75cca0f84fcb59a composite
  • actions-rs/cargo 844f36862e911db73fe0815f00a4a2602c279505 composite
  • actions-rs/toolchain 16499b5e05bf2e26879000db0c1d13f7e13fa3af composite
  • actions/checkout ac593985615ec2ede58e132d2e21d2b1cbd6127c composite
  • taiki-e/install-action d30f7ecb94d4d882276efb3967be14b8ef34d289 composite
Cargo.lock cargo
  • 379 dependencies
Cargo.toml cargo
mangekyou/Cargo.toml cargo
  • base58 0.2.0 development
  • base64 0.21.0 development
  • criterion 0.4.0 development
  • faster-hex 0.6.1 development
  • k256 0.10.4 development
  • proptest 1.1.0 development
  • radix64 0.6.2 development
  • rust-base58 0.0.4 development
  • rustc-hex 2.1.0 development
  • serde-reflection 0.3.6 development
  • wycheproof 0.5.0 development
  • ark-ec 0.4.1
  • ark-ff 0.4.1
  • ark-secp256r1 0.4.0
  • ark-serialize 0.4.1
  • auto_ops 0.3.0
  • base64ct 1.5.3
  • bech32 0.9.1
  • blake2 0.10.6
  • blst 0.3.10
  • borsh 1.2.1
  • bs58 0.4.0
  • bulletproofs 4.0.0
  • cbc 0.1.2
  • ctr 0.9.2
  • curve25519-dalek 3.2.1
  • curve25519-dalek-ng 4.1.1
  • derive_more 0.99.16
  • ed25519-consensus 2.1.0
  • elliptic-curve 0.11.12
  • eyre 0.6.8
  • generic-array 0.14.6
  • hex 0.4.3
  • hex-literal 0.4.1
  • hkdf 0.12.3
  • lazy_static 1.4.0
  • mangekyou-derive 0.1.3
  • merlin 3.0.0
  • num-bigint 0.4.4
  • once_cell 1.17.0
  • p256 0.10.1
  • rand_core 0.5.0
  • readonly 0.2.3
  • rfc6979 0.4.0
  • rust_secp256k1 0.27.0
  • schemars 0.8.12
  • serde-big-array 0.5.0
  • serde_json 1.0.93
  • serde_with 2.1.0
  • sha2 0.10.6
  • solana-zk-token-sdk 1.18.12
  • static_assertions 1.1.0
  • thiserror 1.0.38
  • tokio 1.24.1
  • twox-hash 1.6.3
mangekyou-cli/Cargo.toml cargo
  • assert_cmd 2.0.0 development
  • regex 1.5.4 development
  • clap 4.1.8
  • exitcode 1.1.2
  • hex 0.4.3
  • serde 1.0.156
mangekyou-derive/Cargo.toml cargo