Алгоритм поиска биткойнов с точки зрения программиста

Эта страница: Блоки говорит, что добыча на самом деле предназначена для решения математической проблемы, но чтение алгоритм хэширования блокировки не дает большой поддержки. Я также пробовал читать исходный код bitcoind, но чтение кода занимает гораздо больше времени, чем чтение документации:)

И я написал простой клиент json-rpc для вызова метода getwork () для извлечения «данных», но что мне делать рядом с этими «данными»?

Кто-нибудь может объяснить процесс добычи в представлении программиста?

24 голоса | спросил Mark Ma 11 AM00000060000005431 2013, 06:29:54

4 ответа


36

Алгоритм интеллектуального анализа выглядит следующим образом:

  • Шаг 0 - Извлеките хэш предыдущего блока из сети.

  • Шаг 1 - Соберите список потенциальных транзакций, известных как «блок». Этот список транзакций поступает из одноранговой сети биткойнов.

  • Шаг 2 - Рассчитайте хэш для блока потенциальных транзакций вместе со случайным числом.
  • Шаг 3 - Если хеш больше, чем заданный уровень сложности, вы заминировали этот блок. Если нет, начните с шага 1. Любые добавления в список транзакций с шага 1 вместе с изменением случайного числа с шага 2 означают, что существует вероятность того, что критерий будет выполнен в следующем порядке.

С точки зрения программиста псевдокод может выглядеть примерно так:

P: = Хэш ранее заминированного блока
B: = блок транзакций
H: = хэш-функция
D: = Уровень сложности

0 Retreive P
1 Построить /Изменить B
2 IF H (P, B, некоторый случайный номер)> D END
3 GOTO 1

Я должен предупредить вас, что в этом описании есть несколько неточностей, но по большей части это должно быть достаточно хорошим. И вот еще несколько полезных разъяснений:

Что такое хеш?

Хеш - это функция, которая преобразует данные в число в определенном диапазоне. Хэш обладает тем свойством, что знание его вывода по существу непредсказуемо (в пределах заданного диапазона). Специфическая хэш-функция, используемая для разработки биткойнов, применяется в SHA256 дважды.

Как работает уровень сложности?

Этот непредсказуемый характер хеш-функции означает, что помещение случайных данных (транзакция + случайное число) будет по существу производить случайное число в определенном диапазоне. Дальнейшее ограничение диапазона желаемого результата влияет на то, насколько вероятно найти его в одном раунде. Это создает способ для вероятного определения того, как часто решение будет найдено в зависимости от количества попыток запуска алгоритма в сети. В частности, когда вы слышите термин гигашаш или терахаш, это относится к числу раз, когда может выполняться шаг 3. По мере роста количества хэшей в секунду по всей сети сеть автоматически повышает сложность, так что решение будет найдено в течение примерно 10 минут.

Что происходит, когда блок заминирован?

Когда блок заминирован, майнер отправляет блок всем другим шахтерам в сети в качестве доказательства того, что он его нашел. Этот блок содержит список транзакций, найденный хэш, конкретное случайное число и ссылку на предыдущий хеш. Поскольку каждый шахтер получает вновь заминированный блок, он удаляет все транзакции, которые он в настоящее время выполняет, которые существуют в блоке (поскольку они уже были подтверждены в цепочке блоков) и транслирует блок другим шахтерам, которые делают то же самое. Распространение происходит довольно быстро. Примечание: первоначальный шахтер блока получает «гонорар шахтеров», который является вознаграждением за любые неизрасходованные монеты от транзакций в дополнение к вознаграждению «coinbase», которое начиналось с 50 биткойнов и половинок после каждых 210 000 блоков (примерно один раз каждые 4 года). Вознаграждение монетки будет в конечном итоге настолько малым, что оно будет незначительным по сравнению с гонорарами шахтеров.

ответил John Henry 18 PM000000110000000231 2013, 23:30:02
1

Цель решения «головоломки» заключается в том, чтобы (а) задержать разработку блока в среднем на 10 минут и (б) понести реальные затраты на добычу блока (расходуя мощность процессора, а значит и энергию). Стоимость там, чтобы предотвратить атаку Sybil (ставить многие шахтерские машины на работу, чтобы атаковать 51%).

Задержка заложена, чтобы позволить хорошему блоку распространяться по всему миру всем другим шахтерам, не давая шахтеру, который просто чеканил новый блок за преимущество в головном старте. Для этого блочное время (10 минут) должно быть порядка величин, превышающих задержку распространения (несколько секунд).

Таким образом, головоломка в некотором смысле не имеет значения, она также может быть гигантским судоку.

ответил henq 27 WedEurope/Moscow2017-12-27T04:00:43+03:00Europe/Moscow12bEurope/MoscowWed, 27 Dec 2017 04:00:43 +0300 2017, 04:00:43
0

Любой хэш является допустимым хешем. Вопрос в том, соответствует ли вам хэш критериям. То, что вы хэш на самом деле несколько вещей (мы вернемся к этому), которые выстроились вместе, образуют строку, которая представляет собой строку определенной длины. Затем вы можете использовать всю строку. Подумайте о том, что вы получили хеш как число. Мы хотим, чтобы итоговое число было меньше целевого числа. Таким образом, это похоже на прокачку миллиардного одностороннего штампа, и придумал номер под целевым номером. Этот целевой номер считается «трудностью». По мере того, как все больше людей катят штамп, мы понижаем количество этого целевого показателя, чтобы уменьшить вероятность того, что какой-нибудь один кубик ударит.

Так важно, что некоторые из тех вещей, которые мы выстраиваем в строку, которую мы имеем, - это то, что нам разрешено настраивать. Хешинг не совсем похож на прокачку кубика, потому что, если у нас одно и то же снова и снова, мы получаем тот же результат снова и снова. Однако даже незначительная корректировка того, что мы делаем, может оказать существенное влияние на то, что возникает в результате хеша. Основной элемент, с которым мы можем манипулировать, называется «nonce». В основном мы выбираем nonce для использования в строке, хешируем всю строку и видим, что получилось. Если хеш не является хитом, мы модифицируем nonce и повторите попытку. Сам nonce не очень большой, поэтому существует ограниченное количество вариантов nonce, которые вы можете попробовать. Следующий элемент, который мы можем изменить, - это метка времени. Нам также разрешено покачивать отметку времени. Каждое показ временной метки позволяет нам через весь набор возможных значений nonce снова и снова. Мы повторяем этот процесс исчерпания возможностей nonce, а затем повторяем временную метку снова и снова, пока полученный хеш не будет ниже целевого числа сложности.

Когда это происходит, мы тогда объявляем миру, что эта метка времени плюс это nonce работает, чтобы решить блок. Другие утверждают, что это правда, и оно добавляется в цепочку блоков. Блок считается «Validated», когда это определенное количество блоков «глубокое» в цепочке блоков, что означает, что это исторический блок по сравнению с текущим блоком. Валидация здесь немного неверна, потому что это не значит, что блок уже не известен. То, что мы проверяем, является доказательством работы, а это означает, что когда исторический блок похоронен достаточно далеко, объем усилий, необходимых для создания этой истории, непреодолим для того, чтобы кто-то попытался создать другую вариацию истории. Им придется создать собственную версию этого блока (единственная причина - писать в своей собственной версии транзакций, т. Е. Воровать монеты), а затем решать ее самостоятельно, а затем решать следующий блок и один после и так далее и «ловить вверх "со всеми остальными. Это означает, что им придется выходить за пределы мира в играх, играющих в кости. Может быть, однажды в истории вселенной кому-то повезет с nonce с двумя или тремя блоками назад, но с 120 блоками, которые требуют сейчас большинство пулов и обменов для добычи? Не произойдет, никогда.

ответил seijirou 21 Jam1000000amWed, 21 Jan 2015 06:26:43 +030015 2015, 06:26:43
-2

Это игра, как только блок решается, игра увеличивает трудности. Но, честно говоря, алгоритм не решает никаких реальных проблем. Это не похоже на вашу добычу для выборов, факт, что реальная ценность мира привязана к этой «игре», делает ее интересной.

К сожалению, количество графических процессоров выросло из-за биткойнов и других.

Как на деньги реального мира влияет цифровой алгоритм «игра», это удивительно!

Решение головоломок не создает ценности, использование выборов для решения одной и той же головоломки не делает ее более актуальной.

Значение бит-монеты доступно только как доступное, так как спот-рынок оценивает его. Из-за этого популярность спроса на нее возросла.

В некотором роде это было похоже на азартные игры, ударив Lucky Block, вы получаете вознаграждение, которое можно вернуть обратно в деньги.

В конце концов, я не понимаю, что на самом деле делает алгоритм.

Приветствия. Даррен

ответил Darren 7 ThuEurope/Moscow2017-12-07T13:57:37+03:00Europe/Moscow12bEurope/MoscowThu, 07 Dec 2017 13:57:37 +0300 2017, 13:57:37

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

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

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