Что такое блокчейн?

Что такое блокчейн?

Подпишитесь на канал inCrypto: новости и обзоры

На прочтение нужно 30 минут.

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

Сам термин Blockchain частично характеризует его задачи и назначение. Часть «Block» – это блоки, «chain» – это «цепочка». Получается, что Blockchain – это цепочка блоков. Причем не просто цепочка. В ней выдерживается строгая последовательность.

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


Максимально просто

Жил был Вася, он отдолжил 100 рублей Пете и записал это в своем дневнике. Запись в дневнике гласила: отдолжил Пете 100 рублей 12 июля 2018.

Через какое-то время Петя решил не возвращать деньги Васе. Петя может сказать, что Вася не отдалживал ему деньги, а если Вася начнет показывать всем свой дневник, то как ему доказать, что он эту запись сделал не сам? Или Петя может влезть в дом к Васе и изменить записи в дневнике или вовсе вырвать страницу.

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

Чтобы всего этого не получилось, Петя придумал решение! Он решил сделать 2 дневника, один отдать Васе, а второй оставить себе. Теперь все сделки между Петей и Васей записываются в дневники, а когда Вася отдолжит деньги Пете, то в обоих дневниках сразу появится одинаковая запись «отдолжил Пете 100 рублей 12 июля 2018». Если Вася самовольно захочет изменить 100 рублей на 200, то ему придется это сделать уже в двух дневниках сразу – это сложнее.

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

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

Хеш – это небольшая строчка, вроде «69ab827825fdb876e709abd3d783dbb6» . Хеш всегда одной длины, независимо от исходного текста. На один и тот же текст программа выдаст один и тот же хеш, но если текст хотя бы немного изменить, то хеш получится совершенно другим:

  • «дал в долг 100 рублей» – хеш: 69ab827825fdb876e709abd3d783dbb6
  • «дал в долг 150 рублей» – хеш: 8b4609d7e974702ff1451220c7ededcf

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

  • страница 2: 69ab827825fdb876e709abd3d783dbb6 (хеш страницы 1) Вася отдолжил Пете 100 рублей.
  • страница 3: 8b4609d7e974702ff1451220c7ededcf (хеш страницы 2) Петя отдал Васе долг 100 рублей.

Первая страница не содержит хеша, а вторая страница, в самом начале содержит хеш первой. Если кто-то изменит хеш или текст на странице 2, то хеш на странице 3 станет совсем другим, так как в начале 3-й страницы написан хеш второй. Таким образом 2-ая страница доказывает подлинность 3-й, а 1-ая – подлинность 2-й.

Если изменить хоть что-нибудь на любой странице, тогда на всех последующих страницах хеш не будет совпадать.

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

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


Подробнее о блокчейне

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

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

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

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

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

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

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

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

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

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


Блокчейн на примере Bitcoin

Bitcoin – децентрализованная сеть для совершения платежей.

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

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

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

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

Эмиссия биткоина ограничена 21 000 000 BTC. В данный момент добыто около 17 миллионов BTC. Изначально награда за блок составляла 50, потом стало 25, а теперь и вовсе 12.5 биткоинов. Награда за блок все время уменьшается и будет равна нулю примерно к середине 22 века.

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

В блок не могут влезть все транзакции так как объем памяти выделенный под транзакции ограничен – раньше был 1 Мб, а теперь, с применением обновления SegWit он равен 2 Мб. Со временем мощность сети возрастает, поэтому алгоритм меняет сложность, чтобы это время на добычу блока оставалось постоянным.

Если 2 майнера добывают блок одновременно – а такое бывает, тогда возникает ветвление блокчейна:

Сеть находится в таком раздвоенном состоянии, пока следующий майнер не найдет блок и не присоединит его к одному из веток. Подлинным считается тот блокчейн, который длиннее, а та ветвь к которой не присоединились блоки – удаляется:

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

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

Чтобы другие люди не получили доступ к вашим биткоинам просто украв у вас этот файл (или даже ключ из файла), пользователи могут зашифровать кошелек – именно этот ключ для расшифровки кошелька (не путать с ключом в самом кошельке) вас попросят ввести при каждой отправке средств.

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


Майнинг

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

Майнер использует мощности железа для выполнения специальных вычислений по поиску цифровой подписи (хеша), которая закроет блок. Майнер, который «найдет» цифровую подпись, получает вознаграждение в виде 1 единицы криптовалюты. Майнинг поддерживает работу сети, гарантирует ее защиту от дублирующих транзакций.

Немного о дублирующих транзакциях: например у вас есть 2 BTC, вы отправите 2 BTC своему другу Васе, а еще 1 BTC отправите Коле. Вторая транзакция будет отклонена майнером, который нашел блок. Узел, который нашел блок, может быть нечестным и сообщить что эта транзакция подлинна и включить ее в блок, но тогда ваша транзакция не будет подтверждена, так как не найдется в блокчейне той цепочки транзакций, от которой ваш баланс будет равен 3 BTC. Некоторое время спустя ложный блок перестанет составлять самую длинную цепочку и будет удален.

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

Зачем собственно нужно решать сложные задачки, чтобы открыть блок? Почему нельзя сделать задачу простой? Это связано с тем, что если бы хеш подбрать было просто, то сотни узлов трубили бы во всю о найденных блоках. Блокчейн бы ветвился слишком быстро и никто бы не успевал в таком хаосе проверять подлинность транзакций.

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

Так как все хотят получить награду, это мотивирует наращивать мощность до астрономических величин – тут важно не сколько мощности у тебя вообще, а какой частью от общей мощности ты владеешь (ведь скорость выпуска монет не меняется). Но так как награду хотят получить все, то и мощность наращивают все: при помощи видеокарт, ферм и асиков.

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


Децентрализация

Сеть более безопасна, чем более она децентрализована – это слышали все, но не все понимают почему.

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

С помощью такой большой вычислительной мощности вы сможете создать свое ответвление блокчейна и так как ваша вычислительноая мощность больше, то вы сможете обогнать оригинальный блокчейн, сделать свою версию длиннее. В своей версии вы сможете включить транзакции с многократным расходованием. Например: имея 1 BTC вы сможете пополнить кошелек на какой-либо бирже на 100 BTC и вывести эти деньги через другие криптовалюты. Когда вы потеряете свое преимущество в мощности и ваша цепочка перестанет быть самой длинной, то обман раскроется и ложные блоки удалятся, однако будет поздно – вы обманете биржу и пользователей на ней на крупную сумму. Это и есть та самая «атака 51%» о которой вы могли часто слышать.

А пока сеть децентрализована и участники не могут сговориться, тогда быть обманщиком не так выгодно, как быть честным.


Сферы применения

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

Перспективность Blockchain в финансовой сфере признали крупнейшие банки мира. Еще в 2013-м году был создан консорциум R3. Туда вошли такие банки как J.P. Morgan, Goldman Sachs, Santander, IТG и другие. Группа занимается тестированием децентрализованного реестра в банковской сфере. Отдельные банки также инвестируют в блокчейн-стартапы, регулярно появляющиеся последние несколько лет.

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

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

Блокчейн может быть использован не только в сфере финансов – вот яркие примеры:

  • Идентификация личности. На основе технологии блокчейн работают сервисы в области идентификации и подтверждения прав доступа. Они создают цифровой аналог удостоверения личности. К таким стартапам относят HYRP, BlockVerify, OneName и другие.
  • Авторские права. Платформа Ascribe использует дополняемый реестр, в который художники, музыканты, изобретатели могут хранить авторские права с помощью зашифрованных идентификаторов.
  • Голосования. Пока что открытый реестр используется только в частных голосованиях, однако в университете штата Вирджиния хотят внедрить технологию в пределах штата. Это снизит вероятность фальсификации голосования до нуля.
  • Управление и юриспруденция. Потенциал Blockhain в этой сфере безграничен. В идеале может быть создана система с отчетностью представителей местной и государственной власти, хранение данных о бюджете. Уже сейчас есть проекты вроде Borderless, которые объединяют в себе юридические и экономические услуги.
  • Музыка. Проект Bittunes позволяет исполнителям композиций сохранить за собой права и заниматься продажей собственных работ. Есть и другие сервисы, нацеленные на распространение независимой музыки и продвижение исполнителей.
  • Благотворительность. Блокчейн с его способностью записывать и хранить данные очень эффективен в сфере благотворительности. Так в платформе GiveTrack представлена открытая информация о пожертвованиях в фонды и их затратах – вы всегда будете видеть кому и когда ушли ваши деньги.
  • Недвижимость. Внедрение блокчейн в сферу недвижимости способно ее значительно усовершенствовать. Ускорится процесс покупки-продажи, появится инструмент надежного хранения данных о правах на собственность и так далее. Технология блокчейн применяется в сфере услуг, биржевой и обычной торговли. Потенциально она может быть полезной везде, где необходима отчетность, проверки подлинности чего-либо, хранение данных.


Заключение

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


Если хотите узнать больше