O

Orange Life

Managing medical records is difficult. Orange Life makes it easy, secure and private. Your records are in your hands, secured by cryptography. Grant and revoke access to hospitals as and when you want

The problem Orange Life solves

Orange life is a secure and convenient records management system.

Your medical records are in your hands πŸ‘. No single entity, except you, controls the records you upload.

Whenever a hospital πŸ₯ needs access to your records, you can choose to give them access and revoke access once they do not require it.

Highlights of Orange Life:

  • ✨ Convenience: you do NOT need a blockchain wallet, metamask or any other tool to use Orange Life. All you need to do is remember a friendly mnemonic in case you need to recover your wallet. Uploading a record is as easy as selecting the file and clicking a button. Granting and revoking access is easy too.
    • QR Codes make it easy to allow family members and hospitals to access your records.
  • πŸ” Security: Your records are encrypted using state-of-the-art cryptographic methods so that only you and the people you have given access to, have the records.
    • You only need to remember a simple mnemonic and a password of your choice.
  • 🌐 Decentralized: Your records are not controlled by a hospital, insurance company or anyone else. The blockchain network along with a custom decentralized network handle only the metadata or parts of the encrypted record.
  • πŸ”Ž Traceable: Any access granted or revoked is registered on the blockchain. This prevents unauthorized access and keeps a log of all events.

More details can be found on the ℹ️ website.

We make use of the following technologies:

  • πŸ’¨ Polygon Network: for fast transactions on the blockchain. We also made use of the GSN nodes deployed on the network.
  • πŸ•ΈοΈ The Graph: to efficiently query our blockchain data over GraphQL
  • πŸ”’ NuCypher: forms the backbone of our encryption system. We make use of Umbral Proxy Re-Encryption (PRE)
  • πŸ’½ IPFS: for decentralized storage. We use a private IPFS network to improve performance as well as provide some degree of privacy

Challenges we ran into

  • Traditional Ethererum-related JavaScript packages such as Web3.js were not supported with Typescript and WebPack 5.
    • We solved this by re-writing our app in Angular 11
  • Encryption in such a way that others can be given access to a particular record and then revoked, without having to duplicate the data or encrypt it several times
    • We used NuCypher's Umbral Proxy Re-Encryption (PRE) to solve this. It was a perfect fit for our problem.
  • Users should not need to have a blockchain wallet or cryptocurrencies to store or retrieve their documents
    • We solved this by using The Gas Station Network (GSN), specifically OpenGSN's GSNv2
  • NuCypher did not yet have a JavaScript/TypeScript library to interact with it from a frontend
    • We used the

      umbral-pre

      JS bindings of the WASM compiled Rust implementation of Umbral Proxy Re-Encryption. Then we made a custom implementation of Ursulas API to re-encrypt the keys.

Discussion