2018.03.21 (Wed) technology

ビットコインの匿名性とChaumian CoinJoin【後編】

Written by BTCN編集部

Chaumian CoinJoin

Chaumian ecash

「Chaumian」(チャウミアン)という名称は、1983年にDavid Chaum(デビット・チャウム)がブラインド署名を利用した匿名電子通貨のスキームを提唱した1ことに由来する。これは電子通貨に対し、以下の二つを同時に達成することを目的としたプロトコルであった。

  1. 発行元の署名をつけることで偽造を不可能にする
  2. シリアルナンバーと持ち主を結び付けられないようにすることで匿名性を高める

ChaumはDigiCashという会社でこのアイディアを事業化したが、大きく成功はしなかった2。現在Chaumは特許を放棄している3

ブラインド署名とは、データを暗号化しその上から署名した場合、のちに復号して内容が明らかになっても署名が有効なままとなるような署名方式である。
つまり、署名者が内容を知らないまま署名できるというスキームで、電子通貨以外にも電子投票などの匿名性が重要な領域において応用が見込まれている分野である。

このChaumのブラインド署名をCoinJoinに使用するというスキームは、gmaxwellによって初めてCoinJoinが定式化された時4から提案されていたものであるが、実用に近いところまでいったのはHiddenWalletがおそらく初めてである。

Chaumian CoinJoinの概要

登場人物は以下の3種類である

  1. Alice … 匿名送金を希望する人、複数存在する
  2. タンブラー
  3. Bob … 送金の受け取りを希望する人、こちらも複数存在

AliceとBobは同一人物であっても良い。その場合、ネットワーク上のアイデンティティを結び付けられないようにするため、Torなどを介してアクセスすることが望ましい。

実際の手順は以下のようになる
まず、Aliceが以下の情報をタンブラーに渡す。

  1. 自分が支払う元となるコイン
  2. そのコインの支払い能力を持つことの証明(対応する公開鍵と、何らかのメッセージに秘密鍵で署名したもの)
  3. 希望する支払先のアドレス
  4. お釣りのアドレス

ただし3は暗号化(ブラインド)されており、タンブラーには見ることができない。
タンブラーはこれらのデータが(有効なトランザクションを作成することができるものであると確認した上で)3にブラインド署名を施して返す。

つまり、この時点でAliceは「支払い能力」と、「タンブラーには見えない何らかのアドレスへの送金の意思」を提示する。
この際に最低限必要な人数をいかにして決めるかという部分には考慮の余地がある。

次に、AliceがBobに任意の方法で署名済みのアドレスを渡す。この際にアドレスはアンブラインドするので、署名がついた有効なアドレスとなっている。

そして、Bobがタンブラーに署名入りのアドレスを渡す。十分なアドレスが集まったらタンブラーはそれらのアドレスに対して支払うCoinJoinトランザクションを作成する。

ここに署名がなかった場合、第三者が送金をかすめ取ろうとしている可能性がある。ブラインド署名によって、(タンブラーが送金元と送金先を結びつけることがないままに、)その危険性を排除することができる。

そのCoinJoinトランザクションにAliceたちが署名し、全員が署名し有効なトランザクションになった時点でブロードキャストする。

他の方式と異なる点の一つに、タンブラーになるインセンティブが存在しないことがある。TumbleBitの場合は手数料の一部を、JoinMarketの場合はマーケットメイカーになることで利潤を出すことができたが、Chaumian CoinJoinではそうではない。これは、非営利として運用する方が以下の2点において望ましいと考えられるためである。

  1. タンブラーが乱立せず、ユーザーが一箇所に集まることで流動性を担保しやすい
  2. ValueShuffleのようなネットワークレベルでの協調プロトコルへと統合しやすい

所感

この方式の素晴らしいところは、TumbleBitなどの既存のやり方に比べて単純であるというところによるものが大きい。したがって以下のような問題点について、事前に予想と対策がしやすい。

  1. DoS耐性
    1. Aliceが非協力的であった場合、(彼女は特定のUTXOの支払い能力を見せているので)そのUTXOごとBanすることでDoS攻撃を継続できなくなる
    2. Bobが非協力的であった場合、Aliceが再度自分のアドレスに支払うように依頼すれば引き続きCoinJoinトランザクションの作成と署名を進めることができる
  2. パフォーマンス
    1. トランザクションをブロックチェーンに含める必要があるのは、最後のCoinJoinトランザクションだけなので手数料という点で有利である
    2. ユーザーからみて、タンブラーに対して支払う余分な手数料が存在しないので、その分安く済む。
  3. リバースエンジニアリングへの耐性
    1. 例えば、特定のwalletのみが一定の癖をもつトランザクション(RBF5など)を発行するような場合、匿名性が損なわれる可能性がある。このような要因をあらかじめ想定しておくことで、参加を推奨するwalletの要件を厳密に定義することが可能である

総括

ビットコインの匿名性に関する議論は、暗号学と経済学(マーケットデザイン)が交差するという点で探求の余地が大きい領域であり、これからも様々な改善案が出てくることは想像に難くない。

シュノア署名による署名の集約6が可能になれば、匿名性の向上に加えてブロックスペースの節約(= feeの削減)にも繋がるため、ビットコインのメインチェーンにおけるCoinJoinの派生手法の存在感は増していくものと思われる。

仮にそのような追加の利点がなかったとしても、ビットコインの匿名性が増すことは避けられない潮流であり7、仕組みを理解した上で正しく運用していくことが利用者にとって重要であると言えよう。


  1. http://www.hit.bme.hu/~buttyan/courses/BMEVIHIM219/2009/Chaum.BlindSigForPayment.1982.PDF 
  2. おそらく、通貨を発行・管理する側から見ると匿名性を高めるインセンティブが弱く、中央集権型であることによって規制を避けられなかったためと思われる。 
  3. https://www.forbes.com/forbes/1999/1101/6411390a.html#7baf80cb715f 
  4. https://bitcointalk.org/index.php?topic=279249.0 
  5. https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki 
  6. https://eprint.iacr.org/2018/068.pdf 
  7. 仮にビットコインの開発コミュニティが匿名性を増さない決断をした場合、匿名性にフォーカスしたアルトコインや、ビットコインからハードフォークした匿名コインの価値が高まるので、匿名性は強まって行かざるをえないとも言える 

無料メールマガジン

BTCNの最新ニュースを毎日お昼ごろお届けします!