17 votes
Accepted

When Schnorr signatures are part of Bitcoin will it be possible validate each block with only one signature validation?

Yes, one validation per block, but not one signature per block. To clear up confusion, there are 3 distinct technologies involved here: (1) non-interactive aggregation is the ability for a third ...
user avatar
15 votes
Accepted

Schnorr's batch validation

You're right that the elliptic curve multiplication is indeed the most expensive operation in the validation algorithm. And as both single signature validation and batch validation require two EC ...
user avatar
13 votes
Accepted

How long does block validation take?

There are several questions here. Please correct me if I'm wrong: The miner validates the newly received block before using it themself and sending it to their other connected peers. Yes and no. ...
user avatar
11 votes
Accepted

What is SPV mining, and how did it (inadvertently) cause the fork after BIP66 was activated?

SPV mining is the term commonly used for 'less-than-full-node-validation' mining. It usually means that miners skip the verification of the block and the transactions within, and immediately start ...
user avatar
  • 13.7k
9 votes

How to prevent a miner from stealing another miner's block?

A is protected by adding coinbase transaction with himself's bitcoin address. from https://en.bitcoin.it/wiki/Block_hashing_algorithm The body of the block contains the transactions. These are ...
user avatar
  • 333
7 votes
Accepted

How do you validate a bitcoin address using bitcoinjs library in javascript?

If you call bitcoin.address.toOutputScript(address, bitcoin.networks.bitcoin) It will throw an error if the address cannot be parsed as P2SH or P2PKH, or if the checksum is not valid. Replace the ...
user avatar
  • 28.8k
7 votes
Accepted

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

When you spend from a Bitcoin address, your transaction includes both the public key corresponding to the hashed address you're trying to spend from, as well as a signature that can be verified with ...
user avatar
  • 2,002
7 votes
Accepted

How strict are the Unix Epoch time validation rules?

How strict are the time validation rules? Very. If the next block is mined more than 2 hours after the current block, would this not stall the blockchain? No. It doesn't break the rule "Full ...
user avatar
6 votes
Accepted

What forces transactions to be visible to all miners?

A transaction can go in a block if it's valid (references inputs that are already in the same or previous blocks, scripts are legal and return success, and signatures validate ok), regardless of ...
user avatar
6 votes

How does copying main stack prevent malformed unlocking scripts vulnerabilities?

you can find explanation here: https://bitcointalk.org/index.php?topic=5095376.msg49150302#msg49150302 the issue was actually with OP_RETURN. What OP_RETURN used to do is it would skip to the end ...
user avatar
  • 214
6 votes
Accepted

Does Bitcoin Core validate signatures by default?

Bitcoin Core does validate all signatures after a certain point, and can be configured to validate all signatures in history if so desired. The assumevalid feature only disables signature validation ...
user avatar
  • 62.4k
6 votes

How strict are the Unix Epoch time validation rules?

I think you have a misconception about what this clause means: Full nodes will not accept blocks with headers more than two hours in the future according to their clock. You appear to be ...
user avatar
  • 161
5 votes
Accepted

which transactions does bitcoind validate?

1, 2 and 3. Transactions that arrive through inventory announcements on the network are validated completely by checking the form of the transaction for sanity, executing the script, checking ...
user avatar
  • 15.1k
5 votes

Which sender is banned in case of invalid transactions or blocks?

There is no way to know which node created a transaction or block, unless they publish that information themselves. Nodes should not have an identity that leaks into transaction or block data. So ...
user avatar
5 votes

Schnorr batch validation speed statistics

Speedup in well optimized cryptographic functions are hard to come by. In libsecp256k1 we'll usually celebrate a 4% algorithmic speedup. Figures on the order of 2x are reasonable for the usage in ...
user avatar
  • 7,519
5 votes
Accepted

Does bitcoin validate transactions against the mempool?

A transaction that has been included in a block does not need to be in a node's mempool in order for that node to validate the block. Each block contains the transactions, so by downloading and ...
user avatar
  • 17.4k
5 votes
Accepted

How is a bitcoin transaction validated?

Nodes maintain multiple databases, they do not just store the blockchain and scan it every time it wants to do something. These databases include a block index (so that it knows where to find a block) ...
user avatar
  • 62.4k
5 votes
Accepted

Is it theoretically possible to have an inverted nLockTime?

This is intentionally not possible. If a transaction would be valid in block X, we want it (absent double spend) to remain valid in any successor of X. This guarantees that (temporary, otherwise ...
user avatar
5 votes
Accepted

Are attempts to spend from a timelocked UTXO rejected?

I'm going to only address the first part of your question, as I think the root of your confusion can be addressed there. Time locking in Bitcoin refers to two related and interacting, but ...
user avatar
4 votes

Would moving a transaction from an old block to a new one allow more pruning?

This seems a lot of effort for absolutely no benefit. In the Bitcoin pruning model you discard ALL those old blocks anyway, and JUST keep the utxo set. It doesn't matter whether a utxo is in an old ...
user avatar
4 votes

What forces transactions to be visible to all miners?

Whomever originates the transaction (the sender) wants their transaction completed as quickly as possible, especially if they attached a big "incentive" (fee) to it. So they will announce their ...
user avatar
  • 1,334
4 votes
Accepted

What prevents anyone from spending utxos from a native segwit address?

Segwit is a soft fork. A supermajority of miners have agreed that they will not include such transactions in their blocks, and will orphan any block that does include such a transaction. If you send ...
user avatar
4 votes
Accepted

A couple of questions on Schnorr sig

A schnorr signature, without key prefixing, is a tuple {pubkey (P), message (m), R, s} where the equation R == sG + H(R||m)P holds. Now, assume you have pubkeys P and P2 who's discrete logs differ ...
user avatar
  • 7,519
4 votes
Accepted

How are blocks verified?

A block consists of a header, and then a number of serialised transactions. The block header contains no script, it only contains data such as the merkle root of the transactions in the block (so the ...
user avatar
  • 11.4k
4 votes
Accepted

Why every node needs to validate a transaction in Bitcoin

I think your confusion comes from a slight misunderstanding of the reason a node validates all transactions/blocks. This validation is done so that the user running the node can join the network and ...
user avatar
  • 17.4k
4 votes
Accepted

How to tell if a transaction is valid?

When you spend Bitcoin in a transaction, the transaction must reference at least one existing unspent transaction output (UTXO) and provide a valid signature proving that you are authorized to spend ...
user avatar
  • 64.6k
4 votes

Does each block contain all the Bitcoin transactions for that time period?

The process of a transaction being created and included in the blockchain is as follows: The sender creates, signs, and broadcasts the transaction All Bitcoin full nodes, including miners and regular ...
user avatar
4 votes

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

A bitcoin transaction will create outputs, which can later be used as input to a new transaction. Each output will be locked to what is called a scriptpubkey, which basically sets up the cryptographic ...
user avatar
  • 17.4k
4 votes

Meaning of "Drop the signature" comments in OP_CHECKSIG code (Bitcoin v0.1.0)

You are correct that the signature would not actually be present in that hash due to the OP_CODESEPARATOR used. Keep in mind that v0.1.0 was very unpolished code and had a lot of bugs and weird ...
user avatar
  • 11.4k
4 votes

Understanding Bitcoin Validator Node Decentralization

Validation All Bitcoin nodes are validator nodes. There are no special validator nodes. No nodes rely on other nodes to perform validation. No nodes need to trust other nodes. The only partial ...
user avatar

Only top scored, non community-wiki answers of a minimum length are eligible