Private transaction over a public blockchain made easy.

Guénolé de Cadoudal
Ethereum Research
Published in
6 min readApr 2, 2019

This subject has been on the blockchain researchers and developers agenda for some time and many solutions have been proposed (ZKSnark, Quorum, Aztec, etc).

Ethereum is one of the most popular blockchain solution because it brings a ready to use infrastructure (tests and production public blockchains, free tools, huge community of share-minded people etc…).

But when companies starts understanding the benefits of decentralised platforms and launch an initiative that involves working with clients and competitors, they quickly reject the public blockchain option because of their genuine need of business confidentiality and turn to either a centralised operator with distributed systems or launch their own private blockchain network with their partners where they will control who enters and who stays outside.

This decision means large investments in IT infrastructure and IT skilled people to create, maintain and supervise the network and this has important costs implication and some centralisation effect.

Ethereum Privacy

“There is a need for a simple solution for business confidentiality over existing public blockchain infrastructure”

Ethereum Privacy is a new initiative offering that simplicity yet not compromising with security and confidentiality and leveraging the Ethereum ecosystem.

Ethereum Privacy’s proposal is to let businesses plug into the public Ethereum blockchain, pay for the use of the infrastructure (rather than invest in it), yet transact with each other via standard smart contracts and using their standard technology (public key infrastructure) to identify their partners.

Typically, two or more compagnies will discuss terms of their transaction and upon agreement all parties should sign a contract. A private smart contract can be exactly this, collecting the signatures by recording a private key signed transaction into the blockchain but it needs to be exchanged in full confidentiality.

All they need is to install a simple standalone program that interacts with the public blockchain encrypting and decrypting all data. Developers can then create on top of it standard DApps (distributed apps) as the program is web3 compatible.

If they need to prove their actions to a court or third party, the public blockchain would have an encrypted record of all activities that combined with the one-off usage key could decrypt that particular action.

This technology is intended to be open sourced and is currently in alpha version deployed for testing onto the public test ethereum network.

A functional demonstrator is deployed here and contains instructions on how to proceed (see the screenshots below). Gitlab repository is given at the end to get started.

Use cases

They are of course infinite number of possible usage for this technology, but to give ideas here are some examples

  • Invoicing: Your company has numerous clients and you need to track your valuable invoices and eventually transfer them to your bank for financing or sell them to a third party for collection. But of course no one but your client need to know that you are in business and what is your volume of activity.
  • Trade Finance: A letter of credit involves 4 or more parties but only them. Difficult to implement an infrastructure to exchange between each other for a few trades per months. You can easily start your cooperation with Ethereum Privacy just exchanging each other’s public key and buying a few ethers.
  • Loan Syndication: A corporate lending that is syndicated between multiple banks, and later to investors, can be privately shared in the public blockchain with all actors, signed and the life cycle of the financing followed throughout the years of this kind of product without investing in large infrastructure.
  • Issuing diploma: The details of the diploma can become numeric (rather than the hash of a document) and to get access to a diploma, someone should share its public key and will be granted access to that particular record at any point in time.
  • You have an idea, share it and let’s see if it applies

How does it work ?

Let’s dive into the technical scheme making this possible.

It is principally based on a mix of symmetrical and asymmetrical cryptography applied on event sourcing architectural scheme.

Symmetric encryption for what should be shared by several parties, private key signature to identify the origin of the data and public key encryption for sharing the symmetric encryption key and notifying one party.

Each actor of the transaction must install and run the Ethereum Privacy node (or connects to one it trusts).

  1. The initiator prepares a standard Ethereum transactions and sends it to his Privacy Node (pnA) and specify the Privacy Nodes (pnC) this transaction should be shared with
  2. The pnA node retrieves the public keys of all the target nodes (pnC) from a PKI and adds its own public key
  3. The pnA node compress then signs the transaction data with its RSA private key, generates a one time use symmetric AES 256 key and encrypt the signed transaction. The symmetric key is then encrypted with the public key for each of the target nodes (pnA, pnC)
  4. The symmetric encrypted transaction and each asymmetrically encryption of the symmetric key are published into the PrivateTransactions smart contract in the public blockchain (here transaction fee applies) making a permanent record of action.
  5. The public transactions are transmitted in the P2P network and mined in the public blockchain
  6. All Privacy Nodes (and anyone else) see a new transaction in the public blockchain, but view encrypted data only without knowledge of who are the recipients.
  7. All Privacy Nodes attempt to decrypt the symmetric key with its own private key. In case of success (i.e. the transaction is intended for it) else the transaction is simply ignored.
  8. The sending Privacy Node’s public key is checked against the PKI to ensure it is known and trusted
  9. With the symmetric key the Privacy Node decrypts the transaction data (signed by the initiator)
  10. With the decrypted transaction, the Privacy Node injects it in the private local blockchain where the effect takes place.

Want to get involved or know more ?

--

--

Guénolé de Cadoudal
Ethereum Research

Developper passionated with Blockchain. Currently Head of Digital Assets Group & Digital Factory Officer for CACIB .