Current status of privacy on the blockchain
Privacy in transparancy
The work on blockchain technologies is a continuous work in progress. New innovations in the blockchain sector happen at a rapid pace. As mainstream blockchain adoption slowly starts to take hold, one important factor is the issue of privacy. Companies want to control access and information sharing on the blockchain.
Everything on the blockchain is pseudonymous, meaning while we do not know the physical presence behind an account, every transaction can be traced. Openness of data is a problem when for example user data needs to remain hidden. Company or government regulations might also forbid the sharing of sensitive user data.
We want to use and have the advantages of blockchain but at the same time ensure privacy for data that needs to stay private. Are there any blockchain solutions that provide this option or do we have to resort back to centralized servers? Vitalik asked this question back in 2014.
To answer the question on blockchain privacy we will give an overview of several blockchain projects that address the issue of privacy, how they work and what their current status is.
Quorum
J.P. Morgan, a multinational banking firm, is developing Quorum, an Ethereum based distributed ledger and smart contract platform. Quorum is based on a light fork of the Go Ethereum client and it has been further extended with additional features: transaction and contract privacy, multiple voting-based consensus mechanisms, network/peer permissions management, and higher performance. We will look at the transaction and contract privacy mechanism in more detail. Quorum is comprised of 3 components as shown in the diagram below: the Quorum Node, Constellation — Transaction Manager, and Constellation — Enclave.
Quorum distinguishes between ‘Public Transactions’, which are the standard Ethereum transactions and ‘Private Transactions’. For private transactions their data is only visible to network nodes of which the public keys are specified in the “privateFor” parameter of the transaction. Before the Quorum node sends the transaction through the network the data is encrypted via the Enclave component and the encrypted data is then stored in the Transaction Manager. The hash of the encrypted data is added to the transaction instead of the data itself and is then propagated through the network. Nodes that are specified in the privateFor parameter of the transaction will be able to retrieve the data of the transaction from the Constellation component whereas the other nodes will only be able to see the hash. The exact steps can be seen in the diagram below and a more detailed explanation can be found here.
Quorum has public smart contracts, which are visible and useable by every participant on the network and private smart contracts, which are only visible and useable to the selected set of participants.
Further work is being done to improve the privacy aspect of Quorum by implementing the zero-knowledge security layer (ZSL). J.P. Morgan have partnered up together with the ZCash team to create a Proof of Concept implementation.
Hyperledger Fabric
Hyperledger Fabric is a business blockchain framework initially developed by IBM and hosted by the Linux Foundation. Hyperledger Fabric is aimed at developing blockchain applications with a modular architecture. Hyperledger has the following key features to make it as a customizable enterprise blockchain solution: Assets, Chaincode, Ledger Features, Privacy through Channels, Security and Membership Services, and Consensus. In this post we will look at Privacy through Channels and what it can offer for privacy on the blockchain.
A Hyperledger Fabric Channel is a subnet of communication between two or more nodes in the network. Ledgers, chaincodes, anchor peers, and members are on a per-channel basis which can be as little as two nodes or be comprised of the entire network. Chaincode represents assets as well as the transaction instructions for modifying said assets. Anchor peers are nodes that all other nodes can find an communicate with which allows them to find the other nodes on the channels. Authentication for each node on the channels is supplied by the membership services provider (MSP) which gives each node an identity. To further provide privacy it’s possible to encrypt the values in chaincodes with AES for example.
Work in progress
There are multiple other projects that try to solve the issue of privacy on the blockchain, however these projects are still in the early stages of development, with some not even having any code available yet. We will keep following these projects closely with interest as they develop.
The Coco framework is an open source system developed by Microsoft aimed at providing high scale, confidential blockchain networks for enterprises. The Coco platform will be integrated with a number of existing blockchain networks and distributed ledgers such as Ethereum, Corda and Quorum. In a live demonstration of Coco it provided a throughput of 1700 transactions per second compared to a 13 transactions per second without the framework.
Alchemy is a zCash and Ethereum integration that allows for a decentralized exchange between the blockchain networks. The project combines the smart contracts of Ethereum with the private transactions of zCash to enable the best of both worlds.
Hawk is a decentralized smart contract system from researchers at the universities of Cornell and Maryland that works in a similar way to zCash and uses the same zero-knowledge proof library. Hawk aims to provide contractual security for financial transactions and offers special private smart contracts. The private smart contract keeps private the code of the smart contract, money send and received from the contract and any data send to the smart contract. The main part of the computation is done off chain to reduce the load on the network.
Keep is a privacy layer for Ethereum offering off-chain containers for private data. It allows for public smart contracts to manage and use private data without exposing the data to the public chain. Private off chain data containers allow building applications such as a dead man switch, a device that will automatically activate if the contract owner becomes incapacitated. An example of a dead man switch is an inheritance in which a user’s private key is automatically send to its descendants if a person stops checking in on a specified time interval.
Conclusion
As we can see there are multiple projects currently working on the issue of privacy on the blockchain. Of these projects. the two most promising ones are Hyperledger and Quorum. Both projects are open source, are actively developed, have large companies backing the project and can be used to build applications upon now. Hyperledger and Quorum provide a different type of solution for data privacy. Currently Quorum provides more options for the privacy aspect, with a production version of ZSL in development.