Чтение онлайн

на главную - закладки

Жанры

Цифровое золото: невероятная история Биткойна
Шрифт:

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

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

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

16R5PtokaUnXXXjQe4Hg5jZrfW69fNpAtF

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

5JJ5rLKjyMmSxhauoa334cdZNCoVEw6oLfMpfL8Hlw9pyDoPMf3

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

так что можете не пытаться).

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

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

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

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

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

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

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

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

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

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

000006d77563afal914846b010bdl64f395bd34c2102e5e99e0cb9cfl73cld87

и

000007ac6b77f49380ea90f3544a51ef0bfbfc8304816d1aab73daf77c2099319

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

даст результат с нужным количеством нулей, невозможно.

SHA 256 и другие хеш-функции всегда генерируют для одинаковых входных данных один и тот же результат, поэтому каждый участник конкурса добавляет к концу блока случайное число. Криптографические хеш-функции устроены так, что любое изменение входных данных (сколь угодно малое) приводит к случайному изменению всего результата. Если первая попытка получить результат с нужным количеством нулей не привела к успеху, узел изменяет случайное число в конце блока и хеширует блок еще раз. Это повторяется до тех пор, пока один из узлов не найдет блок, хеширование которого позволит получить результат с необходимым количеством нулей. Нахождение такого блока – дело случая, но узел, способный хешировать блоки быстрее конкурентов, имеет больше шансов на победу в конкурсе – подобно тому, как приобретение дополнительных лотерейных билетов повышает шансы выиграть в лотерее.

Количество нулей в начале хеша, необходимое для выигрыша в конкурсе, изменяется в соответствии с интервалом между блоками. Если интервал сокращается, ПО Биткойна периодически корректирует условия конкурса так, чтобы получить нужный результат было сложнее (иначе говоря, он должен содержать больше нулей в начале). Если интервал между блоками становится больше 10 минут, сложность задачи уменьшается.

Запись блоков в блокчейн

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

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

Создание монет

Какой смысл вообще участвовать в этой гонке? Дело в том, что узел, который обнаружил блок, соответствующий условиям конкурса, получает награду, которая в первые 4 года существования Биткойна составляла 50 монет. Чтобы получить эту награду, каждый участник конкурса добавляет в список обрабатываемых транзакций дополнительную транзакцию, отправляя новые биткойны “из ниоткуда” на свой адрес. Когда конкретный блок побеждает в лотерее и добавляется в блокчейн, новые монеты отправляются по указанному в блоке адресу. Если узел попытается выписать себе больше монет, чем действующая в текущий момент награда, блок будет отвергнут другими узлами, даже если его хеш будет содержать необходимое количество нулей.

Список онлайн ресурсов

1. Официальный сайт Биткойна:

2. Страница в Википедии:

3. Оригинальная работа Сатоши Накамото:

4. Новости мира Биткойн:

5. Криптовалютный информационный портал:

6. Онлайн-видео о криптовалютах:

7. Блокчейн-сообщество в России:

8. Банк России о Биткойне:

Поделиться:
Популярные книги

Отверженный IX: Большой проигрыш

Опсокополос Алексис
9. Отверженный
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Отверженный IX: Большой проигрыш

История "не"мощной графини

Зимина Юлия
1. Истории неунывающих попаданок
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
История немощной графини

Предатель. Цена ошибки

Кучер Ая
Измена
Любовные романы:
современные любовные романы
5.75
рейтинг книги
Предатель. Цена ошибки

Законы Рода. Том 6

Flow Ascold
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 6

Полковник Империи

Ланцов Михаил Алексеевич
3. Безумный Макс
Фантастика:
альтернативная история
6.58
рейтинг книги
Полковник Империи

Релокант

Ascold Flow
1. Релокант в другой мир
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Релокант

Наследник

Майерс Александр
3. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Наследник

Кодекс Охотника. Книга XV

Винокуров Юрий
15. Кодекс Охотника
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XV

Газлайтер. Том 9

Володин Григорий
9. История Телепата
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Газлайтер. Том 9

Вонгозеро

Вагнер Яна
1. Вонгозеро
Детективы:
триллеры
9.19
рейтинг книги
Вонгозеро

Черный Маг Императора 4

Герда Александр
4. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 4

Штуцер и тесак

Дроздов Анатолий Федорович
1. Штуцер и тесак
Фантастика:
боевая фантастика
альтернативная история
8.78
рейтинг книги
Штуцер и тесак

Офицер-разведки

Поселягин Владимир Геннадьевич
2. Красноармеец
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Офицер-разведки

Убивать чтобы жить 7

Бор Жорж
7. УЧЖ
Фантастика:
героическая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 7