Skip to content

Releases: tlsnotary/tlsn

v0.1.0-alpha.6

26 Jun 14:24
3554db8
Compare
Choose a tag to compare
v0.1.0-alpha.6 Pre-release
Pre-release

This release includes performance and stability improvements, as well as preparation work for future upgrades.

Unfortunately, the long-awaited Authdecode feature is not included in this release (sad trombone noises). However, we plan to release updates at a faster pace, so it will land soon™. Join our next office hours event to hear more about our priorities and what's next.

Highlights

mpz Upgrade

We have made significant improvements to mpz, the MPC library used by TLSNotary. This release includes enhancements to the handshake/online time of the protocol, reducing online time by up to 30% on higher latency connections, which should help alleviate server timeout issues. More improvements in this area will be included in future releases, supported by further upgrades to mpz.

GHASH Update

We've updated the 2PC-GHASH protocol so that the Prover no longer needs to reveal the MAC keys to the Verifier after the TLS connection is closed to perform consistency checks. This key revelation step was shown to be unnecessary by PADO in their Lightweight Authentication of Web Data via Garble-Then-Prove paper, demonstrating that semi-honest OLE is sufficient. We thank PADO Labs for their discussion and collaborative spirit.

Notary Client

We have added a client implementation in #489, which simplifies interacting with our reference Notary server. It handles the low-level details of setting up a notarization session, allowing developers to focus on their applications.

What's Changed

⛰️ Features

  • Add notary client crate (#489)

🐛 Bug Fixes

  • (tlsn-server-fixture) Update cert fixtures (#499)

🚜 Refactor

  • Restructure notary crates (#508)
  • (universal-hash) Mpz upgrade (#502)
  • (key-exchange) Mpz upgrade (#496)
  • (cipher) Mpz upgrade (#501)
  • (prf) Mpz upgrade (#497)
  • (prf) Relax hiding of transcript hash, optimize latency (#505)
  • (aead) Mpz upgrade (#504)
  • (tls-mpc) Mpz upgrade (#511)
  • (tlsn) Mpz upgrade (#512)

📚 Documentation

  • Miscellaneous fixups (#475)
  • Fix style issues (#476)
  • Fix style in components (except TLS) (#477)
  • Update CONTRIBUTING.md (#483)

⚙️ Miscellaneous Tasks

  • Refactor and improve CI build (#486)
  • Update notary certificate (#519)
  • Add rebase action (#515)
  • (uid-mix) Delete crate, moved to tlsn-utils (#506)
  • Remove stale test and clean up CI job (#514)
  • Update CI configuration
  • Bump mpz version

v0.1.0-alpha.5

09 Apr 17:00
68b9474
Compare
Choose a tag to compare
v0.1.0-alpha.5 Pre-release
Pre-release

This release delivers performance improvements, bug fixes, and updates to our example documentation. We've opted to release these enhancements early to support our community in time for the ETHDam hackathon.

The AuthDecode PR is scheduled for inclusion in our next release. This decision allows us to expedite the current update, ensuring you have access to the latest improvements as quickly as possible.

Highlights

Transcript Size Configuration

Independent limits are now set for the sent and received data transcripts. This adjustment allows for more precise specification of expected data volumes and complements the record layer preprocessing described below.

Record Layer Preprocessing

The MPC-TLS protocol now preprocess the MPC for the sent data transcript, adhering to the configured sent data transcript limit. This enhancement shortens connection times with the server and helps mitigate timeouts.

The default sent data limit is 4KB, but it can be adjusted to accommodate larger HTTP requests or reduced to minimize overall proving time. For configuration options, see ProverConfigBuilder and VerifierConfigBuilder (make sure their settings match!).

Interactive Verifier Example

Explore the interactive verifier example to utilize the protocol's "trustless" configuration, which omits Notary attestation and directly proves data to the Verifier.

What's Changed

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

v0.1.0-alpha.4

13 Feb 19:18
309c37f
Compare
Choose a tag to compare
v0.1.0-alpha.4 Pre-release
Pre-release

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

v0.1.0-alpha.3

21 Dec 11:39
bfc7078
Compare
Choose a tag to compare
v0.1.0-alpha.3 Pre-release
Pre-release

What's Changed

New Contributors

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

v0.1.0-alpha.2

22 Sep 15:29
8124237
Compare
Choose a tag to compare
v0.1.0-alpha.2 Pre-release
Pre-release

Changes

v0.1.0-alpha.1

19 Sep 17:27
a6d5fcb
Compare
Choose a tag to compare
v0.1.0-alpha.1 Pre-release
Pre-release

First alpha release!