Skip to content

Releases: ProvableHQ/snarkVM

v4.0.0

12 Aug 10:11
40da11d

Choose a tag to compare

snarkVM is a zkVM library. It powers the Aleo network and most of the software used to interact with it. There are a number of breaking changes introduced in v4.0.0:

  • Records now contain a new "_version" field. New records generated after ConsensusVersion::V8 will have a version of 1, while those before have version 0.
  • Programs verifying keys for all programs deployed on-chain have been updated to a new version to support the new record version, and as such all programs now require the use of edition 1. (Introduced in #2793R).
  • As described above, transactions with output records will now have an encrypted sender field that encodes the signer of the transaction that produced the record. This will allow users to determine what address sent them a record. Serialization for the following objects has changed:
  • Request::InputID now includes for record inputs a "record_view_key": record_view_key entry. Blocks do not contain requests, so this should not impact all indexers.
  • Transition::Output now includes for record outputs an optional "sender_ciphertext": sender_ciphertext entry, which will be populated from ConsensusVersion::V8 onwards.
  • You can retrieve the latest program edition using block_store().get_latest_program (In contrast to e.g. block_store().get_program). Once program upgradability is introduced in a future release, you’ll be able to review all.
  • Querytrait is now used as a trait object. This significantly improves the ergonomics of using these functions. If you don’t want to pass in a Query, just pass in None. Note that if you do use a Query object, you may need to instantiate it e.g. as follows: Some(&Query::<N, BlockMemory>::from(endpoint)).

v1.0.0

03 Dec 22:01
3d42aa0

Choose a tag to compare

What's Changed

  • [TOB-19] Update committee member sorting by @raychu86 in #2162
  • [Stress-04] Create nested tree for finalize root by @raychu86 in #2170
  • [ZKS-04] Fixes the maximum transmissions per batch, increases the transactions per block by @howardwu in #2198
  • [Fix] Add signature to reserved keywords. by @d0cd in #2238
  • [Refactor] Adds some tests and contains some documentation suggestions for the fix/cast-lossy-field-to-group PR by @d0cd in #2272
  • [Fix] Fix circuit for cast lossy field to group. by @acoglio in #2133
  • [Feature] Enable cast.lossy for all literal types. by @d0cd in #2273
  • [NCC-ADN] Prevent ignoring proving/verifying tasks #2 by @vicsn in #2276
  • [Test] add tests for subgroup membership/nonmembership of small order curve points by @bendyarm in #2282
  • [NCC-Y7H] Create compute_function_id helper which enforces minimal TLV encoding by @vicsn in #2154
  • [NCC-EVJ] Use Committee stakes when determining the timestamp of a Subdag by @raychu86 in #2223
  • [ZKS-03] Proof Delegation Is Subject To Truncation by @vicsn in #2267
  • [Fix] Declare public variable 1field once by @vicsn in #2268
  • [Fix] Store the aborted solution IDs in blocks by @raychu86 in #2284
  • [Fix] Add checks for existing transactions and solutions by @raychu86 in #2313
  • [ZKS-05] Caller Is Not Fixed Throughout Function Execution by @vicsn in #2076
  • [Fuzzing-ILT] Disallow Identifiers with the same form as LiteralTypes. by @d0cd in #2319
  • [Stress-06] Price Finalize Opcodes Based On Operand Types by @iamalwaysuncomfortable in #2281
  • Update finalize set costs based on storage size. by @raychu86 in #2214
  • update: add many_input_and_output.aleo for test by @randomsleep in #2333
  • [HackerOne-2300725] Limit the number of allowed constraints for deployments by @vicsn in #2271
  • Clarify constraint limit logic by @vicsn in #2340
  • [ZKS-04] Track committee size. by @d0cd in #2213
  • Remove extraneous set_constraint_limit and clarify why by @vicsn in #2342
  • [ZKS-02] Introduce committee lookback by @raychu86 in #2336
  • [ZKS-00] Reverts election certificates by @howardwu in #2343
  • [Refactor] Renames Testnet3 to MainnetV0 by @howardwu in #2347
  • [Fix] Prevent passing in too many public inputs to Varuna by @howardwu in #2094
  • fix: don't use 3 for mainnet by @joske in #2351
  • Remove the outdated version of BatchCertificate by @raychu86 in #2350
  • Clean up ConfirmedTransactionsMap by @raychu86 in #2349
  • Cleanup UpdateKeyValue and RemoveKeyValue finalize operations by @raychu86 in #2348
  • Cache transaction checks by @ljedrz in #2270
  • [Coinbase Go/No-Go] Bond balances in genesis block by @vicsn in #2308
  • [ZKS-02] Fix committee usage when calculating the next timestamp by @raychu86 in #2353
  • [HackerOne-2354265] Restrict number of imports, program depth, and call depth. by @d0cd in #2352
  • [Feature] Adds a histogram label by @joske in #2357
  • [ZKS-02] Use committee lookback at anchor_round - 1 for timestamp calculation by @raychu86 in #2358
  • Add impl Ternary for Box<T: Ternary> by @kpp in #2362
  • [nit] Use checked_add for account supply calculation by @raychu86 in #2364
  • [Cleanup] Address TODOs for Command parsers and serializers. by @d0cd in #2355
  • [HackerOne-2239704] Introduce an override for atomic batch operations by @ljedrz in #2296
  • [Feature] Introduce TRANSACTION_SPEND_LIMIT. by @d0cd in #2368
  • [ZKS-02] Introduce Committee IDs by @raychu86 in #2374
  • [Fix] Fix unit test string::test_random by @kpp in #2363
  • [Fix] Relax ordering checks for futures by @evan-schott in #2356
  • [Fix/Optimize] Fixes and optimizes calculation of execution cost. by @d0cd in #2369
  • [ZKS-08][HackerOne-2289066] Make leader election tamper resistant by @raychu86 in #2378
  • [Fix] Limit program size to 100KBs by @vicsn in #2384
  • [HackerOne-2311934] Verify transactions prior to speculation by @raychu86 in #2376
  • add tests for poseidon by @bendyarm in #2394
  • [Go/No-Go] ARC-0037 - Introduce withdrawal address for stakers by @raychu86 in #2385
  • Update Staker requirements and BatchHeader::MAX_CERTIFICATES by @raychu86 in #2386
  • Update inputs in genesis transactions by @raychu86 in #2396
  • Add parallelism to BatchHeader and Committee deserialization by @raychu86 in #2395
  • [Test] Execution cost. by @d0cd in #2379
  • [Fix] Update README.md by @dembelekaro in #2400
  • [Fix] Don't re-seed the TestRng when calling check_merkle_tree by @ljedrz in #2399
  • [Feature] Updates the puzzle integration for development and testing by @d0cd in #2401
  • Replace self.caller with self.signer in fee_public by @raychu86 in #2397
  • Bumps MSRV to 1.76.0 and updates Clippy by @howardwu in #2405
  • [Feature] Add transfer_public_as_signer to credits.aleo by @d0cd in #2402
  • Update is_open flag to check for new stakers by @raychu86 in #2406
  • [Optimize] Add more descriptive error messages by @raychu86 in #2411
  • Bound parallel verification of transactions by @raychu86 in #2387
  • [HackerOne-2332566] Update the target threshold by @raychu86 in #2410
  • [HackerOne-2332566] Unify target calculations by @raychu86 in #2412
  • [Log] Changes to epoch hash. by @d0cd in #2420
  • [Fix] Use original transaction ordering in speculation by @raychu86 in #2421
  • [Test] Proof target tests by @iamalwaysuncomfortable in #2423
  • [Fix] Use previous block for proof target. by @d0cd in #2422
  • [Testing] Expand transaction ordering test by @raychu86 in #2430
  • [Feature] Introduce TestnetV0 Network Impl by @raychu86 in #2414
  • Reduce zero-padding and cache zero-hashes in k-ary MerkleTree by @ljedrz in #2407
  • Reduce zero-padding and cache zero-hashes in MerkleTree by @ljedrz in #2415
  • Use a parallel sort to order txs while speculating by @ljedrz in #2425
  • [Feature] new network.id opcode by @evan-schott in #2419
  • [Fix] Add BFTAbortedTransmissionIDsMap by @raychu86 in #2433
  • [Feature] Mitigate payment-free verification by @raychu86 in #2428
  • Fix new clippy lints by @ljedrz in #2429
  • Add support to fetch delegators for given validator by @vicsn in #2434
  • [Feature] Introduces a maximum transaction size. by @d0cd in #2437
  • [TOB] Fix length in Serialize impl for Transition by @d0cd in #2440
  • [Test] Add additional case for max committee limit testing by @raychu86 in #2442
  • Delegator benchmarks by @iamalwaysuncomfortable in #2436
  • Introduce large execution transaction test helper by @niklaslong in #2438
  • [TOB] Improve code quality by @d0cd in #2441
  • Adds a variable limit for deployments by @howardwu in https://github.com/Al...
Read more