Вы находитесь на странице: 1из 5

ТЕМА 7.

КРИПТОВАЛЮТЫ, РАСПРЕДЕЛЕННЫЕ РЕЕСТРЫ


И СОХРАНЕННЫЕ ПРОЦЕДУРЫ (СМАРТ-КОНТРАКТЫ)

7.2. Как устроен блокчейн «под капотом»

Приветствую начинающих криптоинвесторов. Меня зовут Роман Душкин, и мы продолжаем наш


курс по криптоэкономике в РАНХиГС. В прошлый раз мы узнали, что такое блокчейн и зачем он
нужен. Сегодня я предлагаю более глубоко погрузиться в понимание блокчейна, причём мы
сделаем это в применении к криптовалютам. Мы изучим то, как устроен блокчейн биткойна, а потом
порассуждаем, где резонно применять блокчейн, а где он не имеет смысла. Ну и всё это посмотрим
на примерах.

Итак, блокчейн биткойна. Когда я говорю это словосочетание, у вас в голове должен
формироваться образ биткойна, транзакции которого осуществляются при помощи блокчейна. Это
значит, что в основе переводов в платёжной сети биткойна лежит децентрализованный журнал,
записи в котором невозможно подделать. То есть блокчейн. Платёжная сеть биткойна состоит из
связанных клиентов без наличия каких-либо центральных узлов, то есть это пиринговая сеть,
каждый узел в которой равноправен и самодостаточен. Соответственно, контроль со стороны
государства или вообще какого-либо лица над такой сетью практически невозможен.

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

Первой транзакцией в блоках биткойна всегда записывается специальная транзакция,


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

Ещё немного технической информации. Хэширование транзакций производится при помощи


дерева Меркла. Для хэширования используется функция SHA-256, которая считается
необратимой. Поэтому для подтверждения блока транзакций необходимо просто тупо
осуществлять подбор. Подбор чего? Дело в том, что в алгоритме всей сети биткойна есть параметр
— «сложность». Это число, которое определяет значение хэш-функции, которое подбирает майнер
при помощи простого перебора чисел для подтверждения блока. Соответственно, блок
принимается сетью тогда и только тогда, когда находится такой хэш, который равен или меньше
текущей сложности в сети. И здесь есть волшебство — сложность меняется динамически так, чтобы
при изменении количества задействованных в сети мощностей для майнинга скорость майнинга
оставалась постоянной — один блок в десять минут. То есть вот построили китайцы новую ферму
на несколько петахэшей, сложность поменялась, все в сети стали получать чуть меньше.

То есть запомните — блокчейн биткойна получает новый блок каждые десять минут. И в этом блоке
записаны те транзакции, которые отобрал тот майнер, который подтвердил блок. То есть
изначально каждый майнер может отобрать свои транзакции так, как хочет. А в блокчейн попадут

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

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

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

А вот если граждане собрались и организовали децентрализованную систему, экземпляр которой


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

Теперь кратко про майнинг. Майнингом называется процесс подтверждения транзакций. Другими
словами, майнеры создают очередной блок в блокчейне. Помните, как устроен блокчейн? Каждый
блок содержит хэши — хэш самого блока, хэш предыдущего блока и хэши транзакций в виде дерева
Меркля. Вспомнили? А теперь вспомним про сложность, которая устанавливается сетью.
Сложность — это параметр, значение которого должно ограничивать полученный хэш блока
сверху. Ну то есть хэш очередного блока не должен быть больше сложности. Поскольку решить
обратную функцию для функций хэширования, как считается, невозможно, приходится подбирать.
И вот оборудование для майнинга как раз и предназначено для тупого или более или менее
интеллектуального подбора значения специального поля в блоке так, чтобы итоговый хэш блока
стал меньше текущей сложности сети. Сложность необходима для того, чтобы обеспечить
равномерное подтверждение блоков — в среднем один раз в десять минут. Если количество
мощностей для майнинга возрастает, значение сложности снижается, майнить становится
сложнее, время на майнинг очередного блока возвращается к десяти минутам. Это важное
свойство балансировки блокчейна.

Теперь давайте вернёмся к проблеме двойного расходования. Я уже говорил, что она решается в
блокчейне так, что не нужна третья доверенная сторона, но ещё не объяснил этого. Пришло время.
Итак, давайте поставим себя на место злоумышленника, который хотел бы провести сделку,
осуществить транзакцию, а потом вернуть себе потраченные на сделке деньги. Что для этого нужно
сделать? Раз транзакция записывается в блок, который потом попадает в блокчейн, то нужно найти
этот блок и перезаписать его, а потом перемайнить. Никаких проблем — блокчейн это позволяет
сделать. Мы находим блок со своей транзакцией и меняем её — например, изменяя выходящий
адрес, чтобы перечислить деньги самому себе. После этого нам надо перевычислить хэш, так как

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

Что дальше? А дальше нам надо перемайнить следующий блок, так как хэш текущего блока
находится внутри него. У нас же блокчейн. И раз хэш текущего блока поменялся, в следующем
блоке тоже надо поменять хэш. И так до конца до самого последнего блока — все блоки надо
перемайнить. Но опять же, это не проблема. Перемайнили. Проблема в том, что сама сеть
продолжает майнить всё новые и новые блоки. А консенсус между участниками устроен так, что
вся сеть принимает самую длинную цепочку блоков, если где-то произошло разветвление цепочки.
Почему? Ну вот такой алгоритм, который и защищает от двойного расходования.

Единственный вариант для нас — иметь более пятидесяти процентов мощности майнинга. В этом
случае когда-нибудь мы сможем перемайнить все блоки вплоть до текущего и обогнать сеть. Чем
больше мощности сосредоточено в одних руках, тем быстрее это можно сделать. Это так
называемая атака пятидесяти одного процента. Но теперь представим, что у нас в руках
сосредоточено более половины вычислительной мощности сети. Это огромные вычислительные
ресурсы. Огромные. Стали бы мы их тратить для того, чтобы перемайнивать блокчейн ради одной
транзакции? Наверное, только если это экономически обоснованно. Скорее всего, это возможно
только для случая, когда мы, перемайнивая блоки, будем всю криптовалюту в каждой транзакции
переводить на свой адрес. Но это мгновенно приведёт к распаду сети и падению курса
криптовалюты. Так что… С точки зрения практики и экономической целесообразности сегодня
осуществлять атаку пятидесяти одного процента смысла уже никакого.

То, что мы сейчас рассмотрели, называется «доказательством работой», или Proof-of-Work. Это
первый практический механизм обеспечения доверия без централизации. Но было бы неправильно
считать, что человеческая мысль остановилась и учёные с разработчиками не стали искать
альтернативных механизмов, поскольку Proof-of-Work очень затратен. Ну посудите, сегодня все
майнинговые пулы и фермы в совокупности тратят около тридцати тераватт-часов, и по этому
показателю они опережают такие государства, как, например, большую часть стран Африки, страны
Закавказья, Прибалтики, бывшей Югославии и даже Монголию.

В две тысячи одиннадцатом году был разработан новый механизм подтверждения транзакций,
который вообще не требовал затрат электроэнергии. Он получил наименование Proof-of-Stake, или
«доказательство владением», а процесс его применения в отличие от майнинга был назван
«форжингом», от английского слова forge — ковка, то есть выпуск монет. Сущность доказательства
владением в том, что блок подтверждается любым владельцем криптовалюты, выбранным
случайным образом, при этом вероятность выбора равна доле выбранного владельца
криптовалюты в общем объёме всех эмитированных монет. То есть, например, если всего
выпущено сто криптомонет, и у меня есть пять из них, то вероятность того, что я подтвержу
следующий блок, составляет пять процентов. Этот механизм подвержен тем же атакам, что и
доказательство работой, но, с одной стороны, он не требует выполнения бессмысленных
вычислений и затрат электроэнергии, а с другой — многие владельцы будут копить монеты, чтобы
получать всё большую и большую долю, чтобы получать монет ещё больше. На мой взгляд, здесь
выше вероятность того, что эта петля положительной обратной связи приведёт к появлению лица
или сплочённой группы лиц, общий объём монет которых превышает пятьдесят процентов. Но
некоторые криптовалюты используют именно этот механизм. В дальнейшем мы узнаем, какие
именно.

В процессе эволюции криптовалют было создано несколько гибридных механизмов


подтверждения. Я не буду сейчас каждый из них подробно описывать, только перечислю:

3
• Доказательство активностью (Proof-of-Activity)
• Доказательство сжиганием (Proof-of-Burn)
• Доказательство ёмкостью (Proof-of-Capacity)
• Доказательство важностью (Proof-of-Importancy)

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

Итак, мы уже знаем об атаке пятидесяти одного процента. Похоже, что это единственный вариант
крупномасштабной атаки на зрелую сеть, поскольку иные типы имеющихся атак предназначены
для мелких мошенников. Если кто-то захочет взять под контроль сеть такой криптовалюты, как
биткойн, то ему придётся скупать все майнинговые мощности в пулах. Просто так взять и выпустить
нормативный акт, регулирующий майнинг или обращение криптовалют на территории государства,
не получится. Всё просто — криптовалюта, как платёжная система, не принадлежит никому, её
поддерживают все, кто входит в сеть, и пока сообщество принимает её в качестве средства
накопления или обмена, ею будут пользоваться, и она будет иметь ценность у представителей
этого сообщества. А как их поймать? Проверять на входе в аэропорты, установлен ли у них на
смартфонах кошелёк биткойна? Ну смешно же. Вот и скупает Китай майнинговые фермы через
подставных лиц. Вот и пытаются в России сделать регионы, свободные для майнинга. Потому как
ничего, кроме как взять и зарегулировать, они не умеют.

На этой жизнеутверждающей ноте предлагаю перейти к практике.

Чтобы не быть голословными, нам надо собственными руками пощупать, что же это такое —
блокчейн биткойна. Но прежде всего мы помним про главное правило криптоинвестора: «Вы
должны рисковать только теми деньгами, которые Вам не жалко потерять». В прошлый раз
вы установили себе холодный кошелёк и сгенерировали адреса. Грех этим не воспользоваться, так
что сейчас мы купим немного биткойнов, чтобы у нас была возможность использовать их для наших
экспериментов. Для покупки биткойнов надо воспользоваться, кто бы мог догадаться, обменным
пунктом. Конечно, мы не пойдём в ларёк за углом, все действия будут осуществляться онлайн.

Конечно, биткойн стоит уже довольно дорого. Но создатели этой криптовалюты разделили его на
сто миллионов сатоши (то есть как бы копеек — представьте, что в рубле было бы не сто, а сто
миллионов копеек; вот так разделяется биткойн). Так что можно купить, например, одну
десятитысячную биткойна. Давайте воспользуемся каким-нибудь обменным пунктом. Например,
есть сайт bestchange.ru, на котором можно найти ссылку на обменный пункт, который предлагает
лучшие цены.

В любом обменном пункте надо зарегистрироваться, тогда комиссия за перевод будет чуточку
меньше. После регистрации в настройках надо указать один из своих биткойн-адресов (любой —
они все ваши). Как только настройки сохранены, переходите к обмену. Обычно обменный пункт
принимает большое количество вариантов. Я, к примеру, пользуюсь Яндекс.Деньгами. Кто-то
пользуется банковской карточкой. Не пугайтесь, когда он предложит перевести деньги на личный
счёт оператора — проверено много раз, деньги меняют. Ну это примерно так же, как вы кладёте
бумажные деньги в лоток в железном обменном пункте — в этот момент вы можете их потерять,
ведь правда? Потом вводите количество, проверяете и перепроверяете биткойн-адрес и
нажимаете на кнопку «Обменять».

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

После совершения обмена дождитесь, чтобы на сайте обменного пункта статус обмена сменился
на «Выполнен», а потом заходите в свой кошелёк, где Вы увидите свои новенькие блестящие
биткойны.

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

Вам также может понравиться