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
25 votes
3 answers
6k views

How are bitcoin transactions and the blockchain transferred over the internet?

So I have several specific question connected to this topic and I'm aware of the conceptual answers and I'm only interested in the technical details (with programming terms and concepts as I'm a ...
Balázs Sáros's user avatar
21 votes
1 answer
2k views

How is SegWit a soft fork?

Reading this section of BIP144, I noticed the followng statement: Parsers supporting this BIP will be able to distinguish between the old serialization format (without the witness) and this one. ...
Simone Bronzini's user avatar
19 votes
1 answer
35k views

How do nodes verify Bitcoin Transactions?

I am trying to understand the role played by various nodes in the Bitcoin Network in verifying the transactions that are taking place in real time. I think that I understand the process of Transaction ...
Neon Flash's user avatar
  • 1,033
15 votes
1 answer
5k views

What are the advantages of Schnorr vs ECDSA?

I understand that Schnorr signatures provide an improvement on ECDSA in that they are a fixed 64 bytes instead of the longer ECDSA sig format, however, I don't see how this is an advantage over ECDSA ...
Lev Knoblock's user avatar
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 ...
Rene Pickhardt's user avatar
14 votes
4 answers
21k views

relationship between bitcoin miner and verification of transactions [closed]

Bitcoin miner mines a block, which can't be submitted to the network without proof of work. And the new block contains all of the new transactions. Hence the new block acts as a security measure, and ...
Sida Zhou's user avatar
  • 349
10 votes
3 answers
4k views

If Bitcoin transactions require ~10 min to clear, how can payments get recognized within seconds?

Bitcoin Monitor offers to issue a notification moments after a payment is sent to a Bitcoin address. Yet if Bitcoin transactions require ~10 min to get written into the blockchain and confirmed as ...
Crashalot's user avatar
  • 265
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 ...
Elliott's user avatar
  • 227
8 votes
4 answers
18k views

Why is mining necessary for the Bitcoin network/system? [duplicate]

I understand that a transaction is a record of 1+ Bitcoins being given from one party to another. I understand that a block is a collection of unverified (pending) transactions that gets verified ...
TicketMonster's user avatar
8 votes
2 answers
5k views

Different error messages under "Mandatory script verify flag failed."

I've been playing with raw transactions and signed transaction and I've noticed that the error "Mandatory script verify flag failed" comes in two variations. script failed on OP_EQUALVERIFY OP Script ...
shultz's user avatar
  • 181
8 votes
1 answer
1k 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 ...
Murch's user avatar
  • 72.7k
7 votes
1 answer
313 views

Is the SPV client model scalable?

SPV clients typically connect to full node peers and set filters on what information they download. How many SPV peers can a single full node support, typically? Is it reasonable to expect millions ...
morsecoder's user avatar
6 votes
4 answers
1k views

Is it possible to add a transaction input to a transaction in the mempool?

Is it possible to add an input to a transaction that is in the mempool? For example, if someone is paying 1 BTC to their friend, I can get the raw hex data of this transaction from the mempool before ...
bvpx's user avatar
  • 1,132
6 votes
1 answer
346 views

When the UTXO in the cache is full, what strategy is used to replace one UTXO with another in the cache?

The UTXO set is stored on the disk, but some UTXOs are also stored in the cache. When validating a transaction, you need to query the UTXO pointed to by the input of the transaction. First, you go to ...
GoneV's user avatar
  • 175
6 votes
1 answer
625 views

Inner working of OP_IF and OP_ELSE

How does OP_ELSE work exactly? Is there an else if in Script? According to https://en.bitcoin.it/wiki/Script#Flow_control, the statements after an OP_ELSE are executed in three cases. It says: If ...
orfeas's user avatar
  • 93
6 votes
1 answer
872 views

Transaction verification by miner VS full node with & without SegWit

I'm trying to fill a few gaps in my understanding of transaction verification and would appreciate any insight. Without SegWit Miners broadcast new blocks which contain the signature(s) with every ...
Olshansky's user avatar
  • 163
6 votes
1 answer
256 views

Does every full node verify every transaction TWO separate times?

I am building my Bitcoin expertise, and want to verify my understanding on a specific point: at what point(s) do all full nodes verifies a new transaction? Here is my understanding in a nutshell, ...
Pressed250's user avatar
6 votes
1 answer
229 views

What happens in detail, when Bitcoin Core verifies a block during synchronization?

Since version 0.10.x, block headers are acquired separately, and therefore download is not delayed until previous blocks have been verified. Previous questions about synchronization mention that the ...
Murch's user avatar
  • 72.7k
5 votes
3 answers
2k views

Do miners have to hold all the blocks in memory?

Running a miner node, one would have to verify transactions. This includes checking all the inputs of all the transactions. Does this mean that a miner must hold all the block-chain in memory (...
summerbulb's user avatar
5 votes
1 answer
493 views

Where the P2SH script gets written?

I understand that when I'm doing a transaction, I'm locking those bitcoins to whoever provide the solution to a script that has the hash I posted. But, where does the hash get written? I would ...
araqueto's user avatar
5 votes
2 answers
428 views

How are blocks verified?

I see in the bitcoin wiki there is something called "script" which compiles down to some bytecode to be run by a very very basic virtual machine. Does this mean that each block is actually just a ...
Shazzad Kabir's user avatar
5 votes
1 answer
1k views

What is an "insecure transaction type", as mentioned by Bitcoin Wallet for Android?

I am running Bitcoin Core v0.11.0.0-gd26f951 (64-bit) at home on Ubuntu, and have installed the Bitcoin Wallet for Android on my phone. I sent two transactions from home to my phone: First, Second. ...
Pepijn Schmitz's user avatar
5 votes
1 answer
155 views

Can corrupted unspent transaction outputs list leading to higher than expected fee be seen as an actual threat?

Let's imagine, an attacker managed to corrupt your local list of unspent transaction outputs (or a blockhain explorer you use) in a way that certain unspent transaction outputs seem to hold less coins ...
Rafael Korbas's user avatar
5 votes
1 answer
259 views

walletnotify and transaction malleability

To monitor inbound payments for a web wallet, I plan to use walletnotify to record the transaction IDs, then on each blocknotify I will check the number of confirmations for each pending transaction. ...
Avram's user avatar
  • 1,939
5 votes
1 answer
359 views

Why do bigger blocks make it more expensive to run a full node?

Does it cost more storage? For the transaction verification, to which extent bigger blocks make it more computational intensive? In terms of computational complexity, is the verification process a O(n)...
czheo's user avatar
  • 151
4 votes
3 answers
709 views

How do miners understand what a transaction does?

Bitcoins are spent via transaction scripts that can be quite complicated. How do miners understand what a transaction does? A miner has to decide whether to include a transaction in their block, but ...
Harry Pillsbury's user avatar
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....
Amir reza Riahi's user avatar
4 votes
1 answer
953 views

If I set assumevalid=0 after syncing the blockchain will Bitcoin Core go back and validate historical blocks?

I originally synced my node using the Bitcoin Core default assumevalid value. If I set -assumevalid=0 in bitcoin.conf and restart my node, will my node go back and validate historical blocks?
paddy's user avatar
  • 185
4 votes
3 answers
22k views

Bitcoin transaction fee calculator

I'm new to bitcoin. Is there a website where I can type amount of BTC I want to send and type of transaction - Urgent, Normal, Economic and they give me the price in USD how much the transaction fee ...
user87564's user avatar
4 votes
1 answer
1k views

Transaction's maximum size

Is there a maximum size for any given transaction? I just created this tx: http://blockexplorer.com/testnet/tx/194173dcc07b396433d5725abe76d52b10d42ebd3d1d10b465429f87fee12a52 and although it ...
Doug Peters's user avatar
  • 1,366
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 ...
Shubham Saxena's user avatar
4 votes
1 answer
90 views

At what block height may locktimed transactions get included?

Transactions with outputs whose sequence is smaller than UINT_MAX are interpreted as locked until the timestamp or block height specified in nLockTime is reached. Specifically regarding the block ...
Murch's user avatar
  • 72.7k
4 votes
3 answers
14k views

How do I lookup the details of a transaction, given the transaction ID?

I transferred BTC from GDAX to Binance. I have the transaction ID. How do I find out the status of the transfer. GDAX reports transfer complete. Thanks.
Jaime's user avatar
  • 41
4 votes
1 answer
588 views

How does Proof of Stake prevents dishonest behaviour compared to PoW?

I know that in Proof of Work (PoW) once a node has found the solution (the nonce) they announce it to the network. Then the rest of the nodes can easily verify the correctness of the block hash and ...
Gerard Bosch's user avatar
4 votes
1 answer
221 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 ...
user avatar
4 votes
2 answers
547 views

Bitcoind transaction data verification

I find myself a victim of either my poor googling skills, or the lack of detail in the bitcoind docs. I have a walletNotify script running on a full node that whenever a transaction to / from my ...
mpr's user avatar
  • 153
4 votes
1 answer
577 views

How to calculate signature generation, signature verification, transaction verification speed?

I read this post on Bitcoin Scalability. As far as I understand sequence of steps in Bitcoin, simplified version of performing transaction should be following: On Sender's side: Create transaction ...
Nur's user avatar
  • 431
3 votes
2 answers
1k views

How are transactions verified with only the Bitcoin address, not the public key?

I understand how asymmetric cryptosystems and digital signatures work: You generate a (private key, public key) pair. You never share the private key, you make the public key ... well, public. You ...
Martin Thoma's user avatar
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 ...
Anh Dũng Lê's user avatar
3 votes
2 answers
2k views

How can a miner verify that a UTXOs is not spent elsewhere?

How does a miner verify that a UTXO is not spent somewhere else, wouldn't he have to search the entire blockchain from that UTXO and onwards to see if this was the case? Assuming any real scale this ...
no nein's user avatar
  • 297
3 votes
1 answer
144 views

Function combinerawtransaction is not working

I have multiple partially signed transactions that I want to combine into one transaction. All those transactions were signed using the same key so it should be possible to combine all those partial ...
Kevin Gravell's user avatar
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(...
Piu130's user avatar
  • 133
3 votes
2 answers
11k views

How Blockchain transaction verification takes place?

How does each transaction verifying node come to know if the sender has enough amount in its wallet to transfer to the receiver or not? How are Blockchain transactions validated?
Vijesh's user avatar
  • 185
3 votes
2 answers
450 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:/...
Rich Apodaca's user avatar
  • 2,321
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 ...
Murch's user avatar
  • 72.7k
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-...
sanket1729's user avatar
  • 1,296
3 votes
3 answers
1k 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 ...
Freshblood's user avatar
3 votes
1 answer
349 views

How to tell if a transaction is valid?

So I have been reading up on bitcoin and blockchain for awhile now, but I have yet to fully understand it. I understand that bitcoin leverage on DLT, which uses cryptography to verify transaction. ...
Jason Tay's user avatar
3 votes
3 answers
236 views

What if the execution time for an alt coin script exceeds the block time?

I don't know when and how often a script is executed, but it seems to me that there would be a problem if a single script (or a sum of all scripts in a block) exceeds the time it takes to be included ...
makerofthings7's user avatar
3 votes
1 answer
585 views

Do full nodes store the complete merkle tree or do they regenerate it when creating a merkle proof?

I understand what the merkle root is for. And I understand that blocks don't store the merkle tree. Question 1) Is there any place that the complete merkle trees get stored? I don't mean the merkle ...
Nika Kurashvili's user avatar

1
2 3 4 5 6