На звон БитМонет (часть 2)
АрхивКивино гнездоГениальность изобретателей Bitcoin в том, что они сумели преобразовать свои политические убеждения в работающий программный код, причём сделали это на редкость остроумно.
Продолжение. Первую часть читайте здесь.
Механизм функционирования Bitcoin смоделирован по аналогии с золотом. Когда в недрах земли имеется ограниченная масса золота, а с течением времени требуется всё больше и больше трудозатрат для его добычи в стабильно уменьшающихся количествах. В конечном же итоге требуется довольно-таки долгое время, чтобы и в самом деле исчерпать все имеющиеся запасы.
Удачная метафора "добычи" (mining) биткойнов, словно кусочков золота на рудниках или реках, позволяет пояснить, каким образом эти монеты появляются непосредственно на руках у участников, а не выдаются им неким центральным органом власти. Конечно же, те, кто располагает более значительным числом процессоров, получают большую долю "добываемых" монет. Однако и в теории, и на практике эти инструменты доступны для каждого – в отличие от централизованного станка для печатания денег. А принимая во внимание то количество трудозатрат, что уходит уже сейчас на добычу монет, сложно представить, что целенаправленное разворачивание больших усилий по генерации биткойнов принесёт ощутимые барыши (хотя и предполагается, что цена биткойна стабильно будет расти, обеспечивая этим усилиям положительное матожидание).
Чтобы без формул и блок-схем пояснить суть работы всей системы, пора уточнить, что добыча "монет" – это не цель процесса, а скорее побочный результат распределённых вычислений, занятых подтверждением честности каждой конкретной финансовой транзакции в сети. Можно говорить, что в основе системы Bitcoin лежат, во-первых, вполне обычная конструкция электронных монет из цифровых криптосигнатур (что обеспечивает надёжный контроль за принадлежащими участнику средствами), а во-вторых, для эффективного предотвращения многократного расходование одних и тех же средств – пиринговая сеть, где для записи публичной истории транзакций применяется алгоритм "доказательства работы".
Как и в прочих пиринговых системах, когда вы становитесь участником и запускаете свою программу, она ищет другие работающие программы, чтобы связываться с ними и "синхронизировать экономику" в единой сети. Сообщения о транзакциях передаются в системе на основе принципа максимально широкого распространения, а все узлы могут свободно покидать сеть и присоединяться к ней по своему желанию.
Чтобы не было жульничества, в сети автоматом проставляются отметки о дате-времени каждой осуществляемой транзакции биткойна. И тут же эти отметки (вместе с закодированной информацией об отправителе и получателе монеты) преобразуются хеш-функцией в элемент постоянно нарастающей цепочки "доказательства работы" на основе вычисленных хешей. Таким образом в сети формируется запись полной истории всех биткойнов, которую всегда можно проверить и нельзя переделать, не проделав по новой всю уже выполненную ранее "доказательную работу".
В условиях, когда честные узлы сети контролируют большинство процессоров, участвующих в работе системы, для злоумышленника быстро становится вычислительно непрактичным мошенничать, то есть пытаться изменять историю транзакций. То есть теоретически для биткойна всегда могут появляться несколько разных цепочек блоков. Однако в условиях честного большинства самая длинная цепочка служит наиболее надёжным доказательством подлинности транзакций, пришедшим от самого большого множества узлов в сети. Именно такие цепочки и отбираются узлами как валидные для дальнейшей обработки.
Что же касается порождения в этом процессе монет-биткойнов, то выглядит генерация примерно так. Постоянно перемалывая хешированием очередные блоки данных о транзакциях, компьютеры, участвующие в коллективной "добыче", попутно решают задачу по отысканию хеш-значений минимальной длины. То есть успехом вычислений считается получение хеша с определённым числом нулей в первых разрядах. Из-за специфических свойств хеш-функций процесс поисков идёт по сути случайным образом, а нахождение очередного числа минимальной длины означает успех, который фиксирует или "замораживает" собой вычисления данного блока цепочки (и переход к следующему). Для участников же вычислений замороженного блока достигнутый успех означает получение пятидесяти биткойнов, которые распределяются между ними согласно вычислительному вкладу.
С течением времени количество биткойнов, добываемых при каждом успехе, будет уменьшаться. Максимально возможное количество монет в системе ограничено числом в 21 миллион штук. Когда этот потолок будет достигнут (согласно расчётам после 2030 года), больше монет генерироваться не будет. В настоящее время сгенерировано около шести миллионов биткойнов, однако с каждым годом находить ещё не отысканные хеши с нулями на первых местах будет всё труднее и труднее, примерно как с добычей постоянно иссякающих запасов золота.
Дефляция валюты и нехватка биткойнов на рынке этой системе не грозят, потому что для деления одного биткойна предусмотрено восемь десятичных разрядов. Иначе говоря, по мере роста ценности монеты её можно будет дробить хоть на сто миллионов частей. Если же владелец электронного кошелька потерял соответствующий файл с деньгами и соответствующими им криптоключами, то деньги пропадают навсегда. Но хорошо, в отличие от реального золота, то, что тут ничто не мешает делать резервные копии. Сеть сама проследит, чтобы одни и те же монеты нельзя было использовать повторно ни случайно, ни тем более со злым умыслом.
В то время как "историю жизни" каждого биткойна можно отследить вплоть до каждой транзакции с момента рождения монеты, все участники этих транзакций остаются для системы анонимными. Идентификатор кошелька генерируется самим пользователем, а количество создаваемых кошельков ничем не ограничено – хоть делай новый кошелёк на каждую очередную транзакцию.
Заинтересованно, но с опасениями
Ещё одна категория критиков системы – это те люди, кто в принципе совершенно согласны в желательности и актуальности денежной системы типа Bitcoin. То есть системы, которая управлялась бы чисто рыночными механизмами (взаимные интересы продавцов/покупателей) и не зависела бы от произвола властей, манипулирующих валютой и печатным станком для прикрытия своих долгов или экономических растрат. Но при этом некоторые черты конкретной системы Bitcoin вызывают у народа и вполне объяснимые опасения – примерно следующего рода:
"Хотя я считаю, что такая система остро необходима, моя главная обеспокоенность насчет биткойнов – это анонимность создателя и то обстоятельство, что он, вероятно, владеет значительным процентом всей экономики этой системы... Глубоко сидящий внутри меня циник нашептывает мне, что весь этот проект наверняка затеял какой-нибудь головастый компьютерщик-прохиндей, которому сначала удалось поставить под свой контроль некий массивный ботнет, а потом он придумал Биткойн – как способ наварить на этом деле побольше денег. И даже если это всё не так, сама модель, в основе которой заложен принцип "один голос на одно ЦПУ", делает криминальных хозяев ботнетов здесь королями. А лично я совершенно не хотел бы экономической системы подобного типа..."
Информированный ответ на эти опасения звучит примерно так. Если вы поинтересуетесь (полностью открытой) динамикой роста системы Bitcoin, то совершенно чётко увидите, что всё начиналось не так. Вычислительная мощь системы возрастала постепенно, и на первых порах это шло очень, очень медленно. ЦПУ обычных компьютеров в задаче майнинга почти бесполезны, потому что они работают в сотни раз медленнее, чем единственная графическая GPU-карта ATI 5870. Именно её сейчас наиболее широко используют золотодобытчики Биткойна. И даже если криминальные ботнеты действительно начнут тоже привлекаться к майнингу, то это практически ничего здесь не изменит – ну разве что кто-то добудет для себя несколько биткойнов.
Что же касается неизвестной личности "отца системы", который под именем Сатоши Накамото в ноябре 2008 года опубликовал основополагающую статью "Bitcoin: Пиринговая система электронных наличных", то действительно, практически на сто процентов можно быть уверенным, что это вымышленный персонаж. Японское имя вряд ли имеет отношение к национальности создателя или создателей системы, поскольку ни одной строчки по-японски от этого автора не появлялось, а ничего похожего на японский вариант Биткойна в интернете никогда не было.
Среди того ядра программистов, которые в 2009 году создали реальное воплощение Биткойна в Сети, никто лично с Сатоши Накамото не встречался, всё их общение происходило исключительно по электронной почте. В 2010 году, когда механизмы Bitcoin реально заработали и начали набирать обороты, персонаж под этим именем полностью самоустранился от участия в поддержке системы. Вполне вероятно, что рано или поздно "тайна отцовства" будет раскрыта. Но может случиться и так, что это навсегда останется загадкой Биткойна.