人と人とをつなぐネットワーク【再び】

科学・IT

46 Res. 12.02054052 MONA 1 Fav.

1 :おのかちお六段錬士:2015/09/05 06:38:34 (8年前)  1MONA/1人

<h1>新しいネットワークの構想</h1>
<h2>概要</h2>
世界中のスマートフォンやパソコンなどの端末を、P2Pwifi、bluetooth、赤外線、FeliCaなどの、様々な規格で接続し、巨大なP2Pネットワークを作る。
実用的には、現在、wifiによる中距離の通信アプリ、Wi-Fi Awareと言うものがあり、これを使う。また、近距離用のbluetooth接続も使用する。
IPアドレスの代わりとなるものは、アドレス(仮称)とよび、ビットコインのアドレスの生成方法を利用する。
これにより、暗号化通信を使用する際に、サーバーに公開鍵を要求せずに、こちらから単純なヘッダを送るだけで、向こうにアドレス(公開鍵)を送ることができ、サーバーはそれを利用して共通鍵をクライアントに送ればよく、通信速度が向上する。

どこを経由すれば目的のサーバーに到達できるかという情報が載っている、「ルーティングテーブル」を各端末で共有する。

2 :おのかちお六段錬士:2015/09/05 06:38:49 (8年前)  1MONA/1人

<h2>通信方法</h2>

接続状況が下記の用だったとする。

A===B=====C===D=====E====F
....|..../.....\....|
....G===H.......J===K
( 「.」 は空白代わり )

3 :おのかちお六段錬士:2015/09/05 06:39:40 (8年前)  1MONA/1人

<h3>通常時のパケット到達方法</h3>
どの端末に、どの端末が接続されているかの情報を保存する、「ルーティングテーブル」という一つのファイルを、ネットワーク全体で更新し続ける。一定の期間で、自分と接続されている端末と安否確認をする。
このとき、ルーティングテーブルは、

4 :おのかちお六段錬士:2015/09/05 06:39:56 (8年前)  1MONA/1人

<hr>
A,(B)
B,(A,C,G)
C,(B,D,H)
D,(C,E,J)
E,(F,K)
F,(E)
G,(B,H)
H,(G,C)
J,(D,K)
K,(E,J)
<hr>

5 :おのかちお六段錬士:2015/09/05 06:40:44 (8年前)  1MONA/1人

この様になっている。
たとえば、AがKに"abc"という文字列を送信したい場合、Aはまずルーティングテーブルを見て、KにつながっているEとJを見つける。
EとJが接続しているのはFKDK。重複を除き、E(FK),J(DK)。
DFKと接続しているのはJ(D(CEJ)),E(F(E)),EJ(K(EJ))。重複を除き、既出を除き、J(D(C)))。
Cと接続しているのはJ(D(C(BDH)))。重複を除き、既出を除き、J(D(C(BDH)))。
BDHと接続しているのはJ(D(C(B(ACG)))),J(D(C(D(CEJ)))),J(D(C(H(GC))))。重複を除き、既出を除き、J(D(C(B(A))))
逆引きし、自分が分かったので、反対方向でルート検索。
A-B-C-D-J-K
最短距離が分かるので、"abc"をBへ送信する。Bは同じようにしてCに送信する。

6 :おのかちお六段錬士:2015/09/05 06:41:12 (8年前)  1MONA/1人

<h3>ふりっぱなし(移動中や時間がかかっても良い奴)パケット到達</h3>
各端末が、自分と直接接続している端末すべてに、送りたいデータを送信する。
たとえば、AがKに"abc"という文字列を送信したい場合、Aは、Bに"abc"というデータを送信。BはGとCに"abc"と言うデータを送信。GがHに、CがEとHに。EがFとJに。FとJがKにと言うような順序でデータを送信する。
つまり、送信したいデータをネットワーク上に投げ込んで届くのを待つ。これなら、資源がほとんど無いPICなどでもネットワークが使える、しかし、おそい。

7 :おのかちお六段錬士:2015/09/05 06:53:41 (8年前)  1MONA/1人

<h2>パケット内容</h2>
先ほどは、"abc"という単純なデータを送信したが、そもそもこれでは到達するわけが無い。
パケットは、
(パケットインフォ,送信UNIX時刻,送信元のアドレス,宛先アドレス,データ内容,今までの5つのデータを差出人の暗号鍵で暗号化した署名)
という6つの情報からなっている。

<h3>パケットインフォ(詳細未定)</h3>
1バイトのデータ。パケットの情報を載せる。

<h2>タイムアウト</h2>
基本的に、送信UNIX時刻から10分以上たっているパケットがあったらそれを破棄し、送信元に伝える。

8 :おのかちお六段錬士:2015/09/05 06:58:23 (8年前)  1MONA/1人

また、自分の所に同じパケットが複数回流れてきたら、前回とは別の端末に送信する。


<h2>完全匿名化</h2>
この機能は、完全に身元が割れなくする接続方式。
この機能を使用するパケットは、フラグを使用して他と区別する。
まず送信元がルートを検索し、端末と暗号化通信をしながらパケットを送信する。
送信された端末は、送信されたパケットの中からデータ内容を読み取り、今度は、送信元自分、宛先そのまま、データそのままでルートを検索し再送信する。これを繰り返す。
このままでは内容は暗号化されていないので、実用時は公開鍵を事前に送信する。
また、パケットの署名を使うと身元が相手にバレてしまうので、通信に利用している鍵で暗号化する。

9 :おのかちお六段錬士:2015/09/05 06:59:17 (8年前)  1MONA/1人

<h2>ドメイン</h2>
このドメイン管理が今までに無かった(多分)仕組みだ。
ドメインを様々な端末が名乗ってしまうと混乱が起こる。
そこで、ビットコインの仕組みを利用する。これは、ブロック生成に対して、コインだけではなく希望のドメインを付与する。
ドメインと紐付けられるのは、ブロックを生成したアドレスのみ。これを変更することはできない。
一つのアドレスに紐付けられるアドレスは一つまで。
アルゴリズムは、cpuでしかマイニングできないものにする。
これによって、一人が大量にドメインを取得することがなくなる。
ネットワーク自体に暗号通貨の仕組みを付けることによって、寄付や送金がしやすくなる。

10 :おのかちお六段錬士:2015/09/05 07:00:08 (8年前)  1MONA/1人

<h3>サブドメイン</h3>
これを使用できるようにすると、全員が平等&金を稼げなくする、ということができなくなる。
よって、なしとする。

<h2>BAN</h2>
ネットワーク上で、全員が平等&ネットワークに対して金を稼ぐ(ドメイン取得、プロバイダー開設)に違反があった場合、それを発見した人は匿名で、報告ブロードキャストをすることができる。
これは宛先も差出人もなく、違反対象のアドレスが記載してある。
これが送信さると、送信された端末の所有者に報告をし、所有者が、報告があったサイトを確認し、承認or無視をして、ネットワーク上の過半数が 報告に承認すると、BANリストに登録する。
また、過半数を越えなくとも、報告に承認した端末は、報告されたアドレスが宛先or送り主のパケットを送信しない。

11 :♪うー(・×・)ちゃん♪五段:2015/09/05 07:00:16 (8年前)  0MONA/0人

- Winnyの技術 (金子 勇)
- WebRTC
- WebTorrent (https://github.com/feross/webtorrent)
- Distributed Hash Table (実装例: Chord)

あたりが参考になるかなと思ったぴょん。それと現状、 https://instant.io/ (WebTorrentプロジェクトの実験例)でP2Pファイル交換は可能ぴょん。これのピア発見をどうやっているのかは調査してないでぇす。

12 :おのかちお六段錬士:2015/09/05 07:02:06 (8年前)  1MONA/1人

<h2>過疎地域</h2>
人が集まっても、必ずしもすべての端末がつながるとは限らない。たとえば、日本人で構成された日本の大きいネットワークも、海外までは届かない。
そこで、既存のインターネットを補助として使えるようにする、「過疎wan通信」を搭載する。
この機能を有効にし、グローバルIPを人に教える。各端末には、各過疎wan通信を有効化した端末のアドレスを登録できるようにしておく。
ルーティングテーブルに、宛先アドレスが存在しない場合、この中のすべてにインターネットを使用してパケットを送信する。

13 :おのかちお六段錬士:2015/09/05 07:03:05 (8年前)  1MONA/1人

<h2>その他</h2>
最初に書いたとおりに、sslで接続する場合は、自分のアドレスを使って効率を高めても、匿名化している場合は一から作っても良い。
ほとんどインターネットの仕組みを真似した。
ここまで揃えれば、新しいプロトコルやメールサービスなどを作れるようになる。
これが実現すれば、本当の意味での"みんなで作るネットワーク"が作れるだろう。

もし、欠陥性や不明な点、追加したほうが良い所などがあったら、ご指摘を頼みます。

14 :おのかちお六段錬士:2015/09/05 07:03:55 (8年前)  0MONA/0人

>>11
ありがとうございます。調べてみます。

15 :おのかちお六段錬士:2015/09/05 07:06:06 (8年前)  0MONA/0人

だれか、>>11を除く>>1から>>13までにモナを送ってください。字を大きくするためです。
気持ち多めに返します。

16 :おのかちお六段錬士:2015/09/05 07:06:38 (8年前)  0MONA/0人

>>15
一レス1Monaでお願いします。

17 :名無し名誉名人教士:2015/09/05 08:11:00 (8年前)  0MONA/0人

>>15
字を大きくするだけならば、副垢作って送れば人に頼らないで出来ると思うが…

18 :おのかちお六段錬士:2015/09/05 08:15:32 (8年前)  0MONA/0人

>>17
それをするのはちょっと抵抗が...
というかタブー

19 :名無し百五十五段:2015/09/05 14:45:24 (8年前)  0.00114114MONA/1人

うーんこれはネットワーク層でいうところのどの階層における話なんだ?
アプリケーション層なら匿名性はtorあたりで良いと思う。
もしネットワーク層やリンク層の話なら、物理的な限界があると思う。一人が持てるリンクの数には限界があるし、町に例えると高速道のない下道だけで長距離移動するようなものでネットワークシステムとしてはあんましよくないんじゃないかな。
でも実はギリシャではもうすでにやってたりするんだよねローカルインターネットw
http://gigazine.net/news/20130829-greek-make-private-internet/

20 :おのかちお六段錬士:2015/09/05 20:56:41 (8年前)  0.00114114MONA/1人

>>19
リンク層を想定していますが、ゆくゆくは物理層までオリジナルになったらいいなぁとは思っています。
いちおう、一人が同時に接続できる端末は10までとします。
また、移動中などは、パケットをいくつかに分けていろいろな端末から送信したり、また過疎wan機能を使えば、使えるかと。また、有志たちに、アクセスポイントをつけてもらうのもいいですね。

21 :水城六段教士:2015/09/05 21:33:47 (8年前)  0.00114114MONA/1人

なんか、どっかで似たようなのやってなかった?
出資募ってたところがあったような。

ごめん、具体名が思い出せない。

22 :syuribox四段:2015/09/05 21:55:48 (8年前)  0.00114114MONA/1人

>端末は10まで
そういう紳士協定が有効ならいいんだが無理だろう。
もし俺なら超巨大なねつ造ルーティングテーブルを回りに伝えてネットワークをマヒさせると思う
もしBanされてもアドレス再生成すれば再度攻撃できる
Banリストも俺なら超大量に匿名でBan報告を行って事実上利用できないようにすると思う
また経路の途中で1つでも送信をさぼるやつがいたらそのデータは消えてなくなる
インターネットではBGPというのが使われてるけど、プロバイダより下とかをまとめることで経路を削減して、ルーティングテーブルの削減に努めてる。
それでも経路がいっぱいになって障害が起きたりしてるので一筋縄ではいかないと思う。
あとご存知かもしれないが巡回セールスマン問題ってのを見るといい。
そもそもP2Pネットワークではタイミングなどの問題で、信頼できないやつが混ざっていないとしても全体で同じデータを共有するのはかなり難しい。
BitCoinでは50%問題とかブロックチェーンの分岐というやつ。
今のP2Pネットワークは高品質なIPネットワークが基盤にあるから実現できてるっていう部分があるから
IP網を利用しない独立した巨大なP2Pネットワークは相当むずかしい。

23 :なげせん六段:2015/09/05 22:48:05 (8年前)  0.00114114MONA/1人

10年位前だけど中国人にインターネット閲覧の自由を・・・とかいう企画があったのを思い出した。

同じ頃「UDがん研究プロジェクト」ってのをやってて私もTeam2chで参加してた。その時にポイントみたいなのを付与できる仕組みがあったら良いよねという流れがあったけど、それがビットコインに繋がってたりするのかななんてw

24 :Cistus四段:2015/09/06 00:36:29 (8年前)  0.00114114MONA/1人

>>23
BOINCみたく計算が何かの役に立ってるとより嬉しいよね
前まではRipple貰えたんだけど終わってるな

25 :ちくわぶ六段錬士:2015/09/06 09:13:52 (8年前)  0MONA/0人

家に誰もいない時間帯だけやってたけど、そこそこの量のrippleもらえた。

26 :おのかちお六段錬士:2015/09/06 09:39:18 (8年前)  0.00114114MONA/1人

ぶっちゃけMonacoinに税金が課されたときに、日本政府から逃げながら活動を行うのが趣旨。torでも、プロバイダーが死んだら終わり。日本からインターネットがなくなっても使えるようにと。
ギリシャのシステム借りるのもいいね。

27 :おのかちお六段錬士:2015/09/06 09:43:46 (8年前)  0MONA/0人

>>22
ありがとうございます。色々考えてみます。みなさんも、話し合いながら新しいネットワークを作っていきましょう。

28 :名無し六段教士:2015/09/06 11:17:25 (8年前)  0MONA/0人

なんかすげえ

29 :裏技君七段錬士:2015/09/06 12:21:16 (8年前)  0.00114114MONA/1人

http://gigazine.net/news/20080326_jrc_wifi/
古い記事だけど、こういうの憧れる

http://homepage3.nifty.com/makiugf/2400-musen-lan/2400-musen-lan-hp.htm
ここの最後のほうにUSBwifiを超指向性wifiに改造(物理)する記事があるよー

30 :おのかちお六段錬士:2015/09/08 05:49:15 (8年前)  0.00114114MONA/1人


>>22
>>もし俺なら超巨大なねつ造ルーティングテーブルを回りに伝えてネットワークをマヒさせると思う
それは、ルーティングテーブルに自分との接続端末を追加する際、その端末の署名が無いと亜まわりが認めないって言うのはどうでしょうか・

>>もしBanされてもアドレス再生成すれば再度攻撃できる
>>Banリストも俺なら超大量に匿名でBan報告を行って事実上利用できないようにすると思う
他にも問題が浮上したので、BAN機能はなしにします。

>>また経路の途中で1つでも送信をさぼるやつがいたらそのデータは消えてなくなる
タイムアウト機能と、別ルート検索で対応できます。また、ふりっぱなし通信の場合は問題になりません。

31 :syuribox四段:2015/09/08 19:14:15 (8年前)  0.00114114MONA/1人

>>30
端末の署名は先に何かのリストとかに乗ってるの?
それならそのリストの管理が必要だけどSSLのベリサインのやつとか。それがあるならネットワークが無料・真の自由になると思えない。
既存の端末はみんなルート証明書を共有していて新しく仲間にするやつだけ追加時に審査とかでも、仲間になるときは良いやつのふりをして後で悪いことすれば意味がない。招待制SNSが善人だけでないのと同じ理由。
旧2chの忍法帖?みたいにツリー上に信頼関係を構築するのはありかもしれない。
端末の署名はその端末自身が発行するなら存在しない端末のID/署名をねつ造し放題ってこと。これはオレオレ証明書って言われてるやつ。

経路爆発にはどうやって対処する?
1つが2つに繋がってるとしてそれを32ホップ離れたところと通信するみたいな場合2x2x2x... 2^32とかの経路数にならない?計算できる?それもパケット(このネットワークではもっと大きいメッセージ単位かもしれないが)単位で。

考えるのは重要。でも歴史や先人に学ぶのも重要。まあいろいろ考えていいアイディアが浮かぶかもしれない。メールぐらいには使えるかもね。
Webみたいな即時応答が必須のものには使えるようになる気がしない。
スレ乱立は感心しないけどアクティブに活動するとろは認めたい。
あと俺も美少女の彼女ほしい

32 :裏技君七段錬士:2015/09/08 19:31:03 (8年前)  0.00114114MONA/1人

はっ…proof of routing…

33 :おのかちお六段錬士:2015/09/08 19:55:17 (8年前)  0.00114114MONA/1人

>>31
署名の方法は、アドレス(このネットワークでのIP)がビットコインの生成方法と同じなので、同じ方法で署名します。具体的には、アドレスの暗号鍵で暗号化した文字をアドレス(複合鍵)で復号化できたら、そのひとが送信したという証明になります。
経路は、>>32さんのを見て考えたのですけど、ルーティングすることに対してコインがもらえるというのは?自分がルーティングしたよって言う署名をパケットに付けたしていくというのはどうでしょうか。
ちなみに、実際のインターネットは数秒で情報が帰ってきますが、あのようにはできないのでしょうか。
色々前人の知恵を借りたいと思います。

美少女の彼女欲しい!!

34 :おのかちお六段錬士:2015/09/08 19:58:23 (8年前)  0MONA/0人

いくつもパケットにルーティング情報を付け足せることに対する対策はこれから考えますw

35 :名無し百五十五段:2015/09/08 20:13:27 (8年前)  0.00114114MONA/1人

>>33
送信したという証明ができる、というのは特定の端末のデータだという証明をするに過ぎないよね。
31が言ってるのは、悪意のあるパケットを送信してネットワークに負荷をかける人がいて、その人が無尽蔵に自分のアドレスを自分で作ってパケットをばらまきまくったらどうするのかと言ってるんじゃないかな。
あと、ルーティングって言うけれど、バケツリレーでABCDEってAからEにデータを送る時、Aの人はBCDを通じればEにデータが届くってどうやって知るんだい?BCDは嘘のルーティング情報をAに流しているかもしれない。
悪意のあるピアを潰すためにブラックリストを作ろうにも、アドレスはbitcoinと同じように無限に自作できる。
まだいろいろ問題はあるけどとりあえずこれだけ。

36 :裏技君七段錬士:2015/09/08 20:48:00 (8年前)  0.00114114MONA/1人

そうか、こっちの話をすべきだったか。

三分間ネットワーク:http://www5e.biglobe.ne.jp/%7eaji/3min/

三分間ビットコインの動画作ってた時に心の中でリスペクトしてたサイト

37 :裏技君七段錬士:2015/09/08 20:56:44 (8年前)  0.00114114MONA/1人

個人同士でメッシュネットを構築するときにルーティングに成功報酬を設けるのは良いことだと思うよ。要は自分が他人のルーティングに成功した時に他人からお金貰って、自分が他人にルーティングを依頼するときに成功報酬を建てる、ってやり方でしょ。自然に不良クラスタが消えていくかと。
あと、プロトコルを刷新するより、既存の技術で応用していく形の方が絶対楽だし確実。機材が流用出来るのがこの場合最大の利点。

とりあえずみんなでOpenGarden使おうぜ!!

38 :おのかちお六段錬士:2015/09/09 07:37:25 (8年前)  0.00114114MONA/1人

>>35
>>あと、ルーティングって言うけれど、バケツリレーでABCDEってAからEにデータを送る時、Aの人はBCDを通じればEにデータが届くってどうやって知るんだい?BCDは嘘のルーティング情報をAに流しているかもしれない。
考えたのですが、何か布を縫うときに使う「全返し縫い」、アレを使ったらどうでしょうか。
たとえば、ABCDEの様に繋がってたとして、BはCに、Aと繋がっている事を伝えます。
そうしたら、CはAにパケットを送り、あなたは本当にAと繋がっていますか?と尋ねます。
そこでAからデータが帰ってきたら、本当に接続しているということになります。これが「全返し接続テスト」です。
また、自分がルーティングする制限を設けたらどうでしょうか。
たとえば、CはBからのデータを10秒に一パケットしか送らない、など。
また、ふりっぱなし通信は、>>31さんの言う通り、問題があります。少し考えないといけないですね。

39 :おのかちお六段錬士:2015/09/09 07:40:04 (8年前)  0MONA/0人

>>38訂正

>>あなたは本当にAと繋がっていますか?

>>あなたは本当にBと繋がっていますか?

40 :名無し百五十五段:2015/09/09 10:44:12 (8年前)  0.00114114MONA/1人

>>38
でもAがDとつながってる保証はないよね。もしAがDとの接続テストをしてたとするなら、一人10リンクもってるとしてAは1000回も接続テストをしなくてはならない。それも1端末だけでだ。
あと、bitcoinと違って全員が全部のルートリストを持つのもおそらくできない。多分そのルートリストを配るだけで、ネットワークの性能をすべて使い切ってしまうと思う。ルートマップは固定じゃなく動的なんだから世界中で随時更新されつづけるしな。
やっぱOpenGardenでいいんじゃないかな・・・。

41 :syuribox四段:2015/09/10 01:07:35 (8年前)  0.00114114MONA/1人

>>35 での補足thanks
>>40
OpenGardenがopenな感じがしないところは?
オフィシャルサイトみたけどcontact usと簡単な説明だけで技術的なことについて見つけられなかった
onokatio氏は政府や企業にお金を払いたくないし主導権を握られたくないみたいなので。当初のRC4みたいに秘密主義だと困るんじゃないかな

42 :おのかちお六段錬士:2015/09/10 06:36:17 (8年前)  0MONA/0人

>>41
OpenGardenが丸かぶりしてんのは知ってたけど信用できぬw

43 :おのかちお六段錬士:2016/11/28 00:17:38 (7年前)  0MONA/0人

ちょうど一年以上立って、見なおしてみると相当ガバガバな設計してるなぁ…。

44 :おのかちお六段錬士:2016/11/28 00:21:22 (7年前)  0MONA/0人

とりあえず一年間考えなおしてみたこととして、まず話はネットワーク層の話ね。で、ホップ数は設定できるとして、あとはやっぱりルーティングの時間がネックだなぁ…。
nemのスーパーノードー見たく、公平で平等だがある程度制限のある特別ノードとかあるといいかもしれん。あまり動かないノードを親にして、小さいlanを作ってみるとか。

45 :おのかちお六段錬士:2016/11/28 00:21:40 (7年前)  0MONA/0人

MANETはこれから発展してく分野だからなぁ

46 :名無し三段錬士:2018/01/22 14:07:21 (6年前)  0MONA/0人

>>11 >>19 >>22 >>42 同感です。
>>1 の仰せの、過疎地域へのglobal IP付与 >>12 については、ICANN側の発想で書くと、ごめんなさい、発想が既に破綻しています。gTDLもccTDLもglobalなものを移動体に与えられないので、スマホなりユーザごとに、総務省から免許許認可を受けたキャリアやMVDO側がUUIDなりと結びつけて課金するシステムを作っていてベースメントがInternet2/WWWの応用なので
、そこから逸脱したネットワーク構築となると、NEM/XEMのSNなどサイドチェーン技術とも違う発想でないと普通にTorで良くねえ?ってなってしまうかとは思う。P2P技術を採用している時点で、どこかでWebにhookしているという性善説が前提なのでOpen Gardenは有用かとは思いますが、2011年に設立されて、2017年の昨年までの6年掛かってやっとSDK発表でもiOS側は無し(つまりA社はこの技術を認可しない)現状をみると、そうとう厳しい発明をしないと駄目だろうなとは思っています。
http://jp.techcrunch.com/2017/02/28/20170227open-garden-makes-its-mesh-networking-tech-available-to-third-party-developers/
>>1 >>45 MANETは既に議論がし尽くされていて、もし近しいものを考えるのであれば、現実的にはIEEE802.11aqの応用版、OpenDaylightなどで既にある程度普及してしまっているかとは思います。

お気に入り

新規登録してMONAをもらえた

本サイトはAsk Mona 3.0に移行しましたが、登録すると昔のAsk Monaで遊ぶことができます。

新規登録ログイン