Научная статья на тему 'Система проведения тендеров на основе платформы Ethereum'

Система проведения тендеров на основе платформы Ethereum Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1498
212
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ТЕНДЕР / РАСПРЕДЕЛЕННЫЕ СИСТЕМЫ / БЛОКЧЕЙН / ДЕЦЕНТРАЛИЗОВАННОЕ ХРАНЕНИЕ / ПЛАТФОРМА ETHEREUM / СМАРТ-КОНТРАКТЫ / TENDERS / DISTRIBUTED SYSTEMS / BLOCKCHAIN / DECENTRALIZED STORAGE / ETHEREUM PLATFORM / SMART CONTRACTS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кондырев Дмитрий Олегович, Бобров Владимир Сергеевич, Ефремов Иван Евгеньевич, Власов Владимир Николаевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Кондырев Дмитрий Олегович, Бобров Владимир Сергеевич, Ефремов Иван Евгеньевич, Власов Владимир Николаевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ETHEREUM-BASED TENDER SYSTEM

A distributed system that has been developed based on the Ethereum platform that allows for the holding of electronic tenders in a trustless environment. This system is based on blockchain technology that enables a decentralized peer-to-peer system that does not require a trusted intermediary. The article gives a brief overview of blockchain technology, analyzes the existing problems and proposes a new method of decentralized storage of large amounts of information providing an efficient interaction with the data and guaranteeing reliability. This method was implemented in the tender system.

Текст научной работы на тему «Система проведения тендеров на основе платформы Ethereum»

УДК 004.75

DOI 10.25205/1818-7900-2017-15-3-31-39

Д. О. Кондырев, В. С. Бобров, И. Е. Ефремов, В. Н. Власов

Новосибирский государственный университет ул. Пирогова, 1, Новосибирск, 630090, Россия

dkondyrev@gmail.com, ceo.bobrov@yandex.ru eo2@yandex.ru, vlasov@lab.nsu.ru

СИСТЕМА ПРОВЕДЕНИЯ ТЕНДЕРОВ НА ОСНОВЕ ПЛАТФОРМЫ ЕТНЕЯЕиМ

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

Ключевые слова: тендер, распределенные системы, блокчейн, децентрализованное хранение, платформа ЕШегеиш, смарт-контракты.

Введение

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

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

Цель данной работы - разработка системы, которая решила бы проблему доверия при проведении тендеров.

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

Кондырев Д. О., Бобров В. С., Ефремов И. Е., Власов В. Н. Система проведения тендеров на основе платформы Ethereum // Вестн. НГУ. Серия: Информационные технологии. 2017. Т. 15, № 3. С. 31-39.

ISSN 1818-7900. Вестник НГУ. Серия: Информационные технологии. 2017. Том 15, № 3 © Д. О. Кондырев, В. С. Бобров, И. Е. Ефремов, В. Н. Власов, 2017

Технология блокчейн

Блокчейн (blockchain) - это технология надежного распределенного хранения записей обо всех когда-либо совершенных транзакциях [1].

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

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

Функция Fd (c,х) ^ {true, false}, где сложность d - положительное число, а c и х - обычно битовые строки, называется функцией доказательства выполнения работы, если выполняются следующие условия:

1) Fd (c, х) может быть быстро вычислена, если даны d, c и х;

2) для фиксированных параметров d и c, нахождение х, такого что Fd (c, х) = true, вычислительно сложная, но выполнимая задача, т. е. решение такой задачи всегда существует, но для его нахождения в среднем требуется потратить определенное количество времени независимо от используемого алгоритма. Сложность d используется для регулирования времени нахождения такого х [2].

Механизм доказательства выполнения работы обеспечивает надежность технологии блокчейн. Хотя предполагаемый злоумышленник и имеет возможность изменить информацию о какой-либо транзакции в одном из блоков, но, чтобы эти изменения были приняты другими узлами сети, ему необходимо изменить и все последующие блоки. Другими словами, для данного блока и всех следующих за ним в цепочке ему необходимо подобрать такое х, что Fd (c, х) = true, а по определению функции доказательства выполнения работы это вычислительно сложная задача. Следовательно, он должен обладать значительной долей вычислительной мощности сети.

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

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

Блокчейн - первая технология, которая сделала возможным децентрализованный консенсус: благодаря механизму доказательства выполнения работы узлы сети могут прийти к согласованному состоянию распределенной базы данных [3]. При использовании данной технологии нет необходимости в доверенном посреднике при проведении транзакций. Узел не должен доверять данным, полученным от другого узла, потому что их корректность всегда можно проверить. Вся история транзакций находится в свободном доступе и хранится на каждом полном узле сети, что делает сеть устойчивой к выходу из строя отдельных узлов. Более подробно данная технология описана в [2-4].

Платформа Ethereum

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

основанные на технологии блокчейн. Она дает возможность разрабатывать и внедрять собственные протоколы, что делает ее гибкой и удобной для разработки приложений. В основе платформы лежит виртуальная машина Ethereum (Ethereum Virtual Machine - EVM). Благодаря ей Ethereum позволяет не только проводить транзакции в блокчейне, но и выполнять определенные пользователем функции. Виртуальная машина Ethereum предоставляет полный по Тьюрингу язык программирования для написания смарт-контрактов, что позволяет создавать децентрализованные приложения, которые могут задавать собственный формат транзакций и определять правила их проведения.

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

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

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

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

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

Децентрализованное хранение информации

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

Рассмотрим два возможных варианта хранения информации в системе:

1) сохранение непосредственно в блокчейне;

2) использование внешнего хранилища.

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

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

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

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

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

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

Если использовать внешнее хранилище, то проблем с эффективностью работы с данными можно избежать. Для системы проведения тендеров больше всего подходит реляционная модель данных. Характерной особенностью реляционных баз данных является то, что основные сущности и связи между ними представлены с помощью отношений (relation) или, иначе говоря, с помощью таблиц [5]. Информацию о тендерах, заявках, пользователях и других сущностях системы удобно представлять в виде отношений и связей между ними. Кроме того, реляционные СУБД наиболее эффективно работают с большим объемом данных, а такой механизм, как индексирование, позволяет быстро осуществлять поиск. Но в этом случае встает вопрос обеспечения надежности, ведь информация, хранящаяся в открытом доступе, может быть изменена недобросовестными участниками. В случае подмены записи в таблице базы данных узел, получающий информацию о текущем состоянии системы от других узлов, не в состоянии проверить, является ли эта информация корректной. Следовательно, нет возможности достижения консенсуса в определении корректности внесенных в систему изменений между различными узлами сети.

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

Такой подход позволяет объединить сильные стороны реляционных СУБД и технологии блокчейн. Реляционные базы данных обеспечивают высокую скорость добавления новых записей [6]. Также появляется возможность эффективно осуществлять любые запросы для поиска необходимой информации. А использование технологии блокчейн предотвращает возможность внесения несанкционированных изменений в базе.

В нашем проекте мы реализовали данный подход. Рассмотрим подробнее, как это сделано.

Анализ специфики области и выбор СУБД

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

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

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

Синхронизация данных между узлами

Синхронизация данных была разработана как подпротокол на основе DEVp2p, который, в свою очередь, работает поверх RLPx. RLPx - зашифрованная peer-to-peer сеть, содержащая набор методов, обеспечивающих обмен данными, и интерфейс для приложений, позволяющий обмениваться данными через p2p-сеть.

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

Одной из угроз безопасности при обмене данными между узлами является угроза атаки посредника или man-in-the-middle. При таком виде атаки злоумышленник, подключившись к каналу связи между узлами, осуществляет вмешательство, удаляя или искажая информацию. В целях безопасности и противодействия man-in-the-middle атакам, отслеживаются ID узла, с которого пришло сообщение, и ID узла, с которого оно должно было прийти. При несовпадении этих ID соединение закрывается и репутация узла понижается. ID является secp256k1 публичным ключом, поэтому можно проверить, что оба узла пользуются правильными публичными ключами.

Интеграция СУБД в Solidity

Поскольку система Ethereum не предоставляет удобного и эффективного способа для хранения больших объемов данных разрабатываемых приложений, было решено добавить такую функциональность. Для этого был доработан компилятор Solc и виртуальная машина Ethereum, в результате чего язык Solidity был расширен командами для работы с СУБД PostgreSQL.

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

Архитектура системы

Разработанная архитектура системы состоит из четырех основных модулей (рис. 1):

1) модуль смарт-контрактов, обеспечивающий работу с блокчейном;

2) база данных, хранящая информацию о тендерах и пользователях;

3) модуль координации, реализующий взаимодействие всех частей системы;

4) пользовательский web-интерфейс.

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

Основным смарт-контрактом является центральный реестр (рис. 2). Он хранит контрольную информацию о каждом тендере, который был зарегистрирован в системе. С каждым ID тендера сопоставляется хеш соответствующей записи в базе данных. Таким образом, если

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

Рис. 1. Архитектура системы

Рис. 2. Модуль смарт-контрактов

Использование проверок в коде функций смарт-контрактов исключает возможность нарушения участниками следующих правил:

• объявление тендера, срок приема заявок на который уже истек;

• подача заявки до начала срока приема заявок либо после его окончания;

• объявление заявки участника, которая не была зарегистрирована, победившей;

• повторное объявление победителя тендера;

• объявление победителя до окончания срока приема заявок;

• внесение изменений в условия завершенного тендера;

• осуществление действий от имени другого пользователя.

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

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

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

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

Для связи с базой данных используется ГОВС-драйвер, а для взаимодействия с узлом сети ЕШегеиш - библиотека web3j. Взаимодействие осуществляется по протоколу удаленного вызова процедур ^ОК-КРС, который реализуют клиенты ЕШегеиш.

Для того чтобы пользователи могли работать с системой, не вникая в особенности протокола, разработан пользовательский web-интерфейс. Связь пользовательского интерфейса с системой осуществляется по протоколу AMQP через брокер сообщений RabbitMQ.

Проведение транзакций в системе

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

1. Формирование записи. На этом этапе пользователь вводит необходимые данные, из которых формируется запись.

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

3. Сохранение контрольной информации. Если проверка успешно пройдена, считается хэш-функция от записи, и контрольная информация в виде пары (ГО, хеш-сумма) сохраняется в блокчейне.

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

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

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

Заключение

На основе открытой платформы Ethereum разработана распределенная система, которая позволяет проводить электронные тендеры без участия посредника. Система предоставляет функции объявления нового тендера, внесения изменений в условия тендера, подачи заявки на участие, объявления победителя и отмены тендера. Реализована блокировка нарушения правил со стороны участников.

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

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

1. СвонМ. Блокчейн: Схема новой экономики. М.: Олимп-Бизнес, 2017. 240 с.: ил.

2. Wattenhofer R. The Science of the Blockchain. 1st ed. Inverted Forest Publishing, 2016. 115 p.

3. Равал С. Децентрализованные приложения. Технология Blockchain в действии. СПб.: Питер, 2017. 240 с. : ил.

4. Antonopoulos A. M. Mastering Bitcoin. 1st ed. O'Reilly Media, 2014. 296 p.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

5. Дейт К. Дж. Введение в системы баз данных. 8-е изд. М.: ИД «Вильямс», 2005. 1328 с.: ил.

6. Гарсия-Молина Г., Ульман Д., Уидом Д. Системы баз данных. Полный курс. М.: ИД «Вильямс», 2003. 1089 с.: ил.

7. Таненбаум Э., Стеен М. ван. Распределенные системы. Принципы и парадигмы. СПб.: Питер, 2003. 877 с.: ил.

Материал поступил в редколлегию 11.05.2017

D. O. Kondyrev, V. S. Bobrov, I. E. Efremov, V. N. Vlasov

Novosibirsk State University 1 Pirogov St., Novosibirsk, Russian Federation

dkondyrev@gmail.com, ceo.bobrov@yandex.ru eo2@yandex.ru, vlasov@lab.nsu.ru

ETHEREUM-BASED TENDER SYSTEM

A distributed system that has been developed based on the Ethereum platform that allows for the holding of electronic tenders in a trustless environment. This system is based on blockchain technology that enables a decentralized peer-to-peer system that does not require a trusted intermediary. The article gives a brief overview of blockchain technology, analyzes the existing problems and proposes a new method of decentralized storage of large amounts of information providing an effi-

cient interaction with the data and guaranteeing reliability. This method was implemented in the tender system.

Keywords: tenders, distributed systems, blockchain, decentralized storage, Ethereum platform, smart contracts.

References

1. Swan M. Blockchain: Blueprint for a New Economy. Moscow, Olympus Business, 2017, 240 p.

2. Wattenhofer R. The Science of the Blockchain. 1st ed. Inverted Forest Publishing, 2016, 115 p.

3. Raval S. Decentralized Applications. Harnessing Bitcoin's Blockchain Technology. St. Petersburg, Piter, 2017, 240 p.

4. Antonopoulos A. M. Mastering Bitcoin. 1st ed. O'Reilly Media, 2014, 296 p.

5. Date C. J. Introduction to Database System. 8th ed. Moscow, Williams Publ., 2006, 1328 p.

6. Garcia-Molina H., Ullman J. D., Widom J. Database Systems: The Complete Book. Moscow, Williams Publ., 2003, 1089 p.

7. Tanenbaum A., Steen M. van. Distributed systems. Principles and paradigms. St. Petersburg, Piter, 2003, 877 p.

For citation:

Kondyrev D. O., Bobrov V. S., Efremov I. E., Vlasov V. N. Ethereum-Based Tender System. VestnikNSU. Series: Information Technologies, 2017, vol. 15, no. 3, p. 31-39. (In Russ.)

i Надоели баннеры? Вы всегда можете отключить рекламу.