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 ...
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 ...
14
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. ...
9
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 ...
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 ...
8
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 ...
8
votes
Accepted
What does an un-upgraded node see when new Taproot transactions are on chain?
Yet, if the transactions are valid, the old nodes have no idea where those coins got spent. Are they seen as lost coins?
Old nodes do know where the coins are going, as the transaction format didn't ...
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 ...
7
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 ...
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 ...
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 ...
6
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 ...
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 ...
6
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 ...
6
votes
Accepted
If my node is connected to 7 nodes and 4 of those say that a block they transmitted to me is valid will i mark it as valid?
No, every node validates transactions and blocks independently according to a shared ruleset. It doesn't matter if someone creates a hundred nodes to connect to you and send you invalid transactions ...
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 ...
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 ...
5
votes
How do nodes come to consensus on whether a timestamp is valid?
They don't need to.
If a block's timestamp is in the future, it won't be accepted - but it also won't be marked as invalid. Once enough time passes, the node will accept the block if it is offered or ...
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) ...
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 ...
5
votes
Bitcoin Core file with the signing keys was removed from repo. How is the process supposed to be now?
Instead of fetching the keys from keyservers by fingerprint, you can now get the keys actually used from https://github.com/bitcoin-core/guix.sigs/tree/main/builder-keys. This repository contains all ...
4
votes
how to evaluate if this (or any) bitcoin public key / private key combination is valid?
First, what you defining as public key and private key are actually a bitcoin address and a private key encoded in Wallet Import Format (WIF).
In order to check that the WIF and the bitcoin addresses ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
validation × 151transactions × 42
blockchain × 31
block × 24
bitcoin-core × 17
transaction-verification × 16
mining-theory × 11
signature × 10
consensus × 9
block-validity × 9
nodes × 8
script × 7
full-node × 7
address × 6
json-rpc × 6
bitcoind × 5
security × 5
bitcoin-core-development × 5
blockchain-fork × 5
mempool × 5
proof-of-work × 4
p2sh × 4
c++ × 4
schnorr-signatures × 4
input-script × 4