Skip to content

v0.1.0-alpha.4

Pre-release
Pre-release
Compare
Choose a tag to compare
@sinui0 sinui0 released this 13 Feb 19:18
· 123 commits to dev since this release
309c37f

Highlights

This release contains new features, performance optimizations, bugfixes and, of course, breaking changes!

Interactive Verifier

This release introduces support for directly proving the server identity to the MPC-TLS verifier and selective disclosure of the transcript. This configuration is important as it is the "trustless" variant of the protocol which does not rely on a third-party attestation (from a Notary).

Examples and additional documentation are coming soon™

Deferred Decryption

The new deferred decryption feature is one to take a look at. It is an optimization which can be activated when server response data can be decrypted after the TLS connection is closed. For example, you can activate it before sending a final HTTP request to the server, and it will defer decryption of the response.

The benefit of doing this is two-fold:

  1. It significantly reduces upload bandwidth utilization from the Prover to the Verifier
  2. It reduces CPU utilization for both parties.

Both of which can lead to large reductions in the total runtime of the protocol, particularly for a Prover with an asymmetric internet connection to the Verifier.

An example of how to use this feature is demonstrated in the twitter example.

This feature paves the way for massive performance increases in the future when we integrate VOLE-based interactive ZK proofs. Unlocking the ability to prove data on the order of megabytes.

Selective Disclosure API

This release provides a simplified API for selective disclosure of HTTP and JSON data. The previous release provided a rather clunky builder style API for generating commitments and proofs for both formats. The new commitment API is closer to a "visitor" style, and provides reasonable defaults that should cover most use-cases so you don't need to implement it yourself (unless you want to). For selective disclosure you get to work with the format types directly.

Check out the twitter example to see it in action.

What's Changed

Features

  • Interactive verifier (#379) (#401)
  • Tls-client backend buffer (#414)
  • Deferred decryption (#416)
  • Network simulation benches (#417)
  • Default commit to entire http request/response (#433)

Performance

  • Adjust mux config (#418)

Bug Fixes

  • Use non_exhaustive instead of private zst (#428)
  • Prevent duplicate json array commitment (#432)

Documentation

  • Updated examples based on the Progcrypto workshop (#399)
  • Add style guide (#411)
  • Update Direction docs (#427)
  • Remove dead argument docs (#429)

Refactor

  • Use tls prf from tls-core in rc backend (#413)
  • Add AEAD prove/verify + tag methods (#415)
  • Tlsn-common mux module (#420)
  • Selective disclosure api (#380)
  • Update hyper and use http prover (#434)

Miscellaneous Tasks

New Contributors

Full Changelog: v0.1.0-alpha.3...v0.1.0-alpha.4