CashShuffle – BitcoinCashトランザクションの匿名性を高めるサービス

2018.10.04

BCHNews編集部

こんにちは、BCHN編集部です。

先日、BitcoinCash(BCH)向けウォレットであるElectron CashのCashShuffle Pluginがリリースされました。

このCashShuffleは、タイトル通りBitcoinCashトランザクションの匿名性を高めることができるのですが、どのような仕組みでトランザクションの匿名性を高めているのかを紹介していきたいと思います。

コインミキシングの問題点

暗号通貨の匿名性を高める技術として、”ミキシング”という技術がすでに一般的に使用されています。

暗号通貨は、ユーザーはアドレスを使用することによって匿名性を持ちますが、その性質からトランザクションはブロックチェーンで公開されており、アドレスとトランザクションを紐づけていくことで、そのアドレスの資産がどこから来てどこへ行ったのか追跡することができます。
そして、ユーザーの情報とアドレスが結びついた時、全ての匿名性が喪失してしまいます。

そこで、ミキシングが行われます。
ミキシングは大まかには、管理サービスまたはユーザー同士がコインを一度集め再配分する、という流れを取ります。

ミキシングの問題点として、以下が挙げられます。

  • ミキシングを行う機関が信頼できる必要がある
  • 取引手数料が発生する

まず、ミキシングは外部からの追跡に対しては匿名性を付与することができますが、例えば不正な運営者が居て内部的に追跡できる場合にはなんの意味もありません。
また、ミキシングを行うには一度コインを集めて取引を行う必要があり、取引手数料の支払いが必要となります。

CashShuffleは、これらの問題点を解決するために提案されたCoinShuffleプロトコルをベースにしています。

CoinShuffleとは

CoinShuffleは、鍵の交換・シャッフル・トランザクション作成の3ステップからなるプロトコルです。
以下は、CoinShuffleの簡単な例です。

[前提]
お互いにアドレスを知っており、プロトコルを実行したい4人{A・B・C・D}がいるとする。
新しいアドレス{A’・B’・C’・D’}をそれぞれ作成しており、お互いにそれは非公開である。

1.鍵の交換
Aさんを除くユーザーは、公開鍵暗号方式で公開鍵と秘密鍵のペアを作成する。
この時、公開暗号鍵(ekB、ekC、ekDと表記)をそれぞれ公開する。

2.シャッフル
Aさんは自身の新しいアドレスA’をDさんの暗号鍵で暗号化したenc(ekD,A’)を、Cさんの鍵で暗号化しそれをBさんの鍵で暗号化し…と繰り返す。
最終的には[enc(ekB,enc(ekC,enc(ekD,A’)))]となる。
これはメッセージとしてBさんに送信される。

Bさんはメッセージを受け取り、復号してenc(ekC, enc(ekD,A’))を得る。
同時に自身の新しいアドレスB’に関してAさんと同様に多重の暗号化を行う。enc(ekC,enc(ekD,B’))
Bさんは、この2つを混ぜてからCさんにメッセージとして送信する。
[enc(ekC,enc(ekD,B’)),enc(ekC,enc(ekD,A’))]

同様にCさんは復号、自分のアドレスC’の暗号化、シャッフルを行い、Dさんに送信する。
[enc(ekD,B’); enc(ekD,C’); enc(ekD,A’)]

3.トランザクションの作成
Dさんは最終的に全てのアドレス[D’,B’,C’,A’]を取得し、アドレスのリストが公開する。
公開されたリストに自分のアドレスを確認することができた場合、トランザクションに署名を行うことで取引の匿名化が行われる。
誰か一人でもアドレスが確認できなかった場合は、全員から署名が行われないため、トランザクションが行われず、誰が不正を行っているのかの特定作業に入る。


引用元:http://crypsys.mmci.uni-saarland.de/projects/CoinShuffle/

CoinShuffleの要点としては、全てのメッセージが暗号化されておりそれぞれの関係性がわからず、シャッフルを行なった人物(例えばCさん)のみが、B’を含むメッセージを最初に受け取ったことを知っているが、シャッフルが行われるためにこれが誰のアドレスであるかまでわからない、ということです。

CashShuffleは、このCoinShuffleの仕組みを元にシャッフルの参加者を選択する枠組みを追加した、BCH上に構成されるプロトコル・実装のことを指します。

CashShuffle Electron Cash Plugin

今回リリースされたプライグインは、このシャッフルがBitcoinCashウォレットであるElectron Cashから簡単に行うことができるようになるものです。
プラグインのファイルはこちらからダウンロードすることができ、Electron Cashのv3.3.1以降のバージョンでインストールすることで使用可能になります。

CashShuffle Electron Cash PluginではCashShuffleを、ElectronのGUIから利用することができます。
シャッフルは、CashShuffleが稼働するサーバー上で行われ、ユーザーが任意のサーバーを選ぶことができます。
シャッフル費用は固定性になっており、インプットが費用を超えるとシャッフル待ちの状態になります。
サーバーにシャッフルしたい人が5人以上集まるとシャッフルを行うことができます。

また、Electron Cash Pluginではシャッフルをbotで行うことができるようになります。
詳しい説明は、こちらを参考にしてください。
暗号通貨は、匿名化を定期的に行うことが推奨されているため、このbotを導入することで長期間のシャッフルし忘れなどを防ぐことができます。

注意していただきたいのは、今回リリースされたv0.5.0は、まだプレリリース版だということです。
したがって、次回以降のバージョンがフルリリースとなるため、今後の動向に期待しましょう。

最新情報はこちら

BCHNewsでは公式のTwitterアカウント(@bchnews_jp)を開設しました。
更新情報を配信しておりますので、よろしければフォローしていただけると嬉しいです。

BCHNews編集部

BCHNews編集部です。
日々更新される暗号通貨関連のニュースを読者の皆様にお届けします。

関連記事

BitcoinCash向けウォレットのMoney Buttonがローンチされる

2018.09.17

by BCHNews編集部

Bitcoin CashにおけるRabin Signatures

2018.09.25

by BCHNews編集部

Bitcoin Files Protocol(BFP) – BitcoinCashを利用したファイルストレージシステム

2018.10.17

by BCHNews編集部

BitcoinCashトランザクションの完全なデータベース、BitDB 2.0がリリースされる

2018.09.28

by BCHNews編集部