Skip to content

Instantly share code, notes, and snippets.

@ClemensLey
ClemensLey / OP_CHECKDATASIG.md
Last active May 13, 2019 12:23
The is a review of the OP_CHECKDATASIG proposal (https://gist.github.com/Mengerian/d200f8b3a238a256642e498ca796e7c4). The goal of this review is not to change the meaning of the existing proposal, but to improve on the presentation. Comments welcome.

OP_CHECKDATASIG

OP_CHECKDATASIG and OP_CHECKDATASIGVERIFY check whether a signature is valid with respect to a message and and a public key. The message is restricted to exactly 256 bits, if longer messages are to be signed, it is recommended to sign the messages hash.

OP_CHECKDATASIG permits data to be imported into a script, and have its validity checked against some signing authority such as an "Oracle".

OP_CHECKDATASIG and OP_CHECKDATASIGVERIFY are designed to be implemented similarly to OP_CHECKSIG [1]. Conceptually, one could imagine OP_CHECKSIG functionality being replaced by OP_CHECKDATASIG, along with a separate Op Code to create a hash from the transaction based on the SigHash algorithm.

@ClemensLey
ClemensLey / OP_CHECKDATASIG.md
Created July 7, 2018 01:55
This is a review of the OP_CHECKDATASIGVERIFY proposal https://gist.github.com/Mengerian/d200f8b3a238a256642e498ca796e7c4. The goal is not to change the meaning of the existing proposal, but to improve the presentation. Comments welcome.

OP_CHECKDATASIG

OP_CHECKDATASIG and OP_CHECKDATASIGVERIFY check whether a signature is valid with respect to a message and and a public key. The message is restricted to exactly 256 bits, if longer messages are to be signed, it is recommended to sign it's hash.

This permits data to be imported into a script, and have its validity checked against some signing authority such as an "Oracle".

OP_CHECKDATASIG and OP_CHECKDATASIGVERIFY are designed to be implemented similarly to OP_CHECKSIG [1]. Conceptually, one could imagine OP_CHECKSIG functionality being replaced by OP_CHECKDATASIG, along with a separate Op Code to create a hash from the transaction based on the SigHash algorithm.

Verifying that +clemensley is my blockchain ID. https://onename.com/clemensley