watch tower

Lightning Networkは周辺技術が多い。こういう技術が補完して成立する経済圏なわけで、抑えていく。
watch towerはまだBOLTには追加されていない仕様である。

lightning networkの問題

payment channel間の不正を如何に防いでいるかと言うと、ざっくり下記のようなスクリプトを使うことで、相手が悪意ある古いトランザクションをbloadcastしても無効化することにある。

OP_IF  
    <revocation-pubkey>
OP_ELSE  
    "24h" OP_CSV OP_DROP
    <公開鍵>
OP_ENDIF  
OP_CHECKSIG  

だけど、これの問題は、知らない間に"24h"が過ぎてしまうと、このトランザクションが成立してしまうことだ。 このようなケースが想定されるのは、常時オンラインとは限らない一般的なデバイスの場合となる。

watch tower

Watchtower Wire Messagesがそのpull requestに当たる。 まだmainnetでは使うべきではない機能。

“watchtowers” will monitor the blockchain for invalid channel transactions. Typically, Lightning nodes need to be online in order to protect against these events, but watchtowers provide this protection for nodes that have intermittent connectivity, e.g. mobile phones.

この仕様においては、light clientは新しいtxを作成するたびにwatchtowerにもtxを送り、もし不正なトランザクションが発生したらwatchtowerがそれを打ち消すtxをbloadcastする。
その手数料もwatch towerは得ることができる。

細かい仕様はまた別で追うとして、これ、今実装されていない状態ではどうなっているんだ・・・?