It's time for my monthly research report for April. As always, my thanks to the community for ongoing support of research in applied cryptography.
The CLSAG ring signature construction has several updates. The preprint, after undergoing a significant overhaul to its security model and proofs, has been posted as a revision to the IACR archive. The C++ implementation has received plenty of attention: plumbing to support hardware devices, better handling of ephemeral signing data, and improved tests and timing data.
I wrote a C++ implementation of the Triptych proving system as a proof-of-concept to show integration with the Monero codebase transaction handling code. This includes optimizations for multiscalar multiplication evaluation, common input key batching, commitment offsets, and point caching. Unit and performance tests are also completed, and show impressive verification performance. A version of the preprint has been revised and submitted for the PoPETs conference proceedings.
The preprint for the Arcturus proving system, which extends Triptych to support balance assertion and signing for multiple inputs within the same proof, was also updated to fix some notation problems. A version of the preprint has been revised and submitted for the PoPETs conference proceedings.
Due to renewed interest in the idea of protocol-enforced hidden timelocks, I revisited the requirements on signature and proof constructions to enable this. I rewrote code for 3-CLSAG, an extension of CLSAG that supports hidden timelocks, and wrote a timing test for this. Similarly, I wrote code for 3-Triptych, an extension of Triptych that supports hidden timelocks, and produced timing test data. Both show significant verification performance hits, as expected. This code and data can be used for future work and decisions relating to the topic of timelocks.
There were many other smaller tasks and projects. I wrote a simple change to the Bulletproofs code that speeds up verification significantly in batch operations. Code for more robust handling of in-memory key encryption is in progress and nearly completed. I assisted with informal review of a preprint on hierarchical Groth-type proofs. I made minor updates to code that centralizes the handling of hash domain separators to avoid collision. I contributed material to the recent update to the Zero to Monero technical guide. And I rewrote some existing signature tests for more consistent comparative performance data across different constructions.
And now on to Sarang's Reading Corner, a short listing of some interesting papers that I have come across this month. The appearance of a paper in this list does not mean that I necessarily agree with its contents or correctness, or that I endorse it. Papers are in no particular order. - An Empirical Analysis of Privacy in the Lightning Network - Privacy Aspects and Subliminal Channels in Zcash - Pointproofs: Aggregating Proofs for Multiple Vector Commitments - Hierarchical One-out-of-Many Proofs With Applications to Blockchain Privacy and Ring Signatures - The Multi-Base Discrete Logarithm Problem: Concrete Security Improvements for Schnorr Identification, Signatures and Multi-Signatures - Multiparty Generation of an RSA Modulus - Topological Properties of Multi-Party Blockchain Transactions - Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority - Efficient 4-way Vectorizations of the Montgomery Ladder - Improving Speed and Security in Updatable Encryption Schemes - Compressed Σ-Protocol Theory and Practical Application to Plug & Play Secure Algorithmics