Принципы работы блокчейна биткоина

Отсутствие понятия «баланса»

Как и наша доска, блокчейн по сути состоит только из истории транзакций. Он не хранит баланс каждого кошелька, иначе бы нам пришлось изобретать дополнительные способы защиты.
Владение кошельком подтверждает только приватный ключ. Но как другие участники сети убедятся, что у меня есть достаточно денег для покупки?
Раз у нас нет баланса — это должны доказывать вы. Потому в транзакцию блокчейна входит не только ваша подпись и сколько вы хотите потратить, но и ссылки на предыдущие транзакции, в которых вы получили нужное количество денег. То есть если вы хотите потратить 400 рублей вы пробегаете по всей своей истории доходов и расходов, и прикрепляете к своей транзакции те доходы, где вам дали 100 + 250 + 50 рублей, тем самым доказывая, что у вас есть эти 400 рублей. 

Каждый участник сети еще раз обязательно проверит, что вы не прикрепляли доходы дважды. Что те 300 рублей, что дал Макс на прошлой неделе, вы действительно еще не потратили.
Такие прикрепленные к транзакции доходы в блокчейне называются инпутами (input), а все получатели денег — аутпутами (output). Сумма всех инпутов редко бывает ровно такой, сколько вы хотите перевести за раз — потому один из аутпутов чаще всего будете вы сами. Другими словами транзакция в блокчейне выглядит как «мне дали 3 и 2 BTC, я хочу из них перевести 4 BTC и оставшийся 1 BTC вернуть себе обратно».
 

Забегая немного вперед: дополнительно из этой «сдачи» еще можно указать комиссию за транзакцию, чтобы майнеры активнее её добавляли в блоки. Тогда майнер получит копеечку, а вы немного меньше сдачи назад. О майнинге рассказано ниже.

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

Биткоин — что это?

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

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

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

Как работает блокчейн

Надежность первой криптовалюты обеспечивается технологией Blockchain (блокчейн), на базе которой построен биткоин. В основе технологии блокчейн – распределение информации по компьютерам всех участников сети, а не хранение на одном центральном сервере. Каждый участник может делать свои записи, которые называют транзакциями – к примеру, переводить кому-то виртуальные ценности. Эти записи составляют отдельные блоки информации, которые распределяются между всеми участниками сети блокчейн. Кто-то один не может изменить или переписать информацию о сделке по своему желанию: ведь сделать это на всех компьютерах сразу невозможно. А поскольку в системе нет главного сервера, то и взломать его нельзя. Это и обеспечивает надежность системы.

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

«И зачем же все это надо?!» – непременно воскликнет вконец запутавшийся гуманитарий. Вот один из более-менее понятных примеров.

Где может применяться технология блокчейн

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

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

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

…Но это уже совсем другая история

Размер блока и награда майнера

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

Майнер (майнинг-пул) получает оплату за произведенную работу из двух источников:

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

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

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

Откуда же берутся пустые блоки?

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

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

Если майнер найдет блок N+1 еще до того, как будет проверен блок N – он имеет право заполнять его транзакциями? Нет, не имеет. Ведь в этих новых транзакциях могут оказаться такие, которые опираются на транзакции включенные в блок N, который еще не подтвержден. Даже если в мемпуле скопилась очередь из большого количества неподтвержденных транзакций, которые необходимо включать в блок N+1, майнер не может этого сделать, пока не прошло подтверждение блока N. А раз так, то майнер закрывает блок N+1 пустым, в нем будет только одна coinbase-транзакция, которая формируется автоматически и несет в себе информацию о вознаграждении за создание блока. Получает вознаграждение и приступает к поиску блока N+2.

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

Что такое Блокчейн: децентрализация и распределенность

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

Но и это не поможет, потому что кроме «во-первых» есть еще «во-вторых». Блокчейн — ​это пиринговая система, как BitTorrent*. Она не имеет единого центра — ​сервера, который можно было бы взломать или отключить. Копии блокчейна содержатся на всех компьютерах, подключенных к сети. Выходит, чтобы приписать себе биткойн-другой, необходимо «задним числом» переписать множество блоков почти на четырех миллионах компьютеров.

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

Сферы применения блокчейна

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

Первой криптовалютой стал Bitcoin — именно с ее появлением началась популяризация самой технологии блокчейн и ее внедрение в другие сферы. Помимо нее также существуют другие криптовалюты, такие как Ethereum, Litecoin и т.д. Некоторые из них имеют всемирное обращение, другие — локальное. С помощью технологии блокчейн также реализуются различные специализированные деньги — например, внутриигровые токены, созданные исключительно для обмена виртуальными товарами в рамках онлайн-игр. На основе технологии биткоина и лайткоина была создана изначально сатирическая криптовалюта Dogecoin, отсылающая к известному интернет-мему. Однако она быстро обрела мощное онлайн-сообщество и стала реальным платежным средством. 

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

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

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

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

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

Проблема двойного расходования

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

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

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

В следующей части мы разберем принцип работы сети, как происходит процесс транзакций и для чего нужны ноды и майнеры:


Andrew Makarov

суперпост

За счет чего работает Биткоин: ноды и майнеры

Децентрализация: никто не доверяет никому

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

Транзакции

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

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

Так как работает блокчейн? Собираем воедино

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

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

Связь криптовалюты и блокчейна

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

Технический FAQ

Чем Blockchain лучше других систем?

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

Как же ее устраняет блокчейн? Строго говоря, никак. Блокчейн всего лишь:

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

Современные платежные системы не предоставляют даже такого уровня надежности. Однако, проблема 50% + 1 остается и в блокчейне: достаточно завладеть более чем 1/3 всех узлов сети, чтобы парализовать ее работу, и более чем 1/2 — чтобы полностью подчинить ее себе. Это не единственная проблема — есть и другие.

Если любой человек может добавить блок в блокчейн, почему получается цепочка, а не дерево?

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

Блокчейн, фактически, не совсем цепь: это «публичный коллективный реестр», где понятие «коллективный» не менее важно, чем «реестр». Слово «реестр» здесь указывает на технологию выстраивания связей; «коллективный» — на технологию их отбора

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

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

К сожалению, подробности не сообщают ни члены Core Team, ни сам Сатоси. Но если ты заинтересовался — будет нелишним почитать оригинальное описание технологии.

Почему считается, что создавать новые блоки тяжело?

Ответом опять же будет «так решил Сатоси». Надежность системы достигается благодаря криптографической защите с помощью функции Hashcash, изобретенной еще в 1997 году. Hashcash — это обертка, внутри которой по мере исторического развития использовались MD5, SHA1, SHA256, ECDSA и другие криптоалгоритмы. Сейчас блокчейн шифрует блоки двойным проходом SHA256 (это называется «SHA256 squared function») по заголовку блока, содержащему всю важную информацию:

Из чего состоит блокчейн

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

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

Например, в биткоине все операции хешируются алгоритмом SHA-256. Он превращает любую информацию в строку размером 256 бит. Без разницы, будет ли это «Война и мир» Толстого или строчка из песни Михаила Боярского — на выходе получится шифрованная колбаса весом в 256 бит. Выглядит она примерно так:

c9f9053e2fb3fcec35ceeafab7bda50ece7d924f886c117b142dfa2df1d63574

В нашем случае, если перевести эту колбасу на русский, выйдет что-то вроде: «Петя Иванов отправил Зинаиде Степановне Ивановой 5000 рублей 1 октября 2022 года в 14:30».

Тут есть нюанс: если Петю заменить, скажем, на Диму, получится совершенно другой хеш. Следующий блок заметит изменения и отправит сигнал всем участникам сети: «Что-то тут нечисто, нас хотят взломать». И если большинство компьютеров знать не знают никакого Диму, блок останется неизменным.

Вернёмся к нашей Зинаиде Степановне. Предположим, деньги ей не особо нужны, и она решает отправить их вашему брату, который учится на первом курсе в Москве. Вот как система будет работать в таком случае:

Шаг 1. Блокчейн возьмёт хеш предыдущего блока.

Шаг 2. Добавит к нему новые данные:

3e84907df11600de355a07de0e255fcae469522c418f4f12945b586f619bedc6

+

«Данные о сделке Зинаиды Степановны и Васи».

Шаг 3. В таком виде запись снова хешируется, и получится ещё один блок:

0118b7211febd23303ed123e3c441301dba8062fa1dcaaa4bb682ef4b8fcc3fe

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

Заключение

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

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

Понравилась статья? Поделиться с друзьями: