Questions tagged [p2pkh]

Pay-to-PubKey-Hash is the standard format for making payments on the Bitcoin network.

Filter by
Sorted by
Tagged with
65
votes
3answers
79k views

How to calculate transaction size before sending (Legacy Non-Segwit - P2PKH/P2SH)

I know that I pay the transaction fee per kB, so how can I calculate how large the transaction will be before I send it via the RPC api. I run a site using bitcoins, and I cannot let the user's ...
17
votes
2answers
5k views

Why do you use Bitcoin addresses instead of public keys?

Why do you hash the public key twice? Are there security benefits to abstracting away from the public key? Is it because the address can represent multiple things? I'm missing something. Could you ...
16
votes
3answers
4k views

Why is P2PKH used instead of the simpler P2PK?

If elliptic curve cryptography is secure enough to be able to give away a public key without fear of anyone being able to calculate our private key from it, what's the reason for hashing our public ...
11
votes
2answers
8k views

Bech32 conversion to legacy P2PKH?

Electrum now generates Bech32 addresses for SegWit wallets. Example: bc1qnntcclssmtuvfw2te7q49lzvw67cfvpzxger4j Pubkey: 023f1b3421c6ae0c1758834d40806c2418194b507be261fa343a0636653f3ec75b If I ...
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 ...
6
votes
1answer
1k views

How big is the input of a P2PKH transaction?

How many bytes does a P2PKH input have? I'm finding a few different numbers: Why does the default miner implementation use pay-to-pubkey? states: push + sig + push + key = 1 + 72 + 1 + 61 = 139 ...
5
votes
2answers
882 views

How did pay-to-pubkey hash come about? What is its history?

We know that early blocks all used pay-to-pubkey (p2pk) and at some point, we mostly switched to pay-to-pubkey-hash (p2pkh). What is the history behind this? Who made the changes and when did p2pkh ...
4
votes
2answers
4k views

Is it possible to convert an address from p2pkh to p2sh?

Is it possible to convert a p2pkh address to a p2sh address? Also, will the balance of the p2pkh address carry over to the p2sh address?
4
votes
4answers
512 views

Why doesn't address contain a full scriptPubKey?

This is a general question, but let's suppose a P2PKH transaction. P2PKH address starts with "1" and the sender incorporates it into the scriptPubKey as: OP_DUP OP_HASH160 <PublicKeyHash> ...
4
votes
4answers
408 views

Why bother checking both public key and signature in P2PKH transactions?

In a P2PKH pubkey script, first, the public key provided by the intended spender is verified to be correct and then this key is used to verify the spender's signature. I wonder why just verifying the ...
4
votes
1answer
505 views

What is the composition of transaction types in current blocks?

What types of transactions do we see in blocks today and how much of the blockspace do they occupy? I.e. does someone have data how much of the blocks are Pay to PubKey Hash, Pay to PubKey, Pay to ...
4
votes
1answer
860 views

Trying to understand Pay-to-Public-Key-Hash

I am new to bitcoin and I am trying to understand Pay-to-Public-Key-Hash (P2PKH) from the book: Mastering Bitcoin: Unlocking Digital Cryptocurrencies (p. 127). I understand that digital keys (which ...
3
votes
1answer
1k views

How to generate legacy receiving address in Bitcoin core 0.19.x.x

I must have missed the memo. I see Bitcoin Core 19.1.0.1 defaults to generating Bech32 receive addresses (prefixed with "bc1"), and offers a checkmark to generate P2SH addresses instead (prefixed ...
3
votes
1answer
106 views

Why P2SH seems to be never smaller than 34 characters, unlike P2PKH?

Why base58 of P2SH invoice address seems to be never smaller than 34 characters; unlike base58 of P2PKH invoice address, in which 33 characters is very common? Bitcoin wiki tells (format and emphasis ...
3
votes
3answers
902 views

How it is possible to validate existing Pay to Public Key Hash transaction without public key?

These are my understanding or assumptions. Sign a document requires secret key and message only as below SignDocument(secret key, message) => signature And verification of signature requires ...
3
votes
1answer
503 views

Why is 'p2pkh:' prepended at the beginning of private key addresses in electrum?

I recently started a Blockchain course and came across the electrum software. While going through the list of wallet addresses and associated private keys I found that 'p2pkh' is placed at the start ...
3
votes
1answer
1k views

How does OP_CHECKSIG work

Hi I am learning bitcoin and learning how scripting works and how to use P2PKH. I was wondering how does OP_CHECKSIG work. I want to understand what is the data that the private key signs to create ...
2
votes
2answers
828 views

Is - a valid bitcoin address character

I came across address like this s-272edf45031dd498e7b3ae89e11ff21b In the Address with Balance List Is the '-' a valid character?
2
votes
2answers
147 views

If I was developing a Bitcoin wallet, should I support both legacy and compatibility addresses?

To receive funds, I was thinking of giving a user the option of displaying two QR codes: Legacy - p2phk e.g. 1AKDDsfTh8uY4X3ppy1m7jw1fVMBSMkzjP Compatibility - p2sh(p2wpkh) e.g. ...
2
votes
2answers
96 views

tracking invoice address type migration

I'd love to see charts with stats on percent of utxos by invoice address type (specially P2PKH, P2SH, P2SH-P2WPKH, P2WPKH, P2TR), over time; and same for percent of coin supply. No doubt I can pay a ...
2
votes
1answer
112 views

Is there a way to convert a P2PKH address into P2TR?

As far as I understand, Taproot enhances privacy by allowing someone to only reveal a specific key path, which in my understanding means that it's fairly flexible - is it possible to construct a P2TR ...
2
votes
1answer
51 views

How is a locking script reliably detected as a P2PKH script?

I've taken this example from a p2pkh guide: 1976a9145fb0e9755a3424efd2ba0587d20b1e98ee29814a88ac This is broken down into: 19 - byte length of the following unlocking script 76 - OP_DUP: Duplicates ...
2
votes
1answer
124 views

p2pkh vs. p2pk keeping public key private

I just got into learning Bitcoin programming through Jimmy Song's Programming Bitcoin. Jimmy says that some of p2pkh's advantages over p2pk include: a smaller ScriptPubKey keeping one's public key ...
2
votes
1answer
78 views

Bitcoin's Liquid Network - Unable to Broadcast PSET P2PKH issuance transaction using go-elements

While working on go-elements I've been trying to expand on pset_test.go by implementing functions that broadcast different kinds of PSET transaction. Unfortunately I can't find many technical ...
2
votes
2answers
417 views

How to move/sweep your Bitcoin Core bitcoins safely and air-gapped to your new fancy cold storage?

I have stored my bitcoins on Bitcoin Core in a few P2PKH addresses with many UTXOs. I would like to have a plan, how these bitcoins can be moved air-gapped to a more up-to-date setup (not discussed ...
2
votes
1answer
283 views

How does Bitcoin prevent replay-attacks? [duplicate]

How does Bitcoin prevent replay-attacks for P2PKH transactions? As far as I understand, when a transaction is made to pay bitcoins to another account, the P2PKH script is used. scriptPubKey: OP_DUP ...
2
votes
1answer
303 views

scriptcode, scriptsig, pubkeyscript confusion

I've been banging my head on a desk for a few days trying to understand the segwit protocol properly. Another roadblock has thrown me off-guard and I am struggling to grasp the concept of "scriptCode:...
2
votes
1answer
147 views

How Bitcoin decide which scriptPubKey use?

I'm studying Bitcoin protocol, and I'm able to create address by my bash script. The addresses "P2PKH" and "P2PK" have the same procedure. Compressed or uncompressed public key – ...
2
votes
2answers
98 views

Why can't P2PKH's scriptPubKey be shortened to only OP_CHECKSIG?

For P2PKH, the scriptPubKey is OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG. Why can't it check the signature only? Why can't it be shortened to just one opcode — OP_CHECKSIG? Why ...
2
votes
2answers
2k views

Bitcoin - Technical difference between P2PKH and P2SH address generation?

I was convinced that the only difference between the generation of addresses starting with '1' and '3' was simply changing the prefix added to the digest from 0x00 to 0x05 after the ripemd160 part. ...
2
votes
1answer
131 views

How can blockchain.info show the output address of a transaction when the output address has never been used in any other transaction?

I've stumbled across a transition on blockchain.info where the output address was displayed even though the output address had never been used in any other transaction. How can blockchain.info know ...
2
votes
0answers
34 views

Script and DER in P2PKH

Im trying to figure out the script and DER In P2PKH, the "first part (scriptsig)" push in stack (<sig><pubK>) because is it DER? Instead the "second part (scriptPubKey)" you can map the ...
1
vote
1answer
142 views

Why OP_DUP instead of providing the PubKey twice in P2PKH?

We know that a P2PKH script looks as follows: scriptPubKey: OP_DUP OP_HASH160 <PubKeyHash> OP_EQUALVERIFY OP_CHECKSIG scriptSig: <Signature> <PubKey> Since full nodes are maintaing ...
1
vote
2answers
829 views

How can I create an anyone-can-spend output?

How can I create an anyone-can-spend transaction using p2pkh outputs? Also how would such a transaction in hex look like?
1
vote
2answers
586 views

Checking signature only vs. P2PKH

It is clear to me why it's potentially unsafe to only use a check on == in scriptPubKey. For one, not verifying a signature in the redeem script means that someone could impersonate the redeemer. From ...
1
vote
1answer
141 views

P2PKH - Sharing a wallet address does not reveal my pub key?

Is it technically correct to say that if I share my address with the network, nobody has access to my pubkey still? But if I share a valid signature to a P2PKH UTXO, someone can derive my pubkey and ...
1
vote
2answers
72 views

When you create a multisig address from existing addresses, do the funds move there?

If you have three addresses, lets say A, B and C and they each have 1 BTC. When you create a multisig address out of the three addresses, will it have a balance of 3 BTC or do you have to send the ...
1
vote
1answer
95 views

Inconsistency in pubkey hashes usage explanation

I am learning about blockchain and reading a lot of stuff, but one question bothers me for last few days. So in docs they say that P2PKH transactions use hash of the public key instead of a public key ...
1
vote
1answer
56 views

What are the scriptPubKey, scriptSig, redeem script and witness for the various output types?

scriptPubKey, redeem script, witness script, witness program are defined in this StackExchange post. What are the scriptPubKey, scriptSig, redeem script and witness for the various output types (P2PKH,...
1
vote
1answer
259 views

Decodescript for a Testnet pubkey hash address

This is the address information: bitcoin-cli validateaddress n35oDVMPNkHRzBKy7q9RDB7r5e8qbVa9SW { "isvalid": true, "address": "n35oDVMPNkHRzBKy7q9RDB7r5e8qbVa9SW", "scriptPubKey": "...
1
vote
1answer
897 views

Convert P2SH to P2PKH

I'm using btcrecover to recover a Ledger BIP39 backup seed that I wrote down but seems to be wrong. The tool only accepts P2PKH addresses and my account was created very recently in this kind of ...
1
vote
0answers
30 views

Why does printing a scriptPubKey have an extra OP_PUSHBYTES_20? [duplicate]

I am building a P2PKH script pubkey in code, and the standard format is: OP_DUP OP_HASH160 <PUBKEYHASH> OP_EQUALVERIFY OP_CHECKSIG However, when I print it (I'm using the bitcoin Rust crate) it ...
1
vote
0answers
47 views

How can I check my transaction signature is correct?

I have tried recreating the exact transaction from "Appendix B: Funding Transaction Test Vectors" from BOLT 3 from the Lightning RFCs. My transaction looks exactly the same when parsed, except my ...
1
vote
1answer
173 views

Can I prove a double spend attempt with a signed tx with same input? [closed]

I am designing an cross-chain atomic swap in a custom blockchain - Protoblock. I think it can be done as long as Protoblock knows how to parse p2pkh bitcoin transactions. The critical part is being ...
0
votes
1answer
437 views

Bitcoin P2PKH transaction - two questions

Trying to learn the basics of the bitcoin's standard transaction script here. For a transaction where Alice has sent coins to Bob, who is now trying to redeem them, we have the concatenated scriptSig ...
0
votes
1answer
254 views

Convert Electrum p2pkh wallet to p2wpkh one?

Is it possible, in Electrum, to convert a p2pkh wallet to a p2wpkh one, so I can use the Lightning network?
0
votes
1answer
263 views

Access funds on legacy address related to segwit address from which I have private key

The situation Hello. Our company running BTC pool. We've been mining BTC for a while and used segwit address 32Z3eXSPgxcHj2fnQy8d6dg66eVtZfxrBM as pool adress. But when we finally found a first ...
0
votes
2answers
208 views

Why is this script invalid, and how can I generate valid public key/digital signature pairs?

Why does the default P2PKH transaction at http://bitcoin-script-debugger.visvirial.com/ return NULL rather than true? I haven't tried to swallow the gory details of OP_CHECKSIG yet, but everything ...
0
votes
3answers
101 views

OP_HASH160 pops the public key from stack after hashing it?

This guide https://bitcoin.org/en/developer-guide#p2pkh-script-validation mentions "The operation executed next, OP_HASH160, pushes onto the stack a hash of the data currently on top of it—in this ...
0
votes
1answer
74 views

How to generate p2pkh ScriptPubKey for coinbase transaction

One part of coinbase transaction is p2pkh ScriptPubKey (according to the book i read). Coinbase transaction here refers to the first transaction in a block , not Coinbase software/company. Suppose i ...