Slide 1

Slide 1 text

Silent Payment


Slide 2

Slide 2 text

1 Silent Payment
 Bitcoinのアドレスを公開する際の課題 
 ● 公開アドレスに対して、誰もが支払いできるため、公開アドレスの総受取額が分かる 
 ● アドレスの再利用による、プライバシーのリーク(各支払いのリンク) 
 
 
 
 
 Silent Payment
 アドレスは公開するものの、そのアドレス宛の支払いを識別不能にするRuben Somsenの提案 
 https://gist.github.com/RubenSomsen/c43b79517e7cb701ebf77eec6dbb46b8 
 


Slide 3

Slide 3 text

2 Silent Payment Address
 公開アドレスを作成する受信者は、32バイトの公開鍵を Silent Payment Addressとして公開
 
 
 P = xG
 送信者は、
 1. 支払いに使用するインプット(公開鍵 Q = yG)を選択
 2. P' = H(yP)G + Pを導出し、この公開鍵宛に支払いを行う 
 受信者は、
 1. ブロックチェーン上のトランザクションをスキャンし、 
 2. インプットの公開鍵に対してH(xQ)G + Pを計算し、
 3. 計算結果の公開鍵がアウトプットにあれば、自身への支払いを検知 
 ※ ECDHによりyP = yxG = xQが成立
       ※ インプットが違えば、異なるアドレスが導出される 


Slide 4

Slide 4 text

3 Silent Paymentの利点と欠点
 Silent Paymentの利点
 ● 送信者<->受信者間の対話が不要 
 ● オンチェーンのフットプリントが通常の支払いと変わらない 
 ステルスアドレスやBIP-47(再利用可能なペイメントコード)では、 
 OP_RETURNや通知トランザクションなど、追加のフットプリントが発生する 
 
 Silent Paymentの欠点
 ● UTXOセットのスキャン
 現在のUTXOセットに対して、H(xQ)G + Xの計算がシングルコアで約220分 
 ● フルノードが必要で、軽量クライアントでは利用できない。