Цена и альтернатива: как внедрить блокчейн в ваш бизнес (и не помочь конкурентам)
На волне новой золотой блокчейн-лихорадки мы каждый день слышим о стартапах, использующих революционные технологии. Банковскому сектору блокчейн может позволить экономить до $20 млрд ежегодно. Многие предприниматели задумались, не перевести ли свой бизнес на блокчейн. Определитесь, какие ваши задачи поможет решить блокчейн, во сколько обойдется разработка и хотите ли вы быть первопроходцем, прокладывающим путь для конкурентов.
Определите use case
Зачем вам блокчейн? Определитесь, как вы хотели бы «прокачать» свой бизнес. Сформулируйте задачи вашей компании и проблемы бизнес-модели.
Если необходимо предоставить покупателям историю происхождения товара, блокчейн поможет записать всю цепочку поставок: где был товар и как с ним обращались. Каждая запись в блокчейне зависит от предыдущей, и заменить данные задним числом невозможно.
Один из наиболее известных примеров такого юзкейса (use case — сценарий использования — Inc.): — инициатива Walmart, которая использует решения от IBM, чтобы формировать неизменяемую историю продуктов на протяжении всего их жизненного цикла, с момента отгрузки поставщиком и до покупки клиентом торговой сети.
Что такое блокчейн
Это реестр информации, децентрализованный и неизменяемый. Он позволяет распространять, контролировать и хранить транзакции
в полностью защищенном и прозрачном виде без посредников — правительственных учреждений или централизованных организаций. Это ускоряет, удешевляет процессинг и позволяет использовать бизнес-модели, не реализованные прежде из-за высоких издержек.
Поищите альтернативы
Теперь важно понять, можно ли решить ваши задачи без блокчейна — используя традиционные реляционные базы данных.
Oracle и MySQL развернуты на миллионах серверов и проверены триллионами запросов. Их код многократно протестирован, оптимизирован и потому менее подвержен вероятным ошибкам и багам. При использовании «устоявшихся» технологий гораздо легче найти специалиста для разработки и поддержки программных продуктов.
А многим блокчейн-решениям на рынке менее двух лет. Разработчики считают, что если есть выбор, не стоит обращаться к технологии, которая пока ходит «в подгузниках».
Изучите примеры
Если вы уверены, что хотите развернуть решение на блокчейне, проанализируйте опубликованные кейсы его внедрения в бизнесы из вашей или близкой сферы, чтобы выявить нюансы и оценить эффект от внедрения.
Анализ кейсов покажет, для каких задач используют эту технологию. Главное свойство блокчейна — неизменяемость информации — работает как обоюдоострый меч: с одной стороны, гарантирует безопасность, с другой — навсегда закрепляет ошибочную транзакцию, и чтобы ее откатить, необходимо согласие второго участника. Блокчейн можно вернуть в состояние «как было», тем самым отменив транзакции, выполненные после точки восстановления. Большое количество подобных «откатов» может повредить репутации вашего бизнеса.
Оцените возможные риски
Скорее всего, после внедрения блокчейна бизнес-процессы в вашей компании кардинально изменятся. Это нужно предусмотреть на этапе планирования — как минимум составить диаграмму бизнес-процессов до и после внедрения. Для корректировки привычного workflow придется потратиться на поддержку обновленной ИТ-инфраструктуры и дополнительно обучить сотрудников работе с новой технологией.
Помните: блокчейн не защищает от всего на свете. Человеческий фактор никуда не денется: сотрудники могут «обманывать компьютер», помещая в реестр заведомо ложную информацию. Если вы хотите исключить вероятность мошенничества на уровне кассира, то даже после внедрения блокчейна придется дублировать контроль за ситуацией с помощью классических средств вроде видеонаблюдения.
Не забудьте оценить технологические риски — протоколы для блокчейна новые и не лишены недостатков. В конце прошлого года монеты Ethereum, эквивалентные $300 млн, были заморожены на счетах пользователи из-за ошибки в коде. Для страховки от подобных ситуаций вам понадобятся дорогие специалисты.
Какие есть решения
Создать свой блокчейн
Сложнее, дольше всего и наиболее затратно создать с нуля свой блокчейн, если другие предложения на рынке не удовлетворяют требованиям бизнеса, — он даст максимальную гибкость.
Свой блокчейн Dragonchain создала одна из крупнейших корпораций в мире — Disney. Предполагается, что Dragonchain станет системой для торговли активами Disney и поможет другим компаниям создавать блокчейн-решения без затрат на наем соответствующих специалистов — уже сейчас частью Dragonchain является инкубатор блокчейн-проектов.
Использовать готовую платформу
Чтобы не создавать свой блокчейн с нуля, можно использовать готовую платформу, такую как Ethereum, Hyperledger или Exonum. Это ПО облегчит разработку и объединение разных компонентов большого программного проекта.
Такое решение подойдет, если у компании есть возможность взять разработчиков в штат и консультироваться у блокчейн-экспертов, как это сделала горнодобывающая компания BHP Billiton. Блокчейн на Ethereum нужен ей для отслеживания перемещения руды и угля транспортными компаниями. Сейчас эти данные фиксируют с помощью электронных таблиц и нет гарантии их целостности: любую запись можно подменить «задним числом».
С внедрением блокчейна результаты, например, минералогического анализа будут поступать напрямую от подрядчика в неизменном виде.
Обратиться к решению типа Blockchain-as-a-Service
Более простым решением для внедрения блокчейн-технологии в компании является BaaS — Blockchain-as-a-Service. Этот вариант подходит тем, кто не хочет тратиться на свой блокчейн и брать в штат разработчиков.Такие решения предлагают IBM и Microsoft. Здесь вы выигрываете в скорости, но попадаете в так называемый vendor-lock, что в будущем усложнит смену поставщика. По такому пути решились пойти крупные ритейлеры вроде Nestle и Unilever. Они работают с продуктами компании IBM.
К решениям IBM прибегли в транспортно-логистической компании Maersk: там блокчейн используют для управления погрузочно-разгрузочными операциями. Технология позволяет отслеживать товары в различных портах мира и отмечать их состояние. В будущем блокчейн должен помочь Maersk в оптимизации грузоперевозок — контролировать наличие пустых контейнеров на судах.
Прежде чем стать «еще одной компанией, использующей блокчейн», определите, для чего он вам, и поищите альтернативы. Перестройка бизнес-процессов, затраты на разработку и внедрение, риск перехода на необкатанную технологию — не слишком ли высока цена?
Изучите ваш целевой рынок: кто в вашей или смежной сфере используют блокчейн? Есть ли кейсы реальных внедрений? Об этих внедрениях пишут общие слова или есть подробности и нюансы? Соберите максимум информации — чтобы еще раз взвесить все за и против. Вы же не хотите стать первопроходцем, на чьих ошибках будут учиться конкуренты.
Если решили пойти по «пути блокчейна», определились с кейсом, целями, задачами и возможными выгодами от внедрения, попробуйте протестировать пилотную версию решения в облаке (скорее всего, понадобятся стороннее агентство или команда разработчиков, специализирующиеся на определенных блокчейн-решениях).
После тестирования вы поймете, как вам лучше развернуть блокчейн, составите подробный план внедрения технологии в ваш бизнес и сможете выбрать, построить ли свой блокчейн, использовать готовую платформу или обратиться к BaaS.
Внедрение блокчейна в 2018 году: реальные решения проблем с помощью технологии
Сторонники децентрализованных технологий утверждают, что блокчейн кардинально может изменить самые различные сферы, включая финансы, энергетику, страхование, цепи поставок и т. д. По их словам, технология распределенного реестра привносит прозрачность в процессы, снижает издержки и устраняет посредников, уменьшает вероятность ошибок посредством минимизации влияния человеческого фактора и делает системы надежнее благодаря устранению единой точки отказа.
Однако исследователи PricewaterhouseCoopers пришли к выводу, что лишь немногие мировые компании используют решения на базе этой перспективной технологии. По мнению представителей австралийского Агентства по вопросам цифровых преобразований, на данный момент другие технологии превосходят блокчейн при решении реальных проблем бизнеса. В организации считают, что вокруг этой технологии слишком большой хайп, а для ее массового принятия необходима стандартизация и дальнейшие улучшения.
Крайне негативное отношение к блокчейну и криптовалютам у экономиста Нуриэля Рубини по прозвищу «Доктор Дум». Летом он нещадно раскритиковал смарт-контракты Ethereum. Рубини сказал, что они «не являются ни умными, ни контрактами вообще».
В целом нужно признать, что ажиотаж вокруг блокчейна уже не тот, что был, скажем, в 2017 году, когда на фоне бума первичных предложений монет происходило головокружительное ралли криптовалют.
В частности, этот тезис подтверждают исследователи авторитетной консалтинговой фирмы Gartner. Они считают, что технология в настоящее время находится на пороге фазы «избавление от иллюзий». На этом этапе выявляются недостатки технологии, публикации СМИ все чаще изобилуют критикой, а в сообществе отмечается разочарование и горечь неоправданных ожиданий.
Однако настолько ли все плачевно в этой индустрии? Есть ли работающие продукты на базе блокчейна и, если да, то в каких сферах? Журнал ForkLog попытался разобраться в этом.
Банковская сфера
Как известно, одним из наиболее очевидных направлений применения технологии блокчейн является финансовый сектор, где традиционно множество посредников, недостаток прозрачности и высокие комиссии.
Действительно, многие крупные банки работают над созданием децентрализованных решений и тестируют их. Так, в ноябре была запущена CLSNet — глобальная корпоративная блокчейн-система для платежного неттинга. Сервис на базе технологии Hyperledger Fabric разрабатывался совместно с IBM. Среди первых его клиентов такие гиганты, как Bank of America, Goldman Sachs, Citibank, Morgan Stanley, JPMorgan Chase и Bank of China.
Неттинг представляет собой зачет встречных требований и определение обязательств участников клиринга по сделкам с ценными бумагами. CLSNet обеспечивает стабильность денежного потока, предварительно группируя несколько платежей в один. Также это решение повышает эффективность платежных операций и автоматизирует различные процессы.
«То, что CLSNet теперь используется двумя крупнейшими банками мира для важной рыночной задачи, свидетельствует о том, что технология блокчейн становится более зрелой и уже обладает ценностью, которую можно применить на практике», — заявила генеральный менеджер IBM Blockchain Мари Вьек.
Невзирая на, казалось бы, крайний консерватизм, исламские финансы не сторонятся новейших технологий. Так, в ноябре базирующийся в Абу-Даби Al Hilal Bank осуществил операцию на вторичном рынке с исламскими облигациями сукук. Сумма сделки составила $500 млн. Соответствующие шариату эквиваленты облигации выпущены на блокчейне при поддержке финтех-стартапа Jibrel Network. Срок погашения инструментов — сентябрь 2023 года.
По мнению представителей Al Hilal Bank, блокчейн и смарт-контракты открывают новые возможности, повышают эффективность операций и снижают накладные расходы.
Стараются не отставать от глобальных трендов и российские финучреждения. Так, в начале декабря Сбербанк сообщил об успешной внебиржевой сделке РЕПО на блокчейне с брокерской компанией «Регион».
Для расчетов использовалась распределенная Система Управления Обеспечением Национального расчетного депозитария (СУО). Каждый участник сделки подал поручение в свою ноду сети блокчейн, а смарт-контракт заключил договор и отправил расчетные инструкции в СУО.
Блокчейн может гарантировать подлинность и неизменяемость контрактов третьими лицами. Эти уникальные свойства технологии взял на вооружение крупный испанский банк BBVA, выдавший синдицированный займ на $150 млн местной управляющей энергетической компании Red Electrica.
В распределенный реестр были включены пользовательский код и временные отметки каждой стадии процесса выдачи займа. Таким образом, участники, среди которых японский Mitsubishi UFJ Financial Group и французский BNP Paribas, получили доступ к соответствующей информации на всех этапах сделки. Также представители банков убедились, что при помощи развивающейся технологии можно сократить бумажную работу и сроки выдачи займа.
Становятся реальностью облигации на блокчейне. В частности, выпуском таких долговых ценных бумаг занимаются Всемирный банк и Commonwealth Bank of Australia.
Закладные на блокчейне и международные банковские гарантии нового типа тестирует «Райффайзенбанк». Для этого российское финучреждение использует блокчейн-платформы «Мастерчейн» и R-chain, сотрудничая с «Газпром нефть» и другими крупными предприятиями. Тестирует гарантии на блокчейне и банк ВТБ.
Операции с долговыми ценными бумагами на блокчейне осуществляют также Commerzbank, ING, Natixis и Rabobank. Для этого они используют платформу Corda от консорциума R3. Представители этих банков уверены в том, что блокчейн способен повысить скорость операций и сократить многие расходы.
Блокчейн отлично подходит и для трансграничных финансовых операций. Так, успешную сделку на блокчейн-платформе we.trade осуществили Deutsche Bank, HSBC, KBC, Natixis, Nordea, Rabobank, Santander, Société Générale и UniCredit. В основе работающей в 11 странах платформы we.trade лежит технология Hyperledger Fabric.
Защита авторских прав
Неплохо себя зарекомендовала технология в сфере защиты авторских прав и в борьбе фальсификацией данных. Так, российский стартап Sputnik DLT разработал на платформе Waves сервис «Депонент» для доказательств авторских прав.
Подобное решение существуют и на базе Emercoin, где используется алгоритм SHA-512. По словам разработчиков, сервис Emernotar могут использовать предприниматели и юристы для подписания контрактов, онлайн-сервисы — для сбора доказуемых согласий пользователей, а люди творческих профессий — для подтверждения авторских прав.
На основе технологии Emercoin есть и платформа democracynotary.org. Она предназначена для защиты целостности важной информации, связанной с избирательными процессами.
Решение было протестировано в ходе недавнего референдума в Македонии по вопросу одобрения договора с Грецией, предусматривающего смену названия страны. Ее задачей была нотаризация публичных отчетов о процессе проведения референдума в рамках противодействия распространению дезинформации.
Недвижимость
Перспективная сфера применения блокчейна — оформление сделок с недвижимостью. В сентябре прошлого года в Украине впервые в мире была продана недвижимость с использованием смарт-контракта на блокчейне Ethereum.
Квартиру в Киеве приобрел основатель онлайн-издания TechCrunch Майкл Аррингтон через децентрализованный маркетплейс недвижимости Propy. При этом продавец жилья территориально находился в Нью-Йорке. Оплата сделки проводилась в Etherеum.
Спустя некоторое время через децентрализованный маркетплейс Propy в Калифорнии была совершена сделка по продаже десяти акров земли, полностью проведенная в биткоинах и оформленная с помощью блокчейна. Вскоре после этого состоялась первая в ЕС продажа недвижимости на блокчейне.
В декабре 2018 года Швейцарская служба по надзору за финансовыми рынками одобрила бизнес-модель блокчейн-компании blockimmo, занимающейся токенизацией недвижимости.
На данный момент платформа blockimmo работает в тестовом режиме и доступна для жителей Швейцарии и Лихтенштейна. Позднее компания планирует выйти на другие европейские рынки.
Торговля, логистика и цепи поставок
В конце осени 2018 года нефтяные гиганты BP и Shell, крупные банки и другие компании запустили блокчейн-платформу Vakt для оптимизации процессов при торговле сырьевыми продуктами. В частности, решение подразумевает перенос бумажной документации на смарт-контракты.
Используется блокчейн и в Объединенных Арабских Эмиратах — первое в Абу-Даби блокчейн-решение в сфере логистики запустила Maqta Gateway LLC. Компания разработала технологию Silsal на базе блокчейна для повышения эффективности логистики и грузоперевозок. Посредством технологии распределенного реестра Maqta Gateway надеется сократить бумажную работу, облегчить обновление статусов в режиме реального времени и ускорить обмен информацией.
Также осенью ушедшего года состоялся запуск блокчейн-платформы IBM Food Trust. В основе нее лежит технология Hyperledger Fabric, а предназначена платформа для контроля над цепями поставок в сфере продовольственных товаров.
Участниками сети стали такие известные компании, как Carrefour, Nestle, Dole Food, Tyson Foods, Kroger, Unilever и Walmart. Месячная стоимость блокчейн-услуги от IBM варьируется в диапазоне от $100 вплоть до $10 000.
Транспорт
Осенью 2017 года был запущен децентрализованный аукцион Shelf.Network. Платформа позволяет компаниям-дилерам заключать сделки по продаже, аренде и лизингу автомобилей. Спустя год аукцион получил инвестиции от японского IT-гиганта Broadleaf.
Одновременно с этим, Broadleaf получила лицензию на распространение технологии Shelf.Network с целью создания торговой сети для продаж автомобилей и комплектующих в Юго-Восточной Азии, включая Японию, Мьянму, Таиланд, Индонезию, Вьетнам, Лаос, Австралию, Индию, Бангладеш, Шри-Ланку и Сингапур.
Как отмечает основатель Shelf.Network Лаша Антадзе, в конце 2018 года в сети сервиса было представлено 60 тысяч автомобилей из США.
Также Shelf.Network взаимодействует с веб-сервисом Carfax, который предоставляет отчеты об истории транспортных средств частным лицам и предприятиям.
Стартап Auto1 Group GmbH задействовал блокчейн для записи ссуд и страховых продуктов при покупке транспорта в Германии. Блокчейн, уверены представители компании, позволяет дилерам мгновенно проводить операции купли-продажи.
«Технология распределенного реестра является альтернативой традиционному оформлению бумаг, которое занимает около двух недель», — сказал один из исполнительных директоров Auto1 Group GmbH Хакан Коч.
Согласно результатам опроса, проведенного IBM Institute for Business Value и Oxford Economics среди крупных компаний, к 2021 году блокчейн будет играть ключевую роль в автомобильной индустрии.
Используется блокчейн и в авиаиндустрии. Так, «Газпромнефть-Аэро», S7 Airlines и «Альфа-банк» применили смарт-контракты на блокчейн-платформе Hyperledger для мгновенной оплаты топлива в момент заправки самолетов. Стороны считают, что технология распределенного реестра может упростить и ускорить взаиморасчеты, устранить различные финансовые риски, а также автоматизировать часть процессов.
«Применение блокчейна во взаиморасчетах авиакомпаний и топливных операторов даст новый импульс развитию всей авиационной отрасли», — отметил генеральный директор «Газпромнефть-Аэро» Владимир Егоров.
Госсектор, судопроизводство и документооборот
Добралась новая технология и до государственного сектора. Так, в 2017 году в Украине был официально запущен электронный аукцион на блокчейне. Решение на базе технологии Exonum от BitFury применено для системы продажи конфискованного имущества «СЕТАМ». С момента запуска общий объем торгов на нем составил 3,2 млрд грн.
Используется блокчейн и для заверения документов. Есть, например, сервис Proofstack, который архивирует файл документа совместно с личной подписью владельца и меткой даты и времени. Затем хеш архива записывается в блокчейн.
Пользователь дополнительно может выбрать страну, что повлияет на тип временной метки, и желаемое место хранения сгенерированного архива (компьютер, облако). Созданный архив служит подтверждением того, что файл заархивирован человеком в определенное время.
Блокчейн постепенно становится обыденностью и в судебной системе. Например, ServeManager совместно с Integra интегрировали блокчейн в сервис для отслеживания доставки повесток в суд.
В декабре 2018 года впервые в практике российской судебной системы суд по интеллектуальным правам разместил транзакции об изменении состава правообладателей. Использовался блокчейн-сервис IPChain. Его представители назвали событие знаковым для цифровой экономики.
Стремительно развиваются поддерживаемые государством блокчейн-решения в Китае. Так, в течение трех месяцев после запуска китайская судебная блокчейн-система Tianping Chain собрала около миллиона элементов онлайн-доказательств. Все представленные на платформе материалы были верифицированы посредством технологии распределенного реестра и относились к почти 190 тысячам документов.
Система для размещения электронных доказательств разработана Пекинским интернет-судом, Китайской группой по реагированию на чрезвычайные ситуации в области промышленных систем управления (CICS-CERT), исследовательским центром при Министерстве промышленности и информационных технологий, интернет-конгломератом Baidu и блокчейн-стартапом TrustDo. В основе платформы лежит инфраструктура Super Chain от интернет-гиганта Baidu.
Tianping Chain оптимизирует процесс сбора и хранения доказательств, а также обеспечивает подлинность последних посредством блокчейна. Платформа экономит время и ресурсы, снижая затраты на судебные разбирательства, связанные с интернет-сферой.
Страхование и финтех
Мировой лидер в сфере контейнерных перевозок Maersk весной начал использовать блокчейн-решение Insurwave. Платформа для страхования морских перевозок платформа разработана совместными усилиями консалтинговой фирмы EY и компании Guardtime, а в ее основе лежит облачная технология Microsoft Azure.
Ожидается, что в первый год работы с Insurwave компания Maersk застрахует одну тысячу морских суден, а общее количество цифровых транзакций превысит 500 тысяч. Платформу уже используют компании Willis Towers Watson, XL Catlin и MS Amlin.
Разработчики расширяют функциональность Insurwave с целью добавить возможность страхования в области авиаперевозок и энергетики.
Объявила о полном переводе расчетов на блокчейн британская финтех-компания Calastone, специализирующаяся на управлении инвестиционными потоками. В компании рассчитывают, что технология поможет сократить на миллиарды долларов издержки глобального сектора расчетов.
Calastone предоставляет услуги по оценке/ управлению рисками, IT-инфраструктуре, а также платежным решениям более чем 1700 фирмам, включая JP Morgan Asset Management, Schroders и Invesco.
Энергетика, телекоммуникации
Компания Singapore Power Group запустила блокчейн-маркетплейс для торговли сертификатами на использование возобновляемых источников энергии (REC). По словам представителей компании, платформа «разработана собственными силами» и призвана сделать операции с такими сертификатами безопасными, надежными и отслеживаемыми.
REC служат доказательством выделения определенного объема электроэнергии солнечными батареями. Платформой заинтересовались City Developments Limited и DBS Bank, которые намерены купить сертификаты. Продавать REC планируют добытчики солнечной энергии Cleantech Solar Asia и LYS Energy Solutions. Также к платформе присоединилась компания Katoen Natie Singapore, которая планирует вскоре запустить мощности по добыче возобновляемой электроэнергии.
Собственную блокчейн-сеть запустила крупнейшая телекоммуникационная компания Южной Кореи KT Corporation. Технология распределенного реестра задействована при аутентификации пользователей и для совершенствования международных роуминговых сервисов.
Также площадка позволит безопасно передавать партнерам KT Corporation данные клиентов. Пропускная способность сети, отмечают представители компании, должна со временем достигнуть 100 000 транзакций в секунду.
Образование
Становятся реальностью дипломы на блокчейне. Так, еще в конце 2017 года цифровые документы об образовании получили более ста выпускников Массачусетского технологического института.
Для выпуска верифицируемых и защищенных от подделок цифровых версий дипломов использовалось приложение Blockcerts Wallet, работающее с блокчейном биткоина. В пилотном проекте также участвовала софтверная компания Learning Machine, которая ранее совместно с лабораторией Media Lab занималась разработкой открытого стандарта Blockcerts.
«С самого начала нашей основной задачей было предоставление студентам права стать настоящими собственниками своих документов», — прокомментировала событие Мэри Каллахан, старший заместитель декана MIT.
По словам CEO Learning Machine Криса Джагерса, люди смогут воспользоваться важными официальными данными, которые будут храниться даже если институт прекратит существование.
Старается не отставать от знаменитого MIT тбилисский Университет бизнеса и технологий. В сотрудничестве с Emercoin университет задействовал блокчейн-платформу Trusted Diploma, предназначенную для аналогичных целей.
Ажиотаж позади?
«Блокчейн» стал поистине модным словечком в 2016-2017 гг, однако медвежий рынок ушедшего года значительно охладил интерес компаний к данной индустрии.
В начале 2018 года, когда рынок криптовалют был все еще перегрет, а первичные предложения монет по-прежнему привлекали огромные суммы, аналитики IBM выразили уверенность, что к 2030 году капитализация рынка блокчейн-решений достигнет $3,1 трлн. Учитывая, что реально работающих блокчейн-решений не так уже много, сейчас, вероятно, мало кому этот прогноз покажется актуальным.
Например, согласно результатам недавнего опроса, только 3% жителей США готовы использовать банковские продукты на базе блокчейна.
Из 5000 опрошенных лишь 3% (150 человек) готовы воспользоваться банковскими услугами на блокчейне; 34% — готовы к этому лишь после того, как технология получит дальнейшее развитие и станет популярной; 63% не желают пользоваться такими решениями
Однако, уверены исследователи FOTON, сама технология никуда не делась — ее возможности исследуют 90% банков США и Европы. Кроме того, в декабре LinkedIn опубликовала отчет о динамично развивающихся профессиях, в котором говорится, что за год количество вакансий на связанные с блокчейном специальности вырос в США в 33 раза.
С оптимизмом смотрит в будущее глава крупнейшей биткоин-биржи Binance Чанпэн Чжао:
«У меня нет хрустального шара, но, смотря в будущее, я знаю точно, что блокчейн никуда не денется, никуда не денутся криптовалюты, и никуда не денется Binance. А наша индустрия станет еще сильнее», — отметил он.
Основатель венчурной фирмы Morgan Creek Энтони Помплиано считает, что со временем все акции, товары, облигации и валюты будут оцифрованы, а использование блокчейна незаметно станет повсеместным явлением.
Как бы то ни было, пройдет еще не один год пока технология блокчейн достигнет зрелости и станет повсеместно использоваться в различных сферах. До этого времени многие участники рынка потерпят фиаско или, в лучшем случае, кардинально пересмотрят свои бизнес-модели, сократив штат сотрудников.
Александр Кондратюк
Подписывайтесь на новости ForkLog в Facebook!
Нашли ошибку в тексте? Выделите ее и нажмите CTRL+ENTER
Как правильно готовить блокчейн / Хабр
За последние несколько месяцев мы в BitClave услышали о большом количестве новых блокчейн-проектов, применяющих блокчейн во всех мыслимых и немыслимых сферах. Надеюсь вы понимаете, что один лишь факт использования блокчейна в проекте не придает ему никаких суперспособностей. Мы проанализировали ситуацию и рады представить вам наше текущее видение того, как использовать блокчейн правильным образом. Эта статья поможем вам определить заслуживает ли проект вашего времени, денег и сил. Также в статье имеется упрощенный пример того, как блокчейн может быть внедрен в рынок интернет-рекламы.
Предметная область в которой вы собираетесь применить блокчейн должна иметь проблему потенциальной нечестности. Необходимо проанализировать потребности и сценарии взаимодействия участников, чтобы понять экономические выгоды участников от следования этим сценариям. Это позволит понять места, на которых участники готовы срезать ради своей выгоды.
Давайте рассмотрим участников рынка интернет-рекламы: Рекламодатели, Агентства, Рекламные сети, Издатели, Пользователи.
На представленной схеме вы можете заметить как именно действует каждый из участников. Рекламодатели платят Агентствам за управление их рекламными кампаниями и создание таргетированной рекламы. Агентства платят Рекламным сетям за действия пользователей (обычно клики или установки). Рекламные сети платят Издателям за показы и собирают информацию о Пользователях для оптимизации числа кликов к числу показов. Не редка ситуация когда Агентства и рекламные сети образуют довольно длинные цепочки, каждый из участников цепи съедает свою долю рекламного бюджета Рекламодателя.
Рекламные сети могут нечестно устанавливать цену для Агентств и Рекламодателей за действие (CPA = cost per action) и вообще цепочка голодных посредников явно скажется на бюджете Рекламодателя не лучшим образом. В дополнение, неявный сбор информации о Пользователях даст не просто неполную, a также некорректную информацию, которая в конечном итоге приведет к удорожанию CPA. Все эти проблемы мы и попробуем решить в этом примере путем добавления блокчейна.
Пожалуйста, перестаньте рассматривать блокчейн как децентрализованное синхронизируемоме надежное хранилище — все эти атрибуты вторичны. В первую очередь блокчейн – активный участник отношений. Он действует честно настолько, что ни у кого не остается сомнений в его беспристрастности. Например, честность блокчейна на консенсусе доказательства работы (Proof-of-Work) обеспечивается большим числом майнеров, чьё основное желание – зарабатывать деньги.
Давайте посмотрим на самый первый и самый известный из современных блокчейнов – Биткоин. Вы можете отправить запрос блокчейну Биткоина (точнее сети Биткоин) на перевод BTC с вашего адреса, на любой другой. Блокчейн Биткоина (точнее майнеры сети Биткоин) проверят два конкретных условия: подпись транзакции с целью определить являетесь ли вы владельцем адреса и условие достаточности баланса вашего адреса для проведения этого перевода. Если одна из этих проверок провалится, блокчейн откажет вам в проведении транзакции. Блокчейн Ethereum способен выполнять произвольные проверки, который смогут предусмотреть разработчики смарт-контрактов – таким образом он является более продвинутым доверенным лицом, обладающим к тому же полнотой по Тьюрингу.
Добавление нового действующего лица в какую-либо область ведет к полному пересмотру сценариев взаимодействия всех участников. Пользователи будут заполнять свои профили в Блокчейне, а также верифицировать часть информации через региональные сервисы посредством цифровых подписей. Часть Рекламодателей начнут создавать объявления и пополнять балансы рекламных кампаний прямо в Блокчейне. Рекламные сети получат возможность брать рекламные объявления из Блокчейна и показывать их Пользователям через площадки Издателей и позже просить Блокчейн произвести выплаты за пользовательские действия (клики или инсталлы). Блокчейн будет платить за действия не только Рекламным сетям, но и самим Пользователям, любезно согласившимся предоставить о себе информацию для таргетинга.
После добавления блокчейна как нового участника в некую систему необходимо заново проработать сценарии работы всех участников, не забыв при этом подкрепить эти сценарии реальными экономическими мотивами участников. Также необходимо предусмотреть защиту системы от неподобающего поведения участников, чтобы даже экономически невыгодные действия некоторых из них не могли помешать взаимодействовать остальным участникам.
Что насчёт фрода в системе? Каждое действие (клик/инсталл) пользователя будет обрабатываться разлитыми событиями от Рекламодателя: переход_пользователя, регистрация_пользователя, покупка_пользователем. Платформа предполагает оценку Рекламных сетей, вынуждая их соревноваться друг с другом за улучшение статистических показателей. Любые кликеры при отсутствии борьбы с ними со стороны Рекламной сети будут портить рейтинг Рекламной сети, поскольку к желаемым событиям Рекламодателя в итоге не приведут, в итоге рекламодатель больше этой Рекламной сети бюджета не выделит. Да, рекламные кампании будут позволять Рекламодателям/Агентствам настраивать пропорции бюджета по Рекламным сетям. Резюмируя: система проектируется таким образом чтобы заставить Рекламные сети бороться с фордом и конкурировать друг с другом на этой основе.
Зачем этот ваш блокчейн нужен самим рекламным сетям? Рекламные сети получат возможность индексировать и ранжировать для себя объявления из Блокчейна чтобы сравнивать их со своими объявлениями. В случае, если конкретному пользователю окажется выгоднее показать объявление из блокчейна, чем то которое получено из другого источника – Рекламная сеть сможет заработать больше устроив показ объявления из Блокчейна. Со временем объявления в блокчейне вытеснят остальные объявления за счет чистого таргентинга, который выйдет просто дешевле.
Зачем пользователи будут у вас регистрироваться? Это может быть частью рефератной программы веб-сайтов, поисковиков, браузеров – убедить пользователей и провести их сквозь регистрацию. Также участие в системе позволит пользователям явно выбирать какую информацию раскрывать Рекламным сетям, что приведет к интересным объявлениям и вознаграждениям за предоставление информации. Неявный сбор информации о пользователях будет все жестче пресекаться на уровне браузеров и операционных систем.
В этой статье мы пытались резюмировать наше текущее видение о правильном использовании блокчейна, чтобы помочь вам отличить проекты, на которые стоит тратить своё время, деньги и силы. Предметная область должна содержать проблему потенциальной нечестности и добавление блокчейна как активного и абсолютно честного участника взаимоотношений должно решать эту проблему. Необходимо предусмотреть экономическую выгоду для каждого участника взаимоотношения для каждого из сценариев его работы и учесть возможные варианты атак на систему, с целью помешать её работе.
P.S. Я там говорю об абстракции Биткоина, не вдаваясь в подробности реализации UTXO модели. Абстракция Биткоина хранит балансы кошельков и позволяет их изменять путем проведения транзакций, реализация Биткоина чуть более упоротая, но целью статьи не было раскрытие деталей реализации Биткоина 🙂
От анонимности до африканских бизнесменов. Как блокчейн меняет мир :: РБК.Крипто
Новая технология уже давно связана не только с Bitcoin. Известные компании тестируют ее возможности в разных отраслях. Сбербанк закупает блокчейн-банкоматы, Volvo инвестирует в стартап Circulor, а в Испании блокчейн поможет отслеживать производство сидра
Блокчейн не станет панацеей, но за ним будущее. Такой позиции придерживаются все большее количество людей. Сегодня мы наблюдаем за началом блокчейнизации, а в ближайшие годы нас ожидает тотальное проникновение технологии во все отрасли. Доказательство тому — уже произошедшие изменения в повседневной жизни.
Приватность, которую мы заслужили
Правительства всего мира с каждым днём ужесточают контроль над гражданами. При этом личная свобода неразрывно связана с конфиденциальностью финансовых транзакций. Это и привело к тому, что 31 октября 2008 г. Сатоши Накамото выпустил «Белую книгу» биткоина. Автор надеялся, что мир вступит в новую эру финансовой конфиденциальности после экономического кризиса 2008 года. В этом должна была помочь новая технологическая сеть, называемая блокчейном. Поскольку транзакции в сети выполняются через открытые ключи, люди могут совершать операции, не раскрывая свою личность. Блокчейн способен уберечь пользователей от мошеннических атак, чтобы ни говорили противники криптовалют. Это подтверждает отчет Rand Corporation:
«В то время как токены интуитивно кажутся заманчивыми для злоумышленников из-за их возможности сохранения анонимности, существует мало доказательств, подтверждающих это утверждение», сообщили в компании.
Более того, в опубликованном в 2018 г. докладе «Оценка риска финансирования терроризма на национальном уровне» по-прежнему указывается на банковскую систему как основной способ содействия финансированию терроризма.
С развитием технологии блокчейн мы вступаем на порог суверенной финансовой системы, в которой ее члены полностью контролируют свои активы. Системы, в которой есть свобода и возможности истинного экономического равенства для всех. Блокчейн позволяет зашифровать юридические документы, медицинские записи, информацию о платежах или идентификационные данные. Эту информацию невозможно скопировать без явного разрешения владельца.
Меньше бюрократии
Многие государства используют блокчейн уже сегодня. Грузия стала пионером и еще с 2015 г. блокчейнизировала регистрацию недвижимости. А в марте 2020 года появилась информация о планах внедрения этой технологии в образовательную систему страны. Предполагается, что государственные службы будут хранить данные о дипломах выпускников: работодатель сможет легко подтвердить подлинность документа об образовании. Поможет в этом компания Input Output Hong Kong. Вслед за Грузией внедрили блокчейн в сферу недвижимости Швеция, Гана и Гондурас. Соединенное Королевство пока исследует возможности токенизации отрасли в стране.
Южная Корея активно развивает блокчейн. Пусан, второй по величине город страны, запустил приложение для идентификации, которое использует блокчейн для проверки информации граждан. Правительство Южной Кореи планирует инвестировать более 48,2 млрд долларов в эту и другие технологии к 2025 году. Цель страны — оцифровывать все отрасли промышленности в наступающую постпандемическую эпоху. По сообщению ZDNet Korea, президент Мун Чжэ-ин высоко оценил «несколько преимуществ», которые новая промышленная революция может принести стране:
«Четвертая промышленная революция и цифровая цивилизация — это будущее человечества, которое уже началось. Стратегия национального развития для продвижения в тренде является корейской версией новой сделки», — сказал Мун Чжэ-ин.
Активно развивается блокчейн и в Америке. Здесь исследуют возможности для отслеживания продаж рецептурных лекарств и жизненного цикла авиационных деталей, а также управления цифровыми идентификационными данными.
В России технологию используют для проведения голосования. В сентябре 2019 г. провели электронное голосование в Мосгордуму, а 1 июля вся страна выбирала вносить или нет поправки в Конституцию именно с помощью блокчейна.
Доступность финансовых услуг для развивающихся стран
Сейчас всю рыночную экономику строят посредники: от определения личности людей до создания документов и делопроизводства. Пока они справляются, но с каждым днем становится все больше проблем: уровень киберпреступности растет, а миллиарды людей исключены из мировой экономики.
В 2017 г. почти 2 миллиарда человек по всему миру не имели доступа к финансовым услугам, согласно данным Всемирного банка. Отсутствие места для сбережений и неспособность получить банковскую карту, оформить кредит или воспользоваться базовыми услугами, такими как страхование жизни, — серьезный недостаток. Эти люди фактически не могут участвовать в местной экономике — по крайней мере, значимым образом.
Доступ к финансовым услугам позволит таким гражданам улучшить свою жизнь, увеличить доходы своих семей и даже сделать сбережения на трудные времена. Это поднимет качество жизни каждого человека. Предприниматели смогут получить доступ к кредитам, чтобы начать свой бизнес, а семьи — приобрести землю и скот, обеспечить свою безопасность и крышу над головой. Финансовая доступность поможет создать рабочие места, поскольку малые предприятия расширяются и нуждаются в дополнительном персонале. Речь об огромной части мирового населения, которая может существенно стимулировать экономику.
Но почему цифровая революция даст развивающимся странам, таким как африканские, финансовую независимость? Жители континента, по сути, обошли развитые страны в использовании мобильных телефонов. В странах Африки мобильники распространены больше, чем электричество, и стали привычным инструментом для бизнеса. Люди фактически носят в карманах свои банковские счета. Эксперты полагают, что со временем Африка может стать лидером по использованию криптовалют. Миллениал из Уганды говорил в интервью BBC: «Я проверяю свой биткоин-счет с помощью мобильного телефона так часто, как могу».
Блокчейн распространяется на все сферы жизни: игровая индустрия, маркетинг и даже покупка продуктов. Стартапы по отслеживанию блокчейн помогают отказываться от детского труда. Безусловно, сейчас мы видим лишь ранние этапы внедрения технологии в повседневность. Но представьте, каким будет мир, в котором нет бюрократии?
— Сбербанк допустил возможность выпуска привязанного к рублю токена
— Голосование по поправкам к конституции РФ. Зачем было внедрять блокчейн
— Ripple: США ждет катастрофа в случае промедления с признанием блокчейна
Больше новостей о криптовалютах вы найдете в нашем телеграм-канале РБК-Крипто.
Как блокчейн изменит торговлю
Криптоэнтузиасты и эксперты в области блокчейн-технологий по всему миру едины во мнении, что блокчейн-технология может изменить будущее. Первой сферой, которую затронут изменения, по мнению экспертов, будет торговля. Это связано с тем, что информация, поступающая в блокчейн и скреплённая в блоки данных, уже не может быть удалена или изменена, в блокчейн физически помещается больше данных, а также он общедоступен, что делает из этой технологии прекрасного гаранта прозрачности данного бизнеса.
Это предоставляет торговым сетям поставки замечательную возможность по увеличению собственной эффективности, повышению продуктивности, и сокращению временных интервалов, которые требуются на совершение всех торговых операций. Например: любая вещь отслеживается ещё с фабрики, или обрабатывающего предприятия, где указываются материалы, использованные при создании данной вещи, их источник и пропорции, затем, она попадает к ритейлеру, и, в конечном счёте, на прилавок, откуда, в свою очередь, она поступает к покупателю — финальному звену торговой цепи. Вместе с приобретённой вещью, покупатель получает и всю информацию о данной вещи. Информация максимально прозрачна, что позволит улучшить пользовательский экспириенс и получить покупателю больше данных для отзыва о данном изделии. Отзыв также может быть внесён в блокчейн.
Некоторые ключевые зоны интереса в торговых сетях, где блокчейн-технология может произвести серьёзные изменения:
-
Отслеживание инвентаря - Многие компании имеют огромное количество различного инвентаря, за которым нужно вести учёт, который, если его вести мануально, может попросту содержать ошибки, неточности, а также попросту отчёт можно потерять или случайно удалить. С блокчейном таких проблем можно избежать — данные всегда будут в доступном для всех месте, в полной сохранности.
-
Отслеживание товара - С помощью этой децентрализованной технологии, производители, а также владельцы торговых сетей, могут в реальном времени отслеживать движение своего товара по сети поставок, что предоставит высокую точность и эффективность для бизнеса.
-
Управление складом — Управление складом, менеджмент, отслеживание поступающих и уходящих предметов — всё это станет проще с блокчейном. Владельцам складов будет доступна информация о товарах в наличии в реальном времени, так что шанс на сокрытие любого мошенничества или возникновения неточности будет минимизирован.
-
Интеграция со всей торговой сетью — Часто, основной проблемой торговых сетей является то, что это действительно сеть, притом, очень запутанная. С блокчейном, любой участник данной сети сможет отслеживать и обмениваться данными с любым узлом. Это добавит в сеть больше прозрачности, ясности и упорядоченности.
-
Распространение информации — Что наиболее важно, имея под рукой блокчейн, где записана вся деятельность торговой сети, компания может распространить нужную информацию для всех её участников.
Зачем всё же нужно внедрять блокчейн в торговые сети?
-
Учёт данных — Каждый участник сети ответственен за свои действия, и вся его деятельность может быть отслежена и изучена любым другим участником.
-
Прозрачность — Вся информация, которой заинтересуется главный узел сети, может быть легко найдена, без любого посредничества и возможности укрыть данные.
-
Масштабируемость — Блокчейн позволяет хранить в себе бесконечное количество блоков, то есть, абсолютно неважно, насколько сильно разрастётся компания — данные всегда будут доступны и надёжно сохранены.
-
Инновационность — Обеспечиваемая высокой технологией, торговая индустрия будет процветать.
Какие имеются отдельные преимущества внедрения блокчейна в торговую сеть?
Для поставщика: Поставщик может в реальном времени отслеживать всю информацию, он мгновенно получает корректировки и может отправлять их самостоятельно всем участникам сети. Не нужно будет держаться за бюрократию, так как все данные будут всегда в свободном доступе.
Для продавца: Продавцы могут более точно рассчитывать время поставки, они также могут делиться нужной информацией с остальными участниками сети.
Для партнёров: Партнёры могут следить за проектом и корректировать его деятельность. Это позволяет им на ранних стадиях вносить поправки в бизнес.
Для покупателя: Покупатели могут отследить все данные о приобретаемом товаре. Не будет места голословным утверждениям продавца.
анализ ценности технологии для инвестиционных банков / Блог компании Wirex / Хабр
В условиях постоянной гонки за повышением прибыльности, инновации вроде Блокчейн могут стать спасательным кругом для инвестиционных банков.
Подобно многим другим новым технологиям Блокчейн был встречен широкой публикой с энтузиазмом. Некоторые аналитики уже дают положительные оценки росту эффективности, экономии миллиардов долларов и существенному снижению рисков в сфере интернет-технологий, ставших следствием применения технологии. Тем не менее нельзя не отметить излишний ажиотаж, возникший вокруг таких проектов.
В связи с этим возникает вопрос: «Какие реальные преимущества, экономию и бизнес-приложения предлагает Блокчейн?»
Чтобы ответить на этот вопрос мы объединили наши усилия с одной из передовых аналитических фирм на рынке бенчмаркинга McLagan, входящей в состав корпорации Aon plc (крупный международный поставщик услуг риск-менеджмента, страхования, инвестиционного банкинга), для проведения глубокого анализа и фактической оценки потенциала сокращения издержек и других преимуществ, которые могут быть достигнуты в результате внедрения технологии.
Причины шумихи вокруг Блокчейн
Блокчейн, как часто обобщенно называют все технологии распределенных реестров, представляет собой новый тип систем организации базы данных, позволяющий широкой группе участников получать практически одновременный совместный доступ к общим данным, с беспрецедентным уровнем конфиденциальности.
Сегодня сверка и согласование данных (реконсиляция) лежит в основе большинства бизнес-моделей. Однако в силу того, что каждая компания самостоятельно поддерживает актуальность данных в своих системах, многие процессы протекают медленно и неэффективно из-за потребности постоянного двустороннего обмена данными между различными сторонами для решения тех или иных задач. Блокчейн может заменить многочисленные и последовательные модели согласования данных, предложив более эффективный и целостный подход, в рамках которого реконсиляция становится неотъемлемой частью общего процесса обработки транзакций.
Возможности
Перед банками открывается новая перспектива переноса главных операционных и финансовых систем, а также систем оценки рисков на новую платформу коллективной работы с данными на базе Блокчейн.
Это позволит им серьезно упростить процессы, отказавшись от большого количества действующих процессов и элементов информационной инфраструктуры. Однако даже несмотря на то, что достижение подобных конечных результатов займет время и потребует тщательной проработки, перспективы значительного снижения затрат и повышения эффективности будут и дальше подогревать интерес к технологии и ее финансированию.
Несмотря на то, что сегодня широкой публике уже доступны некоторые прогнозы относительно потенциала Блокчейн, мы полагаем, что лидеры рынка капиталов нуждаются в более детальном анализе перспектив внедрения технологии для принятия решений по собственным блокчейн-кейсам. Особенно важны подобные оценки для топ-менеджеров компаний, которым необходимо своевременно оценивать потенциал появляющихся на рынке новых технологий и принять решение о необходимости их внедрения. Как правило, такие решения должны учитывать как особенности систем предыдущего поколения, так и требования регулирующих органов. Кроме того, руководство должно уметь убедить все заинтересованные стороны в правильности своего выбора. Как определить, что ставка на Блокчейн обеспечит конкурентное преимущество, а конечный результат не разочарует акционеров?
Наше исследование
Чтобы получить полное представление о том, как применение Блокчейн может повлиять на операционную деятельность банков, наша компания, совместно с McLagan, провела исследование. Поставщик аналитики рынков капитала мирового класса McLagan ежегодно проводит комплексную финансовую оценку крупнейших банков. Компания использует детальные данные по расходам, получаемые напрямую из главных книг банков-участников.
В нашем исследовании использовались полученные McLagan совокупные данные об операционных расходах 8 крупнейших (по уровню дохода) инвестиционных банков мира. Предоставленная информация была проанализирована с помощью фирменной модели Accenture High Performance Investment Bank. Это позволило нам получить понимание того, какие показатели и операционные метрики инвестиционных банков могут испытать на себе наибольшее воздействие технологии.
Диаграмма 1. Оценка влияния Блокчейн на деятельность инвестиционных банков (по итогам анализа с помощью фирменной модели Accenture High Performance Investment Bank):
Результаты
Анализ более 50 метрик операционных расходов, предоставленных McLagan, с помощью нашей модели High Performance Investment Bank позволил выделить четкие индикаторы. В качестве краткой характеристики нашей модели ниже мы приведем 4 примера показателей влияния Блокчейн на операционную эффективность.
- 70% потенциальное снижение затрат на основную финансовую отчетность
В результате оптимизации качества данных, прозрачности и внутреннего контроля. - 30-50% потенциальное снижение затрат на соответствие требованиям нормативно-правового регулирования
Как на уровне продуктов, так и в общем, благодаря повышению прозрачности и простоте перепроверки финансовых транзакций. - 50% потенциальное снижение затрат на централизованную деятельность
Такую, как KYC и оформление новых клиентов благодаря улучшенным механизмам цифровой идентификации личности и упрощению совместного доступа к клиентским данным для всех участников процесса. - 50% потенциальное снижение затрат на бизнес-операции
Деятельность специалистов поддержки и контроля сделок, клиринг и взаиморасчеты, расследования, могут быть полностью или частично автоматизированы за счет снижения потребности в таких ключевых на сегодняшний день элементах, как сверка и подтверждение сделок и анализ ошибочных сделок.
Как 8 банков могли бы сэкономить более 8 миллиардов долларов
Результаты показывают, что в условиях современной структуры расходов, участники исследования могли бы сэкономить 8 млрд долларов при текущем совокупном показателе расходов в 30 млрд долларов. Эта оценка не включают в себя потенциальные затраты и инвестиции на внедрение Блокчейн. Иными словами, общая экономия для всех 8 банков могла бы составить 27 процентов.
Критерии
В качестве ориентиров для нашего исследования мы воспользовались набором консервативных критериев, включающих в себя следующие допущения:
- Сетевой эффект проявится на развитых рынках только к 2025 году.
- Органы нормативно-правового регулирования разрешат практическое внедрение блокчейн-решений и отказ от инфраструктуры предыдущего поколения. После кредитного кризиса 2008 года, регуляторы едва ли захотят существенно сокращать роль относительно новой и усиленной клиринговой инфраструктуры (автоматизированная расчетная палата, системы валовых расчетов в реальном времени, единые контрагенты клиринга, центральные депозитарии) не будучи абсолютно уверены, что блокчейн-сети представляют собой безопасную, защищенную и устойчивую альтернативу.
- Исследование не учитывает влияния расходов на содержание зданий и сооружений.
- Исследование учитывает различия между фиксированными и переменными затратами.
На данном этапе эти предположения достаточно консервативны. Согласно именно первоначальным оценкам, целая группа статей расхода испытала на себе «основательное» влияние технологий, то есть экономия по ним составила примерно 50%, и этот факт отражен на инфографике. На самом деле наши ранние кейсы, экспериментальные концепции и тесты говорят о наличии предпосылок для дальнейшего увеличения показателей экономии в этих статьях до более чем 70%, в результате чего они могли бы перейти категорию «трансформация». В свете этого ежегодная экономия расходов потенциально может составить 38% от общей суммы или около 12 млрд долларов. Взяв среднее от этого значения и ранее найденных 8 млрд долларов, мы получаем величину ежегодной экономии 10 млрд долларов.
Важно отметить, что в случае возникновения серьезных проблем или препятствий со стороны регулятора, затрудняющих широкое распространение Блокчейн, эта экономия может быть так и не достигнута.
Не удивительно, что с учетом прогнозируемой существенной экономии, практика финансирования Блокчейн-проектов в секторе финансовых услуг набирает обороты. Это особенно актуально сейчас, когда привлечение капитала становится все более сложной задачей, а традиционные методы повышения прибыльности становятся все менее эффективными. По прогнозам, сделанным в сентябре 2015 года независимой исследовательской организацией Aite Group, специализирующейся на аналитике в сфере финансовых услуг, предполагалось, что игроки рынка капиталов потратят на Блокчейн в 2016 году около 125 миллионов долларов. Всего девять месяцев спустя, независимая отраслевая аналитическая фирма Greenwich Associates в своем исследовании удвоила эту сумму более чем в 2 раза, спрогнозировав общий объем вложений на уровне примерно 280 млн долларов. Это говорит не просто о росте инвестиций в Блокчейн со стороны представителей отрасли, но и о том, что оценивать это рост даже приблизительно становится невозможно в силу постоянного увеличения его темпов.
- 280 млн долларов
Сумма, которую игроки рынка капиталов потратили на Блокчейн, в два раза превысившая расчеты экспертов. - 30%
Потенциальная среднегодовая экономия
Выводы и оценки
Отдельные элементы Блокчейн, такие как криптографические хеши, распределенные базы данных и построение консенсуса, сами по себе не новы. Однако их сочетание создает очень эффективную новую форму передачи данных и активов, способную устранить потребность в посредниках, сторонних центральных органах и дорогих процессах реконсиляции.
После мирового финансового кризиса 2008 года, индустрия рынков капитала столкнулась с беспрецедентной лавиной съедающих доходы проблем, во многом обусловленных ужесточением регуляторных требований, ростом стоимости ликвидности и потребности в распределении капитала, а также снижающихся доходах.
По нашим подсчетам, инвестиционные банки тратят около двух третей своих IT-бюджетов на поддержку старой инфраструктуры, каждый год вкладывая дополнительные миллиарды долларов в проекты по сокращению расходов.
Иными словами, банки вкладывают слишком много времени, усилий, ликвидности и капитала в поддержку процессов, не предлагающих существенного увеличения прибыльности организации. В результате банки, центральные банки, биржи и клиринговые организации прилагают все усилия для скорейшего изучения возможностей Блокчейн как инструмента воздействия на фундаментальные показатели расходов, позволяющего им вернуться к показателям прибыли, достаточным для повышения уровня прибыльности капитала.
Следует, однако, внести ясность и подчеркнуть, что мы не считаем Блокчейн панацеей, способной излечить все болезни инвестиционного банкинга. Во многих случаях, структуры на основе традиционных баз данных или процессов способны показать схожие результаты без необходимости финансировать разработку блокчейн-решения и преодолевать связанные с ней трудности. В качестве примеров можно привести такие области, как внутреннюю автоматизацию, сокращение штата, аутсорсинг и оффшоринг.
Тем не менее существуют наглядные свидетельства в пользу того, что Блокчейн способен радикально снизить, если не полностью устранить, многие существующие клиринговые и взаиморасчетные процессы.
Экономия миллиардов долларов в год
Технология способна серьезно повлиять на процедуры подтверждения сделок, реконсиляции, управления наличностью, оптимизации активов и других бизнес-процессов, обходящихся компаниям в миллиарды долларов в год.
Сокращение временных рамок
Технология создает предпосылки для оптимизации взаиморасчетных процедур, позволяя существенно сократить или полностью устранить принятые в индустрии временные интервалы, полностью поддерживая при этом деятельность маркет-мейкеров.
Влияние на динамику расходов
В конечном счете Блокчейн может сделать возможным отказ от большого количества элементов современной операционной инфраструктуры, качественно улучшая ключевые процессы и оказывая серьезное влияние на динамику расходов.
Блокчейн-джин уже вылетел из бутылки
Энтузиазм, который выражают по поводу Блокчейн компании из сферы финансовых услуг и в особенности среди игроков рынков капитала, несомненно, имеет под собой все основания. Конечно, мы не думаем, что технологии удастся полностью устранить посредников или заменить текущую экосистему. И в то же время мы убеждены, что ее влияние действительно преобразует весь рынок.
Блокчейн часто сравнивают с Интернетом. Восприятие новых интернет-технологий позволило компаниям создать совершенно новые продукты и бизнес-модели, и плоды этих трудов не разочаровали всех участников развития нового рынка. Конечно, многие модели оказались в итоге несостоятельными и принесли немалые убытки. Похожим образом и Блокчейн бросает игрокам сферы финансов вызов, предлагая им серьезно пересмотреть процессы работы с данными. Повернуть этот процесс вспять уже не представляется возможным: новая технология побуждает инвестиционные банки к переосмыслению бизнес-моделей, операционных процессов и оценки показателей прибыли как в краткосрочной, так и в долгосрочной перспективах. Тем не менее руководителям следует сохранять бдительность и стремиться минимизировать риски, тщательно контролируя процесс внедрения Блокчейн-решений. Такой подход позволит избежать дорогих ошибок и в то же время обеспечить хорошую позицию для получения всех преимуществ, предлагаемых технологией.
Однако чтобы ожидание превратилось в реальность, инвестиционным банкам следует по-новому взглянуть на стратегии, подходы к оптимизации рабочей силы, требования к дата-центрам, хранению данных, организации сети и безопасности. Как и в случае с Интернетом, первопроходцы получат не только наибольшее преимущество в плане оптимизации расходов, но и доступ к совершенно новым каналам доходов и в целом сильнее остальных ощутят на себе все преимущества Блокчейн. Изучив прошлый опыт, инвестиционные банки уже выработали определенные стратегии в отношении новых технологий. Как правило, они включают в себя открытие внутренних лабораторий, участие в отраслевых консорциумах и финансировании фирм, вложивших все свои ресурсы в работу с Блокчейн, а также создание вместе с ними совместных предприятий.
Перед компаниями вырисовывается заманчивая перспектива, привлекающая очень много внимания, инноваций и инвестиций. Готовы ли они «поймать момент»?
Следующие шаги: выработка плана действий
Применение технологии Блокчейн с максимальной пользой начинается с выработки плана действий, позволяющего ответить на следующие вопросы:
Корректировка стратегии
Какова ваша стратегия постепенного вывода бизнеса на следующий уровень? Какое сочетание инноваций станет основным инструментом преобразований? Где вы обнаружите для себя большую ценность?
Корректировка инвестиционных планов
Насколько ваши многолетние инвестиционные планы сочетаются с доступными технологиями, возможностями и предложениями рынка и учитывают постоянное развитие ситуации? Ограничено ли ваше инвестиционное мышление текущими возможностями или ваш взор устремлен в будущее в поисках новых решений?
Знания
Правильно ли вы выбираете отраслевые, регуляторные и межотраслевые инновационные форумы в качестве источников информации, позволяющих вашей компании оставаться активным игроком, вовремя замечать появление новых технологий и применять их в своих целях?
Изучение
Занимались ли вы изучением того, какие человеческие и технологические ресурсы требуются для поддержки систем на базе технологии распределенных реестров?
Готовы ли вы ощутить на себе все преимущества Блокчейн?
Результаты нашего исследования говорят о том, что технология Блокчейн может помочь существенно улучшить работу вашей организации.
Инвестиционным банкам, желающим извлечь максимум пользы от применения Блокчейн для начала требуется преобразовать многие элементы действующей системы. Впрочем, некоторые лидеры отрасли уже сумели продемонстрировать определенные возможности технологии.
Методичный и последовательный подход в сочетании с четким видением позволит вам получить эффективную, безопасную и экономичную операционную модель, в долгосрочной перспективе позволяющую существенно увеличить прибыльность, экономию и получить конкурентное преимущество.
Блокчейн и электроэнергетика / Хабр
Привет, в данной статье я попытаюсь популярно описать, почему применение блокчейна в электроэнергетике назрело, и почему в некоторых странах этот кейс активно продвигается.
Все данные, на которых я основывал свои суждения, я брал из открытых источников. Я допускаю их неточную интерпретацию и с удовольствием восприму возражения или уточнения. Так что не стесняйтесь — пишите комментарии.
Часть первая. Пара слов о нём самом…
О блокчейне… Реальных кейсов применения (кроме криптовалюты) которые прошли бы испытание боем можно сосчитать на пальцах одной руки. Криптовалюта это тот пример, когда индустрия выросла настолько (общая капитализация по данным coinmarketcap.com составляет более $200млрд), что госсектор и крупные корпорации просто не могут игнорировать эту тему. И на волне хайпа криптовалют растет значимость и самой технологии распределенного реестра. Укрепилось понятие смарт-контрактов, возникают такие дисциплины как аудит смарт-контрактов, развиваются смежные технологии и технические и аппаратные средства, обеспечивающие поддержку этой темы.
Системы, куда инноваторы предлагают внедрить технологию распределенного реестра имеют одну общую характеристику. Эта система должна состоять из множества однородных элементов с ограниченным количеством ролей. Например, продавец-покупатель, поставщик-потребитель. Причем число элементов в каждой роли может быть сколь угодно большое. Основные бенефиты от использования этой технологии такие:
- Повышение доверия между участниками в полностью недоверенной среде.
- Минимальный порог вхождения
- Возможность масштабироваться по мере развития бизнеса, то есть проблема роста сведена к минимуму
Представим на секундочку, что мы захотели сделать систему электронных денег. Ну вот вдруг так захотелось, вот такую инновацию )) И вот вам два ключевых вопроса:
- Какого уровня охвата систему мы хотим делать? Сайт для друзей для взаиморасчетов? Город? Страна? Весь мир?
- Как завоевать доверие у клиентов?
Ответ на первый вопрос очень сложный. Чем масштабнее систему хочется делать, тем больше усилий придется вложить в её проектирование (имеется ввиду классический способ реализации: централизованная система). Но ведь и об окупаемости надо думать. А вдруг не взлетит? А с другой стороны, если сделать в духе сайт для друзей, то придется столкнуться с проблемой роста.
Ответ на второй вопрос также очень сложный, так как ничто кроме твоего имени и репутации не позволит тебе завоевать доверие у твоих клиентов.
Блокчейн позволяет более простым и изящным способом решить обе эти задачи.
- Не надо задумываться о масштабе. Подумай исключительно о бизнес-логике. Какие роли должны быть в твоей системе? Какие у них сценарии? И запрограммируй их в смарт-контракте.
- Не надо задумываться об уровне доверия. Доверие обеспечивает сама технология.
Запомним эти два пойнта и перейдем к описанию индустрии электроэнергетики.
Часть вторая. Электроэнергетика
Особенность рынка
Ключевой особенностью рынка электроэнергии является прежде всего тот факт, что электроэнергию как товар нельзя (читай — сложно) хранить в промышленных масштабах.
Такие проекты конечно же есть. Например, гидроаккумулирующие электростанции существуют и развиваются с самого начала электрификации земли.
Но только вот почему-то единственная в нашей стране Загорская ГАЭС работает судя по всему в убыток и не ощущает поддержки со стороны рынка (источник).
Таким образом задача участников рынка заключается в том, чтобы научиться потреблять ровно столько электроэнергии сколько вырабатывается. А вернее — наоборот, на определенный период времени надо выработать в идеале ровно столько сколько будет потреблено.
Произведеноt = Потребленоt + DELTAt
Здесь t — это период времени, в пределах которого мы рассматриваем производство и потребление. Общая задача — свести DELTAt к нулевому показателю.
Посмотрим отчет Администратора Торговой Системы (это организация в РФ, которая занимается регулированием рынка электроэнергии), например за 2017й год. Отношение спроса к предложению на Рынке на Сутки Вперед (про РСВ — позже) составляет от 86,4% (европейская зона, июль) до 94,5% (сибирь, апрель). То есть в среднем потери электроэнергии (та самая DELTAt) составляют около 10%. Если говорить в абсолютных цифрах, то по данным МинЭнерго потери в РФ за 2017й год составили около 14 млрд кВтч. Сколько это в деньгах?…
Классические механизмы
В текущем энергетическом рынке сформированы следующие принципы, направленную на минимизацию потерь:
- Наряду с торговлей непосредственно электроэнергией осуществляется торговля мощностями. Что позволяет потребителям быть уверенными в том, что условно завтра в условной розетке нужное напряжение будет.
- Необходимо уметь планировать потребление электроэнергии. То есть каждый покупатель подключенный тем или иным образом к электросети, должен отправлять заявки на определенный объем электроэнергии, который он собирается потратить в следующий отчетный период. У нас сразу в голове рождается картинка в виде какой-то информационной системы куда каждый потребитель должен раз в… (месяц, неделю, день?) вносить план потребления. Согласитесь — это выглядит нереалистично. Я лично не могу себя заставить 25го числа каждого месяца просто снять показания счетчика. А тут надо думать, считать, планировать. А потом еще этот план исполнять!
- Последний ключевой механизм — это введение штрафных санкций за потребление сверх нормы. Ну блин — это уже слишком!
Структура рынка в РФ
Для реализации данных ключевых принципов рынок РФ разделен на 2 части: оптовый (далее ОРЭМ) и розничный.
Оптовый рынок состоит из порядка 600 участников. Порог вхождения в оптовый рынок дорогой и туда имеет смысл входить только крупным предприятиям, энергосбытовым компаниям и крупным поставщикам и импортерам.
Все три вышеописанных ключевых принципа реализуются именно на оптовом рынке. В рознице планирования нет. За население страны его осуществляет энергосбытовая компания на основании информации о числе подключенных абонентов и их ежемесячном расходе планах подключения новых домов и т.д… Естественно, ей приходится закладывать в план больше на случай непредсказуемых пиков, что естественно сказывается на цене на электроэнергию в большую сторону.
Конкретно, процесс выглядит следующим образом:
- Порог вхождения в оптовый рынок крайне высокий и его осилить под силу только крупным предприятиям;
- Торги электроэнергией осуществляются на так называемом Рынке на Сутки Вперед;
- Потребители должны в соответствии с “Регламентом допуска к торговой системе оптового рынка электроэнергии” подать заявку на потребление через специализированное ПО “АРМ Участника ОРЭМ”
- Заявка описывает почасовой план потребления энергии.
- По итогам заявок на потребления формируются заявки на поставку электроэнергии и формируется итоговая цена
- Кроме активностей на РСВ участники могут заключать Прямые Договора друг с другом.
- Также вводится такое понятие как Балансирующий рынок, на котором фиксируются обязательства по итогам торгов и с учетом реальных мощностей.
- За потребление сверх лимита указанного в заявке в отношении потребителей вводятся штрафные санкции;
И что не так то?
Процесс может быть сейчас (по сравнению с нулевыми, когда рынок зарождался) максимально автоматизирован, но тем не менее предполагает человеческое участие, что сильно ограничивает возможности по
а) сокращению цикла планирования и
б) по масштабовированию.
С этим и связано ограниченное число участников ОРЭМ. Ну и также с ограничением единой информационной системы, где обрабатываются заявки. Систему на 1000 участников сделать и поддерживать проще нежели систему массового обслуживания сотни миллионов и более абонентов.
Еще раз подчеркну, что планирование на сутки и крупными порциями приводит к излишним потерям.
И еще один недостаток текущей системы — сложность ввода в систему мелких владельцев непостоянных источников энергии: солнечных батарей и ветряных установок. Птицы и червяки, … уж простите 🙁
Что же делать?
Очевидно, что эту проблему можно решить с помощью системы, удовлетворяющей следующим условиям:
- Возможность выполнения планирования потребления и поставки на микроуровне (мелким участникам мелкими порциями). Это позволит снизить цену на электроэнергию для конечного потребителя за счет отсутствия тех самых перестраховок и позволит ввести “в дело” мелких поставщиков электроэнергии (в том числе владельцев электромобилей)
- Возможность сокращения цикла планирования, что позволит снизить вероятность ошибки и последствия ошибки в прогнозе потребления электроэнергии, соответственно снизить штрафные санкции и необходимость существенной перестраховки.
- Как следствие п.1 и п.2: должна быть обеспечена автоматизация планирования. Ну не будет каждый домовладелец (физлицо) осуществлять ручное планирование своего потребления каждый час. А если доверить это роботу, то планирование можно осуществлять хоть каждую минуту. Алгоритм работы робота может быть чем-то похож на алгоритм прогнозирования колебания графиков на биржах.
- Возможность горизонтального масштабирования системы с возможностью её опытного внедрения в отдельную коммуну, отдельный регион или даже целую страну.
- Должно быть обеспечено максимально возможное доверие. Участник системы и сама Система должны проводить взаимную аутентификацию каждой отдельной транзакции. И система должна быть максимально прозрачна для всех участников.
Не сложно догадаться, к чему я всё это веду…
Blockchain HELP!
Блокчейн-платформа как никто другой способна удовлетворить всем указанным требованиям. В первом разделе я объяснил в чем ее преимущество, по сравнению с централизованной системой. Могу повториться: возможность выполнять микротранзакции, неограниченная возможность масштабирования и высокий уровень доверия к системе.
Давайте я просто приведу пару примеров, где блокчейн в электроэнергетике уже в достаточно высокой стадии развития. Не на правах рекламы, просто эти проекты достаточно легко находятся в поисковых системах. А так — в мире уже проходят конференции на тематику именно блокчейна и именно в электроэнергетике.
TenneT
TenneT — голландская энергетическая компания. Контролируется правительством. Примерно в 2017м году стали появляться публикации о старте новых пилотных проектов с внедрением блокчейн-технологии, вот тут есть ряд материалов по этому проекту.
Power Ledger
Австралийский разработчик блокчейн-платформы для торговли электроэнергией. Внедрены около 10 проектов, из которых 3 в Соединенных Штатах, 4 в Австралии.
А что у нас в России?
Посмотрите материалы.
Судя по всему только обрывочные упоминания проблемы использования возобновляемых источников энергии и возможности использования распределенных реестров.
Есть ли у нас примеры кейсов, попытки реализации или хотя бы рассуждения на эту тему?
Добро пожаловать в комментарии…
Как реализовать блокчейн-проект за 5 шагов
Первоначально опубликовано Мелиссой Крукс 26 июня 2018 г. 25649 прочтений
От инициализации сети до выполнения смарт-контракта и выбора необходимых инструментов, здесь являются основными этапами реализации приложения блокчейн.
Блокчейн прошел курс евангелизации. Больше нет необходимости вспоминать об интересе, который представляет технология блокчейн.Это своего рода децентрализованная бухгалтерская книга (и поэтому ее очень сложно подделать), она позволяет проверять транзакции почти в реальном времени, не обращаясь к доверенным сторонним лицам. Сценарии использования бесконечны, и многие компании перешли от PoC (доказательство концепции) к конкретным достижениям.
Базовые технологии доступны в открытом исходном коде, любой начинающий разработчик может реализовать небольшой частный блокчейн на своей рабочей станции и запустить его в сети из нескольких машин. Возможность на практике изучить концепции, лежащие в основе такой среды, такие как майнинг или выполнение «умного контракта».Дело в основных этапах такого проекта.
1. Выберите свою платформу
Сеть блокчейнов Ethereum единодушна. Благодаря динамичности и отзывчивости сообщества, а также богатству документации блокчейн обещает, что объекты станут полностью автономными и принадлежат самим себе. Они смогут выполнить код: в обмен на деньги (форма кода) дверь откроет доступ (через код) для использования в течение разрешенного времени.
Среда разработки Ethereum основана на наиболее распространенных языках, таких как C ++ (Cpp-ethereum), Haskell (ethereumH), JavaScript (EthereumJS-lib) или Python (Pyethapp). Тот, который основан на языке Go, будет сохранен (Go-ethereum или Geth). Это наиболее часто используемый клиент в мире Ethereum. По умолчанию он подключается к Homestead, основной сети платформы. Первый шаг — установить Geth на его рабочую станцию (она существует для Linux, iOS, Android, macOS и Windows).
2.Инициализировать цепочку блоков
Чтобы инициализировать цепочку блоков, просто создайте первый блок вручную. Этот блок должен содержать все характеристики цепочки. Затем они будут использоваться всеми узлами (или окончаниями) сети. Чтобы определить этот блок, вам необходимо создать файл в формате JSON. Необходимо указать несколько параметров: «nonce» (обычно криптографический хэш генерирует случайное значение), «timestamp» (время проверки между двумя последовательными блоками) и т. Д. После заполнения этого файла JSON клиент получает право создать папку, содержащую блокчейн (chaindata), и инициализировать ее.
Для обеспечения распространения программы потребуется криптовалюта.
Цель состоит в том, чтобы реплицировать команды столько раз, сколько в вашей сети есть узлов, причем последнее устанавливается в соответствии с самым первым. Чтобы они общались внутри блокчейна, необходимо второй раз связать их друг с другом. Чтобы Geth мог подключиться к узлу в сети и координировать набор, он должен получить свой идентификатор, называемый enode в Ethereum.
Чтобы обеспечить распространение программы от узла к узлу на Ethereum, необходимо иметь криптовалюту в Gas, чтобы получить необходимую вычислительную мощность от участников сети.
3. Выбор правильного протокола консенсуса
Протокол состоит из запроса решения математической задачи, требующей большого объема вычислений. Когда одному из майнеров удается найти решение, оно должно быть легко проверено всеми. Первый, кто найдет решение, получает право написать следующий блок. Сложность задачи регулируется в режиме реального времени в соответствии с общей мощностью сети. Таким образом, блоки записываются через равные промежутки времени.Эта система затрудняет попытки взлома (становление первой вычислительной мощности чрезвычайно дорого) и защищает от попыток спама перегрузить сеть. Поскольку идентифицировать мелкого пирата несложно, фальсификация блокчейна (путем сбора более 50% общей вычислительной мощности) равносильна разрушению его инвестиций в оборудование и исключению себя из сети.
Hashcash — это известный консенсус Proof of Work. Просто зашифруйте сообщение с помощью хеш-функции.Найти ключ дешифрования невозможно с математической точки зрения: нет альтернативы случайному сгенерированию ключей и их последовательному поиску исходного сообщения. Это усилие требует вычислительной мощности, это доказательство работы.
4. Выполните свой первый смарт-контракт
Установка блокчейна представляет интерес только в том случае, если вы можете запустить «смарт-контракт». Это «умный контракт», который самовыполняется с заранее определенного порога, который может быть датой, суммой или любым должным образом аутентифицированным событием.В области публичных блокчейнов эта концепция принесла успех Ethereum.
Эталонным языком для разработки таких приложений на Ethereum является Solidity. Этот язык относительно прост и приближается к объектно-ориентированной среде программирования с понятиями класса, атрибута, функции. В дополнение к особенностям Ethereum, когда используется функция, например, каждая транзакция имеет эмитента, связанные с этим расходы. Код также более чувствительный, малейшая ошибка имеет последствия.
Смарт-контракт как веб-приложение
Помимо знания JavaScript, такой проект потребует всестороннего понимания блокчейна, его философии и ограничений. Прежде чем приступить к работе, важно сначала задать вопрос об актуальности DApp (или децентрализованного приложения), который полезен только для решения проблемы доверия между участниками.
5. Отладка и масштабирование
Отладка цепочки блоков, похоже, оставила след в умах тех, кто ее практиковал.В отличие от программы, выполняемой компьютером, блок выполняется на наборе узлов или сетевых окончаний. Вы должны знать, что каждый из них должен привести к такому же лечению, как и другие. Этот процесс чрезвычайно усложняет отладку приложения.
Чтобы устранить проблему, вам нужно будет создать новую и подождать, пока цепочка распространит изменения. Наконец, в случае платформ с открытым исходным кодом код постоянно развивается.
По всем этим причинам рекомендуется, чтобы ваш смарт-контракт был проверен экспертом.Этап, который будет особенно важен в случае развертывания контракта на публичной цепочке блоков для бизнес-целей, ориентированных на клиентов. В этой связи у всех на уме случай с организацией The DAO, которая была украдена в эфире на сумму, эквивалентную 50 миллионам долларов, из-за ошибки.
Связанные
Теги
Подпишитесь, чтобы получать ежедневные обзоры главных технических новостей!
.
6 стратегий для успешного внедрения блокчейна
Многие организации обращают внимание на блокчейн, потому что эта технология может решить несколько повседневных проблем финансового отдела. Некоторые организации придумывают доказательства концепций, но очень немногие имеют запущенный и работающий блокчейн, а многие просто останавливаются на этапе исследования.
В ходе глобального опроса 600 руководителей компания PwC обнаружила, что, хотя 84% организаций в какой-то мере участвуют в технологии блокчейн, только 15% осуществляют реальный проект.
«Проекты буксуют по ряду причин», — сказал Стив Дэвис, глобальный лидер блокчейнов в PwC и автор отчета Blockchain Is Here. Каков ваш следующий шаг? Основными препятствиями на пути внедрения блокчейна являются неопределенность в отношении того, как технология будет регулироваться, и отсутствие доверия среди потенциальных пользователей к технологии, поскольку неясно, как блокчейн работает с другими системами и как его можно масштабировать.
«[Но] вы не можете позволить себе сидеть сложа руки и ждать.Вам нужно экспериментировать. С одной стороны, блокчейн — это просто еще одна технология, но ее влияние будет очень глубоким », — сказал Дэвис.
Действительно, Gartner прогнозирует, что к 2030 году блокчейн будет генерировать более 3 триллионов долларов в стоимости бизнеса, что может означать, что к тому времени на системах, основанных на блокчейне, может работать пятая часть мировой экономической инфраструктуры.
При правильной стратегии предприятия должны иметь возможность внедрять блокчейн без остановки своих проектов.Чтобы преодолеть неопределенность, PwC и В. Гоурибалан, FCMA, CGMA, главный инвестиционный директор GRIP Investments, дубайского стартапа, использующего блокчейн для управления инвестициями и финансовых услуг, предлагают следующие шаги:
Понять, что такое блокчейн
Хорошо спроектированная цепочка блоков хранит записи в блоках, которые связаны друг с другом с помощью криптографической техники, которая создает цифровой распределенный реестр. Реестр может быть предоставлен и проверен любым, у кого есть доступ, что устраняет необходимость в дорогостоящей проверке третьей стороной.Криптографическая «подпись» каждого блока связана с предыдущим блоком, что делает цепочку блоков практически защищенной от взлома после создания блоков.
Для финансовой функции эта технология может сократить расходы и увеличить скорость в нескольких областях. Возможно, наиболее примечательным является устранение необходимости согласовывать данные внутри компании и записи транзакций, поскольку все стороны цепочки блоков имеют доступ к одной и той же цифровой книге.
В некоторых блокчейнах цифровые токены представляют собой такие активы, как наличные деньги (подумайте о биткойнах в исходной цепочке блоков).Исследование PwC показывает, что отрасль финансовых услуг считается лидером в области приложений блокчейна, но активы, представленные в блокчейнах, также включают сырье, готовую продукцию и права членства. Платформы планирования ресурсов предприятия (ERP), которые являются двигателем бизнес-операций, начинают интегрировать технологию блокчейн.
Но блокчейн невидим, и непонимание технологии остается ключевым камнем преткновения.
«Люди слышат блокчейн и думают о биткойнах, которые были испорчены злоумышленниками, но блокчейн — это нечто большее, чем просто биткойн», — сказал Гоурибалан.
«Блокчейн, лежащий в основе биткойнов, децентрализован, но мы можем использовать его и его достоинства без 100% децентрализации», — сказал он. «И большинство финансовых организаций не смогут использовать децентрализованные сети, но выберут разрешенные сети».
Блокчейн может быть децентрализованным, чтобы он распределялся по машинам или серверам (узлам) без единого заинтересованного лица, имеющего контроль над блокчейном, или централизованным, как обычные базы данных, с единственным заинтересованным лицом, имеющим контроль над блокчейном.Блокчейны также могут быть без разрешения, позволяя любому заинтересованному лицу просматривать или вносить дополнения в блокчейн, или он может быть разрешенным, с наложенными ограничениями в отношении того, какие заинтересованные стороны могут просматривать и вносить изменения.
Разработайте бизнес-кейс
Ключ к разработке любого решения блокчейна — это выяснить, какие проблемы вы пытаетесь решить, и является ли блокчейн способом их решения.
«Прежде всего, вам нужно знать процесс наизнанку. Вы должны определить узкие места в процессе, и как только вы это определите, следует рассмотреть блокчейн со всеми другими альтернативами », — сказал Гоурибалан.
PwC разработала список критериев, которые организации могут использовать, чтобы определить, может ли проблема, которую они пытаются решить, решить с помощью блокчейна:
- Обмениваются ли данные несколькими сторонами?
- Обновляют ли данные несколько сторон?
- Требуется ли проверка?
- Посредники добавляют сложности?
- Чувствительны ли взаимодействия ко времени?
- Взаимодействуют ли транзакции?
«Если вы ответите« да »на четыре из шести критериев, это показывает, что блокчейн может быть хорошей идеей», — сказал Дэвис.
Тщательно выбирайте блокчейн
Поскольку не существует единого типа блокчейна и существует целый ряд решений блокчейна, вы должны убедиться, что выбрали правильный тип блокчейна для своих целей.
«Не становитесь жертвой ажиотажа. В конечном итоге вы можете выбрать неправильную систему или оценить технологию, не понимая основных преимуществ », — сказал Гоурибалан. «Вам нужна разрешенная сеть? Децентрализованный или централизованный? Посмотри на цепь. Разные цепи выполняют разные функции.”
Типы блокчейнов
различаются в зависимости от того, являются ли они публичными, частными или квазичастными, то есть управляются консорциумом заинтересованных сторон. Блокчейны могут быть неразрешенными или разрешенными, децентрализованными или централизованными. Тип необходимой вам цепочки блоков зависит от конкретного случая. Например, правила безопасности и финансовые правила могут означать, что децентрализованный блокчейн без разрешения не подходит для организации.
Чтобы убедиться, что вы получаете правильную технологию, важно, чтобы кто-то с опытом работы с блокчейном, будь то в вашей собственной команде, из стороннего консультанта по блокчейну, или из компании, предоставляющей готовые решения блокчейна, такой как IBM, был гарантируя, что вы выберете правильный блокчейн для своей организации.
Построить экосистему
Блокчейн
работает лучше всего, когда участвует большее количество заинтересованных сторон. Создание сообщества внутри организации или отрасли, которое понимает технологию и ее потенциал, может помочь повысить доверие между компаниями, поскольку стандарты и правила, определяющие модель блокчейна, могут быть разработаны всеми участниками.
В отчете PwC предлагается, чтобы заинтересованные стороны приняли решение:
- Правила участия.
- Как обеспечить справедливое распределение затрат и выгод.
- Какие риски и структура контроля могут быть использованы для решения общей архитектуры.
- Какие механизмы управления существуют, включая непрерывный аудит и проверку, чтобы гарантировать, что блокчейн функционирует должным образом.
Дизайн сознательно
Блокчейн
необходимо тщательно разрабатывать не только для решения организационных проблем, но и для обеспечения соответствия существующим процессам. Если этого не произойдет, эти процессы, возможно, придется пересмотреть, чтобы заложить основу для блокчейна.
«Одна из лучших работ, которые мы проделали, — это работа не только с технической группой, но также с операциями и руководством, а также выделение проблем и болевых точек и построение решения на их основе», — сказал Дэвис.
Организациям также необходимо подумать о последствиях для конфиденциальности, кибербезопасности, соответствии и о том, как они работают вместе с блокчейном, добавил он.
Неопределенность навигации
Блокчейн
все еще нов, и регулирование все еще очень ограничено. Это может измениться в будущем, а это означает, что организациям необходимо не только отслеживать меняющуюся нормативную базу, но и активно участвовать в ее формировании.
Задание вопросов регулирующим органам и внесение предложений по нормативным актам может быть полезно для компаний и сообщества в целом.
«Помимо прямого регулирования самой технологии, законы, касающиеся использования и защиты данных, могут коренным образом изменить работу вашей цепочки блоков. «Жизненно важно взаимодействовать с регулирующими органами, чтобы помочь сформировать эволюцию окружающей среды», — сказал Дэвис.
По данным PwC, нормативные подходы к блокчейну различаются от страны к стране. Сингапур и Швейцария пытаются ускорить применение технологии блокчейн, регулируя токены, в то время как в США регуляторные усилия возглавляются отдельными штатами, а не федеральным правительством.В ЕС правила защиты конфиденциальности данных затрудняют реализацию публичных блокчейн-инициатив. Китай запретил криптовалюту, но поддерживает регулирование, чтобы помочь увеличить количество приложений блокчейна.
PwC предлагает компаниям сотрудничать с регулирующими органами для формирования новых политик и передовых методов работы с блокчейном, а также для отслеживания меняющегося регулирования.
— Ричард Н. Уильямс — писатель-фрилансер из Великобритании. Чтобы прокомментировать эту статью или предложить идею для другой статьи, свяжитесь с Сабиной Фоллмер, старшим редактором журнала FM в [email protected].
.
Разработка блокчейн-приложения с нуля на Python — Build Smart. Безопасная сборка. IBM Developer
Это руководство знакомит разработчиков Python с любым уровнем навыков программирования с блокчейном. Вы точно узнаете, что такое блокчейн, реализовав публичный блокчейн с нуля и создав простое приложение для его использования.
Вы сможете создавать конечные точки для различных функций блокчейна с помощью микрофреймворка Flask, а затем запускать сценарии на нескольких машинах для создания децентрализованной сети.Вы также узнаете, как создать простой пользовательский интерфейс, который взаимодействует с блокчейном и хранит информацию для любых вариантов использования, таких как одноранговые платежи, чат или электронная коммерция.
Python — это простой для понимания язык программирования, поэтому я выбрал его для этого руководства. По мере прохождения этого руководства вы реализуете общедоступную цепочку блоков и увидите ее в действии. Код полного образца приложения, написанного с использованием чистого Python, доступен на GitHub.
Получить код.
Теперь, чтобы понять блокчейн с нуля, давайте вместе пройдемся по нему.
Предварительные требования
- Базовые знания программирования Python
- Знание REST-API
- Знакомство с микрофреймворком Flask (не обязательно, но желательно)
Фон
В 2008 году физическое лицо (или, возможно, группа) по имени Сатоши Накамото выпустило технический документ под названием «Биткойн: одноранговая электронная денежная система».В документе объединены несколько криптографических методов и одноранговая сеть для передачи платежей без участия какого-либо центрального органа (например, банка). Так родилась криптовалюта Биткойн. Помимо Биткойна, в той же статье была представлена распределенная система хранения данных (теперь широко известная как «блокчейн»), которая имела гораздо более широкое применение, чем просто платежи или криптовалюты.
С тех пор блокчейн вызывает интерес практически во всех отраслях. Блокчейн теперь является базовой технологией, лежащей в основе полностью цифровых криптовалют, таких как Биткойн, технологий распределенных вычислений, таких как Ethereum, и фреймворков с открытым исходным кодом, таких как Hyperledger Fabric, на которых построена платформа IBM Blockchain Platform.
Что такое «блокчейн»?
Блокчейн — это способ хранения цифровых данных. Данные могут быть буквально любыми. Для Биткойна это транзакции (журналы переводов Биткойн из одной учетной записи в другую), но это могут быть даже файлы; это не имеет значения. Данные хранятся в виде блоков, которые связаны (или связаны) вместе с помощью криптографических хешей — отсюда и название «цепочка блоков».
Вся магия заключается в том, как эти данные хранятся и добавляются в цепочку блоков.Блокчейн — это, по сути, связанный список, содержащий упорядоченные данные, с некоторыми ограничениями, такими как:
- Блоки нельзя изменить после добавления; другими словами, это , добавляем только .
- Есть особые правила для добавления к нему данных.
- Его архитектура распределена.
Обеспечение этих ограничений дает следующие преимущества:
- Неизменность и долговечность данных
- Нет единой точки контроля или отказа
- Поддающийся проверке контрольный журнал порядка добавления данных
Итак, как эти ограничения могут достичь этих характеристик? Мы углубимся в это по мере реализации этой цепочки блоков.Давайте начнем.
О приложении
Давайте кратко определимся с областью нашего мини-приложения. Наша цель — создать приложение, которое позволяет пользователям обмениваться информацией путем публикации. Поскольку контент будет храниться в блокчейне, он будет неизменным и постоянным. Пользователи будут взаимодействовать с приложением через простой веб-интерфейс.
Ступеньки
- Сохранение транзакций в блоки
- Добавить цифровые отпечатки пальцев к блокам
- Цепь блоков
- Реализовать алгоритм доказательства работы
- Добавить блоки в цепочку
- Создать интерфейсы
- Обеспечение консенсуса и децентрализации
- Соберите приложение
- Запускаем приложение
Мы будем внедрять вещи снизу вверх.Начнем с определения структуры данных, которые мы будем хранить в цепочке блоков. Сообщение — это сообщение, которое публикует любой пользователь в нашем приложении. Каждый пост будет состоять из трех основных элементов:
- Содержимое
- Автор
- Отметка времени
Сохранение транзакций в блоки
Мы будем хранить данные в нашей цепочке блоков в широко используемом формате: JSON. Вот как будет выглядеть сообщение, хранящееся в блокчейне:
{
"author": "some_author_name",
"content": "Некоторые мысли, которыми автор хочет поделиться",
"timestamp": "Время создания контента"
}
Показать ещеПоказать еще значок
Общий термин «данные» часто заменяется в Интернете термином «транзакции».Итак, чтобы избежать путаницы и обеспечить согласованность, мы будем использовать термин «транзакция» для обозначения данных в нашем примере приложения.
Транзакции упакованы в блоки. Блок может содержать одну или несколько транзакций. Блоки, содержащие транзакции, часто генерируются и добавляются в цепочку блоков. Поскольку блоков может быть несколько, каждый блок должен иметь уникальный идентификатор:
.
класс Блок:
def __init __ (я, индекс, транзакции, отметка времени):
"" "
Конструктор класса `Block`.: param index: Уникальный идентификатор блока.
: param transaction: Список транзакций.
: param timestamp: Время генерации блока.
"" "
self.index = index
self.transactions = транзакции
self.timestamp = отметка времени
Показать ещеПоказать еще значок
Добавить цифровые отпечатки пальцев к блокам
Мы хотим предотвратить любое вмешательство в данные, хранящиеся внутри блока, и обнаружение является первым шагом к этому.Чтобы определить, были ли изменены данные в блоке, вы можете использовать криптографические хеш-функции.
Хэш-функция — это функция, которая принимает данные любого размера и производит из них данные фиксированного размера (хэш), которые обычно используются для идентификации ввода. Характеристики идеальной хеш-функции:
- Это должно быть легко вычислить.
- Он должен быть детерминированным, то есть одни и те же данные всегда будут давать один и тот же хэш.
- Он должен быть равномерно случайным, то есть даже изменение одного бита в данных должно значительно изменить хеш.
Последствия этого:
- Угадать входные данные по хешу практически невозможно. (Единственный способ — попробовать все возможные комбинации входов.)
- Если вы знаете и ввод, и хэш, вы можете просто передать ввод через хеш-функцию, чтобы проверить предоставленный хеш.
Эта асимметрия усилий, необходимых для вычисления хэша из ввода (легко) по сравнению с вычислением ввода из хэша (почти невозможно), — это то, что блокчейн использует для получения желаемых характеристик.
Существуют различные популярные хеш-функции. Вот пример на Python, который использует хеш-функцию SHA-256:
>>> из hashlib import sha256
>>> data = b "Некоторые данные переменной длины"
>>> sha256 (данные) .hexdigest ()
'b919fbbcae38e2bdaebb6c04ed4098e5c70563d2dc51e085f784c058ff208516'
>>> sha256 (data) .hexdigest () # независимо от того, сколько раз вы его запускали, результатом будет та же строка из 256 символов
'b919fbbcae38e2bdaebb6c04ed4098e5c70563d2dc51e085f784c058ff208516'
>>> data = b "Некоторые данные переменной длины2" # Добавлен один символ в конце.'9fcaab521baf8e83f07512a7de7a0f567f6eef2688e8b9490694ada0a3ddeec8'
# Обратите внимание, что хеш полностью изменился!
Показать ещеПоказать еще значок
Мы будем хранить хэш блока в поле внутри нашего объекта Block
, и он будет действовать как цифровой отпечаток (или подпись) содержащихся в нем данных:
из hashlib import sha256
импортировать json
def compute_hash (блок):
"" "
Возвращает хэш экземпляра блока, сначала преобразовав его
в строку JSON."" "
block_string = json.dumps (self .__ dict__, sort_keys = True)
вернуть sha256 (block_string.encode ()). hexdigest ()
Показать ещеПоказать еще значок
Примечание: В большинстве криптовалют даже отдельные транзакции в блоке хешируются, а затем сохраняются для формирования хэш-дерева (также известного как дерево Меркла). Корень дерева обычно представляет собой хэш блока. Это необязательное требование для функционирования блокчейна, поэтому мы опускаем его, чтобы упростить задачу.
Итак, мы настроили блоки. Блокчейн должен представлять собой набор блоков. Мы можем хранить все блоки в списке Python (эквивалент массива). Но этого недостаточно, потому что что, если кто-то намеренно заменит старый блок новым блоком в коллекции? Создание нового блока с измененными транзакциями, вычисление хэша и замена его любым более старым блоком не составляет большого труда в нашей текущей реализации.
Нам нужен способ убедиться, что любое изменение в предыдущих блоках делает недействительной всю цепочку.Биткойн способ сделать это — создать зависимость между последовательными блоками, связывая их в цепочку с хешем блока, непосредственно предшествующего им. Под , объединяющим здесь, мы подразумеваем включение хэша предыдущего блока в текущий блок в новое поле с именем previous_hash
.
Хорошо, если каждый блок связан с предыдущим блоком через поле previous_hash
, как насчет самого первого блока? Этот блок называется генезисным блоком и может быть сгенерирован вручную или с помощью некоторой уникальной логики.Давайте добавим поле previous_hash
к классу Block
и реализуем начальную структуру нашего класса Blockchain
.
из hashlib import sha256
импортировать json
время импорта
блок класса:
def__init __ (сам, индекс, транзакции, отметка времени, предыдущий_хэш):
"" "
Конструктор класса `Block`.
: param index: Уникальный идентификатор блока.
: param transaction: Список транзакций.
: param timestamp: Время генерации блока.: param previous_hash: Хеш предыдущего блока в цепочке, частью которой является этот блок.
"" "
self.index = index
self.transactions = транзакции
self.timestamp = отметка времени
self.previous_hash = previous_hash # Добавление предыдущего хеш-поля
def compute_hash (сам):
"" "
Возвращает хэш экземпляра блока, сначала преобразовав его
в строку JSON.
"" "
block_string = json.dumps (self .__ dict__, sort_keys = True) # Строковый эквивалент теперь также учитывает поле previous_hash
вернуть sha256 (block_string.encode ()). hexdigest ()
класс Blockchain:
def __init __ (сам):
"" "
Конструктор класса Blockchain.
"" "
self.chain = []
self.create_genesis_block ()
def create_genesis_block (сам):
"" "
Функция для создания блока генезиса и добавления его в
цепь. Блок имеет индекс 0, previous_hash как 0 и
действительный хеш."" "
genesis_block = Блок (0, [], time.time (), «0»)
genesis_block.hash = genesis_block.compute_hash ()
self.chain.append (genesis_block)
@свойство
def last_block (сам):
"" "
Быстрый питонический способ получить самый последний блок в цепочке. Обратите внимание, что
цепочка всегда будет состоять хотя бы из одного блока (т. е. блока генезиса)
"" "
вернуть self.chain [-1]
Показать ещеПоказать еще значок
Теперь, если содержимое любого из предыдущих блоков изменится:
- Хэш предыдущего блока изменится.
- Это приведет к несовпадению с полем
previous_hash
в следующем блоке. - Поскольку входные данные для вычисления хеш-функции любого блока также состоят из поля
previous_hash
, хеш-код следующего блока также изменится.
В конечном итоге вся цепочка, следующая за замененным блоком, становится недействительной, и единственный способ исправить это — пересчитать всю цепочку.
Реализовать алгоритм доказательства работы
Но есть одна проблема.Если мы изменим предыдущий блок, хэши всех последующих блоков можно будет довольно легко пересчитать, чтобы создать другую действительную цепочку блоков. Чтобы предотвратить это, мы можем использовать асимметрию в усилиях хеш-функций, которые мы обсуждали ранее, чтобы сделать задачу вычисления хеш-функции сложной и случайной. Вот как мы это делаем: вместо того, чтобы принимать какой-либо хэш для блока, мы добавляем к нему некоторые ограничения. Давайте добавим ограничение, согласно которому наш хэш должен начинаться с «n ведущих нулей», где n может быть любым положительным целым числом.
Мы знаем, что, если мы не изменим данные блока, хеш не изменится, и, конечно, мы не хотим изменять существующие данные. Так что же нам делать? Просто! Мы добавим фиктивные данные, которые можно изменить. Давайте представим новое поле в нашем блоке под названием nonce . Одноразовый номер — это число, которое мы можем продолжать изменять, пока не получим хэш, удовлетворяющий нашему ограничению. Одноразовый номер, удовлетворяющий ограничению, служит доказательством того, что были выполнены некоторые вычисления. Этот метод представляет собой упрощенную версию алгоритма Hashcash, используемого в Биткойне.Количество нулей, указанное в ограничении, определяет сложность нашего алгоритма доказательства работы (чем больше количество нулей, тем сложнее вычислить одноразовый номер).
Кроме того, из-за асимметрии доказательство работы трудно вычислить, но очень легко проверить, как только вы выясните одноразовый номер (вам просто нужно снова запустить хеш-функцию):
класс Блокчейн:
# сложность алгоритма PoW
сложность = 2
"" "
Предыдущий код продолжение ..
"" "
def proof_of_work (сам, блок):
"" "
Функция, которая пробует разные значения одноразового номера для получения хэша
что удовлетворяет нашим критериям сложности."" "
block.nonce = 0
computed_hash = block.compute_hash ()
пока не computed_hash.startswith ('0' * Blockchain.difficulty):
block.nonce + = 1
computed_hash = block.compute_hash ()
вернуть computed_hash
Показать ещеПоказать еще значок
Обратите внимание, что нет особой логики для быстрого определения одноразового номера; это просто грубая сила. Единственное определенное улучшение, которое вы можете сделать, — это использовать аппаратные микросхемы, специально разработанные для вычисления хэш-функции в меньшем количестве инструкций ЦП.
Чтобы добавить блок в цепочку, сначала нужно убедиться, что:
- Данные не были подделаны (предоставленное подтверждение работы верное).
- Порядок транзакций сохраняется (поле
previous_hash
блока, который нужно добавить, указывает на хэш последнего блока в нашей цепочке).
Давайте посмотрим код для добавления блоков в цепочку:
класс Блокчейн:
"" "
Предыдущий код продолжение ..
"" "
def add_block (self, block, proof):
"" "
Функция, которая добавляет блок в цепочку после проверки.Проверка включает:
* Проверка действительности доказательства.
* Предыдущий_хэш, упомянутый в блоке, и хэш последнего блока
в цепном матче.
"" "
previous_hash = self.last_block.hash
если previous_hash! = block.previous_hash:
return False
если не Blockchain.is_valid_proof (блок, доказательство):
return False
block.hash = доказательство
self.chain.append (блок)
вернуть True
def is_valid_proof (self, block, block_hash):
"" "
Проверьте, является ли block_hash действительным хешем блока и удовлетворяет ли он
критерии сложности."" "
return (block_hash.startswith ('0' * Blockchain.difficulty) и
block_hash == block.compute_hash ())
Показать ещеПоказать еще значок
Горное дело
Изначально транзакции будут храниться в виде пула неподтвержденных транзакций. Процесс помещения неподтвержденных транзакций в блок и вычисления доказательства работы известен как добыча блоков. Как только одноразовый номер, удовлетворяющий нашим ограничениям, определен, мы можем сказать, что блок был добыт и его можно поместить в цепочку блоков.
В большинстве криптовалют (включая биткойны) майнеры могут получать некоторую криптовалюту в качестве награды за то, что они потратили свои вычислительные мощности на вычисление доказательства работы. Вот как выглядит наша функция интеллектуального анализа данных:
класс Блокчейн:
def __init __ (сам):
self.unconfirmed_transactions = [] # данные еще не попали в блокчейн
self.chain = []
self.create_genesis_block ()
"" "
Предыдущий код продолжение ...
"" "
def add_new_transaction (сам, транзакция):
я.Unfirmed_transactions.append (транзакция)
def mine (self):
"" "
Эта функция служит интерфейсом для добавления ожидающих
транзакции в блокчейн, добавляя их в блок
и выяснение доказательства работы.
"" "
если не self.unconfirmed_transactions:
return False
last_block = self.last_block
new_block = Блок (index = last_block.index + 1,
транзакции = self.unconfirmed_transactions,
отметка времени = время.время(),
previous_hash = last_block.hash)
proof = self.proof_of_work (новый_блок)
self.add_block (новый_блок, доказательство)
self.unconfirmed_transactions = []
вернуть new_block.index
Показать ещеПоказать еще значок
Хорошо, мы почти закончили. Вы можете увидеть объединенный код до этого момента на GitHub.
Хорошо, теперь пора создать интерфейсы для нашего узла блокчейна, чтобы взаимодействовать с приложением, которое мы собираемся создать. Мы будем использовать популярную микрофреймворк Python под названием Flask для создания REST API, который взаимодействует с нашим узлом блокчейна и запускает различные операции.Если вы раньше работали с какой-либо веб-платформой, следовать приведенному ниже коду не составит труда.
из колбы импортная Колба, запрос
запросы на импорт
# Инициализировать приложение flask
app = Flask (__ имя__)
# Инициализировать объект цепочки блоков.
blockchain = Блокчейн ()
Показать ещеПоказать еще значок
Нам нужна конечная точка для нашего приложения, чтобы отправить новую транзакцию. Это будет использоваться нашим приложением для добавления новых данных (сообщений) в блокчейн:
# Способ объявления конечных точек в Flask
@приложение.route ('/ new_transaction', methods = ['POST'])
def new_transaction ():
tx_data = request.get_json ()
required_fields = ["автор", "содержание"]
для поля в required_fields:
если не tx_data.get (поле):
вернуть «Неверные данные транзакции», 404
tx_data ["отметка времени"] = time.time ()
blockchain.add_new_transaction (tx_data)
return "Успех", 201
Показать ещеПоказать еще значок
Вот конечная точка для возврата копии цепочки узла. Наше приложение будет использовать эту конечную точку для запроса всех отображаемых данных:
@app.маршрут ('/ цепочка', методы = ['ПОЛУЧИТЬ'])
def get_chain ():
chain_data = []
для блока в blockchain.chain:
chain_data.append (блок .__ dict__)
вернуть json.dumps ({"length": len (chain_data),
"цепочка": chain_data})
Показать ещеПоказать еще значок
Вот конечная точка для запроса узла на добычу неподтвержденных транзакций (если есть). Мы будем использовать его, чтобы инициировать команду для добычи из самого приложения:
@ app.route ('/ mine', methods = ['GET'])
def mine_unconfirmed_transactions ():
результат = блокчейн.моя()
если нет результата:
вернуть "Никаких транзакций в мой"
return «Блок № {} добыт.». формат (результат)
@ app.route ('/ pending_tx')
def get_pending_tx ():
вернуть json.dumps (blockchain.unconfirmed_transactions)
Показать ещеПоказать еще значок
Эти конечные точки REST можно использовать для игры с нашей цепочкой блоков, создавая некоторые транзакции и затем добывая их.
Обеспечение консенсуса и децентрализации
До сих пор реализованный нами блокчейн предназначался для работы на одном компьютере.Несмотря на то, что мы связываем блок с хешами и применяем ограничение доказательства работы, мы по-прежнему не можем доверять одной сущности (в нашем случае — одной машине). Нам нужны данные для распределения, нам нужно несколько узлов, поддерживающих блокчейн. Итак, чтобы перейти от одиночного узла к одноранговой сети, давайте сначала создадим механизм, позволяющий новому узлу узнавать о других одноранговых узлах в сети:
# Содержит адреса хостов других участников сети.
peers = set ()
# Конечная точка для добавления новых пиров в сеть
@приложение.route ('/ register_node', methods = ['POST'])
def register_new_peers ():
# Адрес хоста однорангового узла
node_address = request.get_json () ["node_address"]
если не node_address:
вернуть «Неверные данные», 400
# Добавить узел в список пиров
peers.add (node_address)
# Вернуть блокчейн на недавно зарегистрированный узел, чтобы он мог синхронизироваться
вернуть get_chain ()
@ app.route ('/ register_with', methods = ['POST'])
def register_with_existing_node ():
"" "
Внутренне вызывает конечную точку `register_node` для
зарегистрировать текущий узел с удаленным узлом, указанным в
запросить и синхронизировать блокчейн с удаленным узлом."" "
node_address = request.get_json () ["node_address"]
если не node_address:
вернуть «Неверные данные», 400
data = {"node_address": request.host_url}
заголовки = {'Content-Type': "application / json"}
# Сделать запрос на регистрацию на удаленном узле и получить информацию
response = requests.post (node_address + "/ register_node",
данные = json.dumps (данные), заголовки = заголовки)
если response.status_code == 200:
глобальный блокчейн
мировые аналоги
# обновить цепочку и партнеры
chain_dump = ответ.json () ['цепочка']
blockchain = create_chain_from_dump (цепной_дамп)
peers.update (response.json () ['сверстники'])
вернуть «Регистрация прошла успешно», 200
еще:
# если что-то пойдет не так, передать это в ответ API
вернуть response.content, response.status_code
def create_chain_from_dump (chain_dump):
blockchain = Блокчейн ()
для idx, block_data в enumerate (chain_dump):
block = Блок (block_data ["индекс"],
block_data ["транзакции"],
block_data ["отметка времени"],
block_data ["предыдущий_хэш"])
proof = block_data ['хеш']
если idx> 0:
добавлено = блокчейн.add_block (блокировать, доказывать)
если не добавлено:
Raise Exception ("Дамп цепи подделан !!")
else: # блок является генезисным, проверка не требуется
blockchain.chain.append (блок)
вернуть блокчейн
Показать ещеПоказать еще значок
Новый узел, участвующий в сети, может вызвать метод register_with_existing_node
(через конечную точку / register_with
) для регистрации на существующих узлах в сети. Это поможет со следующим:
- Запрос удаленного узла о добавлении нового однорангового узла в его список известных одноранговых узлов.
- Инициализация цепочки блоков нового узла цепочкой удаленного узла.
- Повторная синхронизация блокчейна с сетью, если узел отключен от сети.
Однако проблема связана с несколькими узлами. Из-за преднамеренных манипуляций или непреднамеренных причин (например, задержки в сети) копии цепочек нескольких узлов могут отличаться. В этом случае узлы должны согласовать некоторую версию цепочки для поддержания целостности всей системы. Другими словами, нам нужно достичь консенсуса .
Простой алгоритм консенсуса может заключаться в согласовании самой длинной действующей цепочки, когда кажется, что цепочки разных участвующих узлов в сети расходятся. Обоснование этого подхода заключается в том, что самая длинная цепочка является хорошей оценкой наибольшего объема выполненной работы (помните, что доказательство работы сложно вычислить):
класс Блокчейн
"" "
предыдущий код продолжение ...
"" "
def check_chain_validity (cls, цепочка):
"" "
Вспомогательный метод для проверки правильности всей цепочки блоков."" "
результат = Истина
previous_hash = "0"
# Итерировать каждый блок
для блока в цепочке:
block_hash = block.hash
# удалите поле хеша, чтобы снова вычислить хеш
# используя метод compute_hash.
delattr (блок, "хеш")
если не cls.is_valid_proof (block, block.hash) или \
previous_hash! = block.previous_hash:
результат = Ложь
перерыв
блок.hash, previous_hash = block_hash, block_hash
вернуть результат
def консенсус ():
"" "
Наш простой алгоритм консенсуса. Если действующая более длинная цепочка
найдено, наша цепочка заменяется на нее.
"" "
глобальный блокчейн
longest_chain = Нет
current_len = len (blockchain.chain)
для узла в пирах:
response = requests.get ('{} / chain'.format (узел))
length = response.json () ['длина']
цепочка = response.json () ['цепочка']
если длина> current_len и блокчейн.check_chain_validity (цепочка):
# Найдена более длинная действующая цепочка!
current_len = длина
longest_chain = цепочка
если longest_chain:
blockchain = longest_chain
вернуть True
return False
Показать ещеПоказать еще значок
Затем нам нужно разработать способ для любого узла сообщить сети, что он добыл блок, чтобы каждый мог обновить свою цепочку блоков и перейти к добыче других транзакций. Другие узлы могут просто проверить доказательство работы и добавить добытый блок в свои соответствующие цепочки (помните, что проверка проста, если известен одноразовый номер):
# конечная точка для добавления блока, добытого кем-то другим, в
# цепочка узла.Узел сначала проверяет блок
# а затем добавляет его в цепочку.
@ app.route ('/ add_block', methods = ['POST'])
def verify_and_add_block ():
block_data = request.get_json ()
block = Блок (block_data ["индекс"],
block_data ["транзакции"],
block_data ["отметка времени"],
block_data ["предыдущий_хэш"])
proof = block_data ['хеш']
добавлено = blockchain.add_block (блок, доказательство)
если не добавлено:
return "Блок был отброшен узлом", 400
return "Блок добавлен в цепочку", 201
def announce_new_block (блок):
"" "
Функция для уведомления сети о добыче блока.Другие блоки могут просто проверить доказательство работы и добавить его в свои
соответствующие цепи.
"" "
для сверстников в сверстниках:
url = "{} add_block" .format (одноранговый)
request.post (url, data = json.dumps (block .__ dict__, sort_keys = True))
Показать ещеПоказать еще значок
Метод announce_new_block
должен вызываться после того, как каждый блок добыт узлом, чтобы одноранговые узлы могли добавить его в свои цепочки.
@ app.route ('/ mine', methods = ['GET'])
def mine_unconfirmed_transactions ():
результат = блокчейн.моя()
если нет результата:
вернуть "Никаких транзакций в мой"
еще:
# Убедитесь, что у нас самая длинная цепочка перед тем, как объявить в сети
chain_length = len (blockchain.chain)
консенсус ()
если chain_length == len (blockchain.chain):
# объявляем в сеть о недавно добытом блоке
announce_new_block (blockchain.last_block)
вернуть «Блок № {} добыт.». формат (blockchain.last_block.index
Показать ещеПоказать еще значок
Хорошо, сервер цепочки блоков настроен.Вы можете увидеть код до этого момента на GitHub.
А теперь пора приступить к работе над интерфейсом нашего приложения. Мы использовали шаблоны Jinja2 для визуализации веб-страниц и немного CSS, чтобы все выглядело красиво.
Нашему приложению необходимо подключиться к узлу в сети цепочки блоков для получения данных, а также для отправки новых данных. Также может быть несколько узлов.
дата и время импорта
импортировать json
запросы на импорт
from flask import render_template, перенаправление, запрос
из приложения для импорта приложений
# Узел в сети блокчейн, с которым будет взаимодействовать наше приложение
# для получения и добавления данных.CONNECTED_NODE_ADDRESS = "http://127.0.0.1:8000"
posts = []
Показать ещеПоказать еще значок
Функция fetch_posts
получает данные от конечной точки узла / цепочки
, анализирует данные и сохраняет их локально.
def fetch_posts ():
"" "
Функция для извлечения цепочки из узла блокчейна, анализа
данные и хранить их локально.
"" "
get_chain_address = "{} / цепочка" .format (CONNECTED_NODE_ADDRESS)
response = requests.get (get_chain_address)
если ответ.status_code == 200:
content = []
цепочка = json.loads (response.content)
для блока в цепочке ["цепочка"]:
для tx в блоке ["транзакции"]:
tx ["индекс"] = блок ["индекс"]
tx ["hash"] = блок ["previous_hash"]
content.append (TX)
глобальные посты
сообщения = отсортировано (содержание,
ключ = лямбда k: k ['отметка времени'],
reverse = True)
Показать ещеПоказать еще значок
Приложение имеет HTML-форму для ввода данных пользователем и затем отправляет запрос POST на подключенный узел, чтобы добавить транзакцию в пул неподтвержденных транзакций.Затем транзакция добывается сетью и, наконец, извлекается после обновления нашей веб-страницы:
@ app.route ('/ submit', methods = ['POST'])
def submit_textarea ():
"" "
Конечная точка для создания новой транзакции через наше приложение
"" "
post_content = request.form ["контент"]
author = request.form ["автор"]
post_object = {
'автор': автор,
'контент': post_content,
}
# Отправить транзакцию
new_tx_address = "{} / new_transaction" .format (CONNECTED_NODE_ADDRESS)
Запросы.сообщение (new_tx_address,
json = post_object,
заголовки = {'Content-type': 'application / json'})
# Вернуться на главную страницу
возврат перенаправления ('/')
Показать ещеПоказать еще значок
Готово! Вы можете найти окончательный код на GitHub.
Клонировать проект:
$ git clone https://github.com/satwikkansal/python_blockchain_app.git
Показать ещеПоказать еще значок
Установить зависимости:
$ cd python_blockchain_app
$ pip install -r требования.текст
Показать ещеПоказать еще значок
Запустить сервер узла цепочки блоков:
$ экспорт FLASK_APP = node_server.py
$ flask run --port 8000
Показать ещеПоказать еще значок
Один экземпляр нашего узла цепочки блоков теперь запущен и работает на порту 8000.
Запустить приложение в другом сеансе терминала:
Приложение должно быть запущено и работать по адресу http: // localhost: 5000.
На рисунках 1–3 показано, как публиковать контент, запрашивать узел для добычи и повторно синхронизировать с цепочкой.
Рис. 1. Публикация контента
Рис. 2. Запрос узла на добычу
Рисунок 3. Повторная синхронизация с цепочкой для обновленных данных
Запуск с несколькими узлами
Чтобы поиграть, выделив несколько настраиваемых узлов, используйте конечную точку register_with /
для регистрации нового узла в существующей одноранговой сети.
Вот пример сценария, который вы можете попробовать:
# уже работает
$ flask run --port 8000 &
# запуск новых узлов
$ flask run --port 8001 &
$ flask run --port 8002 &
Показать ещеПоказать еще значок
Вы можете использовать следующие запросы cURL для регистрации узлов на порту 8001
и 8002
с уже запущенным 8000
:
$ curl -X POST \
http: // 127.0.0.1: 8001 / register_with \
-H 'Content-Type: application / json' \
-d '{"адрес_узла": "http://127.0.0.1:8000"}'
$ curl -X POST \
http://127.0.0.1:8002/register_with \
-H 'Content-Type: application / json' \
-d '{"адрес_узла": "http://127.0.0.1:8000"}'
Показать ещеПоказать еще значок
Это заставит узел на порту 8000
узнать об узлах на порте 8001
и 8002
, и наоборот. Новые узлы также будут синхронизировать цепочку с существующим узлом, чтобы они могли активно участвовать в процессе добычи.
Чтобы обновить узел, с которым синхронизируется интерфейсное приложение (по умолчанию — порт localhost 8000
), измените поле CONNECTED_NODE_ADDRESS
в файле views.py.
После того, как вы все это сделаете, вы можете запустить приложение ( python run_app.py
) и создавать транзакции (отправлять сообщения через веб-интерфейс), и как только вы выполните майнинг транзакций, все узлы в сети обновят цепочку. Цепочку узлов также можно проверить, вызвав конечную точку / chain
с помощью cURL или Postman.
$ curl -X GET http: // localhost: 8001 / цепочка
$ curl -X ПОЛУЧИТЬ http: // localhost: 8002 / цепочка
Показать ещеПоказать еще значок
Подтвердить транзакции
Возможно, вы заметили недостаток в приложении: любой может изменить любое имя и опубликовать любой контент. Кроме того, сообщение может быть изменено при отправке транзакции в сеть блокчейн. Один из способов решить эту проблему — создать учетные записи пользователей с использованием криптографии с открытым и закрытым ключом. Каждому новому пользователю нужен открытый ключ (аналог имени пользователя) и закрытый ключ, чтобы иметь возможность публиковать сообщения в нашем приложении.Ключи используются для создания и проверки цифровой подписи. Вот как это работает:
.
Изучите блокчейны, построив один
Самый быстрый способ узнать, как работают блокчейны, — это построить один.
Вы здесь, потому что, как и я, вы воодушевлены ростом криптовалют. И вы хотите знать, как работают блокчейны — их фундаментальная технология.
Но понять блокчейн непросто — по крайней мере, для меня это было не так. Я пробирался через плотные видео, следовал пористым учебникам и имел дело с усиленным разочарованием из-за слишком малого количества примеров.
Мне нравится учиться на практике.Это заставляет меня заниматься предметом на уровне кода, что заставляет меня цепляться. Если вы сделаете то же самое, в конце этого руководства вы получите работающий блокчейн с твердым пониманием того, как они работают.
Перед тем, как начать…
Помните, что цепочка блоков — это неизменяемая последовательная цепочка записей, называемая блоками. Они могут содержать транзакции, файлы или любые данные, которые вам нравятся. Но важно то, что они связаны цепочкой вместе с использованием хэшей .
Если вы не знаете, что такое хеш, вот объяснение.
Для кого предназначено это руководство? Вам должно быть удобно читать и писать некоторые базовые знания Python, а также иметь некоторое представление о том, как работают HTTP-запросы, поскольку мы будем общаться с нашей цепочкой блоков через HTTP.
Что мне нужно? Убедитесь, что установлен Python 3.6+ (вместе с pip). Вам также потребуется установить Flask и замечательную библиотеку запросов:
pip install Flask == 0.12.2 requests == 2.18.4
О, вам также понадобится HTTP-клиент, например Postman или cURL. Но все подойдет.
Где последний код? Исходный код доступен здесь.
Шаг 1. Построение блокчейна
Откройте свой любимый текстовый редактор или IDE, лично я C PyCharm. Создайте новый файл с именем
blockchain.py
. Мы будем использовать только один файл, но если вы заблудитесь, вы всегда можете обратиться к исходному коду.
Представление цепочки блоков
Мы создадим класс цепочки блоков
, конструктор которого создает начальный пустой список (для хранения нашей цепочки блоков), а другой — для хранения транзакций. Вот схема нашего класса:
class Blockchain (object):
def __init __ (сам):
self.chain = []
self.current_transactions = []
def new_block (сам):
# Создает новый Блок и добавляет его в цепочку
проходить
def new_transaction (сам):
# Добавляет новую транзакцию в список транзакций
проходить
@staticmethod
def хэш (блок):
# Хеширует блок
проходить
@свойство
def last_block (сам):
# Возвращает последний блок в цепочке
pass
(Схема нашего класса цепочки блоков)
Наш класс цепочки блоков
отвечает за управление цепочкой.Он будет хранить транзакции и иметь несколько вспомогательных методов для добавления новых блоков в цепочку. Давайте приступим к конкретизации некоторых методов.
Как выглядит блок?
Каждый блок имеет индекс , временную метку (во времени Unix), список транзакций , доказательство (подробнее об этом позже) и хэш предыдущего блока .
Вот пример того, как выглядит отдельный блок:
block = {
'index': 1,
'отметка времени': 1506057125.5, г.
'транзакции': [
{
'отправитель': "8527147fe1f5426f9dd545de4b27ee00",
'получатель': "a77f5cdfa2934df3954a5c7c7da5df1f",
'amount': 5,
}
],
«доказательство»: 324984774000,
'previous_hash': "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"
}
( Пример блока в нашей цепочке блоков)
На этом этапе идея цепочки должна стать очевидной - каждый новый блок содержит в себе хэш предыдущего блока. Это очень важно, потому что это то, что обеспечивает неизменяемость блокчейнов: Если злоумышленник испортил предыдущий блок в цепочке, то все последующие блоки будут содержать неправильные хеши.
Есть ли в этом смысл? Если этого не происходит, подождите некоторое время, чтобы дать понять - это основная идея блокчейнов.
Добавление транзакций в блок
Нам понадобится способ добавления транзакций в блок. За это отвечает наш метод
new_transaction ()
, и он довольно прост:
class Blockchain (object):
...
def new_transaction (я, отправитель, получатель, сумма):
"" "
Создает новую транзакцию для перехода в следующий добытый блок
: param sender: Адрес отправителя
: param recipient: Адрес Получателя
: param amount: Amount
: return: Индекс блока, который будет содержать эту транзакцию
"" "
self.current_transactions.append ({
"отправитель": отправитель,
"получатель": получатель,
'amount': количество,
})
вернуть себя.last_block ['index'] + 1
После того, как
new_transaction ()
добавляет транзакцию в список, он возвращает индекс блока, в который будет добавлена транзакция - , следующая будет добыто. Это будет полезно позже для пользователя, отправляющего транзакцию.
Создание новых блоков
Когда будет создан экземпляр нашей
Blockchain
, нам нужно будет засеять его блоком genesis - блоком без предшественников.Нам также нужно будет добавить «доказательство» к нашему генезисному блоку, который является результатом майнинга (или доказательства работы). Подробнее о майнинге поговорим позже.
Помимо создания блока genesis в нашем конструкторе, мы также конкретизируем методы для
new_block ()
,
new_transaction ()
и
hash ()
:
импортировать хэш-библиотеку
импортировать json
время импорта время
класс Blockchain (объект):
def __init __ (сам):
я.current_transactions = []
self.chain = []
# Создаем генезисный блок
self.new_block (previous_hash = 1, proof = 100)
def new_block (self, proof, previous_hash = None):
"" "
Создайте новый блок в блокчейне
: param proof: Доказательство алгоритма Proof of Work
: param previous_hash: (Необязательно) Хеш предыдущего блока
: return: Новый блок
"" "
block = {
'index': len (self.цепочка) + 1,
'отметка времени': время (),
'транзакции': self.current_transactions,
'proof': доказательство,
'previous_hash': previous_hash или self.hash (self.chain [-1]),
}
# Сбросить текущий список транзакций
self.current_transactions = []
self.chain.append (блок)
блок возврата
def new_transaction (я, отправитель, получатель, сумма):
"" "
Создает новую транзакцию для перехода в следующий добытый блок
: param sender: Адрес отправителя
: param recipient: Адрес Получателя
: param amount: Amount
: return: Индекс блока, который будет содержать эту транзакцию
"" "
я.current_transactions.append ({
"отправитель": отправитель,
"получатель": получатель,
'amount': количество,
})
return self.last_block ['index'] + 1
@свойство
def last_block (сам):
вернуть self.chain [-1]
@staticmethod
def хэш (блок):
"" "
Создает хэш SHA-256 блока
: param block: Блок
: return:
"" "
# Мы должны убедиться, что словарь упорядочен, иначе у нас будут несогласованные хэши
block_string = json.дампы (блок, sort_keys = True) .encode ()
return hashlib.sha256 (block_string) .hexdigest ()
Вышеупомянутое должно быть простым - я добавил несколько комментариев и строк документации , чтобы облегчить понимание. Мы почти закончили представление нашей цепочки блоков. Но в этот момент вам должно быть интересно, как создаются, подделываются или добываются новые блоки.
Понимание Proof of Work
Алгоритм Proof of Work (PoW) - это то, как создаются новые блоки или как добывается в цепочке блоков . Цель PoW - найти число, которое решает проблему. Номер должен быть . Трудно найти , , но легко проверить - с точки зрения вычислений - кем угодно в сети. Это основная идея Proof of Work.
Мы рассмотрим очень простой пример, который поможет этому усвоить.
Давайте решим, что хэш некоторого целого числа x, умноженного на другое y, должен заканчиваться на 0. Итак,
hash (x * y) = ac23dc ... 0
. В этом упрощенном примере зафиксируем
x = 5
.Реализация этого в Python:
из hashlib import sha256
х = 5
y = 0 # Мы еще не знаем, каким должно быть y ...
а sha256 (f '{x * y}'. encode ()). hexdigest () [- 1]! = "0":
у + = 1
print (f 'Решение: y = {y}')
Здесь решение:
y = 21
. Поскольку созданный хэш заканчивается на 0:
hash (5 * 21) = 1253e9373e ... 5e3600155e860
В Биткойне алгоритм Proof of Work называется Hashcash . И он не слишком отличается от нашего базового примера выше.Это алгоритм, который майнеры пытаются решить, чтобы создать новый блок. Как правило, сложность определяется количеством символов, которые ищутся в строке. Затем майнеры награждаются за свое решение получением монеты в транзакции.
Сеть может легко проверить свое решение.
Реализация базового доказательства работы
Давайте реализуем аналогичный алгоритм для нашей цепочки блоков. Наше правило будет аналогично приведенному выше примеру:
Найдите число p , которое при хешировании с помощью решения предыдущего блока получится хеш с 4 ведущими
0s
.
импорт hashlib
импортировать json
время импорта время
из uuid import uuid4
класс Blockchain (объект):
...
def proof_of_work (self, last_proof):
"" "
Простой алгоритм доказательства работы:
- Найдите число p 'такое, что hash (pp') содержит четыре ведущих нуля, где p - предыдущий p '
- p - предыдущее доказательство, а p '- новое доказательство.
: param last_proof:
: return:
"" "
доказательство = 0
пока сам.valid_proof (last_proof, proof) - ложь:
доказательство + = 1
подтверждение возврата
@staticmethod
def valid_proof (last_proof, доказательство):
"" "
Проверяет доказательство: содержит ли хэш (last_proof, proof) 4 ведущих нуля?
: param last_proof: Предыдущее доказательство
: param proof: Текущее доказательство
: return: Истинно, если верно, если нет.
"" "
guess = f '{last_proof} {proof}'. encode ()
guess_hash = hashlib.sha256 (угадать).hexdigest ()
return guess_hash [: 4] == "0000"
Чтобы изменить сложность алгоритма, мы можем изменить количество ведущих нулей. Но 4 достаточно. Вы обнаружите, что добавление одного нуля в начале существенно увеличивает время, необходимое для поиска решения.
Наш класс почти готов, и мы готовы начать с ним взаимодействовать с помощью HTTP-запросов.
Шаг 2. Наш блокчейн как API
Мы собираемся использовать Python Flask Framework.Это микроструктура, которая упрощает сопоставление конечных точек с функциями Python. Это позволяет нам общаться с нашей цепочкой блоков через Интернет, используя HTTP-запросы.
Мы создадим три метода:
/ transaction / new
, чтобы создать новую транзакцию в блоке
/ mine
, чтобы сообщить нашему серверу, что нужно майнить новый блок.
/ цепочка
для возврата полной цепочки блоков
Настройка Flask
Наш «сервер» сформирует единый узел в нашей сети цепочки блоков.Давайте создадим шаблонный код:
import hashlib
импортировать json
from textwrap import dedent
время импорта время
из uuid import uuid4
из фляги импорт фляги
класс Blockchain (объект):
...
# Создайте экземпляр нашего узла
app = Flask (__ имя__)
# Сгенерировать глобально уникальный адрес для этого узла
node_identifier = str (uuid4 ()). replace ('-', '')
# Создать блокчейн
blockchain = Блокчейн ()
@ app.route ('/ mine', methods = ['GET'])
def mine ():
return "Мы будем добывать новый блок"
@приложение.маршрут ('/ транзакции / новый', методы = ['POST'])
def new_transaction ():
return "Мы добавим новую транзакцию"
@ app.route ('/ chain', methods = ['GET'])
def full_chain ():
response = {
'цепочка': blockchain.chain,
'длина': len (blockchain.chain),
}
вернуть jsonify (ответ), 200
если __name__ == '__main__':
app.run (host = '0.0.0.0', port = 5000)
Краткое объяснение того, что мы добавили выше:
- Строка 15: Создает экземпляр нашего Node. Узнайте больше о Flask здесь.
- Строка 18: Создайте случайное имя для нашего узла.
- Строка 21: Создайте экземпляр класса
Blockchain
.
- Строка 24–26: Создайте конечную точку
/ mine
, которая является запросом
GET
.
- Строка 28–30: Создайте конечную точку
/ transaction / new
, которая представляет собой запрос POST
, поскольку мы будем отправлять ей данные.
- Строка 32–38: Создайте конечную точку
/ chain
, которая возвращает полную цепочку блоков.
- Строка 40–41: Запускает сервер через порт 5000.
Конечная точка транзакций
Вот как будет выглядеть запрос транзакции. Это то, что пользователь отправляет на сервер:
{
"отправитель": "мой адрес",
"получатель": "чужой адрес",
«количество»: 5
}
Поскольку у нас уже есть метод класса для добавления транзакций в блок, остальное легко.Напишем функцию добавления транзакций:
.