Monero/Cryptonote Blockchain Platform

Domain: Data transfer – privacy

Problem identification: privacy of data transfer (money, health records, votes,…)

Why Blockchain:

The biggest benefit of the project is the built-in privacy thanks to the distributed storage of data secured with ring signatures. This particular kind of signatures allows the sender to prove non-interactively that he belongs to a specific group, without revealing his identity. Furthermore, the distribution of the backlinked database inherent to the platform allows the maintenance of a transparent history with provable integrity of data. This is a much needed feature in privacy related contexts.

The key problems that the project addresses are:

  • privacy preserving provable authenticity in data transfers
  • privacy preserving provable integrity of data history

Functional Description

Ring signatures allow verifiers to check that the data transfer was initiated by an agent belonging to a specific group, without discovering his identity. This can be used for voting (I prove that I am one that has the right to vote, but I do not say my identity), for sensitive data (I send my health records for analysis, proving to be a real patient but without revealing which one) or in general for any transaction of sensitive data.

To initiate and store a data transfers (“transactions”) on this blockchain users performs two different actions. In the first one the sender collects the public keys of all (or some) users belonging to a group. The public keys must also include the sender’s key: this ensures that the sender really belongs to the group, since all public keys must be registered as belonging to the group. In fact, by checking the signature you can see which public keys have been used (but not which private keys). In the second step the user signs the transaction with his private key and with all the public keys collected in the previous step.

The data transfers are recorded on a public blockchain similar to that of Bitcoins, from which it derives. The main difference of this platform compared to Bitcoin’s is the signature system that allows the use of transactions with greater privacy. Since it does not present many differences with the Bitcoin blockchain, it is possible to apply the same scalability projects in what is commonly called layer 2. A possible example is Lightning network, a particular network of payment channels that keeps track of recurring off-chain microtransactions.

The system consists of one main component that can have mainly two different variations:

  • Monero Full Client: people have to track the Monero blockchain to operate
  • Monero Light Clients: smartphone addressing apps that let the user operate without storing the blockchain

Technology used

  • Blockchain: Monero
    • Software: BitcoinCore (probably, not disclosed)
  • Main characteristics of the chosen blockchain
    • Public
    • Permissionless
  • Consensus mechanism: Proof-of-Work
  • Smart Contracts
    • Available Programming Languages/Platforms: Bitcoin Script, Layer 2 smart contracts
    • Chosen Programming Language: Bitcoin Script

 

Current status

 

The project’s code repository is public on github, url: https://github.com/monero-project/monero. This project is being developed under the BSD3 LICENSE.

The current Monero version is version 0.15. The Monero v0.15  was released on November, 2018.  The last commit was on January 12nd 2020.

Focus point commentary indicating the value of the case study in relation with learning modules

Learning Modules Focus Points
Peer-to-Peer database design Blockchain
Encryption techniques public/private key on ECDSA
Consensus Proof-of-work
Digital Signatures Ring signatures
Smart Contracts L2 smart contracts
Privacy and Property Rights Privacy applications (health care, AI, voting…)
Blockchain-based Decentralized Applications
Decentralized Autonomous Organizations DAOs

 

Limitations:

  • Privacy: it is a two-edged sword

Alternatives Approaches:

  • there are many ways to achieve privacy

References

Monero subreddit used for Q&A: https://www.reddit.com/r/Monero/

Tags: