Хеш функции биткоина разъяснены простыми терминами

0
6884

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

 

Хэш-функции являются неотъемлемой частью протокола биткоин и вообщем безопасность информации.

 

Как работают хэш функции

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

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

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

Обычно такие хэш-функции используются для хранения паролей.

При оформлении учетной записи в Интернете вас просят создать пароль. Пароль проходит через хэш-функцию. Служба не сохраняет пароль a использует только хеш-функции. При ввода пароля, чтобы регистрироваться он проходит через хэш-функцию и сервер проверяет если результат идентичен с сохраненным дайджестом.

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

Простые хэш-функция в Python

Вы можете поэкспериментировать со значениями хэша с использованием языкa программирования Python. Python устанавливается по умолчанию на Mac или Linux. Установка и использование на Windows, более сложна. Учебник нацелен на операционной системы OS X или Linux.

Сначала откройте терминал, напишите Python и нажмите кнопку ENTER.

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

Затем введите следующую информацию. Нажмите Enter после каждой строки и TAB где это необходимо.

import hashlib

def hash(mystring):

[TAB] hash_object = hashlib.md5(mystring.encode())

[TAB] print(hash_object.hexdigest())

[ENTER]

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

К примеру – hash(”BitcoinRushMd”).

Для просмотра дайджеста Нажмите Enter.

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

hash(”BitcoinRushMd”) = 43DD55731C00F7BC32A109BAC064A3E47CCD5E8D

hash(”BitcoinRushMd”) = F865A2FF240A40B5073FD521E31A7A9A32DFA63C

 

 

Функции хеширования биткоина

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

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

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

Для того чтобы «решить» блок шахтеры пытаются объединить все входы с их собственным входом, так что полученный хэш содержит некоторое количество нулей.

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

хэш (BitcoinrushmdA)

64D2B6DCDB86DAEEC1A258EEF78D9389C91DD73D

хэш (BitcoinrushmdB)

B35575AC5BC44DE6AE06EB5059202441186A6B5C

хэш (BitcoinrushmdC)

43AD074F2C415A89ABFB7A5DA6FF1C94138F329A

хэш (BitcoinrushmdD)

57699F08F4011E81B98A91CC4BD01588FD4D938A

хэш (BitcoinrushmdE)

0848FE80BE4622C58E0613C5C2A2D14ECBC5D179 -SOLVED!

 

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

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

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

 

Источник — Корин Фэф, CoinDesk

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here