【ビットコインの匿名化技術まとめ】TumbleBit、Chaumian CoinJoin、ZeroLink、シュノア署名など

2009年に立ち上がって以降、Bitcoinは本当にプライベートではありませんでした。

BitcoinはオープンソースなパブリックブロックチェーンとP2Pネットワークで構築されているため、分析してBitcoinアドレスをその他の識別情報と関連付けることができます。

この性質により、Bitcoinがより世界的な通貨となったときプライバシーの欠如が問題となるでしょう。

Bitcoinのユーザーは、お金をどこで使うのか、何を獲得するのか、どれだけ所有しているのかを知られたくないかもしれません。また、企業はトランザクションの詳細を競合他社に漏らしたくないかもしれません。

さらに、プライバシーの欠如は、Fungibility(代替性)の喪失につながる可能性があります。

代替性は、通貨にとって不可欠な要素です。例えば、特定のコインが政治的な目的のために使用されていることが判明した場合、支払いを受付る側は「汚染された」コインを受け入れる意思は低く、また関わりたくない場合は受け取ることすらしないかもしれません。

ただし、活発な開発のおかげで、Bitcoinユーザーへの「スパイ活動」は困難になってきています。

有望なプライバシー保護の技術が数多く導入されており、またその他のソリューションも年内や翌年にはリリースされる見通しが立っています。

以下に、有望なプライバシー保護のプロジェクト概要を示します。

TumbleBit

TumbleBitは、Bitcoinで展開されるなかで、最も期待されているプライバシーソリューションの1つです。

TumbleBitは、(中央の)タンブラーを使用し、ミキシングセッションの参加者間でオフチェーン決済チャネルを作成するミキシングプロトコルです。

すべての参加者は、上述のチャネルを通してコインを送り、同じ金額の異なるコインを受け取ります。このプロセスによって、すべての人物の所有権を破棄することができます。

「スパイ」を含めた参加者全員は、誰に支払うのかを再確認することはできません。さらに重要なのは、TumbleBitは巧妙な暗号を利用して、タンブラーでさえもユーザー間のリンクを確立できないことを保証しています。

TumbleBitは、参加者1人につき2つのオンチェーン・トランザクションを必要とします(1つはチャネルをオープンし、もう1つはそれをクローズするもの)。もちろん、信頼を必要としない解決策ではありますが、TumbleBitは他の代替案よりも少し高い手数料を伴います。

TumbleBitは、ボストン大学やジョージメイソン大学、ノースカロライナ州立大学の学術研究チームがEthan Heilmanを率いて2016年に最初に提案し、その年の秋にScaling Bitcoin Milanで発表されました。

NBitcoinの開発者であるNicolas Dorierが初期バージョンの技術を実装し、ようやく実際に開発が進み始めています。これは、プライバシーを重視した開発者であるÁdám Ficsórなどによって改良され、StratisのBreeze Walletに実装されました。

このBreeze Walletは、1ヶ月前に正式にリリースされています。TumbleBitは、現在誰でも使用できるようになっていますが、使用法(プライバシーを提供する匿名性セット)は依然として低いと言われています。

Chaumian CoinJoinとZeroLink

CoinJoinは、Bitcoinの規格による比較的古いアイデアで、Bitcoin Coreの貢献者であるGregory Maxwellが2013年に最初に提案したものです。本質的には、複数のトランザクションを1つの大きなトランザクションにまとめることで、どのBitcoinアドレスにDepositされ(「入力」)、どのBitcoinアドレスへWithdrawしたか(「出力」)、の移動を難読化することができます。

簡単な例として、アリス、ボブ、キャロルのすべてがお互いにコインをミキシングしたい(混ぜてみたい)としましょう。 CoinJoinを使用することで、彼らは自分のアイデンティティに結びついていない新しいアドレスを使い、自分自身に送金するトランザクションを作成することができます。

アリス、ボブ、キャロルが同じ金額のコインでトランザクションを生成している限り、「スパイ」は新しいアドレスのどれが誰に属しているのかを知ることはできません(彼らが異なる金額のコインを使用する場合は、どのコインがどこに移動したかは明らかですが)。

CoinJoinトランザクションは、数年前から現実味を帯びてきましたが、長い間アリス、ボブ、キャロルのような人物らでトランザクションを構築する必要がありました。

この人物らは、どの古いアドレスが新しいアドレスにビットコインを送金しているかを正確に知る必要があります。それ以外の場合、トランザクションを構築することは不可能です。この人物が「スパイ」であることはよく分かりませんが、その努力は無意味になります。

「スパイ」はコインの所有権を再確立することができます。

この問題は2013年の提案でGregory Maxwellが言及した「Chaumian CoinJoin」と呼ばれるトリックを使用して解決することができます。(1983年にDavid Chaumが提唱した「blind signature scheme」の名前に由来)

アリス、ボブ、キャロルは、ウォレットプロバイダによって運営されているChaumian CoinJoinサーバーに接続します。

最初に、彼らへすべての送金アドレスと、暗号化されたサーバーによって署名された(暗号的にスクランブルされた)受取アドレスを与えます。

その後、アリス、ボブ、キャロルは、Torなどの暗号化されたネットワークを介して再接続するために切断し、アンブラインドされたアドレスを提供します。

Chaumianブラインド署名を利用し、サーバーはブラインドされていないアドレスがブラインドされたアドレスと一致することを確認します。

これにより、アドレスが誰に属しているかを知ることなく、アリス、ボブ、キャロルに本当に属していることを確認することができます。

Chaumian CoinJoinの提案は、最初に提案されてから約4年間立ちましたが、約1年前にBreezeのTumbleBitの実装に取り​​組んでいたÁdám Ficsórが提案を再発見し、実装することとなっています。

Ficsórが設計したZeroLinkフレームワークに組み込まれているChaumian CoinJoinは、最近リリースされたプライバシー重視のWasabi Walletに実装されました。Wasabi Walletは、現在ベータ版となっています。

また最近では、プライバシーに重点を置くSamourai Walletが、Whirlpoolと呼ばれるモバイルZeroLinkの実装を間もなくリリースすると発表しました。さらに、Bob Walletという新しいウォレットもZeroLinkの実装へ向かって開発しています。

シュノア署名によるサイズの減少がもたらす可能性

CoinJoin(Chaumian CoinJoinを含む)はすでに実装可能であり、数年前から提案されていたが、これまでのところ大きな打撃を受けたことはありません。

長い間、一般的に人気なWalletはプライバシー機能を提供していませんでした。これは、CoinJoinトランザクションが複雑さを増してしまうため、プライバシーを気にしない人にとっては素早い送金ができるという、小さなメリットとなっていたためです。

Bitcoin CoreとBlockstreamの開発者であるPieter Wuilleが、最近正式なBitcoin Improvement Proposal(BIP)を発表したSchnorr署名は、このような可能性を提供するのに役立ちます。

発明者であるClaus-Peter Schnorrにちなんで命名されたSchnorr署名は、多くの暗号学者によって、暗号通貨の分野における最良のタイプの暗号署名であると考えられています。

おそらく、Bitcoinに活かされる具体的な利点は、複数の署名を1つの署名に集約できることでしょう。これは、1つの署名が複数の送金アドレス(入力)の所有権である証明をできることを意味します。したがって、送金アドレス(入力)がいくつ含まれていても、通常のトランザクションごとに必要な署名は1つだけです。

もちろん、CoinJoinトランザクションには複数の送金アドレスも含まれます。したがって、Schnorr署名はCoinJoinの使用に新たな利点を追加することができます。

これにより、すべての参加者がトランザクションを1つにまとめるだけでなく、そのトランザクションの署名を1つにまとめることができます。これにより、CoinJoinトランザクションのサイズが小さくなり、個々のトランザクションが結合されているため、マイナーが手数料を削減する必要があります。

Schnor署名を使用すると、よりプライベートなオプションを使用することにコスト的なメリットがあります。これは、Walletに実装するための適切なインセンティブを提供し、すべての人にとって最適な選択肢にとなります。

さらに、Schnorr署名の数学的特性は「scriptless scripts」、「Taproot」、「Graftroot」などの、より複雑なスマートコントラクトのようなソリューションといった、新しいクラスにも役立ちます。

興味深いことに、これらのソリューションは、通常のBitcoinトランザクションBitcoinブロックチェーンのように見えます。よって、例えば先物取引や分散型取引所、保険契約などを「スパイ」にトランザクションを特定されずに行うことが可能となります。

STONEWALL

STONEWALLと呼ばれる技術は、実際には利用していないがまるでCoinJoinを採用しているかのように見えます。

STONEWALLトランザクションは事実上、通常のトランザクションです。つまり、あるユーザーから別のユーザーにビットコインを送金します。しかし、STONEWALLトランザクションは、不必要な数の送金アドレス(入力)とチェンジアドレス(出力)を含みます。

これにより、トランザクションはCoinJoinトランザクション(2人がトランザクションを1つに結合するトランザクション)のように見えます。(詳細

STONEWALLの背後にあるアイデアは、Bitcoinブロックチェーンを分析するときに「スパイ」が想定していた仮定を破ることです。

「スパイ」が、トランザクションが本当にCoinJoinトランザクションであるかどうかを確実には判断できない場合、このトランザクションデータに基づく結論は無益となります。

Samourai Walletはまもなく、実際のCoinJoinトランザクションである2-walletのSTONEWALLを展開し、互いに信頼する2人のユーザー間で共有されます。

Dandelion

Bitcoinユーザーを非正規化するための少し異なった方法は、P2Pネットワークの分析でしょう。具体的には、スパイノードはBitcoinネットワークを監視し、トランザクションの起点を調べることができます。トランザクションをブロードキャストする最初のノードは、おそらくそのトランザクションを作成したノードです。

Dandelionは、カーネギーメロン大学やイリノイ大学、MITの学術研究者チームによって提案されたプライバシーの解決策です。最近、カーネギーメロン大学のジュリア・ファンティ教授が、ポルトガルのリスボンで開催されたBuilding on Bitcoinというカンファレンスで発表しています。

このソリューションは、P2Pネットワーク上でのトランザクションの分散方法を変更することで、ネットワーク分析に対抗します。

できるだけ多くのピアに新しいトランザクションをただちにブロードキャストして転送する代わりに、Dandelionプロトコルでは最初に新しいトランザクションを1つのピアノードに送信します。

このノードは、それを1つのピアにのみ転送するかどうかをランダムに決定します。 1つのピアだけに転送された場合、次のノードはランダムに何を行うかを決定します。

1つのピアだけに転送されない場合、ノードはできるだけ多くのピアにトランザクションをブロードキャストするように移行し、受信するすべてのピアノードは順調に従うこととなります。

これにより、「スパイ」がトランザクションの発生場所を正確に特定することが非常に困難になるはずです。

Dandelionのバージョンは既に研究チームによって実装されており、提案はBitcoinの開発コミュニティ内で肯定的な反応を受けています。

したがって、今後のBitcoin Coreのリリースに含まれる可能性は高いかもしれません。

BIP 151

ネットワーク解析を制限するもう1つの比較的古い提案は、Bitcoin Coreの維持やBitBoxというハードウェアウォレットを販売するShift社の開発者である、Jonas Schnelli氏によって書かれたBIP 151です。

BIP 151は、Bitcoinノードがトラフィック(トランザクション&ブロックデータ)を暗号化できるようにする、比較的簡単な解決策です。

ピアのトラフィックを暗号化すると、特定のユーザをターゲットにした分析は非常に難しくなります。現在、ネットワークプロバイダーや中間者攻撃を行う側にとって、Bitcoinユーザとそのユーザのコントール下にあるアドレスやキーを識別するのは簡単なこととなっています。

ブロードキャストしたトランザクションに含まれるBitcoinの量や支払先の情報は、ネットワークプロバイダにとって明白な情報となっています。

ピア間の通信を暗号化するのは、VPNやtor、stunnel、stunnelや深いOSIレベルの暗号化の仕組みで既に可能ですが、SPVや他のDHCP/NAT環境下では、どのようにセキュアなチャネルをセットアップすればいいかのノウハウが必要で実用的ではありません。(参照:Bitcoinネットワークのピア間の通信の暗号化(BIP-151)

したがって、BIP 151では特定のユースケースとシナリオにおいてP2P暗号化の恩恵を受けるでしょう。たとえば、ISPやオープンなWi-FiネットワークはBitcoinのトラフィックを監視できなくなります。

Schnelli氏は、BIP 151が最初に提案されてからこれまで約2年間ほど触れていませんでしたが、最近このプロジェクトを再び取り上げ、Bitcoin Coreに潜在的に含まれる「公式」なBIPを再作成しています。

https://github.com/bitcoin/bips/blob/master/bip-0151.mediawiki

Compact Client-Side Block Filtering

ブロックチェーン全体のデータをダウンロード・同期し確認することなくBitcoinを使用するには、モバイルウォレットなどの軽量クライアントウォレットを使用します。

残念なことに、軽量クライアントのほぼすべては、プライバシー保護に関して非常に弱いです。軽量クライアントは、通常ネットワーク上の中央サーバまたはランダムノードのいずれかとアドレスを共有します。つまり、いずれかが「スパイ」になる可能性は十分にあるわけです。

ネットワーク上のランダムなノードとアドレスを(効果的に)共有する多くのクライアントは、SPV(Simplified Payment Verification)という技術を使用しています。

SPVクライアントは、通常「Bloom filters:ブルームフィルタ」を使用し、関連する可能性のあるトランザクションを要求します。Bloom filtersは誤検出を返しますが、これはSPVクライアントが厳密に必要とされる多くのトランザクションを要求することを意味するため、すべてのトランザクションをダウンロードする場合に比べてデータ量はわずかです。

残念ながら、SPVウォレットはデータを要求するノードに、すべてのアドレスを効果的に表示します。よって、プライバシーは非常に弱いことがわかります。

この問題に取り組むため、Lightning Labsの開発者Olaoluwa Osuntokun氏とAlex Akselrod氏は、Coinbaseの開発者であるJim Posen氏と共に「compact client-side block filtering(コンパクトなクライアントサイドのブロックフィルタリング)」という新しいソリューションを提案しました。

「compact client-side block filtering」は、もともとLightning LabsのLightning用ウォレットであるNeutrino Wallet用に設計されていましたが、通常のBitcoin Walletでも使用できます。

なお、Wasabi Walletはすでにベータ版でこのソリューションを実装していました。

「compact client-side block filtering」は、現在のSPVウォレットが使用する技術を本質的に逆転させます。Bloom filtersを作成してトランザクションを送信することで、関連するトランザクションを要求するSPVウォレットの代わりに、フルノードが同様のフィルタを作成します。

SPVウォレットは、このフィルタを使用し関連するトランザクションが発生しなかったことを確認します。フィルタがマッチを生成した場合、Neutrinoは該当するブロックを呼び込み、正確なトランザクションにマッチするかどうかを確認します。

「compact client-side block filtering」」を使用するSPVウォレットは、どのノードからも特定のデータを要求しなくなるため、1つのサイズに合ったフィルタを受け取る代わりに、トランザクション履歴については何も表示しません。

LiquidとConfidential Transactions

LiquidはBlockchain開発会社のBlockstreamによって開発された、最初のエンタープライズなサイドチェーンです。

主な目的は、取引所と他の大きな取引量を持つBitcoin企業(ブローカーなど)との間に取引チャネルを確立し、Bitcoinブロックチェーンよりもはるかに高速にBitcoinやその他の資産を送金することができるようにすることです。

将来的には、通常のユーザー(トレーダー)も特別なLiquid walletを使い、サイドチェーンにアクセスできるようになるはずだ。

Liquidに実装されている機能の1つはConfidential Transactions(CT)です。

CTはトランザクションの送受信量を隠す技術であり、特別な暗号化により盲目的な量である計算の実行を可能にします。また、すべてのLiquidユーザーは、受信額が送信額を超えていないことを確認できます。

Liquidの文脈では、取引所がどの程度資金を動かされたかを知らなくても、両者の間での資金移動が可能であることを意味します。

このプロセスはプライバシーを提供し、競合他社は取引所で特定の人物がどの程度の資産を管理しているかを知ることができません。

Liquidが通常のトレーダーでも利用できるようになると、取引所から資金を引き出して一時的にサイドチェーンに保持したり、別の取引所に移動したりしても、「スパイ」から残高を隠すためにプロトコルを利用することができます。

さらに、プライバシー技術にとって​​強力な組み合わせとなる、CoinJoinタイプのソリューションをLiquid walletに組み込む開発することができました。

さらに、CTはメインのBitcoinプロトコルでも実装できます。下位互換のソフトフォークでこれを達成する方法についていくつか考えられていますが、技術革新は進んでいるもののアップグレードには依然としてスケーラビリティに大きな損害があるため、まだ現実にはならないでしょう。

参照:Aaron van Wirdum  by Bitcoin Magazine

Default image
Keisuke Kuribara
零細企業の代表 / ウェブマーケティング、コンサルティング、EC / 漫画と本が好き / 生物捕獲が趣味