OP_CHECKSIG (and OP_CHECKSIGVERIFY) takes a DER-encoded pubkey and aOn Thu, Jan 15, 2015 at 1:17 AM, Matt Whitlock <bip@mattwhitlock.name> wrote:
> On Wednesday, 14 January 2015, at 3:53 pm, Eric Lombrozo wrote:
>> Internally, pubkeys are DER-encoded integers.
>
> I thought pubkeys were represented as raw integers (i.e., they're embedded in Script as a push operation whose payload is the raw bytes of the big-endian representation of the integer). As far as I know, DER encoding is only used for signatures. Am I mistaken?
DER-encoded signature on the stack.
Possibly you're confused with OP_HASH160 <hash160> OP_EQUALVERIFY as
used in outputs, which compares the 160-bit hash of the pubkey against
the given hash (usually taken from a bitcoin address).
It doesn't help understanding to consider either as integers. They are
binary blob objects with either a fixed format (DER) or a fixed size
(hashes).
Wladimir