見出し画像

SIGHASHを理解する

このnoteは以下の方に向けて書いています。
✅ デジタル署名(digital signature)について知りたい方
✅ 署名にはどのような種類があるのか?(signature type)
✅ そもそもSIGHASHとは?

デジタル署名

Bitcoinの取引ではデジタル署名によってその正当性が保証されています。
デジタル署名とは、その名の通りデジタル上での署名を指します。実際の書類などで署名をするわけでは無いことが重要です。
デジタル署名では公開鍵暗号方式を採用しています。細かい部分はすでに分かりやすく解説されている他の記事に任せてざっくりと解説していきます。
理解には公開鍵秘密鍵だけ知っておけば大丈夫です。

秘密鍵
内容を暗号化するためのもの。送信者が保管しておく

公開鍵
暗号化されたものを復元するためのもの。送信者が外部に公開し受信者に送付しておく。

https://biz.moneyforward.com/contract/basic/799/#i
https://signyourdoc.com/wp-content/uploads/2018/12/what-is-digital-signature.png

Signature Type

一口に署名と言ってもいくつか種類があります。トランザクション全体に対して署名を行うのか一部に行うのか。範囲を規定しているフラグがSIGHASHと呼ばれるものです。

トランザクションとは?

Bitcoinのトランザクションとは入力と出力に関する情報を指します。トランザクションIDやいくら入力してどのような分配として出力するのか、などが含まれています。

三つのSIGHASH

いくつかSIGHASHが存在しますが、ここでは基本の4つについて説明します。
SIGHASH_ALL:全てのトランザクション情報に署名すること
SIGHASH_NONE:トランザクションの入力情報にのみ署名する
SIGHASH_SINGL:入力情報と入力インデックスと一致する一つの出力情報に署名する。
SIGHASH_ANYONECANPAY:特定のインプットインデックスに紐ずく入力情報にのみ署名する

感想

書いたはいいもののSIGHASHの細かい部分に関して理解できていないので深ぼっていきたい。


$${英文記事を中心に書いていますので間違いを含む可能性があります。}$$

$${ご了承ください}$$

参考記事:
https://raghavsood.com/blog/2018/06/10/bitcoin-signature-types-sighash
https://btcinformation.org/en/glossary/signature-hash
https://wiki.bitcoinsv.io/index.php/SIGHASH_flags

この記事が気に入ったらサポートをしてみませんか?