みなさんは普段どのビットコインウォレットを使っていますか?

近年、ビットコインのウォレットはUXの改善が進んでおり、特にモバイル向けのウォレットは機能がシンプルで使いやすいものがたくさん出てきています。これはビットコインの普及のためには歓迎される進歩ですが、その使いやすさの裏側で、中級者以上のユーザーが選択できるオプションやメニューは削られ、細かい設定ができなくなっています。

その結果、例えばモバイルだとZeusやBluewallet、デスクトップだとElectrumかSparrowというふうに上級者向けウォレットは選択肢がかなり絞られています。特にマルチシグや様々なハードウェアウォレットへの対応などの先進的な機能を利用したい場合は、多くの場合デスクトップのウォレットを使わざるを得ない側面もあります。

今日はデスクトップ用のウォレットの中でもビットコイン上級者の定番になっているSparrow Walletについて、その長所を紹介させていただきます。特にビットコインの技術に詳しくなりたい方に一度使ってみていただきたいウォレットです。

Sparrow Bitcoin Wallet
Sparrow is a modern desktop Bitcoin wallet application supporting most hardware wallets and built on common standards such as PSBT, with an emphasis on transparency and usability.
💡
よく似たドメインで偽物の実行ファイルを配布するものが出ているので、何かをダウンロードする場合には公式GitHub、公式Twitterなどでダブルチェックし、細心の注意を払いましょう。

シンプルさではなく、多機能性が売り

Sparrow WalletのUIは控えめに言って華やかなものではありません。コンシューマ向けのアプリというよりは業務用アプリに近い見た目をしています。

しかし、上級者のビットコイナーでもほぼ全員が満足するような機能を揃えている多機能性が最大の売りです。

最初に、ビットコインウォレットでまず確認すべき点の1つである「接続先設定(File>Settings>Server)」から見てみましょう。Sparrow Walletの場合はPublic Server・Bitcoin Core・Private Electrumから選択でき、Tor経由で接続したい場合などはプロキシの設定も入力できます。

Sparrowなどのウォレットは、ぜひ自分で接続先サーバー(ノード)を用意して使おう

プライバシー面で最適なのは自分自身で立てたBitcoin Coreノードや自分自身のElectrumサーバーに対して問い合わせることです。そうしなければ、未使用のものを含むウォレット内の多数のビットコインアドレスを第三者に開示する必要があるのみならず、第三者の返す結果を信用しないといけないためです。自分はUmbrelで立てたElectrumサーバーに接続してみました。

メイン画面右下のトグルスイッチで接続を中断したり再開することもできます。トグルスイッチの色で、接続先がPublic Server・Bitcoin Core・Private Electrumのいずれであるかも一目で確認できます。上のスクリーンショットではPrivate Electrumなので青色になっています。

💡
繰り返しになりますが、資産に関する情報のプライバシーは身の安全に関わるため、なるべく漏らさないことが重要です。しかし、多くのウォレットでは運営者の提供するElectrumサーバー(Public Server)に問い合わせる設定が既定になっています。設定を変更できるウォレットは少なくないため、もしUmbrelなどでノードを立てている場合は、必ずウォレットの接続先に設定してノードを活用しましょう。

さて、接続先設定は他のウォレットにも実装されていることがよくあります。Sparrow Walletの長所がより強く現れる機能を見ていきましょう。

マルチシグが直感的で、大半のハードウェアウォレットに対応

1つはマルチシグウォレットの作りやすさ、使いやすさです。新しいウォレットを作る(File>New Wallet)と、まず識別用の名前を決めるように言われます。その後の画面で、シングルシグあるいはマルチシグウォレットを選べて、マルチシグの場合は様々な設定ができます。

マルチシグウォレットの作成も直感的

例えば上記では一般的な2-of-3マルチシグを作成できますが、スライダーで鍵の数や閾値を変えることができます。それぞれの鍵についてはKeystoresの欄でハードウェアウォレットや他のウォレットに保管されている鍵を登録したり、xpubを読み込んだり、新しいシードフレーズを生成したりできます。Sparrowは基本的にはハードウェアウォレットと組み合わせて使うのがおすすめです。

ほとんどのハードウェアウォレットに対応している

ほとんどのハードウェアウォレット(HWW)に対応しているため、HWWの脆弱性リスクを排除するマルチベンダー・マルチシグ運用もしやすいです。鍵の数だけKeystoresを登録してウォレットを生成すると、PDFやBSMSファイルという形でバックアップできます。(公開鍵のリストが含まれるファイルです)

マルチシグにはそれぞれの鍵以外にDescriptorという「どの鍵たちからなるマルチシグか」という情報をバックアップしておく必要があるので、このPDFやBSMSファイルは消えないように保管しましょう。(これが流出しても資金は盗まれませんが、プライバシーは失われてしまうので誰にでも見れる場所に置くのはやめておきましょう)

なお、個人の場合はガバナンスの問題があるわけではないため、必ずしもマルチシグで保管をする必要はないと思います。ビットコイン研究所でおすすめする保管方法については以下の記事をご覧ください。

【決定版】シードフレーズの安全な保管方法|NG例から分散管理まで
ビットコインのシードフレーズの安全な保管方法を、やってはいけないNG例(デジタル保存)から、紙/金属への手書き記録・物理分散・PIN保護の基本までわかりやすく解説。さらに不安な人向けにパスフレーズ、マルチシグ、シャミア秘密分散の強化策を紹介し、リスクに強い現実的な運用設計を提案します。

Sparrowの送金時のUIもビットコインの学習を進めたい上級者や、プライバシーを守りたいユーザー向けに最適化されています。例えば送金トランザクションを作成する画面では以下のような情報が表示されます。

Sparrowのトランザクション作成画面。下部のトランザクション図解が学習にいい

手数料が設定できるのももちろんのこと、特筆すべきは下の対応図です。左側に「消費されるUTXO」、右側に「新しく生成されるUTXOとマイニング手数料」が表示されます。それぞれSparrow Wallet内のラベルで表示されるほか、マウスオーバーで「Change(同じウォレット宛のお釣り)」などの情報が出てきます。また、デフォルトでは手数料を安く済ませるために最適化されていますが(Efficiency)、Analysisにマウスオーバーするとそのトランザクションがブロックチェーン解析企業にどう見られるかがわかります。

トランザクションのプライバシー面での問題を指摘してくれる。例えばキリのよい数字を送金すると、どの出力が実際の送金なのか高い確率で推測されてしまう

Privacyを選択すると、トランザクションの内容が最大限プライバシーを守る形に作り変えられます。

同じ金額の送金を2つ、お釣りを2ついれることでPayjoin風にカモフラージュ

左側の消費されるUTXOは、それぞれのUTXOのオンチェーンの履歴がかぶらないもの2つに分類されました。右側には本当の送金先アドレスと金額、同じ金額の「フェイク」の送金先アドレス(実際には自分のアドレス)、そしてお釣りアドレス2つが生成されました。これによって、外部からは「2人のユーザーによるCoinjoin(Payjoin)という判定になり、オンチェーンでの追跡がより困難になります。

Payjoinについては以下の記事をご覧ください。

CoinJoinの進化版としてのPayJoin
先日、コロナウイルスの影響もあってかVRが流行しているビットコイナーたち数十名が、Altspace VRというアプリを使って学会発表のようなものを行っていました。そこでのプレゼンテーションはPayJoinというCoinJoinの新形態についてでしたが、興味深い内容でしたので共有させていただきます。ちなみに、このようなイベントの企画が行われているBitcoin VR Degeneratesというテレグラムグループがあるので、参加したい方はどうぞ。 COINJOIN ご存知の方も多いかもしれませんが、CoinJoinとは複数の主体が1つのトランザクションに参加して、outputが誰のコインかわからなくする(混ぜる)ということが目的で行われます。プライバシーを向上することが目的の場合、inputとoutputの金額を比較されても完全には解析されないように、すべての参加者が一定の金額で行うことが多いです(0.1BTC単位のinputを任意の数追加して、出力として同じ数だけ受け取るなど)。そうすると、等しい金額のinputとoutputの対応は確率的にしか判断できません。この過程で問題視され

もちろん送金手数料はトランザクションが大きい分かかってしまいますが、手動でこのようなトランザクションを作ると小さなミスによってプライバシーが得られなくなってしまうので、自動的にいい感じにトランザクションを作ってくれるのは非常に強力な機能です。もちろん、使いたくないUTXOが左側にあった場合はマウスオーバーすると削除ボタンが表示されるので、いわゆる手動でのコインコントロールも可能です。

Silent Paymentsにも対応

Sparrow Walletは多くのウォレットがまだ対応していない先進的な機能にも対応していたりします。例えば今回の記事のきっかけとなったのは、Silent Paymentsによるステルスアドレスへの送金だけでなく、受け取りにも対応したことです。(ただし、前提条件としてFrigateなどSilent Paymentsに対応したElectrum Serverが必要になります)

GitHub - sparrowwallet/frigate: Frigate Electrum Server
Frigate Electrum Server. Contribute to sparrowwallet/frigate development by creating an account on GitHub.

FrigateはSparrow Walletが用意した、Silent Payments対応のElectrumサーバー

ウォレット作成画面でSingle Signature SPを選ぶとSilent Paymentsで受け取れるウォレットが作成できます。以下は適当に新しいシードフレーズを生成して作った場合の画面ですが、ハードウェアウォレットなども今後HWW側のアップデートなどにより利用できるようになります。spscanで始まる文字列はElectrum Serverがブロックチェーンのスキャンに利用する公開鍵です。

Silent Paymentsのウォレットを生成できるようになった。HWW対応はこれからに期待

受け取りの画面にいくと、sp1で始まるSilent Payment addressとQRコードが表示されます。再使用可能で、送る側のユーザーがSilent Paymentsに対応していればこれを使って何度でも新しいビットコインアドレスを生成してもらえます。もちろんSilent Paymentsに対応していないユーザーからは送金を受け取ることはできません。

Silent Paymentsのアドレスはsp1~で始まる

Silent Paymentsは今後普及するかどうか気になるプロトコルの1つです。取引所の入金に使われれば、入金アドレス再使用によるプライバシー問題が大きく改善することに期待できます。

Lightning Networkには非対応

逆にSparrow Walletが対応していない機能でいうと、ライトニングには対応していません。現時点ではあくまでオンチェーン用のウォレットとなっています。なので、普段使いというよりは、大きな金額やハードウェアウォレットを扱うためのものだと考えて問題ないでしょう。

ビットコインの技術やプライバシーを学ぶのにうってつけ

このように、Sparrow Walletはプライバシー関連の先進機能があるだけでなく、ビットコイントランザクションの構造、ウォレットの生成や使用手順、ハードウェアウォレットの連携、マルチシグなど、様々なビットコインの技術に詳しくなれるウォレットです。向上心のある皆様はぜひ、Umbrelなどを使ってElectrumサーバーを用意して触ってみてください。

Sparrow Walletに搭載されているプライバシーの自動最適化機能などは他のウォレットでも使えるようになってほしいものです。

💡
繰り返しの注意喚起となりますが、Sparrow Walletの公式サイトによく似た偽物サイトがあります。.comが本物ですが(.netにはアクセスしないように!)、公式のGitHubやTwitterなどでダブルチェックしてからダウンロードやビルドを行うようにしてください。
https://www.sparrowwallet.com/