Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Technical solution to Storing and retrieving encrypted data #2

Open
rockyy11 opened this issue Jul 19, 2018 · 0 comments
Open

Technical solution to Storing and retrieving encrypted data #2

rockyy11 opened this issue Jul 19, 2018 · 0 comments

Comments

@rockyy11
Copy link

rockyy11 commented Jul 19, 2018

Use case Scenario - An Eternal Trust's user called “Bob” needs to use the dynasty support product (a crypto trust) for the benefit of his children. He wants to distribute 1 ETH per month among every child from January-2018 (Start-time) to December-2018(End-time) without disclosing this data to any central authority.

Front-end:-

  1. Make the form for an Eternal Trust's user called “Bob”, who will fill the details.

Eg: Details-

{
Interval-in-months: 1, #Interval in which the amount will be transferred.
To-addresses: {
Address1: {
Intervals: 3, #till how many intervals is the amount transferred to specific child
Value: 1eth, #amount to be transferred regularly
},
Address2: {
Intervals: 6,
Value: 2eth
},
Address3: {
Intervals: 9,
Value: 3eth
}

}
}

  1. Break the data for to-addresses according to intervals, each file will have the details only related to that month.
    Eg:

Month-1
{
Address1: 1eth,
` Address2: 2eth,
Address3: 3eth
}

Month-2
{
Address1: 1eth,
` Address2: 2eth,
Address3: 3eth
}

Month-4
{
Address2: 2eth,
Address3: 3eth

}

Month-9
{
Address3: 3eth

}

  1. Randomly generate 9 AES keys and encrypt month-1 to month-9 json files using those AES keys , send those encrypted file at server (backend).
  2. The AES keys we got from the 3rd step, we will use Shamir's Secrets sharding algorithm and break the AES key into N number of shard keys where N is the number of oracles. Each shard will be encrypted by respective oracle's public key (generated using RSA algorithm).
  3. We will send these encrypted shard to backend(server).

Backend (Central server) :-

Store all the received encrypted file (From step 3 of front-end) at IPFS and get there hashes and store them at Hyperledger.
Store all the encrypted shard (from step-5 of front-end) in hyperledger.
Oracle servers work :-
When the time meet for transferring the amount to children account, The oracles will get the encrypted shard keys from Hyperledger and decrypt it(shard key) using their respective private keys and if the majority of oracles agree for the transfer then they will give their respective decrypted shard key to any one Oracle server, and that server will get the AES key and get the data encrypted data from IPFS and decrypt the data with AES key and transfer the amount using EOS smart contracts.

@rockyy11 rockyy11 changed the title Technical solution to https://github.com/eternaltrusts/Private-Blockchain/issues/1 Technical solution to [#1] Jul 19, 2018
@rockyy11 rockyy11 changed the title Technical solution to [#1] Technical solution to Storing and retrieving encrypted data Jul 19, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant