zkNotary
  • zkNotary: a zkOracle for Mina powered by TLSNotary
  • AWS Deployment Utility for the Notary Server
  • Parsers
  • Prover
  • Verifier
    • examples
      • How to use zknotary-verifier
Powered by GitBook
On this page
  • Introduction
  • Features
  • Prerequisites
  • File Structure
  • Usage
  • Contributing
  • Acknowledgements
  • License

Verifier

Introduction

The Verifier component of zkNotary is a crucial tool for validating the authenticity of data notarized by the Prover. It's a WebAssembly module compiled from Rust, using wasm-pack, and is designed for use within JavaScript applications.

Features

  • WebAssembly Compilation: The Rust code is compiled into WebAssembly, making it suitable for integration in web environments.

  • Single Public Function - verify: Exposes a function that takes proof_json and notary_pubkey as inputs and returns a plain-text notarization of the original interaction with a web server.

  • Digital Signature Validation: Validates that the proof was digitally signed by the notary server, ensuring authenticity.

Prerequisites

  • Rust

  • Cargo

  • wasm-pack

Note: This project requires a clang version newer than 16.0.0 to compile ring to wasm. If not, you will run into warning: error: unable to create target: 'No available targets are compatible with triple "wasm32-unknown-unknown"'

File Structure

  • src/lib.rs: This is the main library file for the Verifier.

  • src/utils.rs: This file contains utility functions used by the Verifier.

  • pkg: Autogenerated directory where the npm package code lives.

  • examples/node: A sample node application that showcases how to use the verifier package. For more information see the sample application's README file.

Usage

  1. Install wasm-pack

npm install -g wasm-pack
  1. Optional: For Mac users with a version of clang older than 16.0.0, you can use Homebrew to install llvm and then use it to compile the project.

brew install llvm
echo 'export PATH="/path/to/your/newly/installed/llvm/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
  1. Build the wasm project

wasm-pack build --target nodejs

This creates a new pkg directory with the wasm package ready to publish to npmjs.com.

  1. Publish your npm package

cd pkg
npm publish

Contributing

Contributions are welcome. Please submit a pull request or create an issue to discuss the changes you want to make.

Acknowledgements

This project is inspired by and borrows code from the following projects:

  • Proof Viz

  • TLSN

We are grateful to the authors of these projects for their work.

License

Apache

PreviousProverNextexamples

Last updated 1 year ago