Skip to content

v0.1.0-alpha.7

Pre-release
Pre-release
Compare
Choose a tag to compare
@sinui0 sinui0 released this 03 Oct 22:10
4d5102b

Highlights

The main feature of this release is a rewrite of tlsn-core summarized below:

  • Improved the structure of attestations
    • Header has a static smol size and now includes a version tag and unique identifier
    • Body fields are now merkelized so that only fields necessary to prove desired statements need to be included
    • Body is forward-compatible with new kinds of fields (for example, new kinds of commitments)
  • Added a Request pattern which will allow a Prover to configure aspects of the attestation depending on what the Notary supports.
    • This paves the way for custom extensions, eg #342
  • Further encapsulated various kinds of proofs
    • ServerIdentityProof proves the server name using the certificate chain
    • AttestationProof proves the Notary signature and attestation body
    • TranscriptProof proves subsequences of the transcript using the encoding or hash commitments.
  • Extensible cryptographic algorithms via CryptoProvider (inspired by rustls).
    • Added keccak256 and sha256 to officially supported, including user provided custom algorithms.
    • Added secp256k1 signatures, including user provided custom algorithms.
  • Added a new PlaintextHash commitment type (not fully exposed yet) which will be implemented with authdecode. See #479
  • Encapsulated more logic into this crate in the form of builders, reducing API surface area and making it more difficult to misuse.

We are open to requests for adding more officially supported algorithms, please open an issue. We already plan to add Poseidon hashes with popular parameters, such as being circomlib compatible.

Check out the API docs!

In addition to the tlsn-core rewrite there are numerous stability, error handling and ergonomic improvements. Including consolidating all our crates into a single workspace, which improved compile times.

What's Changed

🚀 Features

  • (tlsn-wasm) Wasm bindings (#536)
  • (wasm) No-bundler flag (#546)
  • Add protocol configuration negotiation (#513)
  • Make defer-decryption default
  • (wasm) Clone getters (#600)
  • (wasm) Expose presentation verifying key

🐛 Bug Fixes

  • Miscellaneous fixes on documentations (#528)
  • Clippy gh action and linting (#531)
  • Notary cd (#538)
  • Correct paths following repo reorg (#554)
  • Repair wasm build. (#567)
  • Check if already committed in commit (#568)
  • Aead unit tests no longer deadlock
  • (wasm) Attestation.deserialize should return Attestation (#597)
  • (verifier) Correct error display (#599)
  • Clippy fix too_long_first_doc_paragraph in enum_builders
  • (core) Remove serde flatten
  • (wasm) Remove presentation verify from test
  • (examples) Fix examples for alpha.7 release (#603)

🚜 Refactor

  • Consolidate workspaces (#537)
  • Modularize server-fixture (#563)
  • (core) Alpha.7 rewrite (#574)

📚 Documentation

  • Fix links in README.md (#544)
  • Fix and improve interactive example (#552)
  • Describe execution modes (#464)
  • Fix typos (#569)
  • Added note about "format on save" to the contribution guide
  • Add section about linting to contribution guide
  • Rustfmt wrap_comments (#611)
  • (core) Additional documentation and examples (#613)
  • Correct foldername in examples readme (#624)

⚙️ Miscellaneous Tasks

  • Add check to identify number of stable versions deployed (#532)
  • Cleanup after workspace consolidation
  • Extend tls certs perpetually (#555)
  • Temporarily disable deadlocked tests in aead (#547)
  • (examples) Remove examples, fix bug (#585)
  • Add favicon to wasm-test-runner to avoid 404 in tests
  • Run test with debug logging, not the build
  • Remove clippy::blocks_in_conditions (#592)
  • (notary) Change fixture pub key to compressed form (#623)
  • Prepare alpha.7 release (#620)
  • Core-rewrite unit tests (#608)

New Contributors

  • @valo made their first contribution in #592

Full Changelog: v0.1.0-alpha.6...v0.1.0-alpha.7