Реальная история.
Я знаю, как использовать шахтер, как использовать бассейн и такие вещи, как это, и я сделал это раньше (и я сейчас), но я всегда задавался вопрос, что сам процесс был вычисление хэш? Что мой шахтер делать прямо сейчас?
Идея добычи заключается в расчете криптографического хэша блока (блок-в основном только список последних операций, хэш предыдущего блока (так что вы не можете подготовить мошеннические блоки заранее), а также некоторые другие вещи), такого что значение хэша ниже, чем заранее определенная цель. Если да, то вы выиграете: ваш блок включаются в блоке цепи, и вы получите блок вознаграждение (в настоящее время 50 BTC), а также все операционные издержки, связанные с этим блоком. Если хэш не подпадает под цели, вы потеряете, и вы должны попробовать еще раз, изменив небольшой фрагмент данных в блоке (так называемый одноразовый номер), который вызывает весь хэш, чтобы изменить случайным образом. Ключевой момент о криптографического хэша, что невозможно предсказать, какой эффект изменения временного значения (или любую другую часть данных) будет иметь на хэш: единственный способ получить хэш, который соответствует цели будет попробовать все возможные одноразового номера (типичная система добыча способна пробовать миллионы в секунду) до тех пор, пока не найдете тот, который работает. Это ключ к безопасности Bitcoin: это невозможно для тех, кто ввести мошеннический блок без первого использования тонны вычислительной мощности, чтобы найти тот, который соответствует цели хэша. Мало того, что они должны были бы (в среднем) дополнительной вычислительной мощности, чем в остальной части сети вместе взятые, потому что если кто-то находит реальный блок первых, все усилия, пытаясь произвести мошеннический блок впустую.
Я видел это:
doHash (block_header) {
Hasher = новый SHA256 ();
hasher.update (block_header [0..63]); // обновление A1
hasher.update (block_header [64..127]); // обновление A2
hash1 = hasher.getHash ();
hasher.reset ();
hasher.update (hash1); // обновление B
hash2 = hasher.getHash ();
вернуться hash2
}
но у меня довольно много ни малейшего понятия, что это значит.
Этот код вызывает функцию хэширования на блоках, нет ничего особенного.