Введение в технологию Блокчейн - стр. 2
Позже вы можете открыть конверт и выдать значение.
Мы хотим сделать это в цифровом смысле. Например, вы можете передать сообщение.
И эта передача выдаст два значения, com и key.
Подумайте о com как о конверте, который вы собираетесь положить на стол, и ключе как о секретном ключе для разблокировки конверта.
Затем вы позволяете кому-то проверять, учитывая com, key и сообщение, что этот конверт, ключ и сообщение действительно идут вместе.
И эта проверка вернет истину или ложь.
Мы помещаем сообщение в конверт и передаем сообщение.
И эта передача возвращает конверт и ключ, а затем мы публикуем конверт.
Позже, чтобы открыть конверт, мы должны опубликовать ключ.
И тогда кто-то может использовать этот конверт, ключ и сообщение, чтобы проверить валидность открытия конверта.
Таким образом невозможно будет подменить сообщение в конверте.
Чтобы реализовать эту схему, мы генерируем случайное значение 256 бит и назовем его ключом.
И тогда мы вернем хэш ключа, соединенного с сообщением.
Затем, кто-то может проверить целостность сообщения, вычислив хэш ключа и сообщения и сравнив это значение с переданным значением com.
сom – это хэш ключа, соединенного с msg.
И если есть этот хэш, по нему невозможно узнать само сообщение.
Это то самое свойство скрытия, о котором мы говорили раньше.
Ключ был выбран случайным 256-битным значением.
И поэтому свойство сокрытия означает, что, если мы возьмем сообщение, и поставим перед ним что-то, что было выбрано из очень большого распределения, как в данном случае случайное 256-битное значение, тогда невозможно найти сообщение, как исходя из самого хэша, так и простым перебором возможных сообщений.
Одновременно мы получаем и отсутствие конфликтов, используя такую схему.
Невозможно будет найти два разных сообщения с одинаковым таким хэшем.
Используя все эти свойства хэша, мы можем сделать приложение – поиск пазла, математическую задачу, которая требует больших вычислений.
Используя id из большого распределения, нужно найти x, чтобы хэш id и x попадал в заранее определенное распределение y.
Если мы хотим создать головоломку, которую трудно решить, мы можем сделать это таким образом, генерируя идентификаторы головоломок в случайном порядке.
И мы будем использовать это позже, когда мы поговорим о майнинге биткойнов.
Это своего рода вычислительная загадка, которую мы будем использовать.
Существует множество хэш функций, но функция, которую использует биткойн, это функция, которая называется SHA-256, и она работает следующим образом.
Она принимает сообщение, которое вы хешируете, и она разбивает его на блоки размером 512 бит.