寄付窓口はこちら

ブロックチェーン上のプライバシーデータをいかに守るか #nodetokyo Day2-2

f:id:niwatako:20181120130357j:plain

皆さんこんにちは

NuCypherについて。分散型ネットワークサービスを提供するときに暗号化を提供するアプリケーション。

分散型のものを考えたときにどのような暗号化が必要かということです。

これを暗号化を利用するアプリケーションを考えると通常公開鍵方式を使うと思います。

f:id:niwatako:20181120130503j:plain

ユーザーが互いにやり取りする場合、公開鍵は十分でなく、BGPなどを使ったりしますね、でも二人以上になるとどうなるでしょう。

ここに我々が着目した難しい課題があるわけです。ここでE2Eで暗号化したい。

考えていただきたいのは、いろいろな形でメッセージやLSで暗号化したりする、誰かがこのメッセージを読まないといけない。

このケースではBobとCharlie。それぞれの鍵で復号化する。すでにAliceはオンラインでメッセージを常に暗号化しているわけですね。 Aliceはできるだけ多くの暗号化を数多くの人たちに使いたい。

これは拡張性がない。これをどう解決するか。これまで、すべてのアプリケーションについてE2Eの暗号化を実現するものはなかった。セントラルサーバで一元的に管理するところを信頼する方式をとっていた。

f:id:niwatako:20181120130713j:plain

明らかにそれぞれ、Aliceのものを暗号化したり、復号化したりということをしているが、ここがハッカーにたいして脆弱になるわけです。

E2Eの暗号化を解決しながら拡張性を担保するには課題があった

そこでプロキシを利用した再暗号化を行う。

f:id:niwatako:20181120130937j:plain

ここで例えば誰か、プロキシをシャットダウンしたり検閲したりが可能になる。完璧なソリューションと言えない。

これを検閲に対して対抗する処理としてプロキシの分散化が考えられます。

f:id:niwatako:20181120131119j:plain

これが我々の

f:id:niwatako:20181120131208j:plain

f:id:niwatako:20181120131233j:plain

鍵の許可を与えると

f:id:niwatako:20181120131258j:plain

最終的にデータの変換を行って受領した人が復号する

f:id:niwatako:20181120131345j:plain

複数のプロキシを使って分散化したが、ここでUmbralという暗号化を使います。

受領者の方で復号化できる形で暗号化している。

f:id:niwatako:20181120131323j:plain

こちらがアルゴリズムです。Githubで見てください。

f:id:niwatako:20181120131449j:plain

我々のネットワークでは誰でもノードを立てていい。

シビルアタックリスクがあります。小さいチャンスですが、アタッカーではなくて世紀のノードではないということでPoSが必要です。

悪意がある場合にはトークンがスラッシュされるようにしたい。

f:id:niwatako:20181120131542j:plain

テストネットのビデオ

f:id:niwatako:20181120131557j:plain

f:id:niwatako:20181120131607j:plain

テストネットはトークン入ってないけどGithubのコードでテストネットに接続できる。

f:id:niwatako:20181120131625j:plain

こちらが使っていただけるアーリーユーザーです。

f:id:niwatako:20181120131635j:plain

メディカルが多い、患者が医師と医療機関と共有できるように。患者がデータを持つ。

IoT系のところ、データ、車が出したデータを活用したいとか、ソーシャルデータもユーザーが持っているように、Facebookなどがもって彼らが売るのではなく。

f:id:niwatako:20181120131744j:plain

Fully Homomorphic Encryption、遅いが、100倍にしてGPUでやってみた。

f:id:niwatako:20181120131838j:plain

継続して研究中

資料

f:id:niwatako:20181120131907j:plain

ご覧ください。

開発はDiscordで進めています。