Система розподіленої колективної експертизи з захистом від фальсифікацій

Переваги розподіленої мережевої експертизи. Блокчейн - розподілена база даних, яка підтримує перелік постійно зростаючих записів. Смарт-контракт - комп'ютерний протокол, що спрощує, верифікує, забезпечує дотримання переговорів або виконання договору.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык украинский
Дата добавления 09.10.2018
Размер файла 40,1 K

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

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

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

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

У прийнятті складних рішень важливу роль відіграють процедури колективного експертного оцінювання - експертизи. З початку XXI століття поширилася розподілена мережева експертиза, що використовує сучасні інформаційні технології та мережі зв'язку і передачі даних. Перевагами такої експертизи є оперативність, точність, репрезентативність думок експертів, можливість безпосередніх комунікацій між експертами [1, 2, 3].

У той же час широке поширення дистанційних експертних систем створює більше можливостей для фальсифікації результатів експертного оцінювання. Зокрема, участь в процесі експертизи корумпованих експертів або модераторів експертизи дозволяє спотворити результати колективної оцінки в інтересах певних кіл, пов'язаних з організацією оцінювання варіантів рішення. С [4, 5]. Тому розробка розподілених експертних систем, захищених від фальсифікацій є актуальною практичною проблемою.

Більшість публікацій, присвячених захисту систем колективної експертизи від фальсифікацій, спрямовані на розробку алгоритмів, що дозволяють виявити експертів, оцінки яких істотно відрізняються від середньї експертної думки шляхом застосування спеціальних алгоритмів обробки експертних оцінок [6, 7]. Іншим варіантом є застосування для експертизи процедури Коупленда, фальсифікація в якій є NP-повною задачею і вимагає великих витрат обчислювального часу [8, 9]. Незважаючи на складність пропонованих алгоритмів зазначені методи все одно не гарантують повного захисту системи від фальсифікацій.

Метою роботи є побудова системи розподіленої колективної експертизи, що максимально захищена від фальсифікацій, з застосуванням блокчейн-технологій. комп'ютерний мережевий блокчейн

Для захисту від фальсифікацій створено систему, колективної експертизи на основі технології блокчейну [10].

Блокчейн, тобто ланцюжок блоків транзакцій - є розподілена база даних, яка підтримує перелік записів, так званих блоків, що постійно зростає. База захищена від підробки та переробки. Кожен блок містить часову мітку та посилання на попередній блок хеш дерева.

Блок транзакцій - спеціальна структура для запису групи транзакцій. Щоб транзакція вважалася достовірною («підтвердженою»), її формат і підписи повинні бути перевірені, лише після цього групу транзакцій записати в спеціальну структуру - блок. Інформацію в блоках можна швидко перевірити. Кожен блок завжди містить інформацію про попередній блок. Усі блоки можна вибудувати в один ланцюжок, що містить інформацію про всі вчинені коли-небудь операції. Перший блок в ланцюжку - первинний блок - розглядається як окремий випадок, оскільки в нього відсутній материнський блок. Якщо використовувати систему блокчейн як місце зберігання даних, можливо забезпечити гарантований захист від зміни даних після запису у систему. Також, якщо використати якусь загальну систему та зробити колективну експертизу відкритою (але сховати справжні імена експертів за їх унікальними адресами), можливо надати доступ контролюючим особам для перевірки даних через стандартні методи блокчейну, код яких відкритий та перевірений. Для вирішення задачі обрано блокчейн-систему Ethereum [12-13]. Ethereum (укр. Етеріум) - платформа для створення практично будь-яких децентралізованих онлайн-сервісів на базі блокчейна, що працюють на базі розумних контрактів. Ethereum реалізована як єдина децентралізована віртуальна машина. Оскільки Ethereum сильно спрощує і здешевлює впровадження блокчейна, його широко використовують сьогодні багато великих корпорацій для самих різних цілей. Для того, щоб транзакція потрапила до блоку, необхідно провести процес майнінгу транзакції. Майнінг - це діяльність з підтримки розподіленої платформи і створення нових блоків з можливістю отримати винагороду в формі емітованої валюти і комісійних зборів у різних криптовалютах. Вироблені обчислення потрібні для забезпечення захисту від повторного використання одних і тих же одиниць валюти, а зв'язок майнінгу з емісією стимулює людей витрачати свої обчислювальні потужності і підтримувати роботу мереж. Але звичайний майнінг підходить для дуже великої системи і зовсім не підходить до локального блокчейну, тому що не потрібно видобувати нову валюту та використовувати великі потужності для підтримки усієї системи в цілому. Існує декілька різних способів додавання транзакцій до блоку. Звичайний майнінг має загальну назву PoW (Proof of Work) [12, 13].

Доказ виконання роботи (PoW) - це принцип захисту систем від зловживання послугами. Він заснований на необхідності виконання стороною, що робить запит (клієнтом) деякої досить складної тривалої роботи (PoW-завдання, одностороння функція), результат якої легко і швидко перевіряється стороною, що обробляє запит (сервером). Головна особливість цих схем полягає в асиметрії витрат часу - досить велика тривалість для ініціатора запиту і висока швидкість для відповіді. Подібні схеми також відомі як Client Puzzle (функція клієнтської головоломки), Computational Puzzle (обчислювальна головоломка), або CPU pricing function [12].

Метод підтвердження частки (PoS - Proof of Stake) - метод захисту в Ethereum, заснований на необхідності доказу зберігання певної кількості коштів на рахунку. При використанні цього методу алгоритм криптовалюти з більшою ймовірністю вибере для підтвердження чергового блоку в ланцюжку обліковий запис з великою кількістю коштів на рахунку. Метод використовують як альтернативу методу PoW (доказ виконання роботи), в якому більшу ймовірність підтвердження блоку має обліковий запис з великими обчислювальними потужностями.

Метод авторизованих користувачів (PoA - Proof of Activity) - метод захисту в розподілених блокчейн системах, де можливість додавання транзакцій до блоків мають певні авторизовані вузли. Для локальної системи блокчейну найкраще підходить метод PoA, тому що усі вірні транзакції будуть додані до блоків, список майнерів додається до першого блоку (genesis) та не може бути змінений без доступу до активних майнінг вузлів.

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

Послідовність всього процесу отримання оцінки експерта зображена на рис. 1.

Спочатку дані надходять від користувача, що заповнив їх у веб-інтерфейсі, до серверу (Java backend). Дані перевіряються на правильність та можливість експерта поставити оцінку. Якщо усі дані вірні, сервер відправляє їх на зберігання до блокчейну, використовуючи методи смарт-контракту. Сам вузол geth (так називається вузол блокчейну Ethereum) перевіряє дані та створює транзакцію виклика метода смарт-контракту. Для підписки транзакції та додавання до блоку необхідно передати її до майнеру (якщо блокчейн працює на PoW), або до авторизованого вузла, що має можливість підписувати блоки (PoA). Майнером може виступати також вузол до якого надходять дані, але у більшості випадків для цього є окремі вузли. Для функціонування системи колективної експертизи необхідно розгорнути систему блокчейн. Для того, щоб запустити локальну систему блокчейн Ethereum з використанням методу PoA, необхідно створити декілька акаунтів, та додати їх адреси до genesis блоку, щоб вони мали можливість додавати транзакції до наступних блоків. Також необхідно додати початкову кількість монет, щоб мати можливість виконувати транзакції для даних адресів. Це здійснюється наступним кодом.

Рисунок 1 - Послідовність процесу отримання оцінки експерта

{

"config": {

"chainId": 1515,

"homesteadBlock": 1,

"eip150Block": 2,

"eip150Hash":"0x0000000000000000000000000000000000000000000000000000000000000000", "eip155Block": 3,

"eip158Block": 3,

"byzantiumBlock": 4,

"clique": {

"period": 1,

"epoch": 30000

}

},

"nonce": "0x0",

"extraData":

"0x000000000000000000000000000000000000000000000000000000000000000008a58f09194e403d02

a1928a7bf78646cfc260b087366ef81db496edd0ea2055ca605e8686eec1e60000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000

00000000000000000000",

"gasLimit": "0x59A5380",

"difficulty": "0x1",

"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "coinbase": "0x0000000000000000000000000000000000000000",

"alloc": {

"08a58f09194e403d02a1928a7bf78646cfc260b0": {

"balance": "0x200000000000000000000000000000000000000000000000000000000000000"

},

"87366ef81db496edd0ea2055ca605e8686eec1e6": {

"balance":"0x200000000000000000000000000000000000000000000000000000000000000"

},

"F464A67CA59606f0fFE159092FF2F474d69FD675": {

"balance": "0x200000000000000000000000000000000000000000000000000000000000000"

}

},

"number": "0x0",

"gasUsed": "0x0",

"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"

}

До цього genesis-блоку було додано інформацію про декілька адрес, що мають можливість додавати транзакції до блоків, та підписувати їх. Також цим адресам було додано початкову кількість умовних монет (одиниць ресурсу) Ether. Наприклад, адреса 08a58f09194e403d02a1928a7bf78646cfc260b0 додана до поля “extra data” для підключення в список авторизованих адресів та в список “alloc” для надання початкових монет. Поле clique вказує, що створений блокчейн працює на основі методу PoA та буде збирати блоки кожну секунду (за це відповідає параметр period). Усі інші параметри є автогенерованими для того, щоб перший блок не відрізнявся по структурі від наступних. Далі для запуску вузлів geth на основі цього genesis блоку необхідно додати цей блок до кожного з вузлів за допомогою команди geth init. Виклики методів смарт-контракту також є транзакціями, які повинні потрапляти до блоку.

Методи смарт-контракту перевіряють та захищають від повторної оцінки та несанкціонованого доступу до процедури оцінювання. Під час запуску системи потрібно мати список з усіх експертів, що беруть участь у колективній оцінці. Наприклад, якщо система використовується для оцінки діяльності парламенту, і експертами є усі громадяни України, в такому випадку їх дані потрібно занести до серверу (Java backend), тоді сервер при розгортанні контракту створить усім експертам унікальні адреси та додасть їх до списку контракту. Ось так виглядає конструктор контракту (тут і далі фрагменти коду наведені на Solidity - об'єктно-орієнтованій мові програмування контрактів для платформи Ethereum):

address[] public votersAddresses; address[] public votedAddresses; mapping(address => uint) public voterMarks; function Voting(address[] _voters) public { for (uint i = 0; i < _voters.length; i++) { votersAddresses.push(_voters[i]);

}

}

Змінна votersAddresses зберігає адреси усіх учасників експертизи. Після прийняття оцінки від якогось учасника його адреса додається в масив votedAddresses. Карта votedMarks служить для зберігання оцінки експерта напроти його адреси. Ось так виглядає метод оцінки:

function vote(uint mark) public ableToVote { voterMarks[msg.sender] = mark; votedAddresses.push(msg.sender);

}

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

modifier ableToVote { bool flag = false;

// Check if address is in voters list; for (uint i = 0; i < votersAddresses.length; i++) { if (msg.sender == votersAddresses[i]) flag = true;

}

if (flag == false) revert();

// Check if not voted yet; if (votedAddresses.length != 0) {

for (uint k = 0; k < votedAddresses.length; k++) {

if (msg.sender == votedAddresses[k]) revert();

}

}

}

Для з'єднання серверу з вузлом geth служить RPC інтерфейс Ethereum, що має назву web3 та строгий список методів. На сервері використовується бібліотека web3j, яка є імплементацією web3 на мові програмування Java. Сервер та geth спілкуються через текстові повідомлення з використанням протоколу HTTP. Основними повідомленнями серверу, які відправляються до вузла, є створення контракту, створення користувачів з адресами, та виклики методів смарт- контракту (Наприклад, метод vote). Для прийняття рішення можливо використати будь-який з відомих методів, або навіть декілька, оскільки у контракті зберігається масив усіх оцінок. Метод обробки результатів колективної експертизи можна додати до коду контракту, або до коду серверної сторони проекту. Це може бути метод медіанних оцінок [14], або один з методів соціального вибору для отримання консенсусного колективного рішення [15]. Щоб перевірити вірність винесеного рішення можна підключитись до будь-якого вузла блокчейну в системі через стандартний клієнт Ethereum, який має назву Mist, отримати масив оцінок експертів та підрахувати результат незалежним методом, або викликати метод підрахування, якщо його реалізувано на стороні коду контракту. Результати вірного функціонування розробленої системи колективної дистанційної експертизи перевірено та підтверджено на низці тестових та практичних прикладів експертного оцінювання.

Фальсифікація результатів колективної дистанційної експертизи, що можлива при наявності в складі експертної групи необ'єктивних або корумпованих експертів або модераторів експертизи, є серйозною практичною проблемою. Для вирішення цієї проблеми запропонована побудова системи експертизи на основі блокчейн-технології. В якості блокчейн-інструменту використано платформу Ethereum. Практична реалізація виконана з використанням мови програмування Solidity. Колективна експертиза створена як розумний контракт. Практична реалізація системи підтвердила її працездатність та захищеність від можливих фальсифікацій.

Література

1. Gubanov D., Korgin N., Novikov D., Raikov A. E-Expertise: Modern Collective Intelligence. -- Springer International Publishing, Switzerland, 2014 . -- 112 p.

2. Масыч M.A., Целых A.A. Методы и технологии проведения сетевой экспертизы инновационных проектов // Современные проблемы науки и образования. -- 2013. -- № 6.

3. Newman M.E.J. The Structure of Scientific Collaboration Networks // Proc. Natl. Acad. Sci. USA. -- 2001. -- Vol. 98. --Pp. 404--409.

4. Zhu Y., Truszczynski M. Manipulation and Bribery When Aggregating Ranked Preferences. // In: Walsh T. Algorithmic Decision Theory. Lecture Notes in Computer Science, Vol/ 9346. -- Springer: Cham, 2015. -- Pp. 86-102.

5. Beliakov G., James S., Smith L., Wilkin T. Biased experts and similarity based weights in preferences aggregation.//In: EUSFLAT 2015: Proceedings of the 16th World Congress of the International-Fuzzy-Systems- Association (IFSA). -- Amsterdam: Atlantis Press. -- 2015. -- Pp. 363-370.

6. Rezvani M., Allahbakhsh M., Vigentini L., Ignjatovic A., Jha S. An Iterative Algorithm for Reputation Aggregation in Multi-dimensional and Multinomial Rating Systems. // In: Federrath H., Gollmann D. (Eds.) ICT Systems Security and Privacy Protection. SEC 2015. IFIP Advances in Information and Communication Technology, vol 455. Springer, Cham, 2015. -- Pp. 189-203.

7. Hoffman K., Zage D., Nita-Rotaru C. A Survey of Attack and Defense Techniques for Reputation Systems // ACM Comput. Surv. -- 2009. -- №42(1). -- Pp.1-31.

8. Davies J., Katsirelos G., Narodytska N. ,Toby Walsh T., Xia L. Complexity of Algorithms for the Manipulation of Borda, Nanson's and Baldwin's Voting Rules // Artificial Intelligence. -- 2014. -- Vol. 217. P. 20-42.

9. Faliszewski P., Hemaspaandra T., Schnoor H. Manipulation of Copeland Elections // In: Proceedings of the 9th International Conference on Autonomous Agents and Multiagent Systems: Volume 1. -- Torronto, 2010. -- Pp.367-374.

10. Bambara J. J., Allen P. R. Blockchain. A practical guide to developing business, law, and technology solutions. -- McGraw-Hill Education, 2018 -- 302 p.

11. Prusty N. Building Blockchain Projects. Develop real-time practical DApps using Ethereum and JavaScript. -- Birmingham -- Mumbai: Packt Publ., 2017. -- 245 p.

12. Bashir I. Mastering Blockchain. -- Birmingham: Packt Publ., 2017 -- 540 p.

13. Болтенков B.A., Куваева В.И., Позняк А.В. Анализ медианных методов консенсусного агрегирования ранговых предпочтений // Інформатика та математичні методи в моделюванні. -- 2017. -- Том 7, №4. -- С. 307-317.

14. Болтенков В.А., Куваева В.И., Червоненко П.П. Применение методов социального выбора в задачах агрегирования оценок в ранговых шкалах // Системные технологии. -- 2018. -- Вып. 2 (115). -- С.93 -- 102.

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

...

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

  • Класифікація мереж залежно від призначення та кола користувачів, визначена законодавством України. Порівняльна характеристика систем автоматизації роботи з документами. Переваги використання комп'ютерних технологій при проведенні судової експертизи.

    контрольная работа [47,7 K], добавлен 20.07.2011

  • Система доменних імен як розподілена база даних. Типи зон, ресурсні запаси. Виконання команд у командному рядку. Налаштування вузлів, диспетчер сервера. Пошук кореневих посилань. Загальний вигляд вікна редагування записів. Зона зворотного перегляду IPv4.

    курсовая работа [3,6 M], добавлен 03.03.2014

  • Створення і використання індексів та переглядів БД. Створення і використання тригерів, генераторів та збережених процедур на боці SQL-сервера. Отримання практичних навичок обміну даними між прикладенням і БД. Перегляд записів зв’язаних таблиць БД.

    лабораторная работа [1,9 M], добавлен 08.06.2009

  • Загальна характеристика підприємства "Focus". Огляд програмного забезпечення для створення комп’ютерної мережі. Вибір мережевої служби та протоколів, архітектури, кабелю. Розрахунок обсягу даних, мінімальної конфігурації для серверів та робочих станцій.

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

  • Проектування розподіленої інформаційної системи із використанням технології MIDAS. Методика створення сервера прикладень за технологією MIDAS. Віддалений модуль даних - основна частина сервера прикладень. Методика створення клієнтського прикладення.

    лабораторная работа [582,2 K], добавлен 08.06.2009

  • Використання мережі із топологією "розподілена зірка", витої пари та концентраторів (для сполучення), мережевої карти із роз'ємами типу RG-45, встановлення операційної системи та монтаж мережі комп'ютерної лабораторії із підключенням до Інтернету.

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

  • Електронна база даних як послідовність даних заданої структури, записана на магнітний диск комп'ютера, її типи, основні та невід'ємні властивості. Призначення та оцінка можливостей системи управління. Моделі даних та головні принципи їх функціонування.

    презентация [352,2 K], добавлен 04.12.2014

  • Застосування PuTTY та основні команди SSH. Підключення до сервера з командного рядка. Структура бази даних. Поля: SQL, пошук, запит по шаблону, експорт та імпорт, операції та переваги. Виконання операцій у базі даних. Видалення непотрібних статтей.

    отчет по практике [3,0 M], добавлен 08.07.2015

  • Інтернет як система об'єднаних комп'ютерних мереж для зберігання і передачі інформації. Літературні джерела щодо сутності баз даних та їх функціонування. Порівняльний аналіз MySQL, Oracle та Microsoft Access. Створення бази даних за допомогою MySQL.

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

  • Комп’ютерний аналіз великих масивів даних. Принципи інформаційного відображення лікувально-діагностичного процесу. Медична інформаційна система та її впровадження в ендокринологічній клініці. Злоякісний рост у вогнищевих утвореннях щитоподібної залози.

    автореферат [117,4 K], добавлен 11.04.2009

  • Створення оригінальної розподіленої інформаційної системи на основі технології SOAP. Надана архітектура клієнт-серверної взаємодії: клієнтське прикладення споживає Web-сервіс з Internet, а отримані об'єктні методи звертаються до віддалених даних на Web.

    лабораторная работа [556,0 K], добавлен 08.06.2009

  • Аналіз сучасного програмного забезпечення комп'ютерних інформаційних мережевих систем. Загальна економіко-правова характеристика Бершадського відділення Вінницької філії ЗАТ КБ "ПриватБанк", захист інформації та дотримання безпеки в комп’ютерній мережі.

    курсовая работа [64,6 K], добавлен 14.05.2011

  • Створення операційної системи UNIX. Історія створення і розвитку протоколів ТСР/ІР. Протокол транспортного рівня. Логічний комунікаційний канал між джерелом і отримувачем даних без встановлення зв’язку. Протокол взаємодії з сервером доменних імен.

    контрольная работа [23,1 K], добавлен 18.05.2009

  • Форми вихідних документів. Перелік запитів до бази даних. Побудова інфологічної моделі, її структурні компоненти: сутності, зв’язки та відносини. Перелік таблиць, опис запитів. Загальна характеристика та головний зміст форм розроблюваної бази даних.

    курсовая работа [414,5 K], добавлен 31.01.2014

  • Огляд та класифікація комп'ютерних ігор. Алгоритм розташування кораблів на ігровому полі. Виконання алгоритму гри комп'ютера з використанням методу випадкових чисел. Стратегія гри комп'ютера. Обґрунтування вибору середовища програмної реалізації.

    курсовая работа [616,5 K], добавлен 26.01.2023

  • Засоби створення електронних карт, тематичних шарів, генералізація просторових об`єктів реального світу, виконання ГІС-аналізу. Технічні та програмні засоби реалізації геоінформаційних систем. Сучасні методи збору просторово розподіленої інформації.

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

  • Історія розробки систем управління базами даних. Принципи проектування баз даних. Розробка проекту "клієнт-серверного" додатку, який гарантує дотримання обмежень цілісності, виконує оновлення даних, виконує запити і повертає результати клієнту.

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

  • Обробка масивів формалізованих записів, їх застосування у базах даних підприємств для пошуку інформації про об’єкт. Вимоги до програмного продукту і документації; його структура і функціональна схема. Посібник користувача, умови виконання програми.

    курсовая работа [391,0 K], добавлен 13.10.2012

  • Архітектурні особливості процесора ARM9E. Набори інструкцій ARM i Thumb. Порівняння компіляторів за швидкістю роботи та обсягом згенерованого коду. Операційні системи, які підтримує процесор ARM9E. Розміри коду підпрограм для ARM та Thumb станів.

    курсовая работа [522,6 K], добавлен 08.09.2011

  • Основи безпеки даних в комп'ютерних системах. Канали проникнення та принципи побудови систем захисту. Ідентифікація і аутентифікація користувачів. Захист даних від несанкціонованого доступу. Технічні можливості зловмисника і засоби знімання інформації.

    курс лекций [555,1 K], добавлен 05.12.2010

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