Releases: BitVM/BitVM
Releases · BitVM/BitVM
v0.1.2-dev
chore: regenerate test vectors for winternitz (#406)
Audit Code Freeze
Fix clippy (#264) * fix: clippy * fix: Remove unused code * fix: clippy
BitVM Demo Denver
Demo Release
Full end to end test for a dummy circuited implemented. Thank you to @wz14 who showcased the transactions on a signet:
Mempool: https://mempool.bitvmnet.org/
Esplora API Endpoint: https://esplora.bitvmnet.org
By walking through the instructions in DEMO_INSTRUCTIONS.md, all test transactions of a successful disprove scenario have been sent to BitVM Signet. Here is the list and anyone can view them at https://mempool.bitvmnet.org/tx/{txid}.
- Peg in : https://mempool.bitvmnet.org/tx/4dd5d195073af820875b5f19dc2ab30862798af2ea63fc37aecbe1051f1e8688
- Peg in confirm : https://mempool.bitvmnet.org/tx/e9663b684cb15f255ef0a77fdcc5ffebcfa0ba06dc32b4650b3fab8d91da518f
- Peg out : https://mempool.bitvmnet.org/tx/095c21cc45331da7fdb45f8f56e184c4d983cf86f539fd32ee39cc44543e71bd
- Peg out confirm : https://mempool.bitvmnet.org/tx/1c74c2819717b3af854c2ab50b58001186e40f384fb8c1bd01791fce64cc7353
- Kickoff 1 : https://mempool.bitvmnet.org/tx/8d96aab47ef67279141ae0eeccf1b588ab9ad1d75fba1a6dd46a70845499006e
- Kickoff 2 : https://mempool.bitvmnet.org/tx/3c8d81f37e28f64b34a76e41b58788c94e1a7e7a0761c2d5a235aa956908243a
- Assert initial : https://mempool.bitvmnet.org/tx/8d386719cc3bc461e07c261a14419fd87b8e56374283b79e357b05b9fb3fd45c
- Assert Commit 1 : https://mempool.bitvmnet.org/tx/bb29da2a87879faf46c22fbb19a3961b226c4a6075bad5226a6802472fbb0871
- Assert Commit 2 : https://mempool.bitvmnet.org/tx/93e951de5ce6335f588f344ff58d54e1d813fcecc192a186bf7e19d712556680
- Assert Final : https://mempool.bitvmnet.org/tx/e7da86777532342521f80bbf2bfc477ebbab289866b6c2842673a006ec34512a
- Disprove : https://mempool.bitvmnet.org/tx/ee29855315760b5b839ad20c9ce19a1e235c54afc2431b2a527b97458c0ab8e5
Changelog
- Infinitely flatten code in preprocessJS by @JeremyRubin in #2
- Added a brief tldr of how a BitVM BTC bridge would look like by @alexeiZamyatin in #5
- Fix wording in bridge explanation by @lukechilds in #6
- Fix typo by @3for in #8
- Add u32_mul by @weikengchen in #12
- Avoid unnecessary intermediate conversion for u32_mul by @weikengchen in #24
- Experimental 30-bit limb implementation for u256 by @weikengchen in #26
- Fix u32 sub, add uint sub/cmp, add u32 1add by @weikengchen in #27
- add uint double/1add and u1, u2, ..., u30 to_bits by @weikengchen in #28
- Relocate the tests and add ubigint to bits by @weikengchen in #30
- optimize number of bytes for u30_add_nocarry by @wz14 in #33
- Winternitz checksum code optimization by @tomkosm in #34
- Alternative winternitz implementation, no digits on input. by @tomkosm in #36
- optimize Fq2 square by @Hakkush-07 in #37
- optimize fq2 and fq6 square by @Hakkush-07 in #41
- Port blake3 and dependencies by @tomkosm in #40
- add div2 and optimize fq6::square by @Hakkush-07 in #43
- Necessary changes on the BitVM side for the new execution engine by @weikengchen in #46
- add div3 and optimize Fq6.mul by @Hakkush-07 in #47
- improve u30_div3_carry and u30_shr1_carry by @Hakkush-07 in #49
- Optimize u32 rrot by @wz14 in #52
- add test for u32_std::compress() by @cyl19970726 in #55
- optimize for the specific_optimize by @bixia in #56
- Add sha256 by @wz14 in #54
- optimize of rshift by @bixia in #59
- optimize u32 and xor or not by @Hakkush-07 in #60
- improve rrot7 for u8 and u32 by @Hakkush-07 in #61
- optimize sha256 for 32 and 80-byte inputs by @Hakkush-07 in #62
- push_to_stack optimization by @tomkosm in #63
- More push_to_stack optimizations. by @tomkosm in #64
- Optimized Sha256 version working with u4 by @jonasmartin in #65
- Blake3 Optimization: from 103K to 45K by @jonasmartin in #67
- [On Proving Pairings 2/3] verify pairing with c and wi by @PayneJoe in #68
- Remove second rust-bitcoin-scriptexec dependency from #69 by @lucidLuckylee in #70
- [groth16's verifier] four pairings with one non-fixed on G2 by @zulunetwork-dev in #71
- add batched_scalar_mul and reduce cost of fflonk verifier by @wz14 in #73
- feat: Montgomery reduction and Karatsuba multiplication by @lucidLuckylee in #75
- feat: better bitcoin script macro by @lucidLuckylee in #77
- Complete version of algorithm 9 in On Proving Pairings by @PayneJoe in #83
- Add bridge progress by @justin-elementlabs in #79
- Optimized Fq multiplication using hints with w-width windowed method by @bbist in #87
- Fq-mul bug fix by @FatihSolak in #86
- G1 scalar mul optimization by @Hakkush-07 in #88
- Upgrade to v3 graph, add musig2 signing, improve client by @justin-elementlabs in #91
- ~50% Optimization of Field Multiplication with Lookup Table by @fiamma-dev in #89
- Integrate Stack Analyzer by @lucidLuckylee in #94
- TMUL Integration into Groth16 Verifier by @Hakkush-07 in #93
- [FIX] Fix running tests procedure by @ostadgeorge in #97
- TMUL Optimization by @FatihSolak in #99
- Fix: Non constant program flow in scalar_mul by @lucidLuckylee in #101
- Optimize "limb_add_with_carry_prevent_overflow" and "limb_lshift_with_carry_prevent_overflow" by @just-erray in #102
- optimize blake3 stack by @fiamma-dev in #105
- optimize u32_add_carry from 145 to 90 bytes by @Hakkush-07 in #106
- Affine versioned MSM by @PayneJoe in #114
- fix G2 element subgroup membership check by @dylanCai9 in #115
- Optimize Fq2 mul (hinted) to use 2 lc2 instead of 3 lc1 tmuls & Fix Fq neg by @Hakkush-07 in #116
- Hint msm affine by @dylanCai9 in #117
- feat: optimize winternitz by @sander2 in #121
- feat: Add helper functions to use signatures as witness by @archidoge0 in #123
- change algebra dependency to the version with new ATE_LOOP_COUNT by @Hakkush-07 in #124
- feat: implement the g2_subgroup check by @fiamma-dev in #125
- helper to dry-run transaction scripts by @sander2 in #130
- chunker of the Groth16 verifier program by @freddi8e in #129
- Winternitz Improvements in Generic Format by @just-erray in #127
- optimize sha; use structuredScript by @stillsaiko in #132
- New Blake3 Optimization by @jonasmartin in #136
- Integrate CLI and Winternitz Commit Logic to Client based on #131 + #134 by @justin-elementlabs in #138
- fix hint for pairing result by @freddi8e in #140
- Affine infinity fix by @Hakkush-07 in #139
- allow f (miller loop output) to be cubic residue by @Hakkush-07 in #141
- Disprove execution by @wz14 in #142
- Change G1Affine hinted check functions by @Hakkush-07 in #147
- Cleanup codebase with clippy and reduce warnings by @lucidLuckylee in #145
- Remove fflonk by @lucidLuckylee in #151
- fix(blake3_u4): issue with insufficient size of precompute table by @manishbista28 in #154
- fix: issue where precompute p function bakes runtime input by @manishbista28 in #155
- Chore clippy by @stillsaiko in #159
- chore(deps): bump to rust-bitcoin 0.32.5 by @storopoli in #158
- Fix Client tests, add Regtest functionality by @justin-elementlabs in #161
- feat: add hinted fp12 inverse by @manishbista28 in #153
- feat(curves): add hinted is_on_curve check by @manishbista28 in #156
- fix: ensure same line coeff in g2 affine dbl and add by @manishbista28 in #162
- Use
LazyLockto reduce dependencie...