プライベートチャンネルの特性

1. ネットワークへの非公開性

項目公開チャンネルプライベートチャンネル
アナウンスネットワーク全体に配信配信されない
発見可能性誰でも確認可能当事者のみ知る
ネットワークグラフ含まれる含まれない

2. ルーティングの制限

主な制限事項

  • 直接支払いのみ可能 - 第三者はこのチャンネルを経由できない
  • ルーティング収益なし - 転送手数料を稼げない
  • 受信時の例外 - インボイスにルーティングヒントを含めれば受信可能

3. プライバシーの向上

プライバシー面でのメリット

  • チャンネル容量の秘匿 - 外部から残高が見えない
  • 取引の秘匿性 - チャンネルの存在自体が隠される
  • UTXOとの関連付け困難 - オンチェーン資金とノードの関連が分かりにくい

プライバシーの脆弱性

  • ⚠️ インボイス経由の情報漏洩 - ルーティングヒントでチャンネルIDが露出
  • ⚠️ プロービング攻撃 - 偽の支払いハッシュで存在を探知可能
  • ⚠️ オンチェーン分析 - ファンディングトランザクションは見える

4. 技術的制約

GetChanInfoの失敗例

// プライベートチャンネルではグラフ情報が取得できない
r, err := l.lndClient.GetChanInfo(context.Background(), &lnrpc.ChanInfoRequest{
    ChanId: chanId,
})
if err != nil {
    // Ignore err because channel graph information is not always set.
    return maxHtlcAmtMsat, nil
}

ListChannelsでの取得

// PublicOnly: false, PrivateOnly: false で両方取得
r, err := l.lndClient.ListChannels(context.Background(), &lnrpc.ListChannelsRequest{
    ActiveOnly:   false,
    InactiveOnly: false,
    PublicOnly:   false,  // プライベートチャンネルも含む
    PrivateOnly:  false,  // 公開チャンネルも含む
})

5. PeerSwapへの影響

メリット 👍

  • ルーティング制限の影響なし - 直接ピア間でのみ動作
  • 高いプライバシー - スワップ操作が外部から見えない
  • ポリシー変更不要 - チャンネル更新のアナウンス不要

課題 ⚠️

  • チャンネル情報の取得困難 - max_htlc等のパラメータが不明
  • ピア発見の困難 - PeerSwap対応ピアを見つけにくい
  • 流動性評価不可 - ネットワーク全体の状況が把握できない

6. まとめ

プライベートチャンネルは以下のトレードオフを持つ:

プライバシー向上 ⬆️
ルーティング機能 ⬇️

PeerSwapとの相性: ✅ 良好

  • 直接ピア間の操作なのでルーティング制限は問題にならない
  • プライバシー重視のユーザーに適している