Summary
In this challenge, you’ll contribute to the heart of Cere’s Developer toolkit: the DDC SDK. Using this SDK, developers interact with Cere’s decentralized data cloud (DDC).
Problem:
- Data is currently stored “as is”. This means developers are responsible for encrypting content before uploading if they feel it’s important.
- Preserving data privacy is important and Cere Network wants to make it as easy as possible for developers to do so.
Proposed Solution (where you can help):
- Integrate a new functionality into the DDC SDK that allows to encrypt data using one or more encryption algorithms
- Both encryption & decryption will happen on the client side
- Secure key management is outside the scope
- Integrate this new functionality into Cere Network’s tooling
- There is a Developer Console UI component where this processing option can be invoked.
- The same functionality should also be available in the CLI
- Both integrations should work using the Cere Wallet
Goal/Values:
- Built-in data privacy
- Enhance the DDC SDK by introducing built-in encryption capabilities, enabling automatic encryption during uploads and decryption during downloads.
- Privacy by default
- Making encryption the default option in both the CLI and the Developer Console will ensure all dApps built on Cere Network are safe & secure
Deliverables
- Modified DDC SDK with a configuration-based encryption that support secure encryption algorithm (e.g., AES, ChaCha20, or another suitable method). Users should be able to enable encryption by passing a simple configuration option when initializing the SDK.
- Modified DDC SDK playground showcasing the encryption and decryption
- Modified DDC SDK documentation and examples explaining how to use the new encryption functionality.
- Modified DDC CLI with ability to encrypt content before upload and decrypt content after download (the same upload/download commands but with optional encryption parameter)
- Modified Developer Console that allows user optionally encrypt/decrypt content. One of the options is to use Cere Wallet’s embedded encryption feature (see Tools & Resources section in WIKI for more details).
Technologies
- TypeScript, React, cryptography
Repositories
https://github.com/Cerebellum-Network/cere-ddc-sdk-js
https://github.com/Cerebellum-Network/cluster-apps