本文へスキップ
buybitcoinsmart

用語集 / ノードとソフトウェア

ライトクライアント

別名はLightweight clientです。

ライトクライアントとは?
ライトクライアントとは、ブロックチェーンのコピーを一切保持せず、自分のアドレスに何が起きたかを他人のサーバーに問い合わせるウォレットのことです。

スマートフォンにあるビットコインアプリは、事実上すべてこれに当たります。チェーン全体は2026年8月に759GBを超え、これを携帯端末に保存するのは無理なので、ウォレットはせいぜい数メガバイトのブロックヘッダーだけを保持し、残りは外部に任せます。利便性は確かにありますが、代償も確かにあります。あなたのアドレスを他人が知ることになり、相手の言うことを自分で確認することはできません。

仕組み

ライトクライアントは3つの系統に分かれ、それぞれあなたについて漏らす情報の量が異なります。

最も古い方式は、フルノードに代理で絞り込みをさせます。BIP37では、ウォレットが関心のある内容を記述したブルームフィルターをアップロードし、ピアが該当するトランザクションを、それをブロックに結び付けるマークルプルーフとともに返します。宣伝されていたほどプライバシーが守られたことはありません。2014年に発表された学術研究は、このフィルターが隠すはずのアドレスを漏らしていることを示しました。Bitcoin Coreはバージョン0.19.0(2019年11月リリース)でこの機能をデフォルトで無効にしました。そうしたフィルターを提供することは、ノードのディスクを枯渇させる安易な手段でもあったからです。

最も一般的な系統は、単純にサーバーへ直接問い合わせます。Electrumプロトコルを使うウォレットは、監視する各アドレスの指紋をサーバーに送り、サーバーが履歴と残高を返します。即座に応答し、劣悪なモバイル回線でも動作するため、多くのソフトウェアがこれを利用しています。これは同時に、1つの事業者があなたのコイン、アドレス、接続元のIPアドレスの完全な一覧を握ることを意味します。

最も新しい系統は、絞り込みの向きを逆にします。BIP157とBIP158では、ノードがブロックごとにコンパクトなフィルターを計算して公開し、ウォレットはそのフィルターをダウンロードし、どのブロックが関係ありそうかを自分で判断してからブロック全体を取得します。あなたが何を探しているかを誰にも知られません。Bitcoin Coreは2021年1月のバージョン0.21.0以降、これらのフィルターを提供できます。Neutrinoは、モバイルのライトニングネットワークウォレットの大半が使う実装です。

これらのウォレットの多くは、80バイトのブロックヘッダーの連鎖を保持します。これによってブロックが存在し、プルーフ・オブ・ワークを伴っていることを知ります。ブロックが約960,000個になると、この連鎖の重さはおよそ77MBとなり、スマートフォンには十分小さい一方、そのブロック内のトランザクションが正当だったかを確認するには役に立ちません。

どこで見かけるか

1分以内に初期設定が終わったウォレットを開けば、それはライトクライアントです。

警戒すべき不具合は盗難ではありません。鍵は端末上に残り、サーバーは何も使えず、実際のプルーフ・オブ・ワークを伴う支払いをでっち上げることもできません。サーバーにできるのは黙ることです。受け取った支払いを省略したり、古い残高を見せたり、単に不具合なのではなく悪意がある場合には、実際のノードなら破棄するはずのチェーンをあなたに渡したりできます。そのいずれかを検知するには、ライトクライアントが持たないものが必要です。

改善の道は短いものです。大半のデスクトップウォレットと、いくつかのモバイルウォレットは、公開サーバーの代わりに自分のノードを指定でき、これでプライバシーの漏えいが完全になくなり、すでに購入したハードウェア以外に費用はかかりません。

ライトクライアントvs簡易支払い検証

簡易支払い検証は技術であり、ライトクライアントはソフトウェアの分類です。後者の多くは前者を実装していません。本当の簡易支払い検証とは、プルーフ・オブ・ワークからヘッダーの連鎖を構築し、何かを信じる前にマークル枝をそれと照合することです。Electrumのデスクトップウォレットは、サーバーから得た回答に対してまさにそれを行います。Electrumのサーバーを借りているアプリの多くはそうしておらず、渡された残高をそのまま表示するだけで、宣伝文句に「SPVウォレット」と書かれている場合でも変わりません。自分が使っているのがどちらの種類かを知りたければ、ヘッダーを同期するかどうかを見てください。

混同しやすい用語

よくある質問

ライトクライアントは私のビットコインを盗めますか?

サーバーにはできません。秘密鍵は端末から出ることはなく、サーバーは何かに署名する手段がないからです。サーバーは省略によって偽ることはでき、支払いを隠したり古い残高を見せたりでき、どのアドレスがあなたのものかを知ります。

情報の漏えいが最も少ない軽量ウォレットはどれですか?

BIP157とBIP158に基づくコンパクトブロックフィルターを使うものです。ウォレットがフィルターをダウンロードし、あなたのアドレスをサーバーに伝える代わりに、何を取得するかを端末上で判断するからです。どのウォレットでも自分のノードを指定すれば、漏えいは完全になくなります。

次に読む

関連用語

ノードとソフトウェアのその他の用語

このページを英語で読む