Blocknet が支払いをプライベートに保つ仕組み

· 9 分で読めます

この記事では、Blocknet とは?のプライバシーの概要よりも踏み込んで、Blocknet のトランザクションにおけるプライバシーの各レイヤーについて、何を隠すのか、どう機能するのか、次に BNT を送ったり受け取ったりするときに何を意味するのかを説明します。

Blocknet はどのように支払いをプライベートに保っていますか?

簡単な答え

Blocknet は、16 のアウトプットにわたる CLSAG リング署名で送信者を、使い捨てステルスアドレスで受信者を、ペダーセンコミットメントと Bulletproofs の範囲証明で金額を隠します。Dandelion++ による中継はトランザクションがネットワークに入った場所を隠し、すべてのアウトプットには 128 バイトの暗号化メモが付きます。これらはすべて必須で、透明なモードはありません。

Blocknet は Monero と同じ実績ある暗号技術のファミリーを使っています。リング署名、ステルスアドレス、Bulletproofs の範囲証明で、Curve25519 上の Ristretto 群をもとに構築されています。さらに、名前での支払いと暗号化メモを加えています。各レイヤーが支払いの異なる部分を守り、組み合わさることで、チェーンを読む人が手がかりにできるものはほとんど残りません。

リング署名が支払った人を隠す

コインを使うとき、ウォレットは 16 のアウトプットからなるグループに対して署名します。自分が所有するアウトプット 1 つと、デコイとしてチェーンから選んだ 15 のアウトプットです。この署名は CLSAG リング署名です。リングのメンバーの 1 人が署名したことは誰でも検証できますが、それが誰かは署名からはわかりません。

リングサイズはコンセンサスで強制されます。すべてのインプットはちょうど 16 のリングメンバーを持たなければならず、それぞれがすでにチェーン上にある本物のアウトプットである必要があり、ネットワークはそれ以外を拒否します。ネットワーク上のすべてのインプットが同じサイズを使うので、リングサイズからトランザクションやそれを作ったウォレットが割り出されることはありません。デーモンのコードでは、このサイズを「可変リングサイズによる情報漏洩を防ぐため」に固定しています。

同じコインが二重に使われないよう、各インプットにはキーイメージも付きます。キーイメージは使われる本物のアウトプットに固有ですが、それがどのリングメンバーかは明かしません。同じキーイメージが 2 回現れると、ネットワークはそのトランザクションを二重支払いとして拒否します。

ステルスアドレスが支払いを受けた人を隠す

Blocknet アドレスには、スペンドキーとビューキーという 2 つの公開鍵が含まれます。誰かがあなたに支払うと、相手のウォレットはあなたの鍵と新しい乱数を組み合わせて、そのアウトプット専用の使い捨てアドレスを作ります。あなたが共有したアドレスがチェーン上に現れることはありません。

あなたのウォレットは秘密ビューキーで新しいトランザクションをスキャンして自分のアウトプットを見つけ、後でスペンドキーでそれを使います。同じアドレスへの 10 回の支払いは、互いに無関係な 10 の使い捨てアドレスに届くので、第三者がアドレスの受取総額を合計したり、2 つの支払いが同じ人宛てだと判断したりすることはできません。

Blocknet ID の名前でも同じです。@name のようなショートネームは、送信者が blocknet.id で検索して支払うためのものなので、もともと公開されています。それでも名前宛ての支払いは新しい使い捨てアドレスに届くので、名前からあなたが受け取った内容がわかることはありません。

Blocknet はどのように取引金額を隠していますか?

金額はペダーセンコミットメントとして保存されます。コミットメントは数値を見せずに確定させるもので、足し合わせることができます。そのため、すべてのノードは金額を一切知ることなく、トランザクションのインプットがアウトプットと手数料の合計に等しいことを確認できます。

コミットメントだけでは負の金額を隠せてしまい、無からコインを生み出せることになります。そこで各アウトプットには、その金額が 0 から始まる 64 ビットの範囲内にあることを示す Bulletproofs の範囲証明が付きます。この証明はすべてのノードに金額が有効であることを納得させ、それ以外は何も明かしません。

受信者には実際の金額が見えます。受信者のウォレットは、アウトプットを見つけるのに使うのと同じ共有秘密で金額を復元するので、金額が見えるのは支払いに関わる 2 人だけで、ほかの誰にも見えません。

Dandelion++ がトランザクションの発信元を隠す

ノードが自分のトランザクションをすべてのピアへ一斉に知らせると、多数のノードを監視している人は、誰が最初に受け取ったかを見て発信元を推測できてしまいます。Blocknet はこれを防ぐため、Dandelion++ でトランザクションを中継します。

新しいトランザクションはまず「ステム」に沿って進み、あるピアから次の 1 つのピアへと渡されます。各ホップでは 90% の確率でステムに沿って進み続け、そうでなければ「フラフ」してその地点からネットワーク全体に広がります。ほとんどのノードがトランザクションを目にする頃には、あなたのノードから何ホップも離れているかもしれないノードから来たように見えます。ステムの経路は 10 分ごとに組み替えられます。

Blocknet のメモを読めるのは誰ですか?

すべてのアウトプットには、最大 124 バイトのテキストを入れられる 128 バイトの暗号化メモが付きます。そのアウトプットについて送信者と受信者が共有するのと同じ秘密で暗号化されるので、読めるのは 2 人だけです。請求書番号、注文番号、支払い相手への短いメッセージなどに使えます。メモの付け方と受け取ったメモの確認場所は、暗号化メモのガイドで説明しています。

メッセージをいっぱいに書いても何も書かなくても、メモは常に同じサイズです。メモが短いか空の場合、ウォレットは暗号化の前に残りをランダムなパディングで埋めるので、メッセージ付きのアウトプットはメッセージなしのものとまったく同じに見えます。メモが目立つことはなく、ほかの人にはどの支払いにメッセージが入っているかさえわかりません。

Blocknet のプライバシーは任意ですか?

簡単な答え

いいえ。Blocknet ではプライバシーは必須です。トランザクション形式に透明なモードはなく、コンセンサスはすべてのインプットにちょうど 16 メンバーのリングを求めるので、すべての支払いがリング、ステルスアドレス、秘匿された金額、暗号化メモを使います。誰も無効にできないため、プライベートな支払いはチェーン上のほかのすべての支払いと同じに見えます。

プライバシーが設定項目だと、それを有効にした人たちは見分けやすい小さなグループになってしまいます。Blocknet ではすべてのトランザクションが同じ方法で作られるので、どれもほかのすべてのトランザクションに紛れ込み、支払いを守るために何かを覚えておく必要もありません。

誰かに支払うときに意味すること

アドレスや @name 宛てに BNT を送ると、ウォレットがすべてのステップを自動で処理し、有効にする設定は何もありません。

  1. チェーンから 15 のデコイを選び、16 のリングでインプットに署名します。
  2. 受信者のために新しい使い捨てアドレスを作ります。
  3. 金額をコミットメントにし、範囲証明を付けます。
  4. メモを暗号化します。メモが空の場合はランダムなパディングを暗号化します。
  5. トランザクションを Dandelion++ に渡して中継します。

チェーンを読む人に見えるのは、それぞれ 16 の候補アウトプットを指すインプット、誰も見たことのない使い捨てアドレスに送られたアウトプット、金額の代わりのコミットメント、そしてランダムに見えるバイト列のメモ欄です。支払いを受けた人は、自分のウォレットで支払い、金額、あなたのメッセージを確認できます。

最初の BNT を手に入れたいなら、自分のコンピューターでマイニングできます。マイニングガイドを読めば数分で seine を bntpool.com で動かせ、アドレスや @name 宛てに直接マイニングできます。

Faraday アップグレードで次に来るもの

blocknetcrypto.com によると、Blocknet は Faraday というネットワークアップグレードを予定しており、2027年2月16日 ごろの有効化を計画しています。サイトには、プライバシーをさらに高める 2 つの変更が挙げられています。

サイトによると、Faraday で新しいコインが発行されたり再ローンチが行われたりすることはなく、これまでの履歴もそのまま残ります。設計、テスト、敵対的な検証が進行中で、日程は確定ではなく計画段階のものなので、最新情報は blocknetcrypto.com でご確認ください。

よくある質問

Blocknet はデフォルトでプライベートですか?

はい。Blocknet のすべてのトランザクションは、16 のアウトプットにわたるリング署名、受信者ごとの使い捨てステルスアドレス、Bulletproofs の範囲証明による金額の秘匿、そしてすべてのアウトプットに付く 128 バイトの暗号化メモを使います。トランザクション形式に透明なモードはないので、有効にする設定もなく、支払いがこれらの保護を省くこともできません。

Blocknet のリングサイズはいくつですか?

Blocknet のトランザクションの各インプットは、ちょうど 16 のアウトプットからなる CLSAG リングで署名されます。本物のアウトプット 1 つと、チェーンから選んだ 15 のデコイです。コンセンサスはそれ以外のサイズを拒否し、リングの各メンバーはすでにチェーン上にある本物のアウトプットでなければなりません。すべてのインプットが同じサイズを使うので、リングサイズから特定のウォレットが割り出されることはありません。

Blocknet のメモを読めるのは誰ですか?

送信者と受信者だけです。各メモはそのアウトプットについて 2 つのウォレットが共有する秘密で暗号化され、チェーン上では常にちょうど 128 バイトを占め、最大 124 バイトのテキストを入れられます。短いメモや空のメモはランダムなパディングで埋められるので、ほかの人にはどの支払いにメッセージが入っているかわかりません。

自分の Blocknet アドレスがいくら受け取ったか、他人に見られますか?

いいえ。アドレス宛ての支払いはすべて新しい使い捨てステルスアドレスに届くので、共有したアドレスの下に支払いをまとめることはできません。金額は範囲証明付きのペダーセンコミットメントとして保存されるので、チェーンには各アウトプットの金額が表示されません。支払いを見つけて合計できるのは、秘密ビューキーを使うあなたのウォレットだけです。

Blocknet は Monero と同じ暗号技術を使っていますか?

Blocknet は Monero と同じ実績ある暗号技術のファミリーを使っています。16 のリングによる CLSAG リング署名、使い捨てステルスアドレス、Bulletproofs の範囲証明付きのペダーセンコミットメント、Dandelion++ によるトランザクションの中継です。さらに、Blocknet ID のショートネームによる名前での支払いと、すべてのアウトプットに付く 128 バイトの暗号化メモを加えています。