跳至主要內容
進階

Static Remote Key 靜態遠程密鑰

了解閃電網路的 static_remotekey 功能,如何簡化資金恢復流程。

8 分鐘

什麼是 Static Remote Key?

static_remotekey 是一個通道功能,確保對方的 to_remote 輸出始終支付到固定地址。 這大大簡化了數據丟失後的資金恢復。

功能位: option_static_remotekey(bit 12/13)現在是大多數實現的預設功能。

傳統 vs 靜態密鑰

傳統方式(無 static_remotekey):

to_remote 輸出腳本:
每個承諾交易使用不同的密鑰:
remote_pubkey = payment_basepoint +
                SHA256(per_commitment_point || basepoint) × G

問題:
• 需要知道 per_commitment_point 才能花費
• 數據丟失 → 不知道哪個承諾被廣播 → 無法花費

使用 static_remotekey:
to_remote 輸出始終使用:
remote_pubkey = payment_basepoint(固定不變)

優點:
• 只需要種子就能派生 payment_basepoint
• 不管哪個承諾被廣播都能花費
• 支持標準 HD 錢包掃描

承諾交易結構

使用 static_remotekey 的承諾交易:

Alice 持有的承諾交易:
輸入:funding_outpoint

輸出:
├── to_local(Alice):
│   OP_IF
│     <revocationpubkey>
│   OP_ELSE
│     <to_self_delay> OP_CSV OP_DROP
│     <local_delayedpubkey>
│   OP_ENDIF
│   OP_CHECKSIG
│
└── to_remote(Bob):
    <bob_payment_basepoint> OP_CHECKSIG
    ^^^^^^^^^^^^^^^^^^^^^^^^^
    固定密鑰!Bob 只需種子就能花費

恢復場景

數據丟失恢復流程:

場景:Bob 丟失所有通道數據
1. Bob 用種子恢復錢包
2. 派生 payment_basepoint
3. 聯繫 Alice(通過 SCB 中的資訊)
4. Alice 廣播她的承諾交易
5. to_remote 輸出直接支付到 Bob 的固定密鑰
6. Bob 可以立即花費(無時間鎖)

鏈上掃描恢復:
使用 static_remotekey:
• 錢包可以掃描派生地址
• 找到任何支付到這些地址的輸出
• 不需要知道具體的通道狀態
• 類似標準比特幣錢包恢復

與 Anchor 結合

現代通道同時使用 static_remotekey 和 anchor_outputs。

Taproot 演進

Simple Taproot Channels 繼續使用靜態密鑰概念。

相關資源

已複製連結
已複製到剪貼簿