Combining Privacy and Block-chain technology through Zero-Knowledge Proof

Internship Topic

Context

Blockchain technologies are suited to enact a large number of interactions among system users without the need of a central authority. Trust among users is built in a decentralized manner thanks to a distributed protocol permanently running among geographically distributed nodes. The main advantage of block-chain platforms is about auditability of applications from different companies: the block-chain offers an audit trail that anyone can check to make sure that everything is being processed correctly. However, a primary issue about block-chain platform is about privacy: in fact, companies or individuals are not keen on publishing all their information on a public database that can be read by anyone, e.g. foreign governments, competitors, co-workers, etc.

A number of mechanisms and heuristic are being studied to preserve privacy in block-chain system, including obfuscation, multi-party computation, zero-proof knowledge, crypto-economics schemes, etc. Sophisticated protocols as secure obfuscation and multi-party computation suffer from scalability problems, so that they are hardly applicable today in practice. Zero-knowledge proof is a technology that can be used to securely manage secrets and benefits from a number of available implementations. Zero-knowledge proof is for instance used to provide credentials to access a server, without exchanging the credential but only the proof that the credentials are actually owned.

Objective

The objective of this internship is to design and to prototype an identity system based on publicly available implementations of zero-knowledge proofs on top of a block-chain. The system will target simple secrets as “passwords” and will explore other general rules claiming more complex facts such as the internal stock size for a given asset to be sold in the block-chain system. The development will be made in the Ethereum blockchain framework using the smart contract language Solidity. The developed system will be the base for a future PhD study focusing on improved security of blockchain systems.

Methodology

The intern will have the following responsibilities: (1) preparing a state-of-the art about privacy schemes in combination with blockchain-based applications, (2) developing a prototype system (together with its automated tests) running on a single node on one computer, (3) finalizing the design of the system and testing it on several nodes running on several computers.

Competences

  • Being Master 1 or 2 in Computer Science/Engineering.

  • Knowledge about distributed systems and distributed computation in general.

  • Knowledge about the blockchain technology and smart contracts is a plus.

  • Good experience in programming (Java, JavaScript, Phyton or C++)

Means used: distributed systems, distributed computation, security

Languages: Solidity, JavaScript, etc.

Software: Ethereum, Geth, etc.

Level required: Bac + 4/5

Duration: 6 months

Formation required: Engineering / Masters

Possibility of pursuing a thesis: Yes

Venue of the internship: CEA, Centre de Saclay Nano-Innov, 91191 Gif-sur-Yvette, France

Contacts

Related