Skip to main content
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) ...
Pieter Wuille's user avatar
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://...
Karel Bílek's user avatar
  • 2,705
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 ...
Murch's user avatar
  • 77k
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 ...
Pieter Wuille's user avatar
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 ...
cloudnthings's user avatar
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 ...
Ava Chow's user avatar
  • 71.5k
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 ...
Raghav Sood's user avatar
  • 17.2k
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-...
Ugam Kamat's user avatar
  • 7,437
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 ...
Murch's user avatar
  • 77k
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 ...
Murch's user avatar
  • 77k
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 ...
Pieter Wuille's user avatar
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 ...
Pieter Wuille's user avatar
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&...
Lightlike's user avatar
  • 796
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 ...
rny's user avatar
  • 2,428
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 ...
Pieter Wuille's user avatar
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 (...
cdecker's user avatar
  • 9,563
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 ...
MCCCS's user avatar
  • 10.2k
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 ...
MCCCS's user avatar
  • 10.2k
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.
Pieter Wuille's user avatar
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&...
Erik Aronesty's user avatar
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 ...
Antoine Poinsot's user avatar
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. ...
Саша Черных's user avatar
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). ...
Pieter Wuille's user avatar
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 ...
Ava Chow's user avatar
  • 71.5k
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 ...
RedGrittyBrick's user avatar
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 ...
RedGrittyBrick's user avatar
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) ...
RedGrittyBrick's user avatar
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 ...
Raghav Sood's user avatar
  • 17.2k
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: ...
user1658887's user avatar
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)...
Chris Moore's user avatar
  • 14.8k

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