Читаем Цифровое золото: невероятная история Биткойна полностью

“Знаете, пожалуй, я поторопился, когда приказал менеджерам фонда избегать Биткойна, – сказал Гейтс уже вполне дружелюбно. – Не исключено, что это ошибка. Давайте-ка созвонимся”.

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

Приложение. Технические аспекты Биткойна

Адреса и секретные ключи

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

16R5PtokaUnXXXjQe4Hg5jZrfW69fNpAtF

Этому адресу соответствует следующий закрытый ключ:

5JJ5rLKjyMmSxhauoa334cdZNCoVEw6oLfMpfL8Hlw9pyDoPMf3

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

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

Любой пользователь Биткойна может самостоятельно и бесплатно сгенерировать любое количество биткойн-адресов и закрытых ключей. Из-за огромного количества возможных адресов вероятность дважды сгенерировать один и тот же адрес близка к нулю.

Создание транзакции

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

Проверка транзакций

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

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

Создание блоков и обработка транзакций (майнинг)

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

Узлы, участвующие в конкурсе, собирают недавние транзакции в списки, которые еще называют блоками. После составления блока узел применяет к нему специальную криптографическую хеш-функцию SHA 256, которая принимает любые данные и генерирует на их основе уникальное 64-разрядное значение. Участники конкурса пытаются составить блок, для которого хеш-функция сгенерирует значение с определенным количеством нулей в начале. Если бы, например, требовалось найти хеш с пятью нулями в начале, то оба следующих хеша могли бы принести победу в конкурсе:

000006d77563afal914846b010bdl64f395bd34c2102e5e99e0cb9cfl73cld87

и

000007ac6b77f49380ea90f3544a51ef0bfbfc8304816d1aab73daf77c2099319

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

Перейти на страницу:

Похожие книги

Самоучитель UML
Самоучитель UML

Самоучитель UMLПервое издание.В книге рассматриваются основы UML – унифицированного языка моделирования для описания, визуализации и документирования объектно-ориентированных систем и бизнес-процессов в ходе разработки программных приложений. Подробно описываются базовые понятия UML, необходимые для построения объектно-ориентированной модели системы с использованием графической нотации. Изложение сопровождается примерами разработки отдельных диаграмм, которые необходимы для представления информационной модели системы. Цель книги – помочь программистам освоить новую методологию разработки корпоративных программных приложений для последующего применения полученных знаний с использованием соответствующих CASE-инструментов.

Александр Васильевич Леоненков , Александр Леоненков

Зарубежная компьютерная, околокомпьютерная литература / Программирование / Прочая компьютерная литература / Книги по IT
Киберкрепость: всестороннее руководство по компьютерной безопасности
Киберкрепость: всестороннее руководство по компьютерной безопасности

Как обеспечить надежную защиту в эпоху, когда кибератаки становятся все более продвинутыми? Каковы последствия уязвимости цифровых систем? Петр Левашов, экс-хакер с богатым бэкграундом, рассматривает все грани кибербезопасности, начиная с базовых принципов и заканчивая новейшими технологиями.Читатели познакомятся с:• основами компьютерной безопасности и актуальными методами защиты;• современными методами шифрования данных и криптографии;• процедурами ответа на инциденты и восстановления после катастроф;• юридическими и регуляторными требованиями к компьютерной безопасности.Автор использует свой уникальный опыт, чтобы предоставить читателям углубленное понимание кибербезопасности. Его подход охватывает теоретические знания и практическую подготовку, делая этот материал доступным для профессионалов и новичков.

Пётр Юрьевич Левашов

Зарубежная компьютерная, околокомпьютерная литература