You have probably heard of homomorphic encryption, a new buzz word in web3 space, but what is it and does homomorphic encryption have a real use case? First of all let us explain what homomorphic encryption really is. By definition homomorphic encryption is the conversion of data into ciphertext that can be analyzed and worked with as if it were still in its original form. Homomorphic encryption enables complex mathematical operations to be performed on encrypted data without compromising the encryption, so basically you can work with some data, while not knowing what the actual data is. There are few types of homomorphic encryption.
- Partially homomorphic encryption. A defined operation can be performed infinite times on the ciphertext. These encryption schemes are relatively easy to design.
- Somewhat homomorphic encryption. A limited number of addition and multiplication operations are allowed, as opposed to an infinite number of one operation. It’s more difficult to design a homomorphic encryption system that supports a set number of operations than one operation infinite times.
- Fully homomorphic encryption. An infinite number of additions and multiplications for ciphertexts is enabled. Programs for any functionality can be run on encrypted inputs to produce an encrypted output.
As you can see, fully homomorphic encryption is the most powerful one, but that comes with a big tradeoff, it requires a lot of computational power. Partially homomorphic encryption as well as somewhat homomorphic encryption are not as powerful due to their restrictions, however we don’t think they should be ignored. For example, somewhat homomorphic encryption can be suited for poker, since we all know that after shuffling cards when the cards are dealt (where number of operations varies based on player count) there are only 5 more cards to be drawn. ZkHoldem is an example of that. If you are interested in concrete numbers of encrypted operation speed, you can check an in-depth benchmark that people at Zama released by clicking here. For now FHE’s biggest implementation is in fhEVM. We are not sure whether that kind of virtual machine is well suited for decentralized systems, due to its scalability issues. As early adopters of every new technology we didn’t miss a chance to try out Fhenix network, a layer 2 network on Ethereum that is powered by FHE. They have sucessfully implemented confidential smart contracts which are such a great thing. They are planning to launch a public testnet in this quarter, if you are interested in their work feel free to check Fhenix crew here, we are keeping our eyes on them. At the moment we are working on some different FHE implementations at our R&D center 3327. Our latest attempt is using FHE to train ML models on homomorphic encrypted data. This would have a great use case in medicine where all the data is sensitive, but as we know AI can bring a lot of value in that industry. We tried to achieve linear regression, the main obstacle that we have faced in this project is not being able to do intermediate calculations, that is getting float numbers as the result of them. We are looking for other ways to overcome this obstacle, and will keep you guys up to date on all the results we achieve in the near future.