ビットコインで寄付を受け付けたいとき、ウェブサイトなどにビットコインアドレスを公開することが一般的です。この方法のメリットはどのウォレットでも必ず使えること、送金する際に相手との通信等が不要なこと(新しいアドレスを発行してもらう必要がない)、アドレスを生成して貼り付けるだけというシンプルさです。また、場合によっては集まった金額を見てもらいたいという場合もあるでしょう。
一方で、集まった金額の透明性はそのアドレスに対する送金がすべて見れてしまうことの裏返しです。このため、特定の団体に寄付したユーザーのトランザクションを辿って本人を特定したり、逆にその団体の資金の流れを追って取引所等の口座を凍結することができてしまいます。
この問題の解決方法はBIP47、寄付の両側でのミキシング等いくつかありますが、今日はそれらと比較してシンプルさが際立つ"Silent Payments"という新しいものを解説します。
仕組み
送金を受け付けたい者は32バイトの公開鍵X = x*Gを「サイレントアドレス」として公開します。
送金したい者はサイレントアドレスを見て、自身の持つUTXOから送金に使うものを1つ以上選びます。このうち1つの公開鍵をI = i*Gとします。