Releases: kroma-network/tachyon
Releases · kroma-network/tachyon
v0.4.0
Tachyon: Much Faster Plonky3
See below for more details:
What's Changed
- feat: enable eigen matrix inversion by @chokobole in #472
- perf: optimize poseidon sbox by @chokobole in #474
- feat: enable pedersen gpu by @chokobole in #473
- build: update bazel version v6.3.0 by @GideokKim in #477
- chore: add .dockerignore by @chokobole in #475
- feat: implement snark verifier poseidon by @chokobole in #476
- refac: prepare shuffle argument by @chokobole in #479
- feat(math): implement packed field extension by @chokobole in #478
- chore: use short version of GitHub url by @chokobole in #481
- docs: update README for better visibility by @TomTaehoonKim in #482
- fix: enable halo2 proof generation by @chokobole in #480
- build: remove halo2 option by @chokobole in #483
- test: optimize benchmark test by @chokobole in #484
- refac(zk): use
Evaluator
by @chokobole in #485 - docs: fix circuit testing doc by @ashjeong in #487
- build(math): include a different header if gcc version ≤ 10 by @chokobole in #489
- feat(zk): add shuffle argument by @chokobole in #488
- docs(benchmark): update benchmark images by @chokobole in #494
- perf(circom): optimize zkey wtns reading by @chokobole in #490
- docs(circom): add missing change from #490 by @chokobole in #495
- refac: prepare circle stark by @chokobole in #493
- perf/optimize-prime-field-inversion-bernstein-yang-method by @AlekseiVambol in #491
- ci: fix warnings and improve runtime by @batzor in #498
- feat: use pmr vector for custom allocation by @batzor in #486
- feat: impl repetitive execution msm gpu by @GideokKim in #496
- build: bump up sp1 prover to v1.0.1 by @dongchangYoo in #497
- ci: reduce cache storage usage by @batzor in #500
- build: fix cuda build by @GideokKim in #502
- build: support building tachyon based on python 3.10 docker image by @chokobole in #501
- test: optimize openmp test by @chokobole in #503
- feat: support pse halo2 (Part 1) by @chokobole in #499
- refac: revert change to pmr vector by @batzor in #504
- feat: support pse halo2 part2 by @chokobole in #505
- feat: impl two adic fri pcs by @ashjeong in #492
- perf: optimize proof generation by @chokobole in #506
- feat: support icicle api for all the fields by @chokobole in #508
- feat: integrate perfetto for profiling by @batzor in #507
- feat(math): add
TwoInv
constant by @ashjeong in #510 - perf: optimize proof generation by @chokobole in #509
- build: add openmp flags to goldilocks by @batzor in #513
- chore: fix naming and error messages by @ashjeong in #514
- perf: optimize msm gpu memory usage by @GideokKim in #511
- feat: add
BabyBear4
C api by @chokobole in #512 - build: fix cuda build by @batzor in #516
- perf: optimize fft batch by @chokobole in #517
- test(benchmark): add baby bear poseidon2 benchmark by @ashjeong in #519
- perf(math): unset require initialization by @chokobole in #520
- feat: add rust binding for baby bear row major matrix by @chokobole in #518
- feat: add
FFTBatch
benchmark by @batzor in #515 - perf(math): optimize radix2 domain by @chokobole in #521
- refac(benchmark): refactor benchmark by @chokobole in #522
- perf: optimize packed prime field operations by @chokobole in #523
- perf: optimize fft batch by @batzor in #524
- feat: add rust binding for two adic fri pcs by @chokobole in #525
- fix(base): enable building with clang++-15 by @chokobole in #527
- refac: refactor two adic fri pcs by @chokobole in #526
- test: add mmcs benchmark by @batzor in #528
- feat: enable rust binding for
TwoAdicFriPcs::Open()
by @chokobole in #529 - perf: optimize poseidon2 pt1 by @ashjeong in #531
- feat: enable rust binding for
TwoAdicFriPcs::Verify()
by @chokobole in #532 - perf: compute twiddle cache just once per degree by @chokobole in #534
- perf: optimize poseidon2 pt2 by @ashjeong in #536
- test: add fri opening benchmark by @batzor in #533
- test: use appropriate values for
shift
andlog_blowup
by @batzor in #537 - Fix spelling issues by @nnsW3 in #538
- fix(benchmark): fix faulty fri benchmark by @ashjeong in #540
- feat: enable using rust allocated ldes by @chokobole in #539
- Update README by @Ocheretovich in #543
- feat: make
TwoAdicFriPcs
stateless by @chokobole in #541 - docs fix typos by @cratiu222 in #545
- feat(circom): introduce witness generation tool by @batzor in #546
- feat: enable sp1 proof generation by @chokobole in #547
- perf: integrate icicle mmcs by @GideokKim in #544
- perf: reduce redundant zero initializations by @batzor in #548
- perf: add optimization flags by @batzor in #549
- refac: clean up fri protocol & benchmarks by @ashjeong in #551
- chore: update benchmarks by @ashjeong in #550
- feat: add Dockerfile for circom by @batzor in #552
- refac: refactor
TwoAdicFri
verify by @chokobole in #553 - perf(crypto): optimize
TwoAdicFri
by @chokobole in #555 - build: release tachyon v0.4.0 by @chokobole in #556
New Contributors
- @AlekseiVambol made their first contribution in #491
- @nnsW3 made their first contribution in #538
- @Ocheretovich made their first contribution in #543
- @cratiu222 made their first contribution in #545
Full Changelog: v0.3.0...v0.4.0
v0.3.1
Groth16 proof becomes very fast
Highlights
Optimizations
Poseidon
hash becomes 2x faster.- Zkey parsing becomes 10x faster.
What's Changed
- feat: enable eigen matrix inversion by @chokobole in #472
- perf: optimize poseidon sbox by @chokobole in #474
- feat: enable pedersen gpu by @chokobole in #473
- build: update bazel version v6.3.0 by @GideokKim in #477
- chore: add .dockerignore by @chokobole in #475
- feat: implement snark verifier poseidon by @chokobole in #476
- refac: prepare shuffle argument by @chokobole in #479
- feat(math): implement packed field extension by @chokobole in #478
- chore: use short version of GitHub url by @chokobole in #481
- docs: update README for better visibility by @TomTaehoonKim in #482
- fix: enable halo2 proof generation by @chokobole in #480
- build: remove halo2 option by @chokobole in #483
- test: optimize benchmark test by @chokobole in #484
- refac(zk): use
Evaluator
by @chokobole in #485 - docs: fix circuit testing doc by @ashjeong in #487
- build(math): include a different header if gcc version ≤ 10 by @chokobole in #489
- feat(zk): add shuffle argument by @chokobole in #488
- docs(benchmark): update benchmark images by @chokobole in #494
- perf(circom): optimize zkey wtns reading by @chokobole in #490
- docs(circom): add missing change from #490 by @chokobole in #495
Full Changelog: v0.3.0...v0.3.1
v0.3.0
ICICLE Integration to Tachyon
Highlights
Optimizations
MSM
andFFT
is optimized with icicle. See MSM Gpu benchmark and FFT Gpu benchmark.- Circom proof generation becomes 4x faster using icicle.
- Parsing
zkey
andwtns
files becomes 3x faster.
New Features
Poseidon2
BinaryField
FieldMerkleTreeMMCS
ChaCha20Rng
What's Changed
- feat: implement poseidon2 by @chokobole in #413
- build: support building with clang on ubuntu by @chokobole in #414
- refac: generalize example circuit tests by @ashjeong in #415
- test: implement fibonacci circuits by @TomTaehoonKim in #279
- feat(circom): enable circom proof generation without compilation by @chokobole in #419
- refac(math): refactor prime fields by @chokobole in #422
- perf: prepare to skip zkey parsing by @chokobole in #425
- docs: add zip to Ubuntu prerequisites by @Insun35 in #427
- refac: fix zero case for inverse and div by @ashjeong in #424
- feat(math): implement binary field initially by @chokobole in #416
- test: add
no_zk
andverify
flag for circom benchmarking by @TomTaehoonKim in #423 - refac(math): move binary fields by @chokobole in #429
- feat: add initial template two adic fri pcs by @chokobole in #428
- refac: improve #424 by @chokobole in #431
- feat(math): add simd int by @chokobole in #432
- feat(math): impl remove zeros for sparse univariate poly by @batzor in #430
- feat: support openmp on mac by @batzor in #434
- feat: implement LogUp scheme by @Insun35 in #420
- feat: implement hash wrappers by @chokobole in #433
- perf(zk): optimize log derivative halo2 lookup by @chokobole in #437
- feat(math): enable poseidon to hash packed prime fields by @chokobole in #435
- refac: apply c type traits to point types by @chokobole in #438
- feat!(math): improve prime field (de)serialization by @chokobole in #440
- feat: add
FieldMerkleTree
by @chokobole in #436 - docs: update readme by @chokobole in #439
- refac(c/zk): apply c type traits by @chokobole in #445
- feat(crypto): add
FieldMerkleTreeMMCS
by @chokobole in #442 - feat(math): implement field extension for stark fields by @chokobole in #443
- docs: update circom README.md by @chokobole in #449
- feat(circom): introduce
-n
flag for specifying number of proof generation by @whoisgautxm in #452 - refac(zk): modularize expressions by @batzor in #446
- feat: impl
Radix2DitParallel
by @ashjeong in #441 - feat: add extension field merkle tree mmcs by @chokobole in #444
- feat(zk): implement plonky3 challenges by @chokobole in #448
- perf!: use icicle msm by @chokobole in #426
- perf: optimize fft by @GideokKim in #456
- feat: add rust binding for
DuplexChallenger
by @chokobole in #451 - feat(c/zk): generalize halo2 prover and verifier c API by @chokobole in #458
- feat: impl two adic multiplicative coset by @ashjeong in #457
- docs(halo2): update Halo2 migration guide by @chokobole in #461
- build: prepare circom proof generation with cuda by @chokobole in #462
- feat(zk): implement air constraint system by @batzor in #453
- perf: use msm gpu when generating groth16 proof by @chokobole in #463
- feat: support scroll halo2 1.1 by @chokobole in #464
- fix(halo2)!: remove constraint system serialization from
vk.write()
by @chokobole in #467 - perf(halo2): apply batch commitment in
create_proof()
by @chokobole in #465 - perf: apply icicle ntt by @chokobole in #466
- feat: support
ChaCha20RNG
by @chokobole in #468 - perf: optimize circom proof generation by @chokobole in #469
- perf(circom): optimize zkey parsing by @chokobole in #471
- bulid: release tachyon v0.3.0 by @chokobole in #470
New Contributors
- @batzor made their first contribution in #430
- @whoisgautxm made their first contribution in #452
- @GideokKim made their first contribution in #456
Full Changelog: v0.2.0...v0.3.0
v0.2.0
Tachyon in Kroma Mainnet
See medium for more details.
Highlights
- Becomes 1.5x Faster than Halo2 by 1) reducing the data copy and 2) optimizing FFT. see benchmark.
What's Changed
- docs: run markdown linter by @chokobole in #367
- perf(math): avoid copying in prime field operations by @chokobole in #368
- fix: fix broken build with cuda by @chokobole in #363
- build: fix bazel build configurations for halo2 to be on linux by @TomTaehoonKim in #369
- perf(math): avoid copying twice on bigint operations by @chokobole in #366
- test: enable benchmarking with rapidsnark by @chokobole in #357
- perf(crypto): avoid copying twice when returning a polynomial by @chokobole in #371
- perf: avoid in place operator where ineffective by @chokobole in #372
- test(zk): enable
SelectorReplacerTest.Selector
test on optimization mode by @chokobole in #374 - refac: organize Dockerfiles into docker directory by @TomTaehoonKim in #373
- ci: add opt option to ci test by @Insun35 in #375
- fix: change compile option
maxvx512f
tomavx2
for goldilocks by @chokobole in #376 - ci: use setup-python v5 by @Insun35 in #381
- fix: fix gcc-13 compile errors by @ashjeong in #377
- docs: add telegram contact to README.md by @chokobole in #378
- build(math): generate m31 field as non fft friendly field by @chokobole in #385
- docs: update how to build by @chokobole in #380
- refac(zk): refactor circuit polynomial builder by @chokobole in #384
- test: run (I)FFT benchmark under uniform conditions by @chokobole in #382
- perf: avoid copying on semigroup operations by @chokobole in #379
- refac: allow string conversions to accept malformed input by @chokobole in #388
- feat(math): add range check to string conversion methods by @chokobole in #389
- perf: avoid copying on group operations by @chokobole in #383
- perf(math): streamline operations by @ashjeong in #390
- fix(math): add missing changes from #388 by @chokobole in #392
- refac: rename group internal operations by @chokobole in #391
- chore(zk): clean up zk by @Insun35 in #393
- docs: update tachyon vs halo2 benchmarking results by @ashjeong in #395
- build(math): update build settings for goldilocks by @chokobole in #397
- feat(math): add circle point initially by @chokobole in #387
- docs(zk): add item to the list of the Halo2 optimizations by @chokobole in #398
- refac(math): rename filenames by @chokobole in #399
- chore: fix typos by @simlecode in #403
- feat: add packed mersenne31 by @chokobole in #396
- perf(math): add fast reduction for a special case by @chokobole in #404
- build: add build option to disable assembly optimized field by @chokobole in #406
- perf(math): parallelize
SwapElements()
by @chokobole in #408 - docs: update tachyon vs halo2 benchmarking results by @dongchangYoo in #410
- feat(circom): enable loading witness from json by @chokobole in #407
- build: add intel openmp support by @chokobole in #409
- refac!: abstract lookup scheme by @Insun35 in #400
- feat(math): add baby and koala bear fields by @chokobole in #405
- feat(math): prepare poseidon2 by @chokobole in #411
- build: update tachyon version for releasing v0.2.0 by @dongchangYoo in #417
New Contributors
- @simlecode made their first contribution in #403
Full Changelog: v0.1.0...v0.2.0
Release v0.1.0
Tachyon: A Much Faster and Lighter Halo2
See below for more details: