近年、匿名通貨が乱立してきています。
有名所のMonero、Dashから始まり、Zcash(ゼットキャッシュ)、Verge(バージ)。
最近ではイーサリアムがZcash on Ethereum、通称ZoEと呼ばれるプロジェクトで、Zcashの匿名機能であるzk-SNARKsをイーサリアムへ実装する案が出されています。
メッセージや、アカウント、個人情報など、プライバシーを尊重する上でこういった匿名性は重要であることは理解できます。
暗号通貨の送付にあたっても、お金を送る情報を誰でも閲覧できる状態になっているようなことは望ましくありません。
ただ、単純に考えたとき。
例えば、
ある会社が誰にも知られずに給料を直接手渡しで社員に渡すこと。
社長が会社の売上を誰にも知らせずに個人の口座へ移動すること。
こういったことは常識で考えて許される行為では無いことは明確です。
今の世の中の現状では非常に残念ですが、お金の流れは最低限、国に知らせておく必要があります。
目次
各匿名通貨の特徴と違いを比較する
一言で匿名と言っても、暗号通貨によってその範囲はそれぞれ違います。
また、全体として一体どこまでの範囲を隠すのかが重要になってきます。
ちなみに通常のビットコインでは、誰かが送金した場合にその送金額と、送ったアドレス、受け取ったアドレスが誰でも分かるようになっています。
この情報は外部の専用の”Blockchain.info”などのサイトから閲覧できる状態になっている上、トランザクション(履歴)として永遠に晒され続けます。
参考サイト:tottemoyasashiibitcoin.net
Moneroの匿名機能
トランザクション(送信元と受信元アドレスと送付量)の匿名化
Moneroでは、大きく分けて3つの匿名化機能を採用しています。
・リング署名(リングシグネチャ)
・ステルスアドレス
・リングCT(リング機密トランザクション)
リング署名(リングシグネチャ)は、送付元のアドレスを他のダミーアドレスと混ぜてグループとして送付する方法で、“送付元のアドレス”を特定することができない状態にします。この方法はもともとBytecoinという暗号通貨で使われたアルゴリズム”CryptoNote”が元になっています。
これにステルスアドレスと呼ばれる一度きりの使い捨てアドレスを使って送付先のアドレスを生成する方法を採用しており、結果的に”送付先のアドレス”が特定できないようになっています。これはネット銀行とかで使うワンタイムキーと同じような考え方です。
この方法は合わせてワンタイムリング署名とも言われているようですね。
最後のリングCTでは、一回のコインの送付量を複数に分割して送付することでさっきのワンタイムリング署名と組み合わさって合計送付量がわからなくなるようにする方法です。
これらの方法で、結果的には取引情報のほぼ全てが匿名化できるようになります。
更に詳しい情報はgetmoneroを参考にしてください。
トランザクションの状況はmoneroblocks.infoを見るとわかりますが、送信元の情報を特定する事ができないようになっていることがわかります。
これを見ても大体がブロックの数しかわからないみたいですね。
また、上の技術に加えて、Zcashで使われるようなIPアドレスのプライバシーが保護された分散型匿名技術”Kovri”が公開されています。
この技術では、I2Pの公開仕様に基づいてIPアドレスのプライバシーを保護します。
※従来のI2Pネットワークと完全に互換性があります
ちなみにこの匿名化は公開キー(view key)と呼ばれる情報提示用のキーを使うことで、本人の任意で第三者にトランザクション情報を公開することもできます。
現在では、”Payment ID”と呼ばれる取引状況を公開するための個別IDを割り振る仕組みを使って、公開しないといけない取引情報や買物の履歴情報などを確認できるようになっています。
参考情報:ysklog.net/virtual-currency
DASHの匿名機能
実質、トランザクション(送信元と受信元アドレスと送付量)の匿名化
旧名はダークコイン。
プライベートセンド(PrivateSend)と呼ばれるコインミキシング機能を使った送信コインの一種の拡散手法が使用されています。
送信したコインは一度中継地点にあるプールと呼ばれる場所に他の関係ない送信者のコインとともに集められ、そこでかき混ぜられた上で合計数だけを一致させたコインがそれぞれの送信先に送られます。
つまり最終的に受け取り側には、赤の他人のコインと混ざって送られてくるので、一つの送信元を特定できないことになります。
この方法は、事前にそうなるように設定が必要で、マスターノードとの接続、ミキシングで分割するそれぞれの通貨量の設定(例えば送信通貨を0.1DASH,O.5DASH,1.0DASHに分割する設定)を毎回する必要があります。
このときに別のプライベートセンドを利用する送信者と分割量が一致した場合にのみ、この機能が動作します。
この送信方法はオプション機能のため、使用するかしないかは個人で判断できます。
Zcashの匿名機能
トランザクション(送信元と受信元アドレスと送付量)の匿名化
こちらの技術はzk-SNARK(ゼロ知識証明)と呼ばれる方法で、トランザクション情報を隠したまま取引を承認できる仕組みを採用しており、これによってシールドトランザクションと呼ばれる方法が実装されています。
ユーザーは、任意でこの方法を選択することで送信元アドレスと受信元アドレス、そして送付量を匿名化して取引を行うことが可能になります。
単に結果を隠すというレベルではなく、トランザクションをノードの検証段階からすでに匿名化しています。
参考:coinchoice.net
その為、非常に匿名性が高い仕組みになっているようです。
ちなみにトランザクション履歴は以下の専用サイトで確認できます。
explorer.zcha.in
この際にtから始まるアドレスを使っている場合は”t-addrs”と呼ばれる公開アドレス(トランスペアレントアドレス)であり、通常のビットコインアドレスと同様の送信方法になりますが、逆に非公開のアドレスは”z-addrs”というzから始まるアドレス(アドレスも見れないのでわからない)でいずれの情報も非公開になっています。
通常の公開されたアドレスからシールドされたアドレスにコインを送付した場合は、片方が公開され、もう片方は何も表示されていないようになってるはずです。
Vergeの匿名機能
IPアドレスとトランザクション(送信元と受信元アドレス)の匿名化
Vergeでは、IPアドレスや位置情報などのプライベートなデータを秘匿する「Tor」や「I2P」などの技術を利用した方法で、匿名化を実装しています。
※このTor、I2Pはダークネットと呼ばれる通信状態を外部に晒さない状態でネットを閲覧できる技術として有名です。
この技術を実装すると、ネット上のIPアドレスが隠されて(一応保管はされている状態)、誰にも確認できない状態になります。
さらにこれとは別に”レイスプロトコル“と呼ばれる仕組みの実装でオープン台帳とプライベート台帳の選択ができ、プライベート台帳のステルスアドレスによってトランザクションデータ自体を匿名化する選択ができます(開発中)。
※これは送信元アドレスと受信元アドレスを匿名化する方法ですが、送付量は通常通り公開されます。
参考:medium.verge
上のIPアドレスの匿名化は、すでに世の中にあるネット関連の技術であり、こちらから直接TorやI2Pを利用した上で通貨の取引することでも事実上実装できるようですが、技術的な部分が入ってくるので、初めて触る人にとってはハードルが高いです。
Vergeでは、こういった技術を一般の人でも手軽に実装できる状態にして、プライバシーの保護に役立てようとしています。
ビットコインでも十分プライバシーを守れる
例えば、アドレスを特定されることを避けるために、大口投資家は送付量を分割して、違うアドレスで送信できます。
これはBitpayなどのウォレットでも簡単に設定でき、毎回違うアドレスで受け取りや送金を行うことも可能です。
履歴は本人のウォレット内にのみ残り、はたから見れば、毎回違うアドレスで送られているため、特定のアドレスは困難になります。
そして、こういうことはすでに大金を持った投資家なら当たり前のようにやっているはずです。
ところでビットコインでマネーロンダリングが疑われた場合はどうやって把握するんでしょうね?
取引所経由ならわかりますが、それ以外のいわゆるP2P取引時の場合は特定困難な気がします。
匿名通貨は日本で嫌われている
先日、コインチェックのメールにて、関係アカウント先に上場廃止の通貨のアナウンスが流れているはずです。
ここでは今まで扱っていたすべての匿名通貨が上場停止による取扱廃止となっています。
すでに世間的に言われていたように、この匿名性通貨を使うと素人でもいとも簡単にマネーロンダリング(資金洗浄)に近しいことができるようになっています。
そのため、こういうことに厳しい日本では特にこういった通貨を嫌う傾向にあるとされていますね。
例えば、Zcashのような匿名機能を使って現金をやり取りでもすれば、よほど専門の技術に精通した人でもなければ、そもそも隠されていることすら理解することができないでしょう。
ただ、このことで前から気になる事があるんですが、
これらの匿名通貨はアドレスとコインの送付量ごとまるっと秘密にしたいようですが、ビットコインはなぜはじめから公開性にしているのか?
これは単にbitcoinの開発者がプライバシーにまで考えが至っていないだけでしょうか?
そもそもビットコインのアドレスで個人が特定されるの?
ということです。
同じアドレスを何度も使うことで、アドレス自体に注目が集まるようなことはあっても、そこから個人を特定できる人がこの世の中に何人いるんでしょうか?さっきも言ったようにP2Pでの取引ではなおさらです。
庶民的な僕にはその辺がよくわかりません。
少なくとも僕の力では、アドレスを特定できてもアカウントや個人を特定する方法が思いつきません。
※そもそもアカウントとアドレスを第三者で紐付ける手段はありません。
仮想通貨がグローバルなことはもう十分伝わりますが、そもそもいろんな国の人に使ってもらわないと意味がありません。
ただでさえ、個人の特定が難しいこの通貨の利用に、さらに完全な匿名性を導入して、それを快く受け入れてくれる国があるようには思えません。
一体どこまでの範囲で匿名化したいのか、今市場に出ている匿名通貨はこの辺がとてもあやふやになっています。
最初に話したとおり、(少なくとも先進国は)どこの国でもお金の流れのすべて隠すことは許されません。
それとも最終的に、国になんの根拠もなく個人の資産管理状況を信用してもらうつもりでしょうか?
勘違いしてもらっては困るので、最初に話しておきますが、決して国側に肩入れしているわけではありません。
匿名通貨のアプローチの仕方は今の状態で合っているのか? というところです。
とにかく隠すことに力を入れているこれらの通貨の主張では”国家による規制”を避けたいとの考えがあるようですが、少なくとも今の日本では無縁な話です。そういうことを日本で語る人は、残念ながら”痛い人“って思われます笑。
coinchoice.net
こういった通貨を強引に導入しようとしても、まるごと規制されるだけに思えますね。
・・・そして今の(日本の)結果がこれです。
匿名通貨の取引所上場の話は別
さっき話した匿名通貨の特徴では、いずれも任意で公開性のアドレスにすることができます。
Zcashではちゃっかりその方法で(今は)公開性限定にして、ちゃんとアメリカの金融庁が監視する取引所に上場しています。
一方で日本ではとにかく匿名通貨は全部ダメってな感じですべて排除するような動きになっています。
普通に考えれば、匿名化のオプションなどを禁止して導入すればいいんじゃないかって思うんですが、そもそも国内でこういった通貨が(特に悪人に)普及すること自体を避けているようですね。
だいたい取引所で取引すること自体、事前にウォレット預ける時点で、匿名性も分散管理も関係なくなります。
つまり、個人投資家にとってはこういった機能は関係ないものとなります。
一方で個人的な決済で使うことでいえば、この匿名機能の効果はかなり発揮されます。
その時こそ、国が規制するべき対象となるはずです。
ただ、完全にこれをシャットアウトするにはネット自体を規制する必要があると思いますが笑。
結局のところ、現状争っているのは国の金融関係者と、匿名通貨のプロジェクト側だけに見えます。
ぼくら一般ユーザー側は置いてけぼり。
また、NEM流出の件など、一部の頭が回る”悪人”だけが特性をうまく利用している気がします。
[ad]