Развитие концепции Интернета измерений IoM на основе блокчейн технологии

Погрешность как величина отклонения измеренной величины от истинного. Анализ организационно–технической системы для проведения дистанционной интернет–калибровки СИ. Особенности развития концепции Интернета измерений IoM на основе блокчейн технологии.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 10.12.2019
Размер файла 3,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Развитие концепции Интернета измерений IoM на основе блокчейн технологии

Введение

Современные информационные технологии широко внедряются в метрологическую практику. Одним из элементов такого внедрения является калибровка средств измерений (СИ) с использованием сети, получившей название Интернет-метрология [1-7].

Организационно-техническая система для проведения дистанционной интернет-калибровки СИ уже легализована в некоторых странах, например, в Японии, Великобритании, США, Нидерландах и др.

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

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

Рабочий стандарт передачи должен иметь такие характеристики:

· интерфейс удаленного управления (Com, Serial, IEEE, GPIB, USB и тому подобное);

· многофункциональность измерения / реализации;

· высокая точность измерения / реализации;

· возможность настройки характеристик.

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

Данная работа структурирована следующим образом:

· Проводится обзор и анализ работ по практической метрологии, концепции Интернета измерений (IoM), блокчейн-технологии на глубину три года. Теоретическая часть содержит вводную информацию о прослеживаемости результатов измерений и об их надежности. Далее к анализу работы блокчейн-технологии: его архитектуры и его особенностей, а также возможности его использования в метрологии. Далее теоретически оценим возможность использования данной технологии - нового стандарта передачи физических данных.

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

1. Измерительные технологии

1.1 Теоретическая метрология

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

Понимая, что информация о точности вошла в результат измерений, то формулировки терминов выражающих качество результатов измерений - точность, правильность, прецизионность, склонны к небольшому изменению: их стоит отнести к параметрам, связанными не с результатом измерений, а с измерениями в целом [9]. Три термина описывают качество результатов измерений: «метрологическая прослеживаемость», «метрологическая сопоставимость» и «метрологическая совместимость», о которых будет сказано ниже.

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

Наряду с понятием погрешности можно сказать о действительном значении, поскольку при нём можно получить точную оценку погрешности. Действительной значение можно заменить на истинное значение, но такое действие не одобряется, поскольку само определение действительного значение является не совсем точным и ясным. Поэтому в Международном словаре метрологии (VIM) [11] вводится понятие опорной величины, использующееся как основа для сравнения значений одной и той же величины, по сути объединяя понятия истинного и действительного значений, погрешность обозначается как разница между измеренным и опорным значениями.

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

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

1.2 Метрологическая прослеживаемость

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

Использование общих мировых стандартов и сертификатов калибровок средств измерений означает, что в независимости от того где именно и какая лаборатория проводила измерения, покупатель или потребитель может доверять её результатам. Для более простого пользования Международный словарь метрологии VIM включает понятие «совместимость результатов измерений», являющееся свойством множества результатов измерений для определенной измеряемой величины. Абсолютное значение разности любой пары измеренных значений величины, полученное из двух различных результатов измерений, меньше, чем некоторое выбранное кратное стандартной неопределенности измерений этой разности. То есть, с одной стороны есть требование единых методов вычисления неопределенности измерений [14-16].

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

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

Концепция метрологической прослеживаемости важна для практического применения, так как позволяет сравнивать точность измерений по стандартизированной процедуре оценки неопределенности измерений [12].

Важным элементом обеспечения метрологической прослеживаемости является оценка неопределенности измерений. В соответствии с VIM метрологическая прослеживаемость определяется как параметр, характеризующий меру разброса количественных значений, которые могут быть отнесены к измеряемым величинам на основе используемой информации. Основой для оценки неопределенности измерений на международном уровне является руководство по выражению неопределенности измерений (the Guide to the expression of uncertainty in measurement, GUM) [13]. Требования региональных организаций к оценке неопределенности измерений основаны на положениях GUM.

1.3 Технология Blockchain

технический интернет дистанционный

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

1) пользователи взаимодействуют с блокчейном через пару закрытых и открытых ключей [8]. Они используют свой закрытый ключ для подписания собственных транзакций, и они адресуются в сети через свой открытый ключ. Использование асимметричной криптографии обеспечивает аутентификацию, целостность и неповторение в сети.

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

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

Существует три основные технологии, которые объединяются для создания блокчейна. Ни одна из них не нова. Новшеством скорее является, их согласование и применение этой комбинации. Этими технологиями являются:

· криптография с закрытым ключом,

· распределенная сеть P2P-Network

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

Для наглядности список проиллюстрируем в виде таблицы 1:

Таблица 1 Технологии используемые в блокчейне

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

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

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

1.4 Безопасность данных

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

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

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

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

· Хеш транзакции генерируется пользователем A.

· С помощью закрытого ключа пользователь A шифрует хеш, подписывая документ.

· Подписанный хэш отправляется пользователю B вместе с открытым ключом пользователя A.

· Пользователь B принимает входные данные, которые были использованы до создания хеша, и повторно генерирует хеш. Этот хэш будет использоваться в качестве сравнения.

· Используя криптографический алгоритм, пользователь B может расшифровать подписанный хеш от пользователя A с помощью предоставленного открытого ключа.

· Пользователь B сравнивает хеши и проверяет, что пользователь A владеет входными данными.

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

1.5 Открытый и закрытый ключи шифрования

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

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

Забегая вперед, хочется отметить, что помимо понятий «хеширование», открытый и закрытые ключи в практической части ВКР также применяется понятие «цифровой подписи» (digital signature), поэтому стоит объяснить, что это такое.

1.6 Цифровая подпись. Модель цифровой подписи

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

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

Рис. 1 Модель цифровой подписи

Следующие пункты подробно объясняют весь процесс:

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

· Подписывающий передает данные в хеш - функцию и генерирует хеш - данные.

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

· Верификатор подает цифровую подпись и ключ проверки в алгоритм проверки. Алгоритм проверки дает некоторое значение в качестве вывода.

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

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

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

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

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

Рис. 2 Иллюстрация составляющих цифровой подписи

Как можно это реализовать? Есть две возможности выполнения алгоритма: «подписать - затем - зашифровать» (sign-then-encrypt) и «зашифровать - затем - подписать» (encrypt - then - sign).

Однако криптосистема, основанная на sign - then - encrypt, может быть использована получателем для подделки личности отправителя и отправки этих данных третьей стороне. Следовательно, этот метод не является предпочтительным, то есть процесс encrypt - then - sign более надежный вариант. Он изображена на рисунке 3:

Рис. 3 Процесс encrypt-then-sign

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

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

1.7 P2P Network

Одноранговая сеть Peer-to-Peer (P2P Network) -- это децентрализованная и взаимосвязанная сеть, которая разделяет задачи или рабочие нагрузки (такие как вычислительная мощность или хранение данных) только между всеми участниками. Созданные данные участниками сети, будут доступны для пользования и передачи в сети для всех участников этой сети. P2P - сеть может быть сетью гораздо большего масштаба, в которой специальные протоколы и приложения устанавливают прямые отношения между пользователями через Интернет.

Концепция Peer - to - Peer подразумевает мир потребителей электронных устройств, соединённых через равноправные узлы локальные вычислительные сети с обменом через IP протоколы. Устройства сами формируют сети P2P и предполагают исполнение различных функций, которые необходимы, чтобы поддержать широкий набор применений. Устройства когнитивны в окружающей среде и адаптивны к ней. Они используют инфраструктуру в зависимости от ситуации. Эти сети самоорганизующиеся и самоподдерживающиеся. Если ими и управляют, то только изготовители устройств или третьи лица, уполномоченные изготовителями устройств.

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

Рис.4 Представление работы системы P2P-сети

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

Рис. 5 Визуальное представление блока и протокола

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

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

Закрытый блокчейн имеет разные согласованные алгоритмы для проверки транзакций. Например, Quorum широко используется для разработки корпоративных блоковых приложений. Он использует основанные на голосовании алгоритмы консенсуса, такие как Raft, Quorumchain и Istanbul. geth имеет возможность использовать согласованный алгоритм Proof Of Authority для частной сети блокчейнов. Во всех вышеупомянутых согласованных алгоритмах процесс проверки блоков остается тем же самым, то есть решает криптографическую головоломку (майнинг). В случае согласованного алгоритма Proof Of Authority майнинг будет выполнять только авторизованные узлы.

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

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

Рис. 6 Представление цепочки блоков, имеющие свои временные метки

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

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

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

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

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

Данные передаются от одной точки(пользователя) к другой (СИ с участием другого пользователя). Они собираются в блоки, каждый блок имеет свой номер и хеш предыдущего блока. Далее участники получают блоки с данными для калибровки, подтверждения их правильности и точности. Блок добавляется к цепочке блоков, содержащей информацию об «предыдущих транзакциях». Данные доставлены.

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

· Децентрализация: все записи хранятся у каждого участника системы.

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

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

· Надёжность. Любое несанкционированное изменение или попытка будут отклонены из-за несоответствия предыдущим копиям. Выданный и подтверждённый системой, специальный уникальный код предоставляет возможность легального изменения данных в системе.

· Компромисс. Добавляющиеся, в систему, данные, проверяются другими участниками, то есть они пересчитывают хеш - суммы. (Майнинг)

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

Часть 2. Проектирование ПО

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

Для проектировки используется программное обеспечение Eclipse IDE. Структура базы данных написана на основе Python - алгоритмов. В первой части абзаца приведены алгоритмы, отвечающие за работу блокчейна -хранилища калибровочных данных. Во втором части - принцип достоверности действий. Первоначально проект разрабатывался в среде разработки PyCharm, но главная её отрицательная составляющая - низкий уровень оптимизации под операционную систему (ОС) Windows и высокие требования к техническим характеристикам используемого устройства (ноутбук Acer Aspire E5 521G - VM83).

Eclipse IDE - среда разработки кроссплатформенных приложений. Она позволяет программировать на различных языках и с помощью плагинов возможно добавление новых языков программирования.

Установка Eclipse IDE

1. Сначала производится скачивание ПО с официального сайта производителя https://www.eclipse.org/downloads/. Сайт автоматически подбирает версию под Ваше устройство.

2. После загрузки дистрибутива производим его запуск. Загрузившись, нам будет предложены различные версии ПО для установки. Мой выбор пал на версию «Eclipse IDE for C/C++ Developers»:

Рис. 7 Список дистрибутивов Eclipse IDE

Python очень хорошо взаимодействует с расширениями на C/C++, да и сам прекрасно встраивается в С++ код благодаря библиотеке Boost.Python.

3. Далее выбираем путь установки и начинаем процесс установки, постепенно соглашаясь с условиями.

4. Завершив установку нажимаем «Finish». Произойдет запуск Eclipse IDE. При запуске Eclipse сделает запрос на место сохранения всех будщих проектов, необходимо указать место Workspace.

5. Переходим в Window - Preferences, выбираем General - Workspace в самом низу страницы нужно указать параметр "Text file encoding", если он не выставлен в UTF-8 по умолчанию, прописываем это строковое значение в поле Other, как показано ниже:

Рис. 8 Окно настроек Preferences-Workspace

Потдверждаем, нажав «Apply» и «Apply and Close».

6. Далее производим установку расширения плагина PyDev. Не выходя из программы переходим во вкладку «Help» и выбираем «Eclipse Marketplace».

Рис.9 Окно «Eclipse Marketplace»

После установки производим перезапуск Eclipse IDE.

7. После установки необходимо установить перспективу (Perspective) для разработки в Python, и переключитья на перспективу PyDev. В правом верхнем углу в ряду из маленьких кнопок переключения перспективы выбираем «Open Perspective», чтобы добавить перспективу PyDev.

Рис. 10 Окно «Open Perspective»

В открывшемся окне Open Perspective выбираем окружение для разработки Python - PyDev. Подтверждаем, нажав кнопку «Open». После выбора происходит переключение на перспективу PyDev: в меню и в основном окне должны произойти некоторые изменения, происходит переключаение процесса создание новых проектов и файлов и процесса отладки в режим разработки на Python.

8. Далее устанавливаем Python последней версии (в нашем случае эта версия 3.7), скачав дистрибутив c официального сайта Python http://www.python.org/download в удобное место на компьютере.

9. В Eclipse IDE выбираем в главной строке «File» - «New» - «PyDev Project».

Рис.11 Создание нового проекта Python

Заполняем имя, выбираем версию Python 3.7 и указываем где расположен интерпретатор Python, для этого нужно нажать на ссылку «Please configure an interpreter...», указав место установки приложения Python 3.7. Подтверждаем кнопкой «Finish».

10. В Eclipse IDE выбираем в главной строке «File» - «New» - «PyDev Module». присваиваем новому скрипту имя и нажимаем Finish. Файл скрипта автоматически создастся в кодировке, указанной в настройках Workspace, которые мы задали в самом начале. В Python 3.x весь код по стандарту в кодировке UTF-8.

1.9 Обеспечение единства измерений

Класс blockchain (объект) отвечает за управление цепочкой. Цель этого класса - хранить транзакции и иметь несколько вспомогательных методов для добавления новых блоков в цепочку. Скелет этого класса представлен на рисунке 2:

Рис. 12 Структура блокчейна

Функция Def new_block (self) создает новый блок и добавляет его в цепочку. Это иллюстрирует рисунок 3:

Рис. 13 Структура блока блокчейна, создание новых блоков

Функция Def new_transaction (self) (Рис.3) добавляет новую транзакцию в список транзакций.

Рис. 14 Представление транзакций блокчейна, её внесение.

Python имеет свой модуль стандартной библиотеки hashlib, в котором есть алгоритмы шифрования, использующиеся в случае защиты хешей или алгоритмов дайджеста сообщений. Он включает в себя безопасные алгоритмы хеширования FIPS, такие как SHA1, SHA224, SHA256, SHA384, а также SHA512 и MD5. Одно из самых популярны применений хеширования это хранение хеша пароля, вместо самого пароля. Конечно, хеш должен быть хорошим, в противном случае он может быть расшифрован.

Другой популярный случай, в котором применяется хеширование - это хеширование файла, с последующей отправкой файла и его хеша по отдельности. Получатель файла может запустить хеш в файле, чтобы убедиться в том, что файл соответствует отправленному хешу. Функция Def_hash (block) (Рис. 5) хеширует блок, делая его уникальным. Это позволяет отличить ввод от некоторых других данных.

Рис. 15 Пример метода процесса хэширования

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

2.Proof of Authority

Proof of Authority (POA) - алгоритм консенсуса, основанный на репутации используется для надлежащей сертификации прибора и доказательстве полномочий на использования конкретным лицом или лицами. Проверка этой информации должна быть максимально простой.

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

· Наличие формального подтверждения в сети личности ученого/ рабочего определенной лаборатории/организации с возможностью перекрестной проверки информации в общедоступном домене.

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

· Полное согласование при проверках и проведении процедур по установлению полномочий.

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

Каждый блок будет содержать индекс, метку времени (время unix), список транзакций, доказательство и хэш предыдущего блока. Каждый новый блок будет содержать хэш предыдущего блока. Это важно, поскольку обеспечиваетcя неизменность блокчейна: если злоумышленник взломает предыдущий блок, то все остальные блоки будут содержать неправильные хэши. То есть, это решает вопрос неизменности введенных данных. Блокчейн - это набор блоков, которые, в свою очередь содержат "умные контракты" (Smart - Contract). Smart - Contract - это идея сравнения блокчейна с окружающим миром с использованием запрограммированных условий и передачи их на все узлы. Контракт будет включать в себя название контракта, проверенные данные для устройства, подпись инспектора, которая гарантирует точную работу измерительного устройства и шифрование контракта (единицы). По завершении калибровки СИ формируется Smart - Contract с результатами измерений и общей стандартной неопределенностью результатов измерений, вся информация о калибровке записывается в базу данных, а именно: организационные данные (дата, кем и кем была проведена калибровка СИ, тип и количество СИ, которые были откалиброваны и тому подобное); результаты измерений.

2.1 Программа

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

2.2 Авторизация

Вход в систему будет состоять из диалогового окна, представляющий из себя класс class LoginDialog(wx.Dialog). Авторизация состоит из функций def __init__(self) и def onLogin(self, event). wx.Dialog - набор элементов для формы диалогового окна из библиотеки wxPython.

Рис. 16 Класс LoginDialog(wx.Dialog)

Первая функция отвечает за внешний вид диалогового окна: расположение форм ввода (wx.BoxSizer, 18 строка) по центру и их размеры (19 строка, расположение текст дающее наименование этим формам. Рисунок 17 иллюстрирует текст ввиде кода:

Рис. 17 Функция def __init__(self)

Def onLogin(self, event) отвечает за процесс (события) верификации. Код представлен на рисунке 18:

Рис.18 Функция Def onLogin(self, event)

На данный момент корректный пароль и логин прописываются в коде, но в будущем программа будет присвоена каждому участнику организации или лаборатории, что соответственно информация и данные о пароле/логине будут заимствоваться из базы данных организации. Метод self.”объект”.GetValue() (46 и 47 строки) отвечает за прием вводимой информации со стороны пользователя - ввод пароля или логина. Проверка производится с помощью оператора if: если пароли не совпадают, то выводится сообщение о некорректности данных. При верной информации консоль выведет информацию об успешном входе в приложение.

Рис. 19 Пример вывода диалогового окна регистрации в Eclipse IDE

В результате успешного входа отобразится главная панель содержащая профиль пользователя и панель управления.

2.3 Интерфейс

технический интернет дистанционный

Начнем реализацию вывода окна в котором расположатся элементы управления. Для импортирования базовых модулей приложения прописывается 1 строка кода import wx - это пространство имен. Объекты и функции этих модулей начинаются с префикса wx. Модулями являются, например, ядро, элементы управления, окна, графический интерфейс и др. Ниже представлен класс class MainFrame(wx.Frame) главного экрана приложения (рис. 20):

Рис. 21 Код каркаса главного окна приложения

Первое, что нам необходимо определиться с размерами и положением окна главного экрана. За первую характеристику отвечает параметр SetSize(), позволяющий выставить size в удобном нам разрешении, в нашем случае оно составляет 720 на 600 точек, а также автоматически может раскрываться в полноэкранный режим - перетаскивая окно к верхней части матрицы дисплея. За вторую характеристику - метод self.Centre(), изначально выставляющий экран в центр размерной сетки.

Метод myListener принимает один или несколько аргументов. В нашем случае настраиваем его так, чтобы всегда требовался один аргумент (сообщение) и опциональный аргумент (arg2). Совокупность 75 и 76 строк отвечают за действие запроса диалогового окна перед использованием самого приложения и его загрузку.

Разберем основу интерфейса: как именно она строится. На это указывает рис. 22:

Рис. 22 Методы и инструменты основывающие Главный экран приложения

В начале этого пункта упоминалось пространство имен wx, с которого начинается обозначение модулей приложения. Строка кода app = wx.App() образует объект приложения. Отдельно хотелось сказать об wx.Frame - основе функциональности нашего приложения.

Объект wx.Frame - виджет, способный включат в себя множество различных виджетов, имеющих «родительский» характер, то есть, если представить иерархию виджетов, то wx.Frame является главным. Данный конструктор включает в себя семь параметров и три из них являются основополагающими. Метод Show() отображает приложение на рабочем столе операционной системы.

Class MainFrame(wx.Frame) - класс содержащий параметры размера приложения, располагающий вызовом вкладок и их содержимого во время запуска приложения. «Панель управления» - управление и мониторинг процессов, «База Данных» - Просмотр и расчет данных в виде таблицы (в будущем), вкладка с информацией о пользователе и компании с одноименным названием. Панели спроектированы используя классы PageOne, PageTwo, PageThree. Соответствующие данные включаются в соответсвенные классы для отображения информации. Class MainFrame(wx.Frame) задействует их во время запуска (рис. 23):

Рис. 23 Код описывающий взаимодействие классов вкладок с классом приложения

Для отображения информации используем область окна приложения и впишем данные о «сотруднике» будущей организации или лаборатории использующей данный проект. Результат изображен на рисунках 24 и 25:

Рис.24 Код вкладки «информации о пользователе»

Рис.25 Внешний вид приложения

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

Рис. 26(а) Визуальная интерпритация код из рис.22

Рис. 26(б) Визуальная интерпритация код из рис. 25(а)

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

Заключение

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

Также был выбран алгоритм работы Proof of Authority для взаимодействия пользователей с электрическими величинами средств измерений использующийся в калибровке. Теоретически, нагрузка удаленной сертификации значительно облегчается, что улучшает соотношение цена / производительность всей системы и более точных измерительных приборов. Вся информация передается по корпоративному типу сети Интернет по протоколу TCP / IP, который является достаточно надежным протоколом передачи данных. На данный момент предлагается дорабатывать ПО для системы калибровки, которая станет в будущем современным стандартом передачи физических данных. Что касается функциональности, она фокусируется на следующих трех аспектах: надежность, достоверность, быстрый обмен данных. Показано, что удаленная сертификация обеспечивает платформу, способную, в будущем, автоматически выполнять надежную калибровку, сочетая простоту эксплуатации и функциональность.

Список Литературы

1.O'Dowd R., Maxwell D., Farrell T., Dunne J. Remote Characterization of Optoelectronic Devices Over the Internet. Proceedings of 4th Optical Fibre Measurement Conference. October 1997. NPL, Teddington, UK. P. 155-158.

2. Baca L. B., Duda L., Walker R., Oldham N., Parker M. Internet-Based Calibration of a Multifunction Calibrator. National Conference of Standards Laboratories. April 2000. Toronto, Ontario, Canada. 10 p.

3.Sand A., Slide H. Secure control of instruments via the Internet. CPEM 2004 Conference Digest. London, UK, June 2004. P. 636-637.

4.Yoshida H. Present status of “e-trace”. НИИJ-BIPM Workshop on the Impact of Information Technology in Metrology. AIST Tsukuba, May 2005. Р. 18-20. WS-01.

5.Rietveld G. Internet enabled maintenance of an electrical multifunction calibrator. Joint International IMEKO TC1+TC7 Symposium. Ilmenau, Germany, September 2005. CD.

6.Velychko O. M. Calibration of measuring instruments by Internet: state and perspective of realization. Ukrainian metrological journal. 2006. № 1. P. 45-49 (in Ukrainian).

7.Velychko O. N. Features of introduction of modern information technologies are in the accredited laboratories. Proceeding of Intern. Conf. “Metrology and metrological assurance. Minsk (Belorussia), 2007. P. 30-34 (in Russian).

8.(2005). Understanding Public Key Cryptography. [Online]. Available: https://technet.microsoft.com/en-us/library/aa998077(v=exchg.65).aspx

9.A.G. Chunovkina, N.A. Burmistrova О характеристиках качества измерений и результатов измерений // Всероссийский НИИ метрологии им. Д.И. Менделеева, Санкт-Петербург, Россия - 2012 - 4 c.

Размещено на Allbest.ru


Подобные документы

  • Портал государственных услуг как основной компонент системы электронного правительства для граждан в Российской Федерации. Хранение данных в распределенном реестре - одно из важнейших преимуществ информационно-коммуникационной технологии блокчейн.

    курсовая работа [155,9 K], добавлен 03.07.2017

  • Развитие компьютерной техники. Начало Интернета. Уровни Интернета. Доменные зоны. Сервисы Интернета. Программы-браузеры. Поисковые системы. Вирусы. Проблемы развития Интернета в Беларуси. Каким будет компьютер будущего?

    реферат [935,6 K], добавлен 12.05.2006

  • Развитие компьютерной техники. Начало Интернета. Уровни Интернета. Доменные зоны. Сервисы Интернета. Программы-браузеры. Поисковые системы. Вирусы. Проблемы развития Интернета в Беларуси. Каким будет компьютер будущего?

    реферат [566,9 K], добавлен 12.05.2006

  • Ознакомление со структурой, историей развития Интернета. Характеристика коммутации каналов и пакетов как фундаментальных подходов к организации ядра сети. Рассмотрение понятия дейтаграммных сетей. Анализ уровней коммуникационной модели Интернета.

    курс лекций [6,0 M], добавлен 14.04.2010

  • Изучение высокоскоростного подключения к сети Интернет при помощи технологии xDSL, Wi-Fi. Аппаратная архитектура и типы подключений. Оборудование для двухстороннего спутникового Интернета, его преимущества и недостатки. Потребители спутникового интернета.

    дипломная работа [797,7 K], добавлен 05.09.2016

  • Основные факты из истории появления интернета, ключевые принципы и перспективы дальнейшего развития. Языковые сферы Интернета, русскоязычная среда всемирной сети (Рунет). Виды браузеров для просмотра интернет-страниц. Спектры сервисов и услуг Интернета.

    контрольная работа [34,3 K], добавлен 25.02.2012

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

    курсовая работа [405,7 K], добавлен 15.12.2008

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

    контрольная работа [1,3 M], добавлен 25.04.2013

  • Что такое Интернет. Хронология развития Интернета в мире и в России. Тенденции развития Интернета. Эпоха программного обеспечения. Увеличение скорости передачи данных и пропускной способности. Новый статус человека в Интернете. Кибероружие и кибервойны.

    курсовая работа [1,5 M], добавлен 11.08.2014

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

    реферат [44,7 K], добавлен 06.02.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.