29
votes
Accepted
How are bitcoin transactions and the blockchain transferred over the internet?
The Bitcoin P2P network
The Bitcoin P2P network is a randomly-wired gossip network. This means that all nodes make arbitrary connections to other peers (using various ways to discover new addresses) ...
28
votes
What is TxIn's sequence?
Note that the accepted answer is outdated.
Currently, sequence numbers are mainly used for signaling RBF - replace-by-fee - that allows you to resend a transaction with a higher fee.
See https://...
20
votes
Accepted
Can bitcoin protocol be changed to add economic incentives to validating nodes?
I don't think it is possible. There are a few problems to incentivizing the operation of nodes.
When you pay people to run nodes, people running multiple nodes provide less value but earn more for ...
16
votes
Accepted
Bitcoin protocol and Wireshark
Someone wrote a Bitcoin protocol decoder for Wireshark, several years ago. I assume it was included in the Wireshark distribution.
Wireshark simply knows about the Bitcoin protocol. There is no magic ...
12
votes
What is relation between scriptSig and scriptPubKey?
I had the same question as well and spent forever trying to understand it and finally cracked it.
"The sender (A) only has the Bitcoin Address of the recipient (B), so how does he get the pubKeyHash ...
11
votes
Why don't the timestamps in the block chain always increase?
There is no requirement that blocks have a timestamp after the previous block. The only requirement is that the timestamp is greater than the median timestamp of the last 11 blocks. So this means that ...
9
votes
Accepted
Why was an insecure merkle tree implementation chosen?
As with many things in Bitcoin, it is likely simply because it worked well enough, and such an attack was not immediately obvious.
Several of the choices made in the early days of Bitcoin don't have ...
9
votes
Accepted
What are the differences between Bitcoin and Libra?
This question might be considered too broad and too opinion based according to the rules of this forum. However, tackling it from a technical standpoint based on facts rather than opinions might be on-...
8
votes
Accepted
Why is it not possible to replay transactions?
Transaction inputs use Unspent Transaction Outputs (UTXO).
UTXO are created by transactions. They are uniquely identified by the transaction id and the output position in the transaction that created ...
8
votes
What is an "unspent output"?
Bitcoin is a distributed system that enables users to receive, store, and send money. Value is transmitted by submitting a payment order to the network called a transaction. Transactions are ...
8
votes
Accepted
Why does getheaders P2P API return more than getblocks?
Really getblocks should have been called getblockhashes , as the response contains just block hashes, not full blocks.
Every block can be observed in three different ways:
The full block, containing ...
8
votes
Accepted
What does the little-endian notation improve for Bitcoin?
Almost all CPUs these days work natively in little-endian. To operate on big-endian numbers, additional byteswap instructions are needed.
For most things, I think this effect is negligible. Network ...
7
votes
Accepted
How does bitcoin prevent DDoS amplification via the `addr` p2p message type?
For a long time, there was a restriction to strongly prefer connecting to addresses with port 8333. This restriction was recently removed in PR 23542 and PR 23306, although a list of "bad ports&...
6
votes
Accepted
what is the "Banlist" (Bitcoin Core)
It is a blacklist of erroneous nodes' IP addresses which has accrued a certain amount of banscore due to "misbehaviour". To check what sort of erroneous behaviour is considered "misbehaving", you can ...
6
votes
At which point and how does the miner who successfully solved hash get coins?
The block subsidy isn't awarded by anyone. It is taken by the miner, by virtue of creating a block that gives himself money.
The system's role in this is restricted to permitting blocks to indeed ...
6
votes
Accepted
How would the gossip protocol announce channels from a channel factory?
Pretty much everything would stay the same. If you look at the relevant messages channel_announcement and channel_update we have the following formats:
channel_announcement
type: 256 (...
6
votes
Accepted
Why raw Bitcoin transaction are in hex format?
Because unlike addresses, hex raw transactions aren't meant to be seen or used by end-users. Hex is easy to encode and decode (every two character in hex represents one byte*, whereas in base64 one ...
6
votes
Accepted
does bitcoin have omni layer?
Question 1) why is not the omni a new blockchain at all if they forked it from bitcoin ? we can see that on github.
As Murch said, Omni uses Bitcoin as its immutable database. So Omni is like a ...
6
votes
Accepted
What is the size limit on the UTXO set, if any?
There is no such limit. Growth of the UTXO set is somewhat regulated by the fact that creating UTXOs takes up blockchain space, which may cost fees to use. But there are no size limits as such.
5
votes
How is the bitcoin 21 million cap implemented?
An updated answer.
First, check out the block subsidy calculation: https://github.com/bitcoin/bitcoin/blob/v23.0/src/validation.cpp#L1417
CAmount GetBlockSubsidy(int nHeight, const Consensus::Params&...
5
votes
Where exactly is the "off-by-one" difficulty bug?
The retarget calculation is off-by-one. But it is not because it takes the difference between the time of the last block of the period and the time of the second block of this period (for instance ...
5
votes
Accepted
Adding «Donate» Bitcoin button in README.md file GitHub repository
1. Demonstration
Click to donate button on page:
https://github.com/KristinitaTest/KristinitaTest.github.io/blob/master/donate/README.md
Link must be opened in your Bitcoin client, example:
2. ...
5
votes
Accepted
Can I rely on multisignature addresses being future proof?
Multisig transaction types use standard CHECKMULTISIG opcodes (which have been present in Bitcoin since its initial release in January 2009) and P2SH addresses (standardized in BIP13 in October 2011). ...
5
votes
Accepted
Merkle Root for 1-transaction block!
The merkle root of a block is the hash of all of the transactions. If there is one transaction, then the hash of all of the transactions is the hash of that one transaction. So the merkle root and the ...
5
votes
Why raw Bitcoin transaction are in hex format?
Why raw Bitcoin transaction are in hex format?
They are not.
So far as I know and have read.
Bitcoin raw format
According to https://bitcoin.org/en/developer-reference
Bitcoin transactions are ...
5
votes
Accepted
Bitcoin Fraud/Recovery Protocol Proposals
The question is framed in a way that does not align with reality.
Does Bitcoin plan to implement any Fraud/Loss Prevention in their protocol?
Bitcoin doesn't exist as a person, corporation or other ...
5
votes
What protocol do bitcoin nodes use to talk to each other?
What protocol do bitcoin nodes use to talk to each other?
Most Bitcoin nodes will primarily use:
Layer
Protocol
Application Layer
Bitcoin Protocol
Transport Layer
Transport Control Protocol (TCP)
...
4
votes
Why don't the timestamps in the block chain always increase?
There is a fair amount of leeway in the block timestamp. The timestamp for block N must be greater than the median network time, which is calculated as the median of the past 11 blocks, and also less ...
4
votes
How do you get a Bitcoin Public Key from a Private Key
The public key is a point (x, y) on the secp256k1 curve which can be computed by multiplying the base point G with the secret key sk. Here is a self-contained concise python function, which does this:
...
4
votes
How do you get a Bitcoin Public Key from a Private Key
I took Tim S's answer and stripped out more stuff until it fitted on a single page for me:
https://gist.github.com/dooglus/3b1fcbc2449063a1c3f7f1003ca26447
#! /usr/bin/env python
class Point(object)...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
protocol × 422transactions × 69
development × 46
blockchain × 45
network × 37
bitcoin-core × 36
bitcoind × 25
client × 25
block × 20
script × 20
ripple × 17
security × 16
mining-pools × 15
consensus × 15
mining-theory × 14
difficulty × 13
p2p × 13
bitcoin-core-development × 12
getwork × 11
wallet × 10
blockchain-fork × 9
json-rpc × 8
mining-reward × 8
nodes × 8
transaction-verification × 8