Re:(hardingの文脈投稿)

要約:BitCoinに分散型エスクローを持たせれば、他のすべての交換手段に対する優位性が生まれ、普及率が高まるかもしれない。詳細は以下の通り。

分散型通貨に対して、中央集権型のエスクローが現在のBitCoinの標準となっているようだ。例を挙げる:

アリスはボブから$5分のBitCoinを買いたいが、アリスもボブもお互いを完全には信頼していないので、両者が信頼するサイト——例えばMt. Goxに行く。そこにそれぞれの資金を預け、Mt. Goxに交換を行ってもらう。

Mt. Goxに悪意はないが(好きなサイトだ)、そのエスクローサービスなしでやれないだろうか?

ほぼ分散型の代替案:

  • チャーリー(信頼できる第三者)がBitCoinの秘密鍵を生成する。
  • チャーリーはUNIXのsplitコマンドで秘密鍵を半分に分割し、半分をアリスに、半分をボブに渡す。
  • ボブは$5分のBitCoinを分割されたBitCoinアカウントに入金する。
  • アリスは公開ブロックを使って取引を確認する。
  • アリスはPayPalでボブに$5を送る。
  • ボブはPayPalの取引を確認する。
  • ボブは自分の半分の秘密鍵をアリスに送り、アリスが先に入金されたBitCoinにアクセスできるようにする。

(簡略化のため、取引手数料を誰が払うかや、チャージバック詐欺を避けるためにどのくらい待つべきかなどのPayPalの詳細は省略する。また、ボブが最後のステップを実行するインセンティブも省略する。)

UNIXのsplitコマンドの代わりにもっと洗練されたものを使えば、より高度なほぼ分散型の例が作れる。例えば:ssss[1]のようなシャミアの秘密分散法の実装だ。ssssのようなユーティリティを使えば、アリスとボブは意見が食い違った場合に仲裁人を指名できる。

もちろん、これらすべての問題は、チャーリーが作成する秘密鍵の完全なコピーを悪用しないとチャーリーを信頼しなければならないことだ。

理想的な解決策は、アリスとボブがそれぞれ独自に秘密鍵の半分を生成することだろう。現代の鍵ペアに使われる数学を完全には理解していないが、現在のアルゴリズムではこれは不可能だと思う。

鍵全体をどの当事者にも渡さずに、アリスとボブがそれぞれ秘密鍵の半分を取得する代替方法はあるだろうか?

-Dave

[1] 参照:http://en.wikipedia.org/wiki/Shamir’s_Secret_Sharing