v0.1.0-alpha.7
Pre-release
Pre-release
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 chainAttestationProof
proves the Notary signature and attestation bodyTranscriptProof
proves subsequences of the transcript using the encoding or hash commitments.
- Extensible cryptographic algorithms via
CryptoProvider
(inspired byrustls
).- 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
📚 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
Full Changelog: v0.1.0-alpha.6...v0.1.0-alpha.7