latest-revision | original-author | created | status | title | contributors | type | description | discussions-to | category |
---|---|---|---|---|---|---|---|---|---|
2019-01-27T00:00:00.000Z |
Ryan Shea (ryan-shea) |
2019-01-01T00:00:00.000Z |
Accepted |
Digital Signatures |
Ryan Shea (ryan-shea); Gareth James (gjradar) |
article |
GitHub URL |
bitcoin-basics |
A digital signature is a mathematical concept used to demonstrate the authenticity of a digital document. A valid digital signature gives a recipient reason to believe that the message was created by a known sender (authentication), that the sender cannot deny having sent the message (nonrepudiation) and that the message was not altered in transit (integrity).
A digital signature consists of two parts. The first part is an algorithm for creating a signature, using a private key (the signing key), from a message (the transaction). The second part is an algorithm that allows anyone to verify the signature, given also the message and a public key.
The digital signature algorithm used in Bitcoin is the secp256k1 Elliptic Curve Digital Signature Algorithm.
Digital signatures are an integral element of the multi signature holder address created in the establishment of a channel. Two verified digital signatures are required to create the channel, as well as initiate the closing transaction. Signatures are also essential to the Hashed Timelock Transfer Contract, or HTLC, a smart contract that enables payments to be routed across the Lightning Network.
Digital Signatures (Wikipedia)
Digital Signatures (Mastering Bitcoin)
Signature Hash Types (SIGHASH)