Как заработать на криптовалютах и блокчейне. Обясняем на пальцах - Страница 6

Изменить размер шрифта:

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

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

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

Пара ключей: публичный и приватный

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

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

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

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

Хэширование

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

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

Перед отправкой транзакции в сеть кошелек «подписывает» ее нашим приватным ключом.

Как он ее подписывает? Очень просто, выполняя всего три шага:

1. Все данные из нашей транзакции собираются в одну строку.

2. Эта строка обрабатывается при помощи специального шифровального алгоритма.

3. В результате получается строка-подпись. Она называется хэш (hash), а весь этот процесс называется хэширование.

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

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

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

У хэширования есть четыре очень важных свойства:

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

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

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

4. При малейшем изменении тех данных, которые мы хэшируем, результаты будут отличаться очень сильно.

Как заработать на криптовалютах и блокчейне. Объясняем на пальцах - i_005.jpg

Рис. 2. Как работает хэширование

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

Реестр транзакций

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

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

Майнинг

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

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

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

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

Что же это за вознаграждение, которое так хотят получить майнеры? При создании нового блока в блокчейне «чеканится» новая монета этой сети. Кстати, правильнее будет называть ее не монета, а токен. Поэтому переформулируем: при формировании нового блока блокчейн генерирует новый токен и перечисляет его на адрес участника, создавшего блок. Фактически майнинг совмещает в себе три очень полезные функции: проверяет транзакции, надежно сохраняет их в блокчейне, создает новые токены (чеканит монеты).

Оригинальный текст книги читать онлайн бесплатно в онлайн-библиотеке Knigger.com