Шрифт:
Например, по состоянию на весну 2018 года один из самых популярных блокчейнов, Ethereum, занимает около 500 GB на жестком диске. Понятно, что не на всяком компьютере будет достаточно ресурсов для хранения полной ноды блокчейна.
Владельцы нод делают огромное и очень полезное дело для всего блокчейна: многократное копирование является одним из инструментов защиты данных внутри блокчейна. Если что-то произойдет с одной из нод, данные можно будет спокойно восстановить из другой. Чтобы действительно серьезно повредить блокчейну, нужно одновременно вывести из строя больше половины нод. А так как ноды находятся на компьютерах несвязанных участников, сделать это достаточно сложно.
Некоторые криптоэнтузиасты делают свои ноды публичными, то есть разрешают другим кошелькам подключаться к ним, чтобы совершать транзакции и получать актуальную информацию. Такие участники сети тоже приносят ощутимую пользу блокчейну, потому что огромное количество кошельков работает с блокчейном именно через ноды-посредники. С одной стороны, это менее безопасно, чем держать свою ноду и работать с блокчейном напрямую, а с другой – гораздо удобнее и не требует такого количества ресурсов на компьютере.
В чем опасность подключения через ноду-посредника? Подключаясь к чужой ноде, мы вынуждены доверять ей и надеяться, что владелец не строит коварных планов по перехвату наших транзакций и передаче нам ложных сведений о блокчейне.
Чтобы поддерживать данные в актуальном состоянии, ноды постоянно синхронизируют свою информацию с другими участниками сети. Для этого ноды устанавливают между собой peer-to-peer соединения. Похожий протокол используется в торрентах. Все, кто подключается к торренту, устанавливают специальную программу. Когда компьютер с такой программой подключен к сети, другие участники могут скачивать с него файлы. Чтобы дать другим людям доступ к файлам, их не надо никуда загружать, нужно просто установить торрент-программу и добавить файл в разрешенные для скачивания.
Примерно так же взаимодействуют ноды блокчейна: установленный кошелек скачивает обновленные данные о транзакциях с других нод и отдает информацию о своих. Для такой синхронизации у ноды должен быть доступ в Интернет. Если компьютер с нодой какое-то время был отключен от сети, то при запуске программы сначала произойдет синхронизация всех данных, и только после этого можно будет увидеть актуальный баланс и делать переводы.
Пара ключей: публичный и приватный
При создании кошелька для него автоматически создается пара из двух ключей: публичного и приватного. Публичный ключ, или публичный адрес, – это то, что вы передаете всем желающим отправить вам деньги. А вот приватный нужно хранить в секретном и очень надежном месте, так как для подтверждения владения кошельком и управления им обязательно нужен приватный (секретный) ключ. Фактически человек, у которого есть приватный ключ, является владельцем кошелька и может им полностью распоряжаться.
Криптовалютный кошелек можно сравнить с анонимной прозрачной ячейкой в банке: все видят ее содержимое, а принадлежать оно будет тому, у кого есть ключ. При этом ячейка защищена очень надежно, ее невозможно взломать и вытащить содержимое без ключа.
Представьте, что этот ключ от ячейки, где деньги лежат, был сломан или потерян. В этом случае доступ в ячейку не сможет получить никто, и все деньги, которые в ней лежат, останутся там навсегда.
А с другой стороны, если кто-то получил ключ, то он спокойно придет в ячейку и запросто заберет ее содержимое. Так как наша ячейка абсолютно прозрачна, то любой желающий может увидеть, что в ней хранится, и понять, стоит ли тратить время и силы, пытаясь завладеть ключом от этой ячейки.
Хэширование
Итак, мы знаем, что блокчейн – это сеть, участники сети называются нодами, для подключения к сети нужна специальная программа-кошелек. При создании кошелька мы получаем публичный и приватный ключи, которые очень важно сохранить. Эти ключи невозможно восстановить или сменить, они генерируются автоматически, поэтому нельзя установить свой приватный ключ, который будет проще запомнить.
Перевод криптовалюты с одного адреса на другой называется транзакция. Кстати, если речь идет о блокчейне, в котором хранятся файлы, а не деньги, то транзакцией будет называться запрос на загрузку или скачивание файла. В общем, любое сообщение, которое мы отправляем с одного блокчейнадреса на другой, – это транзакция.
Перед отправкой транзакции в сеть кошелек «подписывает» ее нашим приватным ключом.
Как он ее подписывает? Очень просто, выполняя всего три шага:
1. Все данные из нашей транзакции собираются в одну строку.
2. Эта строка обрабатывается при помощи специального шифровального алгоритма.
3. В результате получается строка-подпись. Она называется хэш (hash), а весь этот процесс называется хэширование.
Хэширование – это очень важная часть блокчейна, при этом она опять-таки не является его изобретением. Программисты достаточно давно используют хэши для безопасного хранения различных данных.