BTCPay ServerのP2EP実装がビットコインのプライバシーを強化
Blockstream Research

BTCPay ServerのP2EP実装がビットコインのプライバシーを強化

Samson Mow, Daniel Williams

本日はBTCPay ServerPay to Endpoint (P2EP)への対応を実装したことで、世界中の何万という事業者へのビットコイン支払いのプライバシーが強化できるようになったことを報告させていただきます。BTCPay Serverは利用者自身で運営できるビットコイン決済ツールで、オープンソース、プライベート、 対検閲性があり、無料という特徴を持ちます。

魔術師たちの発明

P2EPは世界中から集まったビットコイン開発者と研究者がプライバシーと代替性を向上させるために案を出し合った、Blockstreamが2018年に企画したワークショップから生まれました。 代表的な参加者はBlockstreamからAdam Back博士、Matthew Haywood、Tim Ruffing、そして独立系のリサーチャーのAdam Gibson、Adam Fiscor、Dan Gershonyなどで、残りの参加者は匿名希望でした。

一週間にわたり、参加者たちは既存のビットコインにおけるプライバシーを強化する技術を評価し、新しいものをいくつか考えました。最終的に、彼らは新しく生まれ変わったP2EP、またの名を”PayJoin”を思いつきました。

ビットコイナーのプライバシーを取り戻す

ビットコイン・ブロックチェーンは公開されているため、第三者にもビットコインのトランザクション履歴を分析してトランザクション同士の関係を推定することが可能です。これはお金の重要な特性である代替性を低下させ、ユーザーのプライバシーも毀損します。

例えば、とあるビットコインの履歴を一定数のトランザクション遡ることでブロックチェーン解析企業がそのビットコインを「不審」と判定することができます。極端な場合、特定のビットコインが事業者や取引所にとって「受け付け不可」と判断され、持ち主にとって使用することが難しくなる可能性があります。

P2EPの概要

P2EPトランザクションは特殊なCoinJoinです。CoinJoinはGreg Maxwellにより発案された、既存のビットコインの機能のみを使ってプロトコルを変更することなくプライバシーを強化するトランザクションを実現する方法です。CoinJoinは複数の支払い者の送金を1つの大きなビットコイントランザクションにまとめることで、どの送金が誰宛てのものかブロックチェーン解析を行うものに推定されにくくするものです。

P2EPトランザクションの特徴は、送金者と受取人が協力してビットコイントランザクションを構築することです(サトシ・ナカモトによる当初のビットコインの送金方法に似ています)。送金者が単独でウォレットからビットコインを送る通常の送金とは異なり、P2EPトランザクションでは同じトランザクションで受取人も自身にビットコインを送金するので、トランザクションの入力には送金者のものと受取人のものが両方あります。

P2EPトランザクションと通常のビットコイントランザクションの比較

P2EPに対応したウォレットを使うユーザーは、通常のビットコイン送金と同様に支払いを開始することができます。いつもどおり、送金者が受取人の提供するQRコードをスキャンして支払いを開始します。しかし通常のトランザクションとは異なり、送金者のウォレットがQRコードに記載されたP2EPエンドポイントを読み込むと、受取人のウォレットと接続してP2EPトランザクションを自動的に共同で構築します。受取人のウォレットがトランザクションに自身への送金を含めると(この処理はほぼ瞬時に完了します)、送金者はトランザクションに2度目の署名をすることでトランザクションをビットコインネットワークに配信することができます。

P2EPの長所をいくつか挙げると:

  • **双方のプライバシー: **送金者も受取人の両方ともプライバシーが向上します。
  • **特徴がない: **通常の、一定額の送金をまとめたCoinJoinトランザクションとは異なり、P2EPには一目でわかる特徴がありません。通常の送金もP2EPの送金もブロックチェーン上では同じ見た目なので、例えP2EPの実際の利用が少なかったとしても、P2EP以外のトランザクションもP2EPである可能性があるためプライバシーが向上します。
  • **ブロックチェーン解析の仮定を無効化する: **P2EPはブロックチェーン解析における重要な仮定である ‘コモン・ウォレット・オーナーシップ仮定’と、サブセット・サム分析を無効化します。
  • **ブロックチェーンの肥大を軽減する: **受取人がP2EPを使って自身のUTXOセットを小さく保つことで、ビットコイン・ブロックチェーン全体のUTXOセットの肥大化も軽減します。
  • **軽量で万能: **送金者のウォレットがBlockstream Greenのような軽量ウォレットであっても利用することができます。

一方で、P2EPトランザクションを利用する際に意識する必要がある点もあります:

  • **インターネット接続が必要: **送金者と受取人の両方のウォレットがオンラインでなければP2EPトランザクションの構築ができません。接続が確立できなければP2EPではない通常のビットコイン支払いが行われます。
  • **受取人はホットウォレットが必要: **送金者のP2EPトランザクションがスムーズに完了されように、受取人のウォレットは接続を受けた際に自動的にトランザクションに署名できるホットウォレットである必要があります。

BTCPay: P2EP普及の足がかり

P2EPがなるべく早く実装されるように、BlockstreamはBTCPayにおけるP2EP機能の開発に向けて資金を提供し、長年BTCPayに貢献し続けている立派な開発者である”Mr Kukks”氏に協力いたしました。

BTCPay ServerにP2EPが実装された今、BTCPay Serverを使う何万の事業者がP2EPトランザクションを受け付けることができます。事業者にとって簡単にP2EPを使ってビットコインを受け取れるようにすることはビットコインのプライバシーと代替性の問題を解決する重要な一歩となります。

BTCPay ServerのP2EP実装は独立したビットコイン開発者であるRyan Havarによって開発されたbustapayを大幅に改変したものです。BTCPayにおける実装の詳細はこちらから。

事業者にもプライバシーが必要

様々な顧客からのたくさんのトランザクションに接する事業者にとって、取引のプライバシーは特に重要です。事業者のビットコインアドレスを1つでも認識されてしまうと、いずれの顧客にもブロックチェーンを解析することによって事業者の売上や顧客数などの情報を手に入れられてしまう恐れがあります。これは競合他社や犯罪者が欲しがる貴重な情報です。

また、事業者は通常多くの顧客から少額の支払いを受けるためUTXO数が増えてしまいますが、P2EPトランザクションを使用することで低コストでUTXO数を少なく抑えることができます。

P2EPの次の一歩は?

P2EPで実験したいユーザーはBTCPayに内蔵のビットコインウォレットを使ってP2EPに対応しているストアに対して支払いをしてみてください。

BlockstreamではBlockstream GreenにP2EPを実装中で、今後数ヶ月以内にリリースできる予定です。他のプロジェクトではWasabi WalletBlueWalletP2EPの導入を計画中のようです。P2EPの共通規格としての導入は広がりつつあり、BTCPay Serverへの実装がその流れを加速させることに期待しています。

P2EPのようなプライバシー技術が再び個人の独立性と主権性を回復し、いつの日かブロックチェーンの監視が不毛になることに期待しています。

If you have specific preferences, please, mark the topic(s) you would like to read: