Почему в ethereum block hash нет нулевых нулей?

Ход блока должен быть ниже определенной сложности, не так ли? В биткойне это означает, что в хэш-значении есть много ведущих нулей, например. для биткойн-блока # 402329 хэш 000000000000000006efd706f4467e2d7ed6f0fed757ca7d59e2cc8c81a2d9e3.

Но для ethereum blockchain хэш блока # 1138224 0xa4f80a26aecb5fc975e12a9d3d0f6a7907c60b1d7e6b5205dfb4c984dad7f1ba.

Почему нет ведущих нулей?

16 голосов | спросил Matias 15 MaramTue, 15 Mar 2016 10:21:54 +03002016-03-15T10:21:54+03:0010 2016, 10:21:54

2 ответа


9

В блочной цепочке Ethereum трудность используется для вычисления цели.

Вот журналы этминера для номера блока 1257006 :

ℹ  35:02:42.89 ethminer  Solution found; Submitting to http://192.168.4.120:8545 ...
ℹ  35:02:42.89 ethminer    Nonce: ff4136b6b6a244ec
ℹ  35:02:42.89 ethminer    Mixhash: 47da5e47804594550791c24331163c1f1fde5bc622170e83515843b2b13dbe14
ℹ  35:02:42.89 ethminer    Header-hash: f5afa3074287b2b33e975468ae613e023e478112530bc19d4187693c13943445
ℹ  35:02:42.89 ethminer    Seedhash: 1730dd810f27fdefcac730fcab75814b7286002ecf541af5cdf7875440203215
ℹ  35:02:42.89 ethminer    Target: 00000000000baef6895d630131521d65d984555906990f43f352be4350291f92
ℹ  35:02:42.89 ethminer    Ethash: 0000000000095d18875acd4a2c2a5ff476c9acf283b4975d7af8d6c33d119c74
ℹ  35:02:42.89 ethminer  B-) Submitted and accepted.

Вот фрагмент Java для вычисления сложности с целью:

import java.math.BigInteger;

public class DifficultyDemo {
    public static void main(String[] args) {
        BigInteger numTwoPow256 = new BigInteger("2").pow(256);
        BigInteger target = new BigInteger("00000000000baef6895d630131521d65d984555906990f43f352be4350291f92", 16);
        BigInteger difficulty = numTwoPow256.divide(target);
        System.out.println(difficulty.toString());
    }
}

И сложность вычисляется как 24091770185844 , что соответствует сложности экрана проводника блока.

Мы можем использовать ethminer --check-pow <headerHash> & Lt; seedHash > & Lt; & трудность GT; <nonce> , чтобы проверить доказательство работы на достоверность следующим образом:

[email protected]:~$ ethminer --check-pow f5afa3074287b2b33e975468ae613e023e478112530bc19d4187693c13943445 1730dd810f27fdefcac730fcab75814b7286002ecf541af5cdf7875440203215 24091770185844 ff4136b6b6a244ec
VALID :-)
0000000000095d18875acd4a2c2a5ff476c9acf283b4975d7af8d6c33d119c74 < 00000000000baef6895d630131521d65d984555906990f43f352be4350291f93
  where 00000000000baef6895d630131521d65d984555906990f43f352be4350291f93 = 2^256 / 24091770185844
  and 0000000000095d18875acd4a2c2a5ff476c9acf283b4975d7af8d6c33d119c74 = ethash(f5afa3074287b2b33e975468ae613e023e478112530bc19d4187693c13943445, ff4136b6b6a244ec)
  with seed as 1730dd810f27fdefcac730fcab75814b7286002ecf541af5cdf7875440203215
(mixHash = 47da5e47804594550791c24331163c1f1fde5bc622170e83515843b2b13dbe14)
SHA3( light(seed) ) = 35ded12eecf2ce2e8da2e15c06d463aae9b84cb2530a00b932e4bbc484cde353

График шахтера будет проходить через ряд случайных Nonces. Этот Nonce, в сочетании с Seedhash и Header-hash с использованием хэш-функции, должен вычислять число ниже цели. Если это расчетное число ниже цели, майнер успешно заминировал блок, и детали блока будут отправлены сетевым узлам Ethereum.

В приведенном выше примере вычисленный хэш Etash больше Target и, следовательно, является неправильно заминированным блоком (который указан в отчете об ошибке).

В биткойне цель - это хеш блока. По мере роста сложности вы увидите, что число ведущих нулей увеличивается.

Блок 405390 имеет 17 ведущих нулей. Блок 40539 содержит 8 ведущих нулей (добытых в 2010 году).

Цель Ethereum является эквивалентом хеш-блока биткойна.

ответил The Officious BokkyPooBah 2 AMpSat, 02 Apr 2016 05:20:48 +030020Saturday 2016, 05:20:48
8

То, что вы видите в блочных исследователях, это sha3 заголовка блока, а не ethash.

ответил Yaron Welner 22 MarpmWed, 22 Mar 2017 22:32:51 +03002017-03-22T22:32:51+03:0010 2017, 22:32:51

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132