Урок №1. Блокчейн основы, Bitcoin

Привет, народ!

Сегодня мы хотим рассказать вам о блокчейне, о технологии, которая может изменить мир. А поможет нам в этом мой друг, которого зовут Жорик. Он очень умный и уже начал разбираться в блокчейне. Нам он будет помогать своими жизненными примерами.

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

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

Если для кого-то даже такое определение показалось слишком сложным, обращаемся к Жорику.
У Жорика есть много друзей. Так как Жорик был самым богатым в компании (накопил еще с экономии на обедах в школе), он часто давал деньги в долг. Но, как обычно бывает, сложная криптовалюта, в которой он пытался разобраться, не оставляла ему свободного времени — про все долги Жорик забывал.

Решив, что так дела не делаются, Жорик взял школьную доску, повесил у себя дома и стал записывать на нее все долги друзей.
Теперь Жорик всегда мог проверить, кто ему должен, а кто уже вернул долг. Подойдя к доске, Жорик видит, что Ваня вернул ему долг двумя транзакциями, а вот Петя, отдавая 100 рублей, соврал, что полностью вернул долг.

У Жорика все работает, он доволен своей идеей. Теперь все его знакомые отдают долги в полном размере. Радуются все, кроме друзей Жорика, которые теперь на тотальном контроле.

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

Жорик решает бороться с такой несправедливостью и припоминает, как все работает в блокчейне.
Блокчейн использует хеширование данных для того, чтобы их было сложно изменить, чем и можно воспользоваться. Хеширование — это превращение одного набора символов в разнозначный набор символов определенной длины.
ПРИМЕР

Строка: Ваня взял в долг 200 рублей
Хеш: 1b78cebc2e680ecc464eac759a276b82dda09181ddb5d460ff433bcf1d3b32f4

Строка: Ваня взял в долг 100 рублей
Хеш: d9af13728bb62aa4b6739e90d26072e6e185d4760d0ed81189562d0d19e99c66
ПРИМЕР

Строка: Ваня взял в долг 200 рублей
Хеш: 1b78c ebc2e 680ec c464e ac759 a276b 82dda 09181 ddb5d 460ff 433bc f1d3b 32f4

Строка: Ваня взял в долг 100 рублей
Хеш: d9af1 3728b b62aa 4b673 9e90d 26072 e6e18 5d476 0d0ed 81189 562d0 d19e9 9c66
Таким образом Жорик захешировал все данные на своей доске.

Но, к сожалению, Петя слишком заинтересован в том, чтобы скрыть свои долги. Зная, какие данные были захешированы, легко изменить их, захешировать обратно и вписать на доску.
Петя так и поступил. Теперь Жорику предстоит усложнить хеширование так, чтобы хитрый Петя его не смог обмануть.

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

Чтобы решить проблему безопасности, Жорик решает действовать следующим образом: берёт первую строку, хеширует её и получает некий хеш; этот хеш Жорик добавляет к следующей строке и заново хеширует.
Теперь, если изменить хотя бы одну строчку, то придется пересчитать хеши всех остальных ниже по списку. Представим, что Петя опять на тусовке у Жорика, и Жорик отлучился на минутку от своей доски со связным списком. Вот тут Петя и понимает, что при таком хешировании у него точно не хватит минутки, чтобы исправить весь список, подменив все хеши.

Тем не менее, Петя решает, что он сможет это сделать, когда Жорика не будет дома.
Петя дожидается момента, проникает в квартиру к Жорику и садится изменять все хеши. На это он тратит практически всю ночь, но в итоге изменяет все хеши в списке. Наутро приходит Жорик и сверяет каждый хэш. На удивление, все хэши совпадают, и по итогу Петя опять ничего не должен Жорику. Даже больше — теперь Жорик должен Пете.

Теперь Жорику предстоит задача по усложнению хеширования еще на один уровень.
Жорик создает программу, которая генерирует очень сложное уравнение из математики. Ответ на каждое уравнение будет добавляться к хешу. Давайте приведем в пример нереально сложное уравнение x-100+1000/500=350 и сделаем вид, что оно действительно очень сложное. В реальности там будет что-то типа высшей математики.
Как бы хорошо Петя ни знал математику, решить такие уравнения за ночь и подменить всю таблицу он не сможет…
В реальной жизни уравнения не слишком подходят для защиты блокчейна. Компьютеры слишком быстро их решают, а хранить миллионы уникальных уравнений — это сложно и дорого. Поэтому создатели блокчейна придумали другую задачу: найти такое число, чтобы итоговый хеш записи начинался на десять нулей.
То есть вместо уравнения Пете придется придумать любое число, чтобы хеш просто начинался на 0. Такое число может состоять из миллионов цифр, делая тем самым задачу для Пети невыполнимой. Это число непросто найти, но его результат легко проверить.

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

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

Вот только не спешите перебрасываться на сторону децентрализации! Не все так хорошо, как кажется на первый взгляд.
Вернемся к Жорику и Пете. Жорик и Петя создают децентрализованный блокчейн и добавляют туда своих друзей — Диму, Ваню и Дашу. У каждого из них есть своя копия блокчейна. Далее Петя одалживает у Жорика уже в который раз 1000 рублей с целью поставить жирную победную точку в их споре. Так как в блокчейне состоит пять пользователей, и шансов изменить у всех списки практически нет, Петя идет к трем оставшимся друзьям — Диме, Ване и Даше — и предлагает им сделку: давайте подменим данные, спишем все наши долги перед Жориком, а я вам дам за это по 250 рублей. Ребята соглашаются (что их не красит, конечно), изменяют все списки на новые, одинаковые, где они ничего не должны Жорику.

Итого: у друзей-разбойников «навар» по 250 рублей, а Жорик, мало того, что 1000 ₽ потерял, так еще и без возврата долгов остался. Почему же так? Все просто — в децентрализации побеждает всегда большинство. Если 51% имеют отличные данные от других 49%, то за истину принимают данные большинства. В нашем примере Жорик был 1 против 4, поэтому, извини, Жорик, но ты остался без денег.
ЗАНИМАТЕЛЬНЫЙ ФАКТ
На 14 ноября 2023 года количество развернутых нод в сети Bitcoin составляет 16 754. Они разбросаны по всему миру, в 93+ странах. Чтобы прямо сейчас переписать блокчейн, потребуется завладеть 8378 нодами одновременно. Для понимания масштаба — в России находится только 163 ноды.

Как вы считаете, целесообразно ли это? Хватит ли ресурсов, способных это сделать, и если хватит, то сколько потребуется средств, чтобы ими завладеть и контролировать…
Как работают транзакции в блокчейне
Все мы пользовались электронными деньгами. Средства лежат на счете банка, дебетовая или кредитная карта является неким ключом, который может инициировать перевод из банка на счет компании, в которой что-то приобретаем. При покупке мы прикладываем карту и вводим пин-код. После этого совершается покупка. Мы инициировали перевод → банк одобрил транзакцию и произвел ее. Такие транзакции банк записывает в свой список.

Блокчейн работает похожим образом, ведь «Ваня взял в долг 200 рублей» — это тоже транзакция. Только в блокчейне используется механизм шифрования через публичный и приватный ключ.
Публичный ключ может зашифровать любую информацию так, чтобы только приватный ключ мог ее расшифровать обратно.
Публичный ключ в блокчейне — это ваш адрес в блокчейне. Его можно и нужно передавать вашим контрагентам, иначе вы не получите транзакцию.

Пример: 0x28C6c06298d514Db089934071355E5743bf21d60
Публичный ключ в блокчейне — это ваш адрес в блокчейне. Его можно и нужно передавать вашим контрагентам, иначе вы не получите транзакцию.

Пример: 0x28C 6c062 98d51 4Db08 99340 71355 E5743 bf21d 60
Приватный ключ — это доступ к публичному ключу вашего адреса. Это ключ, который нельзя передавать.

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

Вопрос: как атаковать город одновременно? Как сделать так, чтобы каждая из четырёх армий одновременно пошла в атаку?
Варианты решений:
1
Подать сигнал, к примеру, зажечь костер
2
Послать гонца
3
Послать гонца, которого все знают
4
Сделать, как скажет генерал
В целом, вся задача сводится к доверию и невозможности доказательства факта совершения чего-либо.
Итог: решить эту задачу невозможно без использования блокчейна. Блокчейн решил бы вопрос доказательства отсутствием человеческого фактора: машину нельзя подкупить, алгоритм будет считывать математические вычисления, тем самым доказывая факт совершения транзакции, или факт совершения наступления по всем фронтам в 00:01, если возвращаться к генералам из примера.
Как работает «баланс адреса» в блокчейне
Не переживайте, если у вас тоже нет баланса на карте, так как в блокчейне баланса в принципе нет.

Если точнее, баланс-то сам есть, но он записывается не в привычном виде «Ваш баланс: 10 000 ₽», а как-то так «Ваш баланс: 1000 рублей от Саши, 1000 рублей от Маши, 500 из которых вы отдали Пете из которых вам вернули 100 рублей».

Сложновато? — ДА
Практично? — НЕТ
Безопасно? — ДА

И применительно к блокчейну, свойство безопасности перечеркивает все предыдущие минусы.
Блокчейн доказывает, что у вас 100 рублей, не просто надписью баланса, а доказательством переводов на ваш счет этих 100 рублей.

К примеру: когда-то Саша и Ваня скидывали вам по 50 рублей, но эти 100 рублей никогда не тратились и никуда не переводились, а это означает, что при инициировании транзакции должен быть соответствующий факт, что выводов не было.

Поэтому блокчейн покажет, что ваш баланс составляет:

В этом примере мы видим, что 100 рублей на балансе точно есть, так как сумма пополнений составила 200 рублей, а сумма выводов 100 рублей. Доходы в данном примере в блокчейне от Даши, Саши и Вани называются инпутами (input), а получатель денег Петя — аутпутом (output).

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

Но что, если бы ты смог обмануть магазин и снова потратить эти же 100 рублей? Например, ты мог бы сделать копию чека и показать её другому магазину. Это и называется двойная трата.

Транзакции в блокчейне происходят не мгновенно. К примеру, в сети Bitcoin на осуществление транзакции в среднем требуется 15−30 секунд, хотя это время может сильно увеличиться, если сеть будет нагружена.
Время задержки нужно для того, чтобы подписать транзакцию майнерами, и пока транзакции ждут своей подписи, они висят в списке неподтвержденных транзакций, который называется мемпулом.

Средства с вашего адреса списываются после подписания транзакции. Что из этого следует: имея баланс 1 Bitcoin, вы могли бы отправить 1 Bitcoin на адрес, и, пока транзакция подтверждается, отправить еще раз тот же самый 1 Bitcoin на такой же адрес. Это и называется двойной тратой в блокчейне.
Кто-то сможет угадать, как решили такую проблему? Даём подсказку: ответ прямо в названии технологии. Если еще не догадались, то: БЛОКИ.
Блоки в блокчейне (извините за тавтологию, но по-другому никак)
Еще помните Жорика? Если да, то забудьте его как человека. Он настолько стал профи в блокчейне, что эволюционировал до самого настоящего компьютера. Теперь Жорик — это комьютер.
Так вот из таких Жориков и состоит весь блокчейн — тысячи компьютеров по всему миру, которые хранят все транзакции блокчейна. Если тоже захотите стать Жориком, вам придется скачать все транзакции, подобно скачиванию с Торрента, где скачивание происходит с ближайших нод — таких же компьютеров, но владеющих информацией.

Транзакции представлены в виде блоков. Блок — список из n-нного количества транзакций, которые суммарно весят до 2 МБ (применительно к сети Bitcoin). Каждый блок имеет свою дату и добавляется друг за другом, подобно цепочке. Таким образом, мы избавляемся от вопроса «а какая транзакция была раньше», так как блоки добавляются строго каждые 10 минут.

Когда наш компьютер скачивает блокчейн, он узнает, какой блок является последним. Чтобы создать новый блок, компьютер добавляет ссылку на последний блок в его заголовок. Затем он вычисляет хэш этого блока и отправляет его другим компьютерам сети. Другие компьютеры проверяют хэш и, если он правильный, добавляют новый блок в свой блокчейн. И вот, вроде все понятно, — рабочий блокчейн, Жорики трудятся и записывают транзакции в сеть. Но нет, рано радоваться.

Кто уже задал вопрос «а что делать, если все такие Жорики-компьютеры одновременно скажут, что они создали блок» — тот молодец. И вот тут уже пригодится модное слово: майнинг.
Представим, что вы хотите написать стихотворение, которое будет содержать 10 рифмованных строк. Это будет непростой задачей, поскольку вам нужно будет придумать слова, которые будут рифмоваться друг с другом, и при этом иметь смысл.
Для компьютера задача добавления блока в блокчейн похожа на эту. Компьютеру нужно найти такое число (nonce), которое сделает так, чтобы хэш блока начинался на 10 нулей. Это очень сложно, и даже компьютер будет искать такое число перебором.

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

Майнинг — это когда компьютер подбирает число nonce, чтобы хэш начинался на 10 нулей. Т.е. компьютер монотонно перебирает сотни миллионов чисел в поисках того самого.
Чтобы найти хэш, начинающийся на 0, одному компьютеру потребуется несколько десятков лет. Но если объединить тысячи компьютеров в одну сеть, то задача решается значительно быстрее. По теории вероятностей, в среднем, она будет решена за 10 минут. Именно это время требуется для создания нового блока в блокчейне биткоина. Каждые 8−12 минут кто-то в мире находит такой хэш и получает право сообщить о нём остальным участникам сети. Это позволяет избежать споров о том, кто был первым.

За нахождение ответа компьютер (по данным на 2023 год) получает 6.25 BTC — это сумма вознаграждения, которая генерируется системой биткоин «из воздуха» и уменьшается каждые четыре года. Такое уменьшение вознаграждения называется «халвинг».
Следующий халвинг биткоина ожидается в апреле 2024 года (не спешите закупаться асиками и видеокартами — на момент ноября 2023 года майнинг не представляет большого интереса для пользователей без очень мощных компьютеров). Точную дату предсказать сложно, так как она зависит от высоты блока. Поскольку халвинг происходит каждые 210 000 блоков, следующий ожидается, когда высота блока достигнет 840 000.

Любой блокчейн живет и существует с помощью майнеров. Не будь майнеров, ни одной транзакции бы не было, а токенов Bitcoin не было бы добыто.

А что произойдет в 2140 году, когда майнеры смайнят последний Bitcoin?
Да ничего, собственно, критичного не произойдет. Майнинг останется, просто майнеры будут получать вознаграждение из комиссий.

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

У некоторых читателей, наверное, уже возник вопрос: один блок появляется раз в 10 минут, за него платят 6,25 Bitcoin ($ 230 000 на ноябрь 2023), а это означает, что у меня есть шансы срубить 23 млн рублей за 144 попытки ежедневно. Звучит выгодно!
На деле, конечно же, не так. Сейчас компьютеры достигли огромных мощностей, конкуренция возросла в десятки раз, новейшей видеокартой 4 GEN уже никого не удивить. Вы вряд ли сможете на домашнем компьютере смайнить блок быстрее ваших конкруентов, потому что по ту сторону вашей квартиры сидят целые корпорации, которые попытаются вытащить коврик из-под ваших ног. Для майнинга в 2023 году пользователи собираются в группы и майнят вместе.
Теперь история
Собрались как-то Жорик, Петя, Дима и Даша для майнинга Bitcoin. Соединили вычислительные мощности их компьютеров и майнят Bitcoin c одной машины. Для доходчивости объяснения упростим мощность компьютера до его стоимости:

Жорик принес компьютер за 100 000 рублей
Петя принес компьютер за 50 000 рублей
Даша принесла компьютер за 15 000 рублей
• А вот Дима накопил только на домофон и присоединил мощность домофона за 100 рублей к майнинг пулу (шутим, конечно, просто представим, что у Димы очень плохой компьютер)
Итого: в какой-то день друзья умудрились смайнить один блок. Во-первых, им очень повезло. Во-вторых они получили 6,25 BTC. В зависимости от того, сколько мощности предоставил каждый из друзей, распределяется вознаграждение:

Вышеописанный пример — это майнинг пул. Именно в майнинг пуле участвуют различные пользователи, которые хотят смайнить хотя бы один блок в своей жизни. Чем больше мощности вы предоставите, тем больше вы получите от вознаграждения. Учтите, что в примере мы привели слишком упрощенные данные, обычно в майнинг пуле состоит от 1000 пользователей, которые владеют, в среднем, менее 0,5% от вознаграждения, отдавая всю мощность.
Ну а теперь тестик!
За успешное прохождение вы получите ценный подарок!
Погнали!
ЧТО ТАКОЕ БЛОКЧЕЙН?
Дальше
Проверить
Узнать результат
ЧТО ТАКОЕ ХЭШИРОВАНИЕ?
Дальше
Проверить
Узнать результат
ЧТО ТАКОЕ ДЕЦЕНТРАЛИЗАЦИЯ?
Дальше
Проверить
Узнать результат
ЧТО ТАКОЕ «ДВОЙНАЯ ТРАТА»?
Дальше
Проверить
Узнать результат
СКОЛЬКО ВРЕМЕНИ ТРЕБУЕТСЯ НА ДОБАВЛЕНИЕ БЛОКА В Bitcoin?
Дальше
Проверить
Узнать результат
ЧТО ТАКОЕ Nonce?
Дальше
Проверить
Узнать результат
ЧТО ТАКОЕ Mining?
Дальше
Проверить
Узнать результат
ЧТО ТАКОЕ ХАЛВИНГ?
Дальше
Проверить
Узнать результат
Плохо
Ты вообще статью читал?.. Давай-ка, вернись в начало.
Пройти тест заново
Ну такое...
Пока не всё так круто, но попробуй ещё разок!
Пройти тест заново
Ура!
Всё верно! Ты выиграл 10 бесплатных проверок крипто кошелька! Напиши нам где хочешь «Академия10» и получи свой приз.
Пройти тест заново
Смотрите также