Home / Companies / Zama / Blog / July 2023

July 2023 Summaries

8 posts from Zama

Filter
Month: Year:
Post Summaries Back to Blog
Concrete is Zama's Fully Homomorphic Encryption (FHE) Compiler that allows developers to convert Python programs into their FHE equivalents, facilitating the creation of high-level applications that process encrypted inputs and outputs. In a video tutorial, Zama team member and Compiler engineer Umut Sahin demonstrates the simplicity of using the Concrete library. The initiative encourages developers to star the Concrete GitHub repository, review its documentation, participate in community support channels, and engage in the Zama Bounty Program to contribute to the advancement of FHE while potentially earning money.
Jul 28, 2023 103 words in the original blog post.
Zama has released new versions of its homomorphic encryption products, including TFHE-rs v0.3.0, Concrete v2.0.0, and Concrete ML v1.1.0, aimed at enhancing accessibility, ease, and speed in this field. TFHE-rs v0.3.0 now supports faster homomorphic operations and parallel processing, with a novel method for reducing public key sizes. Concrete v2.0.0 introduces significant enhancements warranting a major version upgrade. Concrete ML v1.1.0 offers optimization tools that can expedite the Fully Homomorphic Encryption inference process in neural networks by up to 20 times and includes an implementation of a large language model (LLM) using FHE to ensure user privacy and protect the model owner's intellectual property.
Jul 26, 2023 184 words in the original blog post.
Concrete ML 1.1.0 offers significant advancements in optimizing Fully Homomorphic Encryption (FHE) for neural network models, boosting inference speed by up to 20 times while maintaining user privacy and model owner IP protection. This update includes enhanced support for both neural networks and classical models and provides resources to guide users in optimizing and deploying FHE-based machine learning models. The quantization process reduces the precision of intermediary values to as low as 4 bits, with Zama's FHE libraries efficiently rounding off the least significant bits of encrypted integers, contributing to the speed-up. A new use case illustrates how to integrate encrypted layers into large language models using the Hugging Face transformers library, demonstrating FHE’s compatibility with such models. Deployment of FHE ML models is now streamlined, as evidenced by tutorials and examples such as the Health Diagnosis notebook and a credit scoring demonstration, showcasing the ease of transitioning from development to deployment in hours. Users are encouraged to support and contribute to the FHE space through the Concrete ML GitHub repository, documentation, and the Zama Bounty Program.
Jul 25, 2023 403 words in the original blog post.
TFHE-rs 0.3 introduces significant enhancements in homomorphic encryption, focusing on faster operations, parallel processing for programmable bootstrapping, and reduced public key sizes. This update supports a wider range of homomorphic operations, including bitwise, arithmetic, and comparison functions, along with improved performance of existing operations via the carry lookahead approach. It also incorporates a multithreaded version of programmable bootstrapping, which reduces latency by processing groups of bits, and introduces compact public keys to minimize size. The update extends TFHE-rs functionalities to C and WASM APIs, enabling parallelism in browsers and transciphering capabilities with other cryptosystems like Trivium. Future developments aim to enhance operation performance further and introduce new homomorphic types, such as FheInt for signed integers, while providing users with more control over the system.
Jul 25, 2023 1,071 words in the original blog post.
Concrete v2.0.0 introduces notable enhancements and new features to improve the functionality of Fully Homomorphic Encryption (FHE). The update includes a more accurate and faster simulation that closely mirrors actual FHE execution, optimizing the development cycle by generating binary code that operates on noisy plaintext. Users can now encrypt individual arguments separately, allowing for more flexible and reusable computations, and the introduction of multi-parameter optimization assigns tailored parameters to each component, significantly reducing execution time. Additionally, a new rounding operator has been added to optimize performance by reducing bit count where necessary, and user-friendly features like a progress bar and Ctrl-C support enhance the developer experience. The release is accompanied by updated documentation and bug fixes, encouraging user engagement and feedback to further the development of FHE.
Jul 25, 2023 988 words in the original blog post.
Blind auctions, traditionally challenging to execute in smart contracts due to public transaction and state data, can now be fully conducted on-chain using homomorphic encryption and the fhEVM, eliminating the need for a reveal function. The outlined protocol involves a bidding and claim phase where users bid encrypted ERC20 tokens, allowing the contract to homomorphically determine the highest bidder while maintaining bid privacy. The smart contract employs FHE data types to keep bids hidden and uses homomorphic comparisons for operations typically requiring conditionals. After the auction, the winner can claim their prize, and non-winning participants can withdraw their bids without revealing bid values. This approach enhances security and privacy, streamlining the auction process by replacing the reveal step with a claim function.
Jul 10, 2023 1,427 words in the original blog post.
The blog post outlines the transformation of a standard SHA256 hash algorithm into its homomorphic version using TFHE-rs, as part of the Zama Bounty Program, based on the contribution by a GitHub user. It begins by explaining the standard SHA256 function, which processes input data in 512-bit chunks, and details the operations involved, including bitwise AND, XOR, NOT, and others. The post then explores the conversion of these operations into homomorphic versions, which allow computations on encrypted data, emphasizing the need for performance optimization due to the high cost of homomorphic operations. Techniques such as using the Rayon crate for parallel processing and optimizing addition operations with Carry Lookahead Adders are discussed. The tutorial also covers methods to further improve performance through parallel processing and the usage of different parallel prefix algorithms like Brent-Kung and Ladner-Fischer, which are suitable for different computational environments. Finally, the blog post provides guidance on using the homomorphic SHA256 function, illustrating the encryption and decryption processes, and highlights the importance of client-side padding to maintain data privacy.
Jul 09, 2023 2,564 words in the original blog post.
The blog post outlines a tutorial on implementing a dark market application using the Fully Homomorphic Encryption (FHE) library TFHE-rs, as part of the Zama Bounty Program. It describes the process of creating a volume-matching algorithm for a marketplace where buy and sell orders are not publicly visible until fulfilled. The algorithm is initially implemented in plain Rust, calculating the transacted volume based on the minimum of total buy and sell volumes and updating the input lists accordingly. This approach is then adapted to use TFHE-rs to maintain privacy and security, requiring a 16-bit message space to avoid overflow. The tutorial further introduces optimizations by parallelizing operations to enhance performance, employing Rust's Rayon library for concurrent execution of vector sums and order matching. Additionally, a modified version of the algorithm is presented, which allows for more parallel processing by using a prefix sum array to remove dependencies between orders. The tutorial concludes with instructions for running different implementations and encourages participation in the Zama Bounty Program to further explore and contribute to FHE advancements.
Jul 07, 2023 2,063 words in the original blog post.