LoginSignup
2
0

More than 5 years have passed since last update.

Lightning Network に必要だったらしいSIGHASH_NOINPUT について

Last updated at Posted at 2017-10-14

何に使うのか

Lightning Network、乃至 Bidirectional Payment Channel では、最初に Funding Transaction(あるいは Opening Transaction) と行って、チャネルの参加者二人がそれぞれデポジットを行うようなトランザクションを作成します。詳細は省きますが、Funding Transaction作成以後、それを用いてマイクロペイメントを行います。

Funding Transaction の output は 2-of-2 のマルチシグ(二人共が署名を行わなければ引き出せないようなscript )を用いているのですが、Funding Transaction に署名をしてブロードキャストしてしまった後、もし2者のどちらかが裏切ればそのBitcoin は永遠に引き出せなく成るという問題があります。そのため、実際には Funding Transaction の output を参照するようなトランザクションを作成します。

しかし、SegWit 以前は、未承認のtransaction output を input として次のトランザクションに参照することはBitcoin のプロトコル上不可能でした。トランザクション展性という問題があったからです。SIGHASH_NOINPUT という新しいSIGHASHを用いれば、txid が改ざんされたとしてもトランザクションの有効性が失われない、ってことで提案されていたそうですが、今やSegWit のお陰でtxid を書き換えられる危険性はなくなったので必要なくなってしまったようです。さらに、SIGHASH_NOINPUTには、アドレスの再利用の際にリスクがあるようです。

仕組みについて

情報が英語でも少なすぎてまだわかりません。どこに署名するんだろう。

参考

ほわいとぺーぱー

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0