このアイデアについて誰か何かしているのか気になっている。このスレッドとここで説明されている素晴らしい開発に従って、インターネットブラウザー機能の実装の可能性を調査しているところだ。まずこれを試して、Firefox アドオンが発展する中で他の機能と一緒に含めるのが、より簡単な最初の一歩かもしれない(学びながら進めている)。
これが実現する前に、URI がどのような形式を取るかについてコンセンサスが必要だ。URI スキームについて少し調査したが、W3C の承認なしのほとんどのアプローチは好ましくないとされている。W3C が暫定的な URI スキームを承認して保留にするカテゴリーがあるが、保証はない(仮特許のようなもの)。しかし、最も適切なスキームはマグネット URI のようだ。特定のアドレスではなく、コンテンツの一意性から生成されるハッシュによってリソースを見つけるよう設計されている。マグネットはピアツーピアネットワーク上のアプリケーションでの使用を意図しており、アプリケーション固有のデータへの参照用の予約パラメーターがある。基本的に、アプリケーション固有のパラメーターの前に x を付けるだけだ。例:xbitcoin1:?
新しいトップレベル URI スキームの実装を試みないのが良いかもしれない。普遍的に認識されていなければ、即興的な手法と見なされるからだ。マグネットシステムの採用はこれを回避するが、マグネット自体も非公式の未登録スキームだ。マグネットの利点は共有可能でオープンなことだ。
これは非常に良さそうに見えるかもしれない。bitcoin は結局 P2P アプリケーションであり、そのネットワークは似た原理で動作しているからだ。しかし、リンクをクリックする人が bitcoin ユーザーでない場合はどうか? 既存のネットワークに含まれない情報、例えば販売する商品、配送情報、その他の問題を組み込みたい場合はどうか。bitcoin はトランザクション自体のみを処理するという理解なので、ユーザーは他のすべての取り決め、契約、コミュニケーションを bitcoin とは独立に行う必要がある。ここで匿名性が損なわれる。従来の「階層的なハードワイヤード、または非匿名の技術」に頼る傾向があるからだ。これは bitcoin への批判ではまったくない。bitcoin は素晴らしいトランザクション方法だ。しかし、トランザクションはコインの片面にすぎない(このひどいダジャレを許してくれ)。😄
URI の調査過程で freenet と彼らが使うマグネットに似たシステムを思い出し、結局そこに戻ってチェックした。freenet が情報保存を意図したユーザー/アイデンティティ空間であるなら、各ユーザーに固有の人間可読なデータファイルのリポジトリとしても使えないだろうか。トランザクションの補足に使いたい任意の形式のデータを組み込める。これを URI からアプリケーション固有のリッチなデータベースに接続するために使えないだろうか。bitcoin ノードが実際のトランザクションを処理する間、freenet ノードが個別のデータの提示を処理する。
これにより、すべてが同じ種類の暗号 P2P インフラストラクチャの下に保たれ、アプリケーション固有のコンテキストの無限の多様性が可能になるはずだ。ユニークな URI ハッシュキーは、freenet+bitcoin のハッシュの組み合わせから生まれ、freenet キーで暗号化されたファイルは bitcoin キーで復号して見つけ、bitcoin ノードにはその逆でアドレスできるのではないか。正しいだろうか? もちろん、一方で実名を使えば、もう一方でも実名が明らかになるだろう。
いずれにしても、何らかの方法があるはずだ。繰り返すが、freenet も未登録の URI スキームを使っているが、マグネットの変形が採用されればそれは問題にならない。残る疑問は、bitcoin が正式に認められた通貨として非常に正当なものになることを望むなら、他のすべてのインターネットプロトコルへの厳格な準拠が望ましいかもしれないということだ。マグネット/freenet のような URI スキームの登録を妨げるものは特に見当たらなかった。すべてを検索してはいないが、既に存在するかもしれない。そうでなければ、なぜ登録しないのか?
URI スキームの分類(どの種類のマグネットなのか、正式/公式にするかどうか)とレイアウトの形式について合意する必要がある:
URI の構成要素
これは Mozilla が URI のパース時に考慮する規則に関するものだ。
典型的なマグネット URI はこのようになる:
magnet:?xt=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C
freenet URI はこのようなものだ:
http://127.0.0.1:8888/USK@oshw3DxmJUt7q4ThF4dCez5IXbc9hCGcv0VuwLRCmeQ,ckeXv20F1gBzkqssB4RXHZ2nB1YRT8Pb8KYZk8wj-bs,AQACAAE/occamsrazor/6/f.pdf
認識されるためには freenet プログラムをインストールする必要があり、これにはリソースを localhost のアイデンティティ空間のアイテムとして認識する Java 搭載のウェブサーバーが含まれる。つまり、ブラウザーからは freenet 全体が自分のマシン上にあるように見える。ユーザーがウェブサーバーを実行せずにこのアイデンティティ空間をアドレス可能にできるかは分からないが、サーバーはウェブページの提供と localhost をトップレベルドメインとして認識するためだけに必要だと思われる。「http:」は freenet URI 自体が特別なものではないことを示しているが、IP アドレス(localhost)は確かに特別だ。プログラムがウェブサーバーを組み込まずに freenet ユーザー空間にアクセスでき、ユニバーサルリンクはマグネット URI として作成できるのではないかと思う。bitcoin がインストールされていない人に対して、そのリンクの訪問者を bitcoin の SourceForge ダウンロードにリダイレクトするデフォルトのフォールバックを URI に持たせる方法は分からない。コード内で実装し、bitcoin の存在を記録するために cookie や環境変数を設定する必要があるかもしれない。
この調査中に訪れた他の関連サイト:
http://infomesh.net/2001/09/urischemeshttp://www.search.com/reference/Magnet:_URI_schemehttp://magnet-uri.sourceforge.net/http://magnet-uri.sourceforge.net/magnet-draft-overview.txthttp://www.w3.org/Addressing/schemeshttp://www.w3.org/Addressing/schemes#Registration
アイデア/コメント/フィードバックは歓迎する。😉 Steve