-
Notifications
You must be signed in to change notification settings - Fork 2
Signatures
BitVM requires restricting the usage of parameters in certain parts of the Bitcoin script, so that they can only be provided by the owner of a certain private key (denoted as the secret key in the code). To achieve this, it utilizes the Winternitz One-Time Signature Scheme. One-Time Signature Schemes allow one to publish a public key beforehand to confirm that a message sent later is signed by them. As the name suggests, signing multiple messages with the same private-public key pair can lead to forgery and security threats; for that reason, they are used with caution in BitVM.
In order to sign a message consisting of
Signing, checking and integration with hash functions of this procedure for Bitcoin script are implemented with minor changes in BitVM in various ways, as each approach is more efficient depending on the message size and the stack depth limit. For more details, you can refer to the comments in the code.