apache / incubator-teaclave-sgx-sdk

Apache Teaclave (incubating) SGX SDK helps developers to write Intel SGX applications in the Rust programming language, and also known as Rust SGX SDK.
https://teaclave.apache.org
Apache License 2.0
1.17k stars 259 forks source link

use security and trust proxy to support kvdb like VeritasDB #116

Open bradyjoestar opened 5 years ago

bradyjoestar commented 5 years ago

This issue is related to #103 I'm recently starting to read this paper:VeritasDB: High Throughput Key-Value Store with Integrity using SGX, how about we using this way to import kvdb? It's not only limit rocksdb, if we try to import engine of db,it may take some time and it's hard to upgrade and find bugs.

Hope for you suggestion!

bradyjoestar commented 5 years ago

VeritasDB seems to guarantee on database integrity, we may need to add encryption at rest and encryption at untrusted server to protect the database privacy.

bradyjoestar commented 5 years ago

I'm not a professional Rustacean so I prepare to write a proof of concept by golang for fast developing. In theory, we could translate it on rust-sgx-sdk and db-client and db-server could be supported by any language.

bradyjoestar commented 5 years ago

If users want to use sql db, maybe could be done by maping the kvdb to sqldb by using Tidb engine. Need to be check.

bradyjoestar commented 5 years ago

VeritasDB:

bradyjoestar commented 5 years ago

Merkle btree will be supported for both go and rust which is required by present and deleted

bradyjoestar commented 5 years ago

a simple mbtree was implemented here: https://github.com/bradyjoestar/merkle-btree I will optimize it after poc is finished.

bradyjoestar commented 5 years ago

I'm recently working on merkle-btree-go and merkle-btree-rust.

Maybe it's easy for us to do it with btree repo on the github.

bradyjoestar commented 5 years ago

Recently not solved.