IPFS上に実装するとしての問題
話している中でIPFSの削除できない機能によって問題を見つけた

問題
「IPFS上にあるファイルAをaによって暗号化して保存している。共有したい相手xにaを共有してアクセス許可を出す。次にXに対してアクセス拒否を行い、
dirty keyの
クリーニングを行うために
Re-Encryptionを実行する。そうするとAファイルはa'という鍵で暗号化は行われるが、元々aで暗号化されたファイルはIPFS上に残っており、結局XはファイルAにアクセスができる。」
解決方法
二重構造にする
Aファイルをaの鍵で暗号化を行いIPFS上に保存し、aの鍵をbの箱に保存する。そしてcの鍵で暗号化を行う。
共有したい相手Xにはcの鍵を共有することでAファイルにアクセス可能になる
共有を辞めたい場合はaの鍵が入っているbの箱をdの鍵で再暗号化を行う
この問題はaの鍵をXが保存していた場合XはAのファイルにいつでもアクセス可能になる
Aファイルを暗号化したaを秘密分散を行う
問題はしきい値が集まった時に鍵自体が生成されるのではないか?
これ生成される場合サーバー側でもクライアント側でもいいが鍵を保存することは出来る
秘密分散ってこんなに脆弱性があるのかね?
ここを代数学的に解決できる可能性がある?

現在:
ある実体Xを鍵Yで暗号化し、鍵Yをそれぞれの端末に3つ(a,b,c)に分散させる
2/3の許可を得たら鍵Aが生成される
A(a or b or c) + B{(a or b or c)- A} -> Y
ある実体Xは復号化される
妄想
を書こうとしたんだけど理論破綻する気がする

鍵Yを初めから存在しないものにしようと考えたんだけど、そうなるとどうやって暗号化するの?って話になってしまう
これ共有鍵共有鍵で考えているからこの問題が起きるだけ?
いや、公開鍵暗号で考えた場合、公開鍵を解けるのは秘密鍵なんだけど答えが1つじゃないと解けないから復号化出来ないか
識別、検索させない
暗号化したコンテンツを削除することは不可能だけど、CIDが削除できればいいのではないか?
そうする事で
検索不可能になり、実質削除されていると同等になるかもしれない
ただどこかのNodeには残っている
Nodeに対しての攻撃で識別不可能な何かしらの実体は残っていることになる
分散すればするほどこの攻撃に対して対処することは可能
1つのデータを2つのNodeで共有して持つとする
この場合1/5で攻撃者は探す事が出来ることになる
全体ノードのN%が共有するとして、このNをどう設定するかは凄い重要

つまり再暗号化を行う必要があり、元のコンテンツは残る
状態を全てのノードで共有することになる
ブロックチェーンと同じになる(全NodeでStateを保持する)
Q,削除したファイルを再アップロードした場合どうなるのか? by sosuke氏

時間的概念を取り入れれば同じファイルだったとしても識別可能になるのではないか
重要なのはどうCIDを生成するのか

、DID的な感じで識別子を各個人持って、IDとコンテンツからCIDを生成するのはどうか?
言っていること理解できてなかった

それぞれのコンテンツに対してIDを生成してそこから削除するってイメージかも
真・偽(許可・拒否)を共有相手それぞれに行う
それぞれ共有相手ごとに鍵を変える必要がある
@

これ今思うと1つのファイルを複数保存する必要あるくない?


によって技術面が前より理解できているからこそ会話が出来た
議論によって前進させてくれた
ありがとう

IPFSのフォーラムに削除について聞いたり、いい方法ないか聞いてみよ
done