Questions tagged [transaction-verification]

The process in which every Bitcoin node checks every part of every Bitcoin transaction worldwide for conformance to standard rules and uses the complete history of all previous Bitcoin transactions to check that money being spent in a transaction has not previously been spent in any earlier transaction since the beginning of Bitcoin.

Filter by
Sorted by
Tagged with
2 votes
1 answer
146 views

Certain spent P2PKH outputs give error: Non-canonical DER signature

Certain rare spent P2PKH outputs give error: Non-canonical DER signature when I try to verify the spent output using both btcdeb (version 5.0.24) and bitcoinconsensus (version 0.20.2, using Rust ...
2 votes
1 answer
1k views

How does merkle tree verification of transaction work?

From what I have read, suppose B sends 1 bitcoin to C. C wishes to verify B's payment and asks C for the block number (location) that input transaction is located at. (Is this correct understanding/...
2 votes
2 answers
135 views

What happens to rejected transactions (i.e double spend or invalid transactions)?

Do they get put in an orphaned block or not get put into any block at all?
2 votes
2 answers
184 views

How does mining verify a transaction?

I’m very much new to understanding this whole bitcoin concept. As far as I’m concerned, nodes mine for a nonce that, when paired with the data of the block, result in a hash that suffices some ...
10 votes
1 answer
673 views

Full list of "special cases" during Bitcoin Script execution (p2sh, p2wsh, etc.)?

When executing a Bitcoin Script, there are some "special cases" where the interpreter performs extra verification beyond just executing scriptSig and then scriptPubKey. For example, if the ...
0 votes
2 answers
356 views

Verify Bitcoin Transaction

Following the great post [Redeeming a raw transaction step by step example required, I came up with code below but the verification failed. // pubkeyBytes, len: 65 // ...
2 votes
1 answer
228 views

How does CoinJoin affect the total transaction size?

As I understand it, CoinJoin is a method to aggregate multiple transactions into a single transaction, mostly for privacy purposes. How does this aggregation affect the total size of the transactions?...
3 votes
2 answers
339 views

Is the UTXO set size important for non-mining full nodes?

Recently, I have seen a lot of development effort going into techniques for different ways of storing, pruning UTXO/TXOs. The main motivation cited is reducing block orphaning, which is mining-...
0 votes
2 answers
86 views

When the validity of scriptPubKey is checked?

I have a couple of questions related to validation of script in transaction output (scriptPubKey). I apologize for a little more text, but I tried to explain in detail what I don't understand. Since ...
1 vote
1 answer
78 views

Taking the existing INPUT and changing the OUTPUT to steal bitcoins. Is this a possible bitcoin theft scenario and how to prevent it?

I'm relatively new to Bitcoin and I'm wondering how Bitcoin defends against the following scenario and if it's even possible. Before I start with the scenario, just two notes: 1. There is a lot of ...
1 vote
1 answer
67 views

Do Bitcore APIs have daily limits?

I can't find online if the bitcore API (https://github.com/bitpay/bitcore/blob/master/packages/bitcore-node/docs/api-documentation.md) has daily limits for making requests, or if there is a need to ...
0 votes
1 answer
220 views

What happen to my bitcoin

I have payed last april 21 and april 25 should be my payment but it took days already here is my transaction id b5a9cb6a67429ec60c51f3aa197bec67af0003c841890132051f9fea40f71f76 And the same as april ...
1 vote
2 answers
288 views

How is a miner prevented from adding transactions without signatures to their block?

Consider I'm a miner. I mine on my own, I don't mine in pools. I have power enough to find the hash, lets say, once per 2 years. When I find the hash within those 2 years I send the block back to the ...
1 vote
2 answers
237 views

Unconfirmed transaction Bitcoin Core 22.0

I use Bitcoin Core 22.0. I sent a transaction. By mistake I chose a low feerate, and now the transaction is stuck in the mempool, and who knows if anyone will notice it. In previous versions of ...
4 votes
1 answer
3k 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 ...
1 vote
2 answers
309 views

Error validating a transaction with blockcypher

I've created a testnet transaction using blockcypher API (https://api.blockcypher.com/v1/btc/test3/txs/new) and then signed the transaction using the signer (go lang). And then sent signed transaction ...
1 vote
2 answers
172 views

Does running a standard Bitcoin full node mean your node verifies transactions of other members?

If I install Bitcoin Core and run it as a Full Node, will Bitcoin Core automatically verify transactions from other users? So, just by installing a Bitcoin Core Full Node, could I possibly process ...
2 votes
1 answer
97 views

Where is a transaction stored before getting added to the mempool?

A transaction is stored in the mempool before it is confirmed. However, the Bitcoin node can't verify incoming transactions with 'light speed' to add them to a mempool—it obviously needs some time. So,...
2 votes
1 answer
112 views

How come an `OP_3` P2SH redeem script is spendable?

I completed a round trip transaction with the redeem script hash: 31vFvEkyAb2iusbPip36H9rVt6pxExuaVR, whose redeem script is OP_3 (0x53) (yes I know not secure). I can understand OP_1 redeem script ...
3 votes
1 answer
203 views

Where is sum(vin) > sum(vout) check in Bitcoin Core?

I'm searching the function that validates a transaction according to Protocol rules - "tx" messages especially step 14 sum(vin) > sum(vout). I found this interesting function CheckTransaction(...
1 vote
1 answer
200 views

Following SegWit implementation, is BIP-146 signalling and implementation still on the docket?

Is BIP 146, which defines using the low S value, still on the docket to be signalled and implemented given that SegWit fixed the txid malleability issue by moving the witness outside the transaction? ...
1 vote
1 answer
514 views

Does every single node in the blockchain validate the transactions in the mempool?

I have read several responses to various questions SE. Some responses partially respond to the question so I was hoping to get your help to bridge my gaps in understanding. Does every single node on ...
0 votes
1 answer
52 views

Why does the Bitcoin network encrypt the transaction data? [duplicate]

The whole process of encryption sounds useless to me. Miners/validators and full nodes need to verify each transaction. They need two pieces of information: The original transaction data The ...
1 vote
1 answer
134 views

Need a detailed step-by-step P2PK signature validation example

In the process of validating transactions by hand with a new library in elixir. I am starting with f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16, which is one of the first P2PK ...
2 votes
2 answers
483 views

Is verification of a blockchain computationally cheaper than recreating it?

One of the advantages of cryptocurrencies like Bitcoin that is often repeated is how hard it should be to manipulate past transactions. The reason that is often stated is that you would have to re-...
15 votes
1 answer
826 views

How many bitcoin transactions can be verified per second on commodity hardware in 2020?

I am trying to figure out how many Bitcoin transactions could be verified per second. Am I correct that signature verification is more expensive than computing Merkletrees and hashes and therefore ...
3 votes
1 answer
62 views

What Lightning Network transaction information is usable to provide a verifiable public index of received payments?

I have in mind a protocol architecture that includes value transfer, where BTC is the unit of account. To make the protocol scalable I could specify use of the Lightning Network protocol. In this case,...
3 votes
1 answer
188 views

When was the 10,000 B limit for scripts introduced?

The file src/script/script.h defines a MAX_SCRIPT_SIZE of 10,000 B. Among other instances, the MAX_SCRIPT_SIZE is used in the IsUnspendable() check, which allows us to avoid adding outputs with ...
3 votes
2 answers
2k views

What's the blocksize limit after segwit and how do legacy nodes deal with segwit transactions?

Normally, I heard that the bitcoin blocksize is 1MB, but with the Segwit update the blocksize can be up to 4MB, so we should say that the blocksize is 4MB, right? Moreover legacy nodes only receive ...
2 votes
1 answer
73 views

What rules does a node execute to determine if a transaction is valid and propagate it to other nodes?

How does a node decide whether a transaction is valid and whether to propagate it to other nodes? Could you please mention some of the basic rules that nodes follow for such a purpose?
3 votes
1 answer
2k views

Error validating transaction using BLOCKCYPHER

I recently followed the steps on the answer by StephenM347 to the following problem: Cannot access my bitcoins because my wallet is still synchronising. What can I do to spend them immediately? ...
4 votes
2 answers
1k views

Why does IsCoinBase() check if there is exactly one input?

In the Bitcoin Core source code there is a function to check if a given transaction is a coinbase or not: bool IsCoinBase() const { return (vin.size() == 1 && vin[0].prevout....
1 vote
2 answers
154 views

When The Unlocking Script Is Created, Who Verifies The Script?

I am familiar with the many ways an unlocking script is created. But in this scenario, lets use P2PKH. When we generate the unlocking script (excuse the simplicity): <dup> <hash160> <...
1 vote
1 answer
115 views

Why does the value range of outputs need to be restricted?

In the 'tx messages' section for protocol rules we have Each output value, as well as the total, must be in legal money range For each input, if the referenced output does not exist (e.g. never ...
0 votes
1 answer
105 views

What exactly is a bitcoin?

So I understand how blockchains work[1]. I understand how proof-of-work works[2]. And I understand how they work together. I also understand (or at least I think I do :) how transactions work (A block ...
1 vote
1 answer
110 views

The true reason bitcoin needs merkle proof for SPV wallet?

I know exactly what merkle tree is, and I know it is used to verify a transaction is in a block with just a hundred of bytes flowing through my network cable (btw do I really lack that megabytes ...
0 votes
1 answer
56 views

Is there a way to know how many of currently unconfirmed transactions in the MemPool is currently being attempted by other miners?

Assume there there 100 unconfirmed transactions currently in the MemPool. And the size of a block is such that it's roughly made up of 10 transactions. Now when a miner completes the Proof of Work &...
1 vote
1 answer
55 views

Why there are signature and public key pair on blocks when transaction verifying is over

I'm student studying about bitcoin and blockchain. I want to know why all blocks have signature and key pair after the transaction is over. Why I ask this, I'm studying post quantum cryptography (PQC) ...
0 votes
3 answers
87 views

What algorithm do miners use to validate individual transactions in a broadcasted solution before accepting it to their blockchain?

If proof of work is a consensus algorithm that guards against malicious nodes from adding faulty blocks, what actually happens when a miner successfully confirms a fraudulent block (i.e. a block that ...
3 votes
2 answers
449 views

Which kinds of transactions show quadratic signature-hashing scaling?

It has been stated: A major problem with simple approaches to increasing the Bitcoin blocksize is that for certain transactions, signature-hashing scales quadratically rather than linearly. https:/...
1 vote
2 answers
100 views

Curiosity, Minimal transaction accepted as valid? (zero input/ zero output)

$ bitcoin-cli decoderawtransaction 00000000000000000000 { "txid": "f702453dd03b0f055e5437d76128141803984fb10acb85fc3b2184fae2f3fa78", "hash": "...
1 vote
2 answers
199 views

How do people using thin clients know the correct merkle path of transactions they've sent without knowing the full block?

User A send a transaction to user B. Those transactions are bundled together into a merkle tree. User A and B can both use the transaction plus the merkle root, plus the merkle path to prove the ...
0 votes
2 answers
61 views

What databases is used to see if a transaction is valid?

When you check a transaction before adding it to a block what data source is used as a source to make sure all the coinbase transactions are valid.
0 votes
1 answer
90 views

Using EQUALVERIFY with different public keys, but generated from the same seed

I am building certain system that involves Bitcoin and therefore I need to understand well how it works under the hood. In order to receive funds, for every new transaction new public key and its hash ...
1 vote
1 answer
207 views

How and when do nodes stop broadcasting a transaction?

Suppose a node begins broadcasting a signed transaction. Question 1. At what stage is the signature verified? In §5 of the whitepaper, verification only appears during block acceptance after mining. ...
1 vote
3 answers
76 views

Why can't I modify someone else's transactions, if I have their signature data?

As I know, signature system is adding signature to end of transaction. And doesn’t hash transaction, so others can know my signature. If I can send a message directly to the node, can I use other’s ...
2 votes
1 answer
98 views

What does "Green address verification" mean in the context of transaction validation?

I am only new to Bitcoin and I would like to know what a "Green address verification" is. I have an Electrum wallet ver 3.3.6 and I think the term is being used in the context of faster transactions ...
0 votes
1 answer
96 views

How can a receiver verify that transaction data was not altered by 3rd party?

My scenario: My web server: Generates private and public, and a wallet address from the public key for a user website account Server can not connect to the outside (Can not connect to the Bitcoin ...
1 vote
1 answer
133 views

How many times and where exactly is ECDSA used in Bitcoin?

I'm currently a little confused about where exactly ECDSA is used in the transaction process... some resources seem to say it's used once, whereas others seem to say it's used three times. Which is ...
1 vote
1 answer
52 views

Trying to understand a nonstandard transaction in bitcoin tests

I am trying to implement a bitcoin script interpreter and today I stumbled upon a nonstandard transaction in tx_valid.json which gave me a lot of headaches. The transaction in question has the ...

1
2 3 4 5 6