78 votes
Accepted

Why did Satoshi design Bitcoin to be mineable only on specialized hardware, if the goal was decentralization?

Bitcoin was not designed to only be mineable with specialized hardware. When Bitcoin was created in 2009, ASIC miners did not exist, SHA256d ASICs did not exist. Even GPU mining software did not exist ...
Andrew Chow's user avatar
  • 67.5k
59 votes
Accepted

What is Gas Limit in Ethereum?

In Ethereum, gas is a measure of computational effort. To each operation, a fixed amount of gas is assigned (e.g. adding two numbers costs 3 gas, calculating a hash costs 30 gas, sending a transaction ...
jnnk's user avatar
  • 1,906
40 votes

51% attack - apparently very easy? refering to CZ's "rollback btc chain" - How to make sure such corruptible scenario can never happen so easily?

Disclaimer: I believe this question may be primarily opinion-based and not very appropriate for this site, but there are a number of technical misunderstandings that can be clarified along with it, so ...
Pieter Wuille's user avatar
38 votes
Accepted

Can bitcoin exist without miners?

if in the coming years the difficulty increases so much that mining is no longer profitable That's not really possible. The mining power is set so that the miners need 10 minutes in average to mine a ...
hardfork's user avatar
  • 2,107
33 votes
Accepted

Why do miners go offline?

One of the most common reasons for which miners go offline is when their profitability drops below the cost of electricity - this could either be the result of the BTC price dropping, or their local ...
Raghav Sood's user avatar
  • 16.9k
16 votes

What happens if two miners mine the next block at the same time?

What Nicolai said is not completely right. The network would decide which one is the main chain according to the following block mined. Let's assume that block A and B are mined at almost the same ...
Ethan's user avatar
  • 161
16 votes
Accepted

How is a block header hash compared to the target (bits)?

How to calculate the target from bits Let's start with a block-header, always 80-bytes that looks like this: ...
Jimmy Song's user avatar
  • 7,729
16 votes
Accepted

So I mined a block, but why would other nodes accept my mined block?

The incentive to mine on the currently longest chain is that there is a risk to the dishonest miner that honest, non-mining nodes may have already propagated the first block and hence reject and not ...
Matthew Stannard's user avatar
14 votes

Why do we need Proof of Work in bitcoin?

Proof of Work (PoW) basically makes sure that miners don’t cheat. There is no way to trust that everyone in the network is honest, so there has to be some way to prevent miners from creating new ...
JakeW's user avatar
  • 141
14 votes
Accepted

Why search for a nonce linearly (+1) vs searching only even or odd nonces?

A 2X rate with a 50% chance of missing a winning nonce is no advantage at all. Incrementing the nonce is the easiest mechanism of choosing the next nonce to try, so you try the most nonces per second ...
David Schwartz's user avatar
13 votes
Accepted

What can be done to slow/prevent mining centralization?

Asking how to prevent the mining industry from being centralized into places with low electricity costs is like asking how to prevent the shipping industry from being centralized into cities that are ...
Jestin's user avatar
  • 8,812
13 votes

Why did Satoshi design Bitcoin to be mineable only on specialized hardware, if the goal was decentralization?

GPU-mineable cryptos are arguably more decentralized. Sure, but in a bad way. Say you want to attack or compromise bitcoin. You have to buy ASICs to do it. You could use GPUs or CPUs, but you would ...
David Schwartz's user avatar
12 votes
Accepted

Why do we need Proof of Work in bitcoin?

Imagine I have 1 bitcoin. And imagine I can form a transaction to send that bitcoin to Alice or I can form a transaction to send that bitcoin to Charlie. Now, what stops me from forming both ...
David Schwartz's user avatar
12 votes
Accepted

Download single and specific block for study purposes

However this is JSON, I imagine I can't use it to verify the nonce. You can. You can build the block header using the data at the beginning of the JSON object and then hash that. Of course it would ...
Andrew Chow's user avatar
  • 67.5k
12 votes
Accepted

Understanding POW and transactions

This is a common misconception: mining is progress free. Yes, it may take 10000 hashes in your example on average to find a block, but this only means that every attempt has 1/10000 chance of being a ...
Pieter Wuille's user avatar
12 votes

How would faster blocks cause mining centralization?

Why faster blocks? This conversation often starts with someone pointing out that shortening the block interval would allow for a quicker first confirmation, reduce variance in mining revenue, and ...
Murch's user avatar
  • 71.7k
11 votes
Accepted

Why do you need the *complete* blockchain to mine bitcoins, why not just the last n blocks?

To mine a valid block, you need to ensure that every Bitcoin transaction in your block is valid. Because each transaction (except for coinbase transactions) spends the output from a previous ...
David A. Harding's user avatar
11 votes

What is a nonce?

Nonce is a 32 bit arbitrary random number that is typically used once. In Bitcoin's mining process, the goal is to find a hash below a target number which is calculated based on the difficulty. Proof ...
abeikverdi's user avatar
11 votes
Accepted

Do miners validate each other's blocks?

Mining is a random, progress-free process. Miners are essentially attempting to find a partial pre-image of a hash. Each new (valid) block candidate has exactly the same minuscule chance of yielding a ...
Murch's user avatar
  • 71.7k
11 votes

How is mining the exact same hash on every computer avoided?

Blocks commit to the set of transactions they contain, including the coinbase transaction. The coinbase transaction is the transaction which pays the subsidy/fees out to the miner who mined it. Since ...
Pieter Wuille's user avatar
10 votes

Probablity Distribution of mining

The expected time (mean) for a new block is of course 10 minutes, assuming constant hashrate, and no block propagation time. The tricky part is that there is no such thing as a point in time. You can ...
Felix Weis's user avatar
10 votes

51% attack - apparently very easy? refering to CZ's "rollback btc chain" - How to make sure such corruptible scenario can never happen so easily?

(adding some color) Some discussion I saw suggested that people promoting this believed they only needed to achieve >50% hashpower, which caused them to overestimate the feasibility. Reorging with ...
G. Maxwell's user avatar
  • 7,676
10 votes
Accepted

Why is the winner of Pow different everytime?

Because each miner may select the transactions (and the order in which they are included) in each block. Also, they do not all start on the same exact nonce, in fact they are changing more than just ...
JBaczuk's user avatar
  • 7,278
10 votes
Accepted

Bitcoin migrating to a ASIC resistant mining algorithm like RandomX used on Monero

The bitcoin community would have to decide that they don't particularly care about having significant security anymore. ASIC-resistance weakens the security of proof of work chains because it ...
David Schwartz's user avatar
10 votes
Accepted

Why are there more than two transaction outputs in a coinbase transaction?

A coinbase transaction can have as many outputs as the miner who created it wants. You may see that there are not just one output for the reward, sometimes there are multiple outputs so that the ...
Andrew Chow's user avatar
  • 67.5k
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 ...
Mithril's user avatar
  • 333
9 votes
Accepted

Why do two miners get different hashes for the same list of transactions?

The first transaction in a block is called the "generation" or "coinbase" transaction. It has no real inputs, and spends no coins. Instead, it pays out the subsidy and fees to the miner that generated ...
Pieter Wuille's user avatar
9 votes

Calculate hash of block header

The version is wrong: I have 02000000 But the one that appears on the block is Version 0x20000000 Doing the formatting: 00000020 Calculating the hash of the block: from hashlib import ...
CamiloARG's user avatar
  • 177
9 votes
Accepted

Does a Block contain the list of transactions? Or only the Merkle Tree?

You cannot obtain a list of transactions from the merkle tree. The merkle tree root is part of the block header, which as you said, allows quick verification of the proof-of-work. After the block ...
Raghav Sood's user avatar
  • 16.9k
9 votes

Do miners validate each other's blocks?

But why do miners consent that some other miner managed to mine a valid block before them? Any miner that is spending resources to find a new block will want to ensure that they are spending those ...
chytrik's user avatar
  • 17.9k

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