People who code: we want your input. Take the Survey

Questions tagged [signature]

This tag should be used for questions regarding digital signatures. A digital signature proves that the owner of a private key produced or endorsed a given message. These are used in transactions to prove that an output can be spent in a transaction.

Filter by
Sorted by
Tagged with
10
votes
2answers
6k views

How does the ECDSA verification algorithm work during transaction?

I understand the basic concept ECDSA where if Bob wants to sign a message it generates a random number n, multiply it with the secp256k1, r = the x value , s = (H(x)dr)*n^-1 mod q. Also the ...
15
votes
3answers
6k views

How to sign a transaction with multiple inputs?

I have been able to program an application in python that sends valid transactions that spend 1 input, but I really can't get it to work with 2 or more inputs. So my question is, how exactly is the ...
19
votes
1answer
12k views

Why the signature is always 65 (1+32+32) bytes long?

A signature created by the Bitcoin-Qt client can always be decoded (base64) to a 65-byte array. This array seems (according to https://github.com/bitcoin/bitcoin/blob/master/src/key.cpp#L217) to ...
16
votes
1answer
20k views

How does “Sign Message” work?

How does "Sign Message" option in the Bitcoin QT client work? I can't find any description or documentation of it. Do I have to use this option to sign some message when I receive bitcoins? If so, ...
7
votes
1answer
549 views

Why is there no such thing as a redirected, forged, or fake transaction?

In the past, we had numerous questions about "fake" or "forged" transactions. Such transactions could supposedly be created even without holding any bitcoins, yet would end up in the mempool or even ...
4
votes
3answers
909 views

Why does Bitcoin uses a Script language?

From what I heard is that Bitcoin use Script to verify transactions (I'm probably wrong). Wouldn't be sufficient just signing the transaction with the private key and append the signature to the ...
9
votes
3answers
20k views

ECDSA Signature and the “z” value

The following link contains details on how to reverse the ECDSA signature if given two identical "R" values. http://www.nilsschneider.net/2013/01/28/recovering-bitcoin-private-keys.html I have read ...
10
votes
3answers
6k views

What is a step by step way to insert data in OP_RETURN?

I was following https://bitcointalk.org/index.php?topic=453086.0 for creating a message in OP_RETURN. I am able to decode my raw transaction, but on signrawtransaction it gives error: {"code":-22,"...
36
votes
3answers
19k views

ECDSA: (v, r, s), what is v?

Deterministically signing a Tx with RFC6979 returns v, r, s, where r and s are the 2 values used in standard ECDSA signatures. v = 27 + (y % 2), so 27 + the parity of r, as pybitcointools indicates. ...
10
votes
3answers
7k views

parsing bitcoin input and output addresses from scripts

can someone walk me through the process of combining script inputs and outputs to reveal the base58 encoded input and output addresses. take for example, block 728. this has two raw script inputs: ...
18
votes
2answers
14k views

ECDSA r, s encoding as a signature

An ECDSA algorithm when signing a given messages produces a pair of outputs, r and s. How, given a sigStr from a Tx can one extract r and s? Are they just concatenated byte arrays of a specific length,...
7
votes
1answer
4k views

How to sign raw transaction given a private key and SHA hash (in java)

I have followed the instructions here to build my own bitcoin transaction. Redeeming a raw transaction step by step example required Currently my code can create a transaction and compute the SHA ...
4
votes
1answer
4k views

How is a transaction's output signed?

In a transaction Tx, the hash pointer of the earlier transaction (say TxE) that serves as input to Tx must be signed by the sender S of Tx. This is to show that S was the recipient of TxE. It remains ...
3
votes
1answer
81 views

What does signing a transaction mean?

What do people exactly mean when they say the person "signs" the transaction to transfer bitcoins? Is it decrypting the previous output with your private key and encrypting it with the new ...
2
votes
2answers
3k views

Signing transaction with SSL - private key to PEM

Given a private key: 3cd0560f5b27591916c643a0b7aa69d03839380a738d2e912990dcc573715d2c, And a tx hash: 456f9e1b6184d770f1a240da9a3c4458e55b6b4ba2244dd21404db30b3131b94, I would like to sign, using SSL ...
6
votes
2answers
5k views

How to sign a message using Bitcoin private key?

How does one create a proper signature for a given message using Bitcoin private keys? I have an input address of 5JeWZ1z6sRcLTJXdQEDdB986E6XfLAkj9CgNE4EHzr5GmjrVFpf or ...
3
votes
1answer
605 views

Why is scriptSig filled with scriptPubKey before signing a transaction?

I'm checking the transaction signing as described here Redeeming a raw transaction step by step example required. What is the reason for steps 5 and 6: temporarily filling scriptSig with scriptPubKey ...
6
votes
1answer
1k views

How is Public Key extracted from (message, digital signature, address)

I'm under the impression that a public key is revealed when you sign a message. Given these 3 inputs. P2PKH Address, Digital Signature, Message. Is the public key exposed? If so, how do you extract ...
8
votes
3answers
2k views

Where does the random number come in to play when signing a transaction?

Just given all the news about this topic lately (Android security flaw), I'm curious about WHERE and WHY the random number is used during the signing of a transaction. I always thought a transaction ...
5
votes
1answer
113 views

Isn't bribe smearing possible because no payee signature is required?

The Bitcoin protocol does not require the payee to sign for a payment; only the payer signs (the payer signs a hash of the payee and payer's public keys). In other words, a payee signature is not ...
5
votes
1answer
270 views

ScriptSig content during signature (quadratic hashing)

As far as I know, the quadratic hashing problem came from the fact that every time a transaction is verified (or signed), the "unsigned transaction" that is hashed and verified changes depending on ...
2
votes
1answer
882 views

How does the transaction signature prevent transaction duplication?

Let's say that Alice sends 1 BTC to Bob. We have then a signature of (Alice sends 1 BTC to Bob) with Alice private key. What prevents Bob from duplicating this exact same transaction and sending it to ...
1
vote
1answer
2k views

How can I verify the the PGP signature of bitaddress.org?

bitaddress.org appears to have a versioning system and a PGP signature to confirm the source code hasn't been hacked. If I save the source code for the page (so I can run it on an offline computer), ...
2
votes
2answers
2k views

How can I fix this: (Non-canonical signature: S value is unnecessarily high)

I've written a small script that will create a bitcoin transaction from scratch, using an ECDSA library. It works, but sometimes I get this error: 64: non-mandatory-script-verify-flag (Non-canonical ...
0
votes
2answers
520 views

Difference between Sign Message and Sign Transaction

Using "Sign Message" one can prove ownership of an address. This happens by signing a human-readable string using the private key belonging to the address. The owner then provides the address, message ...
25
votes
3answers
5k views

What are the implications of Schnorr signatures?

Adam Back (adam3us) explained in March, 2014, but it is all math. There's another short post with advantages, though. This answer on crypto.SE claims that Bitcoin considered using Ed25519 which is ...
9
votes
1answer
6k views

How to sign bitcoin transaction with 'bitcoind' and non-bitcoind-wallet private key?

I want to create and sign bitcoin transaction using only 'bitcoind' and 'bitcoin-cli'. I can create a transaction using createrawtransaction RPC API, but signing it using 'signrawtransaction' fails. ...
8
votes
2answers
7k views

How to verify Bitcoin Core Release Signing Keys

I use Gpg4win but I don't know the step to verify the Bitcoin Core Release. can you give me the instruction how to verify released? i git this resolte C:\WINDOWS\system32>gpg2 --keyserver pgp.mit.edu ...
6
votes
1answer
2k views

Why can't bitcoin miners modify transaction outputs?

I am learning the Bitcoin protocol by reading the bitcoin developer reference documentation. As far as I know, a raw transaction consists of: Version (which is always 1) Inputs. Each input contains: ...
3
votes
1answer
192 views

How are transactions verified to ensure only the eligible person can spend a Bitcoin balance?

I know each user has a public key and private key. The users signs the transaction with his private key and sends it to a Bitcoin address. What prevents me from claiming his coins? I read something ...
3
votes
1answer
425 views

Do new SIGHASH types need a hard fork or a soft fork?

There have been a few new sighash types proposed. SIGHASH_NORMALIZED : Use a 'normalized' TXID in the inputs when serializing for signing. This normalized transaction id is calculated by removing the ...
7
votes
2answers
2k views

How to sign a transaction hash in ruby?

I'm trying to sign (using secp256k1) a transaction as explained here. I'm using my own private key and an unsigned transaction as the input. I'm able to sign it using the JSON-RPC client, but when I ...
6
votes
1answer
1k views

What is the exact difference between a Bitcoin and Bitcoin Cash raw transaction to address sighash_forkid?

Bitcoin Cash apparently uses sighash_forkid, such that if you don't implement that into your raw transactions, the bitcoin cash network won't accept it. How would one need to alter (what to add and ...
6
votes
2answers
2k views

How are SIGHASH flags encoded into a signature?

This page describes SIGHASH flags: OP_CHECKSIG extracts a non-stack argument from each signature it evaluates, allowing the signer to decide which parts of the transaction to sign. Since the ...
6
votes
1answer
838 views

What exactly is hashed and signed in a segwit transaction

I have an unsigned raw segwit transaction on my regtest network: ...
4
votes
2answers
422 views

Why does txID generation consider signatures?

I've been reading a lot about transaction malleability, and noticed that the only way to achieve it is by altering the transaction signature/s. Why does the protocol even consider the signature in ...
2
votes
1answer
353 views

Verification of transaction once trasaction is broadcasted

I have few doubts regarding verification of transaction and am trying to find answers from last few days. I agree similar post exist in this portal but I am not getting satisfactory answer for my ...
2
votes
2answers
2k views

How to create the <sig> <PubK> part in “scriptSig”?

I've decoderawtransaction and see in the vin part a "scriptSig" ,which I believe to be the "unlocking script" . Assuming I have the private key in a paper wallet and someone send me transaction to my ...
7
votes
1answer
1k views

If addresses are hashes of public keys, how are signatures verified?

I've skimmed through the https://en.bitcoin.it/wiki/Protocol_specification and it seems that when sending someone bitcoins, I would sign the transaction data (not quite sure which parts exactly) with ...
7
votes
1answer
3k views

How to verify the signature of a raw transaction

I know there are many tools to check an ecdsa signature of a bitcoin transaction and I understand the ecdsa algorithm. It takes three inputs, a hash of the transaction, the digital signature and the ...
4
votes
1answer
3k views

What is the maximum size of a DER encoded ECDSA signature?

I've been told by a seasoned Bitcoin contributor that signatures in Bitcoin could be up to 75 bytes. I'm curious to find out how that maximum comes to pass. According to this answer on Why the ...
4
votes
1answer
651 views

How to specify ECDSA nonce used in bitcoin signing code?

Below is the CECKey::Sign() code (v0.9.3). bool Sign(const uint256 &hash, std::vector<unsigned char>& vchSig) { vchSig.clear(); ECDSA_SIG *sig = ECDSA_do_sign((unsigned char*)&...
4
votes
1answer
196 views

Exhaustive technical explanation of signing & verification

I apologize for such a noobish question and am ashamed that I'm not getting this yet, but I can't seem to put together all of the pieces. I've read every question I can find on the subject, the ...
4
votes
2answers
2k views

Multisig vs Multi input transaction signing

Let's say we have a 2 of 2 multisig address that we want to spend from, so the transaction should be signed by both of the private keys. Now let's say we have a transaction with two inputs, so once ...
3
votes
1answer
497 views

Test (r,s) values for signature generation?

I have some RFC6979 test vectors, but they do not simply give me the (r,s) values before DER encoding (or so it looks?), and I haven't reached that point yet. Where could I find some (r,s) values to ...
3
votes
1answer
187 views

Why are SIGHASH flags signed as 4 bytes when only 1 byte is included in the transaction?

This article brought to my attention that SIGHASH flags are 4 bytes long when signed, but only the last byte is actually included in the transaction. Then OP_CHECKSIG adds 3 bytes 0x000000 back on ...
3
votes
1answer
129 views

Sign manually P2WSH native with Openssl

I'm studying the segwit part, and I want to sign P2WSH (native) manually (openssl). I just read the BIP0143 and I see the new transaction digest. Double SHA256 of the serialization of: 1. ...
3
votes
5answers
3k views

Got 64: non-mandatory-script-verify-flag (Signature must be zero for failed CHECK(MULTI)SIG operation) when submitting segwit transaction

I got the above error when submitting this transaction: ...
2
votes
1answer
4k views

SignRawTransaction - What is scriptPubKey and redeemScript? [SOLVED] [closed]

Let me talk about how I got to the situation I'm in right now. I am using PHP and the JSON library to control bitcoind. And doing so..... I created a multisignature address requiring 2 of 3 ...
2
votes
2answers
113 views

Are Bitcoin signatures currency specific?

I am wondering whether signatures for Bitcoin-like currencies are currency specific, or given one program that can sign a Bitcoin raw/JSON transaction one can create valid signatures for other coins ...