Winnyの技術

ISBN4756145485
やっとこさ登場。
コレを見て思ったこと。
少なくとも、Winnyの設計では、オープンソースは耐えられない。
どういうことかというと、Winnyの現状の設計では、ソースコードをオープンにしたとたん、匿名性ネットワークが崩壊するということだ。なぜそう感じたのかは、書くのが面倒なので省くけど*1オープンソースで匿名性を維持しつつ情報発信を行いたければ、隣接ノードが完全に自分のノードとは異なる実装であっても、自分が発信している情報が本当に自分から発信されている情報かどうかを、他ノードが判断できないようにしなければならない。
たとえば、隣接ノードに自分が保持している情報のリストを渡すとする。このとき、自分のノードが明らかにP2Pネットへの新参者であると分かる場合、その情報のリストは、自分が保持している情報であることの意思表明をしていることになり、その情報を元に何らかの危害が自分に加わる可能性があることを意味している。
また、新しい情報を投下する場合、隣接ノードにその情報をPUSHすると、それは、自分がその情報を持っていることだとばらしてしまうため、同様の危険性が発生する。
そのような危険性を回避するためには、

  • 自分のノードが本当に保持している情報のリストを隣接ノードにバラさない
  • 送信中の情報が、自分が保持している情報か、他人が保持している情報かを区別できないようにする

などを行わなければならない。
オープンソースでこのようなことを実現するためには、このソフトなら安心して使えるという根拠をユーザに与え、そして、オープンな実装がネットワーク全体のマジョリティを占める状態を確保した上で、徹底的に隣接ノードに自分のオリジナルな情報を流さなくても済むような方式を考えなければならない。
もしこれが実現できれば、たとえ悪意のあるユーザがネットワークに参加しても、隣接ノードからの情報を頼りにした追跡という手法が取れなくなり、ノードの追跡は事実上不可能になる。
コレが実現できるならば、本当に匿名性を維持できるようになるのではないだろうか。なお、ここでいう匿名性とは、自分が特定されることではなく、自分が発信している情報が、本当に自分が発信しているのかを特定できないようにするという意味での匿名性であることに注意。また、その情報の中に、自分を特定できてしまうような情報が含まれていたら、このような仕組みもまったく意味がないことに注意。

*1:酔いどれ中のため、勘弁