Основы Блокчейна. Принцип работы блокчейна
Скачать 22.28 Kb.
|
Принцип работы блокчейнаВведение В основе технологии Blockchain лежат несколько принципов: 1. Распределенная база данных – доступом к истории цепочек транзакций обладают все участники системы, а полного контроля над ними нет ни у кого; 2. Абсолютное отсутствие иерархии – среди множества узлов в сети 3. Blockchain не существует главного; 4. Прозрачность – проверить достоверность операции может каждый; 5. Неизменяемость записи – информация о каждой операции дублируется на всех распределенных узлах сети, после чего данные уже невозможно изменить. Самое популярное применение Blockchain это криптовалюты, но также эту технологию использовали при создании Ethereum – платформа, которая финансировалась посредством ICO (Initial coin offering) – криптовалютного аналога IPO. Смарт контракты – новый уровень взаимодействия между сотрудником и работодателем, или просто между двумя узлами системы. В итоге Blockchain удешевляет такие сферы, как оформление и проверку подлинности документов, финансовые операции, заключение и исполнения контрактов, хранения информации. Blockchain в будущем сможет повлиять на такие сферы бизнеса, как гостиничный бизнес, здравоохранение, интернет - магазины. Но существует ряд минусов, которые стоит рассмотреть подробнее. Объект исследования: Блокчейн Предмет исследования: процесс формирования блокчейна. Цель работы: рассмотреть принцип работы блокчейна. Для осуществления поставленной цели необходимо решить задачи: - рассмотреть основы работы Blockchain; - разобрать применение блокчейна в лесном хозяйстве. 1. Основы работы Blockchain Blockchain - это технология, которая набрала популярность благодаря ее использованию при построении криптовалюты Bitcoin (рис. 1) Рисунок 1 - Схема получения хеша транзакций Основа технологии blockchain - в распределенном хранении информации. Это позволяет хранить важную информацию одновременно на многих серверах (у всех участников сети), при этом сохранять открыто и безопасно. Например, на базе этой технологии можно хранить как историю банковских транзакций клиентов, так и базу контрактов, результаты голосований, отпечатков пальцев или историй болезней. Информацию, которая одновременно сохраняется во многих местах невозможно подделать, невозможно украсть, потому что оригинальные записи тут же могут быть восстановлены из соседних источников. Ведущие американские и европейские банки уже открыли проекты по использованию данной технологии. Также к ним присоединилась и международная платежная система Visa, в использование технологии видит возможность ускорения и удешевления платежей. Также blockchain может значительно снизить риски мошенничества. Blockchain - это принципиально новая надежная технология хранения записей, которая может кардинально изменить подход к формированию и хранения баз данных. Blockchain собой цепочку блоков данных, которые создаются и хранятся на компьютерах участников цепочки. Все участники сети делятся на две категории: обычные пользователи, которые создают новые записи, и Майнер, которые создают блоки. Майнер проверяют записи, которые создают обычные пользователи, формируют из них блоки, а затем рассылают эти блоки по сети. Обычные пользователи получают эти блоки и сохраняют их у себя в компьютере. Участники Blockchain сети имеют доступ к другим компьютерам сети, благодаря чему можно обмениваться данными. Каждый пользователь проверяет корректность новых данных. Если они достоверны, он сохраняет их и передает дальше по сети. Технология Blockchain имеет огромный потенциал с точки зрения упрощения и повышения эффективности за счет создания принципиально новой инфраструктуры финансовых сервисов. Эта технология может успешно использоваться банками для проведения внутренних взаиморасчетов и осуществления межбанковских операций, а также при проведении микроплатежей между физическими лицами. При этом она может значительно упростить отслеживание подозрительных транзакций и в целом повысить прозрачность сделок. По сути это технология распределенного подтверждения транзакций, которая представляет собой огромную распределенную базу данных. При этом проверкой подлинности транзакций занимаются сами участники, они же подтверждают их подлинность и формируют блоки записей. Такой подход интересен прежде всего тем, что отпадает необходимость в посредниках в лице платежных систем, осуществляющих разбирательствам транзакций и, как следствие, повышается скорость обработки операций и снижается стоимость для конечного потребителя. По некоторым оценкам, использование Blockchain позволит банкам экономить около 20000000000 долларов за счет отказа от услуг посредников при осуществлении транзакций. Blockchain может стать реальной альтернативой системе SWIFT, которая на данный момент не очень гибкой и достаточно дорогой. Но перейти на новую технологию удастся не так быстро. На это есть несколько причин и прежде всего - неопределенность в правовой и регуляторной области. Кроме того, широкомасштабное внедрение этой технологии потребует значительных усилий в части стандартизации. Блок транзакций - специальная структура для записи группы транзакций в системе биткойнов и аналогичных ей. Чтобы транзакция считалась достоверной ( «подтвержденной»), ее формат и подписи должны проверить и затем группу транзакций записать в специальную структуру - блок. Информацию в блоках можно быстро проверить еще раз. Каждый блок всегда содержит информацию о предыдущем блоке. Все блоки можно выстроить в одну цепочку, которая содержит информацию обо всех совершенных когда-нибудь операциях в этой базе. Самый блок в цепочке - первичный блок (англ. Genesis block) - рассматривается как частный случай, так как у него отсутствует родительский блок. Блок состоит из заголовка и списка транзакций. Заголовок блока включает в себя свой хэш, хэш предыдущего блока, хэши транзакций и дополнительную служебную информацию. В системе биткойнов первой транзакцией в блоке всегда указывается получения комиссии, которая станет наградой пользователю за созданный блок. Далее следуют все или некоторые из последних транзакций, которые еще не были записаны в предыдущие блоки. Для транзакций в блоке используется древовидная хеширования, аналогичное формирование хеш-суммы для файла в протоколе BitTorrent. Транзакции, кроме начисления комиссии за создание блока, содержат внутри атрибута input ссылки на транзакцию с предыдущим состоянием данных (в системе биткойнов, например, дается ссылка на ту транзакцию, по которой были получены, использованы биткойны). Комиссионные транзакции могут содержать в атрибуте любую информацию (для них это поле называется англ. Coinbase parameter), поскольку у них нет родительских транзакций. Созданный блок будет принят другими пользователями, если числовое значение хеша заголовка равно или ниже определенного числа, величина которого периодически корректируется. Так как результат хеширования (функции SHA-256) является необратимым, нет алгоритма получения желаемого результата, кроме случайного перебора. Если хэш не удовлетворяет условию, то в заголовке меняется параметр nonce и хэш пересчитывается. Обычно требуется большое количество перерасчетов. Когда вариант найден, узел рассылает полученный блок другим подключенным узлов, проверяют блок. Если ошибок нет, то блок считается добавленным в цепочку и следующий блок должен включить в себя его хэш. Размер целевого числа, с которым сравнивается хеш, в системе биткойнов корректируется каждые 2016 блоков. Планируется, что вся сеть системы биткойнов должна тратить на генерацию одного блока примерно 10 минут, на 2016 блоков - около двух недель. Если 2016 блоков сформированы быстрее, то цель немного уменьшается и достичь ее становится труднее, в противном случае цель увеличивается. Изменение сложности вычислений не влияет на надежность сети биткойнов и нужно только для того, чтобы система генерировала блоки почти с постоянной скоростью, не зависящей от вычислительной мощности участников сети. Блоки одновременно формируются множеством «Майнер». Удовлетворяют критериям блоки отправляются в сеть, включаясь в распределенную базу блоков. Регулярно возникают ситуации, когда несколько новых блоков в различных частях распределенной сети называют предыдущим один и тот же блок, то есть цепочка блоков может ветвиться. Специально или случайно можно ограничить ретрансляцию информации о новых блоках (например, одна из цепочек может развиваться в рамках локальной сети). В этом случае возможно параллельное наращивание различных ветвей. В каждом из новых блоков могут встречаться как одинаковые транзакции, так и различные, вошедшие только в один из них. Когда ретрансляция блоков восстанавливается, Майнер начинают считать главной цепочку с учетом уровня сложности хеша и длины цепочки. В случае равного распределения сложности и длины предпочтение отдается той цепочке, конечный блок которой появился раньше. Транзакции, вошли только в отвергнутую ветвь (в том числе по выплате вознаграждения), теряют статус подтвержденных. Если это транзакция по передаче биткойнов, то она будет поставлена в очередь и затем включена в очередной блок. Транзакции получения вознаграждения за создание отсечены блоков не дублируются в другой ветке, то есть «лишние» биткойны, выплаченные за формирование отсечены блоков, не получают дальнейших подтверждений и «теряются». Таким образом, цепочка блоков содержит историю владения, с которой можно ознакомиться, например, на специализированных сайтах. Распределенная база данных Blockchain формируется как постоянно растущая цепочка блоков с записями обо всех транзакциях. Копия базы или ее части одновременно сохраняется на множестве компьютеров и синхронизируются в соответствии с формальными правилами построения цепочки блоков. Информация в блок не шифровать и доступна в открытом виде, но защищена от изменений криптографически через хэш-цепочки. База публично сохраняет в незашифрованном виде информацию обо всех транзакциях, которые подписываются с помощью асимметричного шифрования. Для предотвращения многократной расходы одной и той же суммы используются метки времени, реализованы путем разбития БД на цепочку специальных блоков, каждый из которых, в числе прочего, содержит в себе хеш предыдущего блока и свой порядковый номер. Каждый новый блок осуществляет подтверждение транзакций, информацию о которых содержит и дополнительное подтверждение транзакций во всех предыдущих блоках цепочки. Изменять информацию в блоке, который уже находится в цепи, не практично, так как в таком случае пришлось бы редактировать информацию во всех последующих блоках. Благодаря этому успешная double-spending атака (повторная трата ранее потраченных средств) на практике крайне маловероятна. Чаще всего, умышленное изменение информации в любой из копий базы или даже в достаточно большом количестве копий не будет признано истинным, так как не будет соответствовать правилам. Некоторые изменения могут быть приняты, если будут внесены во все копии базы (например, удаление нескольких последних блоков из-за ошибок в их формировании). Для более наглядного объяснения механизма работы платежной системы Сатоси Накамото ввел понятие «цифровая монета», определив его как цепочку цифровых подписей. В отличие от стандартизированных номиналов обычных монет, каждая «цифровая монета» имеет свой собственный номинал. Каждому биткойн-адресу может сопоставляться любое количество «цифровых монет». С помощью транзакций их можно делить и объединять, при этом сохраняется общая сумма их номиналов за вычетом комиссии. Блоки одновременно формируют множество «Майнер». Регулярно возникают ситуации, когда несколько новых блоков считают предыдущим один и тот же блок, то есть цепочка блоков разветвляется. Вполне возможно ограничение обмена данными с общей сетью - например, одна из цепочек может развиваться в рамках локальной сети. В этом случае возможно параллельное наращивание различных ветвей. Когда ретрансляция блоков восстанавливается, сеть автоматически считать основной (истинной) более длинную цепочку. В случае равного распределения длины параллельная работа продлится до создания нового блока - в какой из цепочек блок появится раньше, и станет длиннее, то есть она будет признана основной, а работа над параллельной цепочкой прекратится. Транзакции, вошли только в отвергнутую ветку, считаются теперь вне блока и будут поставлены в очередь для включения в очередной блок |