ビットコインとプライバシー
プライベートで書いていた記事を公開します。本当のメインコンテンツはBitcoin WikiのPrivacy記事の全訳なのですが、長すぎて投稿できなかったのでリンクだけ貼っておきます。
https://github.com/748375248538/spotlight/blob/master/privacy-ja.mediawiki
構成
- トレーダーはプライバシーについて学ぶ必要はあるのか?
- プライバシーの基礎知識
- オンチェーン上のプライバシー
- ウォレットの特徴分析
- ビットコインは本当に透明性が高いのか
- オフチェーン上のプライバシー
- オンチェーン上のプライバシー
- 取引所の先回り売買
- 機関投資家によるUTXOの監視と分析
- Unchained Capital
- サービス運営者の情報優位性
- electrum
- 取引所の利用
- カストディリスク以外のリスク
- プライバシーの基礎知識
- WasabiWalletを使ってみる
- WasabiWalletの概要
- プライバシーの重要性
- WasabiWalletの主な使い方
- Tips
- WasabiWalletの仕組み
- 問題点
- バグの多さ
- 翻訳
- オプションの少なさ
- .NETフレームワーク自体の信頼性
- 中央集権性
- バグの多さ
- WasabiWalletの概要
- (付録) Bitcoin WikiのPrivacyのページ全訳
トレーダーはプライバシーについて学ぶ必要はあるのか?
ビットコインのプライバシーは開発者の間で広く議論されているトピックです。
マニアックなプライバシーの内容や、国家やエリート犯罪集団から完全に身を守る方法についてはこの記事では触れません。
一般的なトレーダーの目線で利益を失わないようにするためにプライバシーを気にした方がいい理由と、その実践方法について解説します。
プライバシーの基礎知識
ビットコインの取引履歴はトランザクションと呼ばれる単位から成り、トランザクションを一定時間ごとに区切って管理する単位をブロックと言います。
トランザクションとブロックの内容は全てのビットコインのユーザーに公開されています。この記録は半永久的に残るため、取引履歴を追うことでビットコインがどのようなルートを辿っているのか推測することができます。
この事実から「ビットコインにはプライバシーがない」と否定的に捉えられることもあれば「透明性がある」と肯定的に捉えられることもあります。
このように、公開台帳の上で半永久的に公開される履歴に関して、できるだけ個人情報を入れないようにするプライバシーをオンチェーン上のプライバシーと呼ぶことにします。
一方で、ビットコインを利用する上で気にすべきプライバシーはオンチェーン上でのプライバシーに限りません。オンチェーン上でどれだけ気を使っても、現実世界で自分のトランザクションについてむやみに話せばプライバシーは無くなります。オンチェーン上のプライバシー以外の、公開台帳上に記録されない個人情報を守るプライバシーを、オフチェーン上のプライバシーと呼ぶことにします。
オンチェーン上のプライバシー
ブロックチェーン上の特徴分析
プライバシーに気を使わずにビットコインを利用している場合、トランザクションの利用パターンを分析することで、トランザクションとUTXO(利用可能なコイン)を関連付けて、同一のウォレットに属することを推定できる場合があります。
すなわち、あるトランザクションが個人に属するのか、取引所に属するのか、個人は長期投資家か、短期投資家か、コインを(最低)どのくらい持っているのか、などといった情報を分析することができます。
プライバシー自体を目的にする場合、これだけでも許せないことですが、どのような属性のウォレットが資金を動かしているのかを明るみに出すことはトレードの上でも大変不利に働きます。
ビットコインは本当に透明性が高いのか
意識せずに使う場合、ビットコインの透明性は高いと言えます。しかし、盗難事件でビットコインが戻ってくる例が少ないことからも、意図的に隠そうとする場合はプライバシーはある程度守られると言えるでしょう。
参考: https://jp.cointelegraph.com/news/there-is-only-a-20-chance-to-recover-stolen-cryptos
オフチェーン上のプライバシー
インターネット上の情報は誰でも見ることができるため、投資家のセンチメントを収集して分析する手法があります。インターネット上で情報を書き込む時、自分から見える特定の範囲の人にしかそのデータが届かないように錯覚しがちですが、実際には機械的に情報を収集・分析している人が多く存在するため、敵対するトレーダーに情報を与えることにつながります。
トレードで利益を少しでも得たいのであれば、情報格差を自分から作るのは不利になるので、よく考えて発言をした方がいいでしょう。
ビットコインを利用できるネット上のサービスでは、顧客がどのような特徴を持つウォレットを使っているのかなどを調べるインセンティブがあります。また、IPアドレスなどの接続情報もサービス提供者に利用されることがあります。サービス運営者が直接敵対的なトレーダーである可能性もありますし、顧客情報のメタデータを外部のトレーダー向けの情報収集企業に販売する可能性も考えられます。これらの情報は自分でコントロールできるようにしておいた方が良いでしょう。
取引所の先回り売買
Bitcoin Wikiからの引用です。
- あなたはトレーダーでありビットコイン取引所に口座を持っている。
- あなたはビットコインを預けて売却したい。
- あなたはビットコインをかつて同じ取引所で使った入金アドレスに送った。
- アドレス再利用によって、ブロックチェーン上で取引所にビットコインが送金されたことが公開されてしまった。
- 取引所は口座にビットコインを反映するのに3承認を要求しているが、その間に価格はあなたの投資行動に不利な方に動いてしまった。他のトレーダーがあなたの入金トランザクションに気づいたからである。
- あなたはビットコインを不利な価格で売却することになってしまった。
- これは取引所のウェブサイトの入出金画面で「新しいアドレスを生成」のボタンを押して新しいアドレスを使うことで回避できる。
- 教訓: アドレス再利用はプライバシーを毀損する。
これは、先回りする側の立場から考えると、上記の「ブロックチェーン上の特徴分析」と組み合わせることでさらに効果を発揮します。
例えば「バブルの絶頂で少しだけ買ったコインを損切りのために取引所に送った」などといった情報は、気をつけていなければ簡単に分かってしまうものです。
このような情報を他のトレーダーに教えることが不利になることは言うまでもありません。
単純にアドレス再利用をやめるだけでも効果はありますが、加えて自分がどのような属性のウォレットを持っているのかも可能であれば隠した方が良いでしょう。Wasabi Walletなどを使うと一定の効果があるでしょう。
この例は大口投資家が多いような相場で板が厚く、自分が比較的少量売買するのであれば影響は少ないはずですが
- ビットコインであっても取引高は時期・時間帯によって激減することがある
- 取引高の少ないアルトコインではさらにこの傾向が強い
ので、紹介しておきます。
機関投資家によるUTXOの監視と分析
上記のようなオンチェーン上での分析を行っている大規模な投資家が存在するというのは可能性の話ではありません。
Unchained Capital
Unchained Capitalという会社は実際に、オンチェーン上での分析を行っているようです。
https://blog.unchained-capital.com/bitcoin-data-science-pt-1-hodl-waves-7f3501d53f63
このブログではどのタイミングで買った人がどのタイミングで売ったのかを調べています。Unchained Capitalはローンの運用会社なので市場予測に対しては真剣に取り組んでいるものと思われます。プライバシーに注意せず現物トレードをすると、このような機関投資家に対して不利な条件で戦うことになります。
ちなみにUTXOベースでの市場予測は http://charts.woobull.com/ に多くの資料があります(英語)。
サービス運営者の情報優位性
ブロックチェーン上に直接残らないデータを取得する方法として、ビットコイン関連サービスの運営を通じて、接続してくるクライアントの振る舞いを観察するという手法があります。
結果として、サービス運営者は表に出てこない様々なプライバシー関連情報を直接入手することができます。同時に、自分のプライバシーを守る重要性も理解しやすくなると思われます。
例として軽量ウォレットであるElectrumのサーバーを運営し、投資家の情報を取得するケースを見てみます。
Electrum
Electrumは軽量ウォレットとしては有名ですが、そのプライバシーはあまり高くありません。接続先のサーバーはどこの誰が運営しているのか不明であり、その信頼できない個人に多くのプライバシー情報を渡すことになります。
サーバーを運営して取得できる情報としては
- IPアドレス
- 接続ウォレットの使用済みアドレス
- 接続ウォレットが送信した新しいトランザクション
などがあります。IPアドレスは改造していないサーバーでも簡単に取得できるものですが、残り2つはサーバーに倫理的に問題がある改造を施す必要があるので、ここでは実行しようと思えば可能であるという言及にとどめます。
なお、IPアドレスだけでも多くの情報を取得できるものです。例えば、Electrumを利用しているのは現物取引を好む個人投資家が多いと思われますが、そのような個人投資家はどこの国に多いのか、どういった機関が接続しているのかなどです。
IPアドレスであっても個人を特定できる情報になる可能性があり、これを公表することで何らかの法的リスクが発生しうるので、統計的な形でしか言及できませんが、以下のような情報を得ることができます。
- 接続元の国で一番多いのはアメリカ合衆国で、全体の1-2割を占めています。アメリカにデータセンターが集中していることによりVPNユーザーやTorのノードなどもカウントされています。
- 2位以下の順位は浮動的ですが、上位にはイギリス、ドイツ、ロシア、オランダなどの先進国に続いてベトナム、ナイジェリア、ガーナなどの新興国も含まれます。
- 日本はスペイン、イタリアなどと共に、あまり利用者が多いとは言えない中位のグループです。
- アメリカやカナダでは大学キャンパスのIPアドレスからの接続がしばしば見られ、若年層への普及が見られます。
- 欧米先進国の接続が全体としては多いものの、利用者が一国に過剰に集中しているということはなく、かなり多様な国・地域からの接続があることが分かっています。ある時点で同時に接続している国の数は100カ国にも及ぶことがありました。
このように、グローバルなサービスを直接運営することでトレーダーにとっても有利な情報を得ることができるので、何らかのサービスを自分で運営してみるといいかもしれません。
なお、Electrumのサーバーは現在DDoS攻撃を受けているため取得できるIPアドレスは攻撃者によるものが含まれ、正確な統計が取れないかもしれません。上記の統計情報については攻撃が始まる前に2018年後半に得られたものです。
逆に以上のようなプライバシー情報を敵対するトレーダーに渡したくない場合、様々なサービスの接続にもTorやVPNなどを利用することをおすすめします。
取引所の利用
トレーダーはしばしば利ざやを求めて海外の取引所を利用しますが、プライバシーに関しても注意すべき点が多いです。カストディリスク(出金できなくなったり、最初から運営が詐欺の場合)以外にも、プライバシーに関して重大なリスクがあるということも知っておいた方が良いでしょう。
カストディリスク以外のリスク
多くの海外取引所では日本の取引所の本人確認同様、KYCと称して顧客のプライバシー情報を得ようとします。この顧客の情報が本当に本人確認に使われているのかはそもそも疑問が残ります。
実際には個人情報を収集すること自体が目的のケースもあると考えた方が良いでしょう。
魅力的な価格が付いている取引所を見つけても、悪用もされうるプライバシー情報を本当に渡していいのかよく考えた方がいいでしょう。
また、取引所の中には顧客と利益が相反するような売買を行うものもあります。運営側が顧客の取引情報を全て見ることができる以上、それを自己の利益のために利用することは十分考えられることです。これは敵対的なトレーダーに情報を渡しているのと同様であり、自分自身のトレードには不利に働くでしょう。
WasabiWalletを使ってみる
このセクションではビットコインのプライバシーの極北とも言える非カストディ型のコインジョインツールであるWasabiWallet(https://wasabiwallet.io/)について解説します。
技術的な詳細についてはBTCNの記事がよくまとまっているので、それを補う形で実際の運用や分かりやすい解説、問題点の提起を心がけます。
ビットコインの匿名性とChaumian CoinJoin【前編】 https://btcnews.jp/122cm4gq15316/
ビットコインの匿名性とChaumian CoinJoin【後編】 https://btcnews.jp/17j06x6c15500/
WasabiWalletの概要
WasabiWalletはチャウミアンコインジョインという仕組みを使ってコインジョイン(不特定多数のインプットから不特定多数のアウトプットを作り誰の資金がどのアドレスに属するのかを撹乱する匿名化手法)を安全に実行できるようにしたビットコインのウォレットです。中央サーバーと通信しますが、通信経路は全てTorによって秘匿されており、中央サーバー自体もどのインプットがどのアウトプットに対応するのかの情報を得ることができず、他の類似プロトコルとは違い第三者を信頼せずに匿名化を可能にしています。また、コインをデフォルトで自分で選択するようになっていたり、トランザクションをTor経由でネットワークに放流するなど、コインジョイン以外の部分でも普段からプライバシーに配慮したウォレットとして利用できるように設計されています。
プライバシーの重要性
WasabiWalletはビットコインの匿名化技術です。ビットコインの匿名化は、市民の資金の流れを監視して管理したい人々からはマネーロンダリングのための装置であると言われることもある一方、プライバシーのための不可欠な技術です。
プライバシーの重要性については各所で言われている通りで特に言うことは無いので引用だけしておきます。
...匿名性はこのプロトコルの目的を達成するためになくてはならない性質であるという結論に至る。なぜならば、人は匿名性の高い通貨の方が受け取りたがる傾向にあり、人が受け取りたがる通貨の方が価値が高まるためである。また匿名な状態(あなたがいくら資産を持っているか誰も知らない状態)から非匿名な状態に移行することは簡単であっても、その逆は資産を捨てない限り難しいので、デフォルトでプライベートな通貨の方が価値が高まりやすい。...
https://btcnews.jp/122cm4gq15316/ より
...財産上のプライバシーというのは、ビットコインの代替可能性における不可欠な要素である。もしもあるコインと別のコインを区別することができるのであれば、代替可能性は弱いということになる。もしも実際の代替可能性が弱いということになると、非中央集権性を保つことができない。もしも有名人が「盗まれた」コインのリストを公開して、そのリストから出てきたコインを受け付けないということを宣言したとすると、リスト内のコインを確認して、受け付けられないものを拒否しなければならなくなる。そのような世界では「悪い」コインを掴まされないように、皆が多種多様な当局によって発行されたブラックリストを確認しなければならなくなる。この手間と取引のコストによってビットコインがマネーとしての価値を落としてしまうだろう。
財産上のプライバシーは自由市場における効率的な運営のためにも重要な条件である。もしもビジネスで製造元や顧客があなたの意志に反して取引をすべて監視できるのであれば、あなたは有効な価格というものを設定できない。あなたの商売敵が売上をすべて確認できる状態では、効果的にその相手と競争することができない。商取引において、自分自身の口座についてプライバシーがなければ、情報アドバンテージを失うことになる。例えば地主があなたの給与をすべて見ることができる状態では、あなたの給与が上がったのを見た地主は家賃をあげようとしてくることだろう。
財産上のプライバシーは個人的な安全のためにも重要である。もしも泥棒があなたの支出、消費、貯金を覗き見ることができたとすれば、泥棒はその情報であなたを付け狙い悪用しようとしてくるだろう。プライバシーがなければ、邪悪な集団があなたの情報を悪用し、玄関先で高価な届け物を強奪し、取引先の相手と手を組んであなたから金を巻き上げようとするかもしれない(どのくらいの金を巻き上げられるか悪人たちは知っていることになる)。
財産上のプライバシーは人間の尊厳のために不可欠である。横柄なコーヒーショップの店員や煩い隣人に、収入や購入物について知られるのは気分が悪い。子供はまだかと煩い義理の両親が「なぜ避妊薬(あるいは大人のおもちゃでもいい)なんか買っているのか」と聞いてきたら気分が悪いだろう。あなたの上司はあなたがどの教会に寄付したかについて知る必要はない。
我々の尊厳が保たれる「合法的な」取引だけが自己検閲もなく行われるような世界では、プライバシーなど必要ないと主張するかもしれないが、それは他者を不当に迫害するような政府や警察がおらず市民全員が知的で差別など一切ないどこか遠い世界の話だろう。
そして、最も重要なことだが、財産上のプライバシーは法執行当局や透明性とは非互換なものではない。記録を取りたければいつでも記録を取れるし、命令されたときには(あるいは自主的に)記録を持っていないと自分が不利になるような機関には、今日実際行われているように情報を提供すればよいのである。その過程でも、誰にでも見れる公開された記録などというものは全く不要である。
財産において、誰にでも見れる公開された記録というものはいまだかつてあったことはない。そのような記録は望ましくないし、我慢し難いものである。ビットコインのホワイトペーパーには匿名アドレスを利用することで台帳の可視性を回避するという方法が書かれていたが、今日のビットコインエコシステムでは様々なものが適切に機能しておらず、我々はこれを改善しなければならない。ビットコインは名前やIPアドレスをトランザクションに書き込むように設計することもできたが、そのようにはなっていない。ホワイトペーパーにはプライバシーについて述べたセクションがある。ビットコインはプライバシーについて注力していないというのは誤りである。満足なプライバシーは、実世界でのデジタル通貨にとっての必須条件である。[参照](https://bitcointalk.org/index.php?topic=334316.msg3588908#msg3588908)...
https://en.bitcoin.it/wiki/Privacy#Why_privacy より翻訳
WasabiWalletの主な使い方
公式サイト(https://wasabiwallet.io/)からダウンロードできます。
初回起動時には必要なデータ(ブロックフィルター)をダウンロードするので少し時間がかかります。全ての通信がTorを経由するので中国からはVPNなどを使わないと起動できないかもしれません。
日本語にはまだ対応していないので(後述するようにこれは問題ですが)英語のインターフェースを説明します。
- File → Generate Wallet
- ウォレットの生成。バックアップ用のニーモニックが表示されるのできちんと保存しておく。パスワード設定画面ではブラインドに*****のようなアスタリスクではなく、ランダムな漢字が表示される。開発者の主張ではこれによってパスワードの設定やバックアップの保存にユーザーが注意を向けるのを意図しているとのこと。バグではない。
- File → Load Wallet
- ウォレットの読み込み。パスワードが設定してあれば入力することでウォレットが開ける。
- Tools → Settings
- Networkは実験用ではTestNetを使う。
- "Lurking Wife Mode"をオフにするとトランザクションIDなどが表示されるようになる。
- Receiveタブ
- アドレスを発行できる。受け取る目的を入力して、後でどのような目的で使ったものをどうコントロールするのか識別できる。
- CoinJoinタブ
- コインの横にチェックボックスがあるのでチェックを入れて「Enqueue Selected Coins」を押下すると自動でCoinJoinへの参加が始まる。
- Targetを切り替えるとどのくらいのサイズの匿名セットを使うか選択できる。小さいほうが人は集まりやすい(はず)だが、大きいほうが匿名性が高い。(2,20,50)の匿名セットから選択可能。
- 概ね1時間半に一回ほど実行されるらしい(参加人数によって変化する)。TestNetでは参加者がほとんどいなかったので最低の匿名セットでしかCoinJoinが実行できなかった。
- コインの横にチェックボックスがあるのでチェックを入れて「Enqueue Selected Coins」を押下すると自動でCoinJoinへの参加が始まる。
- Sendタブ
- コインを選択して送金する。どのような性質を持ったコインか(ミキシング済みか、誰から受け取ったか)を選んで送金できる。
基本的にはReceiveタブで受け取ってCoinJoinタブでミキシングし、Sendタブから送金するだけです。ウォレットシードの管理などは他のウォレットに準じます。
Tips
- できるだけアドレスを分散させない方がよい。可能であれば1つのアドレスに多くのコインを入れてミキシングしたほうがよい(後で大きな支払いをするときに、せっかくミキシングしたコインを統合しなければならなくなるため)。
- ソフトウェアが不安定なので動かなくなったらソフトウェアを再起動した方がよい。直ることもある。
- 何ラウンドもミキシングを重ねるためにはPCの電源を入れっぱなしにしておかないといけないが、ソフトウェアを起動中に強盗に入られた場合は資金を盗まれる可能性があるので、入れっぱなしにするときは安全な室内で実行した方が良い
- Torを既に起動しているとWasabiWallet内部のTorクライアントが動かないので、同一PC上で動くTorは停止させてから起動したほうがよい。
WasabiWalletの仕組み
WasabiWalletのキモであるチャウミアンコインジョインではブラインド署名という仕組みを利用しています。
以下のような設定で3人の持つコインをミックスしたい場合を考えます。
- A,B,Cさんがそれぞれ自分のアドレスa1,a2,b1,b2,c1,c2を用意します。a1,b1,c1にはそれぞれぴったり1BTCずつ入っており、それぞれa2,b2,c2に移動させたいとします。
普通のコインジョインでは以下のような手順を踏みます。
- 中央サーバー(タンブラー)を用意する
- Aさんはa1からa2に支払うトランザクションをタンブラーに渡す。タンブラーはそれを公開しない。
- 同様にB,Cさんもb1→b2,c1→c2の支払いトランザクションをタンブラーに渡す。
- タンブラーはそれらを「結合させる」。ビットコインのトランザクションはそれぞれのインプットに対して別々に署名したものを後からくっつけることが可能である。
- タンブラーはトランザクションをネットワークに放流する。
上の方法で作られたトランザクションには「タンブラーがa1↔a2の対応関係を知っている」という問題があります。コインが盗まれることは無いにせよタンブラーを信用する必要があるということです。チャウミアンコインジョインではさらにこのコインジョインを安全にして、タンブラーがa1とa2の関係を知らないままトランザクションを構成できるようにします。
ここで必要なのがブラインド署名です。ブラインド署名は「封筒の上からハンコを押す」のに例えられます。封筒の中にカーボン紙と手紙を入れて封をします。ハンコを持っている人も外からは何が入っているのか分かりませんが、とりあえずその封筒にハンコを押すことは可能です。そして、封筒の中にカーボン紙と手紙を入れた人が封筒を開けると、中の手紙にも署名が付いているような状態を作り上げることができます。
封筒に入れる操作がブラインド化、ハンコを押すのが署名に該当します。これを暗号学的な操作でやるのがブラインド署名です。
以上のようなブラインド署名の仕組みを使ってコインジョインの手順を考え直してみます。
- Aさんはa1とx1をタンブラーに渡す。タンブラーはAさんがa1の所有者であると確認した後、x1にタンブラー自身の鍵で署名する。x1はブラインド化されたa2だが、タンブラーはそれを知らない。
- B,Cさんも同じようにx2,x3を渡す。
- BさんはDさんに変装してタンブラーの元を再び訪れ、署名されたb2を渡す。タンブラーはDさんという人物がタンブラー自身の鍵で署名されたb2を持ってきたことが分かるが、それが実はBさんのものであることは知ることができない。AさんやCさんのものであるかもしれない。
- A,CさんもE,Fさんに変装してタンブラーに署名されたa2,c2を渡す。
- タンブラーはA,B,Cさんがそれぞれどの支払先を持っているのか知らないが、(a1,b1,c1)→(c2,b2,a2)のようなトランザクションを作ってA,B,Cさんに渡す。
- A,B,Cさんはそれぞれa1,b1,c1の鍵を使って署名し、全員が署名したらネットワークに放流する。
以上のような仕組みであればタンブラーであっても対応関係を知ることができないのでより安全になったと言えます。上で言う「変装」はTorの接続回線を切り替えて全く別の場所から接続するように見せかけることに対応します。
WasabiWalletは上のような仕組みを世界で初めて実装したウォレットで、名前を明らかにした個人によってタンブラーが運営されています(本来タンブラーの運営自体は匿名でもできます)。また、このコインジョインを繰り返す時はa1,b1,c1の金額は等量でなければならないので、半端な金額を持っている人はお釣りアドレスを用意しなければならず、そのお釣りアドレスの金額は小さくなりがちです。この少額のお釣りはWasabiWalletの前身のHiddenWalletでは開発者への寄付とされていたようですが、現在ではWasabiWalletのタンブラーは自分宛ての手数料をトランザクション内に入れることで収益を出そうとしているようです。
本来タンブラーは手数料を必要としませんが、現実的には開発費やサーバーの運営費用などにあてられているようです。
問題点
バグの多さ
このソフトウェアはredditやtwitterでユーザーからのフィードバックをもらいながらバグを修正している段階です。現時点で安定的に利用できるものではありません。実際自分が起動と再起動を繰り返すなどした結果同期が不完全な状態で資金を動かせない状態になったりする事例も発生しました。最悪の場合には資金を移動できるウォレット用のシードがあり、再起動で直ることもありますが、資金を管理するソフトウェアとしては実用に耐えないバグです。
https://old.reddit.com/r/WasabiWallet/comments/budkba/wasabi_never_reconnects_to_bitcoin_core_and_other/
このようなバグは時間とともに減るものですが、現状はまだ利用を推奨できるものではありません。
翻訳
これも時間が解決するものですが、このウォレットにおいては翻訳は匿名性と深く結びついているものです。
翻訳が進んでおらず、ユーザーが英語話者に限られていることは匿名性にとって良くないことです。CoinJoinがあったという事実自体は隠すことができないので、以下のようなケースが問題になります。
- WasabiWalletのユーザーが全員英語話者である
- 同一のCoinJoin上で参加者のうちの誰か一人が「これはWasabiWalletによるものだ」と告白する
- このとき、同一のトランザクション上でのアウトプットは全て英語話者によるものとなる
英語話者でWasabiWalletを使う人の絶対人数自体がそもそも多くないこと、一般の参加者による撹乱が入らないことはデメリットと見るべきです。ビットコイン本体のようにサービスやウォレットが多言語対応すると話者の属性に関する推定が難しくなっていくでしょう。
オプションの少なさ
匿名性はできるだけ集団の中で目立たないようにする技術です。匿名化を心がける技術は全て、できるだけ利用者の癖が表にでないように、利用者の振る舞いが均一化され同一に見えるように設計されます。例えばモネロにおいてデフォルト値以外のロックタイムトランザクションが利用できないのは暗号上の技術的課題ではなく、単純に利用者が様々な癖を持ってロックタイムを設定し始めるとそれぞれの特徴が現れ、最終的にはその他のユーザーのプライバシーにも影響が出てしまうからです。
同様に、WasabiWalletでもユーザーの自由というのは少なくなければなりません。可能であれば24時間ずっと稼働することが望ましいものですが、アジア・ヨーロッパ・アメリカで人間の活動時間にずれがあるのでどの時間に作られたトランザクションかということで利用者の属性は少し漏れることになります。
WasabiWalletではキューに入れたトランザクションは何度も勝手にミキシングされ、キューに入れなかったトランザクションはミキシングされません。何回ミキシングされるかの指定はできず、JoinMarketよりもユーザーの自由度は低くなっています。勝手にミキシングされ、止めようと思ってシャットダウンするとサーバーに中止を通達しますが、その処理のUXはあまりよくありません。根本的にはユーザーに選択肢を与えることと匿名性は両立しない概念です。匿名化ウォレットはそのようなものと割り切る方が良いでしょう。
.NETフレームワーク自体の信頼性
初期からbitcointalk等で指摘されている問題です。
WasabiWalletのレポジトリを見れば分かるとおり
https://github.com/zkSNACKs/WalletWasabi
DOTNET\_CLI\_TELEMETRY\_OPTOUT のオプションを有効化しないかぎり、.NETフレームワークはデフォルトでマイクロソフトに利用者の情報(個人情報ではなく統計情報だが、接続先にはIPアドレスも明らかになる)を送信します。
この機能は元々クローズドソースだった.NETフレームワークがオープンソース化されるにあたって問題になり当然議論が沸き起こります。
https://github.com/dotnet/cli/issues/3093
しかし以上の議論を見れば分かるように、マイクロソフトはこの機能を削除するつもりは全くないようです。このようなユーザーの意見を無視するプラットフォームを利用してプライバシー関連ソフトウェアを作ることの危険性は明白です。
WasabiWalletの作者も直接問題を提起していますが完全に無視されています。
https://github.com/dotnet/cli/issues/10497
実際に手元のPCでオプトアウトを選択せずにソースから`dotnet run`で実行した所マイクロソフトのIPアドレスとの通信が観測されました。この挙動は、少なくとも特定のIPアドレスを持っているユーザーがWasabiWalletを利用したタイミングがマイクロソフトに伝わってしまうということになり、プライバシーを大きく毀損するものです。
一応、WasabiWalletのLinux版においてはバイナリパッケージをインストールするとこの機能はオフに設定されているようです(初回起動時にTor以外との通信は発生しませんでした)。しかし、プライバシーに関心のある人の中にはソースコードからビルドしたいユーザーも多いはずですし、他にも手段はあるはずなのになぜデフォルトでこのような矛盾する挙動をするプラットフォーム上でプライバシー関連ソフトウェアを利用しようと思ったのか理解に苦しみます。これはソフトウェア作成者の設計能力にも疑問符が付きます。
中央集権性
コインジョインを構成するためのサーバーは表に出て名前を出す必要はないものです。健全性をアピールするため作者は顔を公開し、利用規約で違法な利用を禁じていますが、事実上資金の匿名化ができる以上、国家からの圧力を受ける可能性も考えるべきです。もちろん圧力を受けた所で資金が奪えたり、非匿名化できるといったことは無いです。デフォルトでソフトウェア内部で使われているサーバーが機能不全になった場合、誰かが別の匿名な(おそらくはTor上で動く)サーバーを立てることになるはずですが、そのようなサーバーの公開が違法になったりした場合、複数のサーバーが乱立してコインジョインの匿名セットが分割されてしまうかもしれません。
(付録) Bitcoin WikiのPrivacyのページ全訳
こちらのリンクからどうぞ。
https://github.com/748375248538/spotlight/blob/master/privacy-ja.mediawiki