Специальный выпуск Bloomberg Businessweek, 31.10.2022
Специальный выпуск Bloomberg Businessweek, 31.10.2022
Содержание:
Часть 1. Реестры, Биткойн, блокчейн
Часть 2. Что всё это значит?
Часть 3. Криптофинансовая система
Часть 4. Доверие, деньги, общество
Часть I. Реестры, Биткойн, блокчейны
1. Жизнь в базах данных
Если у тебя есть деньги, то на самом деле всё, что у тебя есть — это запись в базе данных банка о количестве денег на твоём счёте. Если у тебя есть акции, то они представлены либо в виде записи в учредительных документах компании, либо, что более вероятно, в базе данных какого-то депозитария1.
1 Таким депозитарием может быть, например, Depository Trust & Clearing Corp. (DTCC), который содержит записи обо всех акционерах большинства американских публичных компаний. И если ты купила на бирже какую-то акцию, то запись об этом будет храниться в базах DTCC.
Если же ты владеешь домом, то ситуация выглядит немного иначе, поскольку тут участвует физический объект из реального мира, который невозможно поместить в базу данных. Но запись о владении этим домом тоже хранится в специальной базе. Если мы в США, то документ, подтверждающий твою покупку дома, хранится в специальной картотеке, которая находится в подвале администрации твоего округа. В повседверной жизни имеет значение только сам дом как физический объект: у тебя есть от него ключи, внутри хранятся твои вещи, а соседи не удивляются твоему появлению. Но в некоторых случаях важнее является именно запись в картотеке. Банк или потенциального покупателя будет прежде всего интересовать свидетельство права собственности. Ключа и приветствий соседей будет недостаточно.
Можно привести ещё много примеров. Заметная часть нашей современной жизни переместилась в интернет. Немного преувеличив можно было бы сказать, что наша социальная жизнь, друзья, репутация и карьера теперь представляет собой набор записей в базах данных корпораций Meta, Google и Microsoft. Но это и не совсем ложное утверждение.
Отчасти это просто вопрос развития технологий. Деньги в виде цифр на экране намного удобней, чем мешки с золотом или даже стопки банкнот. Но есть вещи, в которых стоит разобраться чуть подробнее. Что вообще означает «владеть домом»? Один из вариантов ответа — это его естественное состояние, когда владение домом означает, что 1) ты находишься внутри, и 2) если кто-то пытается проникнуть внутрь, у тебя достаточно сил, чтобы его прогнать. Но если он сильнее тебя, то теперь это его дом.
Другой вариант, назовём его «деревенским», при котором все соседи знают, что это твой дом и ты в нём живёшь. И если кто-то другой пытается его захватить, вы всей деревней окажетесь сильней и дадите захватчику отпор. Здесь владение и право собственности основано на социальном доверии между людьми, где все друг друга знают.
Все вокруг знают, как тебя зовут
И есть третий вариант, правительственный, когда владение домом означает, что по мнению государства этот дом принадлежит тебе. И если кто-то захочет в него без спроса поселиться, государство его выставит вон2. Здесь право собственности обеспечивается уже не соседями, а институтами. Где база данных — способ государства и его институтов вести учёт. Не нужно доверять конкретным людям, достаточно доверять силе закона.
2 При этом тебе не обязательно самой жить в этом доме. Ты можешь сдать дом в аренду, и с твоего разрешения там может жить кто-то другой. А если ты это разрешение отзовёшь, правительство, в соответствии с законом об аренде, выселит этого человека.
С деньгами всё работает примерно так же. Мешок золота — это понятная натуральная форма богатства. Но немного тяжеловатая. Система, где надёжный банкир на хранение твой мешок и в обмен выдаёт бумагу с обещанием его выплатить, а ты можешь обналичить это письмо в филиале, который держит его кузен, — звучит уже удобне. Хотя и требует доверия между тобой, банкиром и его кузеном. В свою очередь современная система обезличенного банковского дела, когда деньги на кассе выдают незнакомцы, или ты вообще предпочитаешь банкоматы, всё равно требует доверия. Только уже не людям, а системе. Системе, в которой банки ведут себя прилично, потому что на них давит государственное регулирование, репутация и рынок.
Когда мы говорим, что современная жизнь живёт внутри баз данных, это прежде всего значит, что она строится на системе доверия.
Иногда мы доверяем хранителям баз данных потому, что лично знаем этих людей, и считаем их достойными доверия. Но чаще мы это делаем потому, что доверяем самой системе доверия, состоящей из законов, регулирующих базы данных. Мы полагаем, что можем доверять системе, которой пользуемся, просто потому, что она и правда делает жизнь проще и она работает. И жизнь стала бы гораздо неудобнее, если бы мы перестали ей доверять. И это величайшее и удивительное достижение современности, что мы доверяем хранителям данных

и что в большинстве своём они это доверие оправдывают.

2. А что если тебе это не нравится?
§1.1. Недоверие
Но мы не всегда им доверяем. Потому что у нас есть основания не доверять.
Иногда просто потому, что они не заслуживают доверия. Бывают банки, которым страшно нести свои деньги. Есть страны, в которых законы и регулирование не работают. Бывают правительства, которые могут отобрать твои деньги, подделать результаты выборов или переписать реестры собственности, чтобы отобрать твой дом. Бывают социальные сети, в которых твой аккаунт могут заблокировать без объяснений. Большинство людей в США чаще всего живут в мире с высоким уровнем доверия, где проще и разумно полагаться на посредников, управляющих базами данных, от которых зависит наша жизнь. И верить, что они будут вести себя прилично. Но не все и везде могут позволить себе такую роскошь.
Даже в Америке доверие может быть очень хрупким. Финансовый кризис 2008 года довольно серьёзно подорвал доверие людей банковской системе. Люди думали, что банки делают позезные, безопасные и социально важные вещи, но оказалось, что они играли в безумные и рискованные игры, обрушившие экономику. После этого людям стало труднее доверять банкам свои сбережения.
Кроме того, у тебя могут быть философские или идеологические причины для недоверия. Даже если у твоего банка безупречная репутация, он никогда не ошибался и не давал поводов для сомнений, для тебя этого может быть недостаточно. Потому что для тебя банк — это чёрный ящик. Ты можете сказать: «Откуда мне знать, что вы вернёте мне мои деньги?» На что банк ответит «Вот наши аудированные финансовые отчёты» и «Мы работаем под назором Федерального Резерва и застрахованы FDIC» и «Ещё не было случая, чтобы мы не возвращали средства клиентов». На что ты можешь сказать «Всё это звучит очень здорово, но почему я должна вам верить?» Не должна. Это доверие встроено в систему, потому что является её основой. Но тебе могут потребоваться доказательства3.
3 Вероятно, это современный каприз, или как минимум запросы, которые сегодня легче удовлетворить. В мире без интернета, Википедии, ссылок и репозиториев с открытым кодом тебе приходилось принимать на веру тысячи утверждений. А что ты могла сделать? Проверять каждый вручную?
Можешь назвать этот банк? Хотя не важно, потому что это тоже чёрный ящик
§1.2. Совместимость
Даже если ты в принципе не против доверять хранителям современных баз данных, у тебя должны остаться технические вопросы. Потому что эти базы и реестры не всегда работают гладко.
Потому что существенная часть банковского софта написана на очень древнем языке программирования Cobol. И скорость его работы идеально подходит США, где люди до сих пор выписывают друг другу бумажные чеки и отправляют их по почте. Потому что операции с американскими акциями финализируются в течение двух рабочих дней: если ты продал мне акцию в понедельник, расчёты по ней произойдут только в среду. И это не потому, что твой брокер должен привезти подписанные документы в офис моего брокера, в то время как мой брокер собирает наличные для отправки в офис твоего. А только потому, что реальный процесс электронных расчётов — прямой потомок тех времен, когда все ездили друг к другу в офисы. Он медленный, до сих пор включает ручную работу и периодически даёт сбой. Многие сделки просто «не проходят».
И даже не заводите меня на тему регистрации недвижимости. Если ты покупаешь дом, ты обязан поучаствовать в специальном обряде «закрытия сделки», где куча людей с должностями типа «нотариус» и «регистрирующий специалист» бубнят юридические заклинания, которые позволят вам владеть вашим домом. И эта процедура может занимать часы!
Если вы воспринимаете базы данных в контексте того, как должны работать современные компьютеры, то всё это выглядит довольно дико. Вы думаете «там должно быть API, позволяющее взаимодействовать всем этим базам друг с другом». Если вам нужна ипотека, то у банка должна быть возможность автоматически запросить реестр собственников недвижимости, вместо того, чтобы отправлять юриста в подвал местной канцелярии. Равно как и должна быть возможность запросить базу автоинспекции о ваших водительских правах в целях идентификации, или запросить ваш брокерский аккаунт, чтобы убедиться о наличии активов.
состоит из запросов
к базам данных:
нам их
не обновить?
Что если мы перепишем с нуля все базы данных, сделаем это на современных языках программирования и на основе актуальной инженерной логики, чтобы они могли быстро и гладко взаимодействовать друг с другом?
Если у нас получится, это будет выглядеть как одна гигантская база данных, база данных жизни: в ней я смогу отправить тебе деньги в обмен на право владения твоим домом, а ты сможешь отправить мне очки социальной репутации в обмен на прохождение онлайн-курса. Или что угодно ещё — всё в рамках одной системы.
Это было бы удобно и очень мощно. Но так же и очень страшно. Потому что такой системе потребовалось бы ещё больше доверия. Тот, кто управлял бы такой системой — по сути, управлял бы миром. Кому ты могла бы такое доверить?
3. Цифровая наличность
В 2008 году Сатоши Накамото опубликовал метод всеобщего управления базой данных. И тем самым изобрёл то, что мы теперь называем «криптой».
По правде говоря, я не уверен, что Сатоши преследовал именно такую цель. Если быть точным, он изобрёл Биткойн — «одноранговую электронную платёжную систему» (Bitcoin: A Peer-to-Peer Electronic Cash System), как он сам это назвал в заголовке своей знаменитой белой бумаги.
Сам он утверждал, что создал новый тип наличных для платежей в интернете: «это электронная платежная система, основанная не на доверии, а на криптографическом доказательстве, позволяющая двум сторонам совершать сделки напрямую, без участия доверенного посредника». То есть, если я хочу что-то у тебя купить за цифровую наличность — я просто отправляю тебе Биткойны, а ты мне товар. Никаких посредников вроде банка в этой сделке не требуется.
На первый взгляд может показаться, что Сатоши придумал систему, в которой я отправляю тебе деньги, и никто больше в этом не участвует. Но на самом деле он придумал систему, где в каждой транзакции участвуют все остальные.
§3.1. Отступление: Что вы вообще читаете? Зачем вы это читаете? И почему я это пишу?
Привет, я Мэтт. Раньше я был юристом и инветиционным банкиром. Теперь я обозреватель и пишу колонки в Bloomberg Opinion. Обычно я пишу о финансах. Я люблю финансы, и о них весело писать. Для меня это способ смотреть на мир как набор хитрых головоломок и просчитанных конструкций, которые люди навешивают поверх экономической реальности. Часто эти конструкции очень запутанные или даже пугающие, и мне интересно разбираться, как они работают. Плюс, в финансах всё постоянно наслаивается друг на друга. Многие вещи кажутся странными, безумными и контринтуитивными. И приходится глубоко погружаться в историю и рыночные практики, чтобы просто понимать, что люди делают и почему они это делают именно таким образом.
Последние несколько лет самой поляризующей темой в финансах была крипта. Под криптой я имею в виду набор идей, продуктов и технологий, которые выросли из белой бумаги Биткойна. Кроме того, если уж совсем на чистоту, крипта — это ещё и набор финансовых графиков, которые довольно мощно шли вверх. Когда Сатоши изобрёл биткойн, он стоил ровно 0 долларов. Это была просто идея. На своём пике, в ноябре прошлого года, один биткойн стоил больше $67,000, а капитализация всего крипторынка составляла в районе $3 триллионов. Много людей, которые рано зашли на этот рынок, быстро разбогатели и стали вести себя довольно раздражающе. Они стали скупать Ламборгини и целые острова. Они были очень довольны собой. Они заявляли, что крипта — это будущее, и что именно они строят это будущее и получают за это заслуженную награду. Они отпускали фразы вроде «удачи оставаться бедными» или «NGMI» (Not Gonna Make It — «у тебя ничего не выйдет») в адрес тех, кто не владел криптой. Они чувствовали себя правыми, были богаты, уверены в себе — и хотели, чтобы мы это знали.
Многие из нас не приняли участия в этом празднике жизни. И скептически к нему относились. Они видели в этом рынке, и, надо сказать, не без оснований, прежде всего набор инструментов для совершения преступлений и создания финансовых пирамид. Они задавали вопросы типа «Зачем это всё?», «Откуда взялись все эти деньги?», «Если вы строите будущее, то в чём именно состоит ваша работа?» или «Если это будущее, то почему оно такое мрачное и отвратительное?». На что криптоэнтузиасты отвечали «Продолжай получать удовольствие от бедности!»
А потом, уже в этом году, все эти графики обвалились. Биткойн упал ниже $20,000, а весь крипторынок сжался с трёх до одного триллиона. Некоторые криптокомпании обанкротились. Если ты была криптоскептиком, то ты была удовлетворена. Не только из-за чувства злорадства, но и потому, что возможно все, наконец, перестанут это обсуждать, и тебе больше не потребуется на это отвлекаться. В то же время для фанатов крипты это стало поводом работать ещё усерднее: крах должен был вынести всех случайных попутчиков и оставить только настоящих последователей, которые продолжат вместе строить будущее.
Может показаться, что сейчас не лучшее время говорить о крипте, потому что графики смотрят вниз. Но я считаю, что это, наоборот, самое подходящее время. Наступила пауза и передышка. Всё, что осталось на рынке — не просто спекуляции и схемы быстрого обогащения. Мы можем внимательно посмотреть и подумать, что представляет из себя крипта, без оглядки на движения графиков.
У меня лично нет никаких чувств относительно крипты. Мне нравятся финансы. Я нахожу их интересными. А если тебе любопытно, как люди выстраивают сложные конструкции для организации экономической реальности, то крипта для этого — идеальная почва. Это испытательный полигон и лаборатория для тестирования новых гипотез. За последние 14 лет крипта построила с нуля полноценную финансовую систему. Она постоянно, снова и снова, переизобретает инструменты, которыми традиционные финансы пользуются столетиями. И порой находит новые и лучшие способы делать привычные вещи.
Часто — это были очень плохие и ужасные решения, заводящие в тупик, по которым традиционные финансы уже бродили десятилетия тому назад. И ровно так же вышли из них с печальными или комичными результатами.
Очень часто крипта приходила так или иначе к тем же решениям, что и традиционные финансы, но с другими названиями и объяснениями. Вы можете взглянуть на какие-то криптопроекты и сразу понять, что именно из реального мира они копируют. И под этим ракурсом многое понять о крипте. Например, предсказать, в каком месте в следующий раз она сломается. Но отсюда так же можно взглянуть по-новому и на привычные инструменты: криптокопии могут подсветить вам вещи, не очевидные из того, как сегодня устроены оригиналы.
Кроме того, должен признаться, что как человек, пишущий о финансах, я питаю слабость к историям о мошенничествах, рыночных манипуляциях и умниках, которые обводят вокруг пальца всех остальных. Часто эти истории не только забавны, но и поучительны. И криптомир просто ломится от избытка подобных историй.
Так что теперь я много пишу о крипте. В том числе прямо здесь.
Я должен так же сразу предупредить, что не являюсь криптоэкспертом. Я не являюсь фанатом. Я даже не владел криптой, пока не начал работать над этой статьёй. Теперь у меня около $100 в Биткойнах. Я пишу о крипте как человек, которому интересны человеческая изобретательность и глупость, историй о которых в крипте с избытком.
С другой стороны, я не сел бы писать 40 тысяч слов, чтобы рассказать вам, что крипта — это полная чушь, не имеет ценности и смысла, и скоро исчезнет без следа. Это было бы заведомой тратой моего и вашего времени. У меня нет задачи убедить вас в том, что крипта — это будущее, и, если вы не заскочите, то останетесь бедным. Моя задача — показать вам, что крипта может быть интересна. И какие новые способы она предлагает для решения старых проблем. И даже если эти подходы ошибочны, то из них можно понять или узнать что-то новое.
Ну и, в конце концов, я человек из мира финансов. И похоже, что за 14 лет крипта уже вполне сформировалась как финансовая система. И заслуживает того, чтобы её воспринимать как финансовую систему.
Конференция по биткойну, Майами, апрель 2022
Любая финансовая система — это, по сути, просто набор баз данных. Это способ перекладывать записи о правах собственности на вещи из реального мира. Хорошая финансовая система помогает фермеру выращивать еду, семьям покупать жильё, а компаниям создавать потрясающие видеоигры. Она помогает создавать и перераспределять изобилие реального мира. Плохая финансовая система торгует абстрактными ценностями таким образом, что богатеют только те, кто ими торгует, а всем остальным они никак не помогает.
Главный вопрос, который задают крипте все последние 14 лет: зачем она вообще нужна? Если вы попросите пример бизнеса, который реально использует крипту в своей работе, чаще всего вы получите что-то из финансового сектора, типа биржи для торговли криптой. Окей, ладно. Иногда это что-то про передачу ценности, когда крипта помогает иммигрантам быстро и дёшево отправлять домой деньги. Вот это неплохо. Но чаще всего все примеры сводятся к более эффективным формам азартных игр. Ничего не имею против казино, это бывает весело. Но если ваша финансовая система существует в основном для ставок, то это выглядит немного ограничено.
Тем временем самые страстные криптофанаты постоянно рассказывают о скором создании настоящих и полезных вещей. Что крипта переопределит социальные связи, рынки игр и сами компьютеры. Она создаст метавселенную. Что это непременный компонент следующего витка развития интернета: крипта построит web3 на смену текущему web2. Возможно ли это? Если вы снова попросите пример реального бизнеса, использующего крипту, но не из финансового сектора, то это будут туманные и чисто гипотетические фантазии о строительстве, например, новой социальной сети на основе web3.
Мы всё ещё находимся на очень ранней стадии. Возможно кто-то когда-нибудь создаст по-настоящему классную криптосоциальную сеть. Может быть через 10 лет крипта, блокчейны и токены станут центральной частью всего, что происходит в интернете. А интернет будет центральной частью вообще всего, что происходит в жизни. И ранние криптофанаты окажутся правы и дико богаты. В то время как все остальные будут прозябать в нищете. А школьники будут удивляться тому, что кто-то когда-то сомневался в важности Dogecoin.
Не хочу отрицать возможность наступления всего этого. Наоборот, хочу немного поспекулировать и пофантазировать на тему того, как бы это могло выглядеть. Я плохо понимаю, как мы можем к этому придти. Я не айтишник и не фанат. Но мне кажется интересным попытаться понять, что крипта может значить в будущем интернета. Потому что вне зависимости от того, утопичны эти идеи или нет, иногда они могут принести более эффективные способы решения задач, которые мы будем решать в любом случае.
§3.2. Отступление: термины и имена
Прежде чем мы продолжим, нужно сказать несколько слов о терминологии. Во-первых, «крипта». То, о чём мы сейчас говорим, у этого вообще нет хорошего названия. Стандартный термин — крипта — происходит из соращения «криптовалюта». Что является не лучшей идеей потому, что 1) большая часть крипты не является валютой, и 2) делает акцент на криптографии, хотя очень немногие в этой индустрии занимаются криптографией. Миллионы «экспертов», инфлюенсеров и миллиардеров понятия не имеют, как работает криптография. В то время как настоящие криптографы раздражаются, что все эти деятели у них украли приставку.
На эту тему используются и другие термины —
— но они настолько широко используются относительно разнообразных вещей из мира крипты, что тоже не очень хорошо подходят. Поэтому я буду в основном использовать привычный термин «крипта».
Во-вторых, «Сатоши Накамото». Это псевдоним, и кто бы ни написал его белую бумагу, он (она или они) отлично справился с задачей сохранения анонимности. Существует множество теорий и спекуляций относительно авторства биткойна. Среди них есть забавные версии вроде Илона Маска или случайного компьютерного инженера по имени (внезапно!) Сатоши Накамото. Я буду называть его «Сатоши» и использовать мужской род просто потому, что так уж повелось.
И ещё одно замечание. Кроме, пожалуй, самого Сатоши, почти все, кто замешан в заметных историях, связанных с криптой — персонажи очень яркие и порой откровенно комические. Ставлю на то, что в любой статье о крипте, которую вы будете читать, будет присутствовать довольно безумный герой. (Например, захватывающая история из Bloomberg Businessweek про отправку миллиардов долларов на Багамы от соавтора «Инспектора Гаджета» в обмен на цифровые токены, придуманные парнем из «Могучих утят», которая управлялась людьми, находящимися под следствием в США.) Здесь мы не будем упоминать настоящих людей. Моя цель — объяснить суть крипты. Чтобы в следующий раз, когда вы будете читать про человека-утку, вы хотя бы примерно понимали, что он вообще пытался провернуть.
§3.3. Оступление: «крипта» в крипте
Криптография — это наука о шифровании сообщений, об их кодировании и декодировании. Большая часть того, о чём мы тут будем говорить, вовсе не про криптографию. Мы будем говорить о пирамидах и прочих финансовых изобретениях. Но базовый уровень крипты действительно связан с криптографией, поэтому будет полезно понимать её хотя бы в общих чертах.
На самом примитивном уровне криптография работает довольно просто. У вас есть данные на входе (число, слово или строка), вы пропускаете их через некоторую функцию, а на выходе получаете совершенно другое число или слово или чтобы там ни было. Функция может быть очень простой, как, например, шифр Цезаря (вы сдвигаете каждую букву на одну позицию в алфавите, после чего слово «Caesar» превращается в «Dbftbs») или «поросячья латынь» (pig Latin: переносим первую букву в конец слова и добавляем суффикс «-ay», так «Caesar» становится «Aesar-Cay»). Иногда эти функции могут быть гораздо сложнее.
Полезное свойство более сложных криптографических функций заключается в том, что они являются «односторонними»4. Это значит, что входные данные легко превращаются в выходные, но крайне тяжело сделать обратную операцию — из выходных данных получить то, что было на входе. Классический пример: легко перемножить два больших простых числа, но разложить результат на два простых множителя — довольно сложно. Шифр Цезаря легко применяется в обе стороны. А вот односторонние функции в обратную сторону не работают. Поэтому их и используют для шифрования секретов.
4 У этого термина существует более широкое техническое определение, чем в моём описании. Под «односторонней функцией» я имею в виду функцию, которая, как мы надеемся, является односторонней из текущих знаний о компьютерных технологиях, математики и криптографии.
Примером может служить хэш-функция. Которая на входе принимает текст и превращает его в набор символов определённой длины. Например, я могу пропустить эту статью через хэш-функцию, — одна из самых популярных называется SHA-256, её придумали в Агентстве Национальной Безопасности5, — и на выходе получить длинное бессмысленное число. (А чтобы сделать его ещё более бессмысленным, число записывают в шестнадцатеричном виде, в котором встречаются только цифры 0—9 и буквы a—f.) После этого я могу отправить тебе это число со словами «Я написал статью, прогнал её через SHA-256 и вот результат». У тебя будет странное число, которое ты никак не сможешь расшифровать обратно в статью.
5 Если хочешь попробовать, в сети есть множество SHA-256 кодировщиков, например Xorbin.com. Функцию можно посчитать даже с помощью ручки и бумаги, для этого можно изучить официальную бумагу работы алгоритма (или её описание на Википедии).
Хэш-функция является односторонней. Полученный хэш не скажет вам ничего о содержании зашифрованной статьи, даже если ты умеешь считать хэш-функции. Всё, что она делает — это перемешивает данные, поданные на входе. Она берёт каждую букву, представляет её в виде бинарного значения (серии бит, состоящих из нулей и единиц) и многократно их перемешивает, сводя в неузнаваемый беспорядок. Алгоритм содержит чёткую и последовательную инструкцию того, как смешивать биты. Но алгоритма для обратной операции просто не существует6. Всё равно, что взбить сливки в кофе: сделать легко, а вернуть обратно невозможно.
6 Простой пример. Один из способов перемешать данные называется XOR (от «exclusive or»). Если вы примените XOR к двум битам (1 или 0), он вернёт вам 1, если только один из битов является 1, или 0, если оба из них являются 1 или оба нули. Если применить XOR к числам 1100 и 0101 поразрядно (сначала к числам на первой позиции каждого числа, потом на второй позиции, и так далее), то мы получим 1001. Зная входящие данные не сложно расчитать результат. Но если вы знаете только, что результат имеет значение 1001, вы не получите из этого входящих данных: это могут быть или 1100 и 0101, или 0011 и 1010, или 1001 и 0000, или 1111 и 0110 и так далее. Если вы возьмёте половину этой статьи и совершите XOR с другой её частью, то из результата вы никогда не получите исходный текст. А если вы проделаете это десятки раз, то получите настоящую криптографию.
Использование алгоритма SHA-256 всегда выдаёт на выходе 64-значное число для входящих данных любого размера. Вот, например, хэш полного 730-страничного романа «Улисс» Джеймса Джонса:
3f120ea0d42bb6af2c3b858a08be9f737dd422f5e92c04f82cb9c40f06865d0e
Хэш записи «Hi! I’m Matt» занимает столько же места:
86d5e02e7e3d0a012df389f727373b1f0b1828e07eb757a2269fe73870bbd044
Но что если я напишу «Hi, I’m Matt» с запятой? Тогда мы получим вот это:
9f53386fc98a51b78135ff88d19f1ced2aa153846aa492851db84dc6946f558b
Из хэша мы не можем получить никакой очевидной связи между записями «Hi! I’m Matt» и «Hi, I’m Matt». Две практически идентичные записи приводят к абсолютно разным результатам. Это важнейшее свойство односторонних хэш-фунций: если бы похожие входящие данные приводили к похожим результатам, было бы слишком легко произвести обратную функцию и расшифровать сообщение. Но на практике каждому уникальному входу соответствует, по сути, уникальный случайный выход7.
7 Поскольку все хэши имеют одинаковую фиксированную длину, теоретически два разных входа могут дать один и тот же хэш. Это называется коллизией. Но 64-значный шестнадцатеричный хэш даёт 16^16 возможных значений или примерно 10^77, что в несколько миллиардов раз больше количества атомов на Земле.
Но какой смысл в шифровании, который невозможно расшифровать? Во-первых, для верификации и проверки. Если я отправлю тебе хэш этой статьи, это не позволит тебе воссоздать саму статью8. Но если я отправлю тебе непосредственно текст статьи, ты сможешь самостоятельно прогнать её через SHA-256 и сгенерировать хэш. И после его сверки с тем, который я тебе прислал, ты можете убедиться, что мой хэш был верным и мы говорим об одной и той же статье.
8 Задачка для читателя. Я включил в статью несколько хэшей и много упоминал хэш самой этой статьи. Но ни разу не включил его в саму статью. Почему? (Поверь, я хотел это сделать.)
И да, с этой статьёй проделывать все эти операции довольно бессмысленно. Но именно этот принцип хэширования данных обычно используется для решения самых разных прикладных задач.
Банальный пример — пароли. Если у меня есть компьютерная система, а у тебя пароль для входа в неё, мне нужна возможность проверять, что введённый пароль правильный. Простой способ — хранить пароли в чистом виде и сравнивать то, что ты ввела с тем, что у меня записано. Домустим, у меня есть файл со всеми именами и паролями, в котором напротив твоего юзернейма записано «Password123». И когда ты в окошке логина вводишь «Password123», моя система сверяет это с внутренним файлом, и если они совпадают, позволяет тебе войти. Но это очень опасный способ хранения. Потому что если кто-то украдёт файл, то он получит пароли всех пользователей. Более безопасным способом для меня будет хранить пароли в виде хэшей. Теперь, когда при регистрации ты вводишь «Password123», я прогоняю это через хэш-функцию и получаю только
008c70392e3abfbd0fa47bbc2ed96aa99bd49e159727fcba0f2e6abeb3a9d601
и именно этот хэш я сохраняю в своей системе. И когда ты каждый раз логинишься в мою систему, вводишь пароль, я его хэширую, сверяю со своей записью, и если они совпадают, я тебя пускаю внутрь. Если кто-то украдёт список со всеми хэшами пользователей, он не сможет декодировать пароли и попасть в систему под твоим именем9.
9 Это выходит за рамки нашей темы, но на тему хранения и восстановления паролей с помощью криптографии можно ещё почитать, например, про « rainbow tables » и « salt ».
Бывают и другие, более ботанские способы использования хэшей. Один из них — отметка времени (time stamping). Представим, что ты предсказываешь какое-то событие и планируешь на этом, когда предсказание сбудется, получить немного славы. Но просто пойти в Твиттер и запостить там «В 2024 Супер Кубок выиграют Джетс» может быть не лучшей идеей. Чтобы не позориться заранее, не влиять на результат или по какой-то другой причине. Как вариант, ты можешь записать своё предсказание на бумаге, запечатать его в конверт и отдать его мне на хранение. А после Супер Кубка сказать, распечатывать его или сжечь. Но для чистоты эксперимента ты и все остальные должны мне доверять.
Другой вариант, не требующий доверия — это зашифровать своё предсказание с помощью хэш-функции, результатом которого будет сточка:
64b70b0494580b278d7f1f551d482a3fb952a4b018b43090ffeb87b662d34847
а после этого опубликовать твит:
Это не настоящий твит! Но вы можете на меня подписаться: @matt_levine.
Скорее всего тебя назовут занудой, но никто не сможет расшифровать твоё предсказание. А потом, когда Джетс победят, ты публикуешь изначальный текст предсказания. И любой желающий, прогнав его через SHA-256, сможет убедиться, что хэши совпадают. И вся слава теперь — твоя.
Помимо хэширования, ещё один важный вид односторонних криптокрафических функций — шифрование открытым ключом.
У меня есть два числа, которые называются «публичный ключ» и «приватный ключ». Оба числа длинные и выглядят случайными, но с помощью специального алгоритма они связаны друг с другом. Одно число из этой пары может быть использовано для скрытия сообщения, а другое — чтобы его прочитать. В криптографии есть классическая проблема: если ключ шифрования и ключ для расшифровки совпадают, мне нужно как-то передать тебе один из них. Любой, кто перехватит этот ключ, сможет читать наши сообщения. Система из двух ключей решает эту проблему.
Итак, у нас есть два ключа. Публичный ключ — он на то и публичный, что я могу его показывать и отправлять кому угодно, да хоть запостить в Твиттере. А вот приватный ключ я держу в секрете. Ты хочешь отправить мне секретное сообщение. Ты его пропускаешь через алгоритм шифрования, который берёт 1) твоё сообщение и 2) мой публичный ключ (который все знают) и зашифровывает сообщение. И ты спокойно мне это отправляешь. Чтобы прочитать твой шифр, я запускаю алгоритм дешифрования, который берет 1) твоё зашифрованное сообщение и 2) мой приватный ключ (который есть только у меня), совершает криптографическую магию и отдаёт мне твоё сообщение, которое я теперь могу прочитать.
То есть, зная мой публичный ключ, любой может отправить мне секретное сообщение. Но никто не может его расшифровать. Для этого нужен приватный ключ, который есть только у меня. (То есть для отправителя функция является односторонней, но я могу её развернуть с помощью своего приватного ключа.)
Схожая технология называется «цифровой подписью». У меня по прежнему есть публичный и приватный ключи. В профиле своего Твиттера я публикую публичный ключ, чтобы все его знали. Теперь я хочу отправить тебе сообщение таким образом, чтобы ты была уверена, что это именно я его тебе отправил. Алгоритм шифрования берет 1) моё сообщение и 2) мой приватный ключ, проделывает с ними магию и выдаёт зашифрованное сообщение. После этого я отправляю тебе исходное сообщение и его зашифрованную версию.
Ты запускаешь программу проверки, которая берёт 1) зашифрованное сообщение и 2) мой публичный ключ. Расшифрованное сообщение совпадает с оригиналом. Значит, что это я его зашифровал, и это, в свою очередь, значит, что я его написал. Конечно, я мог бы просто написать тебе в личку Твиттера, но так более криптографично.
А теперь представь платёжную систему, в которой все счета публичны. Всем доступен список счетов и их текущие балансы. Я тебе говорю: «Я контролирую счёт № 00123456789, на котором лежат $250, и я собираюсь отправить тебе $50». Я отправляю тебе сообщение «вот тебе $50», подписанное моей цифровой подписью. Ты его расшифровываешь, убеждаешься, что это действительно мой счёт и всё сходится. Это базовая идея, лежащая в основе Биткойна. Хотя там и добавлено несколько более сложных технических слоёв.
§3.4. Как работает Биткойн
В самом простом виде Биткойн устроен следующим образом. Есть большой публичный список адресов, каждый из которых выглядит как случайный набор букв и цифр с некоторой суммой Биткойнов на балансе. Например у адреса «1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa»10 на балансе хранятся 68.6 Биткойнов. Адрес выступает в роли публичного ключа11. Если я «владею» этими Биткойнами, это означает, что у меня есть приватный ключ от этого адреса. Что-то вроде пароля к аккаунту.
10 Это легендарный адрес, на который пришли первые биткойны. Считается, что он принадлежит Сатоши Накамото.
11 Технически адрес — это хэш публичного ключа. Но, как писал создатель Ethereum Виталик Бутерин в своей белой бумаге, «вполне допустимо называть хэш публичного ключа самим публичным ключом». Раз это устраивает Виталика, то устраивает и меня.
Поскольку я владею приватным ключом от этого адреса, я могу отправить тебе с него Биткойны, подписав соответствующую транзакцию. Ты можешь сверить подпись с моим адресом и публично доступным балансом. Этой информации тебе будет достаточно, чтобы убедиться, что это действительно мой адрес. Но недостаточно, чтобы вычислить мой приватный ключ и украсть остальные Биткойны.
Всё это вместе означает, что мне не нужно доверять тебе, а тебе доверять мне. А нам вместе не нужно доверять банку, чтобы я мог отправлять тебе Биткойны, и мы были уверены в необходимом для этого количестве средств на моём счёте. «Мы определяем электронную монету как цепочку цифровых подписей» писал Сатоши. Комбинации публичных и приватных ключей достаточно для того, чтобы определить монету. Криптовалюта называется криптовалютой потому, что эта валюта появляется в результате выполнения криптографических функций.
Сатоши сказал, что Биткойн — это цепочка подписей
Ты могла обратить внимание, что всё, что мы сделали — это обменивались сообщениями. И назвали результат валютой. Звучит странно, но традиционные финансы не сильно в этом отличаются. Банки не перетаскивают туда-сюда мешки с золотом или наличными. Они ведут базы данных. Когда я перевожу тебе $100, в сущности мой банк отправляет твоему банку сообщение обновить баланс.
Точно так же в сети Биткойна сообщения изменяют балансы адресов. Но кто ведёт учёт этих балансов? Грубый ответ: сама сеть Биткойн, состоящая из тысяч пользователей, которые её совместно используют и запускают её программу на своих компьютерах. Одновременно существуют тысячи копий общего реестра, в каждой из которой хранится список того, кому сколько принадлежит Биткойнов.
Далее. Когда мы с тобой совершаем транзакцию — когда я перевожу тебе Биткойны — мы делаем это не приватно. Мы сообщаем об изменении наших балансов всей сети, чтобы каждый мог обновить записи в своей копии базы данных. Если я отправляю тебе Биткойн со своего адреса, и моя цифровая подпись верна, все участники сети прибавляют 1 Биткойн твоему адресу и вычитают его с моего.
На самом деле, технически, реестр — это не список всех адресов и их балансов. Это журнал абсолютно всех транзакций12. Главное, что делает сеть — это обновляет и хранит именно список и последовательность всех транзакций13.
12 Если быть совсем точным, в реестре вообще нет текущих балансов. Но их можно вычислить, пересчитав все транзакции с самого начала.
13 В белой бумаге Биткойна есть раздел «Использование дискового пространства» о том, как сеть сжимает данные о старых транзакциях с помощью «деревьев Меркла»; люди в крипте очень любят словосочетание «Merkle trees», так что ты теперь тоже его знаешь.
Хитро, скажи? И теперь вместо того, чтобы доверять банку хранение данных о твоём счёте, ты доверяешь это тысячам анонимных незнакомцев.
И чего мы этим добились?
Ну на самом деле не всё так плохо, как может показаться. Каждая транзакция в такой цепочке доказуемо корректна: если я отправлю тебе Биткойны со своего адреса, подписывая её своим приватным ключом, сеть примет эту транзакцию и добавит в общий реестр; если же я попытаюсь отправить тебе Биткойны с какого-то другого адреса, от которого у меня нет приватного ключа, все в сети увидят, что это подделка и не примут эту транзакцию. У всех работает одна и та же программа с открытым кодом, которая обновляет реестр только подтверждёнными и корректными транзакциями. Любой может обновлять реестр транзакций, но каждая запись в нём проверяема и нет необходимости особо волноваться о доверии каждому из участников.
Я постоянно говорю, что «все» ведут реестр транзакций. Это было близко к истине в ранние годы работы Биткойна. Но теперь это не совсем так. Тысячи участников запускают и поддерживают полные ноды, которые поддерживают и действительно проверяют каждую транзакцию с помощью официального софта сети Биткойна. Но есть и миллионы людей, которые этого не делают. Они просто владеют каким-то количеством Биткойнов и верят, что система будет работать исправно. Но основа их доверия немного отличается от той, почему мы верим банкам. У любого желающего есть возможность проверить, что все остальные проверяют и подтверждают транзакции правильно.
Ещё одна хитрая задумка заключается в том, что у всех в этой системе есть финансовые стимулы вести себя честно. А если все ведут себя честно, тогда такая платёжная система становится очень ценной. Если бы в ней была возможность добавлять в реестр некорректные транзакции, кто-то бы этим обязательно воспользовался, доверие такой системе пропадает и она становится бесполезной. Какой смысл воровать Биткойны, если они ничего не стоят?
Это характерное отличие крипты от традиционных платёжных систем: вместо того, чтобы верить, что люди будут вести себя честно, она создаёт такие экономические стимулы, чтобы людям было выгодно вести себя честно.
Вот примерно так это всё и работает. Осталось только два малюсеньких вопроса. Первый: откуда появляются все эти Биткойны? Ладно, допустим, все участники сети хранят реестр всех совершённых транзакций. И конкретно твой Биткойн может быть отслежен по цепочке совершённых когда-то переводов. Но до каких пор мы их будем отслеживать? С какой отметки вообще начинается реестр?
Другой вопрос заключается в том, что порядок транзакций должен иметь значение. Если у меня есть один Биткойн, и я его отправлю тебе, а потом кому-то ещё, у кого в итоге будет мой Биткойн? Звучит немного глупо и ответ кажется очевидным, но на практике есть нюансы. Биткойн — это децентрализованная сеть, которая работает на тысячах узлов, транзакции между которыми разлетаются непредсказуемо. И нет никакой гарантии, что на все компьютеры в сети они придут в одном и том же порядке. Если все участники не будут согласны относительно порядка транзакций, случится неприятность — «двойная трата» (double spending) — так называется попытка отправить один и тот же Биткойн в два разных места. «Транзакции должны быть публично объявлены, — писал Сатоши, — и нам нужна система, по которой все участники будут соглашаться с единым порядком их поступления во времени».
И эта система называется блокчейн.
§3.5. О, блокчейн!
Каждая транзакция в сети Биткойна транслируется всей сети. Некоторые компьютеры этой сети называются «майнеры» — они собирают все входящие транзакции по мере их поступления в списки, которые называются «блоки». У каждого майнера свой список транзакций и, соответственно, своё содержание блока. В какой-то момент одна из версий блока становится, условно говоря, официальной: его список и порядок транзакций становятся каноническими для всей истории сети. Это событие называется «добычей блока» (block has been mined)14. В сети Биткойна каждый новый блок добывается примерно каждые 10 минут15.
14 На самом деле блок становится каноническим после «пяти подтверждений»: после того, как блок был добыт, должен появиться следующий блок, который будет на него ссылаться, потом должен быть добыт следующий блок, который ссылается на предыдущий, и так пять раз, чтобы сеть продолжила развитие на пять блоков после обсуждаемого.
15 Вы можете отслеживать новые блоки онлайн в любом доступном «эксплорере». Например, блок 755965, добытый 27 сентября, содержит 2,466 транзакций между разными адресами: адрес, начинающийся на bc1qns отправил 0.0052 адресу начинающемуся на 16qZC7; а 39VgGL разделил 0.012 биткойна между адресами 14NrDK и 37o1E3; и так далее.
После этого майнеры начинают собирать новый блок, одна из версий которого станет официальной и канонической. И тут снова вступает в игру хэширование. Новый блок должен содержать хеш предыдущего. Это одновременно доказывает, что предыдущий блок 1) является корректным и принят сетью и 2) случился раньше во времени. Каждый блок ссылается на предыдущий. Так возникает цепочка блоков — собственно, blockchain. Цепочка блоков создает официальный реестр событий в сети, согласованный всеми участниками. Хэши здесь представляют собой временные метки, согласующие порядок хранения подтверждённых транзакций.
Этот механизм можно было бы представить следующим образом. Каждые 10 минут один майнер предлагает список транзакций, а все остальные компьютеры за него голосуют. Если он набирает большинство, то становится официальным и включается в общую цепочку блоков.
Но это было бы слишком просто и наивно. Поскольку не существует никаких правил, кто может присоединиться к сети, то любой обладатель компьютера с запущенной программой майнинга может включиться в игру. Никаких проверок на честность, его добрые намерения или даже человечность. Ты можешь запустить в сети тысячу копьютеров, если захочешь.
Как выглядит настоящий майнинг где-то в России
Это создает в сети угрозу, которую называют «Сибил-атака», названную так не в честь древнегреческой пророчицы Сивиллы, а в честь книги 1973 года о женщине с множеством личностей. Суть сибил-атаки в том, что в системе, где реестр поддерживается коллективно и любой желающий может в этом принять участие, ты можешь запустить тысячу узлов и выдавать себя за тысячу новых живых участников. А потом ты этими узлами подтверждаешь свою фиктивную транзакцию. Со стороны это будет выглядеть, что тысяча участников её проверили и подтвердили, а сеть примет эту подделку за решение большинства. Таким образом можно или украсть деньги, или привести всю систему в хаос.
Sybil (1973)
Решением стало сделать подтверждение транзакций дорогим.
Чтобы добыть блок с новыми транзакциями, майнеры Биткойна выполняют абсурдное и затратное упражнение. Которое снова включает хэширование. Каждый майнер берёт список транзакций для включения в блок, хэш предыдущего блока, добавляет к этому произвольное число — «nonce» — и прогоняет это всё через SHA-256. Получается, как мы помним, 64-значное шестнадцатеричное число. Если это число получается достаточно маленьким, то блок считается добытым. Если нет — майнер пытается снова, но с другим значением nonce.
Что значит «достаточно маленькое» — задаётся программно сетью Биткойна и может меняться, чтобы добыча каждого нового блока упрощалась либо усложнялась. Цель алгоритма — чтобы блок майнился каждые 10 минут. Если майнеров становится больше или растут их вычислительные мощности, сложность увеличивается. Если майнеров становится меньше — сложность упрощается. Прямо сейчас «достаточно маленьким» считается хэш, который начинается с 19 нулей. Хэш недавно намайненного блока выглядел так:
00000000000000000006c9f1194ce7ff75c5f265d5520878e9e9392c3c8ff203
Это как игра в 20 вопросов, в которой ты постоянно угадываешь правильный ответ. Но без каких-либо подсказок, и количество доступных попыток во много, много, много раз больше, чем 20. Существуют исчезающе исчезающе исчезающе ничтожный шанс, что вводные данные (список транзакций + nonce) с первой попытки даст хэш с 19 начальными нулями. Твои шансы угадать nonce — 75 сикстиллионов к одному. Поэтому майнеры запускают алгоритм хэширования снова и снова, перебирая варианты nonce триллионы раз, до тех пор, пока не получат хэш с необходимым количеством нулей16. Суммарная мощность сети Биткойн сейчас — то есть общая возможность генерировать определённое количество хэшей (хэшрейт) — более 200 миллионов террахэшей в секунду. То есть 200 квантиллионов расчётов в секунду. Что довольно много, но всё ещё меньше 75 секстиллионов. Поэтому угадывание правильного nonce для майнинга нового блока занимает в среднем 600 секунд.
16 И снова Виталик: «Поскольку SHA256 работает как абсолютно непредсказуемая псевдорандомная функция, единственным способом создания нового блока является простой перебор различных значений nonce».
Это гонка. В которой побеждает только один майнер. И за это он получает награду — новые Биткойны. Майнинг нового блока значит и майнинг новых монет. После огромного вычислительного труда ты буквально достаёшь их из системы. Как крупицы золота из кучи руды. Отсюда и буквальная метафора майнинга (на английском mining — добыча полезных испопаемых).
Старомодный майнер, ок. 1860
Когда майнер находит необходимое количество нулей, он публикует новый блок и его хэш в сеть Биткойна. Все остальные проверяют его и принимают решение, валиден ли он. («Валидность» означает, что все транзакции в нём правильные, хэш предыдущего блока на месте, а у хэша блока — требуемое количество нулей.) Если его принимают, все принимаются за работу по добыче нового блока. Берут хэш только что добытого блока, список транзакций, ожидающих добавления и поступивших за время майнинга предыдущего, и новый nonce, и начинают подбирать новый хэш. Каждый новый блок строится поверх предыдущего.
4. Майнинг
Всё это невероятно затратно. Майнерам требуется специальное железо, чтобы производить эти бесконечные расчёты, которые вырастают до огромных компьютерных ферм, работающих без остановки. Процесс майнинга Биткойна в совокупности потребляет электроэнергии сопоставимо с целым государством среднего размера. И да, это не очень полезно для окружающей среды. Одно из самых популярных в Твиттере описаний майнинга звучит так:
И в каком-то смысле это полное безумие. Иногда говорят, что майнеры, добывая новые блоки, решают сложные математические задачи. Но это не правда. Они просто с помощью грубой вычислительной силы перебирают квинтиллионы чисел в секунду чтобы подобрать нужный хэш. Никаких математических задач не решается, никакой новых знаний миру этим угадыванием они не добавляют.
Но майнеры решают важную проблему самого Биткойна. Проблему обеспечения безопасности сети и реестра его транзакций. Подтвеждение транзакций показательно дорого, соответственно их дорого подделывать и невероятно дорого устраивать сибил-атаки. Именно поэтому Сатоши и все остальные называют этот метод подтверждения транзакций «доказательством работой» (proof of work). Если ты расчитал правильный хэш нового блока, это значит, что ты произвёл невероятный объём вычислительной работы. Просто так это не делают.
Proof-of-work — это механизм достижения консенсуса между людьми, у которых есть экономический интерес в системе, без необходимости знать об этих людях что-либо ещё. Ты никогда не станешь майнить Биткойны, если у тебя нет задачи, чтобы у них была какая-то ценность. Если ты майнер, ты так или иначе инвестируешь в Биткойн — покупаешь оборудование, платишь за электричество и тем самым делаешь довольно дорогую ставку на успех системы. У тебя есть доказательство, что тебе не всё равно, и за это ты получаешь право участвовать в верификации реестра транзакций. Система за это платит тебе Биткойнами, что ещё сильнее тебя к ней привязывает.
Новые Биткойны появляются из ниоткуда. Они создаются в результате майнинга самим алгоритмом сети Биткойн. По сути все Биткойны появились в результате майнинга. Не было никаких предварительных аллокаций для Сатоши Накамото или ранних инвесторов или кого-либо ещё. Это ответ на вопрос, откуда берутся Биткойны: они все были добыты майнингом.
Изначально награда за добытый блок, установленная алгоритмом сети, составляла 50 Биткойнов. Сейчас она составляет 6.25. В контексте награды за блок, надо понимать, что это вознаграждение косвенно оплачивается пользователями Биткойна. Каждые 10 минут появляется 6.25 новых монет из ниоткуда. Все они уходят майнерам за обеспечение безопасности сети. В год это выходит больше $6 млрд17. Но это непрямые расходы, а скорее некая форма инфляции, когда рыночное предложение Биткойнов растёт18, каждая монета в теории немного дешевеет. Сегодня сеть Биткойна выплачивает майнерам около 1,5% своей капитализации в год.
17 6.25 Биткойнов каждые 10 минут означают 37.5 в час, что даёт 900 Биткойнов в день помноженные на 365, помноженные на текущий курс монеты.
18 Как известно, в сети предусмотрены только 21 млн биткойнов. Это прописано в коде. Что произойдет, когда мы достигнем этого лимита? Из каких источников будет оплачиваться работа майнеров? Из оплаты транзакций. Код Биткойна позволяет майнерам получать часть отправляемой транзакции. И это будет единственным источником их заработка. Но по текущим расчётам это произойдёт не ранее 2140 года.
Это ниже текущей инфляции американского доллара. Но всё-таки не бесплатно. Каждый год майнеры, которые продолжают поддерживать безопасность сети, откусывают свой кусок общей капитализации сети. А пользователи получают кое что, стоимостью $6 млрд в год19:
И здесь срабатывает ещё один важный экономический эффект. Если можно много зарабатывать на майнинге Биткойна, в этом захочет поучаствовать много других участников. С увеличением количества участников становится сложнее контролировать в одних руках большую часть майнинговых мощностей. Если бы кто-то стал контролировать большинство майнинговой мощности сети, это могло бы привести к драматическим последствиям: он мог бы осуществлять двойные траты, переписывать историю и отменять транзакции. Всё это называется «атака 51%». Если в теории становится возможным украсть милларды долларов с помощью майнинга, люди должны инвестировать в майнинг очень много, повышая стоимость конкуренции. Но если ты проинвестировал миллиарды для захвата контроля над сетью, возможно тебе будет интересней заботиться о сохранении ценности. Что будет останавливать от злоупотребления властью.
