Why can't miners meet the difficulty by picking a low number for the block hash?What is preventing me from simply constructing a hash that's lower than the current target?Why is the hash rate pumped near difficulty calculations?How is it that concurrent miners do not subvert each other's work?Difficulty for hash (reversed function of “does hash met difficulty/target”)Why didn't the difficulty adjust for the first 30,240 blocks?Why wouldn't miners change the protocol? (e.g. change difficulty)How is mining difficulty defined (formula)?Why can't a Bitcoin fork take over?When computing the hash, do you need anything after the number of difficulty bits?
What is the purpose of Strength, Intelligence and Dexterity in Path of Exile?
Wrong Stamping of UK Visa
Create a list of snaking numbers under 50,000
Printing a list as "a, b, c." using Python
Generic method to call API functions with simple retrial on errors
Inspiration for failed idea?
Why is "I let him to sleep" incorrect (or is it)?
What control character is ^ in the buffer in a file open in vim?
I feel cheated by my new employer, does this sound right?
What is the following VRP?
Defending Castle from Zombies
Why military weather satellites?
How can I reply to coworkers who accuse me of automating people out of work?
Coupling two 15 Amp circuit breaker for 20 Amp
having problems with greek characters in a table using csvsimple
Journal published a paper, ignoring my objections as a referee
Why are JWST optics not enclosed like HST?
Moscow SVO airport, how to avoid scam taxis without pre-booking?
Count the number of triangles
Do multi-engine jets need all engines with equal age to reduce asymmetry in thrust and fuel consumption arising out of deterioration?
Can a network vulnerability be exploited locally?
Should I use the words "pyromancy" and "necromancy" even if they don't mean what people think they do?
How to understand payment due date for credit card?
Why did Lucius make a deal out of Buckbeak hurting Draco but not about Draco being turned into a ferret?
Why can't miners meet the difficulty by picking a low number for the block hash?
What is preventing me from simply constructing a hash that's lower than the current target?Why is the hash rate pumped near difficulty calculations?How is it that concurrent miners do not subvert each other's work?Difficulty for hash (reversed function of “does hash met difficulty/target”)Why didn't the difficulty adjust for the first 30,240 blocks?Why wouldn't miners change the protocol? (e.g. change difficulty)How is mining difficulty defined (formula)?Why can't a Bitcoin fork take over?When computing the hash, do you need anything after the number of difficulty bits?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
In terms of 'proof of work' my novice understanding is that miners are tying to come up with a 64-digit hexadecimal number, "hash," that is less than or equal to the target hash.
Can't miners always get lower than the target has by inputting "63 zeros followed by a 1?
Beginner here, I apologize for my simplistic understanding.
difficulty proof-of-work block-validity block-hash
New contributor
add a comment |
In terms of 'proof of work' my novice understanding is that miners are tying to come up with a 64-digit hexadecimal number, "hash," that is less than or equal to the target hash.
Can't miners always get lower than the target has by inputting "63 zeros followed by a 1?
Beginner here, I apologize for my simplistic understanding.
difficulty proof-of-work block-validity block-hash
New contributor
Possible duplicate of What is preventing me from simply constructing a hash that's lower than the current target?
– chytrik
5 hours ago
add a comment |
In terms of 'proof of work' my novice understanding is that miners are tying to come up with a 64-digit hexadecimal number, "hash," that is less than or equal to the target hash.
Can't miners always get lower than the target has by inputting "63 zeros followed by a 1?
Beginner here, I apologize for my simplistic understanding.
difficulty proof-of-work block-validity block-hash
New contributor
In terms of 'proof of work' my novice understanding is that miners are tying to come up with a 64-digit hexadecimal number, "hash," that is less than or equal to the target hash.
Can't miners always get lower than the target has by inputting "63 zeros followed by a 1?
Beginner here, I apologize for my simplistic understanding.
difficulty proof-of-work block-validity block-hash
difficulty proof-of-work block-validity block-hash
New contributor
New contributor
edited 8 hours ago
Murch♦
36.5k27 gold badges120 silver badges354 bronze badges
36.5k27 gold badges120 silver badges354 bronze badges
New contributor
asked 9 hours ago
jackjack
111 bronze badge
111 bronze badge
New contributor
New contributor
Possible duplicate of What is preventing me from simply constructing a hash that's lower than the current target?
– chytrik
5 hours ago
add a comment |
Possible duplicate of What is preventing me from simply constructing a hash that's lower than the current target?
– chytrik
5 hours ago
Possible duplicate of What is preventing me from simply constructing a hash that's lower than the current target?
– chytrik
5 hours ago
Possible duplicate of What is preventing me from simply constructing a hash that's lower than the current target?
– chytrik
5 hours ago
add a comment |
2 Answers
2
active
oldest
votes
The hash is a result of computing two rounds of SHA256 on the block header. If you set the hash yourself, when other nodes try to verify the hash by performing the aforementioned computation, it will not (however, there is an infinitesimal chance) result in "63 zeros followed by a 1". I suggest reading about hash functions.
The only reliable way to create a valid hash is to continuously compute the hash on the actual block header, while modifying the contents of the block so that the block is still valid (e.g. nonce, transactions, block version, etc.), but gives you a lot of tries (guesses) until you get an output that is valid. It is basically brute forcing, so having fast, efficient mining hardware is an advantage.
See also: Block Hashing Algorithm
add a comment |
The block hash is the digest of hashing the block header with SHA-256d. This digest must meet the difficulty requirement when interpreted as a number, and since it's unique is also used as an identifier for the block.
The hash cannot be picked arbitrarily, as that would require you to revert a hash function. This contradicts the pre-image resistance property of cryptographic hash functions which states:
Given a hash h, it is difficult to find a message m that for which h = hash(m).
In fact, the proof-of-work puzzle of trying to find a block which has a specific prefix is essentially requiring miners to solve a much easier sub-problem: finding a partial pre-image.
In conclusion, the only practical way for a miner to pick a block hash is by finding a block header whose digest meets the difficulty statement.
Not a programmer here, so I'm trying to understand this on simple terms. Let's use numbers 0-9. Target hash is 6. One miner picks number 2, which is below the target hash, is this sufficient?
– jack
8 hours ago
Where does this simple analogy break down?
– jack
8 hours ago
1
Yes, any number that is smaller than the target hash meets the difficulty. But they cannot just "pick" 2. They have to try many block templates until they find one which happens to hash to 2. :)
– Murch♦
7 hours ago
@jack to be more explicit, the miner does not pick a hash. The miner picks a header, from which the hash is computed.
– stewbasic
48 mins ago
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "308"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
jack is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fbitcoin.stackexchange.com%2fquestions%2f90095%2fwhy-cant-miners-meet-the-difficulty-by-picking-a-low-number-for-the-block-hash%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
The hash is a result of computing two rounds of SHA256 on the block header. If you set the hash yourself, when other nodes try to verify the hash by performing the aforementioned computation, it will not (however, there is an infinitesimal chance) result in "63 zeros followed by a 1". I suggest reading about hash functions.
The only reliable way to create a valid hash is to continuously compute the hash on the actual block header, while modifying the contents of the block so that the block is still valid (e.g. nonce, transactions, block version, etc.), but gives you a lot of tries (guesses) until you get an output that is valid. It is basically brute forcing, so having fast, efficient mining hardware is an advantage.
See also: Block Hashing Algorithm
add a comment |
The hash is a result of computing two rounds of SHA256 on the block header. If you set the hash yourself, when other nodes try to verify the hash by performing the aforementioned computation, it will not (however, there is an infinitesimal chance) result in "63 zeros followed by a 1". I suggest reading about hash functions.
The only reliable way to create a valid hash is to continuously compute the hash on the actual block header, while modifying the contents of the block so that the block is still valid (e.g. nonce, transactions, block version, etc.), but gives you a lot of tries (guesses) until you get an output that is valid. It is basically brute forcing, so having fast, efficient mining hardware is an advantage.
See also: Block Hashing Algorithm
add a comment |
The hash is a result of computing two rounds of SHA256 on the block header. If you set the hash yourself, when other nodes try to verify the hash by performing the aforementioned computation, it will not (however, there is an infinitesimal chance) result in "63 zeros followed by a 1". I suggest reading about hash functions.
The only reliable way to create a valid hash is to continuously compute the hash on the actual block header, while modifying the contents of the block so that the block is still valid (e.g. nonce, transactions, block version, etc.), but gives you a lot of tries (guesses) until you get an output that is valid. It is basically brute forcing, so having fast, efficient mining hardware is an advantage.
See also: Block Hashing Algorithm
The hash is a result of computing two rounds of SHA256 on the block header. If you set the hash yourself, when other nodes try to verify the hash by performing the aforementioned computation, it will not (however, there is an infinitesimal chance) result in "63 zeros followed by a 1". I suggest reading about hash functions.
The only reliable way to create a valid hash is to continuously compute the hash on the actual block header, while modifying the contents of the block so that the block is still valid (e.g. nonce, transactions, block version, etc.), but gives you a lot of tries (guesses) until you get an output that is valid. It is basically brute forcing, so having fast, efficient mining hardware is an advantage.
See also: Block Hashing Algorithm
answered 9 hours ago
JBaczukJBaczuk
5,8121 gold badge5 silver badges25 bronze badges
5,8121 gold badge5 silver badges25 bronze badges
add a comment |
add a comment |
The block hash is the digest of hashing the block header with SHA-256d. This digest must meet the difficulty requirement when interpreted as a number, and since it's unique is also used as an identifier for the block.
The hash cannot be picked arbitrarily, as that would require you to revert a hash function. This contradicts the pre-image resistance property of cryptographic hash functions which states:
Given a hash h, it is difficult to find a message m that for which h = hash(m).
In fact, the proof-of-work puzzle of trying to find a block which has a specific prefix is essentially requiring miners to solve a much easier sub-problem: finding a partial pre-image.
In conclusion, the only practical way for a miner to pick a block hash is by finding a block header whose digest meets the difficulty statement.
Not a programmer here, so I'm trying to understand this on simple terms. Let's use numbers 0-9. Target hash is 6. One miner picks number 2, which is below the target hash, is this sufficient?
– jack
8 hours ago
Where does this simple analogy break down?
– jack
8 hours ago
1
Yes, any number that is smaller than the target hash meets the difficulty. But they cannot just "pick" 2. They have to try many block templates until they find one which happens to hash to 2. :)
– Murch♦
7 hours ago
@jack to be more explicit, the miner does not pick a hash. The miner picks a header, from which the hash is computed.
– stewbasic
48 mins ago
add a comment |
The block hash is the digest of hashing the block header with SHA-256d. This digest must meet the difficulty requirement when interpreted as a number, and since it's unique is also used as an identifier for the block.
The hash cannot be picked arbitrarily, as that would require you to revert a hash function. This contradicts the pre-image resistance property of cryptographic hash functions which states:
Given a hash h, it is difficult to find a message m that for which h = hash(m).
In fact, the proof-of-work puzzle of trying to find a block which has a specific prefix is essentially requiring miners to solve a much easier sub-problem: finding a partial pre-image.
In conclusion, the only practical way for a miner to pick a block hash is by finding a block header whose digest meets the difficulty statement.
Not a programmer here, so I'm trying to understand this on simple terms. Let's use numbers 0-9. Target hash is 6. One miner picks number 2, which is below the target hash, is this sufficient?
– jack
8 hours ago
Where does this simple analogy break down?
– jack
8 hours ago
1
Yes, any number that is smaller than the target hash meets the difficulty. But they cannot just "pick" 2. They have to try many block templates until they find one which happens to hash to 2. :)
– Murch♦
7 hours ago
@jack to be more explicit, the miner does not pick a hash. The miner picks a header, from which the hash is computed.
– stewbasic
48 mins ago
add a comment |
The block hash is the digest of hashing the block header with SHA-256d. This digest must meet the difficulty requirement when interpreted as a number, and since it's unique is also used as an identifier for the block.
The hash cannot be picked arbitrarily, as that would require you to revert a hash function. This contradicts the pre-image resistance property of cryptographic hash functions which states:
Given a hash h, it is difficult to find a message m that for which h = hash(m).
In fact, the proof-of-work puzzle of trying to find a block which has a specific prefix is essentially requiring miners to solve a much easier sub-problem: finding a partial pre-image.
In conclusion, the only practical way for a miner to pick a block hash is by finding a block header whose digest meets the difficulty statement.
The block hash is the digest of hashing the block header with SHA-256d. This digest must meet the difficulty requirement when interpreted as a number, and since it's unique is also used as an identifier for the block.
The hash cannot be picked arbitrarily, as that would require you to revert a hash function. This contradicts the pre-image resistance property of cryptographic hash functions which states:
Given a hash h, it is difficult to find a message m that for which h = hash(m).
In fact, the proof-of-work puzzle of trying to find a block which has a specific prefix is essentially requiring miners to solve a much easier sub-problem: finding a partial pre-image.
In conclusion, the only practical way for a miner to pick a block hash is by finding a block header whose digest meets the difficulty statement.
answered 8 hours ago
Murch♦Murch
36.5k27 gold badges120 silver badges354 bronze badges
36.5k27 gold badges120 silver badges354 bronze badges
Not a programmer here, so I'm trying to understand this on simple terms. Let's use numbers 0-9. Target hash is 6. One miner picks number 2, which is below the target hash, is this sufficient?
– jack
8 hours ago
Where does this simple analogy break down?
– jack
8 hours ago
1
Yes, any number that is smaller than the target hash meets the difficulty. But they cannot just "pick" 2. They have to try many block templates until they find one which happens to hash to 2. :)
– Murch♦
7 hours ago
@jack to be more explicit, the miner does not pick a hash. The miner picks a header, from which the hash is computed.
– stewbasic
48 mins ago
add a comment |
Not a programmer here, so I'm trying to understand this on simple terms. Let's use numbers 0-9. Target hash is 6. One miner picks number 2, which is below the target hash, is this sufficient?
– jack
8 hours ago
Where does this simple analogy break down?
– jack
8 hours ago
1
Yes, any number that is smaller than the target hash meets the difficulty. But they cannot just "pick" 2. They have to try many block templates until they find one which happens to hash to 2. :)
– Murch♦
7 hours ago
@jack to be more explicit, the miner does not pick a hash. The miner picks a header, from which the hash is computed.
– stewbasic
48 mins ago
Not a programmer here, so I'm trying to understand this on simple terms. Let's use numbers 0-9. Target hash is 6. One miner picks number 2, which is below the target hash, is this sufficient?
– jack
8 hours ago
Not a programmer here, so I'm trying to understand this on simple terms. Let's use numbers 0-9. Target hash is 6. One miner picks number 2, which is below the target hash, is this sufficient?
– jack
8 hours ago
Where does this simple analogy break down?
– jack
8 hours ago
Where does this simple analogy break down?
– jack
8 hours ago
1
1
Yes, any number that is smaller than the target hash meets the difficulty. But they cannot just "pick" 2. They have to try many block templates until they find one which happens to hash to 2. :)
– Murch♦
7 hours ago
Yes, any number that is smaller than the target hash meets the difficulty. But they cannot just "pick" 2. They have to try many block templates until they find one which happens to hash to 2. :)
– Murch♦
7 hours ago
@jack to be more explicit, the miner does not pick a hash. The miner picks a header, from which the hash is computed.
– stewbasic
48 mins ago
@jack to be more explicit, the miner does not pick a hash. The miner picks a header, from which the hash is computed.
– stewbasic
48 mins ago
add a comment |
jack is a new contributor. Be nice, and check out our Code of Conduct.
jack is a new contributor. Be nice, and check out our Code of Conduct.
jack is a new contributor. Be nice, and check out our Code of Conduct.
jack is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Bitcoin Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fbitcoin.stackexchange.com%2fquestions%2f90095%2fwhy-cant-miners-meet-the-difficulty-by-picking-a-low-number-for-the-block-hash%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Possible duplicate of What is preventing me from simply constructing a hash that's lower than the current target?
– chytrik
5 hours ago