Category: Блокчейн

20
Июл
2021

Flutter Global Summit’21

Спикеры из крупных мировых компаний поговорят о применении Flutter и Dart в разработке приложений, сайтов и игр. Рассмотрят кейсы, проведут панельные дискуссии, воркшопы и Q&A-сессии.
— Читать дальше «Flutter Global Summit’21»

23
Июн
2021

Хакатон Neo Frontier Launchpad

На хакатоне участникам предстоит создать проект, используя технологии Neo. Организаторы предоставят набор руководств, туториалов, примеров программ и учебных пособий, которые помогут приступить к работе.
— Читать дальше «Хакатон Neo Frontier Launchpad»…

28
Май
2021

⛓ Не только криптовалюты: реальное применение технологий блокчейна

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

Биткоин и прочие криптовалюты – не единственное применение технологий блокчейна. Они также используются для подтверждения авторских прав на музыку, текст или изображение. Применяется блокчейн и для подтверждения патента на какое-либо устройство. Речь идет не далёкой загранице: всё это уже происходит в России и соседних странах.

Блокчейн для защиты товарных знаков и авторских прав


  • «Роскосмос» начал использовать блокчейн-платформу Waves Enterprise для защиты товарных знаков. «Роспатент» совместно со «Сколково» публикует данные о зарегистрированных товарных знаках в российской блокчейн-сети IPChain. Размещение информации в блокчейне происходит моментально. Узлами блокчейн-сети IPChain стали «Первое авторское общество», «Союзмультфильм», «Роснано», крупные образовательные учреждения, а также Роспатент и Суд по интеллектуальным правам.
  • Есть интернет-сервисы, которые дают возможность подтвердить авторское право любому желающему, оплатив услугу криптовалютой. Proof of Existence – одна из первых таких служб, раньше стоимость её услуг была символической, а сейчас 0,00025 BTC за подтверждение обладания данными кажутся довольно значительной суммой. Зато информация будет привязана к блокчейну Bitcoin, и её так же невозможно изменить, как и внести правки в вычисленный блок Bitcoin. Тот же результат, что и Proof of Existence, может обеспечить служба Emernotar, при этом комиссия сервиса составит всего $0,1.
  • Украинский PatentBot оказался настолько успешным, что на его услуги есть спрос в США и странах Европейского Союза, а также в Китае и других странах Азии (это не считая востребованности в Украине). Это патентный онлайн-поверенный, работающий на блокчейне круглосуточно и без праздников. Виртуальный помощник имеет облик красивой девушки, оказывает помощь на всех этапах заполнения заявки, а также бесплатно ищет в базе подобные патенты.

Применение блокчейна в цепочке поставок


  • Блокчейн уже несколько лет активно применяется в обслуживании цепочек поставок. Walmart в консорциуме с Dole, Driscoll’s, Golden State Foods, Kroger, McCormick and Company, McLane Company, Nestlé, Tyson Foods и Unilever использует решение от IBM. Чтобы выяснить, с какой фермы в магазин пришла продукция, специалистам Walmart раньше требовалось около недели. После внедрения блокчейна – 2,2 секунды.
  • Корпорация Nestlé внедряет блокчейн-платформу OpenSC. Она позволяет конечному покупателю продукции узнать, с каких именно плантаций поступило пальмовое масло. Данные в блокчейн вносят средства радиочастотной идентификации (RFID-метки), QR-коды и температурные датчики.
  • Консорциум APAC Provenance Council собирается перевести на блокчейн все цепочки поставок между Австралией и Китаем, годовой объем которых оценивается в $76 миллиардов. В этой инициативе заинтересованы Mastercard и Alipay Australia, а также другие именитые участники.
  • ADM, Bunge, Cargill, COFCO, Louis Dreyfus Company и Viterra, а также несколько более мелких трейдеров зерна запустили платформу на блокчейне Covantis. Она предназначена для отслеживания поставок зерна, сои, кукурузы и других сыпучих грузов.
  • Китайские сталелитейные гиганты (Baosteel, Wuhan Iron and Steel, Anshan Iron and Steel) разрабатывают систему для контроля цепочек поставок на металлургические заводы. Суть системы также в использовании технологии децентрализованного реестра.
  • Cosco Shipping, E-commence Alibaba и Ant Group собираются связать одним блокчейном все задействованные в морских перевозках стороны бизнеса. Ещё одно применение блокчейна в судоходстве — передача документов. Чтобы не пересылать их между офисами в разных странах с курьером, можно записывать важную информацию в блокчейн.
  • Российская компания iFarm, которая занимается экологическим производством цветов, фруктов и овощей на вертикальных и других высокотехнологичных фермах, использует блокчейн в цепочке поставок – от семян до сбора урожая.
  • Применяют технологию распределённого реестра и крупные российские корпорации. «Росникель» внедрил блокчейн в цепочку поставок металлургического сырья. На этот раз в децентрализованный реестр вносятся данные о происхождении руды, углеродном следе при её переработке, а также другие важные экологические и экономические параметры.
  • Проект VeChain имеет китайское происхождение. Здесь блокчейн используется для отслеживания связанной с производством и распространением вакцин от коронавируса информации. Сведения об использованных для производства препарата исходных материалов, кодировка каждой дозы и данные об упаковке записываются в блокчейн, что защищает информацию от перезаписи.

Блокчейн против COVID-19


  • VeChain – не единственный пример, когда блокчейн используется для связанных с противодействием пандемии COVID-19 целей. Американский стартап Acoer создал проект Hashlog: получая информацию из больниц и центров охраны здоровья, его программная часть задействует блокчейн в обработке и визуализации данных о распространении коронавируса по США.
  • IBM и Oracle запустили систему на блокчейне MiPasa для борьбы с коронавирусом. Она предназначена для поиска бессимптомных носителей COVID-19, опасных точек распространения патогена и обмена информации об эпидемии. К проекту MiPasa уже подключились Национальная комиссия здравоохранения Китая, Microsoft, Университет Джонса Хопкинса и многие другие участники.
  • Министр финансов Японии считает, что блокчейн позволит защитить приватность инфицированных COVID-19 пациентов, и в то же время использовать в медицине данные о протекании у них заболевания.

Корпорации оформляют патенты на блокчейн

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

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

Компания DHL оформляет патенты, связанные с
применением блокчейна в логистике, а
Maersk собирается
использовать систему TradeLens на
блокчейне для обработки данные с контейнерных терминалов в морских
портах.

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

Использование блокчейна в кибербезопасности

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

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

Internet of Things: зачем нужен блокчейн?


На блокчейн переходит инфраструктура таких
крупных городов, как Дубаи и Пекин. Всё дело в Internet of Things: автоматической обработке информации от датчиков в различных устройствах с минимальным участием человека.
Перспективы у этого подхода есть и в градостроительстве, и в промышленности.
Xage использует блокчейн для записи данных с объектов промышленного
обрудования, транспорта, городской инфраструктуры, предприятий энергетики и
логистики.

Что такое Blockchain-as-a-service (BaaS)?

Blockchain-as-a-service (BaaS) представляет собой корпоративнуюслужбу на основе блокчейна. Компания подключается к облачному решению и может пользоваться всеми преимуществами технологии без необходимости поддержания собственного распределённого реестра.

Провайдер BaaS занимается инфраструктурой и
программным обеспечением в облаке, а заказчик решает с помощью
блокчейна задач свои бизнес-задачи. Аналитик Bank of America Каш Ранган (Kash
Rangan)
считает, что объем рынка BaaS может быстро достичь $7 миллиардов.

В настоящее время существуют следующие службы BaaS:

Microsoft Azure.

Amazon Blockchain Templates.

Alibaba blockchain.

DragonChain.

SAP Blockchain.

Stratis Protocol.

Конечно это далеко не полный список
Blockchain-as-a-service (BaaS) и у каждой из перечисленных служб есть свой предпочтительный вид применения:

  • MicrosoftAzure позволит реализовать внутри компании подобные Hyperledger протоколы UTXO или платформы умных контрактов вроде Ethereum. Также MicrosoftAzureподдерживает технологии R3 Corda, Quorum, Chain Core и BlockApp – более опираясь на приложения для финансов и логистики.
  • AmazonBlockchain станет лучшим вариантом для тех, кто хочет вести учёт складских запасов или заменить прогрессивным решением бумажный документооборот с разрозненными базами данных. Alibabablockchain применяется для создания интернет-магазинов. Без сомнения и другие предприниматели найдут среди предложенных решений возможности сократить расходы и увеличить прибыль.
Структурно похожее на BaaS решение под названием Blockchain-based Service Network продвигает и Китай. К этому проекту китайского правительства уже присеодинились Beyondsoft, Digital China, Forms Syntron, Huawei, Shenzhen Securities Communications, Tencent, WeBank, YIBI Technology, Yuexiu Financial Holdings и многие другие корпорации.

Где обучают программированию блокчейнов?


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

***

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

25
Май
2021

⛓ 23 ресурса для изучения технологий блокчейн: блоги, медиа, сообщества и курсы

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

Блоги


  • Week in Ethereum – еженедельный информационный бюллетень об Ethereum и его экосистеме. Независимо от того, интересуетесь ли вы обновлениями протокола или лучшими редакционными функциями блокчейн, Week in Ethereum – отличное место, чтобы получить как можно больше информации по теме.
  • ConsenSys Media – новости, идеи и обучающие материалы по децентрализации от лидеров индустрии блокчейн. Как редакционное подразделение ConsenSys блог публикует внутреннюю информацию о стартапах. Здесь можно найти интервью с технологами и предпринимателями и узнать, как децентрализация меняет жизни людей.
  • Blockchain Unleashed – в блоге IBM публикуются новости, интервью, беседы, истории и мнения представителей сообщества разработчиков. Эксперты обсуждают, как технология блокчейн влияет на бизнес-сети, рабочие процессы транзакций и распределенные реестры.
  • Bits on Blocks – блог запущен в 2015 году Энтони Льюисом. Bits on Block стремится к созданию понятных практических статей, доступных деловым людям. Авторы блога считают, что криптовалюты и технологии распределенного реестра могут сделать мир лучше.
  • Oracle Blockchain объясняет, как работают технологии блокчейн, а также позволяет обмениваться практическими примерами их использования. В блоге публикуются новости, анонсы, события и статьи о передовом опыте разработчиков.
  • Blog Quillhash содержит последние идеи и тенденции технологий блокчейн. Это официальный блог QuillHash Technologies.

Медиа


  • 101 Blockchains – профессиональный провайдер исследований и обучения в области корпоративных блокчейн-проектов. Его миссия – обучение профессионалов и предоставлие им доступа к практическим знаниям для повышения квалификации. Есть версия на русском языке.
  • bits.media – русскоязычный информационный сайт и форум о криптовалютах. Работает с июня 2011 года, когда в России только зарождалось сообщество биткоина и криптовалют. Bits.media основан энтузиастами как независимый ресурс для всех, кто желает получать грамотную и объективную информацию.
  • Forklog – русскоязычный журнал о биткоине, технологии блокчейн и цифровой экономике. Ежедневно поставляет новости и аналитику по рынку криптовалют с 2014 года.
  • Blockchain News – это онлайн-издание, посвященное исключительно технологии и теории Blockchain. Журнал основан издателем Ричардом Кастелейном.
  • Blockchain Events List – издание о конференциях по блокчейну. Оно публикует актуальный список предстоящих местных и международных событий по биткоин, блокчейну, криптовалюте, финансовым технологиям и платежам.

Сообщества


  • Free TON – официальный канал о разработке под TON и TON.Dev. Нода, компиляторы, SDK, тестовые сети и другие инструменты. «На благо свободной торговли и цифровых открытых границ», – чтобы это ни значило.
  • SPb BlockChain Community – страница сообщества BlockChain в Санкт-Петербурге, цель которой – выявить ядро базирующихся в городе разработчиков.
  • Russian Blockchain Community by PromoTeam – это международная команда, которая работает над развитием крипто-сообществ и блокчейн-проектов. Она занимается созданием образовательных продуктов, а также публикует интересные видео с участниками рынка (есть русские субтитры).
  • Blockchain Council – авторитетная группа экспертов и энтузиастов, пропагандирующих исследования, разработки, продукты и знания в области блокчейн для улучшения мира.
  • Blockchain Healthcare Review – ведущее мировое сообщество, использующее блокчейн в сфере здравоохранения.

Курсы


  • Онлайн-курс о Blockchain и децентрализованных системах Distributed Lab – курс покрывает основные технологические аспекты в теме децентрализованных приложений. Первые семь лекций знакомят с биткоином и базовыми принципами децентрализации. Следующие погружают в темы и технологии. Курс предполагает просмотр видеолекций с возможностью еженедельно встречаться с преподавателями в Харькове. Доступ к материалам онлайн-курса предоставляется бесплатно.
  • Все о блокчейн, биткоин и криптовалютах – курс Министерства цифровой трансформации Украины, созданный при поддержке компаний Binance, Hacken и Crystal Blockchain и медиа-партнера Forklog. Обучение и лекции на украинском языке.
  • Blockchain By IBM – IBM предлагает многочисленные курсы, видео и тренинги по блокчейну, которые помогут освоить технологию и получить сертификат. Большинство материалов на английском языке.
  • Blockchain and Deep Learning: Future of AI – полуторачасовая видеолекция предоставляет концептуальный обзор и техническое резюме двух основных областей роста занятости в мире: технологий блокчейн и глубокого обучения. Некоторые из областей применения – это автономное вождение, здравоохранение, энергетика и финансы.
  • Introduction to Enterprise Blockchain – бесплатный англоязычный курс по корпоративному блокчейну дает возможность оценить исключительное влияние, которое технологии оказывает на бизнес-процессы предприятия.
  • Blockchain Essentials – видеолекции в этом курсе помогут узнать о применении технологий блокчейн в бизнесе.
  • Learn the Basics of Blockchain with Python – базовый курс об основах блокчейна с Python. Программа охватывает структуру, свойства и функции блокчейна.
Рекомендуем также ознакомится с ресурсами для изучения блокчейн-разработки с нуля в «Библиотеке программиста».

***

Надеемся, эти ресурсы помогут читателям получить знания и прокачать навыки в одном из самых перспективных направлений сферы ИТ. Если вы не готовы заниматься самостоятельно, освоить востребованную профессию можно и под руководством практикующих экспертов. Обратите внимание на курс «Blockchain-разработка» образовательной онлайн-платформы GeekBrains. Насыщенная программа обучения предполагает не только общее знакомство с принципами функционирования блокчейн-систем, но и практические занятия по их разработке. После окончания курса выпускники получат удостоверение о повышении квалификации, а HR-менеджеры GeekBrains помогут им составить резюме и подготовиться к собеседованию.

20
Май
2021

⛓ Программирование и блокчейн: что нужно знать новичку?

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

Какие задачи решают блокчейн-разработчики?

О том, что из себя представляет блокчейн, вы можете узнать из статьи «Как работает Blockchain − объясняем с помощью покемонов».

Разработчики отвечают за жизненный цикл приложений блокчейн: они создают архитектуру системы и смарт-контракты, оптимизируют протоколы, и решают множество других задач. Таким специалистам необходимо разбираться в структурах данных и алгоритмах, криптографии и компьютерных сетях. Часто они работают с конкретным типом блокчейна, вроде Ethereum или Bitcoin.

Блокчейн-разработчики условно делятся на два типа:

  • Разработчик программного обеспечения блокчейн;
  • Базовый разработчик блокчейн.

Хотя и те и другие работают в одной сфере, их обязанности различаются.

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

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

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

Какие языки программирования используются?


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

Java

Java относительно просто освоить, но этот язык позволяет разработать множество сложных решений. Популярная криптовалюта NEM основана на Java.

C++

С помощью C++ можно решить множество связанных с блокчейном задач. Сатоши Накамото использовал (или использовали, если за этим псевдонимом скрывается группа людей) C++ для создания ядра Bitcoin, поэтому он может считаться одним из базовых языков для блокчейн-разработки.

Python

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

Помимо Java, C++ и Python в блокчейн-разработке часто применяются JavaScript, Ruby и C#.

Навыки


Перечислим базовые навыки, необходимые блокчейн-разработчику.

Криптография

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

Смарт-контракты

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

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

Структуры данных

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

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

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

Архитектура – это фундаментальная концепция блокчейна. Разработчик должен свободно разбираться в трех ее типах:

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

Веб-разработка

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

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

Сетевые протоколы

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

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

  • Hyperledger;
  • Multichain;
  • Enterprise Ethereum;
  • Corda;
  • Quorum.

Заключение

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

***

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

06
Май
2021

Конференция Highload++ 2021

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

02
Май
2021

Блокчейн на JAVA

посоветуйте пожалуйста, какие-нибудь статьи, книги и тд описывающие программирование блокчейна на JAVA, сам я обладаю минимальными знаниями криптографии и тд, только интересно прочить как реализовать блокчейн на JAVA и посмотреть примеры п…

02
Май
2021

Блокчейн на JAVA

посоветуйте пожалуйста, какие-нибудь статьи, книги и тд описывающие программирование блокчейна на JAVA, сам я обладаю минимальными знаниями криптографии и тд, только интересно прочить как реализовать блокчейн на JAVA и посмотреть примеры п…

19
Мар
2021

🐍 Как Python применяется в блокчейн

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

Блокчейн без крипты или сферы применения распределенных баз данных

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

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

*Не путать с распределенными вычислениями!

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

Смарт-контракты

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

Видеоигры

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

CryptoKitties

Торговля электроэнергией

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

Защита от подделок

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

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


Python на цепи или преимущества Python для блокчейн

Хотя первоначально блокчейн для Bitcoin был реализован на C++, многие разработчики и специалисты по обработке данных обращаются к другим языкам программирования. Остановимся подробнее на Python.

Простота и популярность

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

Простота и минимализм лежат в основе Python. Не зря важный принцип философии этого популярного языка программирования гласит: «Должен быть один – и желательно только один – очевидный способ сделать это».

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

Компилировать или нет – вот в чем вопрос

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

Готовые пакеты для Blockchain

Еще одно важное преимущество использования Python в проекте blockchain заключается в наличии бесплатных пакетов для упрощения разработки. Остановимся на этом подробнее.

Инструменты

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

Hashlib

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

Flask

В случае реального блокчейна его необходимо распределить, чтобы разные пользователи могли инициировать транзакции и создавать блоки. Для распределенных и веб-реализаций в Python существуют разные фреймворки: Flask – один из самых популярных инструментов.

        $ pip install flask
    

Populus

Populus – это среда разработки смарт-контрактов для блокчейна Ethereum. Она была разработана, чтобы упростить жизнь программистов Python Ethereum.

        $ pip install populus
    

Библиотека запросов

Requests – это элегантная и простая HTTP-библиотека для Python. Она понадобится в блокчейн, чтобы отправлять запрос на построение новой транзакции и добавление ее в блок.

        $ pip install requests
    

Помимо этого набора инструментов вы можете найти на Github множество других подходящих библиотек на Python – от API до блокчейн на основе графов.

Пошаговое руководство

Лучший способ в чем-либо разобраться – сделать это на практике. Приведем пошаговое руководство по сборке простейшей цепочки блоков с помощью Python на коленке.

Для начала поставим библиотеку запросов и Flask (предполагается что Python у вас уже установлен).

        $ python -m pip install requests
$ pip install flask
    

Класс блока

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

        class Block:
    def __init__(self, index, transactions, timestamp, previous_hash):
        self.index = index
        self.transactions = transactions
        self.timestamp = timestamp
        self.previous_hash = previous_hash
        self.nonce = 0
    

Хеширование

Python может использовать любую стандартную криптографическую хеш-функцию, например, из входящих в набор SHA-2. SHA-256 может быть реализован путем добавления метода compute_hash в блок класса:

        from hashlib import sha256
 import json 
    def compute_hash(self):
        block_string = json.dumps(self.__dict__, sort_keys=True)
        return sha256(block_string.encode()).hexdigest()
    

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

Блокчейн

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

        import time
class Blockchain:
    def __init__(self):
        self.unconfirmed_transactions = []
        self.chain = []
        self.create_genesis_block()
    def create_genesis_block(self):
        genesis_block = Block(0, [], time.time(), "0")
        genesis_block.hash = genesis_block.compute_hash()
        self.chain.append(genesis_block)
#Функция для создания блока генезиса и добавления его в цепь
    @property
    def last_block(self):
        return self.chain[-1]
    

Proof-Of-Work

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

Чтобы реализовать такую систему, мы можем добавить метод proof_of_work в класс цепочки блоков.

        difficulty = 2
    def proof_of_work(self, block):
        block.nonce = 0
        computed_hash = block.compute_hash()
        while not computed_hash.startswith('0' * Blockchain.difficulty):
            block.nonce += 1
            computed_hash = block.compute_hash()
        return computed_hash
    

Процедура майнинга

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

        def is_valid_proof(self, block, block_hash):
        return (block_hash.startswith('0' * Blockchain.difficulty) and
                block_hash == block.compute_hash())
    def add_new_transaction(self, transaction):
        self.unconfirmed_transactions.append(transaction)
    def mine(self):
        if not self.unconfirmed_transactions:
            return False
        last_block = self.last_block
        new_block = Block(index=last_block.index + 1,
                          transactions=self.unconfirmed_transactions,
                          timestamp=time.time(),
                          previous_hash=last_block.hash)
        proof = self.proof_of_work(new_block)
        self.add_block(new_block, proof)
        self.unconfirmed_transactions = []
        return new_block.index
    

API

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

        from flask import Flask, request
import requests
app = Flask(__name__)
blockchain = Blockchain()
    

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

        @app.route('/chain', methods=['GET'])
def get_chain():
    chain_data = []
    for block in blockchain.chain:
        chain_data.append(block.__dict__)
    return json.dumps({"length": len(chain_data),
                       "chain": chain_data})
app.run(debug=True, port=5000)
    

Проверяем

Запускаем наш блокчейн из каталога

        $ python3 blockchain.py
    

Вывод должен быть похож на это:


Открываем соседнее окно и запускаем:

        $ curl  http://127.0.0.1:5000/chain
    

Получаем


Работает, что и требовалось доказать.

Резюме

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

Еще один интересный вариант доступен в статье «Реализуем свой Bitcoin на Python».

20
Окт
2020

Курс по блокчейн-разработке

Узнаете, как работают системы распределённого реестра, криптография, сетевые уровни взаимодействия, протоколы анонимизации и смарт-контракты.
— Читать дальше «Курс по блокчейн-разработке»

03
Сен
2020

15-17 сентября, Москва: конференция TestCon Moscow 2020

Специалисты поделятся инструментами и лучшими практиками для проведения тестов в целях улучшения качества программного обеспечения.
— Читать дальше «Конференция TestCon Moscow 2020»

29
Июл
2020

1 августа, онлайн: JavaGlobal Summit’20

Лучшие кейсы, семинары и живое общение в режиме вопросов и ответов с докладчиками из Oracle, Microsoft, IBM, JCP и других топовых компаний.
— Читать дальше «JavaGlobal Summit’20»

25
Ноя
2019

29 ноября – 1 декабря, Новосибирск: конференция DevFest

Ежегодное мероприятие, которое проводит сообщество GDG. За три дня можно послушать доклады про мобильную и веб-разработку, машинное обучение и безопасность.
— Читать дальше «Конференция DevFest Siberia 2019»

04
Окт
2019

14–15 октября, Москва: воркшоп Hyperledger BootCamp Russia

Первый в России буткемп глобального блокчейн-сообщества Hyperledger, который будет полезен как новичкам, так и опытным участникам.
— Читать дальше «Воркшоп Hyperledger BootCamp Russia»

25
Сен
2019

16–17 ноября, Москва: хакатон ProHack 4.0

Для специалистов, нацеленных на развитие в промышленном секторе. Кейсы для участников подготовили «УралХим», «ФосАгро», «Газпромнефть» и «Норникель». 
— Читать дальше «Хакатон ProHack 4.0»

25
Июн
2019

11–12 июля, Санкт-Петербург: конференция Hydra 2019

Конференция о современных параллельных и распределённых системах, а также о научных подходах и теоремах, лежащих в их основе.
— Читать дальше «Конференция Hydra 2019»

28
Ноя
2018

Конференция RustRush 2018

15–16 декабря в Москве пройдёт первая в России международная конференция для разработчиков на Rust — RustRush 2018. Что в программе? Основные темы конференции — веб, блокчейн, высокая производительность и системное программирование. На конференцию прие…