Цифровой журнал «Компьютерра» № 71 (Журнал «Компьютерра») - страница 35

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

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

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

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

С течением времени количество биткойнов, добываемых при каждом успехе, будет уменьшаться. Максимально возможное количество монет в системе ограничено числом в 21 миллион штук. Когда этот потолок будет достигнут (согласно расчётам после 2030 года), больше монет генерироваться не будет. В настоящее время сгенерировано около шести миллионов биткойнов, однако с каждым годом находить ещё не отысканные хеши с нулями на первых местах будет всё труднее и труднее, примерно как с добычей постоянно иссякающих запасов золота.