1

The one validity condition present in the above list that is not found in other systems is the requirement for "proof-of-work". The precise condition is that the double-SHA-256 hash of every block, treated as a 256-bit number, must be less than a dynamically adjusted target, which as of the time of this writing is approximately 2187.

Ethereum White Paper - §Introduction to Bitcoin and Existing Concepts - Mining

How is the dynamically adjusted target expressed in the Yellow Paper? I mean, what is the mathematical term for it in the Yellow Paper? Is it related to Hd, the difficulty?

1 Answer 1

1

Yes, In the Ethereum blockchain, difficulty and the dynamically adjusted target are related (the difficulty is used to calculate a target). Basically to keep the Ethereum network functioning as expected its needed to maintain the average block-time (approximately 14s).

Since the number of nodes is kept changing and the strategy to find a valid hash is enumerating the possibilities in which the time to find it is totally a random, the average block- time is controlled by the Ethash algorithm by making it hard to generate a block if the last blocks have been found in shorter time than usual and making it easy if it was found in lesser time.

The process of making the block generation hard or easy is done by dynamically adjusting a target where the hash of the next block should be less than that target. That target is also expressed in terms of the difficulty at that block generation time.

As per the Ethash algorithm explained in the Github Ethereum wiki here,

Mining

The mining algorithm is defined as follows:

def mine(full_size, dataset, header, difficulty):
    target = zpad(encode_int(2**256 // difficulty), 64)[::-1]
    from random import randint
    nonce = randint(0, 2**64)
    while hashimoto_full(full_size, dataset, header, nonce) > target:
        nonce = (nonce + 1) % 2**64
    return nonce

Dynamically adjusted Target is calculated according to the difficulty at the moment and in mining it keeps finding a nonce while a hash less than the target is generated.

9
  • The Bitcoin whitepaper states the condition for the proof-of-work hash as: To have at least N zero bits as the leftmost bits (= its value is under 2^N where N is a natual number). However, it seems Ethereum is different. I found a mathematical term about it: n ≤ 2^256 / H_d, but I couldn't find any restriction for the possible value of the H_d than H_d∈ℙ (according to the Yellow Paper). Also the Ethereum White Paper states that it uses double-SHA256 hashes. Commented Sep 14, 2017 at 2:11
  • I'm confusing. Is what you said really how Ethash works? Commented Sep 14, 2017 at 2:15
  • What I said is a very abstract idea on how ethereum controls the average block generation time. You need to know exact values? Commented Sep 14, 2017 at 5:56
  • 1
    yes it varies, depending on the difficulty Commented Sep 15, 2017 at 5:36
  • 1
    you may refer this answer here as well Commented Sep 15, 2017 at 11:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.