Inspiration

What it does

This project is intended to create an authorization scheme for users and their multiple files (or data) that they would want to keep stored on an off-chain server, while encrypting it, and made sure that key information associated with that data is stored in the Ethereum blockchain. Thus, this project portrays a form of granting or revoking access to certain files that a user (Owner) may have in their power. The Owner of certain files would have the following properties for their files:

  • Privacy and security.
  • Access control.
  • Data sharing.
  • Data integrity and Availability

How we built it

The following languages have been used for this project:

  • Solidity.
  • JavaScript (for Node.js).
  • Json.

The environments used for guidance and testing the smart contract deployment:

  • Truffle.
  • Ganache.

Overall scheme

A user will pass through the following steps in order to ensure a correct use of the application:

  1. Users must be registered in the application to generate and store keys (both public and private). The user will need to determine which role they will have (be it an Owner, a writer or a reader of files).
  2. The user identifies which file (or files) will be managed soon for sharing.
  3. The user uploads the data to the off-chain storage.
  4. The application encrypts the data sent to the off-chain storage.
  5. The data is stored in the off-chain; successively, an address (location) is generated, as well as a key (record ID).
  6. The application generates a hash value of the registered data.
  7. The application stores the hash of the data and its location.
  8. The data may be downloaded for use by an allowed user (may them be a writer or reader). For this, the data must be decrypted using the Owner's public key.

What's next for Aurium: authorization scheme

A front-end must be made for user to user interactions. This is still under investigation (for which developer tools will be used)

Built With

Share this project:

Updates