Rate3 — IPFS Demo
Rate3 Network is a decentralised dual protocol for cross-chain asset tokenization and identity management.
During the tokenization process, users have to submit personal information to trust companies for KYC/AML checks. However, submitting personal documents is still a tedious process, if a user has to submit multiple times.
Ideally, a user should be able to submit documents to the blockchain once, and share his/her identity with other services that require real-world verification.
One possible solution is to use Interplanetary File System (IPFS), where a user can upload his documents to IPFS and generates a hash for anyone to download the file.
There is an obvious security gap here. As long as anyone has the hash of the files, they can retrieve it from IPFS. Sensitive files — like personal KYC documents — are not well suited for public sharing in its native state.
Enter the Rate3 Identity Protocol
The Rate3 Identity Protocol is a protocol to create and manage a unified cross-chain identity securely.
To circumvent the security gap, the Rate3 Identity Protocol adds a layer of asymmetric encryption (OpenPGP encryption) to encrypt a file with the public key of the intended recipients.
Only the intended recipients can decrypt and receive the file with their own private keys.
Let’s look at a simple workflow diagram, with asymmetric encryption:
- Jake wants to upload his personal ID to IPFS but only give Trust Company A access
- He puts his personal ID in his working directory and encrypts it with Trust Company A’s public key
- He tells IPFS he wants to add this encrypted file, generating a hash of the encrypted file
- Jake’s encrypted file is available on the IPFS network
- Trust Company A can retrieve it and decrypt the file with the associated private key of the public key used to encrypt the file
- A malicious party cannot decrypt the file because they lack Trust Company A’s private key
Why is this Important?
In this demo, we show a specific use case where you can create an identity and submit your KYC information on-chain to multiple recipients securely.
Uploading and sharing documents securely to intended recipients is the first step of our Rate3 Identity Protocol. Future developments include encryption public key management, data verifcation information, KYC verfication by third-parties, adding additional attestation documents and more.
How do I try it out?
In this demo you can share any file uploaded on IPFS and Ethereum. To help you get started quickly, we have prepared a OpenPGP encrypted passport image stored in IPFS for you.
Test it out here: https://ipfs.demo.rate3.network/
Step 1: Click ‘New Submission’
Make a new file submission to someone via an Ethereum transaction.
Click ‘here’ to populate the fields.
Step 2: Make sure you’re on Ropsten Testnet on Metamask
Step 3: Click ‘Submissions’
Right now, you should be seeing no submissions yet.
Once the transaction is approved, you will be able to see the successful submission.
Step 4: Click ‘Received Documents’
Now, imgine you are Trust Company ‘A’ who is receiving the documents.
Step 4: Click ‘Download Documents’
To download the documents, paste the IPFS hash.
Add in your own private keys to decrypt the file.
Step 6: If you use the right private keys to decrypt, you have successfully downloaded the file!
You should see this downloaded file:
If you see this download file, you have successfully encrypted, submitted a file, decrypted, and downloaded a file on IPFS!
View the Github code here:
GitHub is where people build software. More than 28 million people use GitHub to discover, fork, and contribute to over…
What is Next?
The above short demo has highlighted a specific use case of on-chain file link sharing. Subsequently, you’ll see the following features added:
- On-chain public key management (for others to encrypt for your view only) and third-party identity claims on chain (ERC725)
- Public key encryption using Ethereum public private key pair for ease of use in Ethereum ecosystem (encryption/decryption done easily with Ethereum account)
- Linking of Stellar Account for Cross-chain identity
- Integration with Stellar’s Federation and Compliance protocol
Rate3 is a decentralised dual protocol for cross-chain asset tokenization and identity management. The Rate3 Tokenization Protocol is an end-to-end protocol for tokenization on both Ethereum and Stellar, while the Rate3 Identity Protocol is a protocol to create and manage a unified cross-chain identity.