блокчейн разработка что это такое
Ресурсы для изучения блокчейн-разработки с нуля
Блокчейн не ограничивается одними криптовалютами, и в этом материале мы собрали необходимый минимум для изучения блокчейн-разработки.
Вы узнаете, что такое блокчейн, и с чем его едят. Статья подойдет даже тем новичкам, которые только начали свой путь в программировании.
В прошлом году криптовалюты привлекли внимание многих людей и организаций. ВУЗы начали включить обучение криптотехнологиям в учебные планы, государства задумались о регулировании. Но факт в том, что большинство людей плохо понимают даже принципы работы блокчейна.
В этой статье мы собрали материалы, которые помогут разобраться с основами и приступить к процессу блокчейн-разработки на практике. Важно знать, что блокчейн − чистая математика и без технической базы будет тяжело.
Далее вы узнаете о таких вещах, как разработка децентрализованного приложения на Ethereum, теория игр, криптография, альтернативные блокчейны.
Как работают блокчейн-технологии
Вообще, эта технология охватывает множество областей: от информатики, криптографии, до экономики и экологии. Так что через минуту после начала объяснения сути работы блокчейна, большинство людей перестанет понимать, что происходит − информации слишком много. Поэтому всё нужно показывать наглядно, с примерами.
Начните разбираться с этого видео:
Затем следующие два. Там есть и то, о чём вы уже знаете, и новая информация. Это поможет уложить в голове суть технологии.
Затем перейдите к изучению конкретной технологии − Ethereum. Есть мнение, что она наиболее перспективна, несмотря на то, что находится на втором месте по капитализации после Bitcoin. Это объясняют наличием команды разработки и большого комьюнити.
Разработка децентрализованного Ethereum-приложения − Dapp
Есть много разных технологий для создания смарт-контрактов, но Ethereum − доминирующая. Чаще всего контракты пишутся на языке Solidity. Начинать лучше с него же, потом можно перейти на другие, более функциональные языки.
Самый простой способ научиться Solidity-разработке − игра CryptoZombies. В процессе создания собственной игры с коллекционными крипто-предметами игрок учится писать смарт-контракты на Solidity. Она регулярно обновляется и учитывает последние Solidity-изменения.
В дополнение к CryptoZombies можно использовать следующие вещи:
После того, как покончите с Cryptozombies, неплохо бы научиться использовать Remix IDE для создания, отладки и развертывания контрактов. В этих файлах есть всё необходимое, чтобы начать.
Кроме того, следует разобраться с кошельками и клиентами Ethereum, протестировать браузерное расширение Metamask.
Уже после этого можно переходить к изучению более продвинутых вещей. Для начала почитайте документацию Solidity: там вы найдете примеры качественных децентрализованных приложений. Они также есть на Ethereum.org. Их можно копировать и проверять прямо в Remix IDE.
После того как вы начнёте хорошо разбираться в Solidity и смарт-контрактах, перейдите к приложениям с открытым исходным кодом, Crypto Kitties, например (код контракта можно увидеть на любом Ethereum-адресе через etherscan.io).
Ещё можно изучить следующие инструменты:
Теория игр
Теория игр во многом составляет принцип решения проблем с помощью блокчейна. Изучить основы теории можно с помощью The Great Courses Plus. У них есть месячная подписка и две пробных недели (можно уложиться и всё изучить). Просмотрев 24 получасовых лекций у вас появится четкое понимание того, что и как.
Криптография
Эта тема, для понимания которой нужно знать математику слишком хорошо. Но есть пара ресурсов, которые помогут вам понять необходимый минимум для начала работы:
Какие подкасты слушать
На что ещё обратить внимание, кроме Ethereum
Сообщество Ethereum, безусловно, наиболее крупное, а значит и разбираться с принципами работы технологии проще всего. Тем не менее было бы упущением не рассказать о других инновационных проектах:
Следим за перспективами
Если хотите быть в курсе действительно важных изменений, а не новостей для манипуляции рынком, следует ознакомиться с данными источниками:
Заключение
Блокчейн − крайне занимательная вещь. Если вам интересна эта тема с технической точки зрения, пишите об этом в комментариях, и тогда статьи по блокчейн-разработке будут выходить чаще.
Понравились материалы для изучения блокчейн-разработки? Другие статьи по теме:
Источник: Ресурсы для изучения блокчейн-разработки на freeCodeCamp
Что такое блокчейн и зачем он нужен
В сознании среднестатистического пользователя само слово “блокчейн” (“цепочка блоков”) стало довольно тесно связано с термином “биткоин”, что двояко отразилось на восприятии.
С одной стороны, популярность биткоина вызывает интерес и к блокчейну, с другой стороны, в массовом сознании биткоин часто ассоциируется лишь с чем-то негативным, запрещенным и подвергаемым преследованию со стороны законодателей. Мол, зачем расплачиваться биткоинами, когда есть целый зоопарк электронных кошельков и банковских карт? Ясное дело – чтобы проворачивать какие-то темные делишки.
Блокчейн же – по сути всего лишь инструмент, с помощью которого можно хранить данные транзакций (база данных). А инструмент не может сам по себе быть заведомо хорошим или плохим: с помощью топора можно пойти и нарубить дров, чтобы согреться зимой и приготовить пищу, а можно взять тот же самый топор и сокращать народонаселение процентщиц в отдельно взятом городе. Инструмент – один и тот же, применение и последствия – разные.
Сфер применения можно найти множество, главное – чтобы существовал аналог сделки или подобного взаимодействия, партнерства между сторонами. Поэтому на технологии блокчейна сейчас работают биткоин и лайткоин, к блокчейну весьма активно присматриваются банки (осенью 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 сообщает всем: « Я, номер #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 он ни разу не был «обманут» и не выводился из строя, при том, что на эту систему проводились атаки.
Так же, существует ещё пара теоретических уязвимостей блокчейна, с которыми вы сможете ознакомиться самостоятельно. Ссылка для ознакомления: Что угрожает блокчейн-сетям
Материала и мыслей, которые хочется донести очень много, и если все изложить в одну статью, будет скучно читать и может смешаться в кашу.







