Что такое блокчейн: руководство для чайников в 2021 году

Знакомьтесь, это Вася и он — душнила. Главная цель жизни Васи — спорить с друзьям.

Вася запоминает, кто и что говорил, находит взаимоисключающие параграфы и тыкает в них людей носом.

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

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

Недавно Вася прокололся

Во время корпоратива Вася сделал две записи: «Потратил 12 000 рублей в баре” и “целовался с барменшей».

Запись попала в дневничок, и наутро Вася вспомнил, что его жена Рита тоже пользуется книжечкой и решил заменить последнюю фразу на «скучал по жене».

Но у него ничего не вышло и вот почему.

Одна запись за другой: как работает блокчейн

«Blockchain” переводится как “цепочка из блоков». Продолжая аналогию с дневником, блок — это некоторое количество дневниковых записей, собранных, запакованных вместе в блок и верифицированных.

Хранятся блоки в последовательной цепочке, одна за другой, в порядке добавления.

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

Как устроен блок в блокчейне?

Упрощенно блок состоит из двух частей: заголовка и списка транзакций.

Список транзакций — это наши дневниковые записи. В заголовке хранится служебная информация: время создания, хеш этого блока и хеш предыдущего.

Тут надо сделать краткое отступление и понять, что такое хеш.

Что такое хеш? (на примере ветреной барменши)

Хеш (хеш-сумма, хеш-код) — это ничего не значащая последовательность чисел и букв, проще говоря, кракозябра. Например:

0035E21F5DE392FDFE1DA8A82D08104332FF3903D67756420F11A98E5689A3BB

Это — хеш, который создала хеш-функция из сообщения «позвони мне! мой номер +79807529891» на визитке

Хеш-функция — программа, которая берет нормальные данные и создает из них уникальную кракозябру.

В случае с блокчейном, функция принимает строчку любой длины (даже огромную) и каждый раз выдает кракозябру длиной в 64 символа.

У хешей есть три приятных особенности:

  1. Глядя на хеш, мы никогда не узнаем первоначальное сообщение
    То есть, вытащить номер барменши из хеша практически невозможно
  2. Одинаковые данные всегда дают одинаковый результат
    Раз за разом скармливая хеш-функции одну и ту же записку, мы всегда будем получать одинаковый результат. Это называется детерминированностью
  3. Стоит изменить хотя бы один символ и результат станет совершенно иными
    Новый хеш совершенно не будет напоминать предыдущий. Изменится не один символ, а почти все и сразу. Это называют эффектом лавины

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

Например, к Васе подходит коллега Коля и говорит «оо, барменша только что дала мне номер телефона, прикинь».

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

И если хеши совпадут — то Коля не врет, он тоже получил ее личную визитку (а не рекламный буклет доставки еды из бара), и особо надеяться на эксклюзивность не стоит.

Использование хешей помогает сделать дневник неизменяемым

В дневнике душнил блоки связаны друг с другом через хеш-суммы.

Заголовок каждого нового блока содержит хеш-сумму предыдущего, стоит изменить хотя бы один символ — и все полетит к чертям.

Давайте посмотрим, что будет, если Вася попытается влететь в блокчейн и изменить хотя бы один символ в записи «целовался с барменом».

Как добавляется новый блок: почему бедный Вася не может просто изменить компрометирующую запись?

Чтобы разобраться, почему Вася физически не может поменять запись, давайте разберемся, как добавляются блоки в цепочку.

Вот блок №233, в котором хранится запись, которую Вася хотел бы поменять.

Когда блок № 233 сформировался и добавился в блокчейн, произошло три вещи:

  • Все дневниковые записи и в этом блоке превратились в одну хеш-сумму и записались в заголовке блока
  • У блока просчитался еще один хеш, куда вошел хеш предыдущего блока № 232
  • Следом добавился еще один блок, куда вошел хеш уже злополучного блока
Все, строчка уже попала в хеш

Стоит Васе изменить хотя бы один символ в своей записи «целовал барменшу», хеш его блока №223 неузнаваемо изменится.

И система верификации отбросит измененный блок как ложный.

А не пошел бы ты, Вася

Что это за система верификации? Кто проверяет блоки и кто отвечает за то, чтобы они все соответствовали друг другу?

Тут пора рассказать о том, кто такие майнеры.

Майнеры: люди, которые добавляют новые блоки

Блоки не попадают в систему просто так, кто-то должен

  • считать хеш-коды
  • добавлять новые блоки
  • проверять, никто ли не жульничает

Именно этим и занимаются майнеры — они добавляют новые блоки.

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

Чтобы добавить новый блок, майнеры наперебой решают сложную математическую загадку. Задачка рассчитана таким образом, чтобы решалась примерно каждые 10 минут. Кто первый решил, тот и добавил блок.

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

Игра «добавь блок»: что за задачку решают майнеры

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

В игре «добавь блок» есть еще два важных числа.

  • Первое называется нонс — это случайное значение, которое пытается угадать майнер.
  • Второе — таргет, число, на которое майнер ориентируется, когда пытается угадать нонс.

К хешу блока добавляется случайный нонс, снова считается хеш.

И новый хеш сравнивается в таргетом.

Если он меньше таргета — то блок будет добавлен в цепочку.

Если нет — то майнер берет другой нонс, снова считает… и так пока не угадает подходящий.

Делать это вручную труд неблагодарный, поэтому за майнеров все считают алгоритмы.

Запускают алгоритмы на серверах, компьютерах и плейстейшенах (но только во влажных мечтах, пока взломать плойку под майнинг никому не удалось). Кстати за вечно-отсутствующие в магазинах PS5 тоже можно поблагодарить майнеров — они скупают все железо и на заводах буквально не хватает ресурсов быстро производить новые приставки.

Чем мощнее компьютер — тем быстрее он угадает нонс. Поэтому биткоин майнят на мега-мощностях, иначе просто нет шанса добавить блок.

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

Тут мы подходим ко второй важной вещи в блокчейне — децентрализации.

Что такое децентрализация?

Обычно информация в интернете хранится на каком-либо сервере. Например, когда вы пишете документ в Google Docs, он хранится на серверах Google. Когда получаете письмо на Яндекс.Почту, оно сохраняется и открывается на серверах Яндекса.

Если бы Вася имел друга-сисадмина в Яндексе с доступом к серверу и полным отсутствием мозгов, он бы просил друга удалить письмо с компрометирующей информацией и никто бы ни о чем не узнал.

Запись изменена, Рита счастлива

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

Поэтому друзья Васи решили доверить хранение блоков группе майнеров.

Допустим, майнеры хранят информацию на своих телефонах.

На каждом телефоне, который майнит блоки, хранятся данные о всех блоках.

При добавлении нового блока майнер отправляет информацию о нем соседним телефонам, а те — своим соседям и так пока у всех информация не обновится.

Друзья Васи в экстазе (почти)

Бесценный подарок, который дарит блокчейн миру обычных людей

Блокчейн долго был технологией, интересной лишь гикам. Когда анонимный создатель биткоина Сатоси Накамото в 2008 году придумал сделать на ее основе первую криптовалюту, ситуация резко изменилась.

Блокчейн в основе биткоина делает его первой децентрализованной валютой.

В случае с обычными деньгами центром контроля является государство — оно может выпускать столько денег, сколько захотят, и деньги будут обесцениваться. Это довольно неприятно.

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

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

Блокчейн дарит криптовалюте еще одно свойство — анонимность.

В случае банковского перевода банк точно знает, кто, кому и сколько денег перевел. При желании они могут заблокировать перевод, либо поделиться с государством этой информацией.

В случае биткоина вместо дневниковых записей в блоке просто ведется запись списка транзакций: кошелек с номером А перевел кошельку B столько-то биткоинов. Кто стоит за этими кошельками не знает никто.

Появление криптовалюты — это событие в мире финансов, сопоставимое разве что появлением взаимозаменяемых монет вместо натурального обмена.

Мы подготовили целый цикл статей про финансовую грамотность простыми словами

Наша команда создает первый удобный и легальный криптовалютный банк: с нормальным интерфейсом, лицензией Центробанка, прозрачной разработкой и командой.

Мы готовимся к запуску и до старта будем публиковать статьи про криптовалюту и финансовую грамотность простыми словами.

Сергей Горшунов, CEO Bitbanker

Дальше мы расскажем

  • как устроен биткоин
  • разборы финансовых пирамид и как на них не попасться
  • как устроены скам-проекты в криптовалюте
  • что такое compound interest и почему мы думаем набить это себе на груди

Подписывайтесь, чтобы не пропустить новые статьи. Еще у нас есть твиттер "Потрачено" и телеграм-канал IT-бомж для людей, которые хотели бы научиться копить, инвестировать и отучиться тратить всю зарплату.

0
28 комментариев
Написать комментарий...
kolyan

Спасибо огромное! Вот так и надо объяснять всё. 

По статье, однако, вопросы:
1) В случае децентрализованного хранения - чем больше инфы, тем больше ресурсов для её хранения. Если это Террабайты инфы, то врядли она передается так, как вы описали - "после каждого обновления весь объем инфы пересылается всем майнерам и обновляется у них"

2) Почему для майнинга требуются в основном видеокарты, если рассчеты примерно математические?

3) В случае решения задач майнерами - непонятно кто и как ставит эти задачи. То есть задачи-то ставит какая-то программа (алгоритм, утилита), так? Она где хранится? Централизована? Также передается вместе с блокчейнами или что?

Ответить
Развернуть ветку
Алексей Суханов

1. Там не террабайты. За всю историю BTC его блокчейн весит всего ~365гб. К тому же размер блока ограничен 1мб. В более "толстых" блокчейнах применяются некоторые методы оптимизации. Но обычно размер блока ограничен, а главной проблемой является место на диске. В эфире это решается "подрезанием" старых блоков, так-как они нужны не всегда.
2. GPU более эффективны в математических рассчётах, чем CPU.
3. Задача определена алгоритмом, у каждого участника сети есть нода, где в коде прописано повышение сложности и критерии, по которым блок считается смайненым. В случае битка это поиск "красивых" хешей, где вначале хэша должно быть определённое кол-во нулей. Майнер, добавляя новые транзакции в блок и меняя определённое число в блоке, постоянно хэширует этот блок. И когда хэш блока получается "красивым", он сообщает сети, что смайнил блок. Блок включается в цепь, а майнер получает награду.

Поиграться в блокчейном в браузере можно в этой демке: https://andersbrownworth.com/blockchain/

Ответить
Развернуть ветку
kolyan

Ну даже если 365 гб. То есть после каждого обновления инфы все майнеры скачивают 365 Гб? А сколько операций в минуту происходит? Например, купил я биткоин - в блокчейн надо добавить одну запись. Я правильно понял что все майнеры должны тут же получить обновленный блокчейн целиком? Если это 365 Гб - врядли они его качают, скорее получают обновления. 

То есть блокчейн целиком получают только новые майнеры? 

А как работает программа определения очередности записи? Где она физически расположена? Вот одновременно Вася и Коля купили биткоин - надо дописать эти записи в блокчейн. Кто решает какая запись будет первая? Если записи с Васей обновили блокчейн в Америке, а с Колей в Китае, то как они потом синхронизируются?

И все-таки не понятно что за софт все это регулирует. Вы пишите "задача определена алгоритмом" - а алгоритм-то сам где лежит, хранится, синхронизируется? Вот мне надо фото ретушировать - я скачал дистрибутив Фотошопа, это программа, в ней алгоритмы работы с Фотошопом. Её дистрибутив там-то и там-то - я могу его скачать и все понятно. А если я хочу хранить блокчейн у себя - мне чего скачивать - это какая-то софтина или нет? Где леат эти лагоритмы, как они синхронизируются со всем миром? И если эта программа установлена одновременно на тысачах компов какой из них определяет очередность записи?

Ответить
Развернуть ветку
Алексей Суханов

В: То есть блокчейн целиком получают только новые майнеры?
О: Да, верно. Ноды получившие блокчейн полностью, лишь догоняют всю сеть, получая обновления по одному блоку.

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

В: Где лежат эти алгоритмы, как они синхронизируются со всем миром?
О: Алгоритмы определены в коде биткоин-ноды. Скачать её можно здесь: https://bitcoin.org/en/download. Так же, можно написать и свою реализацию биткоин-ноды, но если её поведение будет отличатся от общепринятого сетью, такая нода попросту исключается из сети. Чтобы лучше понимать суть такого взаимодействия, рекомендую почитать про P2P сети.

Ответить
Развернуть ветку
Bitbanker
Автор

Сами бы не сказали лучше. Спасибо

Ответить
Развернуть ветку
К М

Допустим в сети 3 компьютера мощностью 30Тхеш, 60 и 90. Вознаграждения они будут получать (то есть вычислять правильный хэш) пропорционально мощности. Как это регулируется алгоритмически?

Ответить
Развернуть ветку
Павел Молянов

Выглядит так, будто вы просто отрерайтили статью Вастрика: https://vas3k.ru/blog/blockchain/

Логика повествования, стиль иллюстраций, примеры — все то же самое. Ц-ц-ц.

Ответить
Развернуть ветку
Bitbanker
Автор

Да, коллеги показали уже после публикации. Скорее всего, мы все воспользовались аналогией одного и того же парня с ником sleep, который придумал концепцию дневника и описал ее на лепре

https://tjournal.ru/news/41306-samoe-ponyatnoe-obyasnenie-principa-raboty-blokcheyna

Ответить
Развернуть ветку
Павел Молянов

Вот только ваша статья совершенно не похожа на статью парня с ником sleep, но очень похожа на статью Вастрика ¯\_(ツ)_/¯

Ответить
Развернуть ветку
Valeria V.

спасибо за пример, статья, которую вы скинули, — класс. спокойная, интересная, с цепляющими иллюстрациями.

а вот исходную на vc.ru я, честно говоря, не очень поняла. как будто хотели упростить, но за счёт разговоров, кто с кем когда целовался, усложнили. + стиль повествования отталкивает

Ответить
Развернуть ветку
Михаил Колесников

Огонь! Вот такие примеры с душнилами и надо преподавать в школах и универах)

Ответить
Развернуть ветку
Acerbys .

Блин, я Вася и я душнила🤣🤣🤣

Ответить
Развернуть ветку
Российский Крым

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

Ответить
Развернуть ветку
Д

Не совсем понятно. Если хеш блока определяется самим содержимым блока (т.е. его данными от транзакциях), то тогда что же майнят? Или сначала надо забить новый блок транзакциями, потом к данным блока добавить нонс и майнить до победного, меняя нонс? (мне казалось, что блок майнится сначала, а потом в уже сманенный блок добавляют транзакции)

Ответить
Развернуть ветку
Алена Астахова

В статье увидела ответы на свои вопросы! 🔥🔥🔥 Молодец Вася❣️ Буду ждать следующей встречи❤️

Ответить
Развернуть ветку
Lenya

У автора ебанутый юморок. Читать этот высер импосибл

Ответить
Развернуть ветку
Augustine Degeneffe

круто

Ответить
Развернуть ветку
Igor Shentsev

Что будет с биткоином, когда будет добыт последний блок? Новые записи больше не смогут добавляться и он потеряет свою стоимость?

Ответить
Развернуть ветку
Sergei Gorshunov

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

Ответить
Развернуть ветку
Денис Сопов

Все равно противоречие статье. Если транзакция для того, чтобы считаться подтвержденной, должна быть включена в блок. А блоков больше нет. Значит, как и спрашивает Игорь, сеть должна остановиться...

Ответить
Развернуть ветку
Dan Priwalow

Быстрее открывайте свой стартап, пока цена битка не вернулась к 0.001 цента. 

Ответить
Развернуть ветку
Bitbanker
Автор
Ответить
Развернуть ветку
Gromovoy AA

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

Ответить
Развернуть ветку
Сергей Т

Интересное руководство. Научательная теория.
Я слежу за блокчейном с 17-го года. Не то что бы сказать вплотную, а интересуюсь. И вот уже скоро 4 года прошло, но ни как не найду, где этот вот блокчейн применяется на практике. Где он внедрен ?
Может в нотариальных конторах каких или может сайты госуслуг в каких странах работают?
Кроме, перевода из одного кошелька в другой одного доллара и комиссии за это 20 долларов, это как то работает?

Ответить
Развернуть ветку
Bitbanker
Автор

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

https://www.ibm.com/ru-ru/blockchain/industries/supply-chain

Ответить
Развернуть ветку
Sergei Nemaier

в Эстонии госрегистры и электронные услуги работают на блокчейне

https://www.pwc.com/gx/en/services/legal/tech/assets/estonia-the-digital-republic-secured-by-blockchain.pdf

Ответить
Развернуть ветку
Natalka Easy

Спасибо!

Ответить
Развернуть ветку
Дебилка Какаято

я обожаю ваш сайт. вы так смешно пишете💔💔💔💔

Ответить
Развернуть ветку
Читать все 28 комментариев
null