CPFPとは

カテゴリ glossary

CPFP(Child Pays For Parent:チャイルドペイズフォーペアレント)とは、手数料が少なすぎて取引できないトランザクションを承認させるためのテクニック・手法です。
ここではビットコインを例に、CPFPの仕組みとともに、それを行う必要がある「おつり」の概念について説明します。
 
ビットコインはブロックチェーンを元に構築されている仮想通貨のため、取引の履歴が全て記録されています。
そのため、例えばAさんがBさんとCさんから1BTCずつ受け取ったとすると、ウォレット上には「1+1=2BTC」と記載されていますが、ビットコインの取引はブロックチェーン上に履歴が保存されるため、合算はされずに「Bさんの1BTC+Cさんの1BTC」という形で記録されています。
 
このときに、AさんがDさんへ1.5BTCを送付したいとしましょう。
Aさんのウォレット内には合計2BTCありますが、先述したようにこれらのビットコインは合算されていません。
なので、AさんはDさんに一旦「Bさんの1BTC+Cさんの1BTC」の計2BTCを送ります。DさんはAさんに「おつり」として0.5BTCを送ります。
Aさんの送金だけでなく、Dさんがおつりとして0.5BTCを返す処理も個別の取引として扱われます。
「おつり」で発生するやりとりは額が小さいことが多く、額が小さいトランザクションを承認して得られる報酬も額が小さいためになかなか取引が進みません。ビットコインの入金(TxIn)や出金(TxOut)では、手数料が発生しますが、この手数料は主にマイニングを行ったマイナーに支払われます。マイナーはより多くの手数料が欲しいと考えるため、端数だけではなかなか取引が進まないのです。
 
そこで、AさんがDさんに1.5BTCを送るときに、2BTCではなく「2.5BTC」を送ります。おつりをトランザクションの中に含めてしまうのです。そうすると、DさんはAさんに「おつり」として1BTC支払うことになります。0.5BTCよりも1BTCのほうが手数料が高くなるため、マイナーもより積極的にマイニングしてくれて、取引がスムーズに進みます。
このような、小さなトランザクションをスムーズに承認させるための手法を「CPDP」と呼びます。
「おつり」を「子ども(Child)」とすると、含めて払うほうが「親(Parent)」なので、このように呼ばれています。

投稿者

Liquid編集部(基礎)