tanakei

tanakei

@163

甘いもの大好きメタボ猫。マイペースなのはしょうがない。 nostr:npub10zeurmg22wc89l8m3npw9cyu45cun0lvs6w3ep69cdpa25pna65s0994qz

Package relay がメモプール混雑時のLN送金効率を向上させる

最近のビットコイン手数料の高騰下では、レイヤー2のライトニングでもその影響を受けています。手数料の高騰下ではメモプールが混雑している状態なので、手数料が低い状態でチャネルを閉じようとしてもなかなか承認されません。オンチェーン手数料は常に変動するので、LNではチャネルを閉じるためのトランザクションの手数料もそれに合わせて更新しています。チャネルを閉じる方法は2種類あって、お互いが協調する場合と協調しない場合です。協調的にチャネル閉鎖する場合は、二者間で手数料の交渉を行います。一方、非協調的にチャネル閉鎖する場合は事前に更新された手数料が使われます。この時更新された手数料が適応されるトランザクションをCommitment Txと呼び、二者間の最新の残高がそれぞれアウトプットに割り当てられており署名もされています。このTxは二者間がそれぞれ保存し、どちらかが長時間オフラインになった場合など、協調的にチャネル閉鎖できない場合にブロックチェーンへ送信します。これが非協調的にチャネルを閉じる仕組みです。 LN送金の都度、二者間の残高を更新するためにCommitment Txが更新されますが、それと同時にこのTxの手数料も更新されます。二者間の残高が更新されるわけですが、手数料が増加した場合、送金金額の上限が低くなります。上限値を越えた金額を送金しようとしていた場合、送金が失敗します。具体的には、A - Bのチャネル残高が0.1 - 0.8と手数料0.1の合計1BTCという場合に手数料が2倍に高騰したとします。この時、AがBへ0.1BTC送金しようとすると、手数料を0.2へ更新して、Aの残高から0.1引いてBに0.1足す必要があります。しかし、手数料が0.2になったのでAの残高が0になり送金可能な金額がなくなってしまいます。Commitment Txの手数料を払うのはチャネル開設者で、上記の例はAがチャネル開設者と仮定しています。もしBがAへ0.1BTC送金した場合、0.1 - 0.7と手数料0.2というチャネル残高になります。 上記の理由により手数料の更新ルールupdate_feeを廃除したいという思いがあります。しかしその場合Commitment Txの手数料が低すぎるとブロックに取り込まれません。そのためにAnchorアウトプットと呼ばれるアウトプットがCommitment Txについています。このAnchorアウトプットを使うことでCPFPによる手数料のバンプが可能になります。ただし、CPFPをするには親Tx、この場合Commitment TxがMempoolに存在しないといけません。手数料高騰時にはCommitment TxはMempoolにすら入ることができない場合があります。この問題を解決する仕組みがPackage relayになります。これは関連するトランザクションを1つのパッケージにしてMempoolに送信することができ、そのパッケージ内のトランザクションの平均手数料率が適応されるというものです。これによりCommitment Txの手数料調整を気にする必要がなくなり、低い手数料で非協調的にチャネルを閉じた場合でも、Anch

Popular stories

【Umbrel】BlueWallet Lightning & tailscaleで便利で快適なLightningウォレットを作ろう!

374

【Umbrel】LNURLが使いたいから自分で環境つくってみた

208

【Umbrel】tailscale->UmbrelのSSL接続を中継するラズパイの作り方

142

Archives

2023-05
1posts
2022-12
2posts
2022-10
1posts
2022-09
3posts
2022-07
2posts
2022-06
1posts
2022-05
3posts
2021-11
1posts
2021-04
1posts
2021-01
1posts