Хеш и хеширование криптовалют


Многие майнят, или майнинили, или собираются начать майнить, подбирая себе оборудование по максимуму каких-то там гигахешей. На что это за хеши такие?

Как известно, криптовалюта (возьмём Bitcoin) добывается в результате решения математических задач. Но почему биткоин генерируется именно так? Для этого нужно понять значение такого процесса, как криптографический хеш или хеширование. Итак, хеширование — это изменение входящих данных различного размера в исходные данные четко заданного размера, с использованием специального алгоритма (правил).

Разберёмся зачем это нужно. Допустим, мы владеем компьютерной сетью или закрытой базой данных, в которую можно попасть только с помощью логина и пароля. Люди тысячами регистрируются у нас, вводя эти данные. А теперь представьте себе, что будет, если кто-то завладеет доступом в вашу компьютерную сеть. Они получат персональные данные огромного количества других людей. Именно для того, чтобы этого не произошло, и был придуман криптографический хеш.

Вот как он работает: процесс хеширования получает данные, например, пароль, и обрабатывает эти входные данные через специальный алгоритм, который создает большое число, называемое «хеш». Хеш имеет два ключевых отличительных свойства.

  1. Во-первых, одним и тем же входным данным всегда соответствует одно и то же число. То есть, если вы каждый раз будете вводить один и тот же пароль, хеширование будет генерировать одно и то же число на выходе, которое ему соответствует.
  2. Во-вторых, хеширование – это однонаправленный процесс. Практически невозможно взять значение хеша и при помощи обратной разработки раскрыть, что было на входе. Таким образом невозможно пойти от обратного, и введя значение хеша, то есть то самое крупное число, определить пароль. Именно благодаря этим двум пунктам хеш и используется как самостоятельный метод обработки данных. Если бы процесс был обратим, он назывался бы не хешированием, а старым добрым шифрованием/дешифрованием, что в современном мире малоэффективно.

Теперь как это работает на еще более простом примере. Вы регистрируетесь на сайте, вводите свой пароль. Система обрабатывает его и генерирует хеш, который соответствует вашему паролю. При этом сам пароль в базе не сохраняется. И теперь, когда вы будете заходить на этот сайт и вводить этот пароль, система будет генерировать хеш, сравнивать его с хранящимся значением, и одобрять доступ при совпадении. А хакеры, взломав систему, получат только набор хешей, абсолютно бесполезных для получения пароля.


В этой системе есть только один недостаток — если вы забыли пароль, его нельзя восстановить. Система не хранит ваши пароли, поэтому и выслать их не может. Однако, в крайних случаях пароль может быть сброшен, вам вышлют временный пароль, зайдя по которому сможете снова установить свой собственный. Недостаток этот, на мой взгляд, не является критичным, особенно на фоне безопасности хеширования.

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

Представим себе, что биткоин протокол выдал задачу — угадать число 5, а всего чисел — миллион. Ваши шансы решить эту задачу составляют 1 к миллиону. Если сеть хочет задачу упростить, она задает диапазон чисел, скажем от 1 до 100, и ваши шансы уже 100 к миллиону. Если же требуется усложнить задачу, расширяем диапазон, и теперь вам нужно угадать одну цифру не с миллиона, а с миллиарда значений. Именно в этом и заключается математическая задача — необходимо то число, которое соответствует определенному хешу.

Хеш обновляется каждые 10 минут, и первый компьютер, решивший задачу, получает вознаграждение. Но на сегодняшний день диапазон чисел, из которых нужно найти верное — огромный. Все биткоин-майнеры мира совместно обрабатывают за минуту примерно 50 000 000 000 000 000 входных значений в секунду в попытке подобрать ключик к заданному хешу.

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

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



3751


Ваши отзывы

Регистрация не нужна и email не публикуется


*