Re: Bitcoin 用 URI スキーム

人物: DataWraith

Karmicads、詳細な返信をありがとう。

Karmicadsの投稿(2010年5月1日 17:15 UTC)

ちょうど偶然にも、freenetに保存されたデータファイルと正確にやり取りするための既存のプロトコルがあるようだ

ああ、Freenet の利用について言っていたのはそういう意味だったのか。ユーザーが Freenet を実行し、Bitcoin が Freenet の制御プロトコルを使って通信する。しかし、Freenet の実行にはかなりのコンピューターリソース、特に帯域幅が必要であり、個人的にはそれだけの理由で Freenet ノードを動かしたくない。だからこれをオプションにしたかった。

既存の仕組みを再発明したくないという印象を受けた。そしてだからこそ普及度が重要で――他のソフトウェアでの magnet リンクの既存の受容がプラスだった。

すまないが、敬意を込めつつ、同意しかねる。最初の問題は、ハードドライブ上のファイルがネストされた場所の階層的な名前空間、つまりドメインとディレクトリにマッピングされていることだ。多くの P2P ネットワークのアプローチの根本的な違いは、名前空間が階層的でなく、サポートするデータがアドレスではなくコンテンツの一意性によって参照されることだ。ターゲットがファイルであろうと何であろうと、特定の固定アドレスではなく、固有のコンテンツのアイデンティティによって参照される。同一のファイルは本質的に同じアイデンティティであり、P2P アプリケーションは同一アイテムへの複数のフィードとして複数のインスタンスを使用できる。magnet のパラメーターはあらゆる P2P アプリケーションに適している。 了解、ここで自分の言いたいことを完全に明確にしていなかったようだ。magnet リンクがコンテンツを参照する仕組みは理解している。

おそらくメンタルモデルの違いだろう:自分にとって、Bitcoin のトランザクションは、適切な言葉がないが、ものというよりはプロセスだ。自分の認識では、magnet リンクはもの(通常はファイル――コンテンツハッシュまたは場所による)を参照するものであり、プロセスを参照するために使おうとするのは少し不自然に感じる。magnet リンクは取得しに行く必要があるものを特定するが、Bitcoin のトランザクションはリンク自体で完全に記述される(リンクをクリックした後に「はい、コインを送ります」と言う必要はあるが)。

自分には、magnet リンクを本来の目的ではないものに(悪)用することのように思える。magnet リンクは ed2k://や freenet://などの代替として、ファイルの取得方法を記述するために生まれたものだからだ。

Bitcoin リンクは、magnet:よりも mailto:に近いものであるべきだと思う。

そうだ、すまない。

確か、ウェブサーバーは Freenet 自体にかなり統合されている。よりシンプルな FCP プロトコルを使って Freenet インスタンスと通信することもできるが、Freenet 上のコンテンツの性質上、公開アクセス可能なインスタンスをホストする人は多くないので、自分で運用する必要がある。それを望む気持ちは否定しないが、自分はやりたくない。むしろ TOR の隠しサービスをホストしたい――だから details パラメーターに Freenet 固有ではなく汎用的なフル URL を使うことを提案した。

アドレスという意味がよく分からないが、Bitcoin の署名で提供される「アドレス」以外を指しているのか。すでにエイリアスが定義されていない限り、異なる人に異なるアドレスを渡す方法が分からない。つまり、Bitcoin ノードのエイリアスをエンコードして変換する命名システムを追加することを提案しているのか?それはそれほど手間なくできるだろう。 まあ、Bitcoin の Signature のことだ。Bitcoin クライアントにそう表示されているから「アドレス」と呼んだ(「アドレスを変更」と表示される)。交換サイトが現在行っているように、異なるエイリアスを使うべきだと確かに考えていた:コインを送るアドレス(または署名、あるいは何でも)を受け取り、そのアドレスはあなたにだけ渡されたものなので、受取人は支払いがあなたからだと分かる。

エイリアスを変換するシステムはもちろん良いが、それはアドレス帳や mybitcoin.com などで処理する方がよいと思う。

そう、まさにその通りだ!送信側のテキストは通常のルートでよい。だが、送信されるテキストを事前に指定したい場合はどうか?

これには mailto:リンクのアナロジーがある:誰かにメールを送ってほしい場合、使うべき subject も指定できる:mailto:alice@example.org?subject=Test。だから、例えば eBay で何かを売っている場合、「eBay オークション#12345 の支払い」というメッセージを含む Bitcoin リンクを買い手に渡せば、本人が入力する必要がなくなり、コードが#12345 より暗号的な場合にミスを防げる。

すまない、URI、URL などの用語をアドレスバーに入力するからつい混同して使いがちだ。混乱させたなら申し訳ない。

ここで自分が望んでいたのは、この追加情報を汎用的にすることだ。いくつかの例で明確になるかもしれない:

  • https://www.myonlineshop.com/purchaseDetails/123456
  • http://pastie.org/942292
  • freenet://[Freenet 上のリソース]/
  • http://kpvz7ki2v5agwt35.onion/wiki/index.php/PurchaseDetailsHere
  • magnet:?xt=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C

リンクの作成者が追加情報の置き場所を選び、受取人が Freenet/Tor/I2P をインストールするほど補足情報が必要かどうかを判断する。これがリンク自体に短いメッセージを含める理由の一つだ:追加情報はトランザクションに不可欠であるべきではない。

だが、それだと Freenet の使用が必須にならないか?もっと柔軟であってほしい。

また、オンラインショップを運営する場合、Freenet をインストールさせるよりも、自分のウェブサイトで詳細を確認してもらう方がよい。Freenet の評判を考えると、ショップの評判が Freenet と結びつくのは望ましくないかもしれない。

そう。これが HTTP(S)の URL も許可すべきもう一つの理由だ。理解が正しければ、トランザクションに Freenet の使用を必須にしたいようだが、それには強く反対する。

すべてのトランザクションに完璧な匿名性が必要なわけではない。寄付を受けるオープンソースプロジェクトやオンラインショップを考えてみてほしい。(a)短いメッセージパラメーターで提供できる以上の詳細が必要で、(b)完全に匿名でありたいなら、Freenet や Tor や I2P の URL(または URN?――ややこしい :-/ )を指定すればよい。追加の匿名性が不要なら、Freenet/Tor/I2P/その他を運用する手間をかける必要はない。

まあ、みんな同じ目標に向かっている。可能な限り最良のシステムに到達できることを願う。:-)

丁寧な説明と、自分の提案への忍耐に感謝する。