ノードのネットワークがありN
、それぞれが一意の ID (公開鍵など) を持ち、中央サーバーのないプロトコル (DHT、Kad など) と通信しているとします。各ノードには変数が格納されますV
。簡単な例として電子投票を参照すると、その変数は候補者の名前である可能性があります。
V
ここで、ネットワークで使用可能なすべての変数に対して「集計」関数を実行したいと考えています。電子投票の例を参考に、票を数えたいと思います。
私の質問は完全に理論的なものです (質問の最後に声明と詳細を証明する必要があります)。そのため、電子投票とそのすべてのセキュリティ面に焦点を合わせないでください。もう一度言う必要がありますか?「ノードは、より多くのキーを生成することで任意の数のアイデンティティを持つことができる」、「IPを追跡できる」などと答えないでください。それは別の問題だからです。
プライバシーの観点からのみ、分散アグリゲーションを見てみましょう。
質問
一般的なケースでは、ノードが他のノードに保存されている変数の関数を、ノードの ID に関連付けられた値を取得せずに計算することは可能ですか? 研究者は、そのようなプライバシーを意識した分散アルゴリズムを設計しましたか?
一般的なセキュリティではなく、プライバシーの側面のみを扱っています。
現在の考え
私の現在の答えはノーなので、すべての s を取得し、V
保存せずに処理する中央サーバーが必要であり、個々のノードのデータが中央サーバーによって保存または再送信されないようにするための技術的手段が必要です。私の前の発言が間違っていることを証明するように求めています:)
電子投票の例では、すべてのノードに 1 つずつ「ねえ、誰に投票しますか?」Alice
と尋ねずに、何人が投票したかを数えることは不可能だと思います。Bob
実際のケース
パーソナル データ ストアの分野で研究を行っています。通話ログを PDS に保存していて、誰かが通話に関する統計値 (つまり、平均時間、1 日あたりの通話数、分散、st-dev) を見つけたいと考えているとします。は、私が誰に電話するか、また私自身の平均通話時間も誰にも知られてはなりません)。
信頼できるブローカーが存在し、誰もがそれを信頼している場合、そのノードは、最初にネットワーク内のすべての PDS で呼び出し、次にすべての行で統計を操作するdouble getMeanCallDuration()
API を公開できます。CallRecord[] getCalls()
中央の信頼できるブローカーがなければ、公開されている各 PDSdouble getMyMeanCallDuration()
は統計的に使用できません (平均値がすべての平均値であってはなりません...)。