система блок чейндж что это

Что такое блокчейн и зачем он нужен

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

В сознании среднестатистического пользователя само слово “блокчейн” (“цепочка блоков”) стало довольно тесно связано с термином “биткоин”, что двояко отразилось на восприятии.

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

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

Сфер применения можно найти множество, главное – чтобы существовал аналог сделки или подобного взаимодействия, партнерства между сторонами. Поэтому на технологии блокчейна сейчас работают биткоин и лайткоин, к блокчейну весьма активно присматриваются банки (осенью 2016-го Bank of America и Microsoft заявили о начале разработки финансовой блокчейн-платформы).

Первая же реальная сделка с реальными деньгами тоже состоялась осенью того же года – израильский стартап (Wave), британский банк (Barclays) и ирландский производитель молочки (Ornua) провели аккредитив на 100 000 долларов. И если ранее процесс занял бы неделю или более из-за бюрократии и проверки всех документов, то благодаря криптографии и автоматизированной верификации на все про все ушло около четырех часов.

21 декабря 2016-го сделку-аккредитив через блокчейн провели Альфа-Банк и S7.

ЦБ РФ вместе с крупными банками страны создали платформу “Мастерчейн”, цель – повысить прозрачность и эффективность существующих финансовых систем.

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

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

Насколько это все безопасно?

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

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

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

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

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

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

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

Взлом одного из таких компьютеров никак не скажется на сохранности данных на остальных (как и на их изменении).

Блокчейн сейчас и в будущем

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

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

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

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

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

Немного о нас

Мы принимаем участие в развитии блокчейна с 2011 года (основание BitFury) и будем рады делиться с вами последними наработками и новостями.

Первые эксперименты с использованием центральных и графических процессоров для майнинга мы начали 6 лет назад, в 2011, в рамках разных проектов. Год спустя было решено сосредоточить усилия на одном – BitFury. В 2014-м майнинг был развернут уже в 3 странах (Финляндия, Исландия, Грузия) на собственном оборудовании. Планируем построить дата-центр и на территории США.

Несколько интересных проектов, которые мы уже успели осуществить к текущему моменту:

чип по 28-нанометровой технологии

Пришел на замену нашему специализированному 55-нанометровому чипу. Новый чип работал с потреблением 0,2 Джоуля на гигахэш.

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

Мы начали внедрять его в собственных дата-центрах. Данный чип уже потреблял 0,06 Джоуля на гигахэш, производительность же составляла 184 гигахэша в секунду (иммерсионное охлаждение) и 140 – при воздушном.

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

За 2014 и 2015 нам удалось привлечь инвестиции в трех раундах по 20 миллионов долларов, что на тот момент являлось примерно половиной всех мировых инвестиций в развитие биткоина.

На сегодня же BitFury – один из крупнейших майнеров и создателей блокчейн-платформы. Мы собираемся и дальше сохранять лидерские позиции и активно продвигать блокчейн-технологии.

Если у вас есть какие-либо конкретные вопросы о блокчейне в целом или каком-то из наших продуктов в частности (BlockBox, 16нм ASIC-чип, блокчейн и государство) – пишите в комментариях, мы ответим в следующих постах.

Источник

Блокчейн для самых маленьких [part.1]

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

Дымков Аркадий Андреевич

Программист / системный и бизнес аналитик

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

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

Технология, которая, по-видимому, окажет наибольшее влияние на развитие в различных областях экономики в ближайшие 10 лет, уже существует! И это не BigData, не соцсети, не робототехника и даже не Machine Learning. Это технология, лежащая в основе криптовалют, цепочка блоков транзакций- блокчейн. Сейчас именно блокчейн является инструментом для создания нового поколением интернета, и он несет огромный потенциал для любого бизнеса.

Скорее всего вы будете удивлены, узнав, что :

Можно ли применить распределенный реестр в огороде у бабушки?

Как одна технология переворачивает всю устоявшуюся индустрию бизнеса и экономики?

Так, теперь давайте определимся, что мы узнаем в part.1 :

Как работает эта технология? Проблема централизации на Олегах

Как работает магическая машина или же хэш-функция

Алгоритм защиты от модификаций печатных номеров

Настолько ли идеален блокчейн? Уязвимости идеальной системы

Как это работает?

Блок 1: Проблема централизации на Олегах

Сначала определимся, какую проблему решает технология?

Давайте представим, что у вас есть лучший друг Олег, который путешествует по всему миру. Он звонит вам в Сызрань с просьбой перекинуть немного мани, т.к. кэш Олега куда-то исчез. Вы, как порядочный друг, соглашаетесь помочь Олегу и идете в банк. Там вы сообщаете, что вам надо перевести N-ую сумму на счет Олега.

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

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

И так, что сейчас произошло? Давайте рассмотрим ситуацию более детально.

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

Блок 2: Какую угрозу несет централизация?

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

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

Централизованная / Децентрализованная системы

Блок 3: Какая система позволит решить эти проблемы?

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

Как это работает?

Блок 1: Давайте рассмотрим принцип работы на примере

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

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

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

Шаг 1: Пустая папка

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

Шаг 2: Транзакции

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

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это#2 send 10$ to #5 система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что этоTransaction’s registration page

Для создания транзакции, номер 2 сообщает всем: « Я, номер #2 пересылаю #5 10$». Каждый из участников системы проверяет, имеет ли #2 достаточный баланс для произведения данной транзакции. В случае, если баланс номера #2 позволяет это сделать, то каждый делает запись у себя на странице. Это происходит до того момента, пока на странице не закончится место для записи новых транзакций

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

И вот настало время, всем отправить заполненную страницу в папку и создать новую страницу для ведения учета транзакций. И так повторять начиная с шага №2.

Шаг 4: Хранение страниц

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

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

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

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

Магия Хэш-фунцкий

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

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

Предположим, мы отправили на вход цифру 4, на выходе мы получим «cbaja». Как эта функция конвертировала цифру 4 в «cbaja»? Никто не знает. Более того, этот процесс необратимый. По конечному результату нельзя сказать, что было подано на вход. Но каждый раз, когда вы будете загружать цифру 4, на выходе вы будете всегда получать один и тот же результат.

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

Давайте рассмотрим другой случай. Что надо будет подать на вход это машине, что бы получить результат «c56c0ah»? Есть только один способ это узнать — перебрать все возможные значения, пока не получим данный результат.

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

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

Основываясь на полученной информации, давайте сформулируем главные свойства этой машины.

Невероятная сложность нахождения input по output (входящего значения по полученному результату)

И простота проверки правильности входящего значения

Давайте запомним свойства этой машины или хэш-функции

Как использовать хэш-функцию для создания печатей?

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

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

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

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

Т.е. значение «LOL» будет являться печатью к значению «KEK».

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

Мы создали страницу с значением «KEK». Что бы пропечатать эту страницу, т.е. защитить эту страницу от правок, мы ставим на ней печать с значением «LOL»

В терминологии блокчейна печатный номер это POW(Proof-of-Work). Он означает, что это значение есть доказательство проделанной работы для вычисления этого значения.

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

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

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

Майнинг

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

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

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

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

Еще одно «НО»

Представим, что у нас уже есть 5 страниц с печатями в папке. Что если я вернусь назад к второй странице и изменю ее содержимое в свою пользу? Печатный номер позволит каждому определить несогласованность транзакций. Опять же, что если я подготовлюсь и заранее вычислю новый печатный номер для измененных транзакций и поставлю печать со своим выселенным номером на нем. Для предотвращения этой проблемы есть особенность в алгоритме вычисления печатного номера. Это есть защита от модификаций печатных номеров.

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

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

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

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

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

Атака 51%

Все системы имеют бэкдоры, и блокчейн не исключение. Самая известная уязвимость блокчейна это атака именуемая «Атака 51%».

Если пытаться объяснить ее простым языком, то рассматривая защиту от модификаций печатных номеров, которая приводилась выше, можно задать вопрос: А если у одного нечестного юзера вычислительная мощь будет больше, чем у остальных 9ых, то он сможет через n-ое время создать цепочку блоков начиная с 1-ого листа, которая сможет обогнать главную истинную цепь блоков.

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

Для упрощения абстракции проблемы приведенной выше, скажем, что у каждого участника цепи вычислительные мощи одинаковые. Соответственно, когда 6/10 участников блокчейн системы сговорятся и захотят обмануть оставшихся 4ех юзеров, то через n-ое время они установят новую истинную цепочку блоков. Отсюда и идет название этой уязвимости. Как только количество нечестных юзеров станет 50%+, то блокчейн системе грозит опасность быть «обманутой».

Надо понимать, что в реальности сделать это практически нереально. Как говорится, время лучший показатель, и за все 11 лет существования BitCoin он ни разу не был «обманут» и не выводился из строя, при том, что на эту систему проводились атаки.

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

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

Источник

Что нам стоит блокчейн построить?

Вся история человечества — это непрерывное избавление от цепей и создание новых, еще более крепких. (Анонимный автор)

Анализируя многочисленные blockchain проекты (Bitshares, Hyperledger, Exonum, Ethereum, Bitcoin и др.), я понимаю, что с технической точки зрения все они построены по одним принципам. Блокчейны напоминают дома, у которых при всем разнообразии конструкций, декора и назначений имеются фундамент, стены, крыша, окна, двери, которые связаны друг с другом определенными способами. И если понять основные принципы проектирования зданий, знать свойства применяемых материалов, то можно определить целевое назначение конкретного дома. В настоящее время с блокчейном возникла ситуация, что все про него слышали, но мало кто понимает архитектуру и принципы работы. Поэтому возникает непонимание для чего и как имеет смысл использовать технологии блокчейна.

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

Итак, давайте вспомним какие проблемы изначально решил блокчейн.

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

Я предпочитаю начинать изучение любой технологии с чтения стандартов, так как именно на них основываются все статьи и книги по исследуемой теме. Но стандарты блокчейна в настоящее время отсутствуют, в ISO созданы только комитеты для их разработки. На текущий момент в каждом публичном блокчейн проекте имеется свой документ White paper, который по сути является техническим заданием. Первый общеизвестный блокчейн проект — это сеть Bitcoin. Идем на официальный сайт сети и смотрим с чего все начиналось.

Задача блокчейна

Итак, задача, которую решил блокчейн в сети пионере Bitcoin — это совершение доверительной передачи собственности на цифровые активы (assets) в недоверительной среде без посредников. Например, в сети Bitcoin цифровой актив — это цифровые монеты bitcoin. И все технические решения Bitcoin и других блокчейнов сводятся к решению этой задачи.

Проблемы, которые решает блокчейн

Предположим некая финансовая организация говорит, что построила сеть по всему миру, с помощью которой можно переводить деньги любому человеку. Поверите ли вы ей? Если эта организация Visa или MasterCard, скорее всего, поверите, а если, условно говоря, AnonymousWorldMoney, наверное, нет. Почему же? А потому, что мы прекрасно знаем, как делаются распределенные системы частными компаниями, с какими целями, и к чему это может привести. Рассмотрим подробнее проблемы таких систем, и как они могут быть решены с применением технологий блокчейна.

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

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

В идеальном мире такая схема прекрасно работает, в нашем же возникают следующие проблемы:

Как блокчейн решает эти проблемы

Архитектура блокчейна

Составные части блокчейна

Каждый участник может запустить свою ноду с полной копией блокчейна (full node). Полные ноды, которые могут записывать транзакции в блокчейн, называются узлами консенсуса (witness) или майнерами (miner). Полные ноды, которые только проверяют правильность транзакций называются узлами аудита (audit). Легкие клиенты (light clients) не хранят полных копий блокчейна, а взаимодействуют с сетью, используя полные ноды.
Большинство пользователей для совершения транзакций используют именно легких клиентов или web кошельки. Все ноды связаны друг с другом. При таком наборе элементов архитектура сети становится более устойчивой:

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

Жизненный цикл транзакции

Посмотрим на жизненный цикл транзакции и разберем его по частям:

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

Технологии блокчейна

Остановимся подробнее на технических решениях и их связях друг с другом.

Идентификация

Каждая блокчейн транзакция должна быть подписана цифровой подписью. Поэтому для совершения транзакции каждый участник должен иметь пару ключей: private / public. Иногда пару ключей называют кошелек (wallet), т.к. ключи однозначно связаны с уникальным цифровым адресом и балансом участника. В реальности ключи и адреса — это просто строки цифр в разных системах счисления. Примеры ключей и адреса кошелька:

Для создания цифровой подписи в блокчейнах используется алгоритм, основанный на эллиптических кривых: Elliptic Curve Digital Signature Algorithm (ECDSA). Для его работы приватный ключ (256 битное число), обычно, берется случайно. Число вариантов ключей составляет 2 в степени 256, поэтому можно говорить о практической невозможности совпадения значений приватных ключей.

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

Есть масса статей с подробностями по криптографии, используемой в блокчейне, например: Bitcoin in a nutshell — Cryptography

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

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

или можно использовать более надежные способы, как пример, выбивать значение приватного ключа на жетонах:

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

Транзакции

Подробнее про структуру транзакции можно посмотреть в статье Bitcoin in a nutshell — Transaction. Нам же важно понимать, что каждая транзакция имеет по крайней мере следующие данные:

Далее транзакция подписывается приватным ключом и рассылается (см. подробности по работе протокола Bitcoin in a nutshell-Protocol) всем нодам в блокчейне, которые проверяют транзакции на валидность. Алгоритм проверки транзакции нетривиален и включает два десятка шагов.

Блоки транзакций

Проверив валидность транзакций, ноды формируют из них блоки. Помимо транзакций в блок записывается хеш предыдущего блока, число (счетчик Nonce), и происходит вычисление хеша текущего блока по алгоритму SHA-256. Хеш должен обладать установленным условиям сложности. Например, в сети Bitcoin сложность хеша автоматически меняется раз в 2 недели в зависимости от мощности сети так, чтобы блок генерировался примерно раз в 10 минут. Сложность определятся следующим условием: найденный хеш должен быть меньше заранее заданного числа. Если данное условие не выполняется, то к Nonce прибавляется 1, и работа по вычислению хеша повторяется. Для подбора хеша используется поле Nonce, т.к. это единственные данные в блоке, которые можно изменить, остальные должны оставаться неизменными. Правильный хеш должен иметь определенное число нулей в начале, например, один из реальных хешей:

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

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

Блокчейн начинается с блока, у которого еще нет хеша предыдущего блока. Такой блок в блокчейне один и имеет собственное название Genesis block. У остальных блоков одинаковая структура и отличаются они только числом транзакций. Реальные транзакции и блоки создающиеся в настоящее время в Bitcoin или Ethereum можно смотреть в Block Explorer.

Размер блоков в Bitcoin ограничен 1Мб и при минимальном объеме информации в транзакции около 200 байт, максимально в блоке может быть около 6000 транзакций. Отсюда, кстати, и следует производительность Bitcoin, над которой все смеются: блок генерируется примерно раз в 10 мин * 60 сек = 600 сек, что и дает формальную производительность около 10 TPS. Хотя на самом деле — это не производительность, а сознательно реализованный алгоритм работы. В Ethereum для конкуренции просто сделали время генерации блока 15 сек. и производительность формально взлетела. Поэтому в блокчейнах, использующих PoW в качестве консенсуса вообще бессмысленно сравнивать производительность, т.к. она напрямую зависит от сложности вычисления кеша, которую можно назначить любую.

Форки

А что происходит, если, например, несколько узлов нашли хеши удовлетворяющие условиям сложности, но разные по значению (иными словами, пришли к разным консенсусам) и записали блоки в блокчейн? Давайте посмотрим, как блокчейн защищается от данной ситуации. В этом случае происходит, так называемый, форк (‘вилка’), и блокчейн имеет две версии цепочки:

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

Что происходит далее? Далее часть сети начинает работать над блоком N+2 от одной цепочки, а часть от другой:

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

Какой-то из этих блоков будет найден раньше и отправлен в блокчейн и тогда по правилам блокчейн должен будет переключиться на более длинную цепочку и отменить все транзакции из альтернативного блока:

система блок чейндж что это. Смотреть фото система блок чейндж что это. Смотреть картинку система блок чейндж что это. Картинка про система блок чейндж что это. Фото система блок чейндж что это

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

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

Консенсус

Для записи блока в блокчейн сеть должна прийти к консенсусу. Давайте вспомним, задачу достижения консенсуса в компьютерных сетях связи. Проблема формулируется, как задача византийских генералов BFT (Byzantine fault tolerance). Опуская живописное описание проблем византийской армии, задачу можно сформулировать так: как узлам сети прийти к общему результату, если часть узлов сети могут сознательно их искажать. Существующие алгоритмы решения задачи BFT показывают, что сеть может функционировать правильно, если мошенников меньше 1/3. Почему в сети Bitcoin не был применен консенсус BFT? Зачем нужно было использовать PoW? Есть несколько причин:

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

Надежность и модели развертывания блокчейнов

Устойчивость Public или другое название Permissionless blockchain достигается тем, что каждый может подключиться и просмотреть информацию или даже подключить свой узел, а доверие строится на консенсусе PoW.

Private или Private Permissioned blockchain. В этих блокчейнах только определенная группа участников (организаций или людей) имеет доступ к информации. Такие блокчейны строят организации с целью увеличения общей выгоды или эффективности. Их надежность обеспечивается общими целями участников и алгоритмами консенсуса PoS и BFT.

Существуют Consortium или Public Permissioned blockchain. Это такие блокчейны, к которым каждый может подключиться для просмотра, но добавлять информацию или подключить свой узел участник может только с разрешения других участников. Такие блокчейны строят организации с целью повышения доверия со стороны заказчиков или потребителей продукции или общества в целом. Здесь надежность также достигается присутствием доверия между участниками и теми же алгоритмами консенсуса PoS и BFT.

Smart Contracts

В блокчейны, реализованные после Bitcoin, в той или степени добавлена возможность выполнения смарт-контрактов. По сути смарт-контракт — это транзакция, в которой помещен программный код для выполнения. Смарт-контракты в сети Ethereum выполняются в EVM (Ethereum Virtual Machine). Для начала выполнения смарт-контракта его надо явно запустить другой транзакцией, или должно выполниться предусловия для выполнения. Результаты выполнения смарт-контракта также запишутся в блокчейн. Получение данных извне блокчейна возможно, но крайне ограничено.

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

Классическим примером функциональности, которую реализуют с использованием смарт-контрактов — это выпуск токенов для проведения ICO. Например, мной был реализован смарт-контракт на выпуск скромных 500 000 000 AlexToken. По ссылке в Etherscan находится

Больше подробностей про смарт-контракты можно узнать в статье: Что такое смарт-контракты в Ethereum.

Заключение

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *